Неизвестная ошибка сборки файл не найден wpf
Немного информации о решении:
Я работаю в режиме отладки, и Visual Studio жалуется, что не нашел dll: s в папке выпуска.
Проекты, на которые жалуется Visual Studio, используются во многих других проектах решения.
Я изменил путь вывода по умолчанию для всех проектов на . \ build \ debug \ ProjectName и . \ build \ release \ ProjectName соответственно. (Просто чтобы собрать все файлы сборки в одном каталоге)
У меня такая же проблема с другим решением.
Решение создавалось с нуля.
В решении 9 проектов. Один WPF и 8 библиотек классов с использованием dotnet 3.5.
Есть идеи о том, что вызывает эту проблему?
У меня была аналогичная проблема, когда «не удалось найти метаданные». в свойстве решения убедитесь, что в диспетчере сборки / конфигурации для каждого проекта установлен флажок «сборка» .
Для тех, кто не может его найти, Build / Configuration Manager обращается к меню Build -> Configuration Manager. Я только что столкнулся с этой проблемой, причиной была другая ошибка, из-за которой указанный проект не был успешно построен. Это было на чистой проверке, поэтому никаких DLL-файлов от предыдущих успешных сборок не существовало. Исправьте ошибки и убедитесь, что проект, на который есть ссылка, строится правильно. Иногда даже это не помогает, как отмечал Ник выше. В этом случае закрытие и перезапуск VS всегда помогало мне. YMMV. Не решил проблему. Я перезапустил VS, и это не решило проблему.(Я столкнулся с этим только сегодня, и в прошлом, и это ВСЕГДА работало)
Жалуются только те проекты, которые есть в моем решении.Решение для меня заключалось в том, чтобы выяснить, что у меня есть два проекта с одинаковым именем, которые были случайно продублированы, и удалить ссылку на старый неправильный проект и добавить ссылку на новый.
Еще одна вещь, которую нужно проверить, - это длина пути . что вызывает также не найденный файл метаданных и ошибки компиляции . Я просто переименовал свои папки в более короткие пути и вуаля, классы, которые не были распознаны и остались черными, стали синими просто путем переименования Папка.
Для меня у меня был проект, упомянутый в другом проекте. Он не показал, что он был поврежден в списке ссылок в окне проводника решений, но я все равно удалил и прочитал его. Теперь он строится просто отлично!
Действительно, я удалил все ссылки и добавил их снова.Я прошел все эти шаги в VS2012, но я продолжал сталкиваться с этой проблемой при создании решения в целом (отдельные проекты были созданы отлично, без ошибок).
Я обнаружил, что если вы щелкните правой кнопкой мыши свое решение в обозревателе решений и выберите «Порядок сборки», вы увидите порядок, который VS использует для восстановления вашего решения. Скорее всего, вышло из строя.
То, как я обошел это в прошлом в VS2005, а также сейчас в VS2008, - это убедиться, что все зависимости верны, а ссылки указывают на проекты, а не на библиотеки DLL. Затем пройдите и вручную соберите каждый проект в порядке зависимости. После того, как последняя сборка будет построена, вы можете запустить полную сборку решения и все будет в порядке.
Этот ответ предназначен для использования в будущем для других, поскольку я знаю, что этому вопросу больше 15 месяцев.
Я хотел бы отметить пару моментов.
Если вы полагаетесь на файл решения в качестве файла сборки в MSBuild, убедитесь, что вы добавляете проекты в файл решения в том порядке, в котором вы хотите, чтобы они строились, т. Е. На основе порядка взаимной зависимости проектов. Это становится очень важным, если у вас есть проекты в решении, от которых зависят другие проекты, но ссылки были добавлены как «Ссылки», а не как «Ссылки на проекты».
Вам следует избегать этого, как чумы, но если вам все же нужно это сделать, то, по крайней мере, убедитесь, что зависимые проекты появляются раньше в файле решения.
Вы должны иметь в виду, что способ создания порядка сборки в Visual Studio не совсем такой, как в MSBuild. Это связано с тем, что MSBuild в первую очередь зависит от файла проекта, чтобы сообщить ему, каковы зависимости, тогда как Visual Studio также может сохранить их в файле решения. Поэтому иногда можно увидеть ситуации, когда Visual Studio идеально создает решение, но MSBuild просто не может этого сделать.
У меня было несколько случаев, когда мне приходилось вручную настраивать порядок, в котором проекты отображаются в файле решения, а также порядок, в котором проекты были перечислены в элементе ProjectReferences в проекте веб-сайта в файле решения.
Я надеюсь, что приведенная выше информация поможет.
Восстановить файл designer.cs очень просто.
Откройте dbml с помощью xml view. Добавьте пустую строку, затем удалите ее и сохраните. Это должно восстановить ваш файл designer.cs.
В некоторых случаях, если у вас есть код внутри кода программной части контекста данных, этот обходной путь не сработает. В этом случае выньте код из кода позади и поместите его в блокнот или что-то в этом роде. Проделайте трюк добавления, а затем удаления строки из DC и сохраните. Теперь верните код и сохраните.
Я также испытал эту ошибку, и причина в том, что проект ссылается на самого себя. Понятия не имею, как это произошло, но я просто удалил ссылку и вуаля
Сначала убедитесь, что флажок «сборка» установлен в меню «Сборка -> Configuration Manager» для каждого проекта.
В случае, если у вас уже есть все проекты, выбранные в меню Build -> Configuration Manager, и перезапуск VS-трюка не работает для вас, чем вам нужно найти ссылку на файл (ы) (может быть dll или cs) в ваш проект и удалите эти ссылки вручную. Эти файлы / ссылки должны отображаться с желтым значком. Ошибка определенно подсказывает вам, какой проект решения вам следует изучить.
Причина этой ошибки заключается в том, что вы удалили файл (ы) вручную в проводнике Windows, а VS не обновил ссылку и не пытается найти файл, который больше не существует!
В моем случае я обнаружил, что одно из моих решений ссылается на то, чего не было на компьютере (VBIDE). Как только я удалил оскорбительную ссылку, остальные проекты построились правильно. Надеюсь, это кому-то поможет.
Если вы добавили в решение новый проект, убедитесь, что он есть в списке сборки (см. Configuration Manager).
Windows 7 Максимальная 32 Visual Studio 2008 SQL Server v2005
Я получал ту же ошибку. И я решил удалить и снова добавить ссылки на проекты. Мне не удалось добавить их обратно, потому что ссылка на базу данных в каждом из упомянутых проектов была пустой.
После того, как я сбросил ссылку на базу данных на правильный параметр, я смог построить без дальнейших проблем. Кроме того, это была моя первая попытка перестроить этот проект после разветвления исходного кода в VSS.
У меня была эта ошибка, она была вызвана одной из моих зависимостей проекта, где имя сборки было изменено в проекте, но ссылка не была обновлена. Таким образом, обновление ссылки или переименование сборки исправит это.
EE - В моем случае проблема была в проекте, который имеет структуру Entity, откройте диаграмму, перетащите любую таблицу на 2 см :) и сохраните, VS обновит все свои ссылки на БД . создайте эти проекты и создайте решение , Buildssss.
Единственное, что меня исправило (потому что я не использую VS2010 под учетной записью администратора), - это вручную переместить переменную среды VS120COMNTOOLS из системных переменных в пользовательские.
У меня сработало удаление записей всех исходных файлов, которых больше нет в системе управления версиями и файловой системе, из файла .csproj.
Детальный подход:
Что ж, мой следующий ответ - это не просто краткое изложение всех решений, он предлагает нечто большее.
Секция 1):
В общих решениях:
У меня было 4 ошибки такого типа («файл метаданных не найден») и 1 ошибка «Исходный файл не может быть открыт (« Неопределенная ошибка »)».
Перезапустите VS и попробуйте снова построить.
Перейдите в «Обозреватель решений» . Щелкните правой кнопкой мыши Решение. Зайдите в Свойства . Перейдите в «Диспетчер конфигураций» . Проверьте, отмечены ли флажки в разделе «Сборка» . Если какой-либо из них или все они не отмечены, отметьте их и попробуйте построить снова.
Если вышеуказанные решения не работают, следуйте последовательности, упомянутой в шаге 2 выше, и даже если все флажки отмечены, снимите их, проверьте еще раз и попробуйте построить снова.
Порядок сборки и зависимости проекта:
Перейдите в «Обозреватель решений» . Щелкните правой кнопкой мыши Решение. Перейдите в «Зависимости проекта . » . Вы увидите 2 вкладки: «Зависимости» и «Порядок сборки» . Этот порядок сборки используется для сборки решения. Проверьте зависимости проекта и порядок сборки, чтобы убедиться, что какой-то проект (скажем, «project1»), который зависит от другого (скажем, «project2»), пытается построить до этого (project2). Это могло быть причиной ошибки.
Проверьте путь к отсутствующей .dll:
Проверьте путь к отсутствующей .dll. Если путь содержит пробел или любой другой недопустимый символ пути, удалите его и попробуйте построить снова.
Если это причина, измените порядок сборки.
Раздел (2):
Мой частный случай:
Я пробовал все вышеперечисленные шаги с различными перестановками и комбинациями с перезапуском VS несколько раз. Но мне это не помогло.
Итак, я решил избавиться от другой ошибки, с которой столкнулся («Исходный файл не может быть открыт (« Неопределенная ошибка »)»).
Я попробовал шаги, упомянутые в этом блоге, и избавился от ошибки «Исходный файл не может быть открыт (« Неопределенная ошибка »)» и, к удивлению, избавился и от других ошибок («файл метаданных не найден») .
Раздел (3):
Мораль истории:
Попробуйте все решения, упомянутые в разделе (1) выше (и любые другие решения), чтобы избавиться от ошибки. Если ничего не работает, согласно блогу, упомянутому в разделе (2) выше, удалите записи всех исходных файлов, которые больше не присутствуют в системе управления версиями и файловой системе, из вашего файла .csproj .
При сборке проекта WPF отображается следующая ошибка, это отлично работает в последней выпущенной версии 16.6.5.
Неизвестная ошибка сборки, «Не удалось найти сборку» mscorlib, Версия = 2.0.5.0, Культура = нейтральный, PublicKeyToken = 7cec85d7bea7798e ». Либо явно загрузите эту сборку с помощью такого метода, как LoadFromAssemblyPath (), либо используйте MetadataAssemblyResolver, который возвращает допустимую сборку.
Самый полезный комментарий
@ jnm2 Я вижу, что это тоже не работает, но это потому, что не используется
rollFoward , похоже, не оказывает никакого влияния, а dotnet --info сообщает о Version: 3.1.400 даже если он запущен в том же каталоге, что и global.json .
Я все еще веду расследование.
Все 23 Комментарий
Это можно обойти, добавив файл global.json рядом с файлом решения ( не рядом с файлом проекта, если они не находятся в той же папке). Это приводит к использованию последней версии SDK 3.1.3xx, только с использованием 3.1.300, если у вас нет ничего более позднего на машине в пределах 3.1.3xx:
@GrabYourPitchforks Есть ли у вас проблемы с использованием более старых SDK esp. с точки зрения отсутствующих исправлений безопасности и т. д.?
Если вы заблокируете себя определенной версией (скажем, 3.1.300 ), вам понадобится план обновления по мере выпуска новых исправлений безопасности и прекращения поддержки более старых версий. Если вместо этого вы разрешите версии плавать ( 3.1.xxx ), это станет немного проще.
Приведенный выше файл global.json соответствует последнему патчу для 3.1.3xx. Невозможно использовать 3.1.400, потому что SDK является причиной ошибки, если кто-то не найдет другой обходной путь. В конце концов, для этого и нужен global.json: работа с зависимостями версий. Было бы идеально, если бы был способ сказать «3.1.xxx, но представьте, что 3.1.400 не установлен», но это лучшее, что мы можем сделать.
@GrabYourPitchforks Вы говорите о средах выполнения или SDK? Единственный поддерживаемый SDK 3.1 - это тот, который в настоящее время нельзя использовать, 3.1.400?
@ jnm2 Причина, по которой я попросил @GrabYourPitchforks предоставить информацию, состоит в том, чтобы убедиться, что если временные решения должны быть предложены (например, «используйте 3.1.300 в global.json до тех пор, пока исправление не будет отправлено на предстоящем этапе обслуживания»), тогда такие обходные пути не приводят к неявному снижению безопасности. Ваши вопросы очень полезны, чтобы понять, какие обходные пути были бы жизнеспособными, если таковые имеются.
@ vatsan-madhavan Классно. Чтобы было ясно, мой обходной путь не использует 3.1.300, если установлены 3.1.301 или 3.1.302. Это связано с "rollforward": "latestPatch" а не с "rollforward": "patch" . Кроме того, это не влияет на политику повтора транзакций опубликованного приложения, только на сам SDK, который используется во время компиляции и публикации.
@ tuke307 Почему вы отказались от решения проблемы? Есть ли лучший обходной путь, чем использование SDK 3.1.302, который позволяет нам продолжать работу?
@ jnm2 у меня не работает. Я установил global.json со старым SDK 3.1.3, но он не работает
@ jnm2 Я вижу, что это тоже не работает, но это потому, что не используется
rollFoward , похоже, не оказывает никакого влияния, а dotnet --info сообщает о Version: 3.1.400 даже если он запущен в том же каталоге, что и global.json .
Я все еще веду расследование.
Я наблюдаю странное поведение; обратите внимание, что global.json и решение находятся в одном каталоге, и команды выполняются из этого же каталога.
Для этого global.json :
Я получаю этот вывод из dotnet --info :
Я только что удалил кучу более ранних SDK для dotnet (в основном старые версии 2. *), но по какой-то причине dotnet , похоже, не применяет global.json .
VS 16.6 не имеет проблемы, и VS 16.8 Preview тоже не имеет проблемы !
Я не могу использовать упомянутый выше обходной путь, поскольку наш проект НЕ нацелен на netcore.
@ jnm2 спасибо, я идиот: |
Извините, что сорвал разговор - вот в чем проблема; это также объясняет, почему у нас никогда не было сбоев ранней сборки, когда у нас не был установлен SDK .
@zastrowm Я знаю это чувство. Без проблем!
@ tuke307 Это тоже решает вашу проблему? Вы пытались вставить именно то обходное решение, которое я опубликовал?
@Dunge
Я не могу использовать упомянутый выше обходной путь, поскольку наш проект НЕ нацелен на netcore.
@ jnm2
Хорошо, спасибо, у меня был global.json рядом с .csproj, а не в папке .sln, поэтому он не работал. У меня также не было установлено 3.1.300, но указание на 3.1.201 (моя последняя установка до 3.1.400) работала. Думаю, этот файл останется до тех пор, пока MS не выпустит новое исправленное обновление.
Visual Studio 16.7.1 и SDK 3.1.401, которые были только что выпущены, похоже, исправили ошибку, присутствующую в 3.1.400. Теперь я могу создавать без файла global.json.
Я сейчас протестировал несколько проектов, ошибка вроде исправлена.
Visual Studio 16.7.5 и SDK 3.1.402, похоже, повторно представляют только эту проблему / ошибку (файл проекта WPF просто НЕ компилируется:
ошибка MC1000: Неизвестная ошибка сборки: «Не удалось найти тип Microsoft.EntityFrameworkCore.Infrastructure.DesignTimeProviderServicesAttribute» . »
@tomdierkes Я не думаю, что это та же проблема. Предлагаю открыть новый билет.
Вот как я ссылаюсь на свои пользовательские элементы управления:
Это происходит после каждой неудачной сборки. Единственный способ получить решение для компиляции - это закомментировать все мои пользовательские элементы управления и пересобрать проект, а затем я раскомментирую элементы управления, и все в порядке.
Я проверил порядок сборки и конфигурации зависимостей.
Как видите, кажется, что абсолютный путь к файлу DLL был обрезан . Я читал, что есть ошибка с длиной. Это возможная проблема?
Это очень раздражает, и необходимость комментировать, строить и раскомментировать сборку становится чрезвычайно утомительной.
У меня была такая же проблема. Visual Studio не создает проект, на который имеется ссылка.
Письменные инструкции:
Инструкции по созданию снимков экрана:
- Они говорят, что картинка стоит тысячи слов. Нажмите на GIF-изображение, чтобы увеличить масштаб, и, надеюсь, вам будет легко следить за ним:
- 178 И в моем случае, даже если этот флажок был установлен, снятие его и повторная установка решила проблему.
- 14 Это устранило мою проблему - мне пришлось сделать это для режимов Release и Debug в свойствах решения. Спасибо!
- 136 Снятие / проверка Simble не решила проблему, поэтому мне пришлось сделать следующие шаги: - очистить решение - снять все флажки сборки - перезапустить VS - установить все флажки сборки - решение для сборки
- 27 Еще нужно проверить каждую из зависимостей проекта, по какой-то причине он не устанавливал это автоматически. Свойства решения -> Общие свойства -> Зависимости проекта.
- 9 снимите отметку -> проверка работала у меня на короткое время, затем проблема вернулась. Затем я перезапустил Visual Studio, и проблема исчезла.
Это все еще может происходить в более новых версиях Visual Studio (у меня это произошло только в Visual Studio 2013):
Еще можно попробовать закрыть Visual Studio и удалить файл , который находится рядом с файлом . (Он будет повторно сгенерирован в следующий раз, когда вы (или выйдете из Visual Studio)).
У меня возникла эта проблема при добавлении новых проектов в решение на другом компьютере и последующем извлечении исправлений, но файл может быть поврежден и в других случаях и привести к очень странному поведению Visual Studio, поэтому его удаление является одним из то, что я всегда пробую.
Обратите внимание, что удаление файла приведет к сбросу запускаемых проектов решения.
Подробнее о файле здесь.
- 24 Это решило проблему для меня. Также стоит отметить, что файлов скрыты. Поэтому вам нужно настроить проводник для отображения скрытых файлов.
- 6 Я работаю с проектом Xamarin, и файл .suo находится в папке .vs /. Я попытался удалить его, но это не решило мою проблему
- VS2013 - мне пришлось переместить рабочую область TFS в другое место. После того, как я закончил это, я начал получать эту ошибку. У меня сработало удаление файла sou.
- 42 Это сработало и для меня. Но в Visual Studio 2015 файл скрыт и находится в скрытом каталоге рядом с . например: если файл решения - , ищите
- 7 Для VS2017 для простоты я просто удалил скрытую папку , а также удалил файл . Я повторно открыл решение, исправил еще одну несвязанную ошибку, и проблема была решена.
Предложенный ответ мне не подошел. Ошибка - приманка для другой проблемы.
Что ж, мой ответ - это не просто краткое изложение всех решений, он предлагает нечто большее.
Секция 1):
В общих решениях:
Перезапустите Visual Studio и попробуйте снова построить.
Если вышеуказанные решения не работают, следуйте последовательности, упомянутой в шаге 2 выше, и даже если все флажки отмечены, снимите их, проверьте еще раз и попробуйте построить снова.
Порядок сборки и зависимости проекта:
Проверьте путь к отсутствующей .dll:
Проверьте путь к отсутствующей .dll. Если путь содержит пробел или любой другой недопустимый символ пути, удалите его и попробуйте построить снова.
Если это причина, измените порядок сборки.
Раздел (2):
Мой частный случай:
Я попробовал все шаги, описанные выше, с различными перестановками и комбинациями, перезапустив Visual Studio несколько раз. Но мне это не помогло.
Раздел (3):
Мораль истории:
Попробуйте все решения, упомянутые в разделе (1) выше (и любые другие решения), чтобы избавиться от ошибки. Если ничего не работает, согласно блогу, упомянутому в разделе (2) выше, удалите записи всех исходных файлов, которых больше нет в системе управления версиями и файловой системе, из вашего файла .csproj.
Один проект был 3.5, а другой ссылался на проект 4.6.1.
Закрытие и повторное открытие Visual Studio 2013 сработало для меня!
- Возникла эта проблема после возврата изменений git в файлы проекта. Перезапустил VS2015 и решил проблему
- 1 По-прежнему есть эта проблема с VS2019, и это решило ее для меня, спасибо
Что ж, ничего в предыдущих ответах у меня не работало, поэтому я задумался о том, почему я щелкаю и надеюсь, когда, как разработчики, мы действительно должны попытаться понять, что здесь происходит.
Мне казалось очевидным, что эта неправильная ссылка на файл метаданных должна где-то храниться.
Быстрый поиск файла .csproj показал виноватые строки. У меня был раздел под названием казалось, что это старый неправильный путь к файлу.
Итак, простое исправление:
- Сделайте резервную копию вашего файла .csproj.
- Найдите неправильные пути в файле .csproj и переименуйте его соответствующим образом.
пожалуйста убедитесь, что вы сделали резервную копию своего старого .csproj, прежде чем играть.
- 40 УБЕДИТЕСЬ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ КОНТРОЛЬ ВЕРСИИ, ПРЕЖДЕ чем что-то сделаете
В моем случае я ошибочно установил каталог.
Переименование пути в обычное имя решило мою проблему.
Visual Studio 2019 это сработало для меня:
- Закройте Visual Studio
- Удалите скрытую папку
- Снова откройте Visual Studio и перестройте решение.
- 1 Большое спасибо, это сработало и для меня после еще одной неудачной сборки.
- 1 Спасибо, это помогло мне.
Я тоже столкнулся с этой проблемой. Во-первых, вам нужно вручную создать свой проект DLL, щелкнув правой кнопкой мыши Build. Тогда все заработает.
Я добавил в свое решение новый проект и начал получать его.
- 1 Не знаю почему, но я вот так год вел свои проекты. мой подпроект был 4.6.1, а основной - 4.5.2. он работал без проблем. внезапно я получаю эту ошибку, но я не хочу понижать подпроект, потому что у него есть функция, которая существует в 4.6.1, я не верю, что это проблема. Microsoft объясняет, что он все еще должен работать
- TL; DR: проверьте предупреждения компиляции. Это то, что случилось со мной, но с изюминкой. проекты были на уровне 4.5.2. Добавлены новые проекты в 4.6. Установлены пакеты nuget на 4.6 проектов. Проект с 4.6 понижен до 4.5.2. Nugets ожидали 4.6. Решены проблемы с понижением версии nugets.
Для меня он пытался найти DLL на пути, который раньше содержал проект, но мы переместили его в новый каталог. У решения был правильный путь к проекту, но Visual Studio каким-то образом продолжала искать в старом месте.
Решение: переименуйте каждый проблемный проект - просто добавьте символ или что-то еще - затем переименуйте его обратно в исходное имя.
Это должно сбросить какой-то глобальный кеш в Visual Studio, потому что это устраняет как эту проблему, так и несколько подобных ей, в то время как такие вещи, как Clean, этого не делают.
Для меня это произошло, когда я включил в решение новый проект.
Для меня сработали следующие шаги:
- Найдите проект, который не строится
- Удалите / добавьте ссылки на проекты в рамках решения.
- Щелкните правой кнопкой мыши ссылку "папку" в обозревателе решений, "удалить неиспользуемые ссылки". Я сделал это во всех своих проектах в этом решении, это помогло
Я тоже выдергивал волосы из-за этой проблемы, но после того, как я попробовал предыдущие ответы, единственное, что у меня сработало, - это открыть каждый проект в моем решении 1 на 1 и построить их индивидуально.
Затем я закрыл Visual Studio 2013, снова открыл свое решение, и оно скомпилировалось нормально.
Это странно, потому что, если я щелкнул каждый проект в своем обозревателе решений и попытался построить их таким образом, все они потерпели неудачу. Пришлось открывать их самостоятельно в своих решениях.
- +1 Тьфу, это. Чтобы снова заработать, Microsoft требуется перезагрузка.
Похоже, такого рода ошибки связаны с тем, что Visual Studio не предоставляет правильную информацию об ошибке. Разработчик даже не понимает причину неудачной сборки. Это может быть синтаксическая ошибка или что-то еще. Обычно, чтобы решить такие проблемы, вы должны найти корень проблемы (например, посмотреть журнал сборки).
В моем случае проблема заключалась в том, что в окне не было ошибок. Но действительно были синтаксические ошибки; Я обнаружил эти ошибки в окне , и после их исправления проблема была решена.
- Я тоже столкнулся с этой проблемой. В списке ошибок не было ошибок, но результаты неудачной сборки в DevOps показали ошибку
Мой экземпляр проблемы был вызван общим проектом, в котором было повторяющееся имя класса (под другим именем). Странно, что Visual Studio не смогла этого обнаружить и вместо этого просто взорвала процесс сборки.
У меня возникла эта проблема в Visual Studio 2012 в решении, в котором было много проектов. Перестройка каждого проекта в решении вручную в том же порядке, что и порядок сборки проекта (щелкните правой кнопкой мыши и перестройте в обозревателе решений), исправила это за меня.
В конце концов я добрался до одного, который дал мне ошибку компиляции. Я исправил ошибку, и после этого решение будет правильно построено.
- В моем случае ошибка была скрыта, пока я не открыл Visual Studio 2015 в режиме администратора. Только тогда он показал ошибку компиляции. После исправления я мог продолжить.
Если у вас есть пробел в имени вашего решения, это также вызовет проблему. Удаление пробела из имени вашего решения, чтобы путь не содержал% 20, решит эту проблему.
- ты гений !!
- Я не видел вашего комментария, пока не разобрался. Но это была моя проблема.
Возвращаясь к этому несколько лет спустя, эта проблема, скорее всего, связана с ограничением максимального пути Windows:
Именование файлов, путей и пространств имен, Ограничение максимальной длины пути
В моем случае проблема была вызвана простой ошибкой сборки,
ошибка CS0067: событие "XYZ" никогда не используется
которые по какой-либо причине не отображались в окне ошибки.
Рекомендация - как бы глупо это ни звучало -:
Сначала посмотрите на свой Окно вывода!
Мне потребовалось полчаса, прежде чем меня осенила эта идея .
- Думаю, каждому стоит присмотреться к этому ответу. Посмотрите в окно вывода сборки и посмотрите, есть ли там какие-либо ошибки или предупреждения, а затем исправьте их. Проблема решена. Спасибо Хайнцу Кесслеру за ваш ответ.
- 1 Это . Хотя приведенный выше ответ был хорош, я полностью упустил из виду это. Спасибо, сэр.
- @RhysJohns счастливого кодирования :)))
- У меня было что-то подобное недавно - неожиданно сотни ошибок cs0006 в журнале ошибок, но ничего больше (и я прочесал их очень тонкой расческой). В конце концов (!) Я подумал о том, чтобы взглянуть на окно вывода, и там была обнаружена ошибка компилятора, и, конечно же, в коде ошибка была красной волнистой линией под ней. Я понятия не имею, почему об ошибке не было сообщено в окне ошибок. VS2017 Enterprise.
У меня была эта ошибка, когда я пытался опубликовать веб-приложение. Оказалось, что одно из свойств класса было обернуто в
а вот использования собственности не было. Публикация была произведена в конфигурации Release, очевидно, без символа .
РАБОТА = - \ Tools \ VersionManagementSystem \ BusinessLogicLayer \ bin \ Debug \ BusinessLogicLayer.dll
Это недопустимый путь. Возможно ли, что определение макроса в процессе сборки имеет недопустимое значение?
- Я не знаю, как, поскольку я ничего не менял и не имею никаких пользовательских событий сборки или конфигураций
У меня была эта проблема, потому что не было включено в мой репозиторий. Хотя я включил в NuGet.targets, он сообщил об ошибке прокси-сервера при попытке его загрузки. Это привело к сбою остальных сборок проекта.
Эта ошибка может появиться, если вы используете поддельные сборки. Удаление фейков приводит к успешной сборке проекта.
Я разрабатываю надстройку для другого приложения, Autodesk Revit, которая построена как отдельная библиотека классов DLL. Я пытаюсь использовать сетка свойств набора инструментов Wpf в одном из моих окон WPF. Сетка свойств отлично отображается в Visual studio, и intellisense также работает. Но когда я пытаюсь запустить Revit с загруженной надстройкой, я получаю следующее исключение.
обычно, когда я хочу ссылаться на сборку 3rd party из плагина Revit, я просто убедитесь, что сторонняя библиотека DLL копируется в то же место, что и моя подключаемая библиотека DLL. Я проверил и Xceed.Wpf.Toolkit.dll копируется в каталог, содержащий мою подключаемую DLL.
однако у меня есть существующие инструменты развертывания плагинов, которые зависят от того, что файлы плагинов находятся в их собственных изолированных папка.
Итак, кто-нибудь знает, как я могу получить плагин, чтобы найти библиотеку инструментария WPF?
Итак, я нашел новое и лучшее решение этого моего вопроса с 2014 года.
сегодня я столкнулся с той же проблемой, когда загрузка элемента управления WPF из сборки вызвала бы исключение XamlParseException, за исключением этого времени, когда я создал сборку библиотеки элементов управления WPF.
Я попытался переместить DLL в ту же папку, что и EXE, и, как и раньше, это решило проблему.
оказывается, если вы просто даете элементу управления имя, добавив x:Name атрибут, это добавит ссылку на элемент управления в коде и по какой-то причине решит проблему с загрузкой сборки.
Я поклонник этого подхода. Можно зарегистрировать событие в AppDomain для события AssemblyResolve, которое ловит, когда не удается загрузить сборку.
это выглядит так:
вы можете сделать его немного более полным, чем это, но вы получите идею.
Я знаю, что это очень старый вопрос, но я случайно натыкался на эту точную ошибку не так давно. Если приложение visual studio использует два проекта или проект, ссылающийся на другой проект, я бы проверил, установлен ли в обоих проектах расширенный набор инструментов.
щелкните правой кнопкой мыши на обоих ваших проектах и нажмите "Управление пакетами NuGet", а затем перейдите в левой части диалога к"установленным пакетам". Если вы не видите extended toolkit на оба проекта, то вы можете использовать менеджер для поиска в интернете и установить их для вас.
моя проблема заключалась в том, что у меня был только расширенный набор инструментов, установленный на одном проекте, а не на обоих.
надеюсь, это поможет кому-то в будущем.
хотя это, вероятно, было решено, общей причиной является неспособность добавить Xceed.В WPF.DLL Toolkit для вашего проекта Точки входа. Вероятно, вы добавили его в один из проектов libary класса и установили для атрибута "копировать локально" значение true. Ссылка на эту dll также должна быть добавлена в ваш основной проект, который содержит ваше приложение.код XAML.cs с его атрибутом" копировать локальный", установленным в true.
Я удивлен, что Visual Studio 2013 не обрабатывает это автоматически.
хотя я лично считаю, что вы должны делать это, как указано в принятом ответе (@Matt), я хотел бы упомянуть, что копирование dll в папку "программа" в установке Autodesk Revit, вероятно, также сделает трюк. Если я правильно помню, они также предлагают вам развернуть свои дополнения в подпапку этой папки, чтобы убедиться, что она просто работает. Я подозреваю, что это из-за эффектов, подобных тому, который у вас есть.
на System.Reflection пространство имен, есть Assembly класса. Это можно использовать для загрузки новых сборок в текущий AppDomain.
хотя это все еще раздражает, я думаю, что это может быть единственный способ загрузить библиотеку не в главном каталоге.
убедитесь, что вы" разблокировать " сборку Xceed. Щелкните правой кнопкой мыши файл и выберите Свойства, затем "разблокировать". VS будет компилировать код без каких-либо ошибок, но при запуске Windows не будет загружать сборку. Моя даже была объединена в одно целое.
Я Fody Costura вложение в элементе Xceed.Wpf.Toolkit.dll составлен .dll . Просто установите его с помощью NuGet и типа Install-CleanReferencesTarget в своем Packet Manager Console и там вы идете.
когда элемент управления загружается из XAML, вызывающая сборка, из которой ваш Xceed.Wpf.Toolkit.dll загружается PresentationFramework.dll . Таким образом, CLR не будет заглядывать в вашу папку addin в этом случае (что он делает, когда другой класс загружается из основной сборки вашего addin, потому что он смотрит в папку вызывающей сборки).
таким образом, вы можете, как вы нашли, поместить ссылку на элемент управления в коде, или вы можете использовать AppDomain.CurrentDomain.AssemblyResolve чтобы заставить CLR искать в вашем добавлении папка.
установка dll в папку установки Revit работает, но это плохая практика, с моей точки зрения, потому что она может быть перезаписана другой установкой addin с последствиями, которые трудно измерить.
Я установил Feb 2010 WPF Toolkit, так как мне интересно оценить контроль AutoCompleteBox, и у меня крайне ограниченный успех. Я могу заставить элемент управления работать, но как только я попытаюсь установить любое из его свойств в XAML, я получу следующее:
Неизвестная ошибка сборки, " не удается разрешить зависимость до assembly 'WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35", поскольку она не была предварительно загружена. При использовании ReflectionOnly APIs зависимые сборки должны быть предварительно загружены или загружены по требованию через событие ReflectionOnlyAssemblyResolve.
Я тестировал это на пустом окне WPF в новом решении. Наверное, я просто пропустил ссылку или что-то в этом роде. Вот XAML (я ничего не добавил к .xaml.cs):
Единственная ссылка, которую я добавил, - Это System.Windows.Controls.Input.Toolkit. Есть идеи?
3 ответа
Вам нужно добавить ссылку на WPFToolkit.dll (а не только на System.Windows.Controls.Input.Toolkit).
Когда я получил ошибку, я смог ее устранить, добавив ссылку на WPFToolkit.dll в B. Я попытаюсь свести эту проблему к простому повторению и подать ее как ошибку для команды Visual Studio.
После добавления ссылки (следуя приведенным выше инструкциям) вам все равно нужно добавить эту строку в свой windows xaml.
Похожие вопросы:
Это действительно разыскиваемая функция, AutoCompleteBox (по-видимому, не AutoCompleteComboBox). Однако visual studio 2012 не может найти элемент управления AutoCompleteBox. Но я не пробовал в более.
Я использую Microsoft.Build.BuildEngine.Engine для создания приложения WPF. Это успешно работало для библиотек классов и веб-приложений, но теперь, пытаясь использовать его для создания приложения.
Поэтому я пытаюсь import диаграмму метро включить в свой проект visual studio 2010 (WPF) Дома (в Visual studio 2012 году) он работал отлично. Я знаю, что иногда вы не можете скопировать проекты 2012.
У меня есть проблемы с использованием расширенных элементов управления WPF Toolkit в среде XAML designer : Win8.1, WPF Toolkit 2.1.0.0, MS VisualStudio Express 2013 Что я наделал? - Загрузите.
Я работаю над приложением WPF,которое использует окно мастера из расширенного набора инструментов WPF. Мне нужно изменить цвет нижнего колонтитула мастера, и, к сожалению, разработчики не выставили.
Я довольно новичок в WPF и Helix toolkit. Я пытаюсь научиться создавать модель 3D с помощью Helix Toolkit WPF. Однако я не смог найти никакой документации об объектах, методах и свойствах Helix.
Читайте также: