51 votes

Comment définir le `OutputPath` dans un projet Visual Studio 2017 (nouveau format de fichier .csproj) sans que le framework cible n'encombre le chemin résolu ?

Réglage de OutputPath dans le nouveau format de projet Visual Studio 2017 ajoute automatiquement le framework cible dans le chemin d'accès. Par exemple, si j'ai ces paramètres dans le fichier du projet :

<TargetFramework>net462</TargetFramework>
<OutputPath>/build/debug/<OutputPath>

Le dossier de sortie réel se résoudra en /build/debug/net462/ pas /build/debug/ comme dans les anciennes versions. Comment puis-je résoudre ce problème sans avoir à déplacer les choses avec des actions post-construction ?

0 votes

J'espère bien qu'il n'y a pas d'heuristique qui essaie de décider ce que j'aimerais obtenir. Mais dans mon cas, il s'agit simplement du bon vieux .net 4.6.2, comme l'indique le targetframework dans mon exemple. edit : ceci est une réponse à une question que je ne vois plus.

0 votes

Je ne sais pas si ça peut aider, mais essayez de remplacer les paramètres de sortie comme ceci : <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'> <BaseOutputPath>/build/debug/</BaseOutputPath> <OutputPath>$(BaseOutputPath)/</OutputPath>

0 votes

BaseOutputPath définit la base du chemin de sortie pour différentes configurations, donc cela n'aide pas dans ce cas (je l'ai testé pour m'en assurer). Merci quand même pour la suggestion !

65voto

aksu Points 739

La solution consiste à utiliser AppendTargetFrameworkToOutputPath https://www.tabsoverspaces.com/233608-stopping-msbuild-appending-targetframework-to-outputpath/

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

11 votes

Pour supprimer l'identifiant d'exécution : <AppendTargetFrameworkToOutputPath>false</AppendTargetFramew‌​orkToOutputPath> <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIde‌​ntifierToOutputPath>

1 votes

C'est bien à Microsoft de (1) ne pas donner un nom au "nouveau format .csproj", (2) faire en sorte que l'IDE VS crée un code qui ne fonctionne pas, et (3) ne pas documenter la vraie solution. Dommage, car la solution elle-même est bonne.

1 votes

Aujourd'hui, il existe une note mentionnant ces deux paramètres de configuration dans le document docs.microsoft.com/fr/us/visualstudio/ide/

34voto

Jon Points 360

La réponse ci-dessus est correcte, mais vous pouvez également supprimer l'identifiant d'exécution :

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X