我们都知道.Net 的csc.exe文件可以对.cs文件编译,那么我们怎么对项目和解决方案进行编译呢?
msbuild命令,
使用方法如:在NET命令行中输入msbuild *.sln或者msbuild *.csproj,回车即可
例如:
MSBuild 路径\webapp.sln /t:Rebuild /p:Configuration=Release
MSBuild 路径\webapp.csproj /t:Clean /p:Configuration=Debug
参考:http://msdn.microsoft.com/zh-cn/library/ms171451(v=VS.80).aspx
Microsoft (R) Build Engine Version 2.0.50727.3053 [Microsoft .NET Framework, Version 2.0.50727.3053] Copyright (C) Microsoft Corporation 2005. All rights reserved. Syntax: MSBuild.exe [options] [project file] Description: Builds the specified targets in the project file. If a project file is not specified, MSBuild searches the current working directory for a file that has a file extension that ends in "proj" and uses that file. Switches: /help Display this usage message. (Short form: /? or /h) /nologo Do not display the startup banner and copyright message. /version Display version information only. (Short form: /ver) @<file> Insert command-line settings from a text file. To specify multiple response files, specify each response file separately. /noautoresponse Do not auto-include the MSBuild.rsp file. (Short form: /noautorsp) /target:<targets> Build these targets in this project. Use a semicolon or a comma to separate multiple targets, or specify each target separately. (Short form: /t) Example: /target:Resources;Compile /property:<n>=<v> Set or override these project-level properties. <n> is the property name, and <v> is the property value. Use a semicolon or a comma to separate multiple properties, or specify each property separately. (Short form: /p) Example: /property:WarningLevel=2;OutDir=bin\Debug\ /logger:<logger> Use this logger to log events from MSBuild. To specify multiple loggers, specify each logger separately. The <logger> syntax is: [<logger class>,]<logger assembly>[;<logger parameters>] The <logger class> syntax is: [<partial or full namespace>.]<logger class name> The <logger assembly> syntax is: {<assembly name>[,<strong name>] | <assembly file>} The <logger parameters> are optional, and are passed to the logger exactly as you typed them. (Short form: /l) Examples: /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML /verbosity:<level> Display this amount of information in the event log. The available verbosity levels are: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. (Short form: /v) Example: /verbosity:quiet /consoleloggerparameters:<parameters> Parameters to console logger. (Short form: /clp) The available parameters are: PerformanceSummary--show time spent in tasks, targets and projects. NoSummary--don't show error and warning summary at the end. NoItemAndPropertyList--don't show list of items and properties at the start of each project build. Example: /consoleloggerparameters:PerformanceSummary;NoSummary /noconsolelogger Disable the default console logger and do not log events to the console. (Short form: /noconlog) /validate Validate the project against the default schema. (Short form: /val) /validate:<schema> Validate the project against the specified schema. (Short form: /val) Example: /validate:MyExtendedBuildSchema.xsd
如果要写工具来自己编译,与编译相关的命名空间:
using Microsoft.Build.Framework;
using Microsoft.Build.BuildEngine;
using Microsoft.Build.Utilities;