.NET Core RuntimeIdentifier vs TargetFramework

Kann sich das jemand erklären der Zweck dieser zwei csproj-Datei (VS2017):

<TargetFramework>netstandard1.6</TargetFramework>
<RuntimeIdentifier>win7</RuntimeIdentifier>

Ich nur migriert von VS2015 und kann nun nicht mehr mit der Veröffentlichung meines web-api, weil es aussieht sollte ich verwenden nur ein Ziel-framework. Außerdem kann ich nicht angeben, mehrere Befreit.
Alle diese veränderten Dinge machen mich frustriert. Nichts funktioniert von Grund auf, überwinden sollte etwas über und über.

Ich möchte nur die Entwicklung meiner web-api auf windows laufen xUnit-tests hier und dann deploy-web-api auf linux laufen (ubuntu) server.
Was sollte ich in beiden Parametern im csproj ?
Links mit guten Erklärungen sehr geschätzt.

Update1

Habe ich die web-api verwiesen .net-core-Bibliotheken. Alles, wo migriert von VS2015. Jetzt im root-Projekt, an dem ich
<TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>. Wenn ich veröffentlichen über VS2017 ich erhielt den Fehler:

C:\Program
Dateien\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\buildCrossTargeting\Microsoft.NET.Sdk.Ziele(31,5):
Fehler : Die 'Veröffentlichen' - Ziel wird nicht unterstützt, ohne Angabe einer
Ziel-framework. Das aktuelle Projekt zielt auf mehrere frameworks,
bitte geben Sie den Rahmen für die veröffentlichte Anwendung.

Aber ich habe die angegebene Ziel-framework in der publizieren-als netcoreapp1.1.
OK. Dann habe ich aktualisiert meine csproj mit <PropertyGroup Condition="$(TargetFramework)'=='netcoreapp1.1'">
<RuntimeIdentifier>ubuntu.16.10-x64</RuntimeIdentifier>
</PropertyGroup>
wie unten vorgeschlagen.
Aber jetzt habe ich noch nicht bauen-app, die Fehlermeldung:

5>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Ziele(92,5):
Fehler : Die Datei '\obj\Projekt.Vermögenswerte.json' nicht
haben Sie ein Ziel für '.NETCoreApp,Version=v1.1/ubuntu.16.10-x64'. Sicher
Sie haben wieder dieses Projekt für die TargetFramework='netcoreapp1.1' und
RuntimeIdentifier='ubuntu.16.10-x64'.

Ich will nur entwickeln, mit VS2017 bei windows 8.1/windows7 und bereitstellen von ubuntu 16.10.
Was mache ich falsch ?

Update2

Habe ich 8 Projekte in Lösung. 3 von Ihnen sind xUnit-tests. Somit haben wir 5 Projekte. 4 dieser 5 sind Klassenbibliotheken und 1 ist meine web-app.
Alle 4 Klassen-Bibliotheken haben diese:

<TargetFrameworks>netstandard1.6;net461</TargetFrameworks>    
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
</ItemGroup>

Meine web-app:

<TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

So veröffentlichen Sie meine web-app ?

InformationsquelleAutor Alezis | 2017-04-20

Schreibe einen Kommentar