最近在写一个用于下载射手字幕的媒体中心插件 ShooterMCE, 在编写安装脚本的时候遇到了一些麻烦.
Windows 7 媒体中心的插件一般是基于 .Net Framework 2.o 的, 如果想要 Windows 7 媒体中心调用你写的插件, 需要先将其注册到全局程序集缓存 GAC (Global Assembly Cache) 中. 简单来说, 就是要能在 C:\Windows\assembly 文件夹中看到你的 .Net 程序集. 当然, 这不是简单的将其复制到文件夹中就行的.
查阅了一下相关资料, 常见的有以下几种方式:
- 全局程序集缓存工具 (Gacutil.exe) : 这个工具用法是最简单的, 注册用 “gacutil 程序集文件名” 这种命令格式, 而注销用 “gacutil /u 程序集名称” 这种命令格式就行了. 不过这个小工具在系统中默认是不存在的, 需要另外安装 .Net Framewok SDK 开发包. 即便将其单独提取出来, 运行的时候也很容易遇到问题.
- 使用 InnoSetup 打包安装 : 使用 InnoSetup 安装程序集组件倒是挺简单的, 使用类似以下格式的代码即可. 只是 InnoSetup 做的安装程序开销太大, 即便最简单的脚本编译出来的安装程序也要接近 1M 了. 而我常用的 NSIS 的开销也就几十 K 的样子.
1 2
[Files] Source: log4net.dll; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete gacinstall; StrongAssemblyName: log4net
- 使用 Windows Installer 打包安装 : 好吧, 我承认, Windows Installer 功能强大, 开销也小, 可是我不会也没什么兴趣研究 WiX 安装脚本.
- 使用 Assembly Cache Viewer (Shfusion.dll) : 也就是用资源管理器打开 C:\Windows\assembly 文件夹, 然后将你的程序集复制进去即可实现安装. 在程序集上点击右键选择 “卸载” 即可实现卸载.
[1 / 1]1

