使用 msbuild 进行构建并动态设置项目引用

2024-01-09

我有几个引用 SQL Server 程序集的项目。对于 SQL Server 2005 和 SQL Server 2008,我当前维护 2 个项目文件,它们指向相同的源文件,唯一的区别是对 SQL Server 程序集的引用。

有没有一种方法可以让我只维护一个项目并在构建脚本中动态指定引用?


在寻找与您遇到的相同问题的解决方案时,我提出了在 ItemGroup 上设置条件的建议解决方案。但这有一个副作用,因为在 Visual Studio 引用中我可以看到两个引用,这也影响了 ReSharper。

我最终使用了“选择何时否则”,并且 ReSharper 和 Visual Studio 显示两个引用不再有任何问题。

<Choose>
  <When Condition=" '$(Configuration)' == 'client1DeployClickOnce' ">
    <ItemGroup>
        <ProjectReferenceInclude="..\client1\app.Controls\app.Controls.csproj">
        <Project>{A7714633-66D7-4099-A255-5A911DB7BED8}</Project>
        <Name>app.Controls %28Sources\client1\app.Controls%29</Name>
      </ProjectReference>
    </ItemGroup>
  </When>
  <Otherwise>
    <ItemGroup>
      <ProjectReference Include="..\app.Controls\app.Controls.csproj">
        <Project>{2E6D4065-E042-44B9-A569-FA1C36F1BDCE}</Project>
        <Name>app.Controls %28Sources\app.Controls%29</Name>
      </ProjectReference>
    </ItemGroup>
  </Otherwise>
</Choose>

您可以在我的博客文章中阅读更多相关信息:[MSBuild 项目文件中带有条件的 ProjectReference][https://laurentkempe.com/2009/12/03/ProjectReference-with-Condition-in-your-MSBuild-project-文件/]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 msbuild 进行构建并动态设置项目引用 的相关文章

随机推荐