2009-12-20 4 views
1

я получаю следующее исключение при показе формы:VB.Net Визуального Ошибка студии при показе формы

InvalidOperationException был необработанным

Смешанная режим сборки является построить против версии «V2.0.50727» из время выполнения и не может быть загружено в среду выполнения 4.0 без дополнительной информации о конфигурации.

alt text http://img69.imageshack.us/img69/2599/captureya.png

действительно не знаю, почему это разве работает. Любая помощь?

+0

В чем заключается внутреннее исключение? –

+0

Я добавил сообщение об ошибке в виде текста, чтобы ваш вопрос можно найти в Google. –

ответ

0

Я не видел код для LoginForm. Но я думаю, что вам нужно установить флаг app.config, чтобы возвратиться к .NET 2.0 Эра привязок ...

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

Во-первых, что смешанный режим сборки? A сборка смешанного режима представляет собой сборку , которая содержит управляемый (CIL) и неуправляемый (машинный язык) код. Следовательно, они не переносимы на другие наборы инструкций процессора, как и обычных программ на C и C++ и библиотек.

Дальше, зачем их использовать? Основная цель для сборки смешанного режима - как «клей», например. используйте библиотеку C++ класс как базовый класс управляемого класса. Это позволяет управляемому классу расширять неуправляемые методы, позволяя управляемый код быть полиморфным в отношении существующих неуправляемых функций . Это чрезвычайно полезно в контексте . Однако, как-то , как это предполагает расширение класса на C++ , он требует, чтобы компилятор знать все о компиляторе C++ ABI (имя коверкая, виртуальная функция таблицы генерации и размещения, исключение поведение), и, таким образом, эффективно требует собственный код. Если базовый класс находится в отдельном .dll, это будет также требовать, чтобы смешанный режим список сборки родного .dll как зависимости, так что родная библиотека также загружена, когда сборка загружен.

Другое дело, что поддержка смешанного режима сборки является возможность экспорта новых функций C, так что другие программы могут LoadLibrary() для сборки и GetProcAddress экспортируемой функции C.

Оба этих возможности требуют , что общая библиотеки загрузчик для поддержки платформы Portable Executable файлов (PE), в качестве сборки являются PE файлов.Если разделяемая библиотека загрузчик поддерживает PE файлы, то загрузчик может гарантировать, что когда сборка загружена, все перечисленные зависимые библиотеки также загружены (случай 1), или что родных приложения смогут загрузить сборки как если бы это была родная DLL и разрешающая точка входа DLL против .

Source

+0

Хорошо, где это? –

+0

В вашем app.config .. Это должно быть частью вашего решения. – 2009-12-20 18:34:04

+0

Спасибо, чувак! Это работает сейчас :) –

0

Я имел этот вопрос, попробовал ответ выше, и это не сработало.

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

Я знаю, что он удалял операторы импорта, потому что я тестировал каждое изменение, которое я пробовал.

Надежда, которая помогает кому-то.