0

デプロイ時にpropper構成ファイルをコピーするコードがあります:

  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
        CopyConfigFiles;
        $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>
  </PropertyGroup>
  <Target Name="CopyConfigFiles">
   <ItemGroup>
    <_ConfigFiles Include="Configurations\*.$(Platform).config" />
    <FilesForPackagingFromProject  Include="%(_ConfigFiles.Identity)">
      <DestinationRelativePath>%(Filename)%(Extension)</DestinationRelativePath>
    </FilesForPackagingFromProject>
   </ItemGroup>
  </Target>

結果ファイルから $(Platform) を削除することは可能ですか?

すなわち。

  • $(プラットフォーム) = プロダクション
  • ソース: connectionString.Production.config
  • 宛先: connectionString.config
4

2 に答える 2

0

私の意見では、最も良いのは「構成変換」です。それらは非常に簡単に習得でき、非常に強力で、特定のプラットフォーム用に変更されている web.config の部分のみをオーバーライドし、Visual Studio にバンドルされています。このブログを見てみましょう http://blogs.msdn.com/b/webdev/archive/2009/05/04/web-deployment-web-config-transformation.aspx

それが役立つことを願っています。

于 2013-02-22T23:47:01.350 に答える
0

別の解決策は、実際にプロジェクトでconnectionString.configを参照し、ビルド前の msbuuild ステップで適切なバージョンに置き換えることです。

環境固有の構成ファイルを処理するための同様のアプローチがありました (したがって、次のようになりました。

  • ウェブ。プロダクション.config
  • ウェブ。ステージング.config
  • ウェブ。デバッグ.config

    ただし、ビルド前のステップを使用して、このファイルの 1 つを選択し、既存の web.config ファイルを上書きしたため、実行/展開/パッケージ化に関しては、システムはweb.configという名前の正しい環境固有の構成ファイルを処理しました。

このアプローチは、Scott Hanselmanのブログ投稿で詳しく説明されています。

于 2013-02-21T18:25:47.610 に答える