Что такое «имя модуля» при использовании al.exe для подписи сборки со строгим именем? - PullRequest
14 голосов
/ 07 декабря 2010

Я пытаюсь подписать сборку со строгим именем, следуя приведенному ниже руководству: http://msdn.microsoft.com/en-us/library/xc31ft41.aspx

Основная инструкция:

al /out:<assembly name> <module name> /keyfile:<file name>

И там написано

имя модуля - это имя модуля кода, использованного для создания сборки

Я не понимаю, что это значит.В буквальном смысле я бы истолковал вышесказанное как некоторый компонент csc.exe (т. Е. Он создал сборку), но, очевидно, это бессмысленно в этом контексте.

Итак, во-первых, к чему это относится, а во-вторых (для того, чтобы помочь моему мета-обучению), как можно было бы рассуждать, что это такое?У меня сложилось впечатление, учитывая краткость документации, что она должна быть очевидной или интуитивной для меня, но в настоящее время это не так.

Я попытался указать несколько случайных имен (например, blah.blah), но получил эту ошибку:

ALINK: ошибка AL1047: Ошибка импорта файла 'c: \ path \ to \ proj \ bin \ Debug \ blah.blah' - системе не удается найти указанный файл.

Редактировать: послеПосле прочтения у меня сложилось впечатление, что имя модуля - это имя кода, но мне также не повезло, указав файлы .cs - мне сказали Database file is corrupt and may not be usable.

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Сборка состоит из модулей (файлы .netmodule), которые создаются путем компиляции исходных файлов (файлы .cs). Линкер сборки отвечает за упаковку модулей в сборки. Поэтому, если у вас есть два исходных файла class1.cs и class2.cs:

csc /t:module class1.cs
csc /t:module class2.cs
al /out:assembly.dll /t:library class1.netmodule class2.netmodule

Чтобы лучше понять, как CLR работает с модулями, манифестами и сборками, см. Рихтер .

2 голосов
/ 04 января 2013

В VS2010 щелкните Свойства проекта -> Вкладка Подписи -> Проверить Подпись этой сборки.

Укажите или создайте ключ строгого имени.

1 голос
/ 07 декабря 2010

Посмотрите, сможете ли вы найти то, что ищете, по этой ссылке. Если нет, я мог бы помочь для дальнейших исследований. Сейчас у меня мало свободного времени, но оно может измениться в течение следующего часа.

Подписать сборку строгим именем с помощью команды al / out

...