Msbuild 在生成服务器上生成时缺少.NetStandard项目的include
由于对将服务器系统迁移到.Net core的兴趣,我目前正在工作中试用VS2017。 我已经将几个小型工具项目切换到target.netstandard1.2(重新创建和移动文件),所有内容都在本地构建 但是,当我请求在TeamCity 10.0.5服务器上构建时,构建失败,并显示以下消息(项目名称已编辑): E:\TeamCity\buildAgent1\work\467cb2a824afdbda\Source\{PROJECT FOLDER}{PROJECT}.csproj错误MSB4019:未找到导入的项目“C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props”。确认声明中的路径正确,并且文件存在于磁盘上 文件夹Microsoft.NET.Sdk确实存在于我的计算机上,但不存在于生成服务器上 我已经安装了Visual Studio 2017的构建工具,并安装了.Net Core 1.1 SDK,构建配置使用了使用VS2017的Visual Studio(sln)运行程序 我缺少哪套工具/安装程序 更新: 我已经试用了完整的Visual Studio 2017安装程序(社区),包.NET Framework 4.5 Targeting Pack添加了有问题的文件夹。 奇怪,因为服务器上已经安装了4.5多目标包 在将Build agent设置为使用完整的VS2017社区安装后,出现了一系列其他问题,例如在相关项目中找不到系统名称空间 添加dotnet恢复构建步骤修复了此问题,但其他名称空间丢失(缺少安装),等等Msbuild 在生成服务器上生成时缺少.NetStandard项目的include,msbuild,teamcity,build-server,.net-standard,Msbuild,Teamcity,Build Server,.net Standard,由于对将服务器系统迁移到.Net core的兴趣,我目前正在工作中试用VS2017。 我已经将几个小型工具项目切换到target.netstandard1.2(重新创建和移动文件),所有内容都在本地构建 但是,当我请求在TeamCity 10.0.5服务器上构建时,构建失败,并显示以下消息(项目名称已编辑): E:\TeamCity\buildAgent1\work\467cb2a824afdbda\Source\{PROJECT FOLDER}{PROJECT}.csproj错误MSB4019
使用.NETStandard项目构建完整的框架解决方案似乎依赖于.NET Core来构建,我不明白这一点,因为我不是针对.NET Core。尝试从这里安装.NET Core SDK: 如有需要,
set MSBuildSDKsPath=C:\Program Files\dotnet\sdk\1.0.1\Sdks
我通过安装.NET Core SDK并添加MSBuildSDKsPath解决了这个问题。我还将不同的SDK从本地安装的visual studio复制到构建服务器。到目前为止,您必须在服务器上安装完整的VisualStudio安装,以便在没有这些权宜之计修复的情况下使构建正常工作
如果您仅将解决方案用于SDK项目,那么您所需要的只是使用
dotnet restore&&dotnet build
而不是nuget restore&msbuild
。
但如果它是混合解决方案(旧项目和SDK项目),您将不得不等到VS15.3发布后才能看到同样的问题。我猜转换到.csproj只完成了一半?我有完全相同的问题。复制生成服务器上的SDK文件夹无法解决问题。安装.NET Core SDK也无法解决此问题。相关的github msbuild问题:。已安装NET Core SDK。:)从BuildTools 15.3开始,不再需要设置此变量。这些工具可以直接查找和使用已安装的SDK。此外,BuildTools不再包含自己的SDK私有版本。这正是我最终要做的。所有的手工复制程序集都很烦人。但只要管用。☺️我现在在Core 2+
中遇到了这个问题,当前的.NET SDK不支持针对.NET Core 2.0。目标为.NET Core 1.1或更低版本,或者使用支持.NET Core 2.0的.NET SDK版本
我通过将SDK目标从\dotnet\SDKs
目录复制到\MSBuild\SDKs
目录解决了该错误。然后我还必须确保在TeamCity中使用NUGet 4+