Windows phone 8 WMAppManifest和存储应用程序

Windows phone 8 WMAppManifest和存储应用程序,windows-phone-8,version,manifest,windows-phone-store,Windows Phone 8,Version,Manifest,Windows Phone Store,我想知道对于Windows Phone 8应用程序,获取和处理WMAppManifest版本的正确方法是什么 基本上,我的情况是这样的:我想实施一项检查,如果应用程序不是最新版本,就不会让用户使用它。在这种情况下,我想检查用户的版本号。目前我是这样做的: var docRoot = XDocument.Load("WMAppManifest.xml").Root; string versionString = docRoot.Element("App").Attr

我想知道对于Windows Phone 8应用程序,获取和处理WMAppManifest版本的正确方法是什么

基本上,我的情况是这样的:我想实施一项检查,如果应用程序不是最新版本,就不会让用户使用它。在这种情况下,我想检查用户的版本号。目前我是这样做的:

        var docRoot = XDocument.Load("WMAppManifest.xml").Root;
        string versionString = docRoot.Element("App").Attribute("Version").Value;
        string clientString = docRoot.Element("App").Attribute("Title").Value;

但是,当我上传清单以存储版本号时,会在升级XAP时询问。因此,我的问题是,我如何获取存储在基中的版本和/或存储将自动更新WMAppManifest,以便在我上载包时,我可以为我的应用程序清单(由XDocument.Load检索)假设要包含上载到存储时输入的版本?

项目的版本存储在
AssemblyInfo.cs
中。
这一个:
[汇编:AssemblyVersion(“1.0.0.0”)]

您可以通过反射获取程序集信息:
System.reflection.assembly.getExecutionGassembly()
(搜索
FullName
属性)

因此,您不必查询WMAppManifest(实际上也不应该)。WMAppManifest和AssemblyInfo中的版本号必须始终保持同步

必须在仪表板中输入的版本号用于存储,而不是从清单中自动获取


总之,有3个地方需要维护版本号。但是您应该始终从AssemblyInfo查询它

MSDN中没有关于Windows Phone应用程序版本控制的指导,也没有更新AssemblyInfo.cs的指导 或WMAppmanifest.xml文件

对于WMAppmanifest.xml,MSDN仅表示具有最新功能等

我认为AssemblyInfo.cs在版本化DLL库和维护对正确版本库的引用方面有点历史遗留

对我来说,WMAppmanifest.xml感觉更“自然”(在Android/IOS上,版本也在manifest/单独的文本文件中指定)将版本号放在其他信息(功能等)中。我还在Windows8/8.1商店应用程序中使用清单文件(package.appxmanifest)

在Windows 8应用程序中,您可以通过Windows.ApplicationModel.Package.Current类访问清单文件,对我来说,这表明Microsoft在清单文件中放置版本号方面考虑得更多


Windows Phone Store不处理任何这些文件,因此将其保存在何处并不重要。

好的,谢谢。这就把事情弄清楚了。一开始我确实觉得直接使用WMAppManifest有点不确定:PHmh,这个信息有官方来源吗?:)因此,我基本上可以1)将AssemblyInfo.cs和WMAppManifest.xml保留为1.0.0.0。2) 将XAP上载到Windows应用商店并键入版本3)使用System.Reflection.Assembly查询版本号,它将返回我在Windows应用商店版本提示中输入的内容?我想知道在这种情况下查询WMAppManifest会返回什么?这只是我经历这种情况的方式,没有来源。否,它不会返回存储版本,而是返回您在
AssemblyInfo.cs
中输入的版本号。