我正在尝试发布一个运行时间经过修剪的 MVC 应用程序。 (由于反射访问模型,应用程序本身不能被修剪;这是 MVC 的典型特征;但是我的理解是,这不应该阻止创建修剪后的单个文件可执行文件 - 但我自己的程序集中的所有类型都被认为是有根的。)
然而,在激活修剪后立即使用
<PublishTrimmed>true</PublishTrimmed>
<IsTrimmable>false</IsTrimmable>
我收到以下难以理解的错误:
obj/Release/net8.0/linux-x64/Microsoft.Extensions.Configuration.Binder.SourceGeneration/Microsoft.Extensions.Configuration.Binder.SourceGeneration.ConfigurationBindingGenerator/BindingExtensions.g.cs(130,70):错误CS0246:找不到类型或命名空间名称“HashSet<>”(您是否缺少 using 指令或程序集参考?)
目录树中不存在该文件,因此我无法打开它进行检查。
我始终无法将问题一分为二;但是这个问题可以通过项目文件中的一行来解决。
<EnableConfigurationBindingGenerator>false</EnableConfigurationBindingGenerator>
我不明白。它试图为看起来足够接近可以进入 IConfiguration 的东西生成一些代码,并且代码生成器正在吐出废话。