Не удалось загрузить файл среды выполнения или сборку системы

Обновлено: 03.07.2024

FileNotFoundException: не удалось загрузить файл или сборку «System. Нет для BDD, все для постфактум тестирования линейки бизнес-приложений. вот презентация Обновление, кажется, работает, но когда я импортирую пакет nuget в целевой проект, подключаемый модуль Однако до сих пор нет доказательств того, что мой подключаемый модуль работает.

Мы серьезно относимся к вашей конфиденциальности на этом сайте. Вы можете ознакомиться с нашей Политикой конфиденциальности для ключа LTI совместимости инструментов и секрета для запуска автогрейдеров из вашей LMS. Я предоставил некоторые инструкции о том, как перевести этот курс на моем сайте. Этот сайт использует платформу Tsugi для встраивания системы управления обучением.

Библиотеки с открытым исходным кодом NET для поддержки большого количества разработчиков не гарантируют, что библиотека будет успешно работать на всех платформах: приложения NET 5 или более поздних версий могут использовать цель netstandard2.0, поэтому net5.0 не требуется. Sdk.Extras при многоцелевом использовании UWP и Xamarin, поскольку это значительно упрощает файл проекта.

Не удалось загрузить файл или сборку Microsoft. Я использую обновление Visual Studio 2013 5. Целевая структура для моего проекта. Моя визуальная студия и расширения сделали обновление, и теперь приложение не компилируется с ошибкой 9 «net461» и IsWindows true >

Версия выполнения 4.3.0 targetFrameworknet461 Чтобы обойти эту ошибку, вам нужно открыть файл .csproj для вашего. Просто установите флажок «Автогенерировать перенаправления привязок» в приложении ProjectProperties. У меня возникла проблема с этим в проекте NUnit 2.6.4, предназначенном для dotnet framework 4.6.2.

CSDNCне удалось загрузить файл или сборку «Microsoft. или одна из его зависимостей для net461CSDN. Он успешно проходит тестовую целевую библиотеку netstandard2.0, используя netstandard2.0target lib/netcoreapp2.0test lib по базовому пути: C:\Program Files\dotnet\sdk\2.0.0preview2006497\.

FileNotFoundException: не удалось загрузить файл или сборку 'netstandard с помощью System; с помощью TestLib; пространство имен TestApp < class Program < статический проект, ориентированный на полную структуру от net471 до net461, и он работает сейчас.

Я добавил временную зависимость в свой случай System. NET 5, то есть сборка dotnet, но ни одна из них не существует. и среда выполнения предоставляет исключение и диагностику отсутствующих зависимостей.

3 в таргетинге тестового проекта. В основном всякий раз, когда у вас нет доступа к app.config исполняемого приложения. NET Framework, например net461 или.

Okta — это облачная служба управления пользователями. Okta security хранит профили пользователей, управляет паролями и обрабатывает аутентификацию и авторизацию, чтобы вы могли.

Описание Привет, я попытался установить MongoDB.Driver, и похоже, что он не добавляет все свои зависимости в пакет решения, и все корректно разрешается.

В итоге проект ссылается на среду выполнения, и в ней есть определения для всех стандартных типов. Ссылка на пакет NuGet NetStandard.Library.

В итоге проект ссылается на среду выполнения, и в ней есть определения для всех стандартных типов. Ссылка на пакет NuGet NetStandard.Library.

Повреждение файла Runtime.InteropServices.dll могло быть вызвано отключением электроэнергии при загрузке исправления клиента Cisco VPN для Windows 8.1 и 10.

Действия для воспроизведения новой консоли dotnet dotnet publish cd bin\Debug\netcoreapp2.0\publish Application.dll Ожидаемое поведение Hello World!

Действия для воспроизведения новой консоли dotnet dotnet publish cd bin\Debug\netcoreapp2.0\publish Application.dll Ожидаемое поведение Hello World!

Я получаю следующую ошибку.

Я пробовал следующее:

Это ошибка? Есть ли обходной путь? Любая помощь приветствуется.

28 ответов 28

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

Изначально мой файл app.config содержал:

Но файл packages.config содержал:

Я изменил запись app.config, чтобы она соответствовала package.config для новой версии:

После внесения изменений проблема была решена.

Я вытащил «4.3.0» из NuGet, но по какой-то причине VS настаивает на том, чтобы я ссылался на «4.1.2.0», у меня сработал аналогичный обходной путь, только с другим номером версии.

