0

Cake スクリプトからの 32/64 ビット システムの検出に基づいて、レジストリ エントリを作成する必要があります。ファイル操作のリファレンス、ディレクトリ操作のリファレンスはC#のケーキサイトで見ることができます。しかし、C# Cake でレジストリ関連の参照が見つかりませんでした。C# Cake を使用してレジストリ エントリを作成するオプションはありますか? その場合は、参照リンクを指定してください。これは、ケーキのスクリプトを続けるのに大いに役立ちます。

4

2 に答える 2

4

Reg.exeC# を使用する代わりに、Windows のすべてのメジャー バージョンに同梱されている を使用することもできます。

このツールは、StartProcessエイリアスを使用して Cake で使用できます。

これを行う例を以下に示します。

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");
}
于 2016-11-09T08:35:49.423 に答える