我想从命令行构建一个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);
答案 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
代替,显然会更好 - 我知道这不会立即为你服务,但是值得研究为什么而不是放弃它。)