AutoCAD .NET framework支持情况

news/2024/9/29 5:36:24

出处

https://forums.autodesk.com/t5/net/net-framework-support/m-p/9403930

问题描述

我想问一下是否有一些官方表格.Net framework支持。有人有关于支持.NET 5的信息/经验吗?

回答1(03-27-2020)

image
附加了一个用于AutoCAD/Visual Sudio兼容性的非官方表格。

我没有测试,但是.NET Framwork 5.0应与所有AutoCAD版本兼容。

如表所示,AutoCAD版本要求最低.NET版本,但与更高版本兼容

回答2(05-13-2020)

嗨,恐怕没那么简单。

.NET 5不是.NET framework。它是.NET Core和.NET Standard的组合。

.NET framework的最后一个版本是4.8。Microsoft未来不会发布的任何版本的.NET framework。

https://devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/

我用.NET 5.0构建了一个最简单的插件DLL,引用了AutoCAD 2021中的“acoremgd.dll”、“acmgd.dll”和“acdbmgd.dll“。

由于出现以下错误,我无法使用“NETLOAD”命令在AutoCAD中加载此DLL:

Cannot load assembly. Error details: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)at Autodesk.AutoCAD.ApplicationServices.AutoCADApplicationHolder.Initialize(Assembly assembly)at Autodesk.AutoCAD.ApplicationServices.ExtensionLoader.ProcessAssembly(Assembly assembly)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

对于.NET 5.0,AutoCAD用于查找具有CommandMethod属性的方法的反射似乎无法使用。

无论我是将DLL发布为自包含部署还是框架相关部署,我都会收到这个错误,所以这个错误并不意味着我的DLL找不到一些引用。从调用堆栈中可以看出,错误显然来自AutoCAD代码库。

我还想指出,我在我的测试机器上的AutoCAD之外成功运行了.NET5,只是为了避免任何我不知道如何部署.NET应用程序。

所以,总之,我不认为当前版本的AutoCAD支持.NET 5。
我们可能需要等待Autodesk正式支持它。
否则,它们将被.NET framework4.8卡住。

有点奇怪的是,没有更多的活动,或者Autodesk没有发布官方声明,让开发人员做好准备。

回答3(05-22-2020)

.NET5非常有趣,但仍然是一项相当新的技术。它仍在预览中,微软宣布它不会是LTS版本(.NET6将是第一个LTS版本)

据推测,Autodesk目前正在相当深入地(内部)评估这项新技术对其产品的影响,但现在发布关于插件API的足够可靠的路线图可能还为时过早。

许多与我所知的两种Autodesk产品(AutoCAD/Revit)相关的Microsoft技术是最近才添加到其中的NET Core 3.1,这是.NET5的技术基础。我记得.NET5(Core)的部分运行时实际上源于Mono(Linux)。这是有道理的,因为.NET5现在是跨平台的——除了某些例外,例如即将推出的WinUI3和C++/CLI仅在Windows上受支持。

现在,虽然技术基础已经发生了相当根本的转变,但实际升级到了.NET Core的目标(包括.NET5)可以是非常无缝的——或者看起来是这样。

但是,由于此原因,.NET Framework运行时无法加载.NET Core程序集.dll文件,正如您所观察到的。这不是意料之中的事。反射信息在程序集中的存储方式确实发生了更改。我认为这是必要的,因为.NET5也支持AOC(提前编译)而不是JIT,类似于C++。(另一方面,还有一个兼容性层。)

两者有很大的区别,我还认为AutoCAD主机应用程序的大部分必须首先移植到.NET Core,或者更准确地说.NET 5,以便加载您的插件。这可能需要一些工作:

自从NET Framework 4.8是微软承诺将永远保留的LTS版本,我猜是这样.NET Framework 4.8可能在至少一到两年内仍然是Autodesk插件API的目标框架。

我也期待着关于采用这两种方法的路线图.NET Core 3.1或更可能的是.NET5由Autodesk AutoCAD/Revit提供。.NET Core性能提高看起来很有吸引力。.NET framework现在是一条死胡同。最好知道如何处理后者。

很快我们将计划插件产品移植到.NET Core的工作和时间表,这会适用于Autodesk AutoCAD/Revit,效果更佳!

回答4

这个.NET6将在Windows和macOS上运行,但我们没有收到Autodesk的消息。

https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30109.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

hj_podman_20240510

略创建文件夹&容器停止&删除 yum install podman yum update / apt-get update # podman exec -u 0 -it a4a89d953992 /bin/bash 这是root账户进入 -u 0~~~# mysql 8.0.37 podman pull mysql:8.0.37 mkdir -p /home/hj/hj_mysql8.0.37_3307 cd /home/hj/hj_mysql8.0.…

开源EEG脑电图参考设计+信用卡大小、USB供电的4象限源测量单元

1、ESP-BLE-MESH - 乐鑫开源的蓝牙 mesh 协议栈 ESP-BLE-MESH 是乐鑫开源的蓝牙 mesh 协议栈,已通过蓝牙技术联盟 (SIG) 全功能认证,支持 Bluetooth Mesh Specification v1.0.1 中规定的所有功能与应用模型。使用 ESP-BLE-MESH 技术,可以和全球不同厂商、不同类型的标准蓝牙…

使用vue ui新建一个vue项目

参考:https://blog.csdn.net/weixin_46932840/article/details/114590107@目录一、安装环境二、使用vue ui初始化步骤1.我的是到C盘的Program Files\nodejs\node_global目录下执行以下命令2.执行命令后会自动跳转到初始化项目的页面,如下图操作3.最后我一开始执行npm run ser…

《最新出炉》系列入门篇-Python+Playwright自动化测试-46-鼠标滚轮操作

1.简介 有些网站为了节省流量和资源,提高加载效率,采用的是动态加载(懒加载)的,也就是当拖动页面右侧滚动条后会自动加载网页下面的内容,不拖动就不会加载的或者通过鼠标滚轮操作。 2.wheel模拟鼠标滚动 wheel模拟鼠标滚动,就是通过调度一个wheel事件。(滚轮事件如果不…

面向单片机的超轻量级的神经网络推理库+单片机上实现动态加载功能的函数库

1、TinyMaix - 面向单片机的超轻量级的神经网络推理库 TinyMaix 是专为低资源的单片机设计的 AI 神经网络推理框架,通常被称为 TinyML。TinyMaix 可以让你在任意单片机上运行轻量级深度学习模型。TinyMaix 的设计原则:易用性 > 移植性 > 速度 > 空间。 TinyMaix 其实…

1 浏览器生成消息

目录1 生成http请求消息1 生成http请求消息 URI:统一资源标识符 Uniform Resource Identifier URL:统一资源定位符 Uniform Resource Locator http的基本思路http消息的格式由于每条请求消息中只能写 1 个 URI,所以每次只能获取 1 个文件,如果需要获取多个文件,必须对每个…

禁止windows自动更新

1、win+R 输入 `regedit` 打开注册表编辑器 2、依次打开路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 3、点击鼠标右键,新建DWORD(32位)文件:FlightSettingsMaxPauseDays4、点击修改FlightSettingsMaxPauseDays文件,基数选择十进制,输入 36…

win10电脑桌面便签纸怎么设置?添加桌面便签方法

对于上班族来说,电脑桌面上的电子便签纸是一项不可或缺的工具。在快节奏的工作环境中,我们经常需要随时记录重要信息、安排工作任务,而电子便签纸以其便捷性和实时性成为了我们的得力助手。 想象一下,在紧张的项目讨论中,你需要快速记下同事的建议;或是在灵感迸发时,你想…