使用COM对象的.NET应用程序上的部署策略

使用COM对象的.NET应用程序上的部署策略,.net,deployment,com,interop,.net,Deployment,Com,Interop,我有一个关于.NET应用程序部署策略的问题。在我的应用程序中,我使用DSO(决策支持对象)。它是一个COM DLL文件,用于访问Analysis Services服务器(2000版) 我从解决方案中引用了COM,Visual Studio(实际上是它背后的工具)很好地创建了一个.NET程序集,它封装了对COM对象的访问,并使其类在.NET中可用 包装使用CLSID通过使用Windows注册表将DSOs COM类映射到生成的.NET对象(当运行DSO安装程序时,所有公共COM类的CLSID都在那里

我有一个关于.NET应用程序部署策略的问题。在我的应用程序中,我使用DSO(决策支持对象)。它是一个COM DLL文件,用于访问Analysis Services服务器(2000版)

我从解决方案中引用了COM,Visual Studio(实际上是它背后的工具)很好地创建了一个.NET程序集,它封装了对COM对象的访问,并使其类在.NET中可用

包装使用CLSID通过使用Windows注册表将DSOs COM类映射到生成的.NET对象(当运行DSO安装程序时,所有公共COM类的CLSID都在那里注册)

问题是,当Microsoft发布新版本的DSO时,并且当我安装该新版本时,注册表中的一些而不是所有CLSID-s都在更改,因此生成的.NET程序集的映射将中断,应用程序将崩溃

DSO作为整个包(称为向后兼容包)的一部分重新分发。当此包中的某些内容发生变化时(不一定与DSO有关),一些COM类将接收新的CLSID。这是令人沮丧的,因为我的应用程序停止工作,即使新软件包没有真正改变DSO。他们经常发布这个软件包,我想最新的一个是安装的,并且可能在每个service pack上都会更新


在这种情况下,我如何处理部署?我真的需要为每个新推出的DSO版本在上创建应用程序的部署包吗?

您可能并不真的需要生成的文件

看来后期绑定可以解决您的问题。手动创建包装器类可能很耗时,但这取决于您的使用模式。以下是一个指向描述.NET中后期绑定的文档的链接:

该链接似乎(实际上)已断开(“致命错误:与数据库服务器的连接失败”)。