次のコマンドを使用して、Autofac nugetパッケージをプロジェクトにインストールしようとしています
Install-Package -Prerelease Autofac
しかし、エラーで失敗します
Install-Package : Failed to add reference to 'System.Runtime'. Please make sure that it is in the Global Assembly Cache.
.NET Framework 4.5.2(プロジェクトが対象とするバージョン)を再インストールしようとしましたが、「。NET Framework 4.5.2は既にインストールされています」というメッセージが表示されました。ただし、C:\Windows\Assembly\
にとって System.Runtime.dll
は完全に一致するものを検出しません(ただし、System.Runtime.ni.dll
、(それらは実際に同じアセンブリであることを示すようです)...)。
これについて何ができますか?
更新:どうやらGACの場所について混乱していたようです。 Amy 私を啓発し、C:\Windows\Microsoft.NET\Assembly
代わりにIdofind System.Runtime.dll
。 Visual Studioが機能しないのはなぜですか?
同じ問題がありました。
ここで解決策を見つけました: https://github.com/aspnet/WebHooks/issues/18
それを修正するために、<Reference Include="System.Runtime"/>
から.csproj
プロジェクトのファイルを再構築し、機能しました。
グローバルアセンブリキャッシュにあることを確認してください。
これは過度に役に立たないエラーメッセージです。それは本当の問題を説明するだけでなく、回避策を見つけるためにあなたを劇的に惑わせます。 .NET Frameworkアセンブリのアセンブリ参照は、neverGACから取得する必要があります。失敗モードの種類は非常に多くなる可能性があります 診断するのが面倒です 。参照アセンブリは、C:\ Program Files(x86)\ Reference Assembliesディレクトリから取得する必要があります。
インストールしようとしているAutofac nugetパッケージの.nuspecファイルを見ると、2つの異なるターゲットがサポートされています。 1つは、DNXCoreバージョン4.0.10-beta-22816用です。あなたがそれを使用していないことを願っています。そのプロジェクトは急速に変化しています。
もう1つは、.NET Portable、プロファイル259です。これにより、プロジェクトで.NET 4.5.x、Store、Phone80、およびPhone81をターゲットにできます。鈍いエラーメッセージがあなたに告げているのは、そのプロファイルを見つけるのが難しいということです。 Windowsエクスプローラーを使用して見てください。プロファイルはC:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile259ディレクトリに保存されています。必要なSystem.Runtime.dll参照アセンブリがあります。
まあ、確かにそれはうまくいきませんでした、私は根本的な理由を推測できません。
彼らは.nuspecファイルに微妙な間違いを犯しました。 Autofacのより安定したリリースを検討してください。ベータテスターにはなりたくないでしょう。また、4.5.2をターゲットにしないでください。それは意味がありません。興味深いことは何も追加されず、ユーザーに.NETインストールの更新を強制することはあまり合理的ではありません。