nuget 4.6.2中*的含义

nuget 4.6.2中*的含义,nuget,Nuget,nuget 4.6.2中*通配符的含义是什么 <PackageReference Include="Autofac"> <Version>*</Version> </PackageReference> * 正如您所指定的,*是通配符。这意味着您正在构建的包需要某种版本的Autofac正如您指定的那样,*是通配符。这意味着您正在构建的软件包需要某种版本的Autofac,而文档又包括: 当使用PackageReferenc

nuget 4.6.2中*通配符的含义是什么

   <PackageReference Include="Autofac">
      <Version>*</Version>
    </PackageReference>

*

正如您所指定的,
*
是通配符。这意味着您正在构建的包需要某种版本的
Autofac

正如您指定的那样,
*
是通配符。这意味着您正在构建的软件包需要某种版本的
Autofac

,而文档又包括:

当使用PackageReference格式时,NuGet还支持使用通配符表示法,
*
,用于数字的主要、次要、修补程序和预发布后缀部分。packages.config格式不支持通配符

当涉及到预发布时,文档有点不清楚:

解析版本范围时不包括预发布版本。使用通配符(
*
)时,会包括预发行版本。例如,版本范围
[1.0,2.0]
不包括2.0-beta,但通配符符号
2.0-*
包括

我的经验是,当通配符在破折号之后,而不是在破折号之前时,它将接收预发布

作为一个工作示例,在编写本文时,xunit的版本为
2.3.1
2.4.0-beta.1.build3958
。以下是我得到的结果:

Version attribute           Version installed
*                           2.3.1
2.*                         2.3.1
2.4.*                       Error
2-*                         2.0.0
2.4.0-*                     2.4.0-beta.1.build3958
本文件反过来指的是文件,其中包括:

当使用PackageReference格式时,NuGet还支持使用通配符表示法,
*
,用于数字的主要、次要、修补程序和预发布后缀部分。packages.config格式不支持通配符

当涉及到预发布时,文档有点不清楚:

解析版本范围时不包括预发布版本。使用通配符(
*
)时,会包括预发行版本。例如,版本范围
[1.0,2.0]
不包括2.0-beta,但通配符符号
2.0-*
包括

我的经验是,当通配符在破折号之后,而不是在破折号之前时,它将接收预发布

作为一个工作示例,在编写本文时,xunit的版本为
2.3.1
2.4.0-beta.1.build3958
。以下是我得到的结果:

Version attribute           Version installed
*                           2.3.1
2.*                         2.3.1
2.4.*                       Error
2-*                         2.0.0
2.4.0-*                     2.4.0-beta.1.build3958

我想获得可用软件包的最高版本。我怎样才能做到这一点?依赖项版本最高似乎无法使用PackageReference@user656822:您所拥有的应该已经获得最新的GA版本。我认为如果你想要最新的预发布版本,你需要已经知道主要/次要版本,通过它的外观。因此,在您的示例中,应该已经在使用Autofac 4.7.1。对于nuget版本4.6.2,情况并非如此。在这个版本中,它将得到更低的可能性,即2。something@user656822:嗯。。。你能提供一个完整的项目例子,我们可以实验吗?(我使用的是.NET核心项目,我使用
dotnet restore
进行恢复,效果很好。随着工具和文件格式的巨大变化,问题越精确,帮助就越容易。)您可以在新项目上测试这种行为,只需将packageReference添加到csproj即可。nuget并尝试使用nuget restore对其进行恢复。我认为dotnet resote的工作原理类似于4.4.3版之前的nuget,但新版本的nuget会下载更低版本的*。要下载newst包,您必须为其提供如下版本:“[*,)”我想获得可用软件包的最高版本。如何实现此目标?依赖关系版本最高似乎无法使用PackageReference@user656822:您所拥有的应该已经获得最新的GA版本。我认为如果您想要最新的预发布版本,您需要通过外观了解主要/次要版本在你的例子中,应该已经使用了Autofac 4.7.1。这对于nuget版本4.6.2是不正确的。在这个版本中,它将得到更低的可能性,即2。something@user656822:嗯……你能提供一个完整的项目示例让我们进行实验吗?(我使用的是.NET核心项目,我使用
dotnet restore
进行恢复,效果很好。随着工具和文件格式的巨大变化,问题越精确,帮助你就越容易。)您可以在新项目上测试此行为,只需将packageReference添加到csproj.nuget,并尝试使用nuget restore对其进行解析。我认为dotnet restore的工作方式类似于4.4.3版之前的nuget,但新版本的nuget会下载较低版本的*。要下载newst包,您必须给它以下版本:“[*,”