From 3f676113287cc5b090fd7cad729d72891a6c7948 Mon Sep 17 00:00:00 2001 From: neuecc Date: Thu, 2 Mar 2017 10:12:35 +0900 Subject: [PATCH] documenting now --- MessagePack.sln | 21 ++++ README.md | 110 +++++++++++++++--- graph.xlsx | Bin 0 -> 19510 bytes sandbox/Sandbox/Program.cs | 18 +-- sandbox/XamarinAndroid/Assets/AboutAssets.txt | 19 +++ sandbox/XamarinAndroid/GettingStarted.Xamarin | 4 + sandbox/XamarinAndroid/MainActivity.cs | 34 ++++++ .../Properties/AndroidManifest.xml | 5 + .../XamarinAndroid/Properties/AssemblyInfo.cs | 30 +++++ .../Resources/AboutResources.txt | 44 +++++++ .../Resources/Resource.Designer.cs | 96 +++++++++++++++ .../Resources/drawable/Icon.png | Bin 0 -> 4147 bytes .../XamarinAndroid/Resources/layout/Main.axml | 7 ++ .../Resources/values/Strings.xml | 5 + sandbox/XamarinAndroid/XamarinAndroid.csproj | 96 +++++++++++++++ sandbox/XamarinAndroid/packages.config | 7 ++ 16 files changed, 469 insertions(+), 27 deletions(-) create mode 100644 graph.xlsx create mode 100644 sandbox/XamarinAndroid/Assets/AboutAssets.txt create mode 100644 sandbox/XamarinAndroid/GettingStarted.Xamarin create mode 100644 sandbox/XamarinAndroid/MainActivity.cs create mode 100644 sandbox/XamarinAndroid/Properties/AndroidManifest.xml create mode 100644 sandbox/XamarinAndroid/Properties/AssemblyInfo.cs create mode 100644 sandbox/XamarinAndroid/Resources/AboutResources.txt create mode 100644 sandbox/XamarinAndroid/Resources/Resource.Designer.cs create mode 100644 sandbox/XamarinAndroid/Resources/drawable/Icon.png create mode 100644 sandbox/XamarinAndroid/Resources/layout/Main.axml create mode 100644 sandbox/XamarinAndroid/Resources/values/Strings.xml create mode 100644 sandbox/XamarinAndroid/XamarinAndroid.csproj create mode 100644 sandbox/XamarinAndroid/packages.config diff --git a/MessagePack.sln b/MessagePack.sln index 9b661182..f69c49d6 100644 --- a/MessagePack.sln +++ b/MessagePack.sln @@ -45,6 +45,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessagePackAnalyzer", "src\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessagePackAnalyzer.Vsix", "src\MessagePackAnalyzer.Vsix\MessagePackAnalyzer.Vsix.csproj", "{09B87BEB-D9A3-4EEB-B56A-ED53D27DF1A3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamarinAndroid", "sandbox\XamarinAndroid\XamarinAndroid.csproj", "{307A14EF-C896-4024-BD80-95A55B22C2AB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -187,6 +189,24 @@ Global {09B87BEB-D9A3-4EEB-B56A-ED53D27DF1A3}.Release|x64.Build.0 = Release|Any CPU {09B87BEB-D9A3-4EEB-B56A-ED53D27DF1A3}.Release|x86.ActiveCfg = Release|Any CPU {09B87BEB-D9A3-4EEB-B56A-ED53D27DF1A3}.Release|x86.Build.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x64.ActiveCfg = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x64.Build.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x64.Deploy.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x86.ActiveCfg = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x86.Build.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Debug|x86.Deploy.0 = Debug|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|Any CPU.Build.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|Any CPU.Deploy.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x64.ActiveCfg = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x64.Build.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x64.Deploy.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x86.ActiveCfg = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x86.Build.0 = Release|Any CPU + {307A14EF-C896-4024-BD80-95A55B22C2AB}.Release|x86.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -203,5 +223,6 @@ Global {E066F547-7261-4561-AEFC-E64DBFD874F8} = {86309CF6-0054-4CE3-BFD3-CA0AA7DB17BC} {2F9A6E0C-DE95-4460-96B7-EB72BBEAEE9E} = {86309CF6-0054-4CE3-BFD3-CA0AA7DB17BC} {09B87BEB-D9A3-4EEB-B56A-ED53D27DF1A3} = {86309CF6-0054-4CE3-BFD3-CA0AA7DB17BC} + {307A14EF-C896-4024-BD80-95A55B22C2AB} = {BF4C4202-5015-4FBD-80E6-D0F36A06F700} EndGlobalSection EndGlobal diff --git a/README.md b/README.md index 3b4f2dc7..fe14e76b 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,45 @@ -MessagePack for C#(.NET, .NET Core, Unity) +MessagePack for C#(.NET, .NET Core, Unity, Xamarin) === -Brainchild of [ZeroFormatter](https://github.com/neuecc/ZeroFormatter/), fastest MessagePack serializer on .NET. -Work in progress, stay tuned. +> TODO:Writing document now. -![image](https://cloud.githubusercontent.com/assets/46207/23337257/9bf22222-fc2a-11e6-888f-20d0451a526e.png) +Extremely fast [MessagePack](http://msgpack.org/) serializer for C#, x10~20 faster than MsgPack-Cli and acquires best performance compared with all the other C# serializers. -Extremely fast, x10~20 faster than MsgPack-Cli. +![image](https://cloud.githubusercontent.com/assets/46207/23487810/e263277a-ff2b-11e6-81a6-6b4ca7acd8e3.png) + +![image](https://cloud.githubusercontent.com/assets/46207/23487813/e7b22e1a-ff2b-11e6-8eeb-386c6a305628.png) + +MessagePack has compact binary size and full set of general purpose expression. Please see the comparison with JSON, protobuf, ZeroFormatter section. If you want to know why MessagePack C# is fastest, please see performance section. Install --- -Beta is relased(please enable include pre-release package). +The library provides in NuGet except for Unity. -Standard library for .NET, .NET Core +Standard library for .NET, .NET Core, Xamarin. ``` -Install-Package MessagePack -Pre +Install-Package MessagePack ``` -for Unity, download from releases page(not yet). - -Extension Packages(info is see detail section). +Visual Studio Analyzer to help object definition ``` -Install-Package MessagePack.ImmutableCollection -Pre -Install-Package MessagePack.ReactiveProperty -Pre -Install-Package MessagePack.Unity -Pre +Install-Package MessagePackAnalyzer ``` +Extension Packages(info is see extension section). + +``` +Install-Package MessagePack.ImmutableCollection +Install-Package MessagePack.ReactiveProperty +Install-Package MessagePack.Unity +``` + +for Unity, download from [releases](https://github.com/neuecc/MessagePack-CSharp/releases) page, providing `.unitypackage`. Unity IL2CPP or Xamarin AOT Environment, check the pre-code generation section. + Quick Start --- -Define class and mark as `[MessagePackObject]` and public properties mark `[Key]`, call `MessagePackSerializer.Serialize/Deserialize`. +Define class and mark as `[MessagePackObject]` and public members(property or field) mark `[Key]`, call `MessagePackSerializer.Serialize/Deserialize`. ```csharp // mark MessagePackObjectAttribute @@ -62,26 +71,89 @@ class Program LastName = "huga", }; - // call Serialize/Deserialize, that's all. + // call Serialize/Deserialize, that's all. var bytes = MessagePackSerializer.Serialize(mc); var mc2 = MessagePackSerializer.Deserialize(bytes); } } ``` - Union +By default the attribute is required. Optionally it can be unnecessary, see Object Serialization Format section and Formatter Resolver section for details. + +Analyzer --- TODO: +Built-in support types +--- +TODO: + + +Object Serialization Format +--- +TODO: + + + +Union +--- +TODO: + + +Note:Versioning.... + + +Performance +--- +TODO: + + + +FormatterResolver +--- +TODO: + + + +MessagePackSerializer API +--- + + + + Extensions --- TODO: +Pre Code Generation(mpc.exe) +--- -Build + + + + +RPC +--- +TODO: + +How to Build --- Open `MessagePack.sln` on Visual Studio 2017. Unity Project is using symbolic link. At first, run `make_unity_symlink.bat` so linked under Unity project. You can open `src\MessagePack.UnityClient` on Unity Editor. -CodeGenerator(`mpc.exe`) is merged single exe to many dll by [LibZ](https://github.com/MiloszKrajewski/LibZ). run `build_libz.bat`, you can combine it. \ No newline at end of file +Author Info +--- +Yoshifumi Kawai(a.k.a. neuecc) is a software developer in Japan. +He is the Director/CTO at Grani, Inc. +Grani is a top social game developer in Japan. +He is awarding Microsoft MVP for Visual C# since 2011. +He is known as the creator of [UniRx](http://github.com/neuecc/UniRx/)(Reactive Extensions for Unity) + +Blog: https://medium.com/@neuecc (English) +Blog: http://neue.cc/ (Japanese) +Twitter: https://twitter.com/neuecc (Japanese) + +License +--- +This library is under the MIT License. \ No newline at end of file diff --git a/graph.xlsx b/graph.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7b10f29f7376c04b348da9223205120dc86a6844 GIT binary patch literal 19510 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 N1qA?z75n4t{{aG7Wbpt1 literal 0 HcmV?d00001 diff --git a/sandbox/Sandbox/Program.cs b/sandbox/Sandbox/Program.cs index b6552caf..eac7f51b 100644 --- a/sandbox/Sandbox/Program.cs +++ b/sandbox/Sandbox/Program.cs @@ -197,6 +197,8 @@ namespace Sandbox static void Benchmark(T target) { + const int Iteration = 10000; + var msgpack = MsgPack.Serialization.SerializationContext.Default; msgpack.GetSerializer().PackSingleObject(target); MessagePack.MessagePackSerializer.Serialize(target); @@ -213,7 +215,7 @@ namespace Sandbox byte[] data2 = null; using (new Measure("MsgPack-Cli")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { data = msgpack.GetSerializer().PackSingleObject(target); } @@ -221,21 +223,21 @@ namespace Sandbox using (new Measure("MessagePack-CSharp")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { data0 = MessagePack.MessagePackSerializer.Serialize(target); } } using (new Measure("ZeroFormatter")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { data1 = ZeroFormatter.ZeroFormatterSerializer.Serialize(target); } } using (new Measure("protobuf-net")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { using (var ms = new MemoryStream()) { @@ -260,7 +262,7 @@ namespace Sandbox using (new Measure("MsgPack-Cli")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { msgpack.GetSerializer().UnpackSingleObject(data); } @@ -268,7 +270,7 @@ namespace Sandbox using (new Measure("MessagePack-CSharp")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { MessagePack.MessagePackSerializer.Deserialize(data0); } @@ -276,7 +278,7 @@ namespace Sandbox using (new Measure("ZeroFormatter")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { ZeroFormatterSerializer.Deserialize(data1); } @@ -284,7 +286,7 @@ namespace Sandbox using (new Measure("protobuf-net")) { - for (int i = 0; i < 100000; i++) + for (int i = 0; i < Iteration; i++) { using (var ms = new MemoryStream(data2)) { diff --git a/sandbox/XamarinAndroid/Assets/AboutAssets.txt b/sandbox/XamarinAndroid/Assets/AboutAssets.txt new file mode 100644 index 00000000..ee398862 --- /dev/null +++ b/sandbox/XamarinAndroid/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with you package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); \ No newline at end of file diff --git a/sandbox/XamarinAndroid/GettingStarted.Xamarin b/sandbox/XamarinAndroid/GettingStarted.Xamarin new file mode 100644 index 00000000..e9d4f6a4 --- /dev/null +++ b/sandbox/XamarinAndroid/GettingStarted.Xamarin @@ -0,0 +1,4 @@ + + GS\Android\CS\AndroidApp\GettingStarted.html + false + \ No newline at end of file diff --git a/sandbox/XamarinAndroid/MainActivity.cs b/sandbox/XamarinAndroid/MainActivity.cs new file mode 100644 index 00000000..46907d6d --- /dev/null +++ b/sandbox/XamarinAndroid/MainActivity.cs @@ -0,0 +1,34 @@ +using Android.App; +using Android.Widget; +using Android.OS; +using MessagePack; + +namespace XamarinAndroid +{ + [MessagePackObject] + public class MyClass + { + [Key(0)] + public int MyProperty { get; set; } + } + + [Activity(Label = "XamarinAndroid", MainLauncher = true, Icon = "@drawable/icon")] + public class MainActivity : Activity + { + protected override void OnCreate(Bundle bundle) + { + var hoge = MessagePackSerializer.Serialize(new MyClass()); + var huga = MessagePackSerializer.Deserialize(hoge); + + System.Console.WriteLine(huga.MyProperty); + + base.OnCreate(bundle); + + // Set our view from the "main" layout resource + // SetContentView (Resource.Layout.Main); + + + } + } +} + diff --git a/sandbox/XamarinAndroid/Properties/AndroidManifest.xml b/sandbox/XamarinAndroid/Properties/AndroidManifest.xml new file mode 100644 index 00000000..c563ea83 --- /dev/null +++ b/sandbox/XamarinAndroid/Properties/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/sandbox/XamarinAndroid/Properties/AssemblyInfo.cs b/sandbox/XamarinAndroid/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7bb7baf8 --- /dev/null +++ b/sandbox/XamarinAndroid/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Android.App; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XamarinAndroid")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XamarinAndroid")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/sandbox/XamarinAndroid/Resources/AboutResources.txt b/sandbox/XamarinAndroid/Resources/AboutResources.txt new file mode 100644 index 00000000..c2bca974 --- /dev/null +++ b/sandbox/XamarinAndroid/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.axml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.axml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.axml file, or R.strings.first_string to reference the first +string in the dictionary file values/strings.xml. \ No newline at end of file diff --git a/sandbox/XamarinAndroid/Resources/Resource.Designer.cs b/sandbox/XamarinAndroid/Resources/Resource.Designer.cs new file mode 100644 index 00000000..cda91770 --- /dev/null +++ b/sandbox/XamarinAndroid/Resources/Resource.Designer.cs @@ -0,0 +1,96 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("XamarinAndroid.Resource", IsApplication=true)] + +namespace XamarinAndroid +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + } + + public partial class Attribute + { + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7f020000 + public const int Icon = 2130837504; + + static Drawable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Drawable() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7f030000 + public const int Main = 2130903040; + + static Layout() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Layout() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f040001 + public const int ApplicationName = 2130968577; + + // aapt resource value: 0x7f040000 + public const int Hello = 2130968576; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/sandbox/XamarinAndroid/Resources/drawable/Icon.png b/sandbox/XamarinAndroid/Resources/drawable/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8074c4c571b8cd19e27f4ee5545df367420686d7 GIT binary patch literal 4147 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 literal 0 HcmV?d00001 diff --git a/sandbox/XamarinAndroid/Resources/layout/Main.axml b/sandbox/XamarinAndroid/Resources/layout/Main.axml new file mode 100644 index 00000000..a439efb3 --- /dev/null +++ b/sandbox/XamarinAndroid/Resources/layout/Main.axml @@ -0,0 +1,7 @@ + + + diff --git a/sandbox/XamarinAndroid/Resources/values/Strings.xml b/sandbox/XamarinAndroid/Resources/values/Strings.xml new file mode 100644 index 00000000..39b45428 --- /dev/null +++ b/sandbox/XamarinAndroid/Resources/values/Strings.xml @@ -0,0 +1,5 @@ + + + Hello World, Click Me! + XamarinAndroid + diff --git a/sandbox/XamarinAndroid/XamarinAndroid.csproj b/sandbox/XamarinAndroid/XamarinAndroid.csproj new file mode 100644 index 00000000..fd916a99 --- /dev/null +++ b/sandbox/XamarinAndroid/XamarinAndroid.csproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {307A14EF-C896-4024-BD80-95A55B22C2AB} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + XamarinAndroid + XamarinAndroid + 512 + True + Resources\Resource.Designer.cs + Off + True + v6.0 + Properties\AndroidManifest.xml + + + True + Full + False + bin\Debug\ + DEBUG;TRACE + prompt + 4 + True + None + False + + + PdbOnly + True + True + bin\Release\ + TRACE + prompt + 4 + False + SdkOnly + True + + + + ..\..\packages\MessagePack.0.4.2\lib\netstandard1.4\MessagePack.dll + + + + + + + ..\..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll + + + ..\..\packages\System.ValueTuple.4.3.0\lib\netstandard1.0\System.ValueTuple.dll + + + + + + + + + + + + + + + + + + Designer + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/XamarinAndroid/packages.config b/sandbox/XamarinAndroid/packages.config new file mode 100644 index 00000000..62bebc51 --- /dev/null +++ b/sandbox/XamarinAndroid/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file