.Net用命令行编译项目

我们都知道.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=binDebug

  /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:LoggersMyLogger.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;

 

原文地址:https://www.cnblogs.com/yongtaiyu/p/3256961.html