Visual studio ссылка недействительна или не поддерживается
До сих пор я пробовал типичный 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 ).
3. Если вы хотите добавить в проект свою или стороннюю библиотеку, то перейдите к пункту №7, если же вы хотите подключить сборку, входящую в состав FCL, тогда в меню Reference Manager выберите пункт Assemblies
4. Выберите подпункт Framework
5. В появившемся по центу списке выберите нужную вам сборку и нажмите кнопку OK.
6. В папке References должна появиться ссылка на добавленный вами файл.
7. Если вам требуется подключить в проект свою или чью-то скаченную библиотеку, то тогда, сначала, нажмите кнопку Browse
8. Откроется диалоговое окно. Перейдите в папку, которая содержит нужный вам dll файл, выберите его и нажмите кнопку Add
9. Выберите пункт Browse
10. Убедитесь, что добавленный файл выбран и нажмите кнопку OK
11. В папке References должна отобразиться ссылка на добавленный вами файл
Причины возникновения ошибки в Windows
Причиной ошибки «Интерфейс не поддерживается» является повреждение системных файлов Windows 7 или 10 или просто сбой. Это происходит после внесения изменений в реестр, использования твикеров, ускорителей работы и прочих дополнительных утилит, вмешивающихся в работу ОС. Иногда такое может случиться, если ПО было установлено неправильно или в компьютер проникли вирусы.
Есть несколько ошибок с одинаковым текстом, но разными пометками:
- отсылка С:\WINDOWS\refedit.exe означает, что проблема кроется в реестре и проявляется при запуске софта;
- если же сверху окошка пишется числовой код «2147467262», это может значить, что сбой случился ещё на стадии установки ПО;
- и, наконец, появление надписи при открытии параметров персонализации свидетельствуют о необходимости перерегистрации системных библиотек.
Теперь, когда мы выяснили, почему возникает проблема, можно приступать к борьбе с ней.
Исправление ошибки «Интерфейс не поддерживается»
Теперь рассмотрим другой вариант: когда новоустановленная программа не запускается из контекстного меню Windows, демонстрируя окно с кодом 2147467262 и информацией о неподдерживаемом интерфейсе.
Теперь перейдём к случаю, когда давно установленная программа не хочет запускаться. Вначале попробуем использовать точки восстановления:
Если ничего не вышло, может помочь использование реестра с другого компьютера:
- Откройте нормально работающий ПК и вставьте в него любой съёмный носитель.
- Вбейте в поиск: «Выполнить», кликните по значку ПКМ и выберите Run As Administrator.
- Впишите в строку: regedit и нажмите «Интер».
- Слева найдите HKEY_CLASSES_ROOT\.exe, кликните ПКМ и начните экспорт.
- Назовите, как хотите, главное, чтоб вам было понятно, а расширение укажите как .reg.
- Сохраните в таком же виде раздел HKEY_CLASSES_ROOT\exefile.
- Включите проблемный ПК, подсоедините к нему носитель и запустите скопированные файлы двойным кликом.
- Ответьте утвердительно на вопрос системы, действительно ли вы желаете изменить реестр.
- Перезапустите ОС.
Пожалуй, это самый оптимальный вариант, но более продвинутые пользователи могут попробовать ручное создание reg-файла для восстановления запуска exe. Это делается в том случае, если вы твёрдо знаете, в каком разделе кроется неисправность и умеете составлять коды (или у вас есть готовый):
- Традиционно в качестве платформы для составления reg-файла используется «Блокнот» Запустите его и вставьте код или составьте свой.
- Нажмите File- Save As.
- Укажите тип файла как All files и поставьте расширение .reg, нажмите ОК.
- Теперь его можно запустить, и он автоматически попадёт в реестр.
Последняя мера достаточно рискованная и несёт в себе определённую угрозу – если вы ошибетесь, в системе может произойти крупный сбой, поэтому будьте осторожны.
Читайте также: