首页 > 编程语言 >修整程序集需要 .NET Core 3.0 或更高版本。

修整程序集需要 .NET Core 3.0 或更高版本。

时间:2024-11-30 15:32:26浏览次数:6  
标签:Core 3.0 修整 net461 NET true

最近编译WinSW,提示:修整程序集需要 .NET Core 3.0 或更高版本。

百思不得解,最后原来我不知道“修整程序”,在csproj文件中这么一段

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>net461;net6.0-windows</TargetFrameworks>
    <LangVersion>latest</LangVersion>
    <Nullable>enable</Nullable>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>    
    <PublishTrimmed>true</PublishTrimmed>

最后一行,就是“修整”。而net461是不支持的。所以在编译到461就提示有问题了。问AI,回复如下:

 

在你的 .csproj 文件中,使用 <TargetFrameworks> 指定了多个目标框架,包括 net461 和 net6.0-windows。你启用了 <PublishTrimmed>true</PublishTrimmed>,这意味着你希望在发布时对程序集进行修整(trimming)。
然而,修整功能只适用于 .NET Core 3.0 及更高版本,而 net461 是 .NET Framework 的一个版本,因此它不支持修整。 为了解决这个问题,你有以下几种选择: 1。移除不支持修整的框架: 如果你不需要支持 net461,可以将其移除,只保留支持修整的框架。例如: <TargetFrameworks>net6.0-windows</TargetFrameworks> <PublishTrimmed>true</PublishTrimmed> 2。使用条件编译: 如果你需要同时支持 .NET Framework 和 .NET Core/.NET 5+,你可以为不同的目标框架使用条件编译来启用或禁用修整。例如: <PropertyGroup> <PublishTrimmed Condition="'$(TargetFramework)' == 'net6.0-windows'">true</PublishTrimmed> <PublishTrimmed Condition="'$(TargetFramework)' == 'net461'">false</PublishTrimmed> </PropertyGroup> 3/将项目迁移到 .NET 5 或 .NET 6: 考虑将整个项目迁移到仅使用 .NET 5 或 .NET 6,这样你就可以利用最新的功能,包括修整。

我选择2,最后的csproj修改为类似以下

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>net461;net6.0-windows</TargetFrameworks>
    <LangVersion>latest</LangVersion>
    <Nullable>enable</Nullable>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>    
    <PublishTrimmed>true</PublishTrimmed>
    <AssemblyTitle>Windows Service Wrapper</AssemblyTitle>
  </PropertyGroup>
  <PropertyGroup>
    <PublishTrimmed Condition="'$(TargetFramework)' == 'net6.0-windows'">true</PublishTrimmed>
    <PublishTrimmed Condition="'$(TargetFramework)' == 'net461'">false</PublishTrimmed>
  </PropertyGroup>

 

标签:Core,3.0,修整,net461,NET,true
From: https://www.cnblogs.com/kevin-Y/p/18578495

相关文章

  • Android 13.0 系统Settings横屏状态下wifi扫码不能识别功能修复
    1.前言在13.0的系统rom产品定制化开发过程中,在对于wifi扫描二维码的时候,可以看到相关的wifi信息,在竖屏的情况下不会有什么问题,但是如何在系统settings横屏的情况下扫描wifi的二维码的时候,发现识别不了,接下来就来分析下相关的wifi扫描相关流程,看如何实现相关功能2.系统Sett......
  • Cross-stitch Networks for Multi-task Learning译文_
                                目录1.简介1.1多任务共享:一项实证研究2.相关工作3十字绣网络3.1.分割架构 3.2.统一拆分架构 3.3.十字绣单元4.十字拼接的设计决策5.消融分析5.1.初始化十字绣单元的参数 ......
  • .NET Core 异步(Async)底层原理浅谈58
    简介多线程与异步是两个完全不同的概念,常常有人混淆。异步异步适用于"IO密集型"的场景,它可以避免因为线程等待IO形成的线程饥饿,从而造成程序吞吐量的降低。其本质是:让线程的cpu片不再浪费在等待上,期间可以去干其它的事情。要注意的是:Async不能加速程序的执行,它只能做到不阻......
  • asp.net mvc视图传递数据至另一页的视图
    由于简篇,C#mvc+axios+webapi+javascript这里只是简单一笔带过。如果操作,看如下截图可以写一个javascript函数,具体如何传,代码如何写?参考博文前链接内的DetailButton_EventListener(data)函数的写法。把数据传至MVC的控制器中,让控制器来处理。在此数据处理控制器,它会转......
  • VectorDraw 11.3.2 for .NET Crack
    VectorDrawRayTracingEngine(vdRay)isanadd-onlibrarytotheVectorDrawDevelopersFrameworkthatgivesyoutheabilitytoexportphoto-realisticimagesfromyourapplication.Easyandsimple,vdRaywillhelpyoucreateniceimagesandalsovideosfr......
  • 请说说canvas的closePath()与lineTo()的区别是什么?
    在CanvasAPI中,closePath()和lineTo()都是用于绘制路径的方法,但它们的作用不同:lineTo(x,y):将当前路径的终点移动到指定的坐标(x,y),并添加一条从当前位置到新位置的直线。这意味着lineTo()会在画布上实际绘制一条线。closePath():尝试通过添加一条从当前点到......
  • python语言实现_通过端口转发实现跨网络(多网络之间)通信_science_network
    本文使用python语言实现了一个端口转发的程序,该程序可以实现多网络之间的信息通信,当然这里有个前提,那就是多个网络都在一台主机上有可以连通的端口。之所以有这个编写代码的需求,是因为最近使用的sciencenetwork工具不大好用了,于是就要博士同学发给我一个好用些的来,固然发现同学......
  • 手动批量注入service 自动依赖注入 C# asp.net dontet 依赖注入
    手动批量注入service自动依赖注入C#asp.netdontet依赖注入publicstaticclassServiceCollectionExtensions{//批量注入所有的继承IBaseService的ServicepublicstaticvoidAddPDAServices(thisIServiceCollectionservices){varassemblies......
  • Observability:如何在 Kubernetes pod 中轻松添加应用程序监控
    作者:来自Elastic JackShirazi•SylvainJuge•AlexanderWertElastic®APMK8sAttacher允许将ElasticAPM应用程序代理(例如ElasticAPMJava代理)自动安装到Kubernetes集群中运行的应用程序中。该机制使用变异webhook(mutatingwebhook),这是一个标准的Kubernetes......
  • netcdf文件复制并修改
    importnumpyasnpfromnetCDF4importDatasetfromdatetimeimportdatetime#获取当前时间current_time=datetime.now()#格式化为只显示时间formatted_time=current_time.strftime("%m-%d-%H-%M-%S")defextend_list(lst,extension_count):""&......