我想发布一个在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,但也没有做任何事情。
我已经开始在网上寻找答案,但一切都无济于事。我想知道是否有人能给我一个洞察力来解决这个问题。我会提前欣赏它。
答案 0 :(得分:0)
我过去使用过免费的COM来使用ClickOnce提供COM组件。见this msdn article
答案 1 :(得分:0)
我在MSDN上发布了同样的问题,我发现一个非常有用的答案如下:
MSB3179:问题隔离COM引用“程序集”:“错误”。 这是一条通用错误消息,指示应用程序清单中生成RegFree COM>条目的问题(由 IsolatedComReferences 任务参数)。错误消息的后半部分包含有关>问题性质的更多信息。导致此错误的可能原因是RegFree COM组件未在构建计算机上正确注册。
要进一步关注此问题,请参阅MSDN社区提供的答案Click Here