Ошибка при создании файла config new

Обновлено: 06.07.2024

В этом пошаговом руководстве демонстрируется использование источника данных, определенного в файле app.config, для модульного тестирования. Вы узнаете, как создать файл app.config, определяющий источник данных, который может использоваться классом DataSourceAttribute. В данном пошаговом руководстве представлены следующие задачи:

создание файла app.config;

определение настраиваемого раздела конфигурации;

определение строк подключения;

определение источников данных;

доступ к источникам данных с помощью класса DataSourceAttribute.

Предварительные требования

Для выполнения данного пошагового руководства требуется:

Visual Studio Enterprise

Microsoft Access или Microsoft Excel для предоставления данных хотя бы для одного из методов теста;

решение Visual Studio, содержащее тестовый проект.

Добавление к проекту файла app.config

Если файл app.config уже существует в тестовом проекте, переходите к разделу Определение настраиваемого раздела конфигурации.

Щелкните тестовый проект правой кнопкой мыши в обозревателе решений и выберите Добавить > Новый элемент.

Откроется окно Добавление нового элемента.

Выберите шаблон Файл конфигурации приложения и нажмите кнопку Добавить.

Определение настраиваемого раздела конфигурации

Просмотрите файл app.config. Он содержит как минимум объявление XML и корневой элемент.

Добавление настраиваемого раздела конфигурации в файл app.config

Корневым элементом файла app.config должен быть элемент configuration. Создайте элемент configSections в элементе configuration. configSections должен быть первым элементом в файле app.config.

В элементе configSections создайте элемент section.

В элементе section добавьте атрибут с именем name и задайте для него значение microsoft.visualstudio.testtools . Добавьте еще один атрибут с именем type и задайте для него значение Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions .

Элемент section должен принять следующий вид:

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

Определение строк подключения

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

Определение строк подключения

После элемента configSections создайте элемент connectionStrings.

В элементе connectionStrings создайте два элемента add.

В первом элементе add создайте следующие атрибуты и значения для подключения к базе данных Microsoft Access:

Во втором элементе add создайте следующие атрибуты и значения для подключения к таблице Microsoft Excel:

attribute Значения
name "MyExcelConn"
connectionString "Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5"
providerName "System.Data.Odbc"

Элемент connectionStrings должен принять следующий вид:

Определение источников данных

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

name определяет удостоверение, используемое DataSourceAttribute для указания источника данных для использования.

connectionString определяет строку подключения, созданную в предыдущем разделе "Определение строк подключения".

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

dataAccessMethod определяет способ доступа к значениям данных в источнике данных.

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

Определение источников данных

После элемента connectionStrings создайте элемент microsoft.visualstudio.testtools. Этот раздел файла был создан в разделе "Определение настраиваемого раздела конфигурации".

В элементе microsoft.visualstudio.testtools создайте элемент dataSources.

В элементе dataSources создайте два элемента add.

В первом элементе add создайте следующие атрибуты и значения для источника данных Microsoft Access:

Во втором элементе add создайте следующие атрибуты и значения для источника данных Microsoft Excel:

attribute Значения
Name "MyExcelDataSource"
connectionString "MyExcelConn"
dataTableName "Sheet1$"
dataAccessMethod "Sequential"

Элемент microsoft.visualstudio.testtools должен принять следующий вид:

Окончательный файл app.config должен принять следующий вид:

Создание модульного теста, использующего источники данных, определенные в файле app.config

Определив файл app.config, мы создадим модульный тест, использующий данные, находящиеся в источниках данных, которые определены в файле app.config. В этом разделе мы рассмотрим:

создание источников данных, определенных в файле app.config;

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

Создание источника данных Microsoft Access

Создайте файл базы данных Microsoft Access с именем testdatasource.accdb.

Создайте таблицу с именем MyDataTable в testdatasource.accdb.

Создайте два поля в таблице MyDataTable с именем Arg1 и Arg2 , используя тип данных Number .

Добавьте пять сущностей в таблицу MyDataTable со следующими значениями для Arg1 и Arg2 соответственно: (10,50), (3,2), (6,0), (0,8) и (12312,1000).

Сохраните и закройте базу данных.

Измените строку подключения так, чтобы она указывала на расположение базы данных. Измените значение Data Source так, чтобы оно отражало расположение базы данных.

Создание источника данных Microsoft Excel

Создайте электронную таблицу Microsoft Excel с именем data.xlsx.

Создайте лист с именем Sheet1 , если он еще не существует в data.xlsx.

Создайте на листе Sheet1 два заголовка столбцов и назовите их Val1 и Val2 .

