Swagger用のXMLをWebDeployに含める

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 なコンパイルエラーになったりする場合は以下のようにするといいでしょう。

image

発行先の追加ファイルを削除してプリコンパイルするだけです。

以上、個人用メモでした。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中