通过命令行构建Visual Studio项目

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

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

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

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

创建一个名为:Manual_MSBuild_ReleaseVersion.bat的.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

有关详细信息,请参见如何:使用MSBuild创建Web包

你可以更进一步:

 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目录的日期时间是您最后一次构建(或尝试构建)解决方案/项目。 微妙但有时有帮助。

也许用这个命令:

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

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

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

对于.NET 4.5版本,没有相应的构建目录

%WINDIR%\ Microsoft.NET \框架\

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

要解决这个问题,您需要安装最新的MS Build Tools (2015年版)并使用MSBuild.exe

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

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