我正在尝试使用TeamCity / MSBuild构建我的解决方案。 它是一个WebAPI项目,它在PCL中与移动客户端共享一些实体。
我看到在构建服务器上安装PCL引用库有一些注意事项,我认为我已经对它进行了排序 (Building Portable Class Library Project in build server fails)
但是,我在构建可移植类库时遇到错误,如下所示:
[11:20:49][Doctrina.Pcl.Entities\Doctrina.Pcl.Entities.csproj] _GetSdkToolPaths
[11:20:49][_GetSdkToolPaths] GetSdkPropertyValue
*[11:20:49][GetSdkPropertyValue] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(975, 5): error APPX3212: SDK root folder for 'Portable 7.0' cannot be located. See http://go.microsoft.com/fwlink/?prd=12560&pver=1.0&plcid=0x409&ar=MSDN&sar=PlatformMultiTargeting&o1=Portable&o2=7.0 for more information.*
"帮助"链接没有任何用处,在寻找任何解决方案方面似乎都非常具有谷歌抗性。
我根本没有在构建服务器上安装Visual Studio 2015,但是我已经安装了PortableClassLibrary工具,从我的本地PC上复制了参考目录等,根据其他相关的SO问题。< / p>
请帮忙吗?
答案 0 :(得分:4)
尝试构建面向.NET Standard的可移植项目时遇到此错误。
我设法通过从安装了Visual Studio的计算机上复制而不在我的构建服务器上安装Visual Studio来解决它:
我后来尝试构建一个针对.NET Core的WebApi项目(这是一个xproj文件),只要我将XProj文件添加到我的解决方案中,我就不得不复制:
这让我更进一步,但它也导致其他项目停止正常构建(没有解决方案中的XProj文件,工作正常)。有一点我注意到,用于.NET Core的NuGet工具不支持经过身份验证的NuGet提要,因此我必须在我的提要上启用匿名访问。但是现在我的.NET Standard项目现在因MSB4057错误而失败:项目中不存在目标“_GenerateDependencyFragmentJson”。
我还没有去诊断这个,但我希望以上信息对某人有帮助。如果您没有使用xproj文件并且只是尝试使用.NET Standard项目,那么上面应该只需要在不安装Visual Studio的情况下构建。
只是旁注,我试图通过首先尝试安装Microsoft Build Tools 2015 Update 3来避免复制这些文件,希望它能将所需的文件放在适当的位置,但它并不遗憾。我将希望寄托在VS15中使用的下一个版本的MSBuild上,并希望它的构建工具包具有构建这些东西所需的一切,因为它似乎不是在更新具有此支持的2015 Build Tools。