Comment Faites-Vous Référence à un .NET Standard de la Bibliothèque de la .NET Framework 4.5 Application Console dans Visual Studio 2017?

J'ai enfin installé Visual Studio 2017.2 et essaie d'obtenir mon premier projet de travail, mais je suis quelques difficultés qui, je l'espère, à l'adresse ici.

J'ai une question très simple .NET de la Bibliothèque Standard décrite comme suit le fichier de projet:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard1.6</TargetFramework>
  </PropertyGroup>

</Project>

Et très simple .NET Framework application console qui fait référence à la ci-dessus .NET de la bibliothèque Standard, et est décrite comme suit le fichier de projet:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net45</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\Common\Common.csproj" />
  </ItemGroup>

</Project>

Quand j'ai créer mon application console, j'obtiens l'erreur de génération suivante:

C:\Program Files\dotnet\sdk\1.0.4\NuGet.targets(97,5): error : Project Common is not compatible with net45 (.NETFramework,Version=v4.5). Project Common supports: netstandard1.6 (.NETStandard,Version=v1.6)

J'ai vu cette question et essayé quelques-uns des suggestions fournies, mais aucun d'entre eux travaillaient. Donc, cela semble être un problème différent. Veuillez noter que ceci se produit lors de la construction de ma solution et pas de référencement (explicite) de packages NuGet en aucune façon.

Enfin, si cela peut aider, j'ai une solution qui illustre ce problème ici:
https://github.com/Mike-EEE/Stash/blob/master/VS2017.Multi/VS2017.dotNetFramework.sln

Vous devriez cible .NET 4.6.1 ou au-dessus.
J'ai essayé votre exemple de projet et il semble que les références de projet ne fonctionnent pas encore avec VS 2017.2 avec .Net Standard referenes. Ajouter la bibliothèque comme un fichier normal de référence et d'ajouter à votre Console d'Application de la NETStandard.Bibliothèque de package Nuget, alors cela va fonctionner.
semble ou est de cette façon? C'est certainement semble comme si évidente et primaire scénario qu'il devrait y avoir de code de travail quelque part que le démontre. C'est très surprenant, pour le moins, que rien ne peut être trouvé. En ajoutant directement un fichier de référence pourraient travailler pour une configuration (Debug), mais ce que sur les autres (presse, etc.)? C'est l'avantage d'utiliser une référence de projet. Si vous pouvez trouver un GitHub question qui déclare cela à cause d'un problème connu en tant que tel et de le présenter comme une réponse je vais le marquer. Tout ce que j'ai vu, dit que cela "fonctionne" comme décrit.
Vous pouvez ajouter le chemin de référence $(Configuration).e.g Debug/Release pour obtenir une Configuration agnostique fichier csproj. Mais VS généralement squiggle, car il ne peut pas reconnaître correctement ce un bien que cela fonctionne. Je suis d'accord que .NET de Base de l'Outillage est toujours un gâchis, mais il sera de plus en plus à chaque sortie.
Je suis content de voir que je ne suis pas le seul bamboolzed par ce nouvel outillage. 🙂 Même après la lecture de la matrice de compatibilité plusieurs fois je n'ai toujours pas à comprendre avec précision. Veuillez voir la accepté de répondre par @martin-ullrich.

OriginalL'auteur Mike-EEE | 2017-06-18