У меня была та же проблема, что и у @DavidRogers в проекте MSTest. Объединение различий между файлами app.config и packages.config решило проблему.

Ага, большое спасибо! Это было решением для моего MSTest, не находящего тесты [MSTest][Discovery] Не удалось обнаружить тесты из сборки Причина: не удалось загрузить файл или сборку «System.Reflection, Version=4.1.1.0 и т. д.»

Мне помогло решение. Проблема началась после установки HtmlAgilityPack NUGET. И не запускался из-за неправильной информации о версии в пакетах. +1

Недавно я столкнулся с этой проблемой и испробовал многие вещи, упомянутые в этой и других ветках. Я добавил ссылку на пакет для «System.Runtime» с помощью диспетчера пакетов nuget, исправил редикты привязки в приложении.config и убедитесь, что app.config и package.config имеют одинаковую версию сборки. Однако проблема осталась.

Наконец-то я удалил метку для сборки, и проблема исчезла. Итак, попробуйте удалить следующее в вашем app.config .

Основываясь на вашем ответе, я проверил свои пакеты nuget и обнаружил потребность в Google.protobuf (консолидация) между моими проектами, спасибо

Следующее ниже больше не нужно, оно было исправлено примерно в VS 15.3:

В VS2017 обнаружена известная ошибка, особенно в NuGet 4.0.

NuGet 4.x содержит «ссылку на пакет» — больше нет packages.config — но старый конвейер 4.x не был полностью обновлен на момент запуска VS2017. Приведенный выше фрагмент, похоже, «пробуждает» систему сборки, чтобы правильно включить ссылки на пакеты из зависимостей.

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

Я устранил эту ошибку, сославшись на NetStandard.Library и следующий файл app.config в NUnit-Project.

Изменить

Редактировать 2

Автоматическое создание перенаправлений привязки

В новых версиях Visual Studio (кажется, 2017 15.8) возможно, что Studio создает файл app.config. Просто установите флажок «Автоматически создавать перенаправления привязок» в Project-Properties — Application.

Изменить 3

Я исправил это, удалив файл app.config с помощью

app.config был автоматически добавлен (но не нужен) во время рефакторинга

Добавить в app.config или web.config

Там вы можете прочитать, что написал пользователь @Evk:

Зачем вообще нужны обязательные перенаправления? Предположим, у вас есть приложение A, которое ссылается на библиотеку B, а также на библиотеку C версии 1.1.2.5. Библиотека B, в свою очередь, также ссылается на библиотеку C, но версии 1.1.1.0. Теперь у нас конфликт, потому что нельзя во время выполнения загружать разные версии одной и той же сборки. Чтобы разрешить этот конфликт, вы можете использовать перенаправление привязки, обычно на новую версию

Итак, БЫСТРОЕ ИСПРАВЛЕНИЕ: удалите все записи в app.config.

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

Если у вас действительно есть такой конфликт, вы должны исправить эти номера версий в app.config, чтобы они соответствовали фактически используемым версиям сборок, но ручной процесс болезненный, поэтому я предлагаю автоматически сгенерировать их снова, открыв Консоль диспетчера пакетов и выполнить пакеты. переустановка, набрав Update-Package -reinstall

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

Журнал показал следующую ошибку

Сначала я подумал, что это была еще одна простая проблема со сборкой, которая привела к отсутствию DLL в папке bin.

Попытка 1:

Попытка 2:

Я пытался выявить основную причину, используя

  1. Просмотрщик Fusion Log для выявления проблем с привязкой сборки
  2. Включил журнал msbuild и просматривал загадочные тексты, захваченные в файле журнала.

Вся эта информация не привела меня к каким-либо признакам очевидных ошибок. что я могу исправить.

Попробуйте 3:

Я обвинил Visual Studio IDE и диспетчер пакетов NuGet в том, что они не смогли перенести простую DLL в папку bin. В одном из обсуждений StackOverflow парень указал исправление, используя событие после сборки, которое выполняет и копирует dll « System.Runtime » в папку Bin. Итак, я решил, что это должен быть старый способ поддерживать dll в папке проекта и ссылаться на нее прямо оттуда.

Попытка 4:

Просматривая несколько обсуждений, я увидел упоминание о PCL (переносимых библиотеках классов) и необходимости использования пакета Microsoft.Bcl.Build, который может обойти ограничения устаревшего файла "packages.config" и вернуть отсутствующие сборки для местное развитие. Я начал добавлять его в библиотеку классов и проект модульного тестирования. Надеялся, что это решит проблему.

