我正在创建一个应该获取整个.reg文件然后执行它的应用程序。
注册表项是由我创建的,我的安装程序适用于win XP,7和8。
但是,如果我将注册表文件标题更改为Windows Registry Editor Version 5.00
在Windows XP上执行失败。每当我将操作系统和标题更改为另一个版本时,就会发生此错误。
我的reg文件如下所示:
Windows Registry Editor Version 5.00 //- here is my problem
[HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\myApp]
"DisplayName"="myApp"
[HKEY_LOCAL_MACHINE\SOFTWARE\MyApp2\myFile]
"Directory"="C:\\myFile"
我对仅在没有Registry.CurrentUser.CreateSubKey
或类似情况下执行的.reg文件感兴趣。
这是标准行为还是我遗失了什么?
有没有办法从C#代码中检索Windows注册表编辑器版本?
我正在使用上面示例中的Windows 7。 任何帮助将不胜感激。
答案 0 :(得分:1)
首先,.reg文件应具有以下语法:
RegistryEditorVersion
Blank line
[RegistryPath1]
"DataItemName1"="DataType1:DataValue1"
DataItemName2"="DataType2:DataValue2"
Blank line
[RegistryPath2]
"DataItemName3"="DataType3:DataValue3"
Blank line
在Windows 2000及更高版本中,该文件以" Windows注册表编辑器版本5.00"开头。 (因此该行不应该造成麻烦),而早期版本以" REGEDIT4"开始。
因此,请确保您拥有正确的.reg文件格式(空行!),并在阅读时尝试使用 System.Text.Encoding.Unicode 编码文件。