Это, наверное, очень просто, но я в тупике (и я ноб с C#). У меня есть 3 сборки, которые ссылаются друг на друга (например, регистрируются для уведомления о методе делегата или вызывают открытый метод), все из которых компилируются до тех пор, пока я не попытаюсь подписать их с сильным именем. Тогда я не могу скомпилировать ни один из них, так как у двух других нет сильного имени. Что мне не хватает? Я создал сильный файл имен для всех трех, но не могу включить snk и скомпилировать их.Назовите три сборки, которые ссылаются друг на друга
ответ
Если вы создали один файл snk, который хотите использовать на всех трех из них, выберите: Добавить существующий элемент из контекстного меню в проектах.
Просмотрите файл snk, а затем выберите «Добавить в качестве ссылки», нажав на стрелку рядом с кнопкой «Добавить».
Затем в свойствах проекта убедитесь, что на вкладке «Подпись» установите флажок «Подписать сборку», а затем выберите ключевой файл, который вы только что добавили в свой проект.
Это должно сделать трюк.
+1. Поскольку вы, похоже, знаете этот материал, и мне любопытно, есть ли недостатки в использовании одного и того же ключа для всех из них? – Skurmedel
Не знаю, о чем я сейчас знаю. На самом деле загрузки связанных сборок Microsoft имеют тот же самый PublicKeyToken (вы можете проверить это в своем глобальном кэше сборки), указав, что они были подписаны с тем же ключевым файлом, что и iirc. – Anton
Это полезно знать, немного утомительно, если у вас 5 сборок, и вы создаете 5 ключей напрасно :) – Skurmedel
Узел с сильно именованием может ссылаться только на другие узлы с жесткими именами.
Когда вы ссылаетесь строгим именем сборки, вы ожидаете получить определенные преимущества, такие как управление версиями и именовании защиты. Если сильное названием сборки затем ссылается на сборке с простым именем, которое не этих преимущества, вы теряете преимущества, которые вы бы получить от использования строгого имени сборки и вернуться к DLL конфликтов. Поэтому сильные имена могут ссылаться только на другие узлы с сильными именами.
Цитируется по MSDN.
Любая циклическая зависимость? – affan
Нет, о чем я знаю. – Shawn