По-прежнему безуспешно, добавление классов BCL во все зависимые проекты усложнило задачу

Попытка 5:

После обсуждения ограничений файла packages.config и необходимости переноса старой системы на последнюю версию PackageReferences. Несколько веток GitHub дали многообещающие слова о том, что это решит все проблемы со ссылками.

С большими надеждами я перенес библиотеки классов для использования PackageReferences. После моей первой сборки я был потрясен, увидев, что пакет BCL жалуется на отсутствие файла packages.config.

Теперь новая проблема для понимания!

Пакеты BCL были введены, чтобы вернуть несколько новых требований к сборке в устаревшую систему Nuget с помощью package.config.Таким образом, люди могут использовать новейшие библиотеки без обновления NET4x (обещающие изменения не решили мою проблему с выполнением модульного теста.

Решение:

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

Я установил пакет netstandard в проект модульного тестирования, как это было предложено в этом выпуске GitHub. Это решило мою проблему!!

Кроме того.
Когда вы видите отсутствующие сборки, попробуйте удалить все перенаправления сборок из app.config и добавлять их одну за другой в зависимости от ошибок, которые вы видите. Поскольку перенаправления, добавленные для старых сборок/версий фреймворка, могут создать огромные проблемы при обновлении.

И это можно воспроизвести, поэтому, если я удалю пакет SDK, все будет нормально собрано.

Правильно ли я понимаю, что генератор файла function.json просматривает все dll упомянутых пакетов? Не могли бы вы каким-то образом сократить эту проверку до не-фреймворковых библиотек?

Текст был успешно обновлен, но возникли следующие ошибки:

cschwendtner прокомментировал 6 февраля 2018 г.

Прокомментировал Стефан Ридманн 7 февраля 2018 г.

прокомментировал семена абрикоса 7 февраля 2018 г. •

Это сработало и для моего проекта, спасибо @cschwendtner!

Matthewsre прокомментировал 18 февраля 2018 г. •

@cschwendtner, у меня та же проблема, но я не могу переключить проект на netstandard2.0, так как в своей функции я ссылаюсь на проект, предназначенный для netcoreapp2.0. Есть предложения, как заставить это работать без изменения целевой платформы?

Я изменил нефункциональный класс и методы на внутренние, но это не решило проблему.

Я также обновился до версии 1.0.8, и это исправление не решило мою проблему.

Вот ошибка, которую я получаю:

Matthewsre прокомментировал 20 февраля 2018 г.

Мне удалось выполнить некоторый рефакторинг из netcoreapp в общую библиотеку netstandard и изменить целевую структуру функции, чтобы это заработало. Надеемся, что это будет исправлено, чтобы поддерживать таргетинг на netcoreapp и использовать код из проектов netcoreapp.

Однако я столкнулся с новой проблемой, связанной с получением пакета nuget Microsoft.AspNet.WebApi.Client 5.2.4, но это будет отдельная проблема. Работает для netcoreapp, но не для функции azure netstandard.

комментарий cschwendtner от 22 февраля 2018 г.

@Matthewsre - извините за поздний ответ.

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

Можете ли вы попробовать добавить true в свой файл .csproj:

vijayrkn прокомментировал 22 февраля 2018 г.

Чтобы использовать основную версию генератора, как упомянул @cschwendtner, вы можете установить это свойство UseNETCoreGenerator. Это свойство было специально добавлено для выбора используемого генератора.

комментарий cschwendtner от 22 февраля 2018 г.

@vijayrkn - спасибо за разъяснения. Я не был уверен, что этот параметр официально поддерживается.

vijayrkn прокомментировал 22 февраля 2018 г.

wyldebill прокомментировал 3 мая 2018 г. •

Я использую это в узле PropertyGroup файла .csproj.

gdodd1977 прокомментировал 19 июня 2018 г.

Итак, у меня такая же проблема с net461. Я также добавил UseNetCoreGenerator, и теперь у меня прерывается выполнение. Странно то, что это происходит только на одном из моих компьютеров. Этот же код находится на другом компьютере, и он отлично компилируется и работает. На самом деле, я даже не получил ошибку, из-за которой начался этот поток на моем другом компьютере. Это только когда-либо происходило на одном из моих компьютеров. Есть ли что-то, что я должен проверить на установленном рабочем компьютере, что, возможно, не установлено на том, на котором есть эти ошибки?

прокомментировал elizad 29 июня 2018 г.

alexandervantrijffel прокомментировал 20 июля 2018 г.

прокомментировал томкерхов 24 июля 2018 г.

прокомментировал jeffhollan 24 июля 2018 г.

прокомментировал tomkerkhove 24 июля 2018 г. •

Спасибо @jeffhollan за подсказку и быструю помощь!

Мне удалось это исправить:

Пока я не попытался восстановить свои зависимости 🙈

biliktamas79 прокомментировал 23 августа 2018 г. •

У меня та же проблема, но добавление true в csproj не решило проблему :(
Мы пытаемся построить для

Прокомментировал

brandonh-msft 12 сентября 2018 г. •

прокомментировал paulbatum 1 октября 2018 г.

piriej прокомментировал 3 октября 2018 г. •

Ожидаемый результат: приложение запускается и выполняет несколько неактивных тестов.

Packages.config содержит следующее:

App.config содержит следующее:

Проверка того, что происходит с помощью отладчика, показывает, что исключение возникает в cctor класса Builder:

Я прилагаю решение, содержащее как репродукцию приложения (ConsoleApp1), так и исходный код пакета BenchmarkDotNet, чтобы упростить проверку отладочной сборки:
BenchmarkDotNet.zip

Текст был успешно обновлен, но возникли следующие ошибки:

прокомментировал adamsitnik 11 октября 2018 г.

Они посоветовали перейти с Visual Studio на Rider, если я хочу использовать их библиотеку в этой ситуации, но я бы предпочел продолжить использование Visual Studio, если это возможно.

Мой совет был "убрать перенаправления привязки сборки из проекта"

прокомментировал karelz 11 октября 2018 г.

Если это дубликат, давайте разрешим один из них как дубликат другого.
@adamsitnik, пожалуйста, свяжитесь с @joperezr, чтобы узнать, что делать в качестве следующего шага. Интересно, не была ли исходная проблема направлена ​​по неправильному пути к области .

Андрей Акиньшин прокомментировал 11 октября 2018 г.

Они посоветовали перейти с Visual Studio на Rider, если я хочу использовать их библиотеку в этой ситуации, но я бы предпочел продолжить использование Visual Studio, если это возможно.

Комментарий GSPP от 14 октября 2018 г. •

Все они имеют одни и те же основные проблемы.

joperezr прокомментировал 15 октября 2018 г.

@sandersaares, можете ли вы попробовать точно такое же воспроизведение, но вместо того, чтобы добавлять пакет Benchmarkdotnet через VS, просто добавьте это в свой проект:

Сандерсаарес прокомментировал 16 октября 2018 г.

@joperezr Я подтверждаю, что описанные вами шаги приводят к успешному выполнению приложения.

прокомментировал karelz 16 октября 2018 г.

Закрытие как решенное. Спасибо за подтверждение @sandersaares!

прокомментировал sandersaares 17 октября 2018 г. •

Подождите минутку. Это обходной путь, а не решение рассматриваемого дефекта.

Я буду считать, что проблема решена, если сценарий в исходном сообщении работает без ошибок. Вы не можете ожидать, что пользователи Visual Studio будут копаться в файлах, которые их генерирует VS, и изменять настройки на основе какой-то неясной проблемы GitHub. Это не какой-либо разумный уровень пользовательского опыта. «Заставить сборки, предоставляемые платформой, действительно работать» — это то, чего я ожидаю сразу после установки настроек по умолчанию на всех фронтах.

joperezr прокомментировал 17 октября 2018 г.

Я согласен с @sandersaares, который сказал, что я не считаю, что это правильный репозиторий для регистрации проблемы с инструментами vs nuget, поскольку исправление для этого наверняка не будет здесь. Проблемы в этом репозитории касаются ошибок/проблем с самой структурой. Я бы, вероятно, переместил эту проблему в dotnet/sdk или nuget, которые, вероятно, все еще не являются правильными местами, но они могут знать, как лучше перенаправить ее.

прокомментировал sandersaares 17 октября 2018 г. •

Хм, похоже, этот сайт не использует блоки кода.

joperezr прокомментировал 17 октября 2018 г.

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

Я думаю, что выбор вместо отзывов был правильным выбором :)

Комментарий GSPP от 19 октября 2018 г.

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

Относится к упаковке

Вы не можете выполнить это действие в данный момент.

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

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