C# 如何为我的COM dll项目注册DocumentFormat.OpenXml.dll

C# 如何为我的COM dll项目注册DocumentFormat.OpenXml.dll,c#,dll,com,gac,regasm,C#,Dll,Com,Gac,Regasm,我在项目中使用汇编时遇到了一个小问题。 我必须制作COM dll,以便在其他应用程序中使用,它使用OpenXMLSDK更快地加载xlsx文件。它在我的机器上工作得很好。但是有问题,然后我尝试将我的项目移植到另一台机器上。 对于COM dll,我通过“regasm”创建注册表文件,并在注册表中注册我的COM dll类。如果不引用OpenXMLDLL,它可以完美地工作,但是引用OpenXMLDLL会导致80040154错误。 我用参考资料中的dll和reg文件制作了一个小程序,在新机器上注册我的CO

我在项目中使用汇编时遇到了一个小问题。 我必须制作COM dll,以便在其他应用程序中使用,它使用OpenXMLSDK更快地加载xlsx文件。它在我的机器上工作得很好。但是有问题,然后我尝试将我的项目移植到另一台机器上。 对于COM dll,我通过“regasm”创建注册表文件,并在注册表中注册我的COM dll类。如果不引用OpenXMLDLL,它可以完美地工作,但是引用OpenXMLDLL会导致80040154错误。 我用参考资料中的dll和reg文件制作了一个小程序,在新机器上注册我的COM dll。 在manifest.app中添加:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
在我尝试在新机器上手动安装OpenXML SDK并检查DocumentFormat.OpenXML.dll的GAC注册后-它已注册,但我还是有错误。80040154-类别未注册。 我不明白VS2015如何处理我的DLL和DocumentFormat.OpenXml.DLL以正常工作,以及如何在没有VS的机器上执行。 在我的实验中,我使用DocumentFormat.OpenXml.dll制作了windows窗体应用程序,并将其移植到其他机器上。无需在GAC中注册,也无需在机器上安装OpenXMLSDK,即可完美工作。它所需要的一切-DocumentFormat.OpenXml.dll位于与exe相同的目录中

所以问题是-我应该怎么做,在任何机器上引用DocumentFormat.OpenXml.dll使用我的COM dll

对不起,我的英语错了

namespace Reger_XLSReader
{
    class Program
    {
        static void Main()
        {
            string dir = @"c:\windows\system32\";
            File.WriteAllBytes(dir + "XLSReader.dll", Properties.Resources.XLSReader);
            File.WriteAllText("xls.reg", Properties.Resources.xls);
            File.WriteAllBytes(dir  + "DocumentFormat.OpenXml.dll", Properties.Resources.DocumentFormat_OpenXml);
            Publish pub = new Publish();
            pub.GacInstall(dir  + "DocumentFormat.OpenXml.dll");
            Process.Start("xls.reg");
        }
    }
}