我正在从Windows Server 2008安装运行ASP.NET网站,我喜欢通过命令行编辑页面,因为我将ssh插入服务器。
我在服务器上安装了Vim,以便我可以轻松编辑文件。如果我编辑HTML和CSS以及.aspx页面,则更新成功。但如果我想编辑源代码,我将不得不重建项目。重建项目可以很好地重新编译所有内容并更新Web上的副本。这是一个开发服务器,所以一切都很好,因为没有人看到这个服务器。
如何通过命令行构建项目以更新源代码并在服务器上构建?
项目是用C#编写的,文件都在wwwroot
文件夹中,因此构建后不需要移动文件。
答案 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在构建项目或解决方案时使用的。