Visual StudioでSwashbuckle を使ってSwagger用のJSONやUIをプロジェクトに追加してる場合、元ドキュメントをXMLから生成することが多いと思います。(プロジェクトのプロパティでXMLドキュメントを生成して参照するやり方ですね)
その場合、WebDeployでデプロイすると生成したXMLファイルが含まれてなくて発行先のSwaggerで参照できずエラーになってしまうので、手動で追加する方法です。
やり方は簡単でWebDeployの.pubxmlファイルに以下のように追加するだけです。
<ItemGroup> <CustomFilesToInclude Include="$(MSBuildProjectDirectory)\bin\hogehoge.XML"> </CustomFilesToInclude> <FilesForPackagingFromProject Include="@(CustomFilesToInclude)"> <DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath> </FilesForPackagingFromProject> </ItemGroup>
簡単ですね。
別にビルド後イベントでXMLファイルをApp_Dataとかにコピーしてそっちを参照、出力に含めるように設定すればそれでいい気もしますね。まぁそんな感じで。
それとは別にAzureのWeb Appsに発行すると –532462766 なコンパイルエラーになったりする場合は以下のようにするといいでしょう。
発行先の追加ファイルを削除してプリコンパイルするだけです。
以上、個人用メモでした。