Auto status change to "Under Review"
@@ -0,0 +1,10 | |||
|
1 | <?xml version="1.0" encoding="UTF-8"?> | |
|
2 | <container xmlns="http://implab.org/schemas/servicehost/unity.v1.xsd"> | |
|
3 | <!-- foo1 --> | |
|
4 | <register name="foo1" provides="IFoo" type="Foo"> | |
|
5 | </register> | |
|
6 | ||
|
7 | <!-- foo2 --> | |
|
8 | <register name="foo2" provides="IFoo" type="Foo"> | |
|
9 | </register> | |
|
10 | </container> No newline at end of file |
@@ -0,0 +1,16 | |||
|
1 | <Project Sdk="Microsoft.NET.Sdk"> | |
|
2 | ||
|
3 | <PropertyGroup> | |
|
4 | <TargetFrameworks>netstandard2.0;net46</TargetFrameworks> | |
|
5 | <FrameworkPathOverride Condition="'$(TargetFramework)'=='net46'">/usr/lib/mono/4.6-api/</FrameworkPathOverride> | |
|
6 | </PropertyGroup> | |
|
7 | ||
|
8 | <ItemGroup> | |
|
9 | <PackageReference Include="Unity" Version="5.8.5" /> | |
|
10 | </ItemGroup> | |
|
11 | ||
|
12 | <ItemGroup> | |
|
13 | <ProjectReference Include="..\Implab\Implab.csproj" /> | |
|
14 | </ItemGroup> | |
|
15 | ||
|
16 | </Project> |
@@ -0,0 +1,28 | |||
|
1 | using Implab.Xml; | |
|
2 | using System.Collections.Generic; | |
|
3 | using System.Xml; | |
|
4 | using System.Xml.Schema; | |
|
5 | using System.Xml.Serialization; | |
|
6 | ||
|
7 | namespace Implab.ServiceHost.Unity { | |
|
8 | [XmlRoot("container", Namespace = Schema.ContainerConfigurationNamespace)] | |
|
9 | public class ContainerElement : IXmlSerializable { | |
|
10 | ||
|
11 | public List<ServiceElement> Registrations {get; set; } = new List<ServiceElement>(); | |
|
12 | ||
|
13 | public XmlSchema GetSchema() { | |
|
14 | return null; | |
|
15 | } | |
|
16 | ||
|
17 | public void ReadXml(XmlReader reader) { | |
|
18 | while(reader.Read() && reader.NodeType != XmlNodeType.EndElement) { | |
|
19 | var registration = SerializationHelpers.Deserialize<ServiceElement>(reader); | |
|
20 | Registrations.Add(registration); | |
|
21 | } | |
|
22 | } | |
|
23 | ||
|
24 | public void WriteXml(XmlWriter writer) { | |
|
25 | throw new System.NotImplementedException(); | |
|
26 | } | |
|
27 | } | |
|
28 | } No newline at end of file |
@@ -0,0 +1,5 | |||
|
1 | namespace Implab.ServiceHost.Unity { | |
|
2 | public static class Schema { | |
|
3 | public const string ContainerConfigurationNamespace = "http://implab.org/schemas/servicehost/unity.v1.xsd"; | |
|
4 | } | |
|
5 | } No newline at end of file |
@@ -0,0 +1,28 | |||
|
1 | using System; | |
|
2 | using System.Xml.Serialization; | |
|
3 | ||
|
4 | namespace Implab.ServiceHost.Unity { | |
|
5 | ||
|
6 | [XmlRoot("register", Namespace = Schema.ContainerConfigurationNamespace)] | |
|
7 | public class ServiceElement { | |
|
8 | /// <summary> | |
|
9 | /// An optional name for a registration in the container | |
|
10 | /// </summary> | |
|
11 | [XmlAttribute("name")] | |
|
12 | public string Name { get; set; } | |
|
13 | ||
|
14 | /// <summary> | |
|
15 | /// An optional type specification for the service registration, | |
|
16 | /// must be assignable from the type specified by <see cref="ImplementedType"/> | |
|
17 | /// </summary> | |
|
18 | [XmlAttribute("provides")] | |
|
19 | public string ProvidesType { get; set; } | |
|
20 | ||
|
21 | /// <summary> | |
|
22 | /// The type which is registered as a service in the container. | |
|
23 | /// </summary> | |
|
24 | [XmlAttribute("type")] | |
|
25 | public string ImplementedType { get; set; } | |
|
26 | } | |
|
27 | ||
|
28 | } No newline at end of file |
@@ -0,0 +1,9 | |||
|
1 | namespace Implab.ServiceHost.Unity { | |
|
2 | public class TypeReference { | |
|
3 | public string TypeName { get; set; } | |
|
4 | ||
|
5 | public string Namespace { get; set; } | |
|
6 | ||
|
7 | public TypeReference[] GenericParameters { get; set; } | |
|
8 | } | |
|
9 | } No newline at end of file |
@@ -0,0 +1,156 | |||
|
1 | using System; | |
|
2 | using System.Collections.Generic; | |
|
3 | using System.Text.RegularExpressions; | |
|
4 | ||
|
5 | namespace Implab.ServiceHost.Unity { | |
|
6 | public class TypeReferenceParser { | |
|
7 | enum TokenType { | |
|
8 | None, | |
|
9 | ||
|
10 | Word, | |
|
11 | ||
|
12 | Dot, | |
|
13 | ||
|
14 | Comma, | |
|
15 | ||
|
16 | OpenList, | |
|
17 | ||
|
18 | CloseList, | |
|
19 | ||
|
20 | Eof | |
|
21 | } | |
|
22 | ||
|
23 | readonly Regex _tokens = new Regex(@"(\w+)|\s*([\.{},])\s*"); | |
|
24 | ||
|
25 | TokenType m_token; | |
|
26 | ||
|
27 | string m_tokenValue; | |
|
28 | ||
|
29 | int m_pos; | |
|
30 | ||
|
31 | readonly string m_text; | |
|
32 | ||
|
33 | TokenType Token { get { return m_token; } } | |
|
34 | ||
|
35 | string TokenValue { get { return m_tokenValue; } } | |
|
36 | ||
|
37 | public TypeReferenceParser(string text) { | |
|
38 | Safe.ArgumentNotEmpty(text, nameof(text)); | |
|
39 | m_text = text; | |
|
40 | } | |
|
41 | ||
|
42 | bool ReadToken() { | |
|
43 | if (m_pos >= m_text.Length) { | |
|
44 | m_token = TokenType.Eof; | |
|
45 | m_tokenValue = null; | |
|
46 | return false; | |
|
47 | } | |
|
48 | ||
|
49 | var m = _tokens.Match(m_text, m_pos); | |
|
50 | ||
|
51 | if (m.Success) { | |
|
52 | m_pos += m.Length; | |
|
53 | if (m.Groups[1].Success) { | |
|
54 | m_token = TokenType.Word; | |
|
55 | m_tokenValue = m.Groups[1].Value; | |
|
56 | } else if (m.Groups[2].Success) { | |
|
57 | m_tokenValue = null; | |
|
58 | switch (m.Groups[2].Value) { | |
|
59 | case "{": | |
|
60 | m_token = TokenType.OpenList; | |
|
61 | break; | |
|
62 | case "}": | |
|
63 | m_token = TokenType.CloseList; | |
|
64 | break; | |
|
65 | case ".": | |
|
66 | m_token = TokenType.Dot; | |
|
67 | break; | |
|
68 | case ",": | |
|
69 | m_token = TokenType.Comma; | |
|
70 | break; | |
|
71 | } | |
|
72 | } | |
|
73 | return true; | |
|
74 | } | |
|
75 | throw new FormatException($"Failed to parse '{m_text}' at pos {m_pos}"); | |
|
76 | } | |
|
77 | ||
|
78 | public TypeRerefence Pase() { | |
|
79 | ||
|
80 | } | |
|
81 | ||
|
82 | string[] ReadTypeName() { | |
|
83 | var parts = new List<string>(); | |
|
84 | ||
|
85 | string current = null; | |
|
86 | bool stop = false; | |
|
87 | while ((!stop) && ReadToken()) { | |
|
88 | switch (Token) { | |
|
89 | case TokenType.Word: | |
|
90 | if (current != null) | |
|
91 | ThrowUnexpectedToken(); | |
|
92 | current = TokenValue; | |
|
93 | break; | |
|
94 | case TokenType.Dot: | |
|
95 | if (current == null) | |
|
96 | ThrowUnexpectedToken(); | |
|
97 | parts.Add(current); | |
|
98 | current = null; | |
|
99 | break; | |
|
100 | default: | |
|
101 | stop = true; | |
|
102 | break; | |
|
103 | } | |
|
104 | } | |
|
105 | if (current != null) | |
|
106 | parts.Add(current); | |
|
107 | ||
|
108 | if (parts.Count == 0) | |
|
109 | return null; | |
|
110 | ||
|
111 | return parts.ToArray(); | |
|
112 | } | |
|
113 | ||
|
114 | TypeReference ReadTypeReference() { | |
|
115 | ||
|
116 | var parts = ReadTypeName(); | |
|
117 | if (parts == null) | |
|
118 | return null; | |
|
119 | ||
|
120 | var typeReference = new TypeReference { | |
|
121 | Namespace = string.Join(",", parts, 0, parts.Length - 1), | |
|
122 | TypeName = parts[parts.Length - 1] | |
|
123 | }; | |
|
124 | ||
|
125 | switch (Token) { | |
|
126 | case TokenType.Eof: | |
|
127 | break; | |
|
128 | case TokenType.OpenList: | |
|
129 | typeReference.GenericParameters = ReadTypeReferenceList(); | |
|
130 | if(Token != TokenType.CloseList) | |
|
131 | ThrowUnexpectedToken(); | |
|
132 | break; | |
|
133 | default: | |
|
134 | ThrowUnexpectedToken(); | |
|
135 | break; | |
|
136 | } | |
|
137 | ||
|
138 | return typeReference; | |
|
139 | } | |
|
140 | ||
|
141 | TypeReference[] ReadTypeReferenceList() { | |
|
142 | throw new NotImplementedException(); | |
|
143 | } | |
|
144 | ||
|
145 | void ReadDot() { | |
|
146 | if (!ReadToken() || Token != TokenType.Dot) | |
|
147 | ThrowUnexpectedToken(); | |
|
148 | } | |
|
149 | ||
|
150 | void ThrowUnexpectedToken() { | |
|
151 | throw new FormatException($"Unexpected '{Token}' at {m_pos}"); | |
|
152 | } | |
|
153 | ||
|
154 | ||
|
155 | } | |
|
156 | } No newline at end of file |
@@ -23,3 +23,5 Implab.Format.Test/obj/ | |||
|
23 | 23 | packages/ |
|
24 | 24 | Implab.Playground/obj/ |
|
25 | 25 | Implab.Playground/bin/ |
|
26 | Implab.ServiceHost/bin/ | |
|
27 | Implab.ServiceHost/obj/ |
@@ -1,39 +1,18 | |||
|
1 | 1 | { |
|
2 | 2 | "version": "0.2.0", |
|
3 | 3 | "configurations": [ |
|
4 | ||
|
5 | 4 | { |
|
6 |
"name": "Launch |
|
|
7 |
"type": " |
|
|
5 | "name": ".NET Core Launch (console)", | |
|
6 | "type": "coreclr", | |
|
8 | 7 | "request": "launch", |
|
9 | "program": "/usr/lib/mono/4.5/xsp4.exe", | |
|
10 | "args":[ | |
|
11 | "--root=.", | |
|
12 | "--port=8081", | |
|
13 | "-v", | |
|
14 | "--printlog" | |
|
15 | ], | |
|
16 | 8 | "preLaunchTask": "build", |
|
17 | "cwd": "${workspaceRoot}/Pallada.PoiskAvia.Web", | |
|
18 | "runtimeExecutable": null, | |
|
19 | "env": {}, | |
|
20 | "console": "integratedTerminal" | |
|
21 | },{ | |
|
22 | "name": "Launch model tests", | |
|
23 | "type": "mono", | |
|
24 | "request": "launch", | |
|
25 | "program": "${env:HOME}/.nuget/packages/nunit.consolerunner/3.7.0/tools/nunit3-console.exe", | |
|
9 | "program": "${workspaceRoot}/Implab.Playground/bin/Debug/netcoreapp2.0/Implab.Playground.dll", | |
|
26 | 10 | "args": [ |
|
27 | "${workspaceRoot}/Pallada.PoiskAvia.Model.Test/bin/Debug/net45/Pallada.PoiskAvia.Model.Test.mono.dll", | |
|
28 | "--where=\"cat==Debug\"", | |
|
29 | "--labels='On'", | |
|
30 | "--inprocess", | |
|
31 | "--workers=1" | |
|
11 | "-f", "netcoreapp2.0" | |
|
32 | 12 | ], |
|
33 | "preLaunchTask": "build", | |
|
34 |
" |
|
|
35 | "internalConsoleOptions": "openOnSessionStart", | |
|
36 | "cwd": "${workspaceRoot}/Pallada.PoiskAvia.Model.Test/" | |
|
13 | "cwd": "${workspaceRoot}/Implab.Playground", | |
|
14 | "stopAtEntry": false, | |
|
15 | "console": "internalConsole" | |
|
37 | 16 | } |
|
38 | 17 | ] |
|
39 | 18 | } No newline at end of file |
@@ -8,6 +8,5 | |||
|
8 | 8 | "**/.DS_Store": true, |
|
9 | 9 | "**/bin": true, |
|
10 | 10 | "**/obj": true |
|
11 |
} |
|
|
12 | "omnisharp.useMono": true | |
|
11 | } | |
|
13 | 12 | } No newline at end of file |
@@ -2,26 +2,20 | |||
|
2 | 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 |
|
3 | 3 | // for the documentation about the tasks.json format |
|
4 | 4 | "version": "0.1.0", |
|
5 |
"command": " |
|
|
5 | "command": "dotnet", | |
|
6 | 6 | "args": [ |
|
7 | // Ask msbuild to generate full paths for file names. | |
|
8 | "/property:GenerateFullPaths=true" | |
|
9 | 7 | ], |
|
10 | "taskSelector": "/t:", | |
|
11 | 8 | "showOutput": "silent", |
|
12 | 9 | "tasks": [ |
|
13 | 10 | { |
|
14 | 11 | "taskName": "build", |
|
15 | "suppressTaskName": true, | |
|
16 | 12 | // Show the output window only if unrecognized errors occur. |
|
17 | 13 | "showOutput": "always", |
|
18 | 14 | // Use the standard MS compiler pattern to detect errors, warnings and infos |
|
19 | 15 | "problemMatcher": "$msCompile", |
|
20 | 16 | |
|
21 | 17 | "args" : [ |
|
22 |
"/ |
|
|
23 | "/p:Configuration=DebugMono", | |
|
24 | "Pallada.PoiskAvia.mono.sln" | |
|
18 | "/p:Configuration=Debug" | |
|
25 | 19 | ] |
|
26 | 20 | }, |
|
27 | 21 | { |
@@ -29,27 +23,15 | |||
|
29 | 23 | // Show the output window only if unrecognized errors occur. |
|
30 | 24 | "showOutput": "always", |
|
31 | 25 | // Use the standard MS compiler pattern to detect errors, warnings and infos |
|
32 |
"problemMatcher": "$msCompile" |
|
|
33 | ||
|
34 | "args" : [ | |
|
35 | "/p:Configuration=DebugMono", | |
|
36 | "Pallada.PoiskAvia.mono.sln" | |
|
37 | ] | |
|
26 | "problemMatcher": "$msCompile" | |
|
38 | 27 | }, |
|
39 | 28 | { |
|
40 |
"taskName": " |
|
|
29 | "taskName": "test", | |
|
41 | 30 | "isTestCommand": true, |
|
42 | "suppressTaskName": true, | |
|
43 | 31 | // Show the output window only if unrecognized errors occur. |
|
44 | 32 | "showOutput": "always", |
|
45 | 33 | // Use the standard MS compiler pattern to detect errors, warnings and infos |
|
46 |
"problemMatcher": "$msCompile" |
|
|
47 | ||
|
48 | "args" : [ | |
|
49 | "/t:runtests", | |
|
50 | "/p:Configuration=DebugMono", | |
|
51 | "Pallada.PoiskAvia.mono.sln" | |
|
52 | ] | |
|
34 | "problemMatcher": "$msCompile" | |
|
53 | 35 | } |
|
54 | 36 | ] |
|
55 | 37 | } No newline at end of file |
@@ -1,20 +1,25 | |||
|
1 |
ο»Ώ<Project Sdk="Microsoft.NET.Sdk"> |
|
|
2 |
<PropertyGroup Condition="'$(OSTYPE)'=='linux'"> |
|
|
3 |
<TargetFramework |
|
|
4 |
<FrameworkPathOverride Condition="'$(TargetFramework)'=='net46'">/usr/lib/mono/4.6-api/</FrameworkPathOverride> |
|
|
5 |
</PropertyGroup> |
|
|
6 | ||
|
7 |
<PropertyGroup Condition="'$(OSTYPE)'=='windows'"> |
|
|
8 |
<TargetFrameworks>netcoreapp2.0;net46</TargetFrameworks> |
|
|
9 |
</PropertyGroup> |
|
|
10 | ||
|
11 |
<PropertyGroup> |
|
|
12 |
<OutputType>Exe</OutputType> |
|
|
13 |
<IsPackable>false</IsPackable> |
|
|
14 |
</PropertyGroup> |
|
|
15 | ||
|
16 |
<ItemGroup> |
|
|
17 |
<ProjectReference Include="../Implab/Implab.csproj"/> |
|
|
18 | </ItemGroup> | |
|
19 | ||
|
20 | </Project> | |
|
1 | ο»Ώ<Project Sdk="Microsoft.NET.Sdk"> | |
|
2 | <PropertyGroup Condition="'$(OSTYPE)'=='linux'"> | |
|
3 | <TargetFramework>netcoreapp2.0</TargetFramework> | |
|
4 | <FrameworkPathOverride Condition="'$(TargetFramework)'=='net46'">/usr/lib/mono/4.6-api/</FrameworkPathOverride> | |
|
5 | </PropertyGroup> | |
|
6 | ||
|
7 | <PropertyGroup Condition="'$(OSTYPE)'=='windows'"> | |
|
8 | <TargetFrameworks>netcoreapp2.0;net46</TargetFrameworks> | |
|
9 | </PropertyGroup> | |
|
10 | ||
|
11 | <PropertyGroup> | |
|
12 | <OutputType>Exe</OutputType> | |
|
13 | <IsPackable>false</IsPackable> | |
|
14 | </PropertyGroup> | |
|
15 | ||
|
16 | <ItemGroup> | |
|
17 | <ProjectReference Include="../Implab/Implab.csproj" /> | |
|
18 | <ProjectReference Include="..\Implab.ServiceHost\Implab.ServiceHost.csproj" /> | |
|
19 | </ItemGroup> | |
|
20 | ||
|
21 | <ItemGroup> | |
|
22 | <PackageReference Include="Unity" Version="5.8.5" /> | |
|
23 | </ItemGroup> | |
|
24 | ||
|
25 | </Project> |
@@ -1,54 +1,40 | |||
|
1 | using Implab.Diagnostics; | |
|
2 |
using Implab. |
|
|
3 | using Implab.Parallels; | |
|
1 | using System; | |
|
2 | using Implab.ServiceHost.Unity; | |
|
4 | 3 | using Implab.Xml; |
|
5 |
using |
|
|
6 | using System.Collections.Concurrent; | |
|
7 | using System.Collections.Generic; | |
|
8 | using System.IO; | |
|
9 | using System.Linq; | |
|
10 | using System.Text; | |
|
11 | using System.Threading; | |
|
12 | using System.Threading.Tasks; | |
|
13 | using System.Xml; | |
|
14 | using System.Xml.Serialization; | |
|
4 | using Unity; | |
|
5 | using Unity.Injection; | |
|
15 | 6 | |
|
16 | 7 | namespace Implab.Playground { |
|
17 | using System.Diagnostics; | |
|
18 | using static Trace<Program>; | |
|
8 | ||
|
9 | public class Foo { | |
|
10 | public int IntValue { get; set; } | |
|
11 | ||
|
12 | public string StringValue { get; set; } | |
|
13 | ||
|
14 | } | |
|
15 | ||
|
16 | public class Container<T> { | |
|
17 | public Container() { | |
|
18 | ||
|
19 | } | |
|
20 | ||
|
21 | public Container(T instance) { | |
|
22 | Instance = instance; | |
|
23 | } | |
|
24 | ||
|
25 | public T Instance { get; set; } | |
|
26 | } | |
|
19 | 27 | |
|
20 | 28 | public class Program { |
|
21 | 29 | |
|
22 | 30 | static void Main(string[] args) { |
|
23 |
var |
|
|
24 | ||
|
25 | var source = Trace<Program>.TraceSource; | |
|
26 | source.Switch.Level = SourceLevels.All; | |
|
27 | ||
|
28 | source.Listeners.Add(listener); | |
|
31 | var container = new UnityContainer(); | |
|
29 | 32 | |
|
30 | var t = Environment.TickCount; | |
|
33 | var containerConfig = SerializationHelpers.DeserializeFromFile<ContainerElement>("data/sample.xml"); | |
|
31 | 34 | |
|
32 | Main().Wait(); | |
|
33 | ||
|
34 | Console.WriteLine($"Done: {Environment.TickCount - t} ms"); | |
|
35 | Console.ReadKey(); | |
|
35 | Console.WriteLine($"container: {containerConfig.Registrations.Count}"); | |
|
36 | 36 | } |
|
37 | 37 | |
|
38 | static async Task Main() { | |
|
39 | using (LogicalOperation(nameof(Main))) { | |
|
40 | Log("Start"); | |
|
41 | await SomeAsync(); | |
|
42 | Log("End"); | |
|
43 | } | |
|
44 | } | |
|
45 | 38 | |
|
46 | static async Task SomeAsync() { | |
|
47 | using (LogicalOperation(nameof(SomeAsync))) { | |
|
48 | Log("Do prepare"); | |
|
49 | await Task.Yield(); | |
|
50 | Log("Yield"); | |
|
51 | } | |
|
52 | } | |
|
53 | 39 | } |
|
54 | 40 | } |
@@ -1,6 +1,6 | |||
|
1 | 1 | <Project Sdk="Microsoft.NET.Sdk"> |
|
2 | 2 | <PropertyGroup Condition="'$(OSTYPE)'=='linux'"> |
|
3 | <TargetFrameworks>netcoreapp2.0</TargetFrameworks> | |
|
3 | <TargetFrameworks>netcoreapp2.0;net46</TargetFrameworks> | |
|
4 | 4 | <FrameworkPathOverride Condition="'$(TargetFramework)'=='net46'">/usr/lib/mono/4.5/</FrameworkPathOverride> |
|
5 | 5 | </PropertyGroup> |
|
6 | 6 |
@@ -1,4 +1,4 | |||
|
1 |
|
|
|
1 | ||
|
2 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 |
|
3 | 3 | # Visual Studio 15 |
|
4 | 4 | VisualStudioVersion = 15.0.27428.2005 |
@@ -9,10 +9,16 Project("{9A19103F-16F7-4668-BE54-9A1E7A | |||
|
9 | 9 | EndProject |
|
10 | 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab.Playground", "Implab.Playground\Implab.Playground.csproj", "{100DFEB0-75BE-436F-ADDF-1F46EF433F46}" |
|
11 | 11 | EndProject |
|
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab.ServiceHost", "Implab.ServiceHost\Implab.ServiceHost.csproj", "{8B79FCBE-50DD-40A0-9B5E-E572072E4868}" | |
|
13 | EndProject | |
|
12 | 14 | Global |
|
13 | 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|
14 | 16 | Debug|Any CPU = Debug|Any CPU |
|
15 | 17 | Release|Any CPU = Release|Any CPU |
|
18 | Debug|x64 = Debug|x64 | |
|
19 | Debug|x86 = Debug|x86 | |
|
20 | Release|x64 = Release|x64 | |
|
21 | Release|x86 = Release|x86 | |
|
16 | 22 | EndGlobalSection |
|
17 | 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|
18 | 24 | {FF2052B6-9C8F-4022-A347-F07ABF635885}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
@@ -27,6 +33,18 Global | |||
|
27 | 33 | {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
28 | 34 | {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
29 | 35 | {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release|Any CPU.Build.0 = Release|Any CPU |
|
36 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |
|
37 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|Any CPU.Build.0 = Debug|Any CPU | |
|
38 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|x64.ActiveCfg = Debug|x64 | |
|
39 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|x64.Build.0 = Debug|x64 | |
|
40 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|x86.ActiveCfg = Debug|x86 | |
|
41 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Debug|x86.Build.0 = Debug|x86 | |
|
42 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|Any CPU.ActiveCfg = Release|Any CPU | |
|
43 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|Any CPU.Build.0 = Release|Any CPU | |
|
44 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|x64.ActiveCfg = Release|x64 | |
|
45 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|x64.Build.0 = Release|x64 | |
|
46 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|x86.ActiveCfg = Release|x86 | |
|
47 | {8B79FCBE-50DD-40A0-9B5E-E572072E4868}.Release|x86.Build.0 = Release|x86 | |
|
30 | 48 | EndGlobalSection |
|
31 | 49 | GlobalSection(SolutionProperties) = preSolution |
|
32 | 50 | HideSolutionNode = FALSE |
General Comments 3
ok, latest stable version should be in default
You need to be logged in to leave comments.
Login now