Visual studio ссылка недействительна или не поддерживается

Обновлено: 04.07.2024

До сих пор я пробовал типичный clean, rebuild, вручную удаляя вещи из obj, обновляя.xaml и перестроение, пытался запустить VS2012 с /resetuserdata и / resetsettings-проблема сохраняется. Я даже откатился к гораздо более старой редакции моего проекта, когда дизайнер работал просто отлично, без костей-та же ошибка. Я также попытался запустить VS2012 в качестве нового пользователя windows, чтобы избежать любых сохраненных appdata, которые могут задерживаться, снова нет go.

Есть ли какой-то другой кэш или что-то, что я мог бы вручную удалить?

У меня просто была та же проблема (компиляция и запуск программы, XAML designer сообщает недопустимую разметку), проблема заключалась в том, что я случайно изменил имя сборки одного из проектов в моем решении, я изменил его обратно, и мой XAML designer вернулся к жизни, поэтому проверьте страницу свойств каждого проекта в вашем решении и убедитесь, что имя сборки так, как вы ожидаете.

Я не уверен, что это исправит все случаи, но это то, что работало для меня (все время сейчас).

У меня есть VS2012, используя Blend designer в IDE, создавая приложение x64, когда я бы определил новую ICommand и добавил атрибут команды, я бы получил дизайнер не поддерживается в ошибке x64 (я забыл точное предупреждение). Если я переключусь на x86, я получу недопустимые ошибки разметки XAML, жалуясь, что ICommand не был распознан или не был доступен, независимо от того, сколько раз я перестраивался в x64. Если я переключаюсь на x86, построить, а затем переключиться обратно на x64, вуаля, не проблемы с дизайнером.

Я думаю, что в вашем проекте нет проблем, но это проблема по сравнению с 2012 годом. Попробуйте установить последнее обновление для VS 2012 (Update 2), а также проверьте этот ответ .

У меня та же проблема при использовании элементов управления с пользовательским конструктором (без param).

Проверьте, не требует ли конструктор пользовательского / пользовательского элемента управления каких-либо данных, которых нет в конструкторе WPF. Быстрое ожидание, чтобы проверить, что окружает все это с try catch, очистка, восстановление, а затем проверить, если проблема решатель.

Если это не так, попробуйте комментировать все, кроме WPF Init cod по умолчанию, очистить, перестроить и проверить его.

Существует также проблема с тем, что ShadowCache (используемый для конструктора визуализации) выходит из синхронизации с XAML в VS2012. Я только что узнал об этом, так как у меня было ужасное время со следующей ошибкой с производными пользовательскими элементами управления:

Свойство local XXXX может применяться только к типам, производным от YYYYY.

Теневой кэш находится в каталоге профиля пользователя:

Вы можете удалить все там и перезапустить VS2012. После этого все работало намного лучше (по крайней мере, на некоторое время!)

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

Удалить все в ShadowCache

Пути копирования-вставки

Просто скопируйте / вставьте один из этих путей в Проводник Windows. %LOCALAPPDATA% является переменной среды Windows, она будет заменена на соответствующее значение при вводе в проводник (также работает в командной строке)

VS2012

%LOCALAPPDATA%\Microsoft\VisualStudio.0\Designer\ShadowCache\

VS2013

%LOCALAPPDATA%\Microsoft\VisualStudio.0\Designer\ShadowCache\

VS2015

%LOCALAPPDATA%\Microsoft\VisualStudio.0\Designer\ShadowCache\

Если ваш конструктор без параметров выполняет какую-то другую работу, например получение данных, которые не существуют, потому что вы находитесь в конструкторе, добавьте это в начале конструктора:

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

ссылка ". dll " не удалось добавить.Пожалуйста, убедитесь, что файл доступен и является допустимой сборкой или COM деталь.

ILDissassembler говорит, что нет допустимого заголовка CLR, поэтому я пытаюсь зарегистрировать его с помощью regsvr32, и это дает мне еще одну ошибку:

модуль "" был загружен, но вызов DLLRegisterServer не удалось код ошибки 0x80004005 при'

Я использую версию VS2010 ultimate на 64-битной машине Windows 7. В чем может быть проблема?

