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

时间:2015-01-13 07:11:08

标签: c# batch-file build command-prompt devenv

我想从命令行构建一个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);

1 个答案:

答案 0 :(得分:2)

创建一个批处理文件来调用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代替,显然会更好 - 我知道这不会立即为你服务,但是值得研究为什么而不是放弃它。)