-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
BREAKING: Migrated resource files to Satellite Assemblies, restructured NuGet packages #38
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…acking into satellite assemblies
…tally and to download ICU4J on demand if it doesn't exist.
…ory if it doesn't exist
… ensure we download the correct version of ICU4J
… if the DestinationPath doesn't exist
…DevOps" This reverts commit 9a5ce1d.
…n Azure DevOps"" This reverts commit 95bb432.
…d.Tasks.Core for AL task" This reverts commit 79455e0.
… than FileLoadException
…erty and re-mapped usages back to ICUResourceBundle.IcuDataAssembly
…ages back to ICUResourceBundle.IcuDataAssembly
…ages back to ICUResourceBundle.IcuDataAssembly
…aAssembly and updated documentation
…mapped usages back to ICUResourceBundle.IcuDataAssembly
…stMissingSatelliteAssembly() test. We may need it later to create more robust satellite assembly testing.
…ifest so we can more quickly decide whether resources are localized.
…tilize it to scan satellite assemblies and folders when specified, including the GAC on Windows.
… build NuGet packages for satellite assemblies. Added an ICU4N.targets file to ICU4N to make a transient dependency that can be disabled by consumers to either ad a direct reference to the NuGet package or create a custom distribution in an alternate NuGet package with a smaller or larger distribution size.
…still needs to be ported).
…ly by MSBuild and removed unnecessary AssemblyInfo.cs files
… not part of the distribution
…nd support for loading it (satellite assemblies support this as long as we steer clear from loading them in CultureInfo)
…satellite assemblies" This reverts commit 82e1298.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #13
Closes #16
This changes the build to automate generating resources based on the icu4j JAR file, which means we won't need to keep the resource files in our repository.
The resources are embedded inside satellite assemblies, which is similar to the standard way that it works on the .NET platform. However, since we have our own caching, fallback mechanism, and the resource data is still in ICU4J's big endian binary format, we left out the interaction with
ResourceManager
,.resx
and.resources
files and simply useAssembly.GetSatelliteAssembly()
to locate our embedded resources directly.The prior assemblies were all merged into ICU4N, so for deployment there is just 1 NuGet package (
ICU4N
) containing the assembly and 1 NuGet package (ICU4N.Resources
) containing the satellite assemblies.The
ICU4N.Resources
NuGet package is a transient dependency. If using modern build tools and<PackageReference>
, installingICU4N
will automatically addICU4N.Resources
as a private dependency. There will also be a copy ofICU4N.targets
added to the current project,, which will add the data as a private dependency to any consumer of the project. This ensures at any level theICU4N.Resources
package can be excluded using<IncludeICU4NResources>false</IncludeICU4NResources>
, which allows for a subset of the assemblies or resource data to be deployed with the distribution.