Не удалось найти ссылочный компонент

#c# #dll #reference #warnings

#c# #dll #ссылка #предупреждения

Вопрос:

я пытаюсь разработать приложение, но затем выскочили эти предупреждения. Я пытался отключить свой антивирус (Avira), но он по-прежнему не будет работать.

 Warning 1   Resolved file has a bad image, no metadata, or is otherwise inaccessible. Could not load file or assembly 'MyAssembly.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.    ConsoleApplication1

Warning 2   The referenced component 'MyAssembly' could not be found. 
  

Кто-нибудь, пожалуйста, может мне помочь? Спасибо!

Комментарии:

1. Проверьте свои ссылки. Вы удалили MyAssembly.dll компонент, на который ссылались ранее?

2. Нет, я этого не делал. На самом деле друг дал мне эту dll, которую я могу использовать для своего приложения. Я пытаюсь добавить его в свое решение, добавив ссылку. Однако после его добавления появляются предупреждающие сообщения.

Ответ №1:

Что .С помощью версии NET runtime разрабатывается ваше приложение?

Если ошибке следует доверять, то ваш проект, скажем, является проектом .NET 3.5 (среда выполнения 2.0), но библиотека MyAssembly разработана в .NET 4.0, что приводит к ошибке, которую вы видите.

Вы не можете ссылаться на сборки более новой версии среды выполнения в проекте более старой версии среды выполнения. Вам пришлось бы «обновить» свой проект, чтобы он, по крайней мере, соответствовал версии framework предоставленной вам сборки.

Щелкните правой кнопкой мыши на файле вашего проекта и выберите свойства. В зависимости от того, какую версию Visual Studio вы используете, этот экран может выглядеть по-разному, но перейдите на вкладку приложения и посмотрите, какова целевая платформа.

Свойства проекта

Затем перейдите к сборке, на которую вы ссылались в своих ссылках, и проверьте «Версию среды выполнения» в разделе свойств:

Ссылка

Комментарии:

1. привет, я попробовал это, и целевая платформа показывает мне список из трех элементов в выпадающем списке, а именно: .NET Framework 2.0, 3.0, 3.5. Мой в настоящее время использует 3.5. Я попытался переключиться между этими тремя, и это все равно не сработает. Означает ли это, что мне придется обновиться до .NET Framework 4.0?

2. Убедитесь, что ваша сборка friends является .NET 4.0, как упоминалось выше. Если это так, то да, единственный способ, которым вы могли бы это реализовать, — это обновление до проекта 4.0. Если это не сборка 4.0, то готовится что-то еще.

3. привет, я попытался просмотреть свойства моей сборки, и она показывает пустую версию среды выполнения и путь. Показанная версия 0.0.0.0. Что, черт возьми, не так с моей dll? 🙁

4. Следующими шагами на моем месте была бы попытка загрузить эту DLL в .NET Reflector, ILSpy или dotPeek, чтобы проверить правильность сборки. Если вы можете это сделать, я бы пошел этим путем, в противном случае я бы поговорил с вашим другом, чтобы получить необходимую вам информацию.