分享
 
 
 

把.NET程序部署.NETFramwork机器上

王朝c#·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

本文内容

1. 使用VS.NET来制作安装程序。

2. 如何把.NET Framework 部署到目标机器。

3. 如何使用Native代码把.NET Framework和自己的安装程序制作为一个统一的安装程序。该程序做到如果目标机器上没有.NET Framework,将自动安装.NET Framework然后再自动安装作者自己的程序。

制作自己的安装程序

在VS.NET中,我们可以通过建立"Setup and Deployment Projects"项目,非常灵活方便的把自己的.NET程序制作为Windows Installer文件。比如,我们可以很方便的定制下面这些选项:

1. 是否在桌面上放置快捷方式。

2. 注册自己的文件类型,可以通过双击该文件来使用自己的程序打开。

3. 注册表的处理

在下面的MSDN站点,我们可以获得在VS.NET中通过Setup and Deployment Projects来制作自己的安装程序的示例:

http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp

发布.NET Framework

.NET Framework 1.0提供一个用来重新部署.NET的exe文件:Dotnetfx.exe. 它包含了Common Language Runtime和其它.NET程序运行时必不可少的内容。

我们可以从下面的站点下载该exe文件:

http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/829/msdncompositedoc.xml

同时,我们也可以在VS.NET安装CD或者DVD中找到该文件。

我们可以通过多种方式来通过运行Dotnetfx.exe把.NET Framework部署到目标机器上:

1. 通过Microsoft Systems Management Server部署。

2. 通过Active Directory部署。

3. 使用第三方工具。

具体的信息,我们可以参阅下面的文章:

http://msdn.microsoft.com/library/en-us/dnnetdep/html/redistdeploy.asp

制作自己的native安装程序

如果我们要把自己的.NET程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.NET Framework, 那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.NET Framework, 如果没有,则运行Dotnetfx.exe安装.NET Framework, 然后利用Windows Installer安装自己的程序。

在MSDN的下面网页上,我们可以获得一个使用unmanaged C++实现的安装程序和它的源代码:

http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml

1. 在CSettings class中,通过读取"settings.ini",获得您自己的MSI安装文件和dotnetfx.exe的路径,以及其他您自己的设置。(比如.NET Framework的语言版本)

GetCaptionText(void)

GetDialogText(void)

GetErrorCaptionText(void)

GetIniName(void)

GetProductName(void)

Parse()函数用来解析settings.ini文件。

2. 在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NET Framework. FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。

HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.0

3.如果需要安装.NET Framework, 在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:

dotnetfx.exe /q:a /c:"install /l /q"

4。 在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:

msiexec /i <your MSI file REBOOT=ReallySuppress

使用方法

如果我们使用上面的native代码作为自己的安装程序,那么我们可以通过下面的步骤把自己的.NET程序和它结合在一起:

1.把您自己的.NET程序制作成为Windows Installer (.MSI)文件。

2.打开"settings.ini"文件,在"Msi" key中设置您自己的.NET程序的MSI文件路径和文件名;在"FxInstallerPath" Key中,设置dotnetfx.exe的路径。具体的参数信息,您可以从下面文章中得到:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/redistdeploy.asp

3. 把"setup.exe", "settings.ini", "dotnetfx.exe"和您自己的MSI安装文件,发送到目标机器上,然后运行"setup.exe", 安装程序会自动检测是否有.NET Framwork, 如果没有,将首先运行dotnetfx.exe。

通过上述步骤,您可以将自己的.NET程序成功的部署到没有安装.NET Framwork环境的机器上。

总结

通过上述步骤,您可以将自己的.NET程序成功的部署到没有安装.NET Framwork环境的机器上。

下面是CSDN上的开发指南

结合应用程序使用 Setup.exe 安装引导程序示例

