在Visual Studio中为不同的构建配置使用不同的预构建事件

时间:2012-03-29 12:46:45

标签: visual-studio visual-studio-2010

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

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

3 个答案:

答案 0 :(得分:2)

或者只是将条件放在目标上......例如,

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

..或者你的任务。

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

Dan(msbuild dev)

答案 1 :(得分: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 :(得分:0)

要在visual studio中为不同的配置使用不同的构建事件,打开项目的cs proj文件。在预构建部分

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Condition="'$(Configuration)'=='Release'" Command="echo Release" />
    <Exec Condition="'$(Configuration)'=='Debug'" Command="echo Debug" />
  </Target>

“Command”参数中的命令只有在满足此条件时才会执行。