VS/NuGet如何决定创建csproj引用,这些差异意味着什么?

Cha*_*ion 9 c# nuget visual-studio-2012

当我安装NuGet包时,它通常使用新引用更新我的proj文件,如下所示:

<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

这有两个部分,有时不添加:

, Version=4.5.0.0...
Run Code Online (Sandbox Code Playgroud)

 <SpecificVersion>False</SpecificVersion> <!-- sometimes this is present but set to true -->
Run Code Online (Sandbox Code Playgroud)

每个设置有什么含义?NuGet如何选择在安装/更新包时指定哪个组合?

小智 -2

不用担心这个。我唯一一次冒险进入 csproj 是在我编写一些笨拙的代码时将构建视图设置为 true。如果你没有任何问题那就没问题了。具体版本和版本号是 .net 中 dll 地狱黑暗时代的残余,当时我们在 GAC 中拥有多个版本的 Dll。我唯一一次注意到它们是当我引用一些 COM 可见程序集时。