Xamarin vstool build无法找到NuGet MSBuild目标

时间:2018-06-05 19:42:09

标签: xamarin tfs msbuild nuget visual-studio-mac

背景

我最近将我的Xamarin.Forms应用程序从PCL转换为Net Standard格式。 我的所有项目现在都在PackageReference文件中使用csproj。这意味着不再需要package.configpackage.json

我们使用TFS 2015来构建,签署,打包我们的.ipa.apk文件。转换后,默认的 MSBUILD 构建步骤不起作用,因为它们查找mdtool而新的Visual Studio却有vstool。因此,我更新了构建步骤,以便通过命令行使用新工具。

我的所有项目现在都是NetStandard(包括iOS和Android)。

问题

我可以在Mac版本服务器上使用restore MySolution.sln -force成功恢复NuGet包。但是当我在那之后运行vstool build MySolution.sln时,我收到了这个错误:

  

错误:在构建之前需要恢复NuGet包。的NuGet   MSBuild目标缺失,需要构建。 NuGet   恢复NuGet包时会生成MSBuild目标。

我能够成功在构建计算机上本地运行nuget restorevstool build。但只有当TFS通过代理运行命令时,它才会显示错误消息。

设置

构建:运行Visual Studio 7.5的Mac代理上的TFS 2015

2 个答案:

答案 0 :(得分:0)

根据错误和您的描述,您还需要检查您的构建代理是否具有相应的功能以支持vsbuild。

请查看此相关问题MacOS - Visual Studio Support并尝试使用此解决方法:

  

作为解决方法,我们在构建中手动设置Xamarin.iOS变量   代理并将Xamarin iOS Build步骤中的mdtool路径更改为   " / Applications / Visual Studio.app/Contents/MacOS/vstool"。

此外,您还可以尝试在上面的评论中使用Matt的建议。

答案 1 :(得分:0)

好的。我终于能够在Mac服务器上获得成功的iOS构建。这是有效的设置,

  • 在iOS PackageReference中使用.csproj
  • 没有package.configproject.jsonAssemblyInfo.cs文件。
  • 在构建iOS项目之前运行nuget restore .sln
  • 使用<path-to-vstool>\vstool build .sln -c:<configuration>
  • 构建解决方案

现在,我正在Windows机器上进行Android安装。工作完成后,我将在这里发布调查结果。