Задача «TransformAppSettings» неожиданно завершилась неудачей - PullRequest
3 голосов
/ 11 июля 2019

У меня есть приложение .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, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' или одна из ее зависимостей. Система не может найти указанный файл. Имя файла: 'Newtonsoft.Json, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed'

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

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

То, что я до сих пор пробовал: (без удачи)

  • Очистить / восстановить решение
  • Переустановите .NET Core 3 Preview 6 SDK
  • Добавить 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>

Ответы [ 2 ]

1 голос
/ 17 июля 2019

В моем случае я редактирую конфигурацию публикации и отключаю базу данных -> Использовать это соединение во время выполнения.Затем я мог опубликовать без этой ошибки, однако мне пришлось вручную отредактировать файл 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, но, похоже, они больше не распространялись в публикации.

0 голосов
/ 19 июля 2019

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

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

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

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

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

...