2017-05-12 3 views
0

私はASP.NET Webプロジェクト(.Net 4.5、Visual Studio 2015)を持っています。MSBuildの.targetsファイルを使用した展開のためのサイトのプリコンパイル

このソリューションでは、新しいWebビルドではなく、XAMLビルドを使用します。一部のビルドでは、ファイルコピーを使用してアプリケーションをIISサーバーに直接展開します。

Visual Studioの[公開]アクションを使用してプロジェクトを公開することはありません。ファイルがコピーされ、このターゲットファイルで

<Import Project="CSADeploy.targets" Condition="Exists('CSADeploy.targets')" /> 
<Target Name="AdditionalTargets"> 
    <!-- ... --> 
</Target> 

:ASP.NETプロジェクトの.csprojファイルで

は、以下のimport文が追加.targetsファイルを追加するために追加されました。ここで

は.targetsファイルからの短い抜粋です:

<?xml version="1.0" encoding="utf-8" ?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <Target Name="BeforeBuild"> 
    </Target> 
    <Target Name="AfterBuild"> 

私は更新可能UIでprecompiled for deploymentのみの展開または展開のいずれかであることをサーバーにデプロイされたコードをご希望の罰金です。 [パブリッシュ]アクションにチェックボックスがあり、プリコンパイルすることができますが、使用できません。既存のXAMLビルドをターゲットファイルと、.csprojファイルの命令で使用する必要があります。

また、ファイルの展開後にサーバー上でAspnet_compiler.exeツールを使用できることも知っています。しかし、私はこのサーバーにアクセスすることができず、手動でアクションをビルドプロセスに追加しないようにしたいので、ファイルをコピーする前にそれを行う必要があります。

シナリオで正しく展開されるように、展開用のASP.NETページをプリコンパイルするにはどうすればよいですか。

+0

フィードバックはありますか、問題を解決しましたか他の質問がありますか? –

+0

申し訳ありませんが、私は実装を開始しましたが、正常に動作するかどうかをテストする前に、ビルドに必要ないくつかの問題がありました。私は他のものに置かれているので、それらを修正する必要はありませんでした。 – Gilles

答えて

1

プロジェクト用の.pubxmlファイルを作成し、TFSにチェックインし、.pubxmlファイルでprecompileBeforePublishをTrueに設定します。 XAMLのビルド定義で

<PropertyGroup> 
    ...... 
    <PrecompileBeforePublish>True</PrecompileBeforePublish> 
    </PropertyGroup> 

、これらのMSBuildの引数を追加:TFSのXAMLビルドに続いて

/p:deployOnBuild=true /p:publishProfile=***.pubxml 

を、それが展開する前に、プリコンパイルを行います。

関連する問題