Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用xbuild和Jenkins更新android清单的正确方法是什么_Jenkins_Xamarin_Xamarin.android_Android Manifest_Xmlpoke - Fatal编程技术网

用xbuild和Jenkins更新android清单的正确方法是什么

用xbuild和Jenkins更新android清单的正确方法是什么,jenkins,xamarin,xamarin.android,android-manifest,xmlpoke,Jenkins,Xamarin,Xamarin.android,Android Manifest,Xmlpoke,在我们的环境中,我们正在构建xamarin.android项目,希望将$(build_number)变量传递给Jenkins build。不幸的是,Jenkins正在构建项目,就好像什么都没有传递到构建工作流一样 我尝试使用XmlPoke,它在windows上运行良好,在mac上根本不起作用 操作系统:MacOSX jenkins和xamarin是最新的稳定版本 请建议。根据,您可以使用$(VAR)符号访问csproj文件中的环境构建变量 因此,预定义的Jenkins变量,例如BUILD\u N

在我们的环境中,我们正在构建xamarin.android项目,希望将$(build_number)变量传递给Jenkins build。不幸的是,Jenkins正在构建项目,就好像什么都没有传递到构建工作流一样

我尝试使用XmlPoke,它在windows上运行良好,在mac上根本不起作用

操作系统:MacOSX jenkins和xamarin是最新的稳定版本

请建议。

根据,您可以使用
$(VAR)
符号访问csproj文件中的环境构建变量


因此,预定义的Jenkins变量,例如
BUILD\u NUMBER
,应该可以直接在项目内部使用
$(BUILD\u NUMBER)
,在调用过程中不需要额外的东西。

如果在Mac OS主机下构建,则没有默认的解决方案/插件。 您必须使用输入参数创建自己的脚本/工具,以将xml属性更新为给定值。
然后将它与shell exec任务一起使用。

我从中找到了一个很好的解决方案



在.csproj文件中使用它,不要忘记将“JENKINS”设置为值为1的全局环境。

您是在询问如何配置JENKINS参数化构建,还是在询问如何使用带参数的android构建命令行?事实上:你的android构建命令行是什么?这是“或者你在问如何使用带参数的android构建命令行”。我使用的是XBUILD(MacOSX),所以,撇开詹金斯不谈,您通常如何将变量传递给Xamarin?在项目内部使用意味着什么。是的,我有那个变量,但我需要用构建号更新manifest/plist。基本上,在构建过程中修改xml文件。您的问题是:“我们正在构建xamarin.android项目,希望将$(build_number)变量传递给Jenkins build”。我在评论中进一步询问了您想要什么,您确认了“如何使用带参数的android构建命令行”。我已经回答了如何向android构建传递/使用变量。你哪里也没问过关于更新xmlI的事,我不理解你的评论。问题是“用xbuild和Jenkins更新android清单的正确方法是什么?”
<Target Name="BeforeBuild" Condition=" '$(JENKINS)' == '1' ">
<XmlPoke XmlInputPath="Properties\AndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionCode" Value="$(SVN_REVISION)" />
<XmlPoke XmlInputPath="Properties\AndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionName" Value="2.0.$(SVN_REVISION)" />
</Target>