如何在Visual Studio 2017中构建适配Microsoft 365的64位XLL?
构建适配64位Microsoft 365的C# XLL解决方案
一、修正Visual Studio平台目标配置
- 打开Visual Studio 2017解决方案,右键目标项目→属性→生成标签页
- 将平台目标设置为
x64,若之前选过Any CPU,需确保已取消勾选「首选32位」选项 - 指定独立的
x64输出目录,避免与32位构建产物混合
二、更新64位兼容依赖
- 原
mvn -U process-resources可能拉取的是32位依赖,需检查项目的pom.xml配置,确保所有引用库(尤其是Excel交互类库,如Excel-DNA、NetOffice)为64位适配版本 - 执行清理并重新拉取依赖:
mvn -U clean process-resources
三、调整Build Events中的XLL生成脚本
- 进入项目属性→生成事件→后期生成事件命令行
- 确认脚本中调用的XLL打包工具(如Excel-DNA的
ExcelDnaPack.exe)为64位版本,需指向工具的x64目录,示例:"$(SolutionDir)packages\ExcelDna.0.35.11\tools\x64\ExcelDnaPack.exe" "$(ProjectDir)bin\x64\Debug\YourAddIn.dna" /O "$(ProjectDir)bin\x64\Debug\YourAddIn.xll" - 确保脚本中所有输入文件路径指向x64输出目录的编译产物
四、验证与错误排查
- 构建完成后,右键生成的XLL文件→属性→详细信息,确认文件架构为64位
- 加载时需打开对应架构的Excel:Office 365默认是64位,Excel 2016需手动确认版本(文件→账户→关于Excel)
- 若加载失败,通过以下方式获取错误信息:
- 打开Excel选项→信任中心→信任中心设置→消息栏,勾选「显示有关被阻止内容的信息」
- 查看Windows事件查看器的「应用程序日志」,获取加载失败的具体报错(如依赖缺失、架构不匹配)
五、额外检查项
- 若项目中调用了32位原生DLL,需替换为对应的64位版本,否则会导致加载失败
- 将XLL所在目录添加到Excel信任位置,避免被安全策略阻止
- 确认项目目标.NET Framework版本与Office 365兼容(推荐.NET Framework 4.7.2及以上)
内容的提问来源于stack exchange,提问作者Kyoto
相关产品推荐
相关产品推荐

