0

Webアプリを展開する方法は2つあります。1つはIISWeb配置を介して、もう1つはカスタムビルドテンプレートのMSBuild引数を介して接続し、もう1つはVisualStudioに組み込まれているワンクリック公開を使用する方法です。Slow Cheetahトランスフォームもインストールしており、正常にファイルできます。transform Web.config

しかし、私はNlog.configファイルに固執しています。ワンクリック公開を使用すると、Webアプリは更新された構成ファイルで正常にデプロイされます。ただし、実際のビルドプロセスを使用すると、何も変換されません。ソースNlog.configファイルは、リモートサーバーのドロップ場所、展開パッケージ、および出力フォルダーにコピーされます。

.csprojファイルは、と同じようにNlog設定されています。web.config

<Content Include="NLog.config">
  <TransformOnBuild>true</TransformOnBuild>
    <Content Include="Web.config">
  <SubType>Designer</SubType>
  <TransformOnBuild>true</TransformOnBuild>
<Content Include="NLog.Debug.config">
  <DependentUpon>NLog.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>

プレビュー機能により、SlowCheetah変換ファイルも整形式であることがわかります。何が欠けているのかわからない。

4

1 に答える 1

0

まあ、私は本当にそれをビフしました。多くの突っ込みの後、次のものを含める必要があることがわかりました-

 <Import Project="TransformsFiles.targets" />
   <PropertyGroup>
     <TransformOnBuild>true</TransformOnBuild>
   </PropertyGroup>

Sayedがここで言及しているように、最後のプロジェクトタグのすぐ上。これにより実際にファイルが変換されますが、それでも正常にデプロイされません。ビルド後のイベントをいくつか追加するか、それを処理する必要があります。最善の解決策ではありませんが、少なくとも機能しています。

更新: 理解のために、ファイルをデプロイするには、.csproj ファイルを編集して新しいターゲットを含め、手動でリモート サーバーにダンプする必要がありましたが、変換が完了した後でのみでした。ログ ファイルを見て何が起こっているかを確認し、変換されたファイルを取得してリモート サーバーに移動します。コードのその部分は次のようになります -

<Target Name="PostTransformNLogConfig" AfterTargets="TransformAllFiles">
  <Copy Condition="Exists('d:\Builds\Binaries\NLog.config' )"
        SourceFiles="d:\Builds\NLog.config"
        DestinationFiles="\\remoteserver\NLog.config" />
</Target>
于 2012-07-25T12:31:30.230 に答える