我想使用Visual Studio 2010的安装和部署项目创建文件类型。
为此,我按照以下步骤操作:
在解决方案资源管理器中选择“设置和部署项目”
选择文件类型编辑器
右键单击目标计算机上的文件类型并选择添加文件类型
选择文件类型的名称。
转到属性并添加扩展名并省略句点。 I.E而不是.xxx
,仅根据MSDN docs输入xxx
。
选择文件类型的命令。就我而言,我想执行已安装的程序。
从历史上看,我从未使用过安装和部署项目。这意味着我手动使用.reg
个文件来安装文件类型关联。
我注意到所使用的密钥存在显着差异,并希望比较它们并询问发生了什么。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\.scfg]
@="AutoCAD Script Runner"
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner]
@="AutoCAD Script Runner Configuration"
"Version"="1.0.0"
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner\DefaultIcon]
@="\"<path to icon>\\acad_script.ico\""
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner\shell]
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner\shell\open]
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner\shell\open\command]
@="\"<path to exe>\\AutoCAD Script Runner.exe\" \"%1\""
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\.scfg]
@="AutoCAD Script Runner Configuration"
[HKEY_CURRENT_USER\Software\Classes\.scfg\AutoCAD Script Runner Configuration]
[HKEY_CURRENT_USER\Software\Classes\.scfg\AutoCAD Script Runner Configuration\ShellNew]
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner Configuration]
@="AutoCAD Script Runner Configuration"
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner Configuration\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,33,00,39,00,37,00,38,00,46,00,37,\
00,36,00,45,00,2d,00,30,00,36,00,39,00,46,00,2d,00,34,00,46,00,38,00,30,00,\
2d,00,41,00,33,00,34,00,35,00,2d,00,38,00,41,00,30,00,45,00,37,00,35,00,45,\
00,33,00,38,00,37,00,46,00,35,00,7d,00,5c,00,5f,00,38,00,35,00,33,00,46,00,\
36,00,37,00,44,00,35,00,35,00,34,00,46,00,30,00,35,00,34,00,34,00,39,00,34,\
00,33,00,30,00,45,00,37,00,45,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner Configuration\shell]
@="open"
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner Configuration\shell\open]
@="&Open"
[HKEY_CURRENT_USER\Software\Classes\AutoCAD Script Runner Configuration\shell\open\command]
@="\"C:\\Program Files (x86)\\Durr\\AutoCAD Script Runner\\AutoCAD Script Runner.exe\" \"%1\""
"command"=hex(7):40,00,41,00,2a,00,50,00,36,00,48,00,61,00,71,00,56,00,41,00,\
54,00,65,00,36,00,62,00,27,00,54,00,59,00,5e,00,76,00,77,00,3e,00,24,00,52,\
00,4a,00,4e,00,46,00,28,00,59,00,70,00,5d,00,3f,00,68,00,61,00,60,00,34,00,\
2a,00,43,00,40,00,46,00,31,00,21,00,20,00,22,00,25,00,31,00,22,00,00,00,00,\
00
这两个注册表编辑的行为显然都是相同的,但这不是真的;结构和价值都不同!
当我在 RegEdit.exe 中查看这些HEX字符串时,我会按相应的顺序看到以下两个值:
我认为这两个HEX字符串(以及键值结构的差异)是Windows管理应用程序安装所必需的,特别是因为我看到嵌入第一个HEX的产品代码字符串:
{3978F76E-069F-4F80-A345-8A0E75E387F5}
编辑:看来HEX字符串只是使用little-endian字节顺序的 RegEdit.exe 值的Unicode代码点。
这两个注册表编辑(手动与安装项目)之间的真正区别是什么?
为什么结构不同,HEX字符串的含义是什么?
How to: Add and Delete Document Types and Associated File Extensions in the File Types Editor