Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果程序集依赖于不在同一文件夹中的其他程序集,则Regasm将失败_C#_.net_Com - Fatal编程技术网

C# 如果程序集依赖于不在同一文件夹中的其他程序集,则Regasm将失败

C# 如果程序集依赖于不在同一文件夹中的其他程序集,则Regasm将失败,c#,.net,com,C#,.net,Com,考虑以下场景 我有两个组件 名为A.dll的程序集位于文件夹Fold_A中 名为B.dll的程序集位于文件夹Fold_B中 A.dll依赖于B.dll,并且A是COM可见的 当我表演comand的时候 regasm A.dll/codebase 它失败了,但是当B复制到fold_a中时,命令成功了 问题是:是否有某种方法可以在不复制依赖于要注册的程序集(通过regasm)的程序集的情况下执行 已存在与此问题相关的问题: 你的帮助将是非常宝贵的 提前感谢好吧,是的,注册时会出现问题,但当客户端实际

考虑以下场景 我有两个组件 名为A.dll的程序集位于文件夹Fold_A中 名为B.dll的程序集位于文件夹Fold_B中 A.dll依赖于B.dll,并且A是COM可见的 当我表演comand的时候 regasm A.dll/codebase
它失败了,但是当B复制到fold_a中时,命令成功了

问题是:是否有某种方法可以在不复制依赖于要注册的程序集(通过regasm)的程序集的情况下执行

已存在与此问题相关的问题:

你的帮助将是非常宝贵的
提前感谢

好吧,是的,注册时会出现问题,但当客户端实际使用COM服务器时,问题会大得多。典型的COM客户机是非托管代码,给它一个.config文件来告诉CLR在哪里查找程序集B不是很实际

如果您想让它在没有配置的任何客户机上运行,那么应该在GAC中添加B。这通常是COM服务器的合适位置,当您使用COM时,DLL地狱没有什么可乱搞的。使用Assembly.AssemblyResolve事件可能不太实际,但您可以尝试使用静态类构造函数注册事件处理程序。除非那些文件夹总是相关的,否则硬编码依赖项的路径是有问题的