c# – 获取当前ClickOnce的应用程序发布者名称?
发布时间:2020-12-15 18:36:05 所属栏目:百科 来源:网络整理
导读:是否可以读取当前运行的ClickOnce应用程序的发布者名称(您在Project Properties中设置的那个 – Publish – Options – Visual Studio中的Publisher名称)? 我需要它的原因是运行this文章中描述的当前运行的应用程序的另一个实例并将参数传递给它. 当然我知
是否可以读取当前运行的ClickOnce应用程序的发布者名称(您在Project Properties中设置的那个 – > Publish – > Options – > Visual Studio中的Publisher名称)?
我需要它的原因是运行this文章中描述的当前运行的应用程序的另一个实例并将参数传递给它. 当然我知道我的应用程序的发布者名称,但是如果我硬编码,稍后我决定更改我的发布者名称,我很可能会忘记更新这段代码. 解决方法
你会认为这是微不足道的,但我没有在框架中看到任何给你这个信息的东西.
如果你想要一个hack,你可以从注册表中获取发布者. 免责声明 – 代码丑陋且未经测试…… ... var publisher = GetPublisher("My App Name"); ... public static string GetPublisher(string application) { using (var key = Registry.CurrentUser.OpenSubKey(@"SoftwareMicrosoftWindowsCurrentVersionUninstall")) { var appKey = key.GetSubKeyNames().FirstOrDefault(x => GetValue(key,x,"DisplayName") == application); if (appKey == null) { return null; } return GetValue(key,appKey,"Publisher"); } } private static string GetValue(RegistryKey key,string app,string value) { using (var subKey = key.OpenSubKey(app)) { if (!subKey.GetValueNames().Contains(value)) { return null; } return subKey.GetValue(value).ToString(); } } 如果您找到更好的解决方案,请跟进. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |