如何部署基于水晶报表10和Oracle10g的.NET应用程序

本文介绍如何部署包含水晶报表10和Oracle10g的.NET应用程序,包括.NET框架检测、安装包制作及自定义操作等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何部署基于水晶报表10Oracle10g.NET应用程序

 

从去年3月就开始这个项目,到今天快2年了,各模块终于开发接近尾声,于是leader让我做一个安装程序。据微软说法,VS自带的安装部署工具功能强大,用来部署.NET程序最合适不过,另外网上也有不少成功的例子,于是偶就决定不使用第三方工具来做这个安装包。

 

因为VS做出来的安装程序的启动需要.NET框架库支持,所以需要一个托管程序来检测用户电脑上是否安装了.NET Framework,如果未安装,则会提示用户安装,反之,则跳过框架安装步骤,启动MSI安装。微软提供的这个C++程序中,你可以在Main.h中控制.NET框架的安装模式,如下:

 

const TCHAR g_tszFxInstaller[] = _T("dotnetfx.exe"); // 框架库位置

const TCHAR g_tszLPInstaller[] = _T("langpack.exe"); // 中文语言包位置

 

// JueJue注释,在 2007-10-30 11:02

// 1. 动态安装方式,即弹出对话框,让用户选择是否安装.NET框架库

// 2. 这是静态安装方式,实现无提示安装.NET框架库

const TCHAR g_tszFxInstallerCmdLine[] = _T("/q:a /c:/"install /l /""); // 1

//const TCHAR g_tszLpInstallerCmdLine[] = _T("/q:a /c:/"inst /l /""); // 1

//const TCHAR g_tszFxInstallerCmdLine[] = _T("/q:a /c:/"install /l /q/""); // 2 无提示安装框架库

const TCHAR g_tszLpInstallerCmdLine[] = _T("/q:a /c:/"inst /l /q/""); // 2 无提示安装语言包

 

// msi install cmd-line

//

const TCHAR g_tszMsiCmdLine[] = _T("Msiexec /I /"%s/" REBOOT=ReallySuppress");

 

// reg key for fx policy info

// used to detect if fx is installed

// this key resides in HKEY_LOCAL_MACHINE

const TCHAR g_tszFxRegKeyRoot[] = _T("SOFTWARE//Microsoft//NET Framework Setup//NDP//");

 

你还可以在Main.cppWinMain中控制整个安装流程,比如加上自定义提示,去掉一些凡人的提示和异常处理,等等!然后编译,生成一个Win32应用程序,这个小程序会非常有用,稍后会讲到。

 

接下来,就是应用程序安装包的制作了!由于用到了Oracle10g和水晶报表10,所以需要以下文件

 

1.  Oracle10g基本客户端组件 下载

2.  水晶报表10合并模块 下载

 

接着,按照下列步骤:

1 新建一个安装项目,加入应用程序文件,COM组件,必需的注册表添加项,等等。

2 添加合并模块,就是水晶报表10合并模块中的CrystalReports10_NET_EmbeddedReporting.msm,在属性项中填入注册码(可以在VS的帮助菜单中找到)。

3 在文件系统(强烈建议在根目录Windows下)新建一个文件夹,用来存放Oracle10g基本客户端组件,为了不让用户手工注册环境变量和设置tnsnames.ora文件,你需要写一个程序来自动完成这些操作,当然你还可以把它嵌入安装程序包的自定义操作中,让用户在安装过程中,即完成环境变量和客户端的配置。

 

4.  在文件系统中,拷贝必需的COM组件。

5.  在注册表视图中,添加MDAC启动条件

 

    需要注意的是,在自定义操作中,添加的.NET程序不要默认为Windos安装程序类,否则可能会引起安装异常。

 

 

    检查各个设置细节,确保准确无误,编译,一切OK!你会发现在Debug目录下,生成了一个MSI文件和一个MDAC_TYP.exe文件以及一个settings.ini文件。

 

然后更改settings.ini文件,使它看起来是下面这个样子:

 

[Bootstrap]

Msi=XYHHIS2.0.msi

ProductName=医院管理信息系统V2.0

DialogText= 安装程序(医院管理信息系统V2.0

CaptionText=医院管理信息系统V2.0

ErrorCaptionText= 安装遇到错误

FxInstallerPath=

BootstrapFx=true

LanguageID=1033

BootstrapMdac=true

MdacInstallerPath=

 

 然后拷贝之前生成的Win32引导程序和.NET框架库以及语言包到MSI文件同目录下,这样,大功告成!

 本程序在VS2003 Windows XP SP2下测试通过,安装程序在干净的Windows XPWindows 2000中安装成功,程序运行正常!

 

参考: 把.NET程序部署到没有安装.NET Framwork的机器上

             使用 Visual Studio .NET 2003 重新分发 .NET 框架

              VS2003+水晶报表10的打包部署(CS方式)

             连接oracle10g免安装客户端解决办法

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值