Peut MSBuild déployer à l'aide de l'authentification intégrée ou de base?

Je suis le déploiement d'une application web package à partir de la ligne de commande MSBuild à l'installation de ce sur IIS6 qui fonctionne bien avec la commande suivante à l'aide de l'authentification de base:

MSBuild.exe Web.csproj
  /p:Configuration=Debug
  /p:DeployOnBuild=True
  /p:DeployTarget=MSDeployPublish
  /p:MsDeployServiceUrl=http://[server name]/MsDeployAgentService
  /p:DeployIisAppPath=DeploymentTestProject
  /p:MSDeployPublishMethod=RemoteAgent
  /p:CreatePackageOnPublish=True
  /p:username=***
  /p:password=***

Cependant, ce que je voudrais vraiment faire est de déposer le nom d'utilisateur et le mot de passe des paramètres et revenir à intégré auth sous l'identité de l'utilisateur actuel. Cette commande est d'aller dans un serveur de build et je préfère ne pas avoir le texte en clair des informations d'identification d'un compte avec des droits d'administrateur sur l'environnement cible (nécessaire pour l'installation de ce) visible. Je n'arrive pas à trouver toute la documentation sur la façon de le faire et de déposer les informations d'identification renvoie 401 non autorisé lorsque je tente de le publier.

Ce qui le rend particulièrement frustrant, c'est que je peux heureusement exécuter la commande de déploiement dans le package intégré auth (il suffit de ne pas inclure des informations d'identification), je n'arrive pas à l'exécuter à partir de la ligne de commande MSBuild. Je suis en train d'encapsuler le paquet et déployer les processus en une seule commande, sans avoir à éditer les fichiers de compilation, et c'est la seule chose dans la façon dont les à présent.

Des idées là-bas?

Modifier
Après quelques discussions avec Sayed et en regardant un peu plus profondément dans la ligne de commande de sortie, après l'exécution de la commande MSBuild ci-dessus (sans nom d'utilisateur et le mot de passe des paramètres), les éléments suivants MSDeploy commande est invoquée:

msdeploy.exe
  -source:package='[project path]\Web\obj\Debug\Package\Web.zip' 
  -dest:auto,ComputerName='http://[server]/MsDeployAgentService',UserName='***',IncludeAcls='False',AuthType='NTLM'
  -verb:sync
  -disableLink:AppPoolExtension
  -disableLink:ContentExtension
  -disableLink:CertificateExtension
  -retryAttempts=2

Vous pouvez voir le nom d'utilisateur est l'attribut et la valeur est le nom d'utilisateur de l'utilisateur actuellement connecté. Si je prends ceci et exécutez la commande ci-dessus directement, le déploiement passe par l'amende juste.

Alors, sur cette base, pourquoi est-ce l'original de la commande MSBuild l'insertion d'un attribut du nom d'utilisateur lors de l'appel à MSDeploy? Cela semble être la seule barrière maintenant.

  • Si vous définissez UseMSDeployExe à vrai ne la commande pas inclure AuthType=NTLM???
  • En fait, j'ai défiés lors de la publication à partir de Visual Studio pour une autre machine sur le même domaine. Après avoir entré les informations d'identification que je suis déjà connecté avec le publier passe par l'amende et la sous-jacentes de commande MSBuild NE montrent AuthType='NTLM", mais comprend également mes informations d'identification. Donc, je suis une sorte de retour à la commande d'origine!
  • Pour Visual Studio 2012, vous devez omettre l' /P:propriété UserName entièrement.
InformationsquelleAutor Troy Hunt | 2010-11-17