ILASM не устанавливает FileVersion - PullRequest
5 голосов
/ 08 февраля 2012

У меня есть файл .il, который я могу без проблем скомпилировать.Я могу назвать это строго и без проблем.Но я не могу установить версию файла через атрибут, как я и ожидал.Как я могу установить FileVersion для сборки при использовании ilasm?

Если я выполняю туда-обратно, я всегда получаю файл .res, который содержит только двоичные данные, которые не читаются.Что находится внутри этого файла res и можно ли его редактировать?

Код не работает

.assembly myAssembly 
{
  .custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = { string('1.2.3.4') }

1 Ответ

10 голосов
/ 08 февраля 2012

Проблема может быть решена с помощью файла .res.Недостаточно совершить путешествие туда и обратно с ildasm и ilasm.Файл IL не ссылается на файл .res.Мне пришлось добавить его к вызову ilasm вручную.Данные в файле res, похоже, содержат информацию, которая записана в PE-заголовок, что мне подходит.

Последняя необходимая командная строка была

ilasm test.il /dll /res:test.res

Я до сих пор не знаю, что именно находится в файле res, но я могу обменять его с информацией метаданных любой другой сборки, которую я создаювручную, а затем декомпилировать его, чтобы заменить метаданные исходной сборки, как мне нужно.

Кажется, не многие люди занимаются такими вещами.

...