WebSiteでExcludeFilesFromDeploymentが使えない
2018/11/05
サブフォルダが幾つもあり、それぞれのフォルダ内に認証用のロールを記述したWeb.configが保存されているため、サーバーのファイルを上書きしないよう発行時にWeb.configを全て除外したい。
・・・
<DeleteExistingFiles>True</DeleteExistingFiles>
<ExcludeFilesFromDeployment>web.config;*\Web.config</ExcludeFilesFromDeployment>
</PropertyGroup>
</Project>
App_Data\PublishProfiles\プロファイル名.pubxmlにExcludeFilesFromDeploymentを追加したところ、ビルドは正常に終わるのに発行しようとしたら参照が足りない時のエラー。対応方法1
ファイル発行オプションの「発行中にプリコンパイルする」のチェックを外したら発行できました。対応方法2
プロファイル名.pubxmlは元に戻し、Web.configで拡張子とSystem.Web.Compilation.IgnoreFileBuildProviderを結びつける(元ネタ)。
<configuration>
<system.web>
<compilation>
<buildProviders>
<remove extension=".config" />
<add extension=".config" type="System.Web.Compilation.IgnoreFileBuildProvider" />
</buildProviders>
・・・
ちなみにweb.config以外のファイルはExcludeFilesFromDeploymentで除外可能です。WebSiteの場合はweb.configのみ(今のところ)発行時にエラーになります。
仕様かバグか不明。
ExcludeFoldersFromDeploymentによるフォルダ丸ごと除外はWeb applicationプロジェクトと同様に使えています。