Eoi*_*ell 16 versioning version-numbering xamarin xamarin.forms
这里可能存在多个相关的问题.我正在尝试为我们的3个移动应用程序提供一个简单的版本号更新方案,该应用程序是通过单个xamarin解决方案构建的.
我正在寻找的是一种简单的方法,可以保持所有这些值彼此同步,而无需单独更新它们.
我当前的设置需要导航到4个不同的位置以手动同步版本号.
我有一个链接文件,其中包含AssemblyVersion和AssemblyFileVersion,它们由解决方案中的所有PCL和Platform项目共享,并带有以下信息.
[assembly: AssemblyVersion("2.1.1.*")]
[assembly: AssemblyFileVersion("2.1.1.0")]
Run Code Online (Sandbox Code Playgroud)
单独在android项目下,我必须手动更新版本名称和版本号(int)
Version Name: 2.1.1
Version Number: 2
Run Code Online (Sandbox Code Playgroud)
在iOS应用程序选项卡下,我还有2个字段需要填写.
Version Number: 2.1.1
Build Number: 0 //Not sure if I'm using this field correctly.
Run Code Online (Sandbox Code Playgroud)
在WMAppManifest属性对话框的"打包"选项卡上,我还必须提供版本号.
Version Number: 2.1.1.0
Run Code Online (Sandbox Code Playgroud)
我们已经构建了一个工具来同步程序集,Android和iOS之间的版本; 我刚把它推到我们的GitHub回购:https://github.com/soltechinc/soltechxf/.如果您克隆该repo并构建UpdateVersionInfo,它应该执行您正在寻找的内容.
UpdateVersionInfo.exe:
-? Shows help/usage information.
-v, --major=VALUE A numeric major version number greater than zero.
-m, --minor=VALUE A numeric minor number greater than zero.
-b, --build=VALUE A numeric build number greater than zero.
-r, --revision=VALUE A numeric revision number greater than zero.
-p, --path=VALUE The path to a C# file to update with version
information.
-a, --androidManifest=VALUE The path to an android manifest file to update
with version information.
-t, --touchPlist=VALUE The path to an iOS plist file to update with
version information.
Run Code Online (Sandbox Code Playgroud)
默认版本(即,如果不提供任何参数,您将获得的版本)是1.0.0.0.
该工具可以使用文件的相对或绝对路径,我的建议是遵循它已经听起来像您正在使用的方法:拥有一个包含为链接文件(或在共享项目中)的单个version.cs文件,并删除该Version.cs文件中包含的任何AssemblyInfo属性.
我应该补充; 该工具目前假设您将使用C#代码更新iOS和Android项目.(我刚给自己添加了一个便条纸,以便将它们作为可选项.)
编辑:刚刚注意到过去的安迪已经注意到并照顾它(这是一个惊喜;我通常会在过去的安迪吼叫......).如果您没有为Android清单或iOS Info.plist提供路径,它将跳过它们.