web-dev-qa-db-fra.com

msbuild -p: outputdir = c: \ mydir étant ignoré

J'exécute msbuild à partir de la ligne de commande avec les éléments suivants:

msbuild mysolution.sln -p:outputdir=c:\mydir

Lorsque j'exécute cela, le répertoire de sortie est ignoré et la valeur par défaut spécifiée dans le fichier csproj est utilisée.

Le document MSDN pour cet outil dit que je devrais pouvoir remplacer le répertoire de construction en utilisant ce paramètre. Qu'est-ce que je fais mal?

41
Mike

Vous devez utiliser OutputPath et plus important, vous devez utiliser la bonne syntaxe:

msbuild mysolution.sln /p:OutputPath=c:\mydir
93
Julien Hoarau

Notez que OutputPath est préférable à OutDir. La documentation était erronée à ce sujet, mais je vois qu'ils l'ont finalement corrigée.

Au-delà de cela, il est difficile de dire exactement quel est le problème, car vous n'avez pas montré le chemin exact que vous passez en tant que paramètre. Il y a deux problèmes possibles que je peux imaginer:

  1. L'option OutputPath spécifie le chemin d'accès au répertoire de sortie par rapport au répertoire du projet. Cela signifie que vous ne pouvez pas le définir sur un chemin global comme C:\mydir. Je suppose qu'il ne parvient pas à trouver le chemin que vous avez spécifié, et qu'il est par défaut celui spécifié dans votre fichier de projet.

  2. Si le chemin que vous spécifiez en tant que paramètre contient espaces, la commande est susceptible d'échouer. Je crois que vous devez encapsuler le chemin entre guillemets et ajouter une barre oblique inverse supplémentaire à la fin de la chaîne de chemin d'accès.

8
Cody Gray

Je pense que vous devriez utiliser OutputPath.

2
Steve

J'ai pu configurer OutDir pour la ligne de commande MSBuild. Veuillez voir ma réponse sur le lien ci-dessous avec la commande. Voir ma réponse https://stackoverflow.com/a/26477048/1006422

1
Jerome Anthony