由 Setup.exe 安装引导程序示例执行的操作是自动的。但是,要使 Setup.exe 可以使用应用程序,您必须创建一个自定义 Settings.ini 文件,其中提供应用程序相关的必要信息。此外,建议您部署的安装程序带有自述文件,通过该文件为用户提供安装应用程序和 Dotnetfx.exe 的最低配制要求。以下主题提供了有关创建 Settings.ini 和自述文件的详细信息。

创建 Settings.ini 文件

Setup.exe 安装引导程序示例使用外部文件 Settings.ini 确定以下内容:

Dotnetfx.exe 和宿主应用程序的位置。

要检查的 .NET Framework 的语言版本。

要用于 Setup.exe 对话框的自定义字符串。

Settings.ini 的默认位置与 Setup.exe 在相同文件夹中。您负责创建 Settings.ini 文件,该文件使 Setup.exe 安装引导程序示例可与您的应用程序配合使用。您可以复制随 Setup.exe 安装引导程序示例提供的 Settings.ini 文件,然后根据需要编辑该文件,为应用程序指定正确值。

指定 Dotnetfx.exe 和宿主应用程序的位置

Setup.exe 安装引导程序示例要求 Dotnetfx.exe 和宿主 .NET Framework 应用程序位于相对于 Setup.exe 的已知位置。Setup.exe 安装引导程序示例会使用外部文件 Settings.ini 来确定 Dotnetfx.exe 和宿主应用程序的位置。您可以复制随示例提供的 Settings.ini 文件,然后编辑该文件,以指向 .NET Framework 宿主应用程序和 Dotnetfx.exe 的位置。

以下 Settings.ini 文件示例说明了如何指向各种不同位置(相对于 Setup.exe 的位置而言)的宿主 .NET Framework 应用程序和 Dotnetfx.exe 的 Windows 安装程序包(.msi 文件)。

以下示例 Settings.ini 文件指向与 Setup.exe 位于同一文件夹的 .NET Framework 应用程序 mySetup.msi 和 Dotnetfx.exe 的 Windows 安装程序包。单引号“'”用于注释未自定义的行。

[Bootstrap]

Msi=mySetup.msi

'LanguageDirectory=

ProductName= My Application

'DialogText=

CaptionText=My Application

ErrorCaptionText= My Application Error

FxInstallerPath=c:\myProjectFolder

以下示例 Settings.ini 文件指向与 Setup.exe 不在同一位置、位于网络共享的 .NET Framework 应用程序 mySetup.msi 和 Dotnetfx.exe 的 Windows 安装程序包。

[Bootstrap]

Msi=\\myNetworkShare\myProjectFolder\mySetup.msi

'LanguageDirectory=

ProductName=My Application

'DialogText=

CaptionText=My Application

ErrorCaptionText= My Application Error

FxInstallerPath=\\myNetworkShare\myProjectFolder

以下示例 Settings.ini 文件指向与 Setup.exe 位于同一计算机但不同文件夹的 .NET Framework 应用程序 mySetup.msi 和 Dotnetfx.exe 的 Windows 安装程序包。

[Bootstrap]

Msi=c:\myInstallerFiles\mySetup.msi

'LanguageDirectory=

ProductName= My Application

'DialogText=

CaptionText=My Application

ErrorCaptionText= My Application Error

FxInstallerPath=c:\myExecutables

以下示例 Settings.ini 文件指向与 Setup.exe 位于同一 CD 上不同文件夹的 .NET Framework 应用程序 mySetup.msi 和 Dotnetfx.exe 的 Windows 安装程序包。

[Bootstrap]

Msi=myInstallerFiles/mySetup.msi

'LanguageDirectory=

ProductName= My Application

'DialogText=

CaptionText=My Application

ErrorCaptionText= My Application Error

FxInstallerPath=myExecutables/

指定语言版本

如果您希望 Setup.exe 检查 .NET Framework 的内部版本号和语言版本,必须在 Settings.ini 文件中指定语言的区域性名称。如果没有指定区域性名称,默认情况下 Setup.exe 将检查是否有英语语言版本。

下表列出了可用的语言版本和要在 Settings.ini 文件中指

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有