Может кто-то объяснить цель этих двух в файле csproj (VS2017):
<TargetFramework>netstandard1.6</TargetFramework>
<RuntimeIdentifier>win7</RuntimeIdentifier>
Я просто перешел из VS2015 и теперь не могу опубликовать свой веб-api, потому что, похоже, я должен использовать только одну целевую структуру. Кроме того, я не могу указать несколько RID. Все эти измененные вещи меня расстраивают. Ничто не работает с нуля, нужно что-то преодолевать снова и снова.
Я просто хочу разработать свой веб-api на windows, запустить тесты xUnit, а затем развернуть web-api для запуска на сервере linux (ubuntu). Что мне следует включить в оба параметра в csproj? Ссылки с хорошим объяснением высоко ценятся.
Update1
У меня есть веб-api с указанными основными библиотеками.net. Все, что перенесено из VS2015. Теперь в корневом проекте у меня есть <TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>
. Когда я публикую через VS2017, я получил ошибку:
C:\Program Files\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\buildCrossTargeting\Microsoft.NET.Sdk.targets(31,5): ошибка: цель "Опубликовать" не поддерживается без указания целевой структуры. Текущий проект рассчитан на несколько рамок, пожалуйста, укажите рамки для опубликованного приложения.
Но я указал целевую структуру в публикации как netcoreapp1.1
. ХОРОШО. Затем я обновил свой csproj с помощью <PropertyGroup Condition="$(TargetFramework)'=='netcoreapp1.1'"> <RuntimeIdentifier>ubuntu.16.10-x64</RuntimeIdentifier> </PropertyGroup>
как предлагается ниже. Но теперь я даже не могу создать приложение, получить ошибку:
5> C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(92,5): ошибка: файл активов '\ obj\project.assets.json 'не имеет цели для'.NETCoreApp, Version = v1.1/ubuntu.16.10-x64 '. Убедитесь, что вы восстановили этот проект для TargetFramework = 'netcoreapp1.1' и RuntimeIdentifier = 'ubuntu.16.10-x64'.
Я просто хочу разработать с VS2017 в Windows 8.1/Windows 7 и развернуть на ubuntu 16.10. Что я делаю неправильно?
Update2
У меня есть 8 проектов в решении. 3 из них - тесты xUnit. Таким образом, у нас есть 5 проектов. 4 из этих 5 являются библиотеками классов, а 1 - моим веб-приложением. Все 4 библиотеки классов имеют следующее:
<TargetFrameworks>netstandard1.6;net461</TargetFrameworks>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
Мое веб-приложение:
<TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
Как опубликовать мое веб-приложение?