当我从头开始创建新项目时,我实际上面临着这个编译问题:
为了解决该问题,我必须在包部分中编辑每个项目属性,并更改“包版本”配置的默认值。我必须将其从“版本”更改为一些有效的版本号,例如1.0.0.0。
当我从没有这个问题的一些同事中签出代码时,也会发生这种情况。
有办法解决吗?我的本地计算机上是否缺少环境配置?
我实际上正在使用Windows 10 x64和Visual Studio 2019,但在vs2017上也失败了。
答案 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”。删除此变量(例如,未设置版本)为我们解决了问题。