簡體   English   中英

Visual Studio中的奇怪參考行為

[英]Strange reference behaviour in Visual Studio

我有一個MVC應用程序,在其中我添加了2個對我編寫的dll類庫項目的引用。

當我清潔解決方案時,一個dll文件被按預期刪除,但另一個保留。 為什么是這樣?

在項目XML中,這里是參考

<Reference Include="BusinessLayer">
  <HintPath>..\BusinessLayer\bin\Debug\BusinessLayer.dll</HintPath>
</Reference>
<Reference Include="DataTypes">
  <HintPath>..\DataTypes\bin\Debug\DataTypes.dll</HintPath>
</Reference>

如您所見,我已經在每個項目的bin / debug文件夾中引用了生成的dll文件。

當我右鍵單擊解決方案並選擇“清理”時,業務層dll不會被刪除。

如果我右鍵單擊該引用,然后單擊“屬性”,則“路徑”設置為本地文件,它位於我所在項目的bin文件夾中,而不位於其自己的bin文件夾中。

有人知道如何解決此問題嗎?

通過執行以下操作,我能夠重現此確切的行為:

  1. 用2個項目(ClassLibrary1和ClassLibrary2)創建一個新的解決方案
  2. 建立解決方案
  3. 手動將ClassLibrary2.dll復制到ClassLibrary1的bin文件夾中
  4. 在ClassLibrary1項目中添加對ClassLibrary1的bin文件夾中的ClassLibrary2 dll的引用

現在,當我重建或清潔解決方案時,不會刪除ClassLibrary1 bin文件夾中的ClassLibrary2.dll。

是否有可能偶然發生類似的事情? (也許步驟不完全相同)。

在這種情況下,請在bin文件夾中手動刪除有問題的dll,在Visual Studio中刪除引用,然后再次添加引用,但這一次指向正確的位置。

正如Jeff在評論中提到的那樣,如果項目在同一個解決方案中,請添加對項目的引用,而不是dll文件(添加引用/項目)。

另一方面,如果其他庫不是該解決方案的一部分,我將為它們創建一些NuGet程序包,這些程序包將托管在網絡上的共享文件夾中,這將允許您通過NuGet添加依賴項並繞過添加對dll手動。

暫無
暫無

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

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