2010-05-18 40 views
1

我正在使用regfree com部署activex组件与clickonce。该组件依赖于一些本地dll,它们应该位于与组件相同的目录中。如果我手动将原生dll复制到clickonce应用程序的安装目录(我通过使用System.Reflection.Assembly.GetExecutingAssembly()找到目录),应用程序运行良好。但是,如果我将dll包含在项目中并发布它们,则应用程序不起作用。clickonce,添加本机dll,com免费注册

任何建议或解决方法?

问候,

弗雷德里克

回答

2

嵌入在你的托管程序集作为嵌入资源的原生.DLL文件并在运行时解压缩到硬盘,如果不存在。

如果你不熟悉这个过程,给我留言,我会努力解释它。这并不复杂。

+0

谢谢!你保存了我的一天..我可以看到,这些DLL完全不会被复制到应用程序目录中.. @ – fsl 2010-05-18 11:41:21

+0

@fsl - 所以你熟悉嵌入和从程序集中提取资源? – 2010-05-18 11:44:49

+0

沿着Application.GetResourcePart(Uri relativeUri)行,然后打开一个文件流到:System.Reflection.Assembly.GetExecutingAssembly())? – fsl 2010-05-18 11:49:19