2014-01-13 5 views
1

У меня есть консольное приложение F #. Он построен с использованием одной длинной серии fsc и отлично работает. (Я не использую MSVS для создания приложения, потому что он не работает под Mono, хотя проблема, о которой я спрашиваю, происходит в .net и Windows 7).net исполняемый файл не может найти библиотеки после его подписания

Я думал, что подпишу исполняемый файл, чтобы его можно было разместить в ПКК. Я добавил --keyfile в командную строку компилятора. Все остальное точно такое же. .exe все еще строит отлично, но умирает во время выполнения, жалуясь на то, что не может найти dll, который все еще находится там же, где он мог видеть его только раньше.

Я попытался найти ответ без успеха. Я ожидаю, что там должна быть документация, объясняющая, что делать? Большое спасибо за вашу помощь.

[Особая dll, на которую он жалуется, что не может найти FsCheck, хотя это, вероятно, только первый, который он ищет. Я полагаю, что подписанные сборки должны зависеть только от подписанных DLL, потому что они, вероятно, также должны быть помещены в GAC. Я пробовал две разные версии FsCheck, одну из последних доступных по NuGet. Не было подписано. Я попытался подписать их с помощью al, но он сработал (с ошибкой сегментации под Cygwin)]

ответ

2

Обратите внимание, что подписанные сборки в среде CLR могут ссылаться только на другие подписанные сборки. Это означает, что если вы подписываете exe, все файлы DLL, на которых оно зависит, также должны быть подписаны. Похоже, что сборки, доступные для этого во время выполнения, не подписаны должным образом. Чтобы исправить это, вам также нужно будет подписать эти сборки (возможно, перед тем, как вы скомпилируете exe)

0

Обычный способ отладки такой проблемы - запустить fuslogvw, в котором будут приведены сведения о том, где именно CLR искали зависимости и почему или почему эти кандидаты не были успешными.

Если у вас установлено VS, fuslogvw будет в пути, если вы запустите командную строку разработчика. Если у вас нет VS, вы можете получить этот инструмент, установив Windows SDK.

Смежные вопросы