.net 新项目-无效的NuGet版本字符串:';版本';

.net 新项目-无效的NuGet版本字符串:';版本';,.net,visual-studio,msbuild,nuget,.net,Visual Studio,Msbuild,Nuget,当我从头开始创建一个新项目时,我实际上面临着这个编译问题: 为了解决这个问题,我必须在package部分编辑每个项目属性,并更改“package Version”配置的默认值。我必须将其从“版本”更改为一些有效的版本号,如1.0.0.0 当我从一些没有这个问题的同事那里签出代码时,也会发生这种情况 有办法解决吗?我的本地计算机上是否缺少环境配置 实际上,我使用的是Windows 10 x64和Visual Studio 2019,但它在vs2017上也失败。.NET使用MSBuild生成项目

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

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

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

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


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

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


我的猜测是,您的文件系统中的某个位置上有一个文件,您在该位置上创建的所有项目都将
Version
属性定义为值
Version

,在正在运行还原的系统上,请检查是否有名为“Version”的预配置环境变量

MS Build有时会选择此值来恢复生成

我无法理解无效值“latest”的来源。我们尝试调试全局项目属性的Directory.build.props文件。甚至.csproj也没有指定打字错误或版本值(在我的例子中,版本被设置为最新版本,对于您来说,它可以是null或任何根据MS构建无效的值)

将版本从15更新到16也没有帮助


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

如果您将cd刻录到项目所在的目录,并从命令行运行
dotnet--info
,它使用的SDK版本是什么?如果从命令行(
dotnet new console
)创建项目,是否可以生成该项目,或者该项目是否会以与VS new projects失败相同的方式失败?重新启动VS,创建一个新的.net核心项目,然后会发生相同的错误?根据上面的图片,如果你创建一个新项目,默认情况下会设置一些信息,比如作者和公司,你会使用一些设置,比如nuget.config或Directory.Build.props吗?我没有使用任何特别的设置。默认信息仅适用于此项目,如果我从头开始一个新项目,同样的情况也会发生。正如zivkan所建议的,使用dotnet命令检查属性值。project=>properties中的值与.csproj中的值相对应。我认为有东西覆盖了你的.csproj中的包版本值,这导致了错误。嗨@zivkan,谢谢你的回答。我执行了您的指令,但我甚至找不到“VERSION”字符串,也找不到“VERSION”的来源。无论我使用的是Net Core还是Net Framework,旧的VS2017和新的VS2019都会出现这种情况。另一个用于调试MSBuild问题的工具正在运行
MSBuild-bl
,它编写了一个
MSBuild.binlog
,您可以使用它来读取。它将向您显示失败的任务,然后您可以使用树和搜索来查看值是什么,也许还可以跟踪属性更改的位置。但老实说,如果pp文件不包含它,我会非常惊讶。这表明您的.NET Core SDK已损坏,任务正在使用未传递给它的值。binlog可以帮助您找到答案。您的答案必须包含代码中的示例。。。毕竟,这个问题由来已久。。。