Спасибо за любые советы/ответы

для меня сработало следующее:

короткий ответ:

выполните следующие действия через командную строку (cmd):

и для вас будет создана допустимая dll.

более длинный ответ

Найти TlbImp.исполняемый. Вероятно, находится в C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.0A\Bin. Если вы не можете найти его, перейдите в корневую папку (C:\ или D:) и беги:

запустить программу tlbimp.exe и поместите свою dll за него. Пример: если ваша dll является cvextern.файл DLL. Вы можете запустить:

regsvr32 также делает определенные предположения о структуре и экспортируемой функции в DLL. Прошло некоторое время с тех пор, как я использовал его, но это связано с регистрацией COM-серверов, поэтому определенные точки входа должны быть доступны. Если regsvr32 терпит неудачу, DLL не предоставляет эти точки входа, а DLL не содержит com-компонент.

Я использовал dependency walker для проверки внутренних ссылок, которые имела dll. Оказывается, он нуждался в среде выполнения VB msvbvm60.dll и так как мой dev box не установлен, я не смог зарегистрировать его с помощью regsvr32

Это, кажется, ответ на мой первоначальный вопрос сейчас.

убедитесь, что ваш компилятор установлен в x86, если вы пытаетесь ссылаться на x86 dll.

Я продолжал получать ошибки о том, что библиотека Access недоступна, но я знал, что загрузил ее.

во время отладки меня осенило, что я компилирую для 64 бит, но загрузил Office x86. Хотя я загрузил Доступ к библиотеке для 32 бит, он никогда не использовался приложением. и поэтому был недоступен.

"Поставщик=Microsoft.ТУЗ.Oledb для.12.0; источник данных= " + strFilePath +"; расширенные свойства='Excel 12.0 Xml; HDR=Yes'";

Как только я переключил компилятор для x86 он работал

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

У меня такая же проблема с импортом WinSCard.dll в моем проекте. Я имею дело с этим импортом непосредственно из dll, как это:

вы можете добавить это в отдельный проект, а затем добавить ссылку из своего основного проекта.

вы не можете добавить ссылку на уроженца DLL. Однако вы можете включить их в решение (щелкните правой кнопкой мыши решение, выберите "Добавить существующий файл"), но они не будут ссылаться, если вы не объявите что-то вроде

может быть, есть какой-то фантик DLL, на которую вы фактически ссылаетесь и которая содержит импорт DLL.

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

эта проблема заключается в том, что сборка, которую вы пытаетесь добавить, является целевой и компилируется только для x86 или х64 архитектура процессора.

просто попробуйте изменить целевую платформу на x86 или х64 на построить ->Configuration Manager.

для тех, кто ищет помощь по этому вопросу, или испытывает FileNotFoundException или FirstChanceException, проверьте мой ответ здесь:

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

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

У меня была эта ошибка при записи службы Windows. Я запускал Visual Studio как администратор, чтобы мои команды сборки post автоматически устанавливали мою службу. Я заметил, что когда я закрыл все и запустил VS нормально (не как администратор), это позволило мне добавить ссылки просто отлично без ошибок.

надеюсь, что это решение работает для вас.

обычно в Visual Studio 2015 вы должны создать проект dll как проект C++ -> CLR из шаблонов Visual Studio, но вы можете технически включить его после того, как факт:

критическое свойство называется Common Language Runtime Support в настройках Вашего проекта. Он найден под Configuration Properties > General > Common Language Runtime Support .

для примера я предлагаю создать новое решение в качестве проекта C++ CLR и изучить XML там, возможно, даже дифференцировать его, чтобы убедиться, что нет ничего очень важного, что выходит за рамки обычного.

Мне нужно было изменить архитектуру на x86 из x64 в configuration manager и скопировать мою 32 - битную dll (язык C-pcProxAPI.dll) в новую папку, созданную этим.. Это на верхних ступенях лестницы, описанный "Sashus" ниже.

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

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

у меня была та же проблема, когда я пытался добавить dll, которую я только что закодировал. Оказалось, мне нужно было установить свойства проекта, из которого моя dll:

  • Configuration Properties\General\Common Language Runtime Support: /clr
  • Configuration Properties\C/C++\General\Common Language RunTime Support: /clr

