Merge pull request #24766 from jtattermusch/fix-RIDs-for-csharp-core-package

Make RIDs for the native dependencies in Grpc.Core arch specific
pull/24775/head
Jan Tattermusch 4 years ago committed by GitHub
commit 9767905909
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      src/csharp/Grpc.Core.NativeDebug/Grpc.Core.NativeDebug.csproj
  2. 8
      src/csharp/Grpc.Core/Grpc.Core.csproj
  3. 11
      src/csharp/Grpc.Core/Internal/NativeExtension.cs
  4. 8
      src/csharp/Grpc.Core/build/net45/Grpc.Core.targets

@ -19,19 +19,19 @@
<ItemGroup>
<None Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.dll">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x86.dll</PackagePath>
<PackagePath>runtimes/win-x86/native/grpc_csharp_ext.x86.dll</PackagePath>
<Pack>true</Pack>
</None>
<None Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.pdb">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x86.pdb</PackagePath>
<PackagePath>runtimes/win-x86/native/grpc_csharp_ext.x86.pdb</PackagePath>
<Pack>true</Pack>
</None>
<None Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.dll">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x64.dll</PackagePath>
<PackagePath>runtimes/win-x64/native/grpc_csharp_ext.x64.dll</PackagePath>
<Pack>true</Pack>
</None>
<None Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.pdb">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x64.pdb</PackagePath>
<PackagePath>runtimes/win-x64/native/grpc_csharp_ext.x64.pdb</PackagePath>
<Pack>true</Pack>
</None>
</ItemGroup>

@ -29,19 +29,19 @@
<ItemGroup>
<EmbeddedResource Include="..\..\..\etc\roots.pem" />
<Content Include="..\nativelibs\csharp_ext_macos_x64\libgrpc_csharp_ext.dylib">
<PackagePath>runtimes/osx/native/libgrpc_csharp_ext.x64.dylib</PackagePath>
<PackagePath>runtimes/osx-x64/native/libgrpc_csharp_ext.x64.dylib</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\nativelibs\csharp_ext_linux_x64\libgrpc_csharp_ext.so">
<PackagePath>runtimes/linux/native/libgrpc_csharp_ext.x64.so</PackagePath>
<PackagePath>runtimes/linux-x64/native/libgrpc_csharp_ext.x64.so</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.dll">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x64.dll</PackagePath>
<PackagePath>runtimes/win-x64/native/grpc_csharp_ext.x64.dll</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.dll">
<PackagePath>runtimes/win/native/grpc_csharp_ext.x86.dll</PackagePath>
<PackagePath>runtimes/win-x86/native/grpc_csharp_ext.x86.dll</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="build\net45\Grpc.Core.targets">

@ -95,7 +95,7 @@ namespace Grpc.Core.Internal
// With dotnet cli project targeting netcoreappX.Y, projects will use Grpc.Core assembly directly in the location where it got restored
// by nuget. We locate the native libraries based on known structure of Grpc.Core nuget package.
// When "dotnet publish" is used, the runtimes directory is copied next to the published assemblies.
string runtimesDirectory = string.Format("runtimes/{0}/native", GetPlatformString());
string runtimesDirectory = string.Format("runtimes/{0}/native", GetRuntimeIdString());
var netCorePublishedAppStylePath = Path.Combine(assemblyDirectory, runtimesDirectory, GetNativeLibraryFilename());
var netCoreAppStylePath = Path.Combine(assemblyDirectory, "../..", runtimesDirectory, GetNativeLibraryFilename());
@ -180,19 +180,20 @@ namespace Grpc.Core.Internal
}
#endif
private static string GetPlatformString()
private static string GetRuntimeIdString()
{
string architecture = GetArchitectureString();
if (PlatformApis.IsWindows)
{
return "win";
return string.Format("win-{0}", architecture);
}
if (PlatformApis.IsLinux)
{
return "linux";
return string.Format("linux-{0}", architecture);
}
if (PlatformApis.IsMacOSX)
{
return "osx";
return string.Format("osx-{0}", architecture);
}
throw new InvalidOperationException("Unsupported platform.");
}

@ -10,22 +10,22 @@
the Grpc.Core.dll assembly and the native libraries are used at all times.
-->
<ItemGroup Condition="'$(Grpc_SkipNativeLibsCopy)' != 'true'">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win\native\grpc_csharp_ext.x86.dll">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-x86\native\grpc_csharp_ext.x86.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>grpc_csharp_ext.x86.dll</Link>
<Visible>false</Visible>
</Content>
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win\native\grpc_csharp_ext.x64.dll">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-x64\native\grpc_csharp_ext.x64.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>grpc_csharp_ext.x64.dll</Link>
<Visible>false</Visible>
</Content>
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\linux\native\libgrpc_csharp_ext.x64.so">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\linux-x64\native\libgrpc_csharp_ext.x64.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libgrpc_csharp_ext.x64.so</Link>
<Visible>false</Visible>
</Content>
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx\native\libgrpc_csharp_ext.x64.dylib">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx-x64\native\libgrpc_csharp_ext.x64.dylib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libgrpc_csharp_ext.x64.dylib</Link>
<Visible>false</Visible>

Loading…
Cancel
Save