2008-12-02 41 views
3

我们有大量的Visual Studio解决方案包含相同的共享15个项目,并且大多数解决方案仅因Web应用程序而异。MSBuild:我如何强制ProjectReference在其他地方搜索程序集?

我试图将所有东西都整合到一个只构建一次共享项目的构建中,然后让Web应用程序项目引用输出共享程序集。

我发现,因为web项目通过< ProjectReference>元素指向共享项目,所以我无法告诉它在我的自定义生成项目中查找其他位置的程序集。我想用类似的东西:

<的MSBuild项目= “@(解决方案)” 目标= “重建” 属性= “ReferencePath = $(MyReferencePathFolder)”>

,但将只有在工作web项目通过< Reference>元素引用共享程序集的dll。看起来,如果它找不到< ProjectReference>中指出的内容,它不会尝试查看任何ReferencePath文件夹。它只是放弃。

+0

为什么不把所有的Web项目都转储到同一个解决方案中? – yfeldblum 2008-12-02 19:51:35

+0

我试过了,但它似乎通过尝试多次构建所有共享项目来减慢速度 – 2008-12-02 19:57:41

回答

1

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

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

这种方法失去的是自动从Web应用程序解决方案重建您的共享项目的能力。如果您希望在使用其中一个Web应用程序解决方案时自动重建15个程序集,则可以在Web应用程序解决方案中添加预构建步骤以构建新的共享项目解决方案。

相关问题