потому что проект, в котором я хотел использовать эту dll, также был установлен так (имел те же свойства, что и /clr ).

папка references

3. Если вы хотите добавить в проект свою или стороннюю библиотеку, то перейдите к пункту №7, если же вы хотите подключить сборку, входящую в состав FCL, тогда в меню Reference Manager выберите пункт Assemblies

пункт меню Assemblies

4. Выберите подпункт Framework

пункт меню Framework

5. В появившемся по центу списке выберите нужную вам сборку и нажмите кнопку OK.

список сборок

6. В папке References должна появиться ссылка на добавленный вами файл.

ссылка на сборку

7. Если вам требуется подключить в проект свою или чью-то скаченную библиотеку, то тогда, сначала, нажмите кнопку Browse

кнопка Browse

8. Откроется диалоговое окно. Перейдите в папку, которая содержит нужный вам dll файл, выберите его и нажмите кнопку Add

диалоговое окно

9. Выберите пункт Browse

пункт меню Browse

10. Убедитесь, что добавленный файл выбран и нажмите кнопку OK

Reference Manager

11. В папке References должна отобразиться ссылка на добавленный вами файл

Причины возникновения ошибки в Windows

Причиной ошибки «Интерфейс не поддерживается» является повреждение системных файлов Windows 7 или 10 или просто сбой. Это происходит после внесения изменений в реестр, использования твикеров, ускорителей работы и прочих дополнительных утилит, вмешивающихся в работу ОС. Иногда такое может случиться, если ПО было установлено неправильно или в компьютер проникли вирусы.

Системная ошибка Интерфейс не поддерживается

Есть несколько ошибок с одинаковым текстом, но разными пометками:

  • отсылка С:\WINDOWS\refedit.exe означает, что проблема кроется в реестре и проявляется при запуске софта;
  • если же сверху окошка пишется числовой код «2147467262», это может значить, что сбой случился ещё на стадии установки ПО;
  • и, наконец, появление надписи при открытии параметров персонализации свидетельствуют о необходимости перерегистрации системных библиотек.

Теперь, когда мы выяснили, почему возникает проблема, можно приступать к борьбе с ней.

Исправление ошибки «Интерфейс не поддерживается»

Теперь рассмотрим другой вариант: когда новоустановленная программа не запускается из контекстного меню Windows, демонстрируя окно с кодом 2147467262 и информацией о неподдерживаемом интерфейсе.

Теперь перейдём к случаю, когда давно установленная программа не хочет запускаться. Вначале попробуем использовать точки восстановления:

Если ничего не вышло, может помочь использование реестра с другого компьютера:

  1. Откройте нормально работающий ПК и вставьте в него любой съёмный носитель.
  2. Вбейте в поиск: «Выполнить», кликните по значку ПКМ и выберите Run As Administrator.
  3. Впишите в строку: regedit и нажмите «Интер».
  4. Слева найдите HKEY_CLASSES_ROOT\.exe, кликните ПКМ и начните экспорт.
  5. Назовите, как хотите, главное, чтоб вам было понятно, а расширение укажите как .reg.
  6. Сохраните в таком же виде раздел HKEY_CLASSES_ROOT\exefile.
  7. Включите проблемный ПК, подсоедините к нему носитель и запустите скопированные файлы двойным кликом.
  8. Ответьте утвердительно на вопрос системы, действительно ли вы желаете изменить реестр.
  9. Перезапустите ОС.

Пожалуй, это самый оптимальный вариант, но более продвинутые пользователи могут попробовать ручное создание reg-файла для восстановления запуска exe. Это делается в том случае, если вы твёрдо знаете, в каком разделе кроется неисправность и умеете составлять коды (или у вас есть готовый):

  1. Традиционно в качестве платформы для составления reg-файла используется «Блокнот» Запустите его и вставьте код или составьте свой.
  2. Нажмите File- Save As.
  3. Укажите тип файла как All files и поставьте расширение .reg, нажмите ОК.
  4. Теперь его можно запустить, и он автоматически попадёт в реестр.

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

Читайте также: