2008-09-23 62 views
5

我可以通過手工編輯.rc文件將自定義版本字符串添加到Visual Studio中的C++ DLL。例如,如果我添加到rc文件我可以將自定義版本字符串添加到.net DLL嗎?

VALUE "BuildDate", "2008/09/19 15:42:52" 

的VERSIONINFO節那麼該日期是在文件資源管理器中,在DLL中的屬性,版本選項卡下。

我可以對C#DLL執行相同的操作嗎?不只是爲了建立日期,而是爲了其他版本信息(例如源代碼控制信息)

更新:我認爲有可能通過嵌入Windows資源來實現這一點,所以我的asked how to do that

回答

4

在AssemblyInfo.cs中,你可以把:

[assembly: System.Reflection.AssemblyInformationalVersion("whatever you want")] 

這是一個編譯器警告,如果它不是一個數字,如1.2.3.4,但我確信一切都會正常工作。

+0

謝謝 - 顯示爲「產品版本」,這可能是可以接受的解決方法。我真正喜歡的是能夠看到「生成日期」顯示爲屬性的名稱。 – Simon 2008-09-23 13:27:35

5

擴大對Khoth的答案,在AssemblyInfo.cs中:

你可以這樣做:

[assembly: CustomResource("Build Date", "12/12/2012")] 

凡CustomResource被定義爲:

[AttributeUsage(AttributeTargets.Assembly)] 
public class CustomResourceAttribute : Attribute 
{   
    private string the_variable; 
    public string Variable {get { return the_variable; }} 

    private string the_value; 
    public string Value  {get { return the_value; }} 

    public CustomResourceAttribute(string variable, string value) 
    { 
     this.the_variable = variable; 
     this.the_value = value; 
    } 
} 

這個解決方案是好的,因爲它給你需要的靈活性,它不會導致任何編譯器警告。

不幸的是,使用DateTime是不可能的,因爲在屬性中輸入的值必須是常量,並且DateTime不是常量。

+1

還有兩個問題: 第一個是你只能以這種方式添加一個CustomResourceAttribute;我認爲你需要在你的AttributeUsage屬性中添加「AllowMultiple = true」。 其次是自定義資源不顯示在版本選項卡 - 我如何讓他們這樣做? – Simon 2008-09-24 08:30:44

相關問題