#c# #.net
#c# #.net
Вопрос:
У меня есть приложение на C #, предназначенное для .Версия Net framework 3.5. Двоичный файл работал нормально, когда.Установлен Net framework 3.5. Но это приводит к некоторой несовместимости с .Net 4.0
Я вижу следующее исключение:
Пойманное исключение при методе: инициализировать компонентную строку: 0 Столбец: 0 Исключение: не удалось загрузить файл или сборку ‘WindowsFormsIntegration, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’ или одну из его зависимостей. Система не может найти указанный файл.
Комментарии:
1. У вас есть клиент framework 4.0 или полностью на целевой машине?
2. Является ли ошибка постоянной на нескольких компьютерах?
3. установлена ли у вас платформа 3.5 Framework? 4.0 не содержит всего, что есть в 3.5. кстати, win7 уже содержит фреймворк 3.5
4. Кроме того, в идеале ваш код должен явно использовать версию .NET 4.0 этой библиотеки dll
5. Вы установили
Specific Version
для свойства значение true для ссылки WindowsFormsIntegration?
Ответ №1:
Я думаю, что вся информация, необходимая для решения этой проблемы, уже была опубликована в комментариях, чтобы подвести итог, однако:
Информация, которая вам действительно нужна, содержится в опубликованном исключении (выделение мое):
Не удалось загрузить файл или сборку ‘WindowsFormsIntegration, версия = 3.0.0.0
Он пытается загрузить версию .Net 3.0 WindowsFormsIntegration.dll
, но не может найти файл (или одну из его зависимостей), предположительно, это связано с тем, что платформа .Net 3.0 не установлена на клиентском компьютере. Обратите внимание, что .Платформа Net версии 4.0 не зависит от предыдущей версии.Net framework — нет гарантии, что .Net framework v3.0 будет доступен на компьютере, даже если .Присутствует Net framework версии 4.0.
Если вы установите .Net framework версии 3.0 тогда ваша программа должна снова работать (за исключением других проблем), однако на самом деле, если вы ориентируетесь на .Net 4.0 framework, вам следует ссылаться на версию .Net 4.0 WindowsFormsIntegration.dll
. Просто удалите существующую ссылку и добавьте вместо нее другую ссылку на версию .Net 4.0.
Примечание: свойство «Конкретная версия» — это параметр времени компиляции, который позволяет Visual Studio выполнять сборку, даже если у нее нет доступа к правильной версии, однако во время выполнения этот параметр не имеет никакого эффекта — должна присутствовать правильная версия сборки. Посмотрите, что вам нужно знать о ссылочных сборках в VS2005
Комментарии:
1. 1: .Net 4.0 НЕ содержит 3.5. Тем не менее, я считаю, что лучший путь — установить 3.5 на целевой объект, а не возиться с попытками преобразовать его приложение в 4.0