Pourquoi ai-je l'erreur de construction suivante?
C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Code\EduBenesysNET\EduBenesysNET\EduBenesysNET.vbproj/t: publier/p: Configuration = Publication/p: Platform = AnyCPU/v: détaillé/p: PublishDir = "\\ BSIIS3\c $\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest \" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/ "/p:ApplicationVersion=1.0.1.198/p: ProductName =" TEST d'éducation totale "/ p: PublisherName =" BeneSys, Inc. "/p: UpdateRequired = "True" /p:MinimumRequiredVersion=1.0.1.198 Microsoft (R) Version du moteur de compilation 3.5.30729.1 [Microsoft .NET Framework, Version 2.0.50727.3603] Copyright (C) Microsoft Corporation 2007. Tous droits réservés . MSBUILD: erreur MSB1008: un seul projet peut être spécifié . Commutateur: Education Pour la syntaxe du commutateur, tapez "MSBuild /help".____. .
Je ne vois pas comment un deuxième projet est spécifié.
Est-il stocké dans un fichier de projet quelque part?
SOLUTION
Supprimez les guillemets autour du paramètre/p: PublishDir
c'est à dire.
Au lieu de guillemets
/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\"
Ne pas utiliser de guillemets
/p:PublishDir=\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\
Je suis désolé de ne pas avoir posté ma découverte plus tôt. En fait, j'ai dû faire des recherches pour voir ce qui devait être changé. Qui aurait pensé que supprimer les guillemets aurait fonctionné? J'ai découvert cela en consultant une génération de collègues pour une autre solution et j'ai constaté qu'il ne contenait pas de guillemets.
Il se trouve que la barre oblique de fin dans la propriété PublishDir échappe à la citation finale. Échapper à la barre oblique finale a résolu mon problème.
/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\\"
De cette façon, nous pouvons utiliser des guillemets pour les chemins comportant des espaces dans les propriétés pour lesquelles MSBuild requiert le slash de fin.
Je sais que c'est un ancien post, mais je sens que je devais le partager avec quelqu'un :-)
Ce problème apparaît lorsque vous avez un chemin d'accès ou une propriété contenant un espace et qui n'est pas cité.
Toutes vos propriétés et chemins ont des guillemets autour d'eux, c'est étrange. Le message d'erreur indique Education
en tant que commutateur, essayez de supprimer /p:ProductName="Total Education TEST"
pour voir si cela fonctionne.
Sur Git Bash, je devais spécifier les paramètres avec des doubles barres obliques comme:
MSBuild.exe "Path\to\Solution.sln" //p:Platform="x86" //p:Configuration=Release //p:AppxBundlePlatforms="x86"
Vous devez mettre qoutes autour du chemin et du nom du fichier.
Utilisez donc MSBuild "C:\Nom du chemin\Nom du fichier .Exe"/[Options]
Essayez de supprimer la barre oblique inverse ou la barre oblique à la fin du chemin de publication et installez l’URL.
/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest"
/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest"
Vous devez avoir tapé une séquence spéciale de caractères avec\"et (ou) /", mais je ne connais pas assez de cmd.exe pour comprendre.
Personnellement, j'utilise toujours Powershell: c'est beaucoup plus convivial et puissant!
J'espère que ça aide!
J'utilisais des guillemets simples autour du paramètre de mot de passe quand j'ai eu l'erreur
/p:password='my secret'
mauvais
et l'a modifié pour utiliser des guillemets doubles pour résoudre le problème.
/p:password="my secret"
bon
Il en va probablement de même pour tout paramètre nécessitant des guillemets pour les valeurs contenant un espace.
Dans vs2012, essayez simplement de créer une définition de construction "Test Build" en utilisant le modèle TFS par défaut "DefaultTemplate .... xaml" (généralement une copie de celui-ci).
Il échouera avec l'erreur habituelle habituelle: "MSBUILD: erreur MSB1008: un seul projet peut être spécifié. Commutateur: activités"
Bien sûr, quelque part dans le modèle TFS par défaut, certains "
sont manquants. Msbuild recevra en paramètre un répertoire non protégé contenant des espaces, ce qui entraînera plusieurs projets (?!)
Donc, n'utilisez JAMAIS d'espaces dans vos noms de définitions de construction TFS, à la fois tristes et simples
Encore une autre cause et solution à cela: Vérifiez que vous n’avez pas placé d’espace au mauvais endroit, c’est-à-dire dans les paramètres; le mien était dotnet -c Release - o /home/some/path
(notez l'espace entre -
et o
), j'ai continué à regarder le chemin lui-même, qui était correct et m'a jeté. J'espère que cela pourra aider! (c'était dans Bash mais cela devrait aussi s'appliquer à Windows)
Cela a fonctionné pour moi dans TFS MSBuild Argument. Notez le nombre de barres obliques.
/ p: DefaultPackageOutputDir = "\\ Rdevnet\Projets Visual Studio\Assurance \"
Pour les futurs lecteurs.
J'ai eu cette erreur parce que mon fichier LOG spécifié contenait un espace:
AVANT:
/l:FileLogger,Microsoft.Build.Engine;logfile=c:\Folder With Spaces\My_Log.log
APRÈS: (qui l'a résolu)
/l:FileLogger,Microsoft.Build.Engine;logfile="c:\Folder With Spaces\My_Log.log"
Juste au cas où quelqu'un aurait le même problème que moi, il me manquait "/" avant l'un des arguments "/ p". Pas très clair d'après la description. J'espère que ça aidera quelqu'un.