3
The type 'System.Net.Http.HttpMessageHandler' is defined in an 
assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 

\Global.cs  

機能しようとしていたパッケージは、aspnetwebstack の Nightly Builds の nuget の AspNetWebApi です。

TFS リファレンスで問題が発生しました。現在のプロジェクトに nuget install-package を作成し、Web サイト プロジェクトであるためすべての DLL がローカルの場所である場合、この奇妙なメッセージが表示されます。ソリューション全体を再構築するとスムーズに実行されますが、エラーをコンパイルする必要があるCSファイルのわずかなものを変更すると、エラーが繰り返されます。

パッケージdirとpackages.configなしで参照をインストールするだけでnugetを作成できますか?

誰かがこの問題の解決策を持っているのだろうか?

または、参照 nuget と tfs のプラクティスに関する優れた記事があれば、お勧めします。

4

2 に答える 2

1

簡単に言えば、いいえ、nugetを正しく機能させたい場合は、パッケージのdirと構成ファイルを削除することはできません。Nugetは、packages.configおよびpackageフォルダーを読み取り、binフォルダーにコピーするカスタムターゲットをプロジェクトファイルに追加します。また、nugetがプロジェクトに追加するdll refは、packagesフォルダーを指すヒントパスを使用します。パッケージフォルダを削除すると、参照は解決されません。

例えば:

<Reference Include="Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\packages\Microsoft.SqlServer.2008R2.Smo.1.0.0\lib\net40\Microsoft.SqlServer.Management.Sdk.Sfc.dll</HintPath>
</Reference>
于 2012-10-03T13:28:41.323 に答える
0

プロジェクトの 1 つでまったく同じメッセージを受け取りました。

Visual Studio 2012 では、"Assemblies > Extensions" から System.Net.Http を含めました。ダイアログ ボックスの上部にある "Targeting" ステートメントには、".NET Framework 4.5.1" と表示されます。バージョン2.0.0.0の「System.Net.Http」を確認しました。しかし、私はまだこのエラーメッセージを受け取っていました.

Visual Studio がこのアセンブリをローカル フォルダーにコピーしていないことが判明しました。おそらく、私のマシンのどこかで他のバージョンのいずれかを取得しています。

"Copy Local" を変更する方法は次のとおりです。ソリューション エクスプローラーで "System.Net.Http" 参照を強調表示し、"F4" キーを押してそのプロパティ ウィンドウに移動します。「ローカルにコピー」が「False」に設定されている場合は、「False」をクリックして「True」に変更します。

これで問題は解決しました。

于 2013-09-05T05:34:01.883 に答える