ExcelDna.AddIn(NuGet安装)运行报错求助:ExcelDna.xll不存在
解决ExcelDna.AddIn 1.7.0运行错误及NU1701警告问题
问题根源
- NU1701警告:
ExcelDna.Integration 1.7.0基于.NET Framework开发,你的项目目标框架为.NETStandard 2.1,包恢复时只能回退到.NET Framework版本,引发兼容性提示,这也是后续XLL文件缺失的核心诱因。 - DNA1899655818错误:项目构建流程因框架不兼容异常,导致
ExcelDna.xll未被正确生成或复制到输出目录。
解决方案
1. 切换项目目标框架至.NET Framework
ExcelDna的AddIn工具链对.NET Framework支持最成熟,修改项目文件如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- 选择与Office 2021兼容的.NET Framework版本,推荐v4.8 --> <TargetFramework>net48</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="ExcelDna.AddIn" Version="1.7.0" /> </ItemGroup> </Project>
保存后重新生成项目,NU1701警告会自动消失。
2. 验证构建输出文件
生成完成后,检查项目的输出目录(默认bin/Debug/net48),确认存在以下文件:
[你的项目名]-AddIn64.xllExcelDna.xll(由NuGet包自动复制)
若文件缺失,右键项目→属性→生成事件,确认ExcelDna的MSBuild任务已正确绑定。NuGet包会自动添加构建逻辑,切换框架后该流程应正常触发。
3. 修正launchSettings.json路径(可选)
如果输出目录变更,确保启动参数中的XLL路径正确:
{ "profiles": { "Excel": { "commandName": "Executable", "executablePath": "C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE", "commandLineArgs": "/x \"$(SolutionDir)$(ProjectName)\\bin\\Debug\\net48\\$(ProjectName)-AddIn64.xll\"" } } }
使用MSBuild变量可避免硬编码路径,适配不同环境。
4. 强制修复NuGet包绑定(若问题依旧)
如果自动构建仍未生成XLL,打开NuGet包管理器控制台,执行以下命令重新安装包:
Install-Package ExcelDna.AddIn -Version 1.7.0 -Force
这会强制修复MSBuild任务的绑定关系,确保构建流程正常执行。
补充说明
旧版ExcelDna 1.1依赖手动复制文件,新版通过NuGet集成了自动化构建流程,目标框架不兼容会直接打断这个流程。若坚持使用.NET Standard,建议升级ExcelDna至1.11及以上版本,新版本对.NET Core/.NET Standard的支持更完善,但需额外配置启用.NET Core兼容模式。
内容的提问来源于stack exchange,提问作者insomniac
相关产品推荐
相关产品推荐

