2016-01-08 14 views
0

我的問題是這樣的:我在C#中編寫了一個dll,但是它是可見的,因此它可以被.NET應用程序引用或者作爲COM組件使用非.NET應用程序(Forms,VB6等)。
我想獲得調用可執行文件的屬性 - 即。產品名稱,版權等(如果右鍵單擊.EXE,選擇屬性並轉到「詳細信息」選項卡,您可以看到所有這些內容)。
我可以通過簡單地使用System.Windows.Forms.Application - ProductName的屬性獲得相當多的這些屬性,就像產品版本一樣。但是沒有FileVersion或版權屬性。看起來奇怪的是,其中一些已經實施,一些卻沒有實施。當然,必須有一種方式(不管曲折)獲取調用應用程序的版權屬性。我在谷歌搜索結果中搜索了PInvoke網站,都無濟於事。任何建議將是最受歡迎的。如何獲得入口應用程序的版權屬性

回答

0

找到了!原來是死很容易:

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

FileVersionInfo然後有屬性的文件的版本資源的一切,包括LegalCopyright的版權。適用於任何類型的應用程序。

2

如果我正確理解你的問題,你可以公開AssemblyCopyright這樣:

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

也爲其他屬性,你可以這樣做。

您可以添加AboutBox使用Add New Item項目,看看attribures如何提取等。

+0

謝謝,但我恐怕你還沒有明白這個問題..我知道如何做一個.NET應用程序。我希望能夠爲任何可能引用我的dll的應用程序做到這一點,例如一個Winforms甚至一個VB6應用程序。 – Dave

相關問題