Utiliser MSBuild.exe pour «publier» un projet ASP.NET MVC 4 avec la ligne de commande

Je cherche une commande à exécuter sur le MSBuild.exe qui prend juste un projet MVC 4 et le publie dans un répertoire donné.

Par exemple,

 MSBuild /.csproj -publish -output=c:/folder 

Ceci est évidemment une syntaxe incorrecte. J’essaie de simplifier ma question.

Cette question parle d’un XML de construction, mais je n’essaie pas de faire quoi que ce soit avec autant de détails.

J’essaie simplement de faire un déploiement.

Plus loin dans cette question , quelqu’un parle de “MSDeploy”. Je peux regarder ça, mais est-ce la seule option? Je n’ai pas la possibilité d’installer le déploiement Web sur le serveur. Dans ce cas, il ne me rest plus qu’à “Publier” et à envoyer le contenu du projet publié dans un répertoire donné du serveur / système de fichiers.

Est-ce que quelqu’un peut utiliser un seul paquebot?

Dois-je utiliser MSDeploy?

MSDeploy nécessite-t-il un déploiement Web pour être installé sur le serveur?

La configuration du déploiement Web sur le serveur ne nécessite-t-elle pas la configuration de certains ports, permissions et installation de modules complémentaires IIS?

J’aimerais juste exécuter quelque chose de simple.

Dans VS 2012 (ainsi que les mises à jour de publication disponibles dans Azure SDK for VS 2010), nous avons simplifié la publication par ligne de commande pour les projets Web. Nous l’avons fait en utilisant Publish Profiles.

Dans VS pour un projet Web, vous pouvez créer un profil de publication à l’aide de la boîte de dialog Publier. Lorsque vous créez ce profil, il est automatiquement stocké dans votre projet sous Propriétés \ PublishProfiles. Vous pouvez utiliser le profil créé pour publier depuis la ligne de commande avec une ligne de commande les éléments suivants.

 msbuild mysln.sln /p:DeployOnBuild=true /p:PublishProfile= 

Si vous souhaitez stocker le profil de publication (fichier .pubxml) dans un autre emplacement, vous pouvez transmettre le chemin d’access au profil Publish.

Les profils de publication sont des fichiers MSBuild. Si vous avez besoin de personnaliser le processus de publication, vous pouvez le faire directement dans le fichier .pubxml.

Si votre objective final est de transmettre des propriétés à partir de la ligne de commande. Je recommanderais ce qui suit Créez un exemple de profil de publication dans VS. Inspectez ce profil de publication pour déterminer les propriétés MSBuild à transmettre sur la ligne de commande. FYI toutes les méthodes de publication ne prennent pas en charge la publication par ligne de commande (c.-à-d. FTP / FPSE).

Si vous construisez le fichier .csproj / .vbproj au lieu du fichier .sln et que vous utilisez VS 2012, vous devez également passer /p:VisualStudioVersion=11.0 . Pour plus de détails, consultez http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx .

Créez un fichier build.xml qui ressemble à celui-ci

Démarrer l’invite de commandes Visual Studio

Exécutez msbuild build.xml

    $(MSBuildProjectDirectory)\Build MyProject.csproj MyProjectNameInVisualStudio $(MSBuildProjectDirectory)\CopyTo        

Avec les projets Web que vous devez créer, comme indiqué ci-dessus, vous devez également créer un package / copier. Nous utilisons une copie de fichier plutôt que la “publication” …

Aussi; nous utilisons DEBUG / RELEASE pour construire le site web; mais alors les environnements réels, à savoir “QA” ou “PROD” pour gérer les transformations web.config.

Donc, nous le construisons initialement avec RELEASE, puis le compilons avec QA – dans l’exemple ci-dessous.

   XXX.Website XXX.Website XXX QA  $(MSBuildThisFileDirectory).. $(SolutionDir)\bin\ mywebserver.com            

Alors;

  1. Configurez vos propriétés
  2. Appelez la cible BuildPackage
  3. Appelez la cible CopyOutput Et voilà!

La commande ci-dessous fonctionne parfaitement:

 msbuild Myproject.sln /t:Rebuild /p:outdir="c:\outproject\\" /p:Configuration=Release /p:Platform="Any CPU"