C# 如何以编程方式将XLL文件加载到Excel中?
如何以编程方式将链接到其他DLL的XLL文件加载到Excel中。 使用c#winforms应用程序+Excel自动化,我正在创建Excel应用程序对象。然后我使用:C# 如何以编程方式将XLL文件加载到Excel中?,c#,c++,.net,excel,office-interop,C#,C++,.net,Excel,Office Interop,如何以编程方式将链接到其他DLL的XLL文件加载到Excel中。 使用c#winforms应用程序+Excel自动化,我正在创建Excel应用程序对象。然后我使用: bool bXllLoadSuccess = _excelApp.RegisterXLL(_pathXll); 当XLL是独立的时,这是正常的。当它依赖于其他DLL时,就会出现问题。即使我把它们放在同一个文件夹中,Excel也不想把它们捡起来。 在加载XLL之前,我尝试执行以下操作,但无济于事: _excelApp.Default
bool bXllLoadSuccess = _excelApp.RegisterXLL(_pathXll);
当XLL是独立的时,这是正常的。当它依赖于其他DLL时,就会出现问题。即使我把它们放在同一个文件夹中,Excel也不想把它们捡起来。
在加载XLL之前,我尝试执行以下操作,但无济于事:
_excelApp.DefaultFilePath = Path.GetDirectoryName(_pathXll);
我也试过这个:
Directory.SetCurrentDirectory(Path.GetDirectoryName(_pathXll));
Dependency walker没有显示任何问题–所有必需的文件都与XLL位于同一文件夹中。
有什么想法吗
谢谢
UPD:我尝试将所有需要的DLL复制到一个文件夹中,然后将其路径添加到path变量中。没有帮助:)
UPD2:我试图同时更改c#app和Excel应用程序对象的当前目录。没有帮助:(当你打开文件->打开.xll时,它能工作吗?它能从VBA使用Application.RegisterXLL工作吗?是的…当我手动添加它时,它能工作。虽然没有尝试过VBA…让我试试…xll可能是用托管代码(Excel DNA/ManagedXLL/add-In Express或类似代码)构建的吗如果是这样的话,从VSTO调用时可能会出现.NET CAS问题。这里的一些帖子:当你打开文件->打开.xll时,它能工作吗?使用Application.RegisterXLL从VBA工作吗?是的…当我手动添加它时,它能工作。但是没有尝试过VBA…让我试试…xll可能是用托管代码构建的吗(Excel DNA/ManagedXL/Add-In Express或类似版本)?如果是这样,从VSTO调用时可能会出现.NET CAS问题。此处的一些帖子: