使用来自 C# 代码的 msbuild 构建 visual studio 解决方案
Build visual studio solution using msbuild from c# code
我想使用我尝试过的 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);
但是这个会抛出一个错误请帮帮我!!
根据 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);
您之前所做的实际上是尝试 运行 一个名为“C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild 的文件。 exe(space)D:\Sumit\WorkingCopy\Final\Final.sln”,但不存在具有该名称的此类文件。 msbuild.exe 可能存在,但“msbuild.exe D:\Sumit...\Final.sln”不是您要传递的文件名命令文件名。此外,参数字符串为空,因此系统假定您不想将任何参数传递给 "msbuild.exe D:\Sumit...\Final.sln"。但是报错信息是因为两个文件名被混成了一个文件名。
Windows 允许文件名包含嵌入的 spaces,这经常导致处理命令行参数时出现问题。
我想使用我尝试过的 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);
但是这个会抛出一个错误请帮帮我!!
根据 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);
您之前所做的实际上是尝试 运行 一个名为“C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild 的文件。 exe(space)D:\Sumit\WorkingCopy\Final\Final.sln”,但不存在具有该名称的此类文件。 msbuild.exe 可能存在,但“msbuild.exe D:\Sumit...\Final.sln”不是您要传递的文件名命令文件名。此外,参数字符串为空,因此系统假定您不想将任何参数传递给 "msbuild.exe D:\Sumit...\Final.sln"。但是报错信息是因为两个文件名被混成了一个文件名。
Windows 允许文件名包含嵌入的 spaces,这经常导致处理命令行参数时出现问题。