我正在将我们的Xamarin构建基础设施移动到基于Windows的基础设施中,我遇到了一个问题,因为我们的构建脚本目前使用PlistBuddy来读取和写入应用程序的Info.plist文件。
显然,PlistBuddy不会在Windows上运行。
有没有人看到过与Windows上的Plist文件交互的其他解决方案?我见过一些使用GUI的人,但我们需要这样才能有一个CLI。
发布于 2016-11-15 18:36:36
您可以通过绑定到跨SSH连接运行的任何通用Task/Target(在这里可以查看Xamarin.iOS .targets文件以获得更好的想法)来强制构建代理在Mac上运行任意命令。这在另一种方法中是可用的,方法是将<Exec>任务与您的$(BuildSessionId)的SessionId一起使用。下面是一个如何做到这一点的例子:
<Exec Command="..." SessionId="$(BuildSessionId)" />如果SessionId为空/空,那就意味着我们没有连接到Mac。如果它不是空/空,那么我们就连接到Mac。
然后,我们可以通过以下方式强制此条件始终在Mac上运行:
<Exec Command="..." SessionId="$(BuildSessionId)" Condition=" '$(BuildSessionId)' != '' " />请注意,为了远程执行,将公开下列内置任务:
然后,您可以通过此方法调用PlistBuddy命令。
EX:
<Target Name="_SayGoodbye">
<Exec Command="plistbuddy ..." SessionId="$(BuildSessionId)" Condition=" '$(BuildSessionId)' != '' "/>
</Target>如果您想采用MSBuild自定义任务的方式,您可以在这里看到以前构建的任务的示例:
使用中的EX薄片:
EX测试与Plist:
现在这更像是MSBuild定制,但是使用这些项来做您想要做的事情是绝对可能的。
https://stackoverflow.com/questions/40606248
复制相似问题