From be1bc44a2417eb0cb89abfda4cd7eb44b6f4d4dd Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Sun, 1 Feb 2015 00:33:08 +0100 Subject: [PATCH 1/3] update FCS and add some basic C# unit tests. --- FSharp.Formatting.Tests.sln | 13 ++ paket.lock | 4 +- src/Common/AssemblyInfo.fs | 6 +- tests/FSharp.MetadataFormat.Tests/Tests.fs | 36 ++++++ .../csharpSupport/Properties/AssemblyInfo.cs | 36 ++++++ .../files/csharpSupport/SampleClass.cs | 73 ++++++++++++ .../files/csharpSupport/csharpSupport.csproj | 112 ++++++++++++++++++ 7 files changed, 275 insertions(+), 5 deletions(-) create mode 100644 tests/FSharp.MetadataFormat.Tests/files/csharpSupport/Properties/AssemblyInfo.cs create mode 100644 tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs create mode 100644 tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.csproj diff --git a/FSharp.Formatting.Tests.sln b/FSharp.Formatting.Tests.sln index bf7fe566e..a5cf2a7e1 100644 --- a/FSharp.Formatting.Tests.sln +++ b/FSharp.Formatting.Tests.sln @@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "crefLib3", "tests\FSharp.Me EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "crefLib4", "tests\FSharp.MetadataFormat.Tests\files\crefLib\crefLib4.csproj", "{98624699-1B2F-4636-A3F7-EC72343CB2FD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharpSupport", "tests\FSharp.MetadataFormat.Tests\files\csharpSupport\csharpSupport.csproj", "{DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -139,6 +141,16 @@ Global {98624699-1B2F-4636-A3F7-EC72343CB2FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {98624699-1B2F-4636-A3F7-EC72343CB2FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU {98624699-1B2F-4636-A3F7-EC72343CB2FD}.Release|x86.ActiveCfg = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Any CPU.Build.0 = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -150,5 +162,6 @@ Global {55728B9D-1EDE-4A40-B439-1EB0B3F77B72} = {0BCA32CA-96E2-4E6A-9697-681E2131F40A} {08029B28-A5EA-42DB-AB4E-9C6BA9EF9441} = {0BCA32CA-96E2-4E6A-9697-681E2131F40A} {98624699-1B2F-4636-A3F7-EC72343CB2FD} = {0BCA32CA-96E2-4E6A-9697-681E2131F40A} + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C} = {0BCA32CA-96E2-4E6A-9697-681E2131F40A} EndGlobalSection EndGlobal diff --git a/paket.lock b/paket.lock index d520a7bf1..730d85d18 100644 --- a/paket.lock +++ b/paket.lock @@ -2,8 +2,8 @@ NUGET remote: http://nuget.org/api/v2 specs: CommandLineParser (1.9.71) - FAKE (3.14.0) - FSharp.Compiler.Service (0.0.81) + FAKE (3.14.9) + FSharp.Compiler.Service (0.0.82) Microsoft.AspNet.Razor (2.0.30506.0) NuGet.CommandLine (2.8.3) NUnit (2.6.4) diff --git a/src/Common/AssemblyInfo.fs b/src/Common/AssemblyInfo.fs index 0e76a4424..dcfdbc638 100644 --- a/src/Common/AssemblyInfo.fs +++ b/src/Common/AssemblyInfo.fs @@ -4,10 +4,10 @@ open System.Reflection [] [] [] -[] -[] +[] +[] [] do () module internal AssemblyVersionInformation = - let [] Version = "2.4.38" + let [] Version = "2.5.1" diff --git a/tests/FSharp.MetadataFormat.Tests/Tests.fs b/tests/FSharp.MetadataFormat.Tests/Tests.fs index f9823317f..a22dd4d63 100644 --- a/tests/FSharp.MetadataFormat.Tests/Tests.fs +++ b/tests/FSharp.MetadataFormat.Tests/Tests.fs @@ -215,6 +215,42 @@ let ``MetadataFormat test that cref generation works``() = System.Diagnostics.Process.Start(output) #endif +[] +let ``MetadataFormat test that csharp support works``() = + let libraries = + [ root @@ "files/csharpSupport/bin/Debug" @@ "csharpSupport.dll" ] + let output = getOutputDir() + printfn "Output: %s" output + MetadataFormat.Generate + ( libraries, output, layoutRoots, info, libDirs = [root @@ "../../lib"], + sourceRepo = "https://github.com/tpetricek/FSharp.Formatting/tree/master", + sourceFolder = __SOURCE_DIRECTORY__ @@ "../..", + markDownComments = false ) + let fileNames = Directory.GetFiles(output) + let files = dict [ for f in fileNames -> Path.GetFileName(f), File.ReadAllText(f) ] + + // C# tests + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Sample_Class" + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Constructor" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Event" + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Event" + + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Sample_Class" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Method" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Property" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Event" + + #if INTERACTIVE + System.Diagnostics.Process.Start(output) + #endif + [] let ``MetadataFormat process XML comments in two sample F# assemblies``() = let libraries = diff --git a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/Properties/AssemblyInfo.cs b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..dfcef2e27 --- /dev/null +++ b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("csharpSupport")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("csharpSupport")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("476d2809-dd07-4413-b1d8-e4010727c662")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs new file mode 100644 index 000000000..731cb5be9 --- /dev/null +++ b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace csharpSupport +{ + /// + /// My_Static_Sample_Class + /// + public static class SampleStaticClass + { + /// + /// My_Static_Method + /// + public static void StaticMethod() { } + + + /// + /// My_Static_Property + /// + public static string StaticProperty { get; set; } + + /// + /// My_Static_Event + /// + public static event EventHandler StaticEvent; + } + + /// + /// My_Sample_Class + /// + public class SampleClass + { + /// + /// My_Static_Method + /// + public static void StaticMethod() { } + + + /// + /// My_Static_Property + /// + public static string StaticProperty { get; set; } + + /// + /// My_Static_Event + /// + public static event EventHandler StaticEvent; + + /// + /// My_Constructor + /// + public SampleClass() { } + + /// + /// My_Method + /// + public void Method() { } + + + /// + /// My_Property + /// + public string Property { get; set; } + + /// + /// My_Event + /// + public event EventHandler Event; + } +} diff --git a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.csproj b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.csproj new file mode 100644 index 000000000..2ad782ca3 --- /dev/null +++ b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.csproj @@ -0,0 +1,112 @@ + + + + + Debug + AnyCPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C} + Library + Properties + csharpSupport + csharpSupport + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + bin\Debug\csharpSupport.xml + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\..\..\..\packages\FSharp.Compiler.Service\lib\net40\FSharp.Compiler.Service.dll + True + True + + + + + + + ..\..\..\..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll + True + True + + + + + + + + + ..\..\..\..\packages\Microsoft.AspNet.Razor\lib\net40\System.Web.Razor.dll + True + True + + + + + + + ..\..\..\..\packages\NUnit\lib\nunit.framework.dll + True + True + + + + + + + ..\..\..\..\packages\RazorEngine\lib\net40\RazorEngine.dll + True + True + + + + + + + ..\..\..\..\packages\RazorEngine\lib\net45\RazorEngine.dll + True + True + + + + + \ No newline at end of file From 682f4338d34492881277a90d3134c06aed4a3a16 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Sun, 1 Feb 2015 11:19:58 +0100 Subject: [PATCH 2/3] Test that publiconly works --- tests/FSharp.MetadataFormat.Tests/Tests.fs | 72 ++++++++++++++++++- .../files/csharpSupport/SampleClass.cs | 61 +++++++++++++++- 2 files changed, 130 insertions(+), 3 deletions(-) diff --git a/tests/FSharp.MetadataFormat.Tests/Tests.fs b/tests/FSharp.MetadataFormat.Tests/Tests.fs index a22dd4d63..363d07c1e 100644 --- a/tests/FSharp.MetadataFormat.Tests/Tests.fs +++ b/tests/FSharp.MetadataFormat.Tests/Tests.fs @@ -216,7 +216,7 @@ let ``MetadataFormat test that cref generation works``() = #endif [] -let ``MetadataFormat test that csharp support works``() = +let ``MetadataFormat test that csharp (publiconly) support works``() = let libraries = [ root @@ "files/csharpSupport/bin/Debug" @@ "csharpSupport.dll" ] let output = getOutputDir() @@ -225,6 +225,7 @@ let ``MetadataFormat test that csharp support works``() = ( libraries, output, layoutRoots, info, libDirs = [root @@ "../../lib"], sourceRepo = "https://github.com/tpetricek/FSharp.Formatting/tree/master", sourceFolder = __SOURCE_DIRECTORY__ @@ "../..", + publicOnly = true, markDownComments = false ) let fileNames = Directory.GetFiles(output) let files = dict [ for f in fileNames -> Path.GetFileName(f), File.ReadAllText(f) ] @@ -238,15 +239,84 @@ let ``MetadataFormat test that csharp support works``() = files.["csharpsupport-sampleclass.html"] |> should contain "My_Property" files.["csharpsupport-sampleclass.html"] |> should contain "My_Event" + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Constructor") + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Method") + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Property") + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Event") + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Method" files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Property" files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Event" + + + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Static_Method") + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Static_Property") + files.["csharpsupport-sampleclass.html"] |> should not' (contain "My_Private_Static_Event") files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Sample_Class" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Method" files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Property" files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Event" + + files.["csharpsupport-samplestaticclass.html"] |> should not' (contain "My_Private_Static_Method") + files.["csharpsupport-samplestaticclass.html"] |> should not' (contain "My_Private_Static_Property") + files.["csharpsupport-samplestaticclass.html"] |> should not' (contain "My_Private_Static_Event") + + #if INTERACTIVE + System.Diagnostics.Process.Start(output) + #endif + + +[] +[] +let ``MetadataFormat test that csharp support works``() = + let libraries = + [ root @@ "files/csharpSupport/bin/Debug" @@ "csharpSupport.dll" ] + let output = getOutputDir() + printfn "Output: %s" output + MetadataFormat.Generate + ( libraries, output, layoutRoots, info, libDirs = [root @@ "../../lib"], + sourceRepo = "https://github.com/tpetricek/FSharp.Formatting/tree/master", + sourceFolder = __SOURCE_DIRECTORY__ @@ "../..", + publicOnly = false, + markDownComments = false ) + let fileNames = Directory.GetFiles(output) + let files = dict [ for f in fileNames -> Path.GetFileName(f), File.ReadAllText(f) ] + + // C# tests + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Sample_Class" + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Constructor" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Event" + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Constructor" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Event" + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Static_Event" + + + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Static_Method" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Static_Property" + files.["csharpsupport-sampleclass.html"] |> should contain "My_Private_Static_Event" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Sample_Class" + + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Method" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Property" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Static_Event" + + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Private_Static_Method" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Private_Static_Property" + files.["csharpsupport-samplestaticclass.html"] |> should contain "My_Private_Static_Event" + #if INTERACTIVE System.Diagnostics.Process.Start(output) #endif diff --git a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs index 731cb5be9..abac5f103 100644 --- a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs +++ b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/SampleClass.cs @@ -25,7 +25,23 @@ public static void StaticMethod() { } /// /// My_Static_Event /// - public static event EventHandler StaticEvent; + public static event EventHandler StaticEvent; + + /// + /// My_Private_Static_Method + /// + private static void StaticPrivateMethod() { } + + + /// + /// My_Private_Static_Property + /// + private static string StaticPrivateProperty { get; set; } + + /// + /// My_Private_Static_Event + /// + private static event EventHandler StaticPrivateEvent; } /// @@ -49,6 +65,24 @@ public static void StaticMethod() { } /// public static event EventHandler StaticEvent; + + /// + /// My_Private_Static_Method + /// + private static void StaticPrivateMethod() { } + + + /// + /// My_Private_Static_Property + /// + private static string StaticPrivateProperty { get; set; } + + /// + /// My_Private_Static_Event + /// + private static event EventHandler StaticPrivateEvent; + + /// /// My_Constructor /// @@ -68,6 +102,29 @@ public void Method() { } /// /// My_Event /// - public event EventHandler Event; + public event EventHandler Event; + + + /// + /// My_Private_Constructor + /// + private SampleClass(int dummy) { } + + + /// + /// My_Private_Method + /// + private void PrivateMethod() { } + + + /// + /// My_Private_Property + /// + private string PrivateProperty { get; set; } + + /// + /// My_Private_Event + /// + private event EventHandler PrivateEvent; } } From 41e6abb1e7d4315f7acfa0fbb0a990da2009c59a Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Sun, 1 Feb 2015 15:13:02 +0100 Subject: [PATCH 3/3] build csharpSupport. --- build.fsx | 8 +++++++ .../files/csharpSupport/csharpSupport.sln | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.sln diff --git a/build.fsx b/build.fsx index 6ff23dea3..c7a8e2518 100644 --- a/build.fsx +++ b/build.fsx @@ -68,6 +68,8 @@ Target "Clean" (fun _ -> CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/FsLib/obj"] CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/crefLib/bin"] CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/crefLib/obj"] + CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/csharpSupport/bin"] + CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/csharpSupport/obj"] CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/TestLib/bin"] CleanDirs ["tests/FSharp.MetadataFormat.Tests/files/TestLib/obj"] ) @@ -105,6 +107,12 @@ Target "BuildTests" (fun _ -> |> MSBuildDebug "" "Rebuild" |> ignore + { BaseDirectory = __SOURCE_DIRECTORY__ + Includes = ["tests/*/files/csharpSupport/csharpSupport.sln"] + Excludes = [] } + |> MSBuildDebug "" "Rebuild" + |> ignore + { BaseDirectory = __SOURCE_DIRECTORY__ Includes = ["tests/*/files/TestLib/TestLib.sln"] Excludes = [] } diff --git a/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.sln b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.sln new file mode 100644 index 000000000..1b5beab21 --- /dev/null +++ b/tests/FSharp.MetadataFormat.Tests/files/csharpSupport/csharpSupport.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharpSupport", "csharpSupport.csproj", "{DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA7BA2FA-447E-41F3-88D9-00CF3E052E2C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal