Make RIDs for the native dependencies in Grpc.Core arch specific

pull/24766/head
Erwin de Haan 5 years ago committed by Jan Tattermusch
parent 014a2a0d54
commit 6dbdedd9a0
  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> <ItemGroup>
<None Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.dll"> <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> <Pack>true</Pack>
</None> </None>
<None Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.pdb"> <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> <Pack>true</Pack>
</None> </None>
<None Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.dll"> <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> <Pack>true</Pack>
</None> </None>
<None Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.pdb"> <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> <Pack>true</Pack>
</None> </None>
</ItemGroup> </ItemGroup>

@ -29,19 +29,19 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="..\..\..\etc\roots.pem" /> <EmbeddedResource Include="..\..\..\etc\roots.pem" />
<Content Include="..\nativelibs\csharp_ext_macos_x64\libgrpc_csharp_ext.dylib"> <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> <Pack>true</Pack>
</Content> </Content>
<Content Include="..\nativelibs\csharp_ext_linux_x64\libgrpc_csharp_ext.so"> <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> <Pack>true</Pack>
</Content> </Content>
<Content Include="..\nativelibs\csharp_ext_windows_x64\grpc_csharp_ext.dll"> <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> <Pack>true</Pack>
</Content> </Content>
<Content Include="..\nativelibs\csharp_ext_windows_x86\grpc_csharp_ext.dll"> <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> <Pack>true</Pack>
</Content> </Content>
<Content Include="build\net45\Grpc.Core.targets"> <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 // 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. // 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. // 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 netCorePublishedAppStylePath = Path.Combine(assemblyDirectory, runtimesDirectory, GetNativeLibraryFilename());
var netCoreAppStylePath = Path.Combine(assemblyDirectory, "../..", runtimesDirectory, GetNativeLibraryFilename()); var netCoreAppStylePath = Path.Combine(assemblyDirectory, "../..", runtimesDirectory, GetNativeLibraryFilename());
@ -180,19 +180,20 @@ namespace Grpc.Core.Internal
} }
#endif #endif
private static string GetPlatformString() private static string GetRuntimeIdString()
{ {
string architecture = GetArchitectureString();
if (PlatformApis.IsWindows) if (PlatformApis.IsWindows)
{ {
return "win"; return string.Format("win-{0}", architecture);
} }
if (PlatformApis.IsLinux) if (PlatformApis.IsLinux)
{ {
return "linux"; return string.Format("linux-{0}", architecture);
} }
if (PlatformApis.IsMacOSX) if (PlatformApis.IsMacOSX)
{ {
return "osx"; return string.Format("osx-{0}", architecture);
} }
throw new InvalidOperationException("Unsupported platform."); throw new InvalidOperationException("Unsupported platform.");
} }

@ -10,22 +10,22 @@
the Grpc.Core.dll assembly and the native libraries are used at all times. the Grpc.Core.dll assembly and the native libraries are used at all times.
--> -->
<ItemGroup Condition="'$(Grpc_SkipNativeLibsCopy)' != 'true'"> <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> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>grpc_csharp_ext.x86.dll</Link> <Link>grpc_csharp_ext.x86.dll</Link>
<Visible>false</Visible> <Visible>false</Visible>
</Content> </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> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>grpc_csharp_ext.x64.dll</Link> <Link>grpc_csharp_ext.x64.dll</Link>
<Visible>false</Visible> <Visible>false</Visible>
</Content> </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> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libgrpc_csharp_ext.x64.so</Link> <Link>libgrpc_csharp_ext.x64.so</Link>
<Visible>false</Visible> <Visible>false</Visible>
</Content> </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> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libgrpc_csharp_ext.x64.dylib</Link> <Link>libgrpc_csharp_ext.x64.dylib</Link>
<Visible>false</Visible> <Visible>false</Visible>

Loading…
Cancel
Save