【问题标题】:Can I build multiple configurations of a project within one solution configuration?我可以在一个解决方案配置中构建项目的多个配置吗?
【发布时间】:2012-12-07 18:33:03
【问题描述】:

我想在相同的解决方案配置中构建相同的项目两次,改变一些#define 标志来切换功能。两个二进制文件将使用不同的名称进行部署。

我知道可行的解决方案:

  1. 添加解决方案配置 - 但是我需要构建解决方案两次,我希望避免这种情况。将始终构建两个项目配置。

  2. 复制项目 - 但是当我只想维护不同的配置时,我需要维护一个新项目。

  3. 批量构建 - 我避免使用批量构建,因为我使用 devenv 进行本地开发,使用 msbuild 进行持续集成。

还有其他想法或建议吗?

【问题讨论】:

    标签: visual-studio-2010 msbuild configuration-management


    【解决方案1】:

    只是想出了一个方法来做你所要求的。创建一个 msbuild 文件(我命名为我的 multiple.proj)并在下面添加脚本。

    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Choose>
        <When Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
          <ItemGroup>
            <ProjectToBuild Include="$(MSBuildProjectName).csproj">
              <Properties>Configuration=Release</Properties>
            </ProjectToBuild>
          </ItemGroup>
        </When>
      </Choose>
      <Target Name="BeforeBuild">
        <Message Text="Building configuration $(Configuration)..." />
      </Target>
      <Target Name="AfterBuild">
        <MSBuild Projects="@(ProjectToBuild)"/>
      </Target>
    </Project>
    
    </type>
    </this>
    

    将脚本导入您的项目(csproj 或 vbproj):

    <Import Project="..\multiple.proj" />
    

    此脚本告诉 msbuild 使用另一个配置作为 AfterBuild 事件再次构建您的项目。我使用 Debug/Release 来制作示例,但您可以轻松更改脚本以支持其他配置,或者根据其他变量决定重新构建。

    要小心,因为您同时运行两个构建,因此构建错误可能更难理解。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 2011-05-10
      • 2017-06-17
      • 2012-02-23
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多