Получение версии библиотеки при объединении в одну сборку - PullRequest
2 голосов
/ 01 марта 2012

У меня есть настольное приложение, которое позволяет пользователю запускать один из десяти или около того отдельных модулей.Каждый модуль существует как независимая библиотека классов в решении.Управление версиями отдельных модулей важно для пользователя, поэтому я хочу иметь возможность перечислять версии каждой из библиотек классов в поле Справка-> О программе.Это довольно просто, и в настоящее время я делаю это, заполняя поле richText в AboutBox, используя приведенный ниже фрагмент.

this.moduleVersions.Text = "";
foreach (var kvp in mainform.moduleList)
    this.moduleVersions.Text += String.Format("{0,-20}: {1}\r\n", kvp.Key, kvp.Value.Assembly.GetName().Version.ToString());

Обратите внимание, что список модулей в основной родительской форме представляет собой словарь имен итипы:

public Dictionary<string, Type> moduleList = new Dictionary<string, Type>();

Но вот морщинка.При сборке релиза я запутываю и объединяю все dll в один исполняемый файл.Оставляя в стороне вопрос о том, является ли это наилучшей практикой (я знаю, что это не так, но есть веские причины для этого), проблема заключается в том, что он разбивает приведенный выше фрагмент, поскольку теперь все модули физически находятся в одной сборке (основнойформы), и все они возвращают версию основной сборки.Я хочу как-то перенести номера версий оригинальных сборок.Возможно ли это без грубой силы (т. Е. Номера версий с жестким кодированием)?

Кроме того, я не думаю, что это актуально, но я использую .NET Reactor для обфускации и слияния.

Спасибо.

1 Ответ

0 голосов
/ 01 марта 2012

Создайте пользовательский атрибут и украсьте типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...