visual-studio - Visual Studio 更新 (16.8.1) 导致 CI 构建失败
问题描述
我们最近更新了我们的构建服务器以使用 Visual Studio 16.8.1 和 Xamarin.iOS 14.4.1.3,并且遇到了以前运行的 MSBuild 命令的问题。
作为记录,我们在这里构建了一个 Xamarin Forms 解决方案并以 iOS 为目标。
命令是:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild" MySolution.sln /p:Configuration="AppStore" /p:Platform="iPhone" /p:ServerAddress="" /p:ServerUser=""
我已经尝试搜索它报告的特定错误消息(如下),但是到目前为止我还没有找到任何有用的东西。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(230,3): error MSB4044: The "GetMinimumOSVersion" task is not given an value for the required参数“SdkVersion”。
更新
在进一步挖掘后,我相信我已经将错误的根源追溯到这些未设置的行Xamarin.Shared.props
。
<!-- SdkVersion -->
<_SdkVersion Condition="'$(_PlatformName)' == 'macOS'">$(MacOSXSdkVersion)</_SdkVersion>
<_SdkVersion Condition="'$(_PlatformName)' != 'macOS'">$(MtouchSdkVersion)</_SdkVersion>
我无法找出设置 MtouchSdkVersion 的原因以及为什么没有设置它。来自上面引用部分的评论指出:
有时,我们为 Xamarin.iOS 和 Xamarin.Mac 项目使用不同的变量名称。在这里我们尝试统一这些变量
会不会是这种统一改变了曾经有效的东西的行为?
解决方案
这在 Visual Studio 2019 版本 16.8.3 中再次引起了人们的注意。看起来他们已将问题转移到:
<VS Install path>\MSBuild\Xamarin\iOS\Xamarin.Messaging.targets
通过删除 _DisconnectAfterClean 目标的第 52 行上的 _SayGoodbye 依赖项,我能够让我的构建再次运行。
<Target Name="_DisconnectAfterClean" Condition="'$(IsRebuild)' != 'true'" DependsOnTargets="" />
推荐阅读
- promise - dyld:库未加载:@rpath/Cosmos.framework/Cosmos
- pipe - 将 pv 输出 (stderr) 打印到文件
- r - 根据 R 中的 msterdata 的条件选择列并创建新的数据框
- angular - 应用程序如何管理前端错误跟踪?
- hyperledger-fabric - Fabric 1.0 安装链码失败:endorser 客户端无法连接到 org1.example.com:7051
- mule - 如何设计 Munit4 测试来执行部分流程?
- amazon-web-services - 私下访问 lambda
- javascript - Cookie - addClass 如果用户已经点击
- apache-spark - Hortonworks Spark Hbase 连接器(SHC) - 将数据帧写入 Hbase 时出现空指针异常
- google-chrome - 每次我将光标移到视频上时,我可以隐藏字幕以防止出现,这真的很烦人