Добавьте пять сущностей в таблицу Sheet1 со следующими значениями для Val1 и Val2 соответственно: (1,1), (2,2), (3,3), (4,4) и (5,0).

Сохраните и закройте таблицу.

Измените строку подключения так, чтобы она указывала на расположение таблицы. Измените значение dbq так, чтобы оно отражало расположение таблицы.

Создание модульного теста с помощью источников данных файла app.config

Добавьте модульный тест в тестовый проект.

Замените автоматически созданное содержимое модульного теста следующим кодом.

Проверьте атрибуты DataSource. Обратите внимание на имена параметров из файла app.config.

Выполните построение решения и запустите тесты MyTestMethod и MyTestMethod2.

Разверните элементы как источники данных, чтобы они были доступны для теста в каталоге развертывания.

Файл config.nt считается разновидностью файла Windows NT Startup. Наиболее часто он используется в ПО Windows XP, разработанном компанией Microsoft. Он использует расширение NT и считается файлом Система (Windows NT Startup).

Первая версия config.nt для Windows 8 была представлена 08/01/2012 в Windows 8. Последним обновлением версии [vXP] для Windows является XP, выпущенное 10/25/2001. Файл config.nt включен в Windows XP, Windows 10 и Windows 8.1.

Продолжайте читать, чтобы найти загрузку правильной версии файла config.nt (бесплатно), подробные сведения о файле и порядок устранения неполадок, возникших с файлом NT.




Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Сведения о разработчике и ПО
Программа: Windows XP
Разработчик: Microsoft
Программное обеспечение: Windows
Версия ПО: XP
Сведения о файле
Размер файла (байты): 2577
Дата первоначального файла: 07/26/2012
Дата последнего файла: 04/24/2017
Информация о файле Описание
Размер файла: 2.5 kB
Дата и время изменения файла: 2012:07:26 06:52:40+00:00
Дата и время изменения индексного дескриптора файлов: 2017:11:05 07:01:45+00:00
Ошибка: Unknown file type

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

Общие ошибки выполнения config.nt

Ошибки файла config.nt часто возникают на этапе запуска Windows, но также могут возникать во время работы программы. Эти типы ошибок NT также известны как «ошибки выполнения», поскольку они возникают во время выполнения Windows. К числу наиболее распространенных ошибок выполнения config.nt относятся:

  • Не удается найти config.nt.
  • config.nt — ошибка.
  • Не удалось загрузить config.nt.
  • Ошибка при загрузке config.nt.
  • Не удалось зарегистрировать config.nt / Не удается зарегистрировать config.nt.
  • Ошибка выполнения — config.nt.
  • Файл config.nt отсутствует или поврежден.

Программа: C:\Windows\System32\config.nt

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

В большинстве случаев причинами ошибок в NT являются отсутствующие или поврежденные файлы. Файл config.nt может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с Windows) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла config.nt может быть вызвано отключением питания при загрузке Windows, сбоем системы при загрузке или сохранении config.nt, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку config.nt, перейдите к шагу 2 ниже.


Шаг 2. Запустите средство проверки системных файлов (System File Checker), чтобы восстановить поврежденный или отсутствующий файл config.nt.

Средство проверки системных файлов (System File Checker) — это утилита, входящая в состав каждой версии Windows, которая позволяет искать и восстанавливать поврежденные системные файлы. Воспользуйтесь средством SFC для исправления отсутствующих или поврежденных файлов config.nt (Windows XP, Vista, 7, 8 и 10):

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

Если на этапе 2 также не удается устранить ошибку config.nt, перейдите к шагу 3 ниже.

Шаг 3. Выполните обновление Windows.


Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла config.nt. Мы храним полную базу данных файлов config.nt со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Windows . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

Windows 10: C:\Windows\System32\
Windows 8.1: C:\Windows\System32\
Windows 8: C:\Windows\System32\
Windows XP: C:\Windows\System32\
Windows XP: C:\WINDOWS\repair\

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows XP.

Cоздание файла App.Config c элементом connectionStrings

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

Создание и добавление файла App.Config

Чтобы создать конфигурационный файл необходимо выполнить несколько простых действий:

1. Перейдите в окно Solution Explorer

2. Нажмите правую кнопку мыши на имени текущего проекта

3. В появившемся контекстном меню выберите пункт Add, появиться дополнительное подменю, нажмите на пункт New Item.

добавление нового элемента

4. Откроется диалоговое окно со списком шаблонов. Найдите шаблон с именем Application Configuration File, если требуется, измените, имя файла, после чего нажмите на кнопку Add.

выбор шаблона

В Solution Explorer появится добавленный файл App.Config.

