由于有兴趣将我们的服务器系统迁移到.Net核心,我目前正在尝试VS2017。 我已经切换了几个小工具项目来定位.NetStandard 1.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)运行器。
我缺少哪些工具/安装程序?
更新 我已尝试使用Full Visual Studio 2017安装程序(社区),并且包 .NET Framework 4.5 Targeting Pack 添加了相关文件夹。 奇怪,因为服务器上已经安装了4.5多目标包。
在设置Build代理以使用完整的VS2017社区安装后,出现了许多其他问题,例如在相关项目中找不到 System 命名空间。
添加 dotnet restore 构建步骤解决了此问题,但其他名称空间缺失(缺少安装),等等。
使用.NETStandard项目构建完整的框架解决方案似乎依赖于.NET Core来构建,我不明白,因为我不是针对.NET Core。
答案 0 :(得分:9)
尝试从此处安装.NET Core SDK: .NET Core Downloads
并且,如有必要:
set MSBuildSDKsPath=C:\Program Files\dotnet\sdk\1.0.1\Sdks
答案 1 :(得分:5)
我通过安装.NET Core SDK并添加MSBuildSDKsPath解决了这个问题。我还将不同的SDK从本地安装的visual studio复制到构建服务器。截至目前,您必须在服务器上安装完整的Visual Studio安装,以便在没有这些权宜之计修复的情况下使构建工作。
安装.NET Core SKD from here。
将MSBuildSDKsPath添加到cmd中的环境变量。
设置MSBuildSDKsPath = C:\ Program Files \ dotnet \ sdk \ 1.0.1 \ Sdks
从您当地的企业或Visual Studio的专业安装中,将所需的sdk文件复制到您的ms构建服务器。在本地Visual Studio上复制此文件夹的内容:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks
到构建服务器上的此文件夹:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Sdks
如果修复了构建工具的此问题,请按ticket for this bug in github获取通知。
答案 2 :(得分:1)
如果您只使用SDK项目的解决方案,那么您所需要的就是使用dotnet restore && dotnet build
而不是nuget restore & msbuild
。
但如果它混合了解决方案(旧项目和SDK项目),则必须等到VS15.3发布