У меня есть проект библиотеки пакетов NuGet, который компилируется для. NET Core и. NET Framework. Он также использует новую publi c подпись .
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Build">
<TargetFrameworks>netstandard2.0;net472</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Label="Signing">
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>../../Key.snk</AssemblyOriginatorKeyFile>
<PublicSign>true</PublicSign>
</PropertyGroup>
</Project>
У меня есть тестовый проект xUnit, использующий также кросс-компиляцию для. NET Core и. NET Framework.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Build">
<TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks>
</PropertyGroup>
<ItemGroup Label="Package References">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\Source\Foo\Foo.csproj" />
</ItemGroup>
</Project>
Когда я запускаю тесты в этом проекте, тестовый прогон. NET Core проходит успешно, но тестовый прогон. NET Framework завершается неудачно с:
System.IO.FileLoadException: не удалось загрузить файл или сборку 'Foo, версия = 0.0.1.0, Culture = нейтральный, PublicKeyToken = fc5550082a9c642 c' или одна из его зависимостей. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или была подписана с задержкой, но подписана не полностью с правильным закрытым ключом. (Исключение из HRESULT: 0x80131045)
Как мне заставить их обоих работать?