J'exécute un site Web ASP.NET à partir d'une installation de Windows Server 2008 et j'aime modifier les pages via la ligne de commande depuis que je ssh dans le serveur.
J'ai installé Vim sur le serveur pour pouvoir éditer facilement les fichiers. Si je modifie des pages HTML et CSS et .aspx, les mises à jour réussissent. Mais si je veux éditer le code source, je devrai reconstruire le projet. La reconstruction du projet recompile tout bien et met à jour la copie sur le Web. Il s'agit d'un serveur de développement, donc les mises à jour de tout vont bien puisque personne ne voit ce serveur.
Comment puis-je générer le projet via la ligne de commande pour mettre à jour le code source et créer sur le serveur?
Le projet est écrit en C # et les fichiers sont tous dans le dossier wwwroot
donc aucun déplacement de fichier ne doit se produire après une construction.
Créez un fichier .bat appelé: Manual_MSBuild_ReleaseVersion.bat
Mettez-le dans le fichier .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=
Vous pouvez créer un fichier .sln ou un fichier .csproj. MySolution.sln ou MyProject.csproj
Voir Comment: utiliser MSBuild pour créer un package Web pour plus d'informations.
Vous pouvez aller plus loin:
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\
De cette façon, vous supprimez un répertoire (juste pour vous assurer d'obtenir une version super propre), le créez, créez la solution/projet, puis copiez les résultats de la génération dans le nouveau répertoire.
Super frais, à chaque fois. Et si la build explose, le répertoire\BuildResults est vide.
Et un petit indicateur subtil, la date/heure du répertoire\BuildResults est la dernière fois que vous avez construit (ou essayé de construire) la solution/projet. Subtil, mais parfois utile.
Peut-être avec cette commande:
>> devenv myproject.sln /Build "Release|x86"
Vous pouvez trouver devenv dans le chemin d'accès "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe".
J'ai utilisé une modification de la réponse de @granadaCoder ci-dessus.
Pour .NET version 4.5 et ultérieures, il n'y a pas de répertoire de build correspondant dans
% WINDIR%\Microsoft.NET\Framework \
et l'utilisation de MSBuild pour un cadre plus ancien ne vous permettra pas de compiler de nouvelles constructions comme des chaînes interpolées.
Pour contourner ce problème, vous devez installer la dernière MS Build Tools
(2015 actuellement) et utilisez MSBuild.exe
dans
% programfiles (x86)%\MSBuild\14.0\Bin
Installez le SDK .NET et utilisez l'outil de ligne de commande MsBuild.exe. C'est ce que Visual Studio utilise lorsque vous créez un projet ou une solution.