首页
/ DllExport 1.8 版本发布:.NET 原生导出功能的重大升级

DllExport 1.8 版本发布:.NET 原生导出功能的重大升级

2025-07-07 10:15:45作者:殷蕙予

DllExport 是一个强大的 .NET 工具集,它允许开发者将 .NET 程序集中的方法直接导出为原生 DLL 函数,使得 .NET 代码能够被非托管代码(如 C++、Delphi 等)直接调用。这个工具在需要将 .NET 功能暴露给原生代码的场景中非常有用,比如开发混合语言应用程序或为现有原生应用程序提供 .NET 扩展功能。

核心功能增强

最新发布的 DllExport 1.8 版本带来了多项重要改进,其中最显著的是对最新 .NET 版本的支持扩展。现在工具全面支持从 .NET 9 到 .NET 5 的所有主要版本,包括 .NET 8、.NET 7、.NET 6 以及 netcoreapp3.1 和 netstandard2.1 等框架版本。这意味着开发者可以在最新的 .NET 环境中无缝使用原生导出功能。

现代化功能特性

1.8 版本引入了对现代 C# 特性的支持,包括字符串插值($-interpolation)、Span 和 Memory 等高性能类型。这些特性在现代 .NET 开发中被广泛使用,现在开发者可以在导出方法中安全地使用它们。

类型引用系统也得到了增强,现在支持通过 Wizard 界面自定义类型引用和外部程序集引用。这为处理复杂类型系统和互操作场景提供了更大的灵活性。

构建和部署优化

新版本改进了多目标构建的支持,特别是增加了对 ImageBase 和构建步骤的精细控制。开发者现在可以为不同的目标框架配置独立的 ImageBase 值,这在需要精确控制内存布局的场景中非常有用。

对于发布流程,1.8 版本增强了 x86 和 x64 平台程序集的自动复制功能,简化了多平台部署的过程。同时改进了对嵌套项目的支持,使得在复杂解决方案结构中使用 DllExport 更加顺畅。

诊断和调试改进

调试体验得到了显著提升,新版本提供了更精细的 PDB 生成控制。现在可以根据项目的 DebugType、Optimize 和 DebugSymbols 属性自动选择最合适的 PDB 生成模式,包括:

  • Optimize:优化长指令为短指令
  • PdbOptimize:创建 PDB 文件但不启用调试信息跟踪
  • DebugOptimize:启用 JIT 优化,创建 PDB 文件,使用隐式序列点
  • Debug:禁用 JIT 优化,创建 PDB 文件,使用 PDB 中的序列点
  • DebugImpl:禁用 JIT 优化,创建 PDB 文件,使用隐式序列点

底层工具链更新

DllExport 1.8 更新了其依赖的核心工具链:

  • ILAsm 升级到 9.3.0 版本
  • ILMerge 更新到 3.0.41
  • Cecil 升级到 0.11.6
  • Conari 更新到 1.5.0

这些更新带来了更好的性能、稳定性和对新特性的支持。

错误修复和稳定性提升

新版本修复了多个关键问题,包括:

  • 修复了包含 .class extern forwarder 声明时可能导致崩溃或空导出的问题
  • 解决了某些情况下出现的语法错误问题
  • 改进了预处理和后处理阶段的稳定性
  • 修复了 PE 检查相关的多个问题
  • 解决了发布目标处理中的若干问题

向后兼容性

对于从旧版本升级的用户,DllExport 提供了简单的升级命令。工具保持了良好的向后兼容性,同时新增的恢复功能可以更轻松地从配置问题中恢复。

DllExport 1.8 的这些改进使得 .NET 原生导出功能更加稳定、强大且易于使用,为需要 .NET 与非托管代码互操作的开发者提供了更完善的解决方案。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
161
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
146
191
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
198
279
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
949
556
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
346
1.33 K