Xarmin iOS MSBuild - 缺少OutputPath?

时间:2016-07-27 19:09:08

标签: ios xamarin msbuild

我目前正在从命令行构建我的Xamarmin 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 个答案:

答案 0 :(得分:3)

对于.csproj的任何自定义OutputPath,应该xbuild/msbuild内的.csproj提取,或作为媒体资源提供。

自定义IPA的输出路径可以做的一件事是使用自定义MSBuild目标将IPA复制到您选择的文件夹(如果需要,可以使用移动任务):

即。 (在.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-