一起谈.NET技术,.NET 打包入门

简介:   1、在这个安装包制作的过程中,所用到的一些图片或者文件,如:快捷键图片,安装步骤中每个图形界面的背景图片等都要事先在[应用程序文件夹]中事先添加好这些图片,即在安装项目中添加这些图片,文件好像是解决方案下debug下的所有文件都拷贝,如exe、config、rpt还有图片等  2、安装包中的那个Install里面的方法的执行时间是在:所以的文件都安装好了后再执行其中的号码。

  1、在这个安装包制作的过程中,所用到的一些图片或者文件,如:快捷键图片,安装步骤中每个图形界面的背景图片等都要事先在[应用程序文件夹]中事先添加好这些图片,即在安装项目中添加这些图片,文件好像是解决方案下debug下的所有文件都拷贝,如exe、config、rpt还有图片等

  2、安装包中的那个Install里面的方法的执行时间是在:所以的文件都安装好了后再执行其中的号码。如客户端安装是在配置文件已经装好了后,但是其中的配置节还没有信息,但是在代码中赋值之后就有了,还有服务器也一样,如数据库也一样,首先是拷贝到客户端电脑上,然后再执行install中的代码,。获取硬盘上的数据库文件,然后再在数据库中创建,并且引用到这个数据库文件

  第一、给安装项目添加必要的文件,貌似是应用程序debug文件夹下的所有文件,还有是安装系统要用的图片文件

  第二、添加系统必备:安装项目右键->属性->选择系统必备,必选上[数据访问组件]、[.net 2.0]、[windows installer 3.1]。如果应用程序中有rpt的报表就要加上报表引擎, 其中【指定系统必备组件的安装位置】要选择第二个,【从与我的应用程序相同的位置下载系统必备组件】

  第三、添加卸载程序,打开系统目录C:\WINDOWS\system32找到文件msiexec.exe,复制到刚创建的安装项目文件系统视图的应用程序文件夹中。

  第四、创建【用户的'程序'菜单(包括安装和卸载)】
      首先创建一个文件夹,然后在文件夹里创建下面两个,因为这个文件夹就是在开始菜单->程序->该文件夹->安装和卸载
      1、创建卸载快捷键(先选择程序,然后配属性):选择【用户的'程序'菜单】->在中间空白地方右键【创建快捷键】->选择msiexec.exe->右键快捷键选择属性->修改Name和ICON->配置Arguments属性。 配置Arguments属性的方法是:单击安装项目,是左键单击,然后找到ProductCode,复制下来,然后Arguments=/x ProductCode(这里注意有个空格)。
      2、创建安装快捷键(也是先选择程序,然后配属性):选择【用户的'程序'菜单】->在中间空白地方右键【创建快捷键】->选择[应用程序的exe文件]->右键快捷键选择属性->修改Name和ICON,且安装不需要 配Arguments属性
      3、在【用户桌面】中重复第2步的操作  

  第五、添加用户操作界面
      右键安装项目->视图->用户界面:安装的过程无非就是:启动->进度->结束
      给启动添加一个【文本框A】,并且将它上移到安装文件夹的上面(安装程序运行的时候就是按着上面的顺序运行的)->右键这个【文本框A】,填写其中的值

  第六、添加自定义操作
      为安装解决方案添加一个类库项目,删除Class1.cs。为类库项目添加一个【安装程序类】->Installer1

  第七、完成将我们自定义的安装类接入到安装过程:  
      1、将我们新建的类库作为主输出添加到安装项目中,选择【应用程序文件夹】,在中间空白部分右键选择【添加项目输出】将设置新建的类库作为主输出
      2、打开安装项目的“自定义操作视图”然后在相应(安装、卸载和回滚等)的节点上“右键”添加自定义操作《选择主输出》。右键选择【CustomActionData】
         /PassWord=[PASSWORD] /UserName=[USERNAME] /Server=[SERVER] /TargetDir="[TARGETDIR]\"
         (注:/targetdir="[TARGETDIR]\"传递安装目录的路径、[PASSWORD]等这些是我们在用户界面上设置的文本框的属性)

  第八、再次完善新建的类库,给其中添加方法
      1、重写安装函数public override void Install(System.Collections.IDictionary stateSaver)
      2、重写卸载函数public override void Uninstall(IDictionary savedState)
      3、重写安装完成后函数 protected override void OnAfterInstall(IDictionary savedState)

  附加

  如果我们想在程序卸载的时候保留某些文件则需要配置这些文件的属性如下即可:即:Permanent为true。在安装的的过程中,在应用程序(不是安装解决方案)有些图片文件或者rpt文件也要放在安装后的文件夹中那么就这样设置将应用程序中的这些文件的一个属性【复制到输出目录】属性为:
     ”如果较新则复制”或者“始终复制”,同时在安装项目中添加winfrom项目的“内容文件输出”则在安装包生成过程中自动复制文件到安装包中。

附加2、卸载方法二:(推荐)
1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性
标签,不是右键中的属性),下面要用到
2.用VS.net建立一个新的控制台程序uninst.exe文件

 
  
' power by: landlordh
'
for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf( " NT 5 " ) Then
myProcess.Start(
" msiexec " , " /X{2B65D4A9-C146-4808-AB4B-321FB077955
9 } " ) '改为自己的ProductCode
End If
myProcess.Close()
End Sub
End Module

3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷
方式

附加3、可以再安装类库项目中再建立一个winform窗体程序,然后在安装类中调用,因为我们在安装项目中添加了一个文本框A其实目的就是更改config文件,那么这里再建立一个winform项目的话也可以实现同样的效果,而且还可以进行更好看的界面

安装包的版本升级,每次升级一定要设置Vesion这个属性和ProductCode这个属性,同时也要设置卸载图标的那个属性,否则当再次安装的时候会提示你到控制面板中删除,然后每次升级的时候版本号要比上个版本号要高,否则的话会提示你不能安装,这种情况只能手动卸载掉电脑上的应用程序然后再进行安装

<感谢斌斌资料的总结>

目录
相关文章
|
14天前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
14天前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
1月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
33 3
|
2月前
|
自然语言处理 物联网 图形学
.NET 技术凭借其独特的优势和特性,为开发者们提供了一种高效、可靠且富有创造力的开发体验
本文深入探讨了.NET技术的独特优势及其在多个领域的应用,包括企业级应用、Web应用、桌面应用、移动应用和游戏开发。通过强大的工具集、高效的代码管理、跨平台支持及稳定的性能,.NET为开发者提供了高效、可靠的开发体验,并面对技术更新和竞争压力,不断创新发展。
91 7
|
2月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
41 5
|
2月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
49 4
|
2月前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
39 4
|
2月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
67 5
|
2月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
46 3
|
2月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
44 3