файл App.Config

Открываем добавленный файл, щелкнув по нему двойным кликом мыши в окне Solution Explorer.

открытый файл App.config

Файл App.Config это обычный XML файл, внутри которого по умолчанию содержится строка декларации и один корневой элемент configuration. Сам же файл конфигурации, опять же по умолчанию, хранится в папке текущего проекта.

папка проекта

Если вы не знаете, что такое XML и как с ним работать, то прочитайте статью: Введение в язык XML, в которой вкратце изложены все основные моменты.

Создание и добавление элемента connectionStrings

Создадим новый элемент connectionStrings. Для этого сначала введите знак меньше ().

добавление элемента connectionStrings

Внутри созданного элемента создадим ещё один элемент с именем add

меню авто подстановки

новый добавленный элемент

Для данного элемента добавим несколько атрибутов. Чтобы добавить атрибут нажмите на клавишу пробел после слова add, появится меню авто подстановки.

список доступных атрибутов

Выберите атрибут name и нажмите на клавишу Enter

создание атрибута name

Внутри двойных кавычек укажите любое имя, например MysqlConStr.

установка значения для элемента name

Затем добавьте следующий атрибут connectionString

атрибут connectionString

Внутри двойных кавычек нужно указать строку подключения, которая состоит из пары: ключ = значение.

Server указываем ip адрес или имя сервера, где лежит база данных MySQL. Предпочтительнее указывать ip адрес.

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

строка подключения

Строка подключения может содержать множество других ключей, например:

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

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

Preferred если сервер поддерживает SSL (криптографический протокол, который обеспечивает безопасность связи) то будет установлено безопасное соединение, если нет, то обычное.

Required все подключения будут только через протокол ssl. Если же на сервере нет поддержки ssl, то при обычном подключении вы получите отказ в подключении к серверу.

Все остальные ключи и их описание можно найти на официальном сайте MySQL.

После добавления строки подключения, добавим ещё один атрибут providerName, который будет хранить имя поставщика данных.

поставщик услуг

полное содержимое файла App.Config

Таким же образом можно указать любое количество строк подключения и поставщиков данных к разным базам данных: MSSQL, Oracle, Access, например:

Ещё одним преимуществом файлов конфигурации, является быстрое изменение данных, которое не требует перекомпиляции проекта, ведь достаточно всего лишь внести изменения в файл XML, который является отдельным файлом.

Получение данных из файла конфигурации

Конфигурационный файл создан и теперь осталось научиться читать данные из файла App.Config.

Для начала нужно подключить в проект сборку (dll файл) System.Configuration;

добавление сборки в проект

диалоговое окно выбора сборки

добавленная сборка

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

В предыдущей статье строка подключения была создана при помощи объекта типа MySqlConnectionStringBuilder (полный исходник здесь)

Удалим весь блок кода, а так же строку

Затем напишем следующий код:

В квадратных скобках указываем значение атрибута name элемента add. В результате в объекте conString мы получаем все значения элементов и атрибутов файла App.Config.

И последнее, что осталось сделать, это передать в объект MySqlConnection созданную строку подключения.

Либо можно сразу же не создавая объект ConnectionStringSettings передать в конструктор класса MySqlConnection конструкцию следующего вида:

8 thoughts to “Cоздание файла App.Config c элементом connectionStrings”

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

Что то ругается именно на ConnectionString в кавычках.
Предупреждение типа NullReferenceException was unhandled

Если выдаёт null, то возможно допущена описка или неверно указано имя элемента в xml файле, либо что-то с его атрибутами.

Итак, перед нами "мёртвая" файловая база. Задача, которая стоит перед нами на текущий момент - всесторонне обследовать базу, составить максимально полный перечень проблемных мест (ошибок). Одной из распространённых ошибок у начинающих специалистов является следующая: они либо сразу и надолго "ныряют" в содержимое файла базы в hex-редакторе, пытаясь вручную разобраться в тоннах байт, что, естественно, через некоторое время вызывает эффект отторжения, либо, попробовав один какой-нибудь инструмент, и получив неудачу, выдают заключение: "База не подлежит ремонту". Лично я считаю, что к услугам hex-редактора нужно прибегать только в исключительных случаях, либо изредка, на минутку, например, чтобы своими глазами посмотреть содержимое, находящееся по определённому смещению.
А перечень инструментов и приёмов для получения информации о проблемных местах вообще довольно широк, причём даже сама платформа 1С предоставляет, как минимум, два штатных способа. Рассмотрим их поподробнее.

1. Утилита chdbfl.exe из поставки 1С:Предприятие. Запускаем её с установленной галкой "Исправлять обнаруженные ошибки".

