Configuration 生成时的Nuget更新

Configuration 生成时的Nuget更新,configuration,visual-studio-2017,nuget,Configuration,Visual Studio 2017,Nuget,我很难让我的项目在重建时更新我们的内部nuget包。我们有几个核心参考库,每次构建依赖它的项目时,我们都需要这些核心参考库 我正在使用visual studio 2017和nuget 4.7.1 我已经将有问题的项目转换为使用包引用方法,而不是package.config,但是它在项目文件中生成的详细信息与教程所说的不同 以下是我在项目文件中的内容: <PackageReference Include="SMSCore"> <Version>10.5.0</Ve

我很难让我的项目在重建时更新我们的内部nuget包。我们有几个核心参考库,每次构建依赖它的项目时,我们都需要这些核心参考库

我正在使用visual studio 2017和nuget 4.7.1

我已经将有问题的项目转换为使用包引用方法,而不是package.config,但是它在项目文件中生成的详细信息与教程所说的不同

以下是我在项目文件中的内容:

<PackageReference Include="SMSCore">
  <Version>10.5.0</Version>
</PackageReference>
<PackageReference Include="STMICore">
  <Version>10.5.0</Version>
</PackageReference>

10.5.0
10.5.0
nuget文档说明了这一点:

<!-- Accepts any 6.x.y version. -->
<PackageReference Include="ExamplePackage" Version="6.*" />
<PackageReference Include="ExamplePackage" Version="[6,7)" />

我已尝试更改我的项目文件,使其看起来像参考资料。
我尝试过以项目文件开始时的格式使用版本控制方法

似乎什么都不管用。
也许我看错了文档?
我对定义和使用nuget存储库非常陌生,所以如果它很简单,我也不会感到惊讶

任何帮助都将不胜感激。多谢各位

我想我需要知道的是,在构建项目时,是否有可能让项目更新其所有依赖的nuget包

如果您使用的是
package.config
,那么更新其所有依赖的nuget包将非常容易。我们只需要添加一个预构建事件来更新它:

<YourNuGetCLIPath>\nuget.exe update "YourSolutionFile.sln or PackageId"
如果您使用的是
非SDK
+
PackageReference
,我还没有找到任何有效的解决方法

因此,如果对使用
package.config
没有限制,我认为
package.config
最适合您


希望这能有所帮助。

您是否有一个项目文件可以复制您的问题,我们可以实际试用?
6.*
有效吗?将
Version
作为元素或属性与msbuild相同,该属性只是语法上的改进。没错,将版本从子元素移动到父元素的属性(如示例中所示)并不重要,它仍然有效。我想我需要知道的是,在构建项目时,是否有可能让项目更新其所有依赖的nuget包?如果是,怎么做?我试图组装一个空的windows窗体应用程序,并将我的核心包扔进其中,它们的行为方式相同。当我使用“[10,6]”时方法它甚至不再允许我打开nuget软件包管理器。@DrBoon,有没有理由使用
Packagereference
而不是
package.config
?如果使用
package.config
,这将非常容易。一点也没有。实际上,我刚刚将我的项目切换回package.config以尝试以这种方式工作。我想我已经被文档误导了,因为有太多的废话支持包引用是多么美妙。@DrBoon,Packagereference仍然是一个相对较新的产品,主要与新的项目类型SDK一起工作。如果它与非SDK项目一起工作,将会有一些额外的问题。我将在后面给出详细的解释。谢谢。我在好几个地方读到过,就nuget而言,在预构建步骤中使用update太迟了。但我会试一试,看看会发生什么:)我需要在packages.config中定义版本范围吗?或者update命令会忽略这一点吗?@DrBoon,不,不需要在packages.config.update com中定义版本范围mand将把包更新到最新版本。好的,我真的很难在预构建上获得正确的语法。在项目属性的“构建事件”选项卡中,我试图将其作为预构建事件:C:\Program Files(x86)\Nuget\Nuget.exe更新,但它不起作用。很明显,我做错了什么,它一定很简单,因为我无法用谷歌搜索答案:/Nevermind。语法没有问题。Nuget在解决方案中执行了几个太深的文件夹。我需要将其恢复过来。。。
dotnet add "$(ProjectPath)" package PackageID