0

VS2012 経由で追加された特定の nuget インストール パッケージで copylocal 値が true に設定されている場合に対処している問題があります。他のものには値が設定されていません。

nuget は、copylocal を追加するタイミングと追加しないタイミングをどのように認識しますか?

欠落している nupkg ファイルに欠落している設定はありますか?

nuget のソース コードを (簡単に) 見たところ、copylocal 値が存在する場合は true に設定する必要があります。

例えば

Install-Package System.Web.Mvc

に解決

    <Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>

でも

Install-Package Newtonsoft.Json

解決する

    <Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
4

1 に答える 1

0

私はこれを理解しました。

答えの一部はここにあります: http://msdn.microsoft.com/en-us/library/vslangproj.reference.copylocal

「Newtonsoft.Json」では、csproj ファイルに copylocal=true が明示的に設定されていませんが、copylocal=true が設定されているかどうかにかかわらず、ビジュアル スタジオは自動的に評価するようです。

nuget は、copylocal の値を決定するために DTE 統合に依存しているようです。

VS2012 から msbuild を実行してこれをテストし、System.Web.MVC を GAC から削除すると、bin ディレクトリにコピーされます。

これは、System.Web.MVC などのビンに dll が存在しないコンパイル済みの Web サイトを開きたい場合にのみ問題になると思います。

この場合の VS は、GAC を参照する必要があることを知りません。

于 2013-08-29T08:45:41.663 に答える