Tyr*_*ter 6 blazor-server-side .net-core-3.0
我有一个 .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,版本=10.0.0.0,Culture=neutral,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)。
Newtonsoft.Json通过 Nuget添加包.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>
Run Code Online (Sandbox Code Playgroud)
就我而言,我编辑发布配置并关闭数据库 -> 在运行时使用此连接。然后我可以在没有此错误的情况下发布,但是,我必须手动编辑 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"
Run Code Online (Sandbox Code Playgroud)
这些更改已经在我自己的目录 web.config 中,但它们似乎不再在发布中传播。
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |