簡體   English   中英

.NET部署項目不使用但引用的dll需要的dll

[英].NET deploying dlls that project does not use but referenced dlls require

所以問題很簡單:我的項目引用程序集X但不引用Z。但是程序集X引用了程序集Z。程序集Z經常更新,因此無論何時構建我的項目,我都希望獲得最新版本的Z。 。

到目前為止,我已經提出了3種選擇:

  1. 引用程序集Z。這具有始終獲取新版本的優勢。 但是,它確實污染了引用,而這些引用並不是嚴格要求的。
  2. 添加一個生成后事件,該事件將從所需的DLL復制到更新后的位置。 我認為這很正常,直到我需要多個不同的DLL,這將使腳本維護起來很長且乏味。
  3. 將程序集Z添加為資源,並將復制副本設置為true。 我可能更喜歡這個版本,除了當我將DLL添加到項目中時,Visual Studio實際上將(當時)當前版本復制到項目中,並且沒有指向原始源的鏈接。 因此,在更新程序集時,這不會以任何方式反映在我的項目中。 除非我將此方法與選項2結合使用,否則不妨僅單獨使用選項2。

那么,我是否缺少某些東西,還是我唯一的選擇?

我會選擇選項1。我認為即使引用有時是間接的,對於您的項目來說,引用它所依賴的所有內容也是完全合理的。

在我看來,這似乎是最簡單的選擇-並且與Visual Studio的應用程序所需的代碼依賴關系視圖相適應...因此,Visual Studio對這些依賴關系所做的任何事情都應該自然而然地產生,而不是您必須考慮在每個階段。

編輯:作為替代選項,您是否考慮過使用NuGet 這樣,您需要在項目的NuGet依賴關系中表達對X的依賴關系,但就可以“知道”它依賴於Z。我相信它都應該可以工作...即使這些都可以,您也應該能夠做到這一點內部項目,因為您可以設置自己的NuGet源而不是公共存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM