Pourquoi est-ce que j'obtiens l'erreur de construction suivante?
C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t: publish / p: Configuration = Release / 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 =" Total Education TEST "/ p: PublisherName =" BeneSys, Inc. " / p: UpdateRequired = "True" /p:MinimumRequiredVersion=1.0.1.198 Microsoft (R) Build Engine version 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: éducation Pour la syntaxe du commutateur, tapez «MSBuild / help»
Je ne vois pas comment un deuxième projet est spécifié.
Est-il stocké quelque part dans un fichier de projet?
visual-studio
visual-studio-2008
msbuild
Gerhard Weiss
la source
la source
Réponses:
Il s'avère que la barre oblique de fin dans la propriété PublishDir échappe le guillemet de fin. Échapper à la barre oblique finale a résolu mon problème.
De cette façon, nous pouvons utiliser des guillemets pour les chemins contenant des espaces dans les propriétés pour lesquelles MSBuild requiert la barre oblique de fin.
Je sais que c'est un ancien message, mais j'ai l'impression que je devais le partager avec quelqu'un :-)
la source
SOLUTION
Supprimez les devis autour du paramètre / p: PublishDir
c'est-à-dire au
lieu de citations
N'utilisez pas de guillemets
Je suis désolé de ne pas avoir publié ma découverte plus tôt. J'ai en fait dû faire des recherches à nouveau pour voir ce qui devait être changé. Qui aurait pensé que la suppression des citations aurait fonctionné? J'ai découvert cela lors de la visualisation d'une compilation de collègues pour une autre solution et j'ai remarqué qu'elle ne contenait pas de devis.
la source
Sur Git Bash, j'ai dû spécifier les paramètres avec des doubles barres obliques comme:
la source
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 entre guillemets.
Toutes vos propriétés et votre chemin ont des citations autour d'eux, c'est étrange. Le message d'erreur indique
Education
comme interrupteur, essayez de supprimer/p:ProductName="Total Education TEST"
pour voir si cela fonctionne.la source
MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC
. Cela me donne une erreurMSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New
. Quel pourrait être le problème?Default WebSite/New
Vous devez mettre des qoutes autour du chemin et du nom du fichier.
Utilisez donc MSBuild "C: \ Path Name \ File Name.Exe" / [Options]
la source
Essayez de supprimer la barre oblique inverse ou la barre oblique à la fin de votre chemin de publication et de l'URL d'installation
Vous devez avoir frappé une séquence spéciale de caractères avec le \ "et (ou) /", mais je ne sais pas assez dans cmd.exe pour comprendre.
Personnellement, j'utilise toujours Powershell: c'est beaucoup plus convivial et puissant!
J'espère que ça aide!
la source
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 d'auto-explication: "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
"
manquent, donc msbuild recevra en paramètre un répertoire non échappé contenant des espaces, ce qui entraînera plusieurs projets (?!)Donc, n'utilisez JAMAIS d'espaces dans vos noms de définition de build TFS, assez tristes et simples à la fois
la source
J'utilisais des guillemets simples autour du paramètre de mot de passe lorsque j'ai eu l'erreur
/p:password='my secret'
mauvaiset l'a changé pour utiliser des guillemets doubles pour résoudre le problème.
/p:password="my secret"
bienLa même chose s'appliquerait probablement à tout paramètre nécessitant des guillemets pour les valeurs contenant un espace.
la source
Pour moi, j'avais oublié d'ajouter un devis de clôture
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)
à
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"
la source
Pour les futurs lecteurs.
J'ai eu cette erreur car mon fichier LOG spécifié contenait un espace:
AVANT:
APRÈS: (qui l'a résolu)
la source
Encore une autre cause et solution à cela: vérifiez que vous n'avez pas mis un 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-
eto
), 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 également s'appliquer à Windows)la source
Cela a fonctionné pour moi dans TFS MSBuild Argument. Notez le nombre de barres obliques.
/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Visual Studio Projects \ Insurance \"
la source
Si vous utilisez l'espace de travail par défaut dans Jenkins, cela peut se produire. Utilisez l'emplacement de l'espace de travail personnalisé sans espace.
la source
Si vous utilisez la
MSBuild
tâche Azure DevOps , l'erreur peut être causée par un indicateur de configuration doublé. Veuillez vous assurer que vous mettez$(BuildConfiguration)
dans la case spécifiée au lieu d'un argument MSBuild:la source
Si vous utilisez,
Any CPU
vous devrez peut-être le mettre entre guillemets simples.Certes, lors de l'exécution dans un Dockerfile, j'ai dû utiliser des guillemets simples:
la source
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.
la source
J'ai utilisé la solution donnée dans https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html et cela résout le problème. Tout ce que nous devons faire est de vérifier les espaces et '' (vérifier les barres obliques inverses) dans la commande
la source