2008-12-02 50 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應用程序解決方案中添加預構建步驟以構建新的共享項目解決方案。

相關問題