【问题标题】:How do I get the copyright property of the entry application如何获取参赛申请的版权属性
【发布时间】:2016-01-08 18:00:26
【问题描述】:

我的问题是:我正在用 C# 编写一个 dll,但它是 Com 可见的,因此它可以被 .NET 应用程序引用或被非 .NET 应用程序(Forms、VB6、等等等等)。
我想获取调用可执行文件的属性 - 即。产品名称、版权等(如果您右键单击 .EXE,选择属性并转到详细信息选项卡,您可以看到的所有内容)。
我可以通过简单地使用 System.Windows.Forms.Application 的属性来获得其中的很多 - ProductName 就在那里,Product Version 也是如此。但是,没有 FileVersion 或 Copyright 属性。其中一些已实施而有些未实施,这似乎很奇怪。当然,必须有一种方法(无论多么曲折)来获取调用应用程序的版权属性。我到处搜索并在 PInvoke 网站上搜索,但均无济于事。任何建议都将受到欢迎。

【问题讨论】:

    标签: c# .net winforms winapi pinvoke


    【解决方案1】:

    如果我正确理解你的问题,你可以这样暴露AssemblyCopyright

    public string AssemblyCopyright
    {
        get
        {
            object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
            if (attributes.Length == 0)
            {
                return "";
            }
            return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
        }
    }
    

    对于其他属性,您也可以这样做。

    您可以使用Add New ItemAboutBox 添加到项目中,并查看如何提取其他属性。

    【讨论】:

    • 谢谢,但恐怕你还没有理解这个问题。我知道如何为 .NET 应用程序做这件事。我希望能够为任何可能引用我的 dll 的应用程序执行此操作,例如Winforms 甚至是 VB6 应用程序。
    【解决方案2】:

    找到了!事实证明这很容易:

    FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(Path.GetFileName(System.Windows.Forms.Application.ExecutablePath));
    

    FileVersionInfo 然后具有文件版本资源中所有内容的属性,包括版权的 LegalCopyright。适用于任何类型的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2014-06-26
      相关资源
      最近更新 更多