Comment utiliser MsBuild MsDeployPublish pour cibler le système de fichiers local?

je suis en train de reproduire le Visual Studio 2010 "Publier..."commande (applicable aux projets D'Application Web) où je choisirais dans L'UI publier la méthode: "système de fichiers".

c'est ma tentative...

%msbuild%/t: MsDeployPublish / property: MsDeployServiceUrl= "file: / / / d:MyDeploymentFolder"; MsDeployPublishMethod=" File System "" d:MySourceFolderProject.csproj"

... et avoir essayé une méthode de "système de fichiers", "Système de Fichiers", "Local", et quelques autres.

L'erreur que J'obtiens implique que MsDeploy essaye toujours de pousser vers un serveur IIS:

"D:MySourceFolderProject.csproj" (MsDeployPub
lish target) (1) ->
(MSDeployPublish target) ->
  C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web
.Publishing.targets(3847,5): error : Web deployment task failed.(The metabase k
ey '/lm/w3svc' could not be found.) [D:MySourceFolderProject.csproj]
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.P
ublishing.targets(3847,5): error : r [D:MySourceFolderProject.csproj]
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.P
ublishing.targets(3847,5): error : The metabase key '/lm/w3svc' could not be fo
und.r [D:MySourceFolderProject.csproj]
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.P
ublishing.targets(3847,5): error : Unable to access the IIS configuration syste
m. Please make sure you have IIS 7 (or later) installed.r [D:MySourceFolderProject.csproj]
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.P
ublishing.targets(3847,5): error : Retrieving the COM class factory for compone
nt with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} failed due to the followin
g error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REG
DB_E_CLASSNOTREG)). [D:MySourceFolderProject.csproj]

Comment puis-je cibler le système de fichiers pour le déploiement, comme Visual Studio me laisse normalement dans l'interface graphique?

30
demandé sur DuckMaestro 2012-02-07 04:19:21

3 réponses

selon ma réponse de en utilisant MSBuild, Comment puis-je construire une solution MVC4 à partir de la ligne de commande (application Web.les transformations de configuration dans le processus) et la sortie vers un dossier?

msbuild ProjectFile.csproj /p:Configuration=Release ^
                           /p:Platform=AnyCPU ^
                           /t:WebPublish ^
                           /p:WebPublishMethod=FileSystem ^
                           /p:DeleteExistingFiles=True ^
                           /p:publishUrl=c:\output

ou si vous construisez le fichier solution:

msbuild Solution.sln /p:Configuration=Release ^ 
                     /p:DeployOnBuild=True ^
                     /p:DeployDefaultTarget=WebPublish ^
                     /p:WebPublishMethod=FileSystem ^
                     /p:DeleteExistingFiles=True ^
                     /p:publishUrl=c:\output
99
répondu Richard Szalay 2017-05-23 12:18:17

j'ai renoncé à essayer de faire copier des fichiers Web déployables par MSBuild (et je ne fais rien d'autre que cela), donc je l'ai scripté dans PowerShell et je suis vraiment content du résultat. Beaucoup plus vite que tout ce que J'ai essayé avec MSBuild. Voici l'essentiel ( littéralement ):

function copy-deployable-web-files($proj_path, $deploy_dir) {
  # copy files where Build Action = "Content" 
  $proj_dir = split-path -parent $proj_path
  [xml]$xml = get-content $proj_path
  $xml.Project.ItemGroup | % { $_.Content } | % { $_.Include } | ? { $_ } | % {
    $from = "$proj_dir$_"
    $to = split-path -parent "$deploy_dir$_"
    if (!(test-path $to)) { md $to }
    cp $from $to
  }

  # copy everything in bin
  cp "$proj_dir\bin" $deploy_dir -recurse
}
2
répondu Todd Menier 2014-05-14 19:44:24

Je ne pense pas que vous soyez assez précis avec ce que vous dites msbuild.

a tiré ceci d'un de mes signets sur le sujet, si tout va bien il aidera: http://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild

0
répondu Jesse 2012-02-07 15:42:36