сильное именование для корпоративной библиотеки Microsoft

Я использую корпоративную библиотеку Microsoft в одном из своих проектов. Мне нужно строго указать одну из dll, которая Microsoft.Practices.EnterpriseLibrary.Common. Но это не работает.

Когда я декомпилирую с помощью ILDASM, он генерирует 3 файла.

  1. IL файл
  2. .RESOURCES файл
  3. Файл сценария общих ресурсов

Как мне его скомпилировать с ключевым файлом. Какую ILASM команду мне следует использовать?


person user3740952    schedule 14.06.2014    source источник


Ответы (1)


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

Когда вы устанавливаете пакет EntLib, вы получаете скомпилированные двоичные файлы (некоторые из них подписаны) И вы получаете исходный код, который компилирует исходный код и создает библиотеки DLL (без подписи).

Я предполагаю, что вы используете не подписанные (скомпилированные из исходного кода на вашем локальном компьютере) файлы вместо подписанных.

person granadaCoder    schedule 17.06.2014
comment
да, я использую скомпилированный исходный код, потому что я добавил некоторые изменения в загруженный код корпоративной библиотеки. И мне нужно использовать только несколько dll из entlib из этого скомпилированного (не подписанного) кода. Итак, я хочу строго назвать каждого из них, используя ildasm и ilasm. Это сработает? - person user3740952; 17.06.2014
comment
Итак, вы хотите подписать свой измененный и скомпилированный код? Вы не Microsoft, поэтому вам придется использовать свой собственный ключ. Ты об этом говоришь? Если у вас есть исходный код (который вы изменили), то зачем вы декомпилируете. Позвольте мне сказать по-другому: вы не можете подписать код (код по умолчанию или ваш слегка измененный код), как если бы его подписывала Microsoft. Потому что, если бы вы могли, вы могли бы написать вредоносный код, а затем выдать его за сборку Microsoft. - person granadaCoder; 17.06.2014
comment
Но я хочу скопировать библиотеки DLL, которые я использую, в GAC. Также я не хочу использовать на сервере неподписанные библиотеки. Конечно, должен быть какой-то способ сделать это. Не могли бы вы помочь! - person user3740952; 17.06.2014
comment
У вас есть измененный исходный код. Скомпилируйте и подпишите. Относитесь к коду так, как будто он принадлежит вам, поскольку вы его изменили. msdn.microsoft.com/en-us/ библиотека / xc31ft41% 28v = vs.110% 29.aspx - person granadaCoder; 17.06.2014
comment
Я сделал то же самое, но с помощью sn.exe. И это не сработало. То есть я смог сгенерировать dll со строгим именем. Но ссылка на это в моем проекте дала ошибку сборки. получил эту ошибку: не удалось загрузить файл или сборку ... Требуется сборка со строгим именем В любом случае спасибо за вашу помощь. Я попробую и вернусь к вам. - person user3740952; 17.06.2014
comment
Можете ли вы опубликовать, как делаются ссылки, открыв файл .csproj (или аналогичный) в блокноте. - person granadaCoder; 17.06.2014
comment
‹Имя раздела = тип конфигурации данных = .... ,, культура = нейтральный, publickeytoken = thetokenhere, processArchitecture = MSIL /› - person user3740952; 22.06.2014
comment
Я выбрал первый вариант, упомянутый в опубликованной вами ссылке. Чтобы создать и подписать сборку строгим именем с помощью Visual Studio. Работает отлично. Но какой режим нужно установить в Visual Studio при компиляции проекта - отладить или выпустить. Просьба уточнить. Спасибо... - person user3740952; 22.06.2014
comment
Этот вопрос выходит за рамки того, что именно вы делаете. Но вы можете посмотреть здесь: stackoverflow.com/questions/90871/debug-vs-release-in- net В конце концов, это просто встроенные конфигурации, в которых включены различные параметры. Но если вы развертываете / упаковываете свой продукт, я думаю, переходите в режим выпуска. - person granadaCoder; 23.06.2014
comment
OK. Спасибо. вы ответили на все мои вопросы. - person user3740952; 29.06.2014
comment
Если вы уже начали понимать суть проблемы, этикетом будет пометить один из ответов ... как ... ответ. поэтому этот вопрос не возникает в запросах SOF без ответа. - person granadaCoder; 30.06.2014