Xamarin iOS MSBuild - 缺少 OutputPath?

3

我目前正在使用命令行构建我的Xamarin iOS项目:

MSBuild "C:\code\MyProject.iOS.csproj" /t:Build /p:Configuration=Ad-Hoc;Platform=iPhone;ServerAddress=MACIP;ServerUser=MACUSER

它失败了,并显示以下错误:

项目'MyProject.iOS.csproj'的OutputPath属性未设置。 请确保您已为此项目指定了有效的配置和平台组合。

然而,当我检查CSPROJ时,确实有一个OutputPath被设置。

enter image description here

我可以通过在命令行上强制指定“OutputPath”参数来解决这个问题:
OutputPath="C:\builds\xamarin\cellar-ios"

注意: OutputPath="C:\builds\xamarin\cellar-ios\" 不起作用,构建失败(请注意结尾反斜杠)
然而这会创建一个奇怪的文件夹结构,它会在文件名后面添加内容:

enter image description here

我在这里做错了什么?我觉得设置非常接近了!

编辑

使用以下参数,我能够让它工作。请注意,我仍然需要手动包含OutputPath,但这可以先解决。

/t:Build /p:Configuration=Ad-Hoc;Platform=iPhone;ServerAddress=SERVER_IP;ServerUser=USER;ServerPassword=PASS;OutputPath=bin\iPhone\Ad-Hoc\

1
我认为OutputPath与构建的Windows缓存有关。然而,我似乎无法在本地复制此问题。就.csproj中的OutputPath而言,它似乎是正确的。(即使更改此设置也会产生相同的结果)。 - Jon Douglas
据我所知,它将默认为默认的“OutputPath”。在Mac上位于“Library/Caches/Xamarin/mtbs/builds”中。 - Jon Douglas
它将位于相应的 OutputPath/{AppName TimeStamp} 内。 - Jon Douglas
那么不带 OutputPath 运行我的确切命令能够工作吗?您正在尝试使用哪个版本的 MSBuild?此时只是想要消除变量:Microsoft (R) Build 引擎版本 14.0.25420.1。 - aherrick
你能上传一个样例并编辑你的问题吗? - Jon Douglas
显示剩余4条评论
1个回答

3
任何自定义的.csproj的OutputPath,都应该被.xbuild/msbuild在.csproj中拾取或者提供作为属性。

如果您想自定义IPA的输出路径,您可以使用自定义MSBuild目标来将IPA复制到您选择的文件夹中(如果需要,您还可以使用move任务):
例如:(在您的.csproj内部):
<PropertyGroup>
    <CreateIpaDependsOn>
        $(CreateIpaDependsOn);
        CopyIpa
    </CreateIpaDependsOn>
</PropertyGroup>

<Target Name="CopyIpa"
    Condition="'$(OutputType)' == 'Exe'
        And '$(ComputedPlatform)' == 'iPhone'
        And '$(BuildIpa)' == 'true'">
    <Copy
        SourceFiles="$(IpaPackagePath)"
        DestinationFolder="$(OutputPath)"
    />
</Target>

然后,您需要将DestinationFolder设置为所需的输出文件夹。

此信息可以在我们的知识库文章中找到:https://kb.xamarin.com/customer/portal/articles/2061038-can-i-change-the-output-path-of-the-ipa-file-


感谢您的帮助Jon。我已经更新了我的CSProj文件,但是我仍然收到“OutputPath文件夹错误”的提示。这迫使我在构建命令中包含该参数...http://i.imgur.com/O5TS8Vb.png - aherrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接