回答

19

不是。您必須執行以下操作之一:

  • 製作構建腳本,以正確的順序構建解決方案。
  • 預先構建解決方案A,並且僅在解決方案B中引用其構建的二進制輸出。
  • 第三種解決方案包含來自兩種解決方案的所有項目。

前兩項是最常見的,我個人比較喜歡第二項。

+2

*嘆* *確定;謝謝! – 2009-07-20 10:02:58

+0

但看到從net_prog – 2014-02-23 03:06:13

0

一個解決方案是建立創建某種可執行文件或DLL的程序集的收集。有一個解決方案取決於另一個解決方案沒有意義。輸出程序集(executable/dll)依賴於它引用的程序集。如果您的解決方案依賴於其他組件,那麼引用它們。您可以將項目添加到解決方案(文件>添加>現有項目),然後您可以從輸出項目添加對這些項目的補充資源。

1

你不能那樣做。你爲什麼想要?

只需添加所有你依賴於(在「其他」解決方案的項目)到解決方案的項目。

然後在項目之間使用項目引用(不是文件引用)。

11

這個職位是舊的,但這些日子裏,你可以很容易地通過構建的NuGet包所有的人都重用其他解決方案的依賴。 VS 2015擁有內置的nuget軟件包,但目前是Release Candidate。在Visual Studio 2013中,您可以使用Nuget.Packaging nuget包來允許您的項目構建爲Nuget包。

然後,你可以發佈你的軟件包的更新版本到本地網絡共享,其配置爲在Visual Studio中的儲存庫。

然後您的其他解決方案的項目可以依賴於該包。

例如,假設您在名爲「Core Framework」的解決方案中有一個可重複使用的實用程序DLL,並且您想在名爲「XYZEcosystem」的解決方案中構建的Web站點上使用實用程序。

在CoreFramework解決方案,您將建立一個NuGet包爲編譯到公用事業的dll該電力項目,包括DLL和它在包PDB文件。

然後你發佈到你的網絡共享。

所以我們說你的軟件包有像「XYZ.Core.Utilities」一個版本的1.0.0.0的ID。

現在在XYZEcosystem中,您將使用軟件包管理器控制檯,將存儲庫下拉到您的存儲庫並鍵入「Install-Package XYZ.Core.Utilities」,它將安裝最新版本的XYZ.Core.Utilities。

如果您對XYZ.Core.Utilities進行了更改,則可以在XYZEcosystem上運行Update-Package XYZ.Core.Utilities,並且它將選取新版本。

相關問題