2012-07-17 79 views
3

我在使用VS 2010 Express for windows phone開始編寫Windows Phone應用程序。然後我安裝了VS 2012,我製作了一個桌面應用程序,它使用RestSharp來使用JSON/REST服務。由於缺乏對Express版插件的支持,我得到了完整的VS 2010 Ultimate並安裝了Nuget。當我創建一個win手機庫項目並添加一個RestSharp軟件包時,它將顯示在參考文獻中,但我無法訪問它的任何類(並且使用RestSharp以紅色下劃線)。此外,當我從添加引用再次刪除,並添加我得到一個不兼容的引用錯誤窗口:Nuget包在Visual Studio中無法正常工作

RestSharp.WindowsPhone, Version=103.2.0.0, Culture=neutral, PublicKeyToken=null" is incompatible with 
Windows Phone 7.1 
In order to add it yourself you should to change the project's terget to a compatible framework first. 

,如果我的目標更改爲WP 7.0它也會出現。

有沒有人解決過類似的問題?

+0

好的,我發現了類似的問題http://stackoverflow.com/questions/5407461/vs2010-incompatible-reference-when-trying-to-add-reference但它沒有解決我的問題。另外,我已經在我的朋友的電腦上測試過它(他有WP的Express,現在他還安裝了VS 2010 Ultimate),他現在也遭遇同樣的問題。 – marcin32 2012-07-17 11:31:26

回答

2

您是否使用源代碼管理?

您可能尚未將解決方案設置爲enable package restore(NuGet文檔)。

右鍵單擊Solution Explorer中的Solution節點,然後選擇 啓用NuGet Package Restore。

解決方案資源管理後,將包含許多項目將會有一個新的文件夾packages已自動添加到您的解決方案文件夾。您將需要此文件夾來添加到您的版本控制,因爲它會包含您已安裝的NuGet包

就是這樣。

如果您想了解更多,這裏有更多的細節是什麼(自動)爲你做:

它添加了一個名爲.nuget含有NuGet.exe一個解決方案文件夾和 NuGet.targets的MSBuild文件。它還更改了 解決方案中的每個項目,以導入NuGet.targets的MsBuild任務。

有了這個地方,一個項目被編譯的任何時間,構建任務 將着眼於每個項目的packages.config文件,並在文件裏每個包 ,確保相應的包 包文件夾中存在。對於任何缺失的軟件包,構建任務將下載 並打開軟件包。

在還原方案中,當恢復軟件包時,NuGet將獲取準確版本。它不會執行任何升級。

此外,如果您已經安裝了最新版本的NuGet,現在找到了新的選擇的Unter 工具 - >選項 - >軟件包管理器 - >常規 - >允許的NuGet構建過程中下載缺失的軟件包我也建議使用

名稱說明了一切。如果解決方案配置爲使用某個NuGet軟件包,但該軟件包尚未安裝在您的開發機器上,NuGet會在您執行下一個build時自動爲您下載。

+0

不,實際上我們還沒有在這個項目中使用源代碼控制。說實話,我在這個問題上掙扎了幾個小時,在VS中做了各種瘋狂的事情,並在某些時候開始工作。我真的不知道發生了什麼變化,明天我可能會檢查我的同事的電腦。我記得的最後一件事是做一些清理和重建。無論如何,問題幾乎解決了,我相信這是一個VS2010錯誤。 – marcin32 2012-07-17 22:58:50

5

在我的情況下,這是因爲在項目文件夾中有一個packages.config文件,但在解決方案中沒有。這就是爲什麼我無法再正確地添加參考。從物理磁盤上刪除此文件,然後重新運行Install-Package命令。它應該現在正確添加此。

+0

這解決了我的問題!謝謝! – Phphelp 2013-01-08 23:11:45

+0

會喜歡它,如果你可以把它標記爲答案,那麼對於其他誰發現這 – 2013-05-29 22:25:48

+0

對不起,這個問題不是由我提出......我已經給你+1。 – Phphelp 2013-05-30 02:18:23

相關問題