Утилита chdbfl.exe

Сразу хочу оговориться, что на данном этапе эта утилита будет использоваться нами исключительно для диагностики, поэтому, даже если она и выдаст нам какой-то изменённый, якобы отремонтированный файл базы, мы не имеем на него каких-то видов, и просто "выкидываем". Однако, внимательно изучаем протокол работы и фиксируем перечень ошибок, найденных этой утилитой.
Например, "Поврежден заголовок файла базы данных" чаще всего означает просто некорректно записанную в нём длину файла в блоках, а не полное его разрушение (чтобы в этом убедиться, достаточно на пару секунд обратиться к hex-просмотрщику или редактору, если в начале файла сигнатура 1CDBMSV8 на месте, значит, проблема только в поле длины). "Повреждено содержимое внутреннего файла " означает, что в корневом объекте существуют "битые записи", с некорректными номерами блоков заголовков, либо с испорченными блоками заголовков. И так далее.

Пример файла ТЖ

1С:Предприятие начинает загрузку базы с чтения содержимого системных таблиц. Системными таблицами являются:
V8USERS - таблица с данными пользователей (для баз версий 8.2 и выше)
DBSCHEMA - схема (структура) БД
_USERSWORKHISTORY - история работы пользователей
_COMMONSETTINGS, _FRMDTSETTINGS, _REPSETTINGS, _REPVARSETTINGS, _SYSTEMSETTINGS - хранилища различных настроек
а также системные таблицы-каталоги:
PARAMS - содержит файлы с параметрами БД
FILES - содержит прочие системные (служебные) файлы
CONFIG - содержит файлы конфигурации БД. Здесь же, в файлах с названиями вида GUID.GUID хранятся конфигурации поставщика (отсутствие таковых является нормальной ситуацией, означающей, что либо конфигурация полностью совпадает с типовой (не включен режим изменения), либо она снята с поддержки, либо является самописной).
CONFIGSAVE - содержит файлы основной конфигурации. Отсутствие записей в ней является нормальной ситуацией, означающей, что основная конфигурация полностью совпадает с конфигурацией БД. Стоит отметить, что здесь могут содержаться не все файлы конфигурации, а только изменённые (отличающиеся от файлов конфигурации БД).
Системные таблицы-каталоги являются, по сути, аналогами каталога в обычной файловой системе, т.е. являются хранилищем некоторого набора файлов, и имеют следующие поля:
FILENAME - имя файла
CREATION/MODIFIED - дата создания/изменения
ATTRIBUTES - атрибуты
DATASIZE - размер файла
BINARYDATA - содержимое файла (двоичные данные)


Теперь мы понимаем, что записи в ТЖ типа
22:42.0169-1,DBV8DBEng,2,process=1cv8,Trans=0,Func=selectFileName,FileName=ibparams.inf
22:42.0170-3,DBV8DBEng,1,process=1cv8,Trans=0,Func=readFile,CatName=Params,FileName=ibparams.inf
означают чтение файла "ibparams.inf" из таблицы PARAMS.


3. Открываем нашу базу при помощи утилиты Tool_1CD. Здесь мы можем просмотреть таблицы, а также их содержимое (данные записей), причём для системных таблиц (DBSCHEMA, PARAMS и т.д.) поддерживается автоматическая распаковка содержимого BLOB-полей, вплоть до показа содержимого упакованных контейнеров (в таблицах CONFIG и CONFIGSAVE). Наиболее пристальное внимание уделяем тем проблемным объектам, которые были нами найдены по результатам действий из пунктов 1 и 2, а также системным таблицам (хотя, зачастую список проблемных объектов, составленный по п. 1 и 2, ограничивается именно системными таблицами).

Просмотр содержимого таблиц в Tool_1CD


При просмотре перечня таблиц смотрим, есть ли таблицы с окончаниями "OG" - их наличие означает, что крах базы произошёл при ТиИ или реструктуризации (в процессе выполнения этих операций 1С создаёт новые таблицы с такими окончаниями, куда пишутся данные реструктуризованных таблиц, затем исходная таблица удаляется, а новой назначается исходное имя). Также бывает полезно сравнить перечень таблиц с содержимым старого бэкапа (при его наличии, и при условии, что конфигурация не обновлялась, иначе состав таблиц, связанных с метаданными, конечно, будет различаться), это поможет выявить отсутствующие таблицы.
При просмотре таблицы CONFIG обращаем внимание, есть ли в ней файлы с окончаниями ".new" - их наличие означает, что крах базы произошёл при обновлении конфигурации БД.
Также утилита позволяет сохранить конфигурацию БД в cf-файл, что и рекомендуется сделать. Загружаем далее эту конфигурацию из файла в пустую базу, и пробуем запустить. Если всё запустилось успешно, значит, проблема нашей базы не в конфигурации.

Просмотр содержимого таблиц в ViewRecords.epf

5. Загрузка базы в систему восстановления баз 1С restoration-base-1c8. По состоянию дел на текущий момент, в данном продукте многие функции не реализованы, а некоторые, на мой взгляд, реализованы не совсем прозрачно. Кроме того, практически вся смысловая обработка данных происходит на стороне 1С, что далеко не лучшим образом сказывается на быстродействии. Например, у меня полная загрузка файла размером 230 Мб длилась около часа, за это время я уже всесторонне обследовал базу другими инструментами, и приступил к непосредственному ремонту. Окончания же загрузки файла размером 1,5 Гб я вообще не дождался - закончилось терпение. Ещё один нюанс: поскольку система является конфигурацией для 1С, то все данные исходной базы загружаются также в базу 1С, но оказываются они в табличной части одного справочника. Следовательно, даже не принимая во внимание скорость загрузки, в случае файловой базы не получится загрузить файл с исходной базой размером более 4 Гб (из-за ограничений формата). Тем не менее, проект является свободным, с открытым кодом, доступным для изменения и доработки, поэтому не могу не упомянуть про него.

Загрузив нашу базу в систему restoration-base-1c8, мы можем иследовать список таблиц:

Система restoration-base-1c8 - основное окно

а также просмотреть и отредактировать данные любого блока во встроенном hex-редакторе:

Система restoration-base-1c8 - редактирование содержимого блока

Просмотр записей таблиц, к сожалению, не реализован.

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

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

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

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

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

Первоначально мой app.config содержал:

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

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

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

Я вытащил «4.3.0» из NuGet, но по какой-то причине VS настаивает на том, чтобы я ссылался на «4.1.2.0», у меня сработала аналогичная работа, только с другим номером версии . У меня была такая же проблема, как у @DavidRogers в проекте MSTest. Объединение различий между app.config и packages.config решило проблему. да, большое спасибо ! Это было решение для моего MSTest, который не нашел тестов [MSTest][Discovery] Failed to discover tests from assembly Reason:Could not load file or assembly 'System.Reflection, Version=4.1.1.0 etc Решение сработало для меня. Проблема началась после установки HtmlAgilityPack NUGET. И не запускался из-за неправильной информации о версии в пакетах. +1

Приведенное ниже больше не нужно, оно было исправлено около VS 15.3:

Был известная ошибка VS2017 , особенно в NuGet 4.0.

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

Какое обновление Visual Studio 17? Можете указать версию? У меня все еще проблема в 15.5.5 VS2017. Похоже, есть и другие причины.

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

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

Основываясь на вашем ответе, я проверил свои пакеты nuget и обнаружил, что между моими проектами требуется «Google.protobuf» (консолидация), Было бы полезно лучше объяснить, почему это сработает. Проблема с этим методом заключается в том, что всякий раз, когда вы обновляете какой-либо пакет 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 был автоматически добавлен (но не нужен) во время рефакторинга

Это сработало для меня! Обязательно попробуйте это, если все остальное у вас не работает

<dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/> </dependentAssembly>

Я исправил свою ошибку, установив NetStandard.Library в свой проект модульного тестирования.

Мы обнаружили, что AutoGenerateBindingRedirects может быть причиной этой проблемы.

Замечено: один и тот же проект нацелен net45 и netstandard1.5 был успешно построен на одной машине и не был построен на другой. На машинах были установлены разные версии фреймворка (4.6.1 - успешно и 4.7.1 - неудачно). После обновления фреймворка на первой машине до версии 4.7.1 сборка также не удалась.

Загляните в это прямо сейчас в проекте модульного теста после добавления MsTest V2 через Nuget. Переименование app.config (столь эффективное его удаление) помогло мне.

но один пакет также добавил ту же сборку в зависимости от другой версии:

удаление тега «добавить сборку» из моего файла web.config решило проблему.

В app.config или web.config добавьте

Похоже, проблема возникает из-за конфликта версий между packages.config и app.config. В app.config у вас есть перенаправления привязки сборки, автоматически генерируемые функцией AutoGenerateBindingRedirects. Если этот параметр включен каждый раз, когда вы загружаете пакет nuget, он будет, помимо создания новой записи в packages.config, добавлять эту информацию о перенаправлении привязки в app.config. Какова цель этого, объясняется здесь: Перенаправление привязки сборки: как и почему?

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

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

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

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

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