1

我想发布一个在 Visual Basic.Net 2010 中开发的应用程序,它依赖于使用 ClickOnce 的 Com 组件。我已将 Com 对象(dll 类型的文件)的独立属性设置为 True,并且应用程序成功构建。但是,在构建的 Visual Studio 输出窗口中会弹出数十个令人讨厌的警告:

“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2580,9):警告 MSB3179:隔离 COM 引用 'AXmsCtrl' 时出现问题:注册表项 'HKEY_CLASSES_ROOT\CLSID{30f256c0-ee6e-4c57 -a475-e3e81236119f}\Implemented Categories{7DD95801-9882-11CF-9FA9-00AA006C42C4}' 未导入”。

一旦应用程序安装在未注册 Com 组件的目标计算机上,它就会崩溃而死。但是,如果您使用 Regsvr32 命令手动注册所需的 Com 对象,它将像魅力一样工作。

为了解决这个问题,我尝试将高级编译器设置中的目标 CPU 从 AnyCPU 更改为 x86,但没有成功。此外,将目标框架更改为 .Net4,但也没有任何效果。

我已经走出去在网上搜索答案,但都无济于事。我想知道是否有人可以给我一个洞察力来解决这个问题。我会提前感谢这一切。

4

2 回答 2

0

我在 MSDN 上发布了同样的问题,我发现一个非常有用的答案如下:

MSB3179:隔离 COM 引用“程序集”时出现问题:“错误”。这是一条通用错误消息,指示在应用程序清单中生成 RegFree COM >条目时出现问题(由 IsolatedComReferences 任务参数指定)。错误消息的后半部分包含有关问题性质的更多信息。此错误的一个可能原因是 RegFree COM 组件未在构建计算机上正确注册。

要进一步关注此问题并查看 MSDN 社区中给出的答案,请单击此处

于 2012-05-17T19:23:11.130 回答
0

我过去曾使用无注册 COM 来使用 ClickOnce 交付 COM 组件。请参阅此 msdn 文章

于 2012-05-16T11:26:36.667 回答