2016-04-25 10 views
0

VS Publishは動作しますが、MSBuildは動作しません。Web.config変換

私はMSBuildの専門家ではありませんが、私はそのプロセスを進めます。このウェブサイトの続き

https://msdn.microsoft.com/en-us/vs2010trainingcourse_webdevelopment_topic4.aspx

は、私は、ステップ1〜4を経てきました。私がVS 2015で "Publish"を実行すると、メソッドの "ファイルシステム"が選択され、web.configファイルが選択された "Configuration"に基づいて変更されました。しかし

、MSBuildのを実行している、

C:\Program Files (x86)\MSBuild\14.0\Bin>msbuild.exe "C:\pathToProject\project.sln" /p:Configuration=XXXX /p:OutputPath="C:\pathToOutputFolder" 

は動作しませんでした。 web.configは NOTに変更されました。

他にも何か不足していますか?

答えて

0

Publishメニュー項目は実行中ですが、コマンドラインからは実行されないTransformXmlというMSBuildタスクがあります。これはプロジェクトファイルの一部ではなく、手動で実行する必要があります。

私はサイトを展開するカスタムMSBuildのスクリプトを実行ビルドサーバーを持っている、そしてそれはこれで変換を実行:

<!-- Transform the profile-specific .config file into Web.config, placing result in staging folder --> 
<Target Name="TransformWebConfig" Condition=" '$(WebsiteTransformFile)' != '' "> 
    <Error Condition="!Exists('$(WebsiteTransformFile)')" Text="Web configuration file $(WebsiteTransformFile) not found." /> 
    <Message Text="Transforming Web.config with $(WebsiteTransformFile)" /> 
    <TransformXml Source="Web.config" 
      Transform="$(WebsiteTransformfile)" 
      Destination="Web.transformed.config" /> 
    <Copy SourceFiles="Web.transformed.config" DestinationFiles="Web.config" /> 
    <Delete Files="Web.transformed.config" /> 
</Target> 

プロパティ$(WebsiteTransformFile)は、ファイルの別の場所で定義され、私自身の財産であることWeb.release.configのような構成のファイルに対応します。

.csprojファイルに追加したり、別のファイルに入れて手動で実行したりすることができます。 F5キーを押してローカルで実行するときは、変換されていないweb.configを使用し、サーバーに展開する必要がある変換されたバージョンは使用しないでください。

関連する問題