【发布时间】:2020-05-10 09:13:19
【问题描述】:
我想用DevelopersCommandPrompt中设置的环境变量调用诸如msbuild/dumpbin之类的命令。
我没有使用 C# 的经验,也找不到实现此目的的干净方法。我想到的是,首先运行 Process DevelopersCommandPrompt 并读取 set 命令输出以检索所有进程环境变量,然后调用新进程,但这次使用检索到的环境变量字典。
但事实证明我什至无法让set 命令结果工作。
class Program
{
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo {
FileName = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\Tools\\VsDevCmd.bat",
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
CreateNoWindow = true
};
Process devCmd = new Process();
devCmd.StartInfo = startInfo;
devCmd.Start();
devCmd.StandardInput.WriteLine("set");
devCmd.StandardInput.Flush();
devCmd.StandardInput.Close();
devCmd.WaitForExit();
Console.WriteLine(devCmd.StandardOutput.ReadToEnd());
}
}
我相信我做错了什么(当我将 set 更改为 dir 时它也不起作用)。不幸的是,我不知道我错过了什么:)
此外,如果有人有从 C# 运行 Microsoft 工具集的更智能/更清洁的解决方案,那么我很想听听。 :)
谢谢
【问题讨论】:
-
VSC 有一个批处理文件来设置它。
标签: c# visual-studio cmd process