C# 属性";版本;在元素中<;PackageReference>;未被承认

C# 属性";版本;在元素中<;PackageReference>;未被承认,c#,.net,.net-core,msbuild,.net-standard,C#,.net,.net Core,Msbuild,.net Standard,我有很多针对.NET4.6.1的项目的解决方案。在我们的MS build服务器上,它构建得很好。我最近添加了一个针对.NET标准1.3的项目。这不会在生成服务器上生成。它可以在本地使用VS2017进行构建。Build server VS刚刚更新了所有最新版本 我得到的生成错误是:元素中的属性“Version”无法识别。 我得到了一些参考资料。下面是从项目文件中提取的一个: 有什么想法吗?看起来您不是在使用VS 2017(/build tools)中包含的MSBuild.exe进行构建,而是使用.

我有很多针对.NET4.6.1的项目的解决方案。在我们的MS build服务器上,它构建得很好。我最近添加了一个针对.NET标准1.3的项目。这不会在生成服务器上生成。它可以在本地使用VS2017进行构建。Build server VS刚刚更新了所有最新版本

我得到的生成错误是:
元素中的属性“Version”无法识别。

我得到了一些参考资料。下面是从项目文件中提取的一个:


有什么想法吗?

看起来您不是在使用VS 2017(/build tools)中包含的MSBuild.exe进行构建,而是使用.NET Framework附带的MSBuild.exe,它是一个旧版本(不会更新)


考虑使用查找MSBuild.exe

我使用NuGet版本3.4.4.1321获得了相同的生成错误消息

我运行了
nuget更新-self

Checking for updates from https://www.nuget.org/api/v2/.
Currently running NuGet.exe 3.4.4-rtm-1321.
Updating NuGet.exe to 5.1.0.
Update successful.

之后,当我运行nuget时不再出现生成错误,需要正确版本的MSBuild来生成具有version属性的包引用的项目文件。来自Team City的此屏幕截图显示了一个示例。请注意名称“Microsoft Build Tools 2017”。这是您希望在开发人员PC或目标服务器上安装的软件包


这将有助于需要在生成服务器上生成.NET应用程序/其他需要MSbuild的应用程序的CI/devops/build人员。

如果有人遇到此线程,请参阅下面的.NET Framework项目解决方案

<PackageReference Include="System.Diagnostics.Process">
    <Version>4.3.0</Version>
</PackageReference>

4.3.0

可能是MSBuild版本不匹配。您的生成服务器可能需要更新的版本。计算机上的生成引擎版本为15.9.21这看起来很有希望,但是我不知道如何使生成服务器实际使用新的MSBuild。我不确定VSWhere在图片中的位置。我正在VS中创建构建定义,并以这种方式开始构建。此外,我无法想象,当我只想使用最新的MSBuild时,为什么必须使用VSWhere。很明显,我对这个过程的工作原理还不完全了解。这取决于您使用什么作为构建服务器。。例如,TFS为使用最新VS版本的构建提供了任务(除非您使用的是XAML构建,但它们已被弃用),谢谢!就是这样,在我的例子中,我试图构建的项目使用了Cake,所以我必须做一些调整,以这样更改默认的MSBuild路径:在我的例子中,nuget是最新的,在v5.1.0版本,我仍然得到错误谢谢,这个解决方案适用于visual studio 2015!