Visual Studioを介してasp.netアプリケーションを展開すると、Precompile during publish
とチェックボックスをオフにしますAllow precompiled site to be updateable
。
そして、私はmsbuild
ツールで同じことをしたいのですが、/p:MvcBuildViews=true /p:EnableUpdateable=false
ですが、IIS
に移動してビューを開いても、コンテンツが残っているため、プリコンパイルされていません。
彼らはThis is a marker file generated by the precompilation tool
VSから公開するときと同じように。何か不足していますか?
Msビルドを使用したasp.netビューのプリコンパイル
/p:PrecompileBeforePublish=true
の代わりに引数/p:MvcBuildViews=true
を使用する必要があります。
MvcBuildViews
は、アクティブ化するとプリコンパイル済みビューが生成されるものと誤って見なされることがよくあります。実は。ビルドプロセスにビューを含めるだけのものですが、これらをプロジェクトバイナリフォルダーにコンパイルしません。
チェックボックスPrecompile during publish
をオンにし、ファイル公開オプションのチェックボックスAllow precompiled site to be updateable
をオフにすると、FolderProfile.pubxml
ファイルで次のプロパティ設定が取得されます。
<PropertyGroup>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
</PropertyGroup>
したがって、msbuildツールで同じことを行う場合は、引数を使用する必要があります。
/p:PrecompileBeforePublish=true;EnableUpdateable=false
さらに、これらの引数は.pubxml
ファイル(ソリューションエクスプローラーのプロパティノードのPublishProfilesの下)に格納されているためです。現在は、チェックインしてチームメンバーと共有できるように設計されています。これらのファイルはMSBuildファイルになり、必要に応じてカスタマイズできます。コマンドラインから公開するには、DeployOnBuild=true
を渡して、PublishProfileをプロファイルの名前に設定します。
msbuild.exe "TestPrecompiled.csproj" /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml
もちろん、引数と.pubxml
ファイルを同時に使用できます。コマンドラインの引数は、.pubxml
ファイルのプロパティを上書きします。
msbuild.exe "TestPrecompiled.csproj" /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml /p:PrecompileBeforePublish=true;EnableUpdateable=false
公開が完了したら、publishフォルダーの.cshtmlファイルを開きます。VSから公開する場合と同様に、This is a marker file generated by the precompilation tool, and should not be deleted!
という行が表示されます。
詳細については、 MSBuildを使用したASP.NET WebフォームおよびMVCビューのプリコンパイル を参照してください。