我想使用我尝试过的msbuid从其他c#代码构建我的解决方案文件
var msbuild_path = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe";
var solution_path = @"D:\Sumit\WorkingCopy\Final\Final.sln";
Process.Start(msbuild_path + " " + solution_path);
但是这个会抛出错误请帮帮我!!
答案 0 :(得分:1)
根据https://msdn.microsoft.com/en-us/library/h6ak8zt5(v=vs.110).aspx,Process.Start方法有两个参数:
public static Process Start(string fileName, string arguments)
因此,您应该将代码更改为
Process.Start(msbuild_path, solution_path);
之前您正在尝试运行名为&#34的文件; C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe(空间 )D:\ Sumit \ WorkingCopy \ Final \ Final.sln ",但不存在具有该名称的此类文件。 msbuild.exe可能存在,但" msbuild.exe D:\ Sumit ... \ Final.sln "不是您要作为命令文件名传递的文件名。此外,参数字符串为空,因此系统假定您不想将任何参数传递给" msbuild.exe D:\ Sumit ... \ Final.sln"。但错误消息是因为两个文件名被混合成一个文件名。
Windows允许文件名包含嵌入空格,这常常会导致处理命令行参数时出现问题。