新项目-无效的NuGet版本字符串:“ VERSION”

时间:2019-04-29 21:29:58

标签: .net visual-studio msbuild nuget

当我从头开始创建新项目时,我实际上面临着这个编译问题:

Error description

为了解决该问题,我必须在包部分中编辑每个项目属性,并更改“包版本”配置的默认值。我必须将其从“版本”更改为一些有效的版本号,例如1.0.0.0。

Package version default value

当我从没有这个问题的一些同事中签出代码时,也会发生这种情况。

有办法解决吗?我的本地计算机上是否缺少环境配置?

我实际上正在使用Windows 10 x64和Visual Studio 2019,但在vs2017上也失败了。

2 个答案:

答案 0 :(得分:1)

.NET使用MSBuild来构建项目,这意味着所有.NET项目文件都只是MSBuild文件。 MSBuild具有将文件预处理为单个文件的选项(评估所有导入,并且它方便地放置xml注释,说明从中导入内容的文件名)。因此,要么启动一个“ Developer命令提示符”,cd到您的项目目录并运行msbuild -pp:pp.txt,要么从任何命令提示符下,cd到您的项目目录并运行dotnet msbuild -pp:pp.txt,然后打开您喜欢的文本或XML编辑器,并在pp.txt中搜索“版本”。找到它后,向上滚动直到它告诉您哪个文件定义了该属性。

我的猜测是,您的文件系统上的某个位置上有一个Directory.Build.props文件,在该文件上方您创建了将Version属性定义为值VERSION的所有项目。

答案 1 :(得分:0)

在运行恢复的系统上,检查您是否有名为“version”的预配置环境变量。

MS Build 有时会选择此值来恢复构建。

我无法理解无效值“最新”的来源。我们尝试调试全局项目属性的 Directory.build.props 文件。甚至 .csproj 也没有指定拼写错误或版本值(在我的情况下,版本设置为最新,对您来说,它可能为空或任何对每个 MS Build 无效的值。)

将版本从 15 更新到 16 也没有用。

我们检查了系统环境变量,发现其中一个变量是设置为最新的“VERSION”。删除此变量(例如,未设置版本)为我们解决了问题。