make nuget寻找满足通配符

问题描述 投票:0回答:3

使用SDK风格的CSPROJ.

Scenario:

CSPROJ:

<PackageReference Include="MyNamespace.Package" Version="3.5.4-*" />
<PackageReference Include="MyNamespace.Other" Version="3.5.3" />

安装:

MyNamespace.Package 3.5.4-pre.1
MyNamespace.Other 3.5.3
nuget回购:

MyNamespace.Package 3.5.4-pre.1 MyNamespace.Package 3.5.4-pre.2 MyNamespace.Other 3.5.3 MyNamespace.Other 3.5.4 MyNamespace.Other 3.6.0
I不希望Nuget修改任何

packageReference条目。 我希望nuget安装满足通配符的最新最新MyNamespace.Package,在这里将是3.5.4-pre.2有任何内在方法可以实现这一目标吗?

    
在这里查看浮动版本:

nugetpackagerference格式 - 浮动版本

.net nuget csproj nuget-package-restore
3个回答
4
投票

写了一个问题后,我提出了我没有尝试过的另一件事。

要让它再次查看所有存储库(或选定的存储库),然后根据通配符软件包分辨率使用命令安装:

3
投票

-NoCache

将使它忽略“已知”软件包,而不是您的任何参考文献。它将找到满足通配符并安装它的较新包装。

我不知道使用预释放套件来做到这一点的方法,但我相信PackageReference和Wildcards

<PackageReference Include="I.want.the.latest.version.of" Version="*" /> <PackageReference Include="I.want.the.latest.version.3.of" Version="3.*" />

与MSBUILD /RESTORE一起可以实现这一目标。我在项目中做了完全相同的事情,我想在每个构建中消耗最新版本的某些软件包,而无需修改任何packageReference条目。

MSBUILD/RESTORE TARGITS支持一个称为RestoreForce(https://learn.microsoft.com/en-us/nuget/nuget/reference/mmsbuild-targets#restore-target)的属性。

Nuget.exeRestore,截至撰写本文(版本5.4.0.6315),似乎在PackageReference中支持通配符(

0
投票

2025答案:
如本示例所示:

<RestoreNoCache>

我在任何地方都找不到记录的属性,尽管类似的属性在此处记录了:Https://learn.microsoft.com/en-us/nuget/reference/mmsbuild-targets

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.