windows 软件在 “安装”的过程中做了什么事情?

windows 软件在 “安装”的过程中做了什么事情?
最近在学习c# wpf。生成软件是可以直接执行的。那那些需要安装的软件,安装的过程是在做什么呢?什么场景下 软件需要 “安装” 的过程。

阅读 3.9k
2 个回答

没有标准,安装程序本身也是个程序,这个程序能干啥要看写程序的人让它干了啥。

但大体上会有一些相似的地方。

  1. 最基本的就是解压缩或拷贝自身需要的文件到安装路径下,这一步可能会从网络上下载需要的依赖。
  2. 再然后是如果有某些特殊的动态链接库可能会释放到相应路径下(通常为 C:\Windows\System32\),并向系统注册。
  3. 再然后是编译构建(适用于那些源代码安装的程序)。
  4. 再然后如果有注册表要写入的话就去写注册表。比如你要想在控制面板的应用程序管理里能出现,那你就需要向 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
    HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 这几个地方写注册表。或者有一些程序本身运行时需要的信息,也可以写在注册表里。
  5. 再然后是初始化程序,生成某些默认的配置信息或运行文件夹之类的。比如很多游戏在安装后都会生成一个存档目录、并根据扫描到的硬件设备生成一个推荐的游戏画面配置信息。
  6. 最后就是创建桌面快捷方式和开始菜单目录了。

P.S.1 其实 Windows 下安装程序也是有标准格式的,即 MSI,可因为 Windows 过于“开放”的缘故,除了微软自家的某些玩意儿外很少有第三方弄个 .msi 安装程序出来。

P.S.2 .NET 也有自己的标准安装部署方式,叫 ClickOne。

一般意义上的安装其实主要做如下工作:

  1. 是复制文件(包含直接复制或者提取复制,甚至是临时编译输出结果)
  2. 是改写配置(需要时可选)
  3. 注册信息(可选)
  4. 建立快捷访问方式(菜单项、快捷链接等)

这里除了第1个是必选的外,其它其实都是可选的。这里的2改写配置其实有和3有时是关联的,因为有些配置是写到注册信息中的,主要看程序如何管理配置。此外这里改写配置还有2层含义,第一是程序本身涉及的配置信息改写,第二层是系统关联性配置改写,比如改写系统中对某种文件默认打开方式等。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