0
我们的一个底层项目通过NuGet打包并分发(内部),以便其他团队可以使用该库 - 我们称之为“Core”。随着的NuGet 1.x中,我们得到了我们的.csproj文件看起来是这样的一个参考:NuGet 2.0的.csproj文件中的新参考项目是什么?
<Reference Include="Core">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Core.1.4.1.381\lib\net40\Core.dll</HintPath>
升级到2.0的NuGet后,同样的参考如下:
<Reference Include="Core, Version=1.4.1.381, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Core.1.4.1.381\lib\net40\Core.dll</HintPath>
在Include
属性,版本问题?我明确地将SpecificVersion
设置为false。我已经浏览了MSBuild Project File Schema Reference,但没有看到关于如何解析此属性的任何信息。
感谢您对此的意见。
-SethO
谢谢,尼科。您是否能够找到关于在Reference标签中解析/使用Include属性数据的信息?我仍在试图弄清为什么它开始出现。 – SethO
你想知道为什么......? 您可以看看codeplex上的源代码: http://nuget.codeplex.com 照顾NuGet程序集(该项目称为CommandLine),没有很多程序集引用Microsoft.Build API .. 我敢打赌,'NuGet.Common.MSBuildProjectSystem'类的** AddReference **方法中发生了一些变化。 看看相应的文件的历史(** MSBuildProjectSystem.cs **) 祝你好运:) – Nico
我明白,NuGet的源代码把它放在那里。我更感兴趣的是如何在接收端解析和使用它。知道将'SpecificVersion'设置为false可以让MSBuild忽略'Reference'中的版本,这使得我的查询在这一点上是纯粹学术的。您已经减轻了对“Include”属性中额外数据的担忧。 – SethO