获取当前 ClickOnce 的应用程序发布者名称?

2024-04-30

是否可以读取当前运行的 ClickOnce 应用程序的发布者名称(您在Project Properties -> Publish -> Options -> Publisher name在 Visual Studio 中)?

我需要它的原因是运行当前正在运行的应用程序的另一个实例,如中所述this http://www.codeproject.com/KB/dotnet/ExecuteClickOnceApp.aspx文章并将参数传递给它。

我当然是了know我的应用程序的发布者名称,但如果我对其进行硬编码,然后决定更改发布者的名称,我很可能会忘记更新这段代码。


这是另一种选择。请注意,它只会获取当前正在运行的应用程序的发布者名称,这就是我所需要的。

我不确定这是否是解析 XML 的最安全方法。

public static string GetPublisher()
{
    XDocument xDocument;
    using (MemoryStream memoryStream = new MemoryStream(AppDomain.CurrentDomain.ActivationContext.DeploymentManifestBytes))
    using (XmlTextReader xmlTextReader = new XmlTextReader(memoryStream))
    {
        xDocument = XDocument.Load(xmlTextReader);
    }
    var description = xDocument.Root.Elements().Where(e => e.Name.LocalName == "description").First();
    var publisher = description.Attributes().Where(a => a.Name.LocalName == "publisher").First();
    return publisher.Value;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取当前 ClickOnce 的应用程序发布者名称? 的相关文章

随机推荐