为.NET部署应用程序添加个卸载程序

简介:

地球人都知道.NET自带的部署程序用起来很方便很简单,但.NET部署程序是没有卸载文件。

下面的方法可以很简单的为你的程序添加1个卸载文件,.NET是利用windows Installer来部署程序的,

所以我们也就可以用windows Installer来卸载程序。

1、先部署程序,记下程序的ProductCode 的值 
(选择解决方案资源管理器根目录如setup,再查看属性标签,不是右键中的属性)
2、建立1个新的winFrom程序
3、删除自动生成的form1。
4、添加个类,写入下面代码
  [STAThread]
  static void Main() 
  {
   if(System.Environment.OSVersion.ToString().IndexOf("NT 5") >= 0)
   {
    Process.Start("msiexec","/uninstall {BDA4996C-6895-4F4C-839C-9AFE22FB8545}");
    //BDA4996C-6895-4F4C-839C-9AFE22FB8545就是第1部的ProductCode
   }
   Application.Exit();
  }
5、再把这个新的卸载程序添加到你的安装包里就行了。

---------------------------
下面是Windows (R) Installer. V 3.0的命令差数(供参考):
msiexec /Option <Required Parameter> [Optional Parameter]

安装选项
 </package | /i> <Product.msi>
  安装或配置产品
 /a <Product.msi>
  管理安装 - 在网络上安装产品
 /j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
  播发产品 - m 播发到所有用户,u 播发到当前用户
 </uninstall | /x> <Product.msi | ProductCode>
  卸载产品
显示选项
 /quiet
  安静模式,无用户交互
 /passive
  无从参与模式 - 只显示进程栏
 /q[n|b|r|f]
  设置用户界面级别
  n - 无用户界面
  b - 基本界面
  r - 精简界面
  f - 完整界面(默认值)
 /help
  帮助信息
重新启动选项
 /norestart
  安装完成后不重新启动
 /promptrestart
  提示用户重新启动(如果必要)
 /forcerestart
  安装后总是重新启动计算机
日志选项
 /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
  i - 状态消息
  w - 非致命警告
  e - 全部错误消息
  a - 操作的启动
  r - 操作特定记录
  u - 用户请求
  c - 初始界面参数
  m - 内存不足或致命退出信息
  o - 磁盘空间不足消息
  p - 终端属性
  v - 详细输出
  x - 额外调试信息
  + - 扩展到现有日志文件
  ! - 每一行刷新到日志
  * - 记录所有信息,除了 v 和 x 选项
 /log <LogFile>
  与 /l* <LogFile> 相同
更新选项
 /update <Update1.msp>[;Update2.msp]
  应用更新
 /uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
  删除产品的更新
修复选项
 /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
  修复产品
  p - 仅当文件丢失时
  o - 如果文件丢失或安装了更旧的版本(默认值)
  e - 如果文件丢失或安装了相同或更旧的版本
  d - 如果文件丢失或安装了不同版本
  c - 如果文件丢失或较验和与计算的值不匹配
  a - 强制重新安装所有文件
  u - 所有必要的用户特定注册表项(默认值)
  m - 所有必要的计算机特定注册表项(默认值)
  s - 所有现有的快键方式(默认值)
  v - 从源运行并缓存本地数据包
设置公共属性
 [PROPERTY=PropertyValue]












本文转自BearRui(AK-47)博客园博客,原文链接: http://www.cnblogs.com/BearsTaR/archive/2006/04/03/365348.html   ,如需转载请自行联系原作者


相关文章
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
467 73
|
人工智能 自动驾驶 机器人
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
|
人工智能
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
1138 13
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
448 5
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
604 2
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
1840 1
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
512 9
|
XML 存储 安全
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
2317 0
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
307 1

热门文章

最新文章