2012-06-26 69 views
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

回答

1

我试过VS2010下, 如果指定:

<SpecificVersion>False</SpecificVersion> 

<Reference></Reference>下的版本将被忽略。

+0

谢谢,尼科。您是否能够找到关于在Reference标签中解析/使用Include属性数据的信息?我仍在试图弄清为什么它开始出现。 – SethO

+0

你想知道为什么......? 您可以看看codeplex上的源代码: http://nuget.codeplex.com 照顾NuGet程序集(该项目称为CommandLine),没有很多程序集引用Microsoft.Build API .. 我敢打赌,'NuGet.Common.MSBuildProjectSystem'类的** AddReference **方法中发生了一些变化。 看看相应的文件的历史(** MSBuildProjectSystem.cs **) 祝你好运:) – Nico

+0

我明白,NuGet的源代码把它放在那里。我更感兴趣的是如何在接收端解析和使用它。知道将'SpecificVersion'设置为false可以让MSBuild忽略'Reference'中的版本,这使得我的查询在这一点上是纯粹学术的。您已经减轻了对“Include”属性中额外数据的担忧。 – SethO

相关问题