2008-09-23 4 views
5

Я могу добавить собственные строки версии в C++ DLL в Visual Studio, отредактировав файл .rc вручную. Например, если добавить в раздел VersionInfo в .rc файлеМогу ли я добавить строки пользовательской версии в .net DLL?

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

Тогда эта дата отображается в проводнике файлов, в свойствах библиотеки DLL, на вкладке Version.

Могу ли я сделать то же самое для 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 таким образом; Я думаю, вам нужно добавить «AllowMultiple = true» в свой атрибут AttributeUsage. Во-вторых, пользовательские ресурсы не отображаются на вкладке версии - как я могу заставить их это сделать? – Simon 2008-09-24 08:30:44

Смежные вопросы