【问题标题】:How to make MSBuild reference the right assemblies?如何让 MSBuild 引用正确的程序集?
【发布时间】:2009-06-23 09:54:20
【问题描述】:

我正在尝试让 MSBuild 处理刚刚移至 TFS2008 的项目。解决方案非常庞大,因此分为 5 个团队项目,A-E。每个人只有一个解决方案,但有几个项目。 A 依赖于首先构建的 B-E。我们需要构建所有东西的调试和发布版本,这很好,但是当我们在发布模式下编译 A 时,它使用 B-E 的调试版本。查看 A 中项目的 proj 文件后,它们的程序集引用已设置为指向 B-E 中库的调试版本。有没有办法使用 MSBuild proj 文件使 A 的发布引用 B-E 中项目的发布版本? 到目前为止,我已经尝试添加
<PropertyGroup>
<AssemblySearchPaths>
$(Configuration)
$(AssemblySearchPaths)
</AssemblySearchPaths>
</PropertyGroup>
到 MSBuild proj 文件,但它没有任何区别。有什么建议吗?

【问题讨论】:

    标签: visual-studio tfs msbuild


    【解决方案1】:

    (如果您想在 .prof 文件中完成所有操作,这是一个替代答案)

    您可以在每个属性组上为各种配置设置参考路径。

    c:\blah\blah\Path\To\Debug\属性组>
    
    

    c:\blah\blah\Path\To\Release\

    您应该已经在 .proj 文件中拥有条件属性组,因此只需将引用路径位添加到它们。您可以使用分号分隔多个路径。

    【讨论】:

      【解决方案2】:

      我认为你可以这样做:

          ..\Your\Other\Build\Path\
      
      然后在目标中包含这个:
      Properties="ReferencePath=$(SomeReferencePath)"
      这将指示编译器查看该引用路径以解析其引用的程序集。

      我认为 =:)

      [编辑:这一切都将在一个新的 msbuild 脚本中构建你的所有子项目。]

      【讨论】:

      • 啊。等一下,你说的是 .proj 文件。对不起。我要做的是创建一个新的 msbuild 脚本来构建所有项目。您可以通过为每个要构建的项目设置一个目标来做到这一点。然后,您将为每个项目的每个目标设置参考路径。就像我已经输入了这个答案。 (我还发布了另一个答案,以了解您可能更喜欢的另一种可能的方式)
      • @Barn:嘿,你删除了你的评论。现在我只是觉得我在自言自语。 =:) 嗯……也许我是……我……疯了……不……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多