2012-03-29 54 views
2

在Visual Studio中可以为不同的构建配置使用不同的构建前事件吗? 例如,我想要一个测试版&实时系统的发布配置,并在编译之前将相关应用。[type] .config复制到app.config。在Visual Studio中为不同的构建配置使用不同的预构建事件

目前,配置设置已被烘焙到.settings文件中,使用默认app.config文件中的设置。

回答

1

您可以通过两种方式做到这一点,根据您的具体情况:

选项1:检查$在构建前脚本(ConfigurationName)变量,就像这样:

IF EXISTS $(ProjectDir)app.$(ConfigurationName).config 
    COPY $(ProjectDir)app.$(ConfigurationName).config $(ProjectDir)app.config 

选项2:一个 “BeforeCompile” 的MSBuild目标添加到项目文件:

<Target Name="BeforeBuild"> 
    <!-- MSBuild Script here --> 
</Target> 

选项3:使用配置文件转换; this VSIX plug-in将web.config转换功能添加到非Web项目中。这些XSLT文件,让你重写你的配置文件的版本(不同于Web项目,它发生在哪里上发布。)

2

或者只是把条件对你的目标......例如,

Condition="'$(Configuration)' == 'Debug'" 

..或你的任务。

如果您使用Visual Studio VB/C#简单的构建后事件,您可以手动编辑项目文件以将这些条件放在PreBuildEvent/PostBuildEvent属性标记上;并重复Release的标签。

丹(MSBuild的DEV)

+0

而从这一刻起,VS(在免得2010)将显示PostBuild为空,在编译过程中的魔法会发生,在大队伍,这将最终导致混乱和浪费时间。好的解决方案,但潜在的危险 – durilka 2013-01-25 14:59:05

相关问题