是否可以在一个解决方案配置中生成项目的多个配置



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

我知道的解决方案可能有效:

  1. 添加解决方案配置 - 但随后我需要生成解决方案两次,我宁愿避免这样做。 将始终生成这两个项目配置。

  2. 复制项目 - 但是当我只想维护不同的配置时,我就有维护新项目的开销。

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

还有其他想法或建议吗?

刚刚想出一种方法来完成您的要求。创建一个msbuild文件(我命名为我的multi.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 事件重新生成项目。我使用调试/发布来制作示例,但您可以轻松地更改脚本以支持其他配置,或者根据其他变量决定再次构建。

请注意,因为您同时运行两个生成,因此生成错误可能更难理解。

希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新