通过命令行构建Visual Studio项目

时间:2011-04-14 21:13:24

标签: c# build windows-server-2008 command cmd

我正在从Windows Server 2008安装运行ASP.NET网站,我喜欢通过命令行编辑页面,因为我将ssh插入服务器。

我在服务器上安装了Vim,以便我可以轻松编辑文件。如果我编辑HTML和CSS以及.aspx页面,则更新成功。但如果我想编辑源代码,我将不得不重建项目。重建项目可以很好地重新编译所有内容并更新Web上的副本。这是一个开发服务器,所以一切都很好,因为没有人看到这个服务器。

如何通过命令行构建项目以更新源代码并在服务器上构建?

项目是用C#编写的,文件都在wwwroot文件夹中,因此构建后不需要移动文件。

4 个答案:

答案 0 :(得分:39)

创建一个名为的.bat文件: Manual_MSBuild_ReleaseVersion.bat

将它放在.bat文件中。

REM you'll have to find the "latest" version of where msbuild.exe resides on your machine.. here are some popular versions/locations
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
REM set msBuildDir=C:\Program Files (x86)\MSBuild\12.0\Bin
set msBuildDir=C:\Program Files (x86)\MSBuild\14.0\Bin

call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

您可以构建.sln文件或.csproj文件。 MySolution.sln或MyProject.csproj

有关详细信息,请参阅 How to: Use MSBuild to Create a Web Package

你可以更进一步:

rd .\BuildResults /S /Q
md .\BuildResults
rd .\MyProject\Bin\Release  /S /Q

REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

XCOPY .\MyProject\Bin\Release\*.* .\BuildResults\

这样,你删除一个目录(只是为了确保你得到一个超级干净的构建),创建它,构建解决方案/项目,然后将构建的结果复制到新目录。

每次都超级新鲜。如果构建爆炸,\ BuildResults目录为空。

一个微妙的小指标,\ BuildResults目录的日期时间是您最后一次构建(或尝试构建)解决方案/项目。微妙,但有时很有用。

答案 1 :(得分:9)

也许使用此命令:

  >> devenv myproject.sln /Build "Release|x86"

您可以在“C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe”路径中找到devenv。

答案 2 :(得分:8)

我上面用@granadaCoder修改了答案。

对于.NET 4.5及更高版本,

中没有相应的构建目录
  

%WINDIR%\ Microsoft.NET \框架\

并且使用MSBuild用于较旧的框架将不允许您编译更新的构造,如插值字符串。

要解决此问题,您需要安装最新的MS Build Tools(目前为2015年),并在

中使用MSBuild.exe
  

%PROGRAMFILES(x86)的%\的MSBuild \ 14.0 \滨

答案 3 :(得分:2)

安装.NET SDK并使用MsBuild.exe命令行工具。这是Visual Studio在构建项目或解决方案时使用的。