如何在VS2013的开发人员命令提示符中打开和运行devenv build命令

本文关键字:运行 devenv 命令 build 命令提示符 VS2013 开发 | 更新日期: 2023-09-27 18:37:14

我想从命令行构建一个VS 2013项目。

手动打开"VS2013开发者命令提示符"后,将目录改为项目目录并插入以下命令

devenv myproject.csproj /build

项目已成功构建。

问题是我想从 C# 函数执行此操作。我尝试了很多方法,但没有一个成功。

手动执行此操作时,我从快捷方式启动命令提示符。快捷方式实际上运行一个设置环境的.bat文件,以便您可以从命令提示符运行devenv等命令。这是我正在运行的代码

string runDevEnv = @"C:'Program Files (x86)'Microsoft Visual Studio 12.0'Common7'IDE>devenv.com ";
string projectPath = @"C:'Users'Administrator'Documents'Visual Studio 2013'Projects'CodedUITestProject2'CodedUITestProject2'CodedUITestProject2.csproj" ;
string makeString = "'"";
string slashc = "/c ";
string makebuild = " /build";
string compileProject = slashc + runDevEnv + makeString + projectPath + makeString + makebuild;
System.Diagnostics.Process.Start("CMD.exe", compileProject);

如何在VS2013的开发人员命令提示符中打开和运行devenv  build命令

创建一个批处理文件来调用 devenv 可能更容易(如果你真的需要的话),但除此之外,我怀疑这只是你如何引用的问题 - 而且你在通往devenv.exe的道路上有一个>。尝试:

string devEnv = @"C:'Program Files (x86)'Microsoft Visual Studio 12.0'Common7'IDE'devenv.exe";
string projectPath = @"C:'Users'Administrator'Documents'Visual Studio 2013'Projects'CodedUITestProject2'CodedUITestProject2'CodedUITestProject2.csproj" ;
string compileProject = string.Format("/c '"{0}'" '"{1}'" /build",
    devEnv, projectPath);
Process.Start("CMD.exe", compileProject);

(如注释中所述,您可能希望使用devenv.com而不是devenv.exe,以防止Visual Studio本身启动。如果你可以使用msbuild代替,那显然会更好 - 我知道这不会立即对你有用,但值得调查为什么而不是放弃它。