背景
我最近将我的Xamarin.Forms应用程序从PCL转换为Net Standard格式。
我的所有项目现在都在PackageReference
文件中使用csproj
。这意味着不再需要package.config
或package.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 restore
和vstool build
。但只有当TFS通过代理运行命令时,它才会显示错误消息。
设置
构建:运行Visual Studio 7.5的Mac代理上的TFS 2015
答案 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构建。这是有效的设置,
PackageReference
中使用.csproj
package.config
,project.json
或AssemblyInfo.cs
文件。nuget restore .sln
。<path-to-vstool>\vstool build .sln -c:<configuration>
现在,我正在Windows机器上进行Android安装。工作完成后,我将在这里发布调查结果。