簡體   English   中英

MsBuild在我生成時會刪除依賴項dll,然后在Visual Studio中進行調試

[英]MsBuild deletes dependency dlls when I build, then debug in Visual Studio

我有一個具有以下簡化的依賴項結構的項目(總共有很多項目)。

MainWindow
 |- UserControl
   |- Library
     |- ExternalLib.dll

ExternalLib.dll是具有始終復制功能的內容資源。

當我構建項目時,它可以正確地將ExternalLib復制到我的輸出文件夾中。 如果再單擊“調試”,它將重建我的Library和UserControl項目並刪除我的ExternalLib.dll。

在MSBuild構建日志中,我看到以下內容:

5>Task "Delete"
    ...
5>  Deleting file "/path/to/bin/ExternalLib.dll".
5>Done executing task "Delete".

為什么MsBuild會刪除我正在構建的項目所依賴的項目的依賴關系?

我想到了。 顯然,如果您有一個項目結構,其中A引用B引用了C,如果A不需要C,則編譯器“足夠聰明”以刪除C。

因為在我的主應用程序中對ExternalLib的引用是通過反射進行的,所以編譯器認為我不需要ExternalLib。

該問題可以通過兩種方式解決:

  1. 在A中有對C的虛擬引用,例如,只需創建在C中找到的類的實例。
  2. 在A中明確引用C。

我個人選擇了第二個選項。

暫無
暫無

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

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