Неожиданный сбой задачи TransformAppSettings

У меня есть приложение .NET Core 3 Blazor (на стороне сервера), которое я недавно обновил до версии .NET Core 3.0.1 preview 6 из версии Preview 5. Когда я собираю и запускаю его локально, он работает нормально; но при попытке опубликовать его в папке файловой системы (в режиме зависимости от платформы) он выдает следующую ошибку:

C: \ Program Files \ dotnet \ sdk \ 3.0.100-preview6-012264 \ Sdks \ Microsoft.NET.Sdk.Publish \ target \ TransformTargets \ Microsoft.NET.Sdk.Publish.TransformFiles.targets (192,5): ошибка MSB4018: Неожиданный сбой задачи «TransformAppSettings». System.IO.FileNotFoundException: не удалось загрузить файл или сборку Newtonsoft.Json, Version = 10.0.0.0, Culture = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed или одну из их зависимостей. Система не может найти указанный файл. Имя файла: 'Newtonsoft.Json, Version = 10.0.0.0, Culture = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed'

в Microsoft.NET.Sdk.Publish.Tasks.AppSettingsTransform.UpdateDestinationConnectionStringEntries (String destinationAppSettingsFilePath, ITaskItem [] destinationConnectionStrings) в Microsoft.NET.Sdk.Publish.Tasks.TransformAppSettings.Transform.AppkSettings. TransformAppSettings.Execute () в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () в Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext ()

Возможно, стоит упомянуть, что этой ошибки не было в предварительной версии 5. Также я использую Visual Studio Enterprise 2019 (Windows).

Вещи, которые я пробовал до сих пор: (безуспешно)

  • Решение для очистки / восстановления
  • Переустановите пакет SDK для .NET Core 3 preview 6.
  • Добавить Newtonsoft.Json пакет через Nuget
  • Поищите связанные проблемы, поднятые сообществом, на github

.csproj файл

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>7.3</LangVersion>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="6.1.0" />
    <PackageReference Include="MatBlazor" Version="1.2.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
    <PackageReference Include="SqlTableDependency" Version="8.5.3" />
    <PackageReference Include="System.DirectoryServices" Version="4.5.0" />
    <PackageReference Include="System.DirectoryServices.AccountManagement" Version="4.5.0" />
    <PackageReference Include="Telerik.UI.for.Blazor" Version="1.1.1" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="wwwroot\images\" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\{path to project file}" />
  </ItemGroup>

</Project>

person TyrionLannister    schedule 11.07.2019    source источник
comment
У меня такая же проблема после обновления до предварительного просмотра 6, опубликуйте решение, если найдете его сами.   -  person Merdan Gochmuradov    schedule 12.07.2019
comment
У вас возникает эта проблема в Visual Studio для Mac?   -  person Ahmed Mansour    schedule 16.07.2019
comment
@AhmedMansour: Нет. Я использую Visual Studio Enterprise 2019 (Windows). Обновленный вопрос. Спасибо.   -  person TyrionLannister    schedule 17.07.2019
comment
проблема связана с Visual Studio, проверьте мой ответ ниже   -  person Joseph Wambura    schedule 19.07.2019


Ответы (7)


В моем случае я редактирую конфигурацию публикации и отключил База данных -> Использовать это соединение во время выполнения. Тогда я мог бы опубликовать без этой ошибки, однако мне пришлось вручную отредактировать web.config и внести следующие изменения.

modules="AspNetCorModuleV2"  had to become modules="AspNetCodeModule"

hostingModel="InProcess" had to become hostingModel="OutOfProcess" 

<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> had to become value="Production"

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

person Mike Wodarczyk    schedule 17.07.2019
comment
Снятие флажка с параметра Использовать это соединение во время выполнения сделало это. Но модель хостинга не обязательно должна становиться OutOfProcess (я использую модель InProcess). Это будет зависеть от каждого отдельного приложения. Я все равно отмечаю ваш ответ как принятый на этот вопрос. Спасибо. - person TyrionLannister; 19.07.2019

У меня была такая же ошибка, и я смог исправить ее, отредактировав файл .pubxml.user.

Когда произошла ошибка, в моих настройках публикации не было выбрано «Использовать это соединение во время выполнения», и не были проверены какие-либо миграции базы данных. Но когда я заглянул в файл pubxml.user, оказалось, что там была ссылка на несуществующую базу данных, которая не отображалась в пользовательском интерфейсе параметров публикации. Я удалил это, и это решило проблему.

person Santraginus V    schedule 29.12.2019
comment
Не могли бы вы уточнить, что именно вы удалили, чтобы этот ответ был более полным? - person Evan Weissburg; 29.12.2019

Все, что я сделал, - это снял флажок с опции базы данных «Использовать эту строку подключения во время выполнения», поскольку мой сервер Azure будет это устанавливать, в любом случае это не должно быть проблемой.

введите здесь описание изображения

person Worthy7    schedule 05.05.2020

У меня такая же проблема

Тот же вопрос о переполнении стека

Хотя мне удалось опубликовать свой проект с помощью команд PowerShell

dotnet publish --configuration Release --framework netcoreapp2.2

Попробуй, надеюсь поможет ...

person Joseph Wambura    schedule 19.07.2019
comment
попробуйте изменить версию sdk на свою версию sdk ... netcoreapp2.2, возможно, netcoreapp3.0 - person Joseph Wambura; 21.07.2019

Я знаю, что это было решено за вас. Но в моем случае.

IDE: Visual Studio 2017 Enterprise Publish Profile: Папка

Следуйте этому шагу:

  1. Измените параметр сборки на среду, для которой вы хотите опубликовать (тестовая, промежуточная, выпускная или производственная), и очистите решение.
  2. Откройте папку проекта и удалите папки bin и obj.
  3. Перезапустите Visual Studio
  4. После перезапуска VS удалите профиль публикации и заново создайте профиль.

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

Надеюсь, это поможет.

person Ismail Umar    schedule 02.02.2020

Моя проблема была решена, когда я

  1. установлен флажок "Использовать эту строку подключения во время выполнения"

  2. снял флажок "Строка подключения по умолчанию"

person Somendra Tiwari    schedule 22.05.2020

Если вы публикуете в локальной файловой системе. Проверьте, требуется ли для папки разрешение на чтение и запись, чтобы Visual Studio могла скопировать опубликованные файлы.

person Manu Sharma    schedule 09.02.2021