Пытаюсь перетащить свою библиотеку на .NET Standard v2 [VS2017]
Вроде все скомпилировалось, но не получается подсунуть тесты под NUnit.
Я так понимаю, что я не понимаю .NET Standard...
По порядку:
1. Поставил ".NET Core cross-platform development" в VS
2. Пересобрал модули
| Проектные файлы выглядят как-то так |
| <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<EnableDefaultItems>false</EnableDefaultItems>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>lcpi_lib_tests</RootNamespace>
<Prefer32Bit>false</Prefer32Bit>
<OutputPath>bin\vs2017_nets2.0_$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\vs2017_nets2.0_$(Configuration)\</IntermediateOutputPath>
<KeyContainerName>lcpi.net.code.keys</KeyContainerName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<AssemblyName>lcpi.lib.ntest.nets2_0.debug</AssemblyName>
<DefineConstants>DEBUG;BUILD_CONF__NETSTANDARD2_0</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<AssemblyName>lcpi.lib.ntest.nets2_0</AssemblyName>
<DefineConstants>BUILD_CONF__NETSTANDARD2_0</DefineConstants>
</PropertyGroup>
....
|
| |
К проекту с NUnit тестами была добавлена ссылка на nunit.framework.dll (2.6.2) — она нормально работала с тестами откомпилированными для FW 4.6.2
3. В выходном каталоге сформировались следующие файлы:
lcpi.lib.nets2_0.debug.dll <---- это библиотека, которую надо протестировать
lcpi.lib.nets2_0.debug.pdb
lcpi.lib.ntest.nets2_0.debug.deps.json
lcpi.lib.ntest.nets2_0.debug.dll <----- Это тесты
lcpi.lib.ntest.nets2_0.debug.pdb
nunit.framework.dll
nunit.framework.xml
4. Запускаю nunit.exe (2.6.2) для сборки с тестами и получаю ошибку
---------------------------
NUnit
---------------------------
Test load failed!
System.IO.FileNotFoundException : Не удалось загрузить файл или сборку "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" либо одну из их зависимостей. Не удается найти указанный файл.
For further information, use the Exception Details menu item.
---------------------------
ОК
---------------------------
Поиск по системному диску выдал такой список:
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.0\build\netstandard2.0\ref\netstandard.dll
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0\netstandard.dll
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\netstandard.dll
C:\Users\Dima\.nuget\packages\runtime.win-x86.microsoft.netcore.app\2.0.0\runtimes\win-x86\lib\netcoreapp2.0\netstandard.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\netstandard.dll
C:\Program Files\dotnet\sdk\2.0.2\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll
C:\Program Files\dotnet\sdk\2.0.2\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\netstandard.dll
Вопрос — что нужно сделать, что nunit.exe смог загрузить мою сборку. То есть, чтобы он нашел эту netstandard.dll?
Спасибо.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --