您的位置:首页 > 产品设计 > UI/UE

C# 使用msbuild编译程序

2015-11-30 20:28 435 查看
1.使用msbuild命令编译程序方法:打开CMD,输入msbuild /p:outputpath=d:/temp project.csproj使用/p:outputpath=d:/temp更改生成文件存放的目录。2.将 .sln文件转换为 .csproj文件:打开Visual Studio command prompt(例如vs studio tools 下的 VS2012 x64本机本机工具命令提示),输入 CD /D yourpath切换 到工作目录。输入如下命令:
set MSBuildEmitSolution=1
msbuild  project.sln

最终生成project.sln.metaproj文件和project.sln.metaproj.tmp文件。

生成过程中可能出现错误,例如制动的解决方案配置“debug | x64无效,可根据提示更该命令为

msbuild  project.sln  /p:configuration=debug  /p:platform="Any CPU"
即可。

3.代码中使用msbuild:

在csproj文件中写入<UserTask  TaskName="yourTask"  AsseblyFile="your Task.dll path"/>新建MSBuildTask,继承自Microsoft.Build.Utilities.Task

重写Execute函数
代码大概是这样的:
public class MsBuildTask:Task
{
public override bool Execute()
{
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "cl.exe";
proc.Start();

proc.StandardInput.WriteLine(YourArgs + "&exit");
proc.StandardInput.AutoFlush = true;
proc.WaitForExit();

return true;
}
4.代码中调用 .bat文件:
var process = new Process())
process.StartInfo.FileName = batPath;
process.StartInfo.CreateNoWindow = false;
process.Start();
process.WaitForExit();

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: