3

私はWindows Phone用のVS 2010 Expressを使用して、Windows Phoneアプリを作成しています。次に、VS 2012 をインストールし、RestSharp を使用して JSON/REST サービスを使用するデスクトップ アプリを作成しました。Express バージョンではプラグインがサポートされていないため、完全な VS 2010 Ultimate を入手し、Nuget をインストールしました。Windows Phone ライブラリ プロジェクトを作成し、RestSharp パッケージを追加すると、参照に表示されますが、そのクラスのいずれにもアクセスできません (RestSharp の使用には赤い下線が引かれています)。また、それを削除して [参照の追加] から再度追加すると、互換性のない参照エラー ウィンドウが表示されます。

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 に変更した場合にも表示されます。

誰かが同様の問題を解決しましたか?

4

2 に答える 2

5

私の場合、これは、プロジェクト フォルダーに packages.config ファイルがあったが、ソリューションにはなかったことが原因でした。これが、参照を適切に再度追加できなかった理由です。このファイルを物理ディスクから削除し、Install-Package コマンドを再実行してください。これで正しく追加されるはずです。

于 2012-08-31T09:25:49.327 に答える
2

ソース管理を使用していますか?

パッケージの復元を有効にするソリューションをまだ設定していない可能性があります(NuGet のドキュメント)。

ソリューション エクスプローラーでソリューション ノードを右クリックし、[NuGet パッケージの復元を有効にする] を選択します。

その後、ソリューション エクスプローラーにはさらにいくつかの項目が含まれ、packagesソリューション フォルダーに自動的に追加された新しいフォルダーが表示されます。このフォルダーにはインストール済みの NuGet パッケージが含まれるため、バージョン管理に追加する必要があります。

それでおしまい。

詳細を知りたい場合は、これが(自動的に)何をするかについての詳細を以下に示します。

NuGet.exe と NuGet.targets MsBuild ファイルを含む .nuget という名前のソリューション フォルダーが追加されました。また、NuGet.targets MsBuild タスクをインポートするように、ソリューション内のすべてのプロジェクトを変更しました。

これにより、プロジェクトがコンパイルされるたびに、ビルド タスクが各プロジェクトの packages.config ファイルを調べ、そのファイル内の各パッケージについて、対応するパッケージが packages フォルダー内に存在することを確認します。不足しているパッケージについては、ビルド タスクがパッケージをダウンロードして展開します。

復元シナリオでは、NuGet はパッケージを復元するときに正確なバージョンを取得します。アップグレードは実行されません。

さらに、最新の NuGet バージョンがインストールされている場合は、[ツール] -> [オプション...] -> [パッケージ マネージャー] -> [全般] -> [ビルド中に NuGet が不足しているパッケージをダウンロードできるようにする]の下に新しいオプションが見つかります。これも使用することをお勧めします。

名前がすべてを物語っています。ソリューションが特定の NuGet パッケージを使用するように構成されていても、そのパッケージがまだ開発用コンピューターにインストールされていない場合、次のbuild.

于 2012-07-17T15:20:01.170 に答える