Сборки или файлы не могут быть загружены при запуске exec - PullRequest
2 голосов
/ 02 марта 2010

Я встречаю следующее исключение, когда копирую всю программу на другой компьютер. Какие инструменты я могу использовать для его отладки? Спасибо.

Необработанное исключение: System.TypeInitializationException: инициализатор типа fo 'SomeClass' бросил исключение п. ---> System.IO.FileLoadException: не удалось загрузить файл или сборку ' SomeAssembly.dll , версия = 0.0.0.0, культура = neut ral, PublicKeyToken = null 'или одна из его зависимостей. Это приложение имеет неудачу d для запуска, поскольку конфигурация приложения неверна. Переустановка Приложение может решить эту проблему. (Исключение из HRESULT: 0x800736B1) Имя файла: ' SomeAssembly.dll , Версия = 0.0.0.0, Культура = нейтральная, PublicKeyToken = null '---> System.Runtime.InteropServi ces.COMException (0x800736B1): это приложение не удалось запустить, потому что неверная конфигурация приложения. Переустановка приложения может исправить это проблема (Исключение из HRESULT: 0x800736B1)

Ответы [ 3 ]

4 голосов
/ 02 марта 2010

Это ошибка Windows, а не ошибка .NET. Код ошибки - 14001, ERROR_SXS_CANT_GEN_ACTCTX: «Не удалось запустить приложение, поскольку его параллельная конфигурация неверна. Для получения более подробной информации см. Журнал событий приложения.»

Посмотрите в журнале событий Windows, он говорит вам, какую DLL вы забыли установить на целевой машине. Если это сборка смешанного режима, то это, как правило, DLL-библиотека времени выполнения C / C ++, или вы развернули отладочную сборку.

1 голос
/ 02 марта 2010

Вы можете использовать fusion log для устранения проблем такого рода. Он покажет вам, где он ищет зависимости, и если он их нашел, и если он их нашел и не смог загрузить, почему.

0 голосов
/ 02 марта 2010

Если вы просто копируете файлы, убедитесь, что они не заблокированы операционной системой. Чтобы проверить это, щелкните правой кнопкой мыши на dll, перейдите в Свойства и посмотрите в правом нижнем углу диалогового окна под кнопкой «Дополнительно». Если там есть кнопка с надписью «Разблокировать», нажмите ее. Вам придется либо сделать это для всех них, либо добавить их в GAC с помощью утилиты gacutil.

Пол

...