c# - 通过命令行构建 Visual Studio 项目

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

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

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

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

最佳答案

创建一个名为 .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 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=

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

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

每次都 super 新鲜。如果构建失败,\BuildResults 目录是空的。

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

https://stackoverflow.com/questions/5669765/

相关文章:

c - getopt.h : Compiling Linux C-Code in Windows

visual-studio-2010 - Visual Studio 解决方案文件 - "Build

haskell - 使用 cabal 和 ghc 构建运行时标志

javascript - webpack common chunks 插件 vs webpack d

android - 在 IntelliJ IDEA 中加快 Android 项目构建时间

ios - 创建 CocoaPods 项目的 iOS 模拟器构建

javascript - 如何防止 Visual Studio 2017 构建 JavaScript

c - 如何在 Go 中构建发布版本的二进制文件?

c - 如何链接到 C 中的静态库?

c# - Visual Studio 版本中 'Optimize code' 选项的好处