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?
Vous devez utiliser OutputPath
et plus important, vous devez utiliser la bonne syntaxe:
msbuild mysolution.sln /p:OutputPath=c:\mydir
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:
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.
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.
Je pense que vous devriez utiliser OutputPath.
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