2008-09-23 61 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

相关问题