Cake Build:从cmd文件中收集环境变量

时间:2018-05-01 11:14:47

标签: cakebuild

我想用msbuild运行一个项目。 msbuild文件包含对环境变量的引用。

有一个cmd文件可以设置这些环境变量。我之前需要从我的Cake脚本中调用它。

如果我在启动编译器之前使用StartProcess来调用此cmd文件,那么它将无效,因为Cake不会收集环境变量。

如何以正确的方式调用cmd文件?

批处理文件的内容:

<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.2.3/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="cust_image" class="form-control" />
<canvas id="can" height="600" width="600"></canvas>

1 个答案:

答案 0 :(得分:-1)

StartProcess Alias有一个重载,它接受一个ProcessSettings对象,它包含一个EnvironmentVariables属性,它只是一个字符串和字符串的通用字典。这允许您构造需要传递给要启动的进程的任何环境变量。一个例子如下:

StartProcess("cmd", new ProcessSettings{
    Arguments = "/c set",
    EnvironmentVariables = new Dictionary<string, string>{
        { "CI", "True" },
        { "TEMP", MakeAbsolute(Directory("./Temp")).FullPath }
    }
});

同样的技术也可以用来直接调用MSBuild,而不是使用批处理文件,因为MSBuildSettings对象具有相同的属性。