2017-10-06 1 views
1

J'ai un projet de framework .NET avec un profil de publication utilisant un mot de passe crypté. J'ai donc 2 fichiers de publication: .pubxml et .pubxml.user (celui-ci contient le mot de passe crypté).Passer un mot de passe crypté à msbuild

Cependant, si je lance msbuild comme ceci:

msbuild <project>.csproj /p:DeployOnBuild /p:PublishProfile=<file>.pubxml 

Je reçois une erreur d'authentification 401.

Est-il possible de transmettre le mot de passe crypté, ou d'indiquer à msbuild d'utiliser le fichier .pubxml.user?

+0

Une mise à jour de ce problème? Avez-vous résolu ce problème? Si ce n'est pas le cas, faites-moi savoir le dernier état de ce problème. –

+0

Non, malheureusement je pense que ta réponse était correcte, donc je passe le mot de passe directement à la commande – KeL666

Répondre

0

Est-il possible de transmettre le mot de passe chiffré, ou d'indiquer à msbuild d'utiliser le fichier .pubxml.user?

Il est impossible de transmettre le mot de passe chiffré par la ligne de commande MSBuild. Comme vous l'avez dit, le fichier .pubxml.user contient le mot de passe sous forme cryptée. MSBuild ne peut pas accéder à ce fichier lors du déploiement par la ligne de commande MSBuild. En outre, aussi conscient que je sache, le mot de passe crypté est utilisé pour par compte et par machine. Ainsi, lorsque vous déployez votre projet sur une machine ou un compte différent, le mot de passe chiffré ne sera pas valide lorsque vous déploierez votre projet sur un autre ordinateur ou compte.

Nous avons donc besoin de passer le nom réel et mot de passe avec la ligne de commande MSBuild;

msbuild <path-to-project-file> /p:DeployOnBuild=true /p:PublishProfile=<Publish Profile> /p:Username=<ACTUAL_USERNAME> /p:Password=<ACTUAL_PASSWORD> 

Voir la Sayed`s answer et this document pour plus d'information de détail.

Espérons que cela aide.