Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates solution to build for .NET Core #37

Closed
wants to merge 60 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
db455f5
Consolidating nuget packaging logic in icu.net.csproj
conniey Jan 13, 2017
21bbfb7
Updating .gitignore
conniey Mar 30, 2016
fde4236
Replacing unsupported exceptions in .NETStandard
conniey Jan 13, 2017
452c98e
Fixing tests to assert ArgumentException rather than ApplicationExcep…
conniey Jan 13, 2017
8e27163
Migrating Character, Collator, Locale and UnicodeSet
conniey Jan 13, 2017
e319513
Add icu.net.netstandard.csproj
conniey Mar 8, 2017
7decdd7
Adding SortKey support on .NET Standard
conniey Mar 8, 2017
82c91dd
Add icu.net.netstandard solution
conniey Mar 8, 2017
10d539f
Add OS architecture and platform detection for .NET Standard
conniey Jan 13, 2017
fc143a1
Fix DirectoryOfThisAssembly for .NET Standard
conniey Mar 8, 2017
e3bb425
Modify obsolete GetDelegateForFunctionPointer(typeof(T)) with GetDele…
conniey Jan 11, 2017
6d03dca
Change TestCase.Result to TestCase.ExpectedResult
conniey Jan 13, 2017
d3c4dd4
Replace Assert.IsNotNullOrEmpty -> Assert.IsNotNull and Assert.IsNotE…
conniey Jan 13, 2017
9b286dc
Replace ExpectedException(T) with Assert.Throws<T>
conniey Jan 13, 2017
3f620fd
Add icu.net.netstandard.tests project
conniey Mar 8, 2017
2f08c0e
Specifying icu-dotnet as CLS-Compliant
conniey Feb 28, 2017
01643bf
Use LoadLibraryEx instead of LoadLibrary (and remove use of SetDllDir…
conniey Feb 28, 2017
10a5d07
Add NativeMethods.NetCore locate native assets on Windows or NetCore
conniey Feb 28, 2017
563efc5
NativeMethods now calls into .NET Core helper to try and get IcuVersion
conniey Mar 8, 2017
909d05d
Remove [MarshalAs(UnmanagedType.LPTStr] from dlopen and dlsym because…
conniey Mar 8, 2017
90fce87
Ignoring NativeMethodsTests and adding Compiler directive around
conniey Mar 8, 2017
cd01c98
Adding test project to solution
conniey Mar 8, 2017
3775fb9
Add [SetCulture] and [SetUICulture] because .NUnit portable does not …
conniey Mar 8, 2017
9fa373e
Replacing [SetCulture] and [SetUICulture] and replacing it with helper
conniey Apr 14, 2017
dccbb6c
Adding NUnit test runner project due to nunit/dotnet-test-nunit#91
conniey Apr 13, 2017
ea10e86
Add lock to NativeMethods class due to possibility of calling LoadIcu…
conniey Apr 14, 2017
23eb440
Hack in ability to build nuget package for .NETStandard due to GitVer…
conniey Apr 14, 2017
2ffb1b2
Restore .NET Core solution in NuGet.targets
conniey Apr 17, 2017
3c83ba2
Add building of .NET Standard solution to icu-dotnet.proj
conniey Apr 18, 2017
c1915bd
Only load GitVersion if running on MSBuild against full .NET Framework
conniey Apr 18, 2017
8019e7f
Add RunNUnitNetCore target to execute NUnit tests on .NET Core if ena…
conniey Apr 18, 2017
bed0114
Add Copyright header to *.cs files
conniey Apr 27, 2017
284187d
Add NuGet package properties to csproj to generate correct package
conniey Apr 27, 2017
9c81370
Make LoadLibraryFlags private
conniey Apr 27, 2017
6e0b609
GetLastWin32Error after each native call to get correct error code
conniey Apr 27, 2017
83745cd
Split IcuVersionInfo into its own file
conniey Apr 27, 2017
52ecfc7
Collator: Fix whitespace back to tabs
conniey Apr 27, 2017
cef03ed
Fix casing for NuGet.targets for building on Linux
conniey Apr 24, 2017
65f6efb
Use DotNet CLI when building .NET Core projects. Fixing configuration…
conniey Apr 24, 2017
1c25e73
Assembly signing does not work on Linux in .NET Core msbuild targets
conniey Apr 27, 2017
889e307
Unify common msbuild properties: IsOnWindows and IsOnTeamCity
conniey Apr 28, 2017
b69181a
Split Compile targets into 3 targets. Fix compilation calls for Linu…
conniey Apr 28, 2017
823f0b5
Fix NUnit on .NET Core to run the specified configuration
conniey Apr 28, 2017
bd0d74f
Move ExistingObjectFiles into target so it can be evaluated at Target…
conniey Apr 28, 2017
78a39d6
Consolidate all .NET Core related build properties together
conniey Apr 28, 2017
22ff79d
(FIXUP) Do nto split .net core compile into two different execs
conniey Apr 28, 2017
97f75fd
Update to newest version of GitVersionTask
conniey Jul 24, 2017
9fe6642
Fix .NET Core test runs by not invoking build again
conniey Jul 24, 2017
4fd4e14
Add CreateNuGetPackage target that creates a NuGet package after all …
conniey Jul 25, 2017
9c443a7
Remove UpdateAssemblyInfo=false and individually not generate items a…
conniey Jul 25, 2017
990f160
Change xbuild to msbuild because it is deprecated in latest releases …
conniey Jul 25, 2017
3608738
Add Platform abstraction
conniey Jan 6, 2018
35bfebb
Updating NuGet packages
conniey Jan 6, 2018
e7f0847
Fixing issues where [SetUp] and [TearDown] cannot be inside a [SetupF…
conniey Jan 6, 2018
805f40f
Adding compiler directives for .GetTypeInfo()
conniey Jan 6, 2018
8587517
Adds comments to public facing methods/properties
conniey Jan 6, 2018
02b2151
Updating PepitaPackage to 1.21.6
conniey Jan 6, 2018
384d741
Adding NUNIT2 to continue supporting NUnit 2 for legacy projects. Hop…
conniey Jan 6, 2018
7d269ca
Updating dependencies
conniey Jan 7, 2018
5c8806a
Checking for *{processorarch}* to locate native libraries
conniey Jan 7, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ build/NuGet.exe
build/nuget.exe
lib/
output/
bin/
obj/
test-results/
.idea/
Expand All @@ -15,4 +16,13 @@ source/packages/
source/NuGetBuild/

# Visual Studio 2015 cache/options directory
.vs/
.vs/

# DNX
*project.lock.json
*project.fragment.lock.json
artifacts/

# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
4 changes: 2 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ MONO_GAC_PREFIX="$MONO_PREFIX:/usr"

export LD_LIBRARY_PATH PKG_CONFIG_PATH MONO_GAC_PREFIX

xbuild /t:Compile /property:Configuration=Release build/icu-dotnet.proj
xbuild /t:TestOnly /property:Configuration=Release build/icu-dotnet.proj
msbuild /t:Compile /property:Configuration=Release build/icu-dotnet.proj
msbuild /t:TestOnly /property:Configuration=Release build/icu-dotnet.proj
'''
}

Expand Down
3 changes: 3 additions & 0 deletions build/NuGet.targets
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@
Condition="Exists('$(SolutionPath)')"/>
<Exec Command='$(NuGetCommand) restore -source "$(PackageSources)" -SolutionDirectory "$(SolutionDir)" "%(PackageConfigs.FullPath)"'
Condition="!Exists('$(SolutionPath)')"/>

<Exec Command='$(DotNetCLI) restore "$(SolutionNetCorePath)"'
Condition="'$(BuildNetCore)' == 'true' And '$(DotNetCLI)' != '' And Exists('$(SolutionNetCorePath)')"/>
</Target>

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory"
Expand Down
2 changes: 1 addition & 1 deletion build/TestBuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
# (version 53 released April 2014, version 54 scheduled for October 2014)
ICUVER=$(icu-config --version|tr -d .|cut -c -2)
cd "$(dirname "$0")"
xbuild /t:${2:-Test} /p:icu_ver=$ICUVER /p:Configuration=${1:-DebugMono} /p:Platform="Any CPU" /p:BUILD_NUMBER="0.1.0.abcd" icu-dotnet.proj
msbuild /t:${2:-Test} /p:icu_ver=$ICUVER /p:Configuration=${1:-DebugMono} /p:Platform="Any CPU" /p:BUILD_NUMBER="0.1.0.abcd" icu-dotnet.proj
91 changes: 63 additions & 28 deletions build/icu-dotnet.proj
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RootDir Condition="'$(teamcity_version)' == '' Or '$(OS)'!='Windows_NT'">$(MSBuildProjectDirectory)\..</RootDir>
<RootDir Condition="'$(teamcity_version)' != '' And '$(OS)'=='Windows_NT'">$(teamcity_build_checkoutDir)</RootDir>
<teamcity_agent_home_dir Condition="'$(teamcity_agent_home_dir)'=='' And '$(OS)'!='Windows_NT'">/var/lib/TeamCity/agent</teamcity_agent_home_dir>
<IsOnWindows Condition="'$(OS)'=='Windows_NT'">true</IsOnWindows>
<IsOnTeamCity Condition="'$(teamcity_version)' != ''">true</IsOnTeamCity>

<RootDir Condition="'$(IsOnTeamCity)'!='true' Or '$(IsOnWindows)'!='true'">$(MSBuildProjectDirectory)\..</RootDir>
<RootDir Condition="'$(IsOnTeamCity)'=='true' And '$(IsOnWindows)'=='true'">$(teamcity_build_checkoutDir)</RootDir>
<teamcity_agent_home_dir Condition="'$(teamcity_agent_home_dir)'=='' And '$(IsOnWindows)'!='true'">/var/lib/TeamCity/agent</teamcity_agent_home_dir>
<Solution>icu.net.sln</Solution>
<SolutionDir>$(RootDir)/source</SolutionDir>
<OutputDir>$(RootDir)/output</OutputDir>
<excludedCategories>ICU50 Deprecated;ByHand;</excludedCategories>
<excludedCategories Condition="'$(OS)'!='Windows_NT'">$(excludedCategories)KnownMonoIssue;</excludedCategories>
<Configuration Condition="'$(OS)'!='Windows_NT' And '$(Configuration)'==''">ReleaseMono</Configuration>
<Configuration Condition="'$(OS)'=='Windows_NT' And '$(Configuration)'==''">Release</Configuration>
<excludedCategories Condition="'$(IsOnWindows)'!='true'">$(excludedCategories)KnownMonoIssue;</excludedCategories>

<Configuration Condition="'$(IsOnWindows)'!='true' And '$(Configuration)'==''">ReleaseMono</Configuration>
<Configuration Condition="'$(IsOnWindows)'=='true' And '$(Configuration)'==''">Release</Configuration>

<BuildNetCore Condition="'$(BuildNetCore)' == ''">true</BuildNetCore>
</PropertyGroup>

<!-- .NET Core build properties -->
<PropertyGroup Condition="'$(BuildNetCore)' == 'true'">
<ConfigurationNetCore>$(Configuration.Replace('Mono',''))</ConfigurationNetCore>
<DotNetCLI Condition="'$(DotNetCLI)' == ''">dotnet</DotNetCLI>
<SolutionNetCorePath>$(SolutionDir)/icu.net.netstandard.sln</SolutionNetCorePath>
</PropertyGroup>

<!-- NOTE: this project uses GitVersion (http://gitversion.readthedocs.io) to set the version number. -->
Expand All @@ -17,10 +31,10 @@
<UsingTask TaskName="NUnit" AssemblyFile="$(RootDir)/build/Palaso.BuildTasks.dll" />
<UsingTask TaskName="NUnitTeamCity"
AssemblyFile="$(teamcity_dotnet_nunitlauncher_msbuild_task)"
Condition=" '$(teamcity_version)' != '' And '$(OS)'=='Windows_NT'"/>
Condition=" '$(IsOnTeamCity)'=='true' And '$(IsOnWindows)'=='true'"/>
<UsingTask TaskName="NUnitTeamCity"
AssemblyFile="$(teamcity_agent_home_dir)/plugins/dotnetPlugin/bin/JetBrains.BuildServer.MSBuildLoggers.dll"
Condition=" '$(teamcity_version)' != '' And '$(OS)'!='Windows_NT'"/>
Condition=" '$(IsOnTeamCity)'=='true' And '$(IsOnWindows)'!='true'"/>

<Import Project="NuGet.targets"/>

Expand Down Expand Up @@ -48,37 +62,50 @@
<Message Text="Build Complete"/>
</Target>

<Target Name="Compile" DependsOnTargets="DownloadDependencies;RestorePackages">
<Target Name="Compile" DependsOnTargets="CompileNet40Solution;CompileNetCore">
</Target>

<!-- Compile compiles source/icu.net.sln which outputs
assemblies targeting .NET 4.0.

Creates NuGet package that works only for .NET 4.0. -->
<Target Name="CompileNet40Solution"
DependsOnTargets="DownloadDependencies;RestorePackages">
<MSBuild Projects="$(SolutionDir)/$(Solution)"
Targets="Rebuild"
Properties="Configuration=$(Configuration)" />
</Target>

<ItemGroup>
<ExistingObjectFiles
Include="$(RootDir)/output/$(Configuration)/**/*"
Exclude="$(RootDir)/.hg/**/*;$(RootDir)/.git/**/*"
/>
</ItemGroup>
<!-- CompileNetCore compiles source/icu.net.netstandard.sln which outputs
assemblies targeting .NET 4.0, .NET 4.5.1 and .NET Standard 1.6.

Creates NuGet package that works against all three frameworks. -->
<Target Name="CompileNetCore" DependsOnTargets="DownloadDependencies;RestorePackages"
Condition="'$(BuildNetCore)' == 'true'">
<MSBuild Projects="$(SolutionNetCorePath)"
Targets="Build;CreateNuGetPackage"
Properties="Configuration=$(ConfigurationNetCore)" />
</Target>

<Target Name="Clean">
<ItemGroup>
<ExistingObjectFiles
Include="$(OutputDir)/$(Configuration)/**/*;$(RootDir)/**/obj/**/*;$(RootDir)/**/bin/**/*;$(RootDir)/**/test-results/**/*"
Exclude="$(RootDir)/.hg/**/*;$(RootDir)/.git/**/*" />
</ItemGroup>

<Delete Files="@(ExistingObjectFiles)" />
<Delete Condition="'$(OS)'=='Windows_NT'"
Files="$(RootDir)/**/obj/**/*" />
<Exec Condition="'$(OS)'!='Windows_NT'"
Command="find . %5c( -name obj -o -name bin -o -name test-results %5c) -type d -print0 | xargs -0 rm -rf"
WorkingDirectory="$(RootDir)" />
</Target>

<Target Name="Test" DependsOnTargets="Build">
<CallTarget Targets="TestOnly"/>
</Target>

<Target Name="TestOnly" DependsOnTargets="RunNUnitTC;RunNUnit"/>
<Target Name="TestOnly" DependsOnTargets="RunNUnitTC;RunNUnit;RunNUnitNetCore"/>

<Target Name="RunNUnitTC" Condition="'$(teamcity_version)' != ''">
<Target Name="RunNUnitTC" Condition="'$(IsOnTeamCity)'=='true'">
<ItemGroup>
<TestAssemblies Include="$(RootDir)/output/$(Configuration)/*tests.dll"/>
<TestAssemblies Include="$(OutputDir)/$(Configuration)/*tests.dll"/>
</ItemGroup>

<NUnitTeamCity
Expand All @@ -87,18 +114,26 @@
NUnitVersion="NUnit-2.6.4" />
</Target>

<Target Name="RunNUnit" Condition="'$(teamcity_version)' == ''">
<Target Name="RunNUnit" Condition="'$(IsOnTeamCity)'!='true'">
<ItemGroup>
<TestAssemblies Include="$(RootDir)/output/$(Configuration)/*tests.dll"/>
<TestAssemblies Include="$(OutputDir)/$(Configuration)/*tests.dll"/>
</ItemGroup>

<NUnit Assemblies="@(TestAssemblies)"
ToolPath="$(SolutionDir)/packages/NUnit.Runners.Net4.2.6.4/tools"
TestInNewThread="false"
ExcludeCategory="$(excludedCategories)$(ExtraExcludeCategories)"
WorkingDirectory="$(RootDir)/output/$(Configuration)"
WorkingDirectory="$(OutputDir)/$(Configuration)"
Force32Bit="false"
Verbose="true"
OutputXmlFile="$(RootDir)/output/$(Configuration)/TestResults.xml"/>
OutputXmlFile="$(OutputDir)/$(Configuration)/TestResults.xml"/>
</Target>

<Target Name="RunNUnitNetCore" Condition="'$(BuildNetCore)' == 'true'">
<PropertyGroup>
<NetCoreTestRunner>$(SolutionDir)/icu.net.netstandard.testrunner</NetCoreTestRunner>
</PropertyGroup>
<Exec Command="$(DotNetCLI) run --configuration $(ConfigurationNetCore) --result=$(OutputDir)/$(Configuration)/TestResults.NetCore.xml"
WorkingDirectory="$(NetCoreTestRunner)" />
</Target>
</Project>
</Project>
34 changes: 34 additions & 0 deletions source/icu.net.netstandard.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26228.4
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "icu.net.netstandard", "icu.net.netstandard\icu.net.netstandard.csproj", "{AA4C50FD-F411-484F-A17B-0A69B8784A10}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "icu.net.netstandard.tests", "icu.net.netstandard.tests\icu.net.netstandard.tests.csproj", "{9D724A81-8913-45DA-B798-4710DA90BC91}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "icu.net.netstandard.testrunner", "icu.net.netstandard.testrunner\icu.net.netstandard.testrunner.csproj", "{B8D007FE-5102-461C-A10B-11CD9DF57FB4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AA4C50FD-F411-484F-A17B-0A69B8784A10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AA4C50FD-F411-484F-A17B-0A69B8784A10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AA4C50FD-F411-484F-A17B-0A69B8784A10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AA4C50FD-F411-484F-A17B-0A69B8784A10}.Release|Any CPU.Build.0 = Release|Any CPU
{9D724A81-8913-45DA-B798-4710DA90BC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9D724A81-8913-45DA-B798-4710DA90BC91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9D724A81-8913-45DA-B798-4710DA90BC91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9D724A81-8913-45DA-B798-4710DA90BC91}.Release|Any CPU.Build.0 = Release|Any CPU
{B8D007FE-5102-461C-A10B-11CD9DF57FB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B8D007FE-5102-461C-A10B-11CD9DF57FB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B8D007FE-5102-461C-A10B-11CD9DF57FB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B8D007FE-5102-461C-A10B-11CD9DF57FB4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
17 changes: 17 additions & 0 deletions source/icu.net.netstandard.testrunner/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Copyright (c) 2013 SIL International
// This software is licensed under the MIT license (http://opensource.org/licenses/MIT)
using Icu.Tests;
using NUnitLite;
using System.Reflection;

namespace icu.net.netstandard.testrunner
{
class Program
{
public static int Main(string[] args)
{
var assembly = typeof(BreakIteratorTests).GetTypeInfo().Assembly;
return new AutoRun(assembly).Execute(args);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NUnitLite" Version="3.9.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\icu.net.netstandard.tests\icu.net.netstandard.tests.csproj" />
</ItemGroup>

<Target Name="CreateNuGetPackage">
</Target>
</Project>
30 changes: 30 additions & 0 deletions source/icu.net.netstandard.tests/icu.net.netstandard.tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<IcuSourceDirectory>..\icu.net.tests</IcuSourceDirectory>

<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Icu4c.Win.Full.Lib" Version="56.1.21" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="NUnit" Version="3.9.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
<PackageReference Include="NUnit.Console" Version="3.7.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\icu.net.netstandard\icu.net.netstandard.csproj" />
</ItemGroup>


<ItemGroup>
<Compile Include="$(IcuSourceDirectory)\**\*.cs">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>
</ItemGroup>

<Target Name="CreateNuGetPackage">
</Target>
</Project>
30 changes: 30 additions & 0 deletions source/icu.net.netstandard/NuGetAssets/icu.net.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>SIL International</authors>
<licenseUrl>https://github.com/sillsdev/icu-dotnet/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/sillsdev/icu-dotnet</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>icu.net is a C# Wrapper around ICU4C

This version of icu.net works with (more or less) any version of ICU4C.

NOTE: this package contains the managed wrapper part of icu.net. You'll also have to have the unmanaged binaries of ICU installed. On Linux it is recommended to install the official ICU package that comes with the system. On Windows you can install one of the binary nuget packages, e.g. Icu4c.Win.</description>
<language>en-US</language>
<dependencies>
<group targetFramework="net40" />
<group targetFramework="net451">
<dependency id="Microsoft.Extensions.DependencyModel" version="2.0.4" exclude="Build,Analyzers" />
<dependency id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="netstandard1.6">
<dependency id="Microsoft.Extensions.DependencyModel" version="2.0.4" exclude="Build,Analyzers" />
<dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
<dependency id="System.Diagnostics.TraceSource" version="4.3.0" exclude="Build,Analyzers" />
<dependency id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>
Loading