使用ClickOnce部署COM组件的问题

时间:2012-05-15 17:08:11

标签: visual-studio-2010 com build clickonce publish

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

“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} \已实施的类别{7DD95801-9882-11CF-9FA9-00AA006C42C4}'未导入“。

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

为了解决这个问题,我尝试将高级编译器设置中的目标CPU更改为来自AnyCPU的x86但不起作用。另外,将目标框架更改为.Net4,但也没有做任何事情。

我已经开始在网上寻找答案,但一切都无济于事。我想知道是否有人能给我一个洞察力来解决这个问题。我会提前欣赏它。

2 个答案:

答案 0 :(得分:0)

我过去使用过免费的COM来使用ClickOnce提供COM组件。见this msdn article

答案 1 :(得分:0)

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

  

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

要进一步关注此问题,请参阅MSDN社区提供的答案Click Here