web-dev-qa-db-fra.com

Définir un <OutputPath> personnalisé dans .NET Core (arrêter d'ajouter la cible du framework)?

Dans les applications .NET traditionnelles, il était possible de définir un <OutputPath> Personnalisé d'un assembly dans le fichier .csproj (Ou via la boîte de dialogue des propriétés du projet). Un chemin de par exemple bin\$(Configuration)\$(Platform) a généré bin\Debug\AnyCPU.

J'avais l'habitude de définir ces valeurs indépendamment de la configuration de construction actuelle (dans son propre ItemGroup, avec DocumentationFile, etc.).

Lorsque j'installe ma configuration dans le nouveau noyau .NET .csproj Comme ceci ...

<OutputPath>bin\$(Configuration)\$(Platform)</OutputPath>
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>

..la structure de dossiers suivante est créée:

bin\
  Debug\
    AnyCPU\
      MyAssembly.xml
      netstandard1.0\
        MyAssembly.exe

Il semble donc msbuild, ou tout ce qui ajoute automatiquement le TargetFramework, ce qui est plutôt ennuyeux.

Existe-t-il un moyen de vraiment personnaliser le chemin de sortie ou de désactiver ce comportement?

23
maelgrove

Vous pouvez désactiver ce comportement en définissant:

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

Ce comportement provient du Microsoft.NET.Sdk (voir sa source )

52
Martin Ullrich