我有一个使用Visual Studio 2005构建的WinForms应用程序,包括运行和查看报告的VS2005附带的水晶报告。我的安装程序使用合并模块CrystalDecisionsRedist2005_x86来安装Crystal。这一切都运行良好,直到我尝试在Vista上安装,当我注册Crystal dll时出错。这似乎是一个众所周知的问题,正如here,here和here等论坛所报道的那样,但是就像这些事情一样,我找不到普遍接受的解决方案,并且移动他们的网站的业务对象也无济于事。 (需要stackoverflow的问题的完美示例)。
那么如何将Crystal Reports for VS2005应用程序部署到Vista?
更多信息:
记录到事件日志中的Vista错误成对出现如下:
激活上下文生成失败 为“C:\ Program Files \ Common 文件\业务 对象\ 2.7 \ BIN \ ExportModeller.dll” 附属大会 无法找到Microsoft.VC80.ATL,processorArchictecture =“x86”....请用 sxstrace.exe用于详细诊断。
然后
产品:错误1904。 模块“C:\ Program Files \ Common 文件\业务 对象\ 2.7 \ BIN \ ExportModeller.dll” 没注册。 HRESULT -217010895。请联系您的支持人员。
以及其他各种dll。
我的安装程序包含ATL的合并模块,但我猜他们没有先申请。我的Wise Installer Edition中无法指定首先应用哪些合并模块。
我已经尝试安装Crystal Reports X1合并模块,徒劳地希望它可以向后兼容10.但是当安装工作正常时,当我尝试运行报告时,我得到一个例外,带有引用错误,因为它找不到合适的程序集。不太令人惊讶。
我还尝试使用Business Objects支持软件下载站点提供的CrystalReports10_NET_EmbeddedReporting.msm合并模块(文件名为'用于CR 10 .NET部署的合并模块-En')
我将继续列出我可以从各种线索尝试的事项列表,但如果有人有“答案”,我会很高兴。
感谢。
当前解决方案
我当前的方法/解决方法是在安装我的MSI之前在Vista计算机上安装Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)。这允许我的普通MSI在Vista上正常工作,但并不理想,因为我只想分发一个exe。
我也在SAP / CrystalReports论坛here上提出了这个问题。
更多信息
CR for .NET SP1的release notes注意到此问题已存在且现已解决:
ADAPT00738607
描述:何时 安装自定义的安装项目 使用Crystal Reports for Visual Studio 2005合并模块(.msm) Vista,几个COM组件都失败了 寄存器。例如“模块C:\程序 Files \ Common Files \ Business 对象\ 2.7 \ BIN \ ExportModeller.dll 没注册。 HRESULT -2147010895。请与您的支持人员联系。“如果您运行setup.exe 再次选择修复, 安装将继续进行 错误,组件可以 注册。
新行为:这个问题 已解决
但是,我仍然没有找到任何更新的合并模块,所以我不清楚这个问题在哪里得到解决。如果您不想单独安装C ++包,他们建议的修复安装的解决方法是值得考虑的。
答案 0 :(得分:1)
我今天遇到了这个问题。似乎应该有一种更简单的方法让msi文件安装其先决条件。
谷歌搜索提供以下blog解释问题。它列出了以下解决方案:
我无法使用选项1,因为我想要一个MSI文件 我不能使用选项3或5,因为它是第三方库 我不想使用选项2,因为我不想处理文件的私有副本。
这左边的选项4.这似乎不是最好的方式,但它对我有用。我编辑了CrystalDecisionsRedist2005_x86合并模块(使用InstallShield)并删除了SelfReg表中的条目。然后,我创建了一个自定义操作,计划在Commit上注册我删除的文件。