gpt4 book ai didi

c# - 如何以编程方式提取应用名称和版本号?

转载 作者:行者123 更新时间:2023-12-03 08:08:08 25 4
gpt4 key购买 nike

我想在UnhandledException事件中填充WAMS表,并且得到以下代码:

private async void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs args)
{
if (Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
Debugger.Break();
}
PLATYPIRUS_WAMS_EXCEPTIONLOG pruwamsel = new PLATYPIRUS_WAMS_EXCEPTIONLOG();
pruwamsel.appNameAndVersion = "Platypi R Us for WP8 v. 3.14";
pruwamsel.ExceptionMsg = args.ExceptionObject.Message;
pruwamsel.InnerException = args.ExceptionObject.InnerException.ToString();
pruwamsel.ExceptionToStr = args.ToString();
pruwamsel.dateTimeOffsetStamp = DateTimeOffset.UtcNow;
await App.MobileService.GetTable<PLATYPIRUS_WAMS_EXCEPTIONLOG>().InsertAsync(pruwamsel);
}

...但是我真的不想硬编码应用名称和版本。如何以编程方式提取这些内容?

更新

结合这两个想法,我最终得到:
private async void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs args)
{
if (Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
Debugger.Break();
}

string appName;
string appVersion;
var xmlReaderSettings = new XmlReaderSettings
{
XmlResolver = new XmlXapResolver()
};

using (var xmlReader = XmlReader.Create("WMAppManifest.xml", xmlReaderSettings))
{
xmlReader.ReadToDescendant("App");

appName = xmlReader.GetAttribute("Title");
appVersion = xmlReader.GetAttribute("Version");
}

PLATYPIRUS_WAMS_EXCEPTIONLOG pruwamsel = new PLATYPIRUS_WAMS_EXCEPTIONLOG();
pruwamsel.appNameAndVersion = string.Format("{0} {1}", appName, appVersion);
pruwamsel.ExceptionMsg = args.ExceptionObject.Message;
pruwamsel.InnerException = args.ExceptionObject.InnerException.ToString();
pruwamsel.ExceptionToStr = args.ExceptionObject.ToString();
pruwamsel.dateTimeOffsetStamp = DateTimeOffset.UtcNow;
await App.MobileService.GetTable<PLATYPIRUS_WAMS_EXCEPTIONLOG>().InsertAsync(pruwamsel);
}

最佳答案

应用程序名称和版本在WMAppManifest.xml文件中注册。

通过使用此this sample并将引用“ProductID”的部分替换为“Title”和“Version”,我设法获得了以下代码:

var xmlReaderSettings = new XmlReaderSettings
{
XmlResolver = new XmlXapResolver()
};

using (var xmlReader = XmlReader.Create("WMAppManifest.xml", xmlReaderSettings))
{
xmlReader.ReadToDescendant("App");

var AppName = xmlReader.GetAttribute("Title");
var AppVersion = xmlReader.GetAttribute("Version");
}

关于c# - 如何以编程方式提取应用名称和版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com