簡體   English   中英

對NuGet軟件包的引用錯誤地更改為本地項目引用

[英]References to NuGet packages incorrectly changed to local project references

我只是在必須將解決方案的平台從x86更改為x64時才發現此問題的,因為x86應用無法看到QWinSta.exe (FWIW Any CPU都看不到它)。 切換之后,一切都變得一團糟,而我的十幾個實用程序庫和基類項目都找不到它們的引用。 快速切換回並進行重新構建可以使所有內容再次正確設置(但當然不會給我提供我需要的x64 )。

到目前為止,為了安全起見,我一直在構建所有x86 所以...顯然是時候付錢給吹笛者了。

發生的是,在這些支持項目中,我所有的Nu​​Get軟件包引用都已經過某種更改,現在指向項目的bin文件夾中的程序集位置,而不是它們最初開始的程序包文件夾。

例如,我有一個名為Extensions的項目,該項目提供了隨時間而積累的一些方便的擴展方法。 我在幾種不同的解決方案中使用該項目。 它的軟件包引用之一曾經是:

<SolutionDir>\Packages\Quartz.2.3.1\lib\net40\Quartz.dll

就是現在:

<CommonLibrariesDir>\Extensions\bin\x86\Debug\Quartz.dll

這就是為什么當我切換到x64時一切都崩潰了的原因-引用的程序集根本不存在。

我想更好地了解Package Manager在這種情況下的內部工作原理,因此我可以對其進行修復並更好地組織結構以避免將來發生這種情況,但是恐怕我不知道從哪里開始。 我一直在不知所措的情況下瀏覽文檔。

可能需要注意的一件事:通常,當我創建一個新的解決方案/項目並添加/引用一個包含NuGet軟件包的現有項目時,系統會提示我“還原丟失的軟件包”,然后繼續進行操作。 這可能與它有關嗎?

好吧,那很快。

我決定離開這個問題,在這里回答,以防其他人遇到相同的問題。

它只需要一個簡單的命令:

Update-Package -Reinstall

我所有的支持項目參考都設置正確,並且能夠輕松切換到x64 真是驚喜!

我在這里找到它:

http://blog.nuget.org/20121231/a-quick-tutorial-on-update-package-command.html

重新安裝當前解決方案的所有項目中的所有軟件包:

 Update-Package -Reinstall 

暫無
暫無

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

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