Asp.net 如果版本号为零,Nuget软件包还原将跳过版本号的修订部分
我有一个用于此项目的包配置文件Asp.net 如果版本号为零,Nuget软件包还原将跳过版本号的修订部分,asp.net,.net,nuget-package-restore,Asp.net,.net,Nuget Package Restore,我有一个用于此项目的包配置文件 <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Stylesoft.Common.Dev" version="1.0.1.0" targetFramework="net461" /> </packages> 我无法弄清楚发生了什么变化,
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Stylesoft.Common.Dev" version="1.0.1.0" targetFramework="net461" />
</packages>
我无法弄清楚发生了什么变化,以及如何使其恢复到与前面相同的文件夹结构中
任何帮助都将不胜感激 我也遇到了同样的问题。原因可能是nuget.exe版本已更新,现在正在下载路径中不包含修订的包,或者包所在的位置发生了更改。我自己也不确定这是在将源代码从TFS迁移到Azure DevOps时发生的。因此,构建管道不同,包位于新的提要上 我觉得最好的解决方案是使VisualStudio中的项目以服务器构建所期望的方式在本地工作。因此,当它在文件夹中查找包时,不包括其名称中的修订号,这就是它们应该在的位置 因此,修复方法是使用相同的feed和nuget客户端重新安装包。visual studio软件包管理器应将软件包安装到正确的位置。因此,您可以确保拥有正确的版本,也可以只希望版本正常,然后继续执行以下操作:
这可能需要一些时间,具体取决于您有多少软件包和项目,但这将有助于确保您的项目引用提示路径与软件包的安装位置相匹配。这是否回答了您的问题?tl;我链接到的问题:从NuGet 3.4开始,如果修订号为零,NuGet将忽略它。这大概是因为NuGet试图与SemVer对齐,SemVer只使用版本的前3部分。您只需删除并重新添加该包引用。
<Reference Include="Stylesoft.Common.Dev, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\SharedPackages\Stylesoft.Common.Dev.1.0.1.0\lib\net40\Stylesoft.Common.Dev.dll</HintPath>
</Reference>
..\..\..\..\..\SharedPackages\Stylesoft.Common.Dev.1.0.1.0\lib\net40\Stylesoft.Common.Dev.dll