我目前正在通过命令行构建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集。
我可以通过在命令行中强制使用“OutputPath”参数来解决此问题:
OutputPath="C:\builds\xamarin\cellar-ios"
注意:
OutputPath="C:\builds\xamarin\cellar-ios\"
不起作用,构建失败(注意,反斜杠结束)但是,这会创建一个奇怪的文件夹结构,在其中添加文件名:
关于我在这里做错了什么的想法?我觉得设置非常接近!
编辑
使用以下参数,我可以使其正常工作。注意,我仍然必须手动添加
OutputPath
,但这暂时可以解决这个问题。/t:Build /p:Configuration=Ad-Hoc;Platform=iPhone;ServerAddress=SERVER_IP;ServerUser=USER;ServerPassword=PASS;OutputPath=bin\iPhone\Ad-Hoc\
最佳答案
对于您的.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-