MSBuild:如何强制ProjectReference在别处搜索程序集?

时间:2008-12-02 19:47:18

标签: msbuild build-automation tfsbuild

我们有大量的Visual Studio解决方案包含相同的共享15项目,大多数解决方案仅因Web应用程序而异。

我正在尝试将所有内容整合到一个构建中,只构建一次共享项目,然后让Web应用程序项目引用输出共享程序集。

我发现,因为Web项目通过< ProjectReference>指向共享项目。我不能告诉它在我的自定义构建项目中查找其他地方的程序集。我想使用类似的东西:

< MSBuild Projects =“@(Solutions)”Targets =“Rebuild”Properties =“ReferencePath = $(MyReferencePathFolder)”>

但这只有在Web项目通过< Reference>引用共享程序集的dll时才有效。元件。似乎如果它找不到< ProjectReference>中指出的内容,它就不会尝试查找任何ReferencePath文件夹。它只是放弃了。

1 个答案:

答案 0 :(得分:1)

您可能需要考虑从众所周知的位置引用15个共享程序集。

您可以创建包含15个项目的解决方案,并将输出复制到特定文件夹。然后,您可以更改Web应用程序项目以引用程序集,而不是共享项目。

使用此方法您失败的是能够从Web应用程序解决方案自动重建共享项目。如果您想在处理其中一个Web应用程序解决方案时自动重建15个程序集,则可以在Web应用程序解决方案中添加预构建步骤,以构建新的共享项目解决方案。