Почему моя сборка C ++ не подписана? - PullRequest
6 голосов
/ 27 сентября 2011

У меня есть проект C ++, установленный на /clr, на который ссылаются проекты C # в том же решении.К сожалению, кажется, что C ++ не подписан должным образом, что приводит к сообщению об ошибке «Сборка не имеет строгого имени».(sn.exe согласен с этой ошибкой.)
Однако, - это файл snk в настройках проекта (Linker / Advanced), так что должен быть подписан.Кроме того, все настройки проекта кажутся такими же, как и в другом проекте C ++ в том же решении - где все работает.

Одна вещь, которую я обнаружил после того, как поработал часами, это:
При устранениипереключатель /NOLOGO для компоновщика, становится очевидным, что компоновщик называется дважды .Я не имею ни малейшего представления, почему это может быть.
Теперь, в проекте, который работает, компоновщик получает файл snk в командной строке (/KEYFILE:) для обоих вызовов, втот, который не работает, второй вызов не передает файл snk.

Почему компоновщик вызывается дважды?Что определяет, что он не получает файл snk, переданный во втором вызове?

1 Ответ

9 голосов
/ 27 сентября 2011

Хорошо, я нашел решение: Судя по всему, MS взорвала релиз SP1 для VS2010, и вы должны покопаться в папке установки MSBUild. Здесь - статья, содержащая грязные детали.

(И почему это сработает в одном проекте, а не в другом, я понятия не имею. И, честно говоря, я потерял достаточно часов, уже стуча головой об эту стену, и не буду исследовать дальше.)

...