在NAnt构建脚本中处理密码

Don*_*kby 7 .net passwords nant

有没有办法在NAnt构建期间提示用户输入?我想执行一个获取密码的命令,但我不想将密码放入构建脚本中.

Don*_*kby 8

我现在正在使用脚本,但我很想知道是否已经有预建的方法.非常感谢Sundar的ForegroundColor技巧.

我不确定你是否使用Project.Log或直接转到Console.WriteLine(),任何NAnt忍者都想教育我吗?

这是脚本和使用它的示例目标:

<target name="input">
    <script language="C#" prefix="password" >
        <code><![CDATA[
            [Function("ask")]
            public string AskPassword(string prompt) {
                Project.Log(Level.Info, prompt);
                ConsoleColor oldColor = Console.ForegroundColor;
                Console.ForegroundColor = Console.BackgroundColor;
                try
                {
                    return Console.ReadLine();
                }
                finally
                {
                    Console.ForegroundColor = oldColor;
                }
            }
        ]]></code>
    </script>

    <echo message="Password is ${password::ask('What is the password?')}"/>
</target>
Run Code Online (Sandbox Code Playgroud)


Jon*_*und 6

我多次使用的解决方案是拥有一个本地配置文件,其中包含特定于每个开发人员的密码,连接字符串等内容.NAnt构建脚本将在构建时包含这些设置.

版本控制系统中不存在本地配置文件,因此不会公开密码.开发人员第一次签出代码库并尝试构建时,他必须创建此配置文件.为了方便他,可以使用一个模板文件,例如my.config.template,其中包含可以自定义的所有属性.