如何控制dotnet中的修剪with webAssembly?

问题描述 投票:0回答:1
(Visual Studio 2022,in C#,in C#,带有.NET 8.0和Avalonia 11)。我把它算到了它(本地)的工作地点,足以让人们在进一步开发时开始使用它,但是当我将其上传到github页面时,它立即遇到了问题。这是我第一个基于网络的开发项目,因此我不熟悉这些问题(我是台式机和嵌入式开发人员)。

我目前坚持的是,它说它找不到newtonsoft.json从JSON加载的类型I类型的构造函数。根据我完成的搜索,看来这是由于在发布过程中进行的修剪而无法与反射相处得很好(在此研究之前,我什至不知道发布过程比比构建过程)。我尝试使用带有JSON加载类型的组件添加TrimmerrootaSsembly,但没有明显的效果。如果我关闭使用发布的修剪,则不再发出有关修剪问题的警告,但是WebApp由于以下原因无法运行(在浏览器Dev Console中):

[mono]/__w/1/s/src/mono/mono/mono/metadata/icall.c:7096 dotnet.runtime.js:3:176301 dotnet.native.js:8:18755 您的单声道运行时和班级库是不同步的。 dotnet.native.js:8:18755 Sync of Sync库是:System.private.corelib.dll dotnet.native.js:8:18755 dotnet.native.js:8:18755 当您从GIT更新一个时,您需要更新,编译和安装Dotnet.native.js:8:18755 另一个也是。 dotnet.native.js:8:18755 除非您确定正确更新:dotnet.native.js:8:18755,请不要将其报告为错误 您可能的单声道安装损坏。 dotnet.native.js:8:18755 如果您在此消息后看到其他错误或错误,它们可能是相关的dotnet.native.js:8:18755 而且您需要先修复单声道安装。

如果可能的话,我宁愿允许修剪,但不知何故使它无法修剪我解析JSON所需的东西。我知道其他人建议更改JSON库,但是由于它在共享库中使用并完全改变该库的工作方式也会影响其他项目,但我非常宁愿不这样做(其中一些不对我的)
没有人知道如何解决或解决此问题?

您可以通过调整.csproj文件中的设置来控制Blazor WebAssembly中的修剪。

修改修剪模式

dotnet publish

提出特定的组件

.net reflection json.net webassembly dotnet-publish
1个回答
0
投票

成员的预防修剪

使用System.Diagnostics.ecodeanalysis; void loadType([Dynamilate AccessedMembers(dynamalyalicallyAccessedMemberTypes.all)] type type){} 与Trim Analyzer<

调试
<ItemGroup>
  <TrimmerRootAssembly Include="Your.Assembly.Name" />
</ItemGroup>
run:

<PropertyGroup> <EnableTrimAnalyzer>true</EnableTrimAnalyzer> </PropertyGroup>
tovisitus

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.