我有一个 .NET Core 3 Blazor(服务器端)应用程序,我最近从预览版 5 版本升级到了 .NET Core 3.0.1 预览版 6 版本。当我在本地构建并运行它时,它工作正常;但是当尝试将其发布到文件系统文件夹(在框架相关模式下)时,它会抛出以下错误:
C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\Sdks\Microsoft.NET.Sdk.Publish\targets\TransformTargets\Microsoft.NET.Sdk.Publish.TransformFiles.targets(192,5):错误MSB4018:“TransformAppSettings”任务意外失败。
System.IO.FileNotFoundException:无法加载文件或程序集“Newtonsoft.Json,Version=10.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。该系统找不到指定的文件。
文件名:'Newtonsoft.Json,版本=10.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed'
在Microsoft.NET.Sdk.Publish.Tasks.AppSettingsTransform.UpdateDestinationConnectionStringEntries(字符串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 预览版 6 SDK
- Add
Newtonsoft.Json
通过 Nuget 打包
- 在github上搜索社区提出的相关问题
.csproj
file
<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>
就我而言,我编辑发布配置并关闭数据库 -> 在运行时使用此连接。然后我就可以发布而不会出现此错误,但是,我必须手动编辑 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 中,但它们似乎不再在发布中传播。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)