.net-core - .net core 3.1 发布单个文件 probject 时出现“runreadytoruncompiler”错误
问题描述
我有一个以这种方式构建的 F# 项目:
dotnet publish --nologo -r osx-x64 -c Release --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true /p:PublishReadyToRun=true
我得到了这样的页面:
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Resources.IResourceWriter' from assembly 'System.Text.RegularExpressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. while resolving 0x10000ce - System.Resources.IResourceWriter. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.JavaScriptEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0x2000045 - System.Text.Json.JsonWriterOptions. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.JavaScriptEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0x2000046 - System.Text.Json.Utf8JsonWriter. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.JavaScriptEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0x1000011 - System.Text.Encodings.Web.JavaScriptEncoder. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.TextEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0x10000ad - System.Text.Encodings.Web.TextEncoder. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.TextEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0xa00023c - System.Text.Encodings.Web.TextEncoder.FindFirstCharacterToEncodeUtf8. [/Users/thomas/Projects/test/test.fsproj]
RUNREADYTORUNCOMPILER : warning : Could not load type 'System.Text.Encodings.Web.TextEncoder' from assembly 'System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. while resolving 0xa00023f - System.Text.Encodings.Web.TextEncoder.FindFirstCharacterToEncode. [/Users/thomas/Projects/test/test.fsproj]
这个错误是什么意思?
我有另一个使用完全相同的命令行构建的项目,没有任何问题。
如果我删除单个文件属性,那么它将正确构建。
如何解决这个问题?错误消息并没有真正解释我发生了什么。
解决方案
将此添加到项目文件以修复 JavaScriptEncoder:
<TrimmerRootAssembly Include="System.Text.Encodings.Web" />
这对于 IResourceWriter:
<TrimmerRootAssembly Include="System.Resources.Writer" />
ReadyToRun 有时需要帮助(或者它只是错误)包含什么,你可以在这里阅读更多
推荐阅读
- reactjs - 在 Reactjs 中创建静态状态
- vim - 从 vim 中的新空白选项卡打开文件
- php - 如何使用PHP检查MySQL中的值是否等于0
- jquery - 隐藏/显示表行时的引导表对齐问题
- c - 格式 %c 需要 char* 类型的参数,但具有 int
- gitlab - 集成时抛出 GitLab Webhook 错误
- android - 将 BottomNavigation 与 State 和构建参数一起使用
- c++ - 如何使用依赖 glfw、GLEW 和 GL 制作 Dear ImGui 的 config.cmake 文件
- r - 如何将这个晦涩的字符向量格式化为 R 中的日期时间(或 POSIX)对象?
- reactjs - React:从单独的输入状态动态更新字段值