如何使用C#蛋糕制作注册表项?

问题描述:

我需要基于从Cake脚本中查找32/64位系统来创建注册表项。我可以在C#cake site中看到文件操作参考,目录操作参考。但我找不到C#蛋糕中的注册表相关参考。任何人都可以请让我知道是否有任何选项使用C#蛋糕做注册表项?如果是这样,请指定参考链接。这将帮助我继续在蛋糕脚本。如何使用C#蛋糕制作注册表项?

目前,没有用于处理注册表的Cake别名。话虽如此,没有什么可以阻止您直接使用标准C#类型操作注册表。

的一个这样的方法的一个例子是在这里:

Writing to registry in a C# application

蛋糕提供的东西都是比较复杂的事情,但是,请记住,几乎一切,是在一个别名提供了大量的别名可能直接用C#在你的主脚本中完成。别名只是作为一种方便而已。

使用C#的替代方案您也可以使用所有主要版本的Windows附带的Reg.exe

您可以在Cake中使用此工具,使用StartProcess别名。

下面这样做的一个例子:

DirectoryPath system32Path = Context.Environment 
            .GetSpecialPath(SpecialPath.Windows) 
            .Combine("System32"); 
FilePath  regPath   = system32Path.CombineWithFilePath("reg.exe"); 
string   keyName   = "HKEY_CURRENT_USER\\Software\\Cake"; 
string   valueName  = "Rocks"; 
string   valueData  = "1"; 
ProcessSettings regSettings  = new ProcessSettings() 
            .WithArguments(
             arguments => arguments 
              .Append("add") 
              .AppendQuoted(keyName) 
              .Append("/f") 
              .AppendSwitchQuoted("/v", valueName) 
              .AppendSwitchQuoted("/t", "REG_DWORD") 
              .AppendSwitchQuoted("/d", valueData) 
             ); 

int result = StartProcess(regPath, regSettings); 

if (result == 0) 
{ 
    Information("Registry value successfully set"); 
} 
else 
{ 
    Information("Failed to set registry value"); 
}