Add-BindingRedirect в Visual Studio не изменяет файлы app.config или web.config
Это довольно ненормальное поведение. И мне интересно, есть ли какие-то ошибки, когда вы столкнулись с этой проблемой.
С моей стороны я создаю новый проект и запускаю Add-BindingRedirect *
на Package Manager Console
, он может добавить связанные перенаправления привязки в app.config
или web.config
файлов.
Возможно, в ваших пакетах nuget есть ошибки, попробуйте выполнить следующие действия:
Шаг
1) закрыть VS Например, удалите .vs
скрытую папку, bin
, obj
папку, а затем перезапустите проект
2) , сначала запустите восстановление nuget, щелкнув правой кнопкой мыши решение -> Восстановление пакетов Nuget в случае отсутствия некоторых пакетов Nuget, что приведет к нарушению этой командной строки.
3) отключит любые сторонние расширения с помощью Extensions
-> Manage Extensions
, если они влияют it.
4) open Package Manager Console
-> введите следующее:
update-package -reinstall
Add-BindingRedirect *
Переустановка пакетов nuget предотвращает неправильную ссылку на пакеты nuget.
Помимо , некоторые переадресации привязки необходимо переустановить с новой версией nuget для автоматического обновления и добавления в файл.
5) создайте новый пустой проект и установите несколько пакетов nuget, чтобы проверить, связана ли проблема с Speci c проект или сам Nuget.
Кроме того , вы можете обратиться к эту ссылку для получения дополнительной информации.
---------------- Обновление 1 ---------------
Извините за этот ответ основан на на этом я не знал, что вы используете PackageReference
формат управления nuget.
Я думаю, что ваше решение содержит множество проектов, и некоторые используют Packages.config, в то время как другие используют формат PackageReference
.
Однако Add-BindingRedirect *
относится только к проектам с packages.config
. См. эту проблему на GitHub . А с форматом PackageReference
он не будет добавлять или обновлять любые перенаправления привязки на app.config
или web.config
автоматически.
Кроме , поскольку в вашем решении есть несколько проектов, использующих формат packages.config
, при использовании этой команды этот дефект в PackageReference
будет перезаписан.
Чтобы доказать это, вы можете создать новый единый каркасный проект с PackageReference
, и я уверен, что при вводе этой команды он не будет работать.
Как совет ,
1) вы можете добавить этот xml узел в xxxx.csproj
проекта
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
Когда вы строите свой проект, он сгенерирует новую обновленную привязку перенаправляет файл с именем <project_name>.<dll/exe>
xml файл конфигурации в выходную папку.
Затем вы можете скопировать его содержимое в предыдущий файл конфигурации. (На самом деле, когда вы используете этот узел, вам не нужно делать копию, и он будет автоматически связывать перенаправления. См. this .)
2) Или просто измените PackageReference
на Packages.config
в вашем проекте, который может использовать эту команду без каких-либо ошибок. Но это может быть тяжелой работой. И если вам это нужно, сначала вернитесь к Package.config
в Tools
-> Options
-> NuGet Package Manager
-> Package Management
, а затем вы можете использовать решение Мартина по этой ссылке .