Msbuild 如何解决生成错误:“框架”的引用程序集;。NETPortable,版本=v5.0“;未使用CI生成工具找到

Msbuild 如何解决生成错误:“框架”的引用程序集;。NETPortable,版本=v5.0“;未使用CI生成工具找到,msbuild,teamcity,.net-standard,build-tools,build-agent,Msbuild,Teamcity,.net Standard,Build Tools,Build Agent,我最近和我的TeamCity构建代理有一些麻烦。我开始在构建机器上耗尽空间,因此我选择删除一些旧的Visual Studio(2013)实例,并切换到仅使用Visual Studio 2017构建工具(其中包括卸载以前完整安装的VS2017 Enterprise)。我认为由于这个过程,一些重要的构建组件被无意中删除了,但我不清楚它们到底是什么。我的项目使用NuGet软件包的组合,其中包括NETStandard libraries v1.3和一些.NET libraries 4.6.1 frame

我最近和我的TeamCity构建代理有一些麻烦。我开始在构建机器上耗尽空间,因此我选择删除一些旧的Visual Studio(2013)实例,并切换到仅使用Visual Studio 2017构建工具(其中包括卸载以前完整安装的VS2017 Enterprise)。我认为由于这个过程,一些重要的构建组件被无意中删除了,但我不清楚它们到底是什么。我的项目使用NuGet软件包的组合,其中包括NETStandard libraries v1.3和一些.NET libraries 4.6.1 framework。生成错误只发生在我的netstandard1.3可移植库上,它们都读取:

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\
bin\Microsoft.Common.CurrentVersion.targets(1122, 5): error MSB3644: 
The reference assemblies for framework ".NETPortable,Version=v5.0" were not found. 
To resolve this, install the SDK or Targeting Pack for this framework version
or retarget your application to a version of the framework for which you have the SDK
or Targeting Pack installed. 
Note that assemblies will be resolved from the Global Assembly Cache (GAC)
and will be used in place of reference assemblies. 
Therefore your assembly may not be correctly targeted for the framework you intend

以前,这些项目在该服务器上构建得很好,因此我假设任何符合.NETPortable,Version=v5.0库条件的库都已删除。我怎样才能把它们拿回来?从我所看到的构建工具来看,我已经安装了所有可用的功能、netcore和所有框架,但仍然无法工作。任何建议都是非常受欢迎的。

为了解决这个问题,我尝试了一些东西,我将在这里列出,然后告诉你我的假设

  • 运行MS构建工具的修复(VS2017)
  • 再次尝试安装VS2013(请参阅下面的原因)
  • 将我的项目从旧的PCL样式的项目格式转换为官方的.netstandard项目类型
  • 我的怀疑是MS构建工具并没有被破坏,尽管在各种论坛上阅读表明VS2013可能具有支持PCL的较旧目标,而这些目标在VS2017中本机不再包含。我尝试重新安装它,但没有帮助,所以我认为最终的解决方案非常简单,只需转换为正式的netstandard项目(从遗留的PCL项目类型),然后一切都重新开始构建

    无论出于何种原因,我发现我不得不随后切换到使用新的MSTest NuGet包,以便我的测试也能再次工作