从目标文件中删除$(平台)

时间:2013-02-20 07:33:18

标签: msbuild

我有一个代码可以在deploy上复制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>

是否可以从结果文件中删除$(平台)?

  • $(平台)=生产
  • 来源:connectionString.Production.config
  • 目的地:connectionString.config

2 个答案:

答案 0 :(得分:0)

另一种解决方案是在项目中实际引用 connectionString.config ,并在预构建的msbuuild步骤中用适当的版本替换它。

我们有一个类似于处理特定于环境的配置文件的方法(所以我们有:

  • web。制作 .config
  • 幅。的分期的.config
  • 幅。的调试的.config

    但是,使用预构建步骤选择其中一个文件并覆盖现有的web.config文件,因此当执行/部署/打包系统使用正确的特定于环境的配置文件处理时,名为的web.config

Scott Hanselman in his blog post

很好地描述了这种方法

答案 1 :(得分:0)

在我看来,最好的事情是“配置转换”。它们非常容易学习,功能非常强大,只覆盖了为特定平台更改的web.config部分,并且它们与Visual Studio捆绑在一起。 看看这个博客 http://blogs.msdn.com/b/webdev/archive/2009/05/04/web-deployment-web-config-transformation.aspx

我希望有所帮助。