VS2010设置&部署 - 创建文件类型(注册表设置)

时间:2015-09-30 15:43:00

标签: c# .net visual-studio registry setup-deployment

我想使用Visual Studio 2010的安装和部署项目创建文件类型。

为此,我按照以下步骤操作:

  1. 在解决方案资源管理器中选择“设置和部署项目”

    Select Project

  2. 选择文件类型编辑器

    File Types Editor

  3. 右键单击目标计算机上的文件类型并选择添加文件类型

    Add File Type

  4. 选择文件类型的名称。

    Create Name

  5. 转到属性并添加扩展名并省略句点。 I.E而不是.xxx,仅根据MSDN docs输入xxx

    Choose File Extensions

  6. 选择文件类型的命令。就我而言,我想执行已安装的程序。

    Select Command

  7. 最后,通过参考项目中已添加的图标,选择文件类型的图标。
  8. 从历史上看,我从未使用过安装和部署项目。这意味着我手动使用.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\""
    

    设置&amp;部署注册表编辑

    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字符串时,我会按相应的顺序看到以下两个值:

    • %APPDATA%\微软\ {安装3978F76E-069F-4F80-A345-8A0E75E387F5} _853F67D554F05449430E7E.exe,0
    • @ A * P6HaqVATe6b'TY ^ vw&gt; $ RJNF(是的)?ha`4 * C @ F1!“%1”

    我认为这两个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

0 个答案:

没有答案