2014-12-05 79 views
5

我知道如何选择要复制到我的构建的输出目录的文件,通过Properties => Copy Always,但我一直无法根据构建类型找到复制不同文件的方法。我有两个单独的配置文件,一个设置为本地开发(即应该在调试版本上复制)和一个为服务器环境设置(即应该在发布版本上复制)。将不同的文件复制到输出目录进行发布和调试?

有谁知道如何实现这种类型的条件功能?

+1

检查在页面底部的答案罗密欧:http://stackoverflow.com/questions/8082662/how-to-select-different-app-config-for-several-build-configurations – Bayeni 2014-12-05 14:24:18

+0

我会尝试,但它看起来主要是VS app.config文件。这将工作复制我自己的自定义配置文件,我的应用程序读取? – PseudoPsyche 2014-12-05 14:28:03

+0

这是一个将在IIS内运行的应用程序吗? (有些功能是我知道的,但是它们只能用于ASP.NET和类似的项目) – 2014-12-05 14:37:30

回答

5

目前我已经在这个岗位使用应答轻微修改后的版本达到了预期的功能,@Bayeni共享:https://stackoverflow.com/a/8083060/1428743

目前这个工作对我来说,但如果有一个更好的方式去这请让我知道。

<ItemGroup Condition=" '$(Configuration)' == 'Debug' "> 
    <Content Include="local.cfg"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
    </ItemGroup> 
    <ItemGroup Condition=" '$(Configuration)' == 'Release' "> 
    <Content Include="release.cfg"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
    </ItemGroup> 
+0

这样做的一个问题是这将复制两个不同的文件名称到目标目录。 – 2014-12-05 14:54:09

+0

我目前正在使用预处理器指令来处理,以根据构建类型选择适当的配置文件。 – PseudoPsyche 2014-12-05 14:55:31

0

为什么不使用PostBuild事件并调用xCopy来复制所需的文件?

+0

对于由@Bayeni共享的帖子中建议的方法,是否有任何好处?用文件添加条件化的'Item Group'条目包含'.csproj'文件? – PseudoPsyche 2014-12-05 14:44:42

+0

我对这个问题添加了一个答案,以显示目前正在为我工​​作的方法。如果您提出的解决方案有任何好处,请发表评论。 – PseudoPsyche 2014-12-05 14:50:48

+0

它类似于''选项,但你必须选择调用一些程序(xCopy)并获得一些输出(比如说一个日志文件) – Chris 2014-12-05 14:52:20

相关问题