add support for generating xml documentation

fixes #312
This commit is contained in:
Andrew Stanton-Nurse 2016-01-08 11:03:14 -08:00
parent 770026eef7
commit 78cef18e1c
22 changed files with 378 additions and 102 deletions

View file

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14 # Visual Studio 14
VisualStudioVersion = 14.0.24720.0 VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Cli", "src\Microsoft.DotNet.Cli\Microsoft.DotNet.Cli.xproj", "{60CF7E6C-D6C8-439D-B7B7-D8A27E29BE2C}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Cli", "src\Microsoft.DotNet.Cli\Microsoft.DotNet.Cli.xproj", "{60CF7E6C-D6C8-439D-B7B7-D8A27E29BE2C}"
EndProject EndProject
@ -49,18 +49,16 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.ProjectMod
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestApp", "test\TestApp\TestApp.xproj", "{58808BBC-371E-47D6-A3D0-4902145EDA4E}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestLibrary", "test\TestLibrary\TestLibrary.xproj", "{947DD232-8D9B-4B78-9C6A-94F807D2DD58}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LoadContextTest", "test\LoadContextTest\LoadContextTest.xproj", "{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "LoadContextTest", "test\LoadContextTest\LoadContextTest.xproj", "{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Tools.New", "src\Microsoft.DotNet.Tools.New\Microsoft.DotNet.Tools.New.xproj", "{BC765FBF-AD7A-4A99-9902-5540C5A74181}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Tools.New", "src\Microsoft.DotNet.Tools.New\Microsoft.DotNet.Tools.New.xproj", "{BC765FBF-AD7A-4A99-9902-5540C5A74181}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{0722D325-24C8-4E83-B5AF-0A083E7F0749}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{0722D325-24C8-4E83-B5AF-0A083E7F0749}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "dotnet-restore", "src\dotnet-restore\dotnet-restore.xproj", "{79620410-4EC7-4A38-A8C3-EE81243F818E}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "dotnet-restore", "src\dotnet-restore\dotnet-restore.xproj", "{79620410-4EC7-4A38-A8C3-EE81243F818E}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MultiProjectValidator", "tools\MultiProjectValidator\MultiProjectValidator.xproj", "{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MultiProjectValidator", "tools\MultiProjectValidator\MultiProjectValidator.xproj", "{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.ProjectModel.Server", "src\Microsoft.DotNet.ProjectModel.Server\Microsoft.DotNet.ProjectModel.Server.xproj", "{1EA9AF94-5494-40DD-A05B-9D564572CCFC}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.ProjectModel.Server", "src\Microsoft.DotNet.ProjectModel.Server\Microsoft.DotNet.ProjectModel.Server.xproj", "{1EA9AF94-5494-40DD-A05B-9D564572CCFC}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.ProjectModel.Server.Tests", "test\Microsoft.DotNet.ProjectModel.Server.Tests\Microsoft.DotNet.ProjectModel.Server.Tests.xproj", "{11C77123-E4DA-499F-8900-80C88C2C69F2}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.ProjectModel.Server.Tests", "test\Microsoft.DotNet.ProjectModel.Server.Tests\Microsoft.DotNet.ProjectModel.Server.Tests.xproj", "{11C77123-E4DA-499F-8900-80C88C2C69F2}"
@ -70,8 +68,21 @@ EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.DependencyModel", "src\Microsoft.Extensions.DependencyModel\Microsoft.Extensions.DependencyModel.xproj", "{688870C8-9843-4F9E-8576-D39290AD0F25}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.DependencyModel", "src\Microsoft.Extensions.DependencyModel\Microsoft.Extensions.DependencyModel.xproj", "{688870C8-9843-4F9E-8576-D39290AD0F25}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Tools.Compiler.Fsc", "src\Microsoft.DotNet.Tools.Compiler.Fsc\Microsoft.DotNet.Tools.Compiler.Fsc.xproj", "{74F25188-BF63-4BF3-879B-B6CDB11ED608}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Tools.Compiler.Fsc", "src\Microsoft.DotNet.Tools.Compiler.Fsc\Microsoft.DotNet.Tools.Compiler.Fsc.xproj", "{74F25188-BF63-4BF3-879B-B6CDB11ED608}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "E2E", "test\E2E\E2E.xproj", "{65741CB1-8AEE-4C66-8198-10A7EA0E4258}" Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "E2E", "test\E2E\E2E.xproj", "{65741CB1-8AEE-4C66-8198-10A7EA0E4258}"
EndProject EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.DotNet.Tools.Test.Utilities", "test\Microsoft.DotNet.Tools.Tests.Utilities\Microsoft.DotNet.Tools.Test.Utilities.xproj", "{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestProjects", "TestProjects", "{713CBFBB-5392-438D-B766-A9A585EF1BB8}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestLibrary", "test\TestProjects\TestLibrary\TestLibrary.xproj", "{947DD232-8D9B-4B78-9C6A-94F807D2DD58}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestApp", "test\TestProjects\TestApp\TestApp.xproj", "{58808BBC-371E-47D6-A3D0-4902145EDA4E}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestAppWithArgs", "test\TestProjects\TestAppWithArgs\TestAppWithArgs.xproj", "{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestAppWithContents", "test\TestProjects\TestAppWithContents\TestAppWithContents.xproj", "{0138CB8F-4AA9-4029-A21E-C07C30F425BA}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -372,38 +383,6 @@ Global
{C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU {C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU {C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {C7AF0290-EF0D-44DC-9EDC-600803B664F8}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|x64.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|x64.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|Any CPU.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|x64.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|x64.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|Any CPU.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|x64.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|x64.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|Any CPU.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|Any CPU.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|x64.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|x64.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|x64.ActiveCfg = Debug|Any CPU {7A75ACC4-3C2F-44E1-B492-0EC08704E9FF}.Debug|x64.ActiveCfg = Debug|Any CPU
@ -436,6 +415,22 @@ Global
{BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU {BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU {BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {BC765FBF-AD7A-4A99-9902-5540C5A74181}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|x64.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|x64.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|Any CPU.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|x64.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|x64.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|Any CPU.Build.0 = Debug|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|x64.ActiveCfg = Debug|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.Debug|x64.ActiveCfg = Debug|Any CPU
@ -452,6 +447,38 @@ Global
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {08A68C6A-86F6-4ED2-89A7-B166D33E9F85}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|x64.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|x64.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|Any CPU.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|x64.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|x64.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|x64.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|x64.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|Any CPU.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|x64.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|x64.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|Any CPU.Build.0 = Debug|Any CPU {0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|x64.ActiveCfg = Debug|Any CPU {0A309227-A9D8-4DDF-88DD-326B57B04379}.Debug|x64.ActiveCfg = Debug|Any CPU
@ -500,54 +527,6 @@ Global
{74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU {74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU {74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {74F25188-BF63-4BF3-879B-B6CDB11ED608}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|x64.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Debug|x64.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|Any CPU.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|x64.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.Release|x64.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{79620410-4EC7-4A38-A8C3-EE81243F818E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|x64.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Debug|x64.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|Any CPU.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|x64.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.Release|x64.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{1EA9AF94-5494-40DD-A05B-9D564572CCFC}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|x64.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Debug|x64.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|Any CPU.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|x64.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.Release|x64.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{11C77123-E4DA-499F-8900-80C88C2C69F2}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|Any CPU.Build.0 = Debug|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|x64.ActiveCfg = Debug|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.Debug|x64.ActiveCfg = Debug|Any CPU
@ -564,6 +543,86 @@ Global
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {65741CB1-8AEE-4C66-8198-10A7EA0E4258}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Debug|x64.ActiveCfg = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Debug|x64.Build.0 = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Release|Any CPU.Build.0 = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Release|x64.ActiveCfg = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.Release|x64.Build.0 = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|Any CPU.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|x64.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Debug|x64.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|Any CPU.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|Any CPU.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|x64.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.Release|x64.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{947DD232-8D9B-4B78-9C6A-94F807D2DD58}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|x64.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Debug|x64.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|Any CPU.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|x64.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.Release|x64.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{58808BBC-371E-47D6-A3D0-4902145EDA4E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Debug|x64.ActiveCfg = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Debug|x64.Build.0 = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Release|Any CPU.Build.0 = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Release|x64.ActiveCfg = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.Release|x64.Build.0 = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Debug|x64.ActiveCfg = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Debug|x64.Build.0 = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Release|Any CPU.Build.0 = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Release|x64.ActiveCfg = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.Release|x64.Build.0 = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{0138CB8F-4AA9-4029-A21E-C07C30F425BA}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -587,17 +646,21 @@ Global
{DCDFE282-03DE-4DBC-B90C-CC3CE3EC8162} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {DCDFE282-03DE-4DBC-B90C-CC3CE3EC8162} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{F003F228-2AE2-4E9D-877B-93EB773B5061} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {F003F228-2AE2-4E9D-877B-93EB773B5061} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{C7AF0290-EF0D-44DC-9EDC-600803B664F8} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {C7AF0290-EF0D-44DC-9EDC-600803B664F8} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{58808BBC-371E-47D6-A3D0-4902145EDA4E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{947DD232-8D9B-4B78-9C6A-94F807D2DD58} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{7A75ACC4-3C2F-44E1-B492-0EC08704E9FF} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} {7A75ACC4-3C2F-44E1-B492-0EC08704E9FF} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{BC765FBF-AD7A-4A99-9902-5540C5A74181} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {BC765FBF-AD7A-4A99-9902-5540C5A74181} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{79620410-4EC7-4A38-A8C3-EE81243F818E} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{08A68C6A-86F6-4ED2-89A7-B166D33E9F85} = {0722D325-24C8-4E83-B5AF-0A083E7F0749} {08A68C6A-86F6-4ED2-89A7-B166D33E9F85} = {0722D325-24C8-4E83-B5AF-0A083E7F0749}
{1EA9AF94-5494-40DD-A05B-9D564572CCFC} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{11C77123-E4DA-499F-8900-80C88C2C69F2} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{0A309227-A9D8-4DDF-88DD-326B57B04379} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {0A309227-A9D8-4DDF-88DD-326B57B04379} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{688870C8-9843-4F9E-8576-D39290AD0F25} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {688870C8-9843-4F9E-8576-D39290AD0F25} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{74F25188-BF63-4BF3-879B-B6CDB11ED608} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {74F25188-BF63-4BF3-879B-B6CDB11ED608} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{79620410-4EC7-4A38-A8C3-EE81243F818E} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{1EA9AF94-5494-40DD-A05B-9D564572CCFC} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{11C77123-E4DA-499F-8900-80C88C2C69F2} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{65741CB1-8AEE-4C66-8198-10A7EA0E4258} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} {65741CB1-8AEE-4C66-8198-10A7EA0E4258} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{E4F46EAB-B5A5-4E60-9B9D-40A1FADBF45C} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{713CBFBB-5392-438D-B766-A9A585EF1BB8} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{947DD232-8D9B-4B78-9C6A-94F807D2DD58} = {713CBFBB-5392-438D-B766-A9A585EF1BB8}
{58808BBC-371E-47D6-A3D0-4902145EDA4E} = {713CBFBB-5392-438D-B766-A9A585EF1BB8}
{DA8E0E9E-A6D6-4583-864C-8F40465E3A48} = {713CBFBB-5392-438D-B766-A9A585EF1BB8}
{0138CB8F-4AA9-4029-A21E-C07C30F425BA} = {713CBFBB-5392-438D-B766-A9A585EF1BB8}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -13,6 +13,7 @@ $TestProjects = @(
"E2E", "E2E",
"StreamForwarderTests" "StreamForwarderTests"
"Microsoft.DotNet.Tools.Publish.Tests" "Microsoft.DotNet.Tools.Publish.Tests"
"Microsoft.DotNet.Tools.Compiler.Tests"
) )
# Publish each test project # Publish each test project

View file

@ -22,6 +22,7 @@ TestProjects=( \
E2E \ E2E \
StreamForwarderTests \ StreamForwarderTests \
Microsoft.DotNet.Tools.Publish.Tests \ Microsoft.DotNet.Tools.Publish.Tests \
Microsoft.DotNet.Tools.Compiler.Tests \
) )
for project in ${TestProjects[@]} for project in ${TestProjects[@]}

View file

@ -32,6 +32,8 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
internal static readonly OptionTemplate s_emitEntryPointTemplate = new OptionTemplate("emit-entry-point"); internal static readonly OptionTemplate s_emitEntryPointTemplate = new OptionTemplate("emit-entry-point");
internal static readonly OptionTemplate s_generateXmlDocumentation = new OptionTemplate("generate-xml-documentation");
public static CommonCompilerOptions Parse(ArgumentSyntax syntax) public static CommonCompilerOptions Parse(ArgumentSyntax syntax)
{ {
IReadOnlyList<string> defines = null; IReadOnlyList<string> defines = null;
@ -44,6 +46,7 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
bool? delaySign = null; bool? delaySign = null;
bool? publicSign = null; bool? publicSign = null;
bool? emitEntryPoint = null; bool? emitEntryPoint = null;
bool? generateXmlDocumentation = null;
Func<string, bool?> nullableBoolConverter = v => bool.Parse(v); Func<string, bool?> nullableBoolConverter = v => bool.Parse(v);
@ -76,6 +79,9 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
syntax.DefineOption(s_emitEntryPointTemplate.LongName, ref emitEntryPoint, syntax.DefineOption(s_emitEntryPointTemplate.LongName, ref emitEntryPoint,
nullableBoolConverter, "Output an executable console program"); nullableBoolConverter, "Output an executable console program");
syntax.DefineOption(s_generateXmlDocumentation.LongName, ref generateXmlDocumentation,
nullableBoolConverter, "Generate XML documentation file");
return new CommonCompilerOptions return new CommonCompilerOptions
{ {
Defines = defines, Defines = defines,
@ -87,7 +93,8 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
KeyFile = keyFile, KeyFile = keyFile,
DelaySign = delaySign, DelaySign = delaySign,
PublicSign = publicSign, PublicSign = publicSign,
EmitEntryPoint = emitEntryPoint EmitEntryPoint = emitEntryPoint,
GenerateXmlDocumentation = generateXmlDocumentation
}; };
} }
@ -103,6 +110,7 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
var delaySign = options.DelaySign; var delaySign = options.DelaySign;
var publicSign = options.PublicSign; var publicSign = options.PublicSign;
var emitEntryPoint = options.EmitEntryPoint; var emitEntryPoint = options.EmitEntryPoint;
var generateXmlDocumentation = options.GenerateXmlDocumentation;
var args = new List<string>(); var args = new List<string>();
@ -156,6 +164,11 @@ namespace Microsoft.DotNet.Cli.Compiler.Common
args.Add(s_emitEntryPointTemplate.ToLongArg(emitEntryPoint)); args.Add(s_emitEntryPointTemplate.ToLongArg(emitEntryPoint));
} }
if (generateXmlDocumentation != null)
{
args.Add(s_generateXmlDocumentation.ToLongArg(generateXmlDocumentation));
}
return args; return args;
} }
} }

View file

@ -31,6 +31,8 @@ namespace Microsoft.DotNet.ProjectModel
public bool? PreserveCompilationContext { get; set; } public bool? PreserveCompilationContext { get; set; }
public bool? GenerateXmlDocumentation { get; set; }
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
var other = obj as CommonCompilerOptions; var other = obj as CommonCompilerOptions;
@ -44,6 +46,7 @@ namespace Microsoft.DotNet.ProjectModel
DelaySign == other.DelaySign && DelaySign == other.DelaySign &&
PublicSign == other.PublicSign && PublicSign == other.PublicSign &&
EmitEntryPoint == other.EmitEntryPoint && EmitEntryPoint == other.EmitEntryPoint &&
GenerateXmlDocumentation == other.GenerateXmlDocumentation &&
PreserveCompilationContext == other.PreserveCompilationContext && PreserveCompilationContext == other.PreserveCompilationContext &&
Enumerable.SequenceEqual(Defines ?? Enumerable.Empty<string>(), other.Defines ?? Enumerable.Empty<string>()); Enumerable.SequenceEqual(Defines ?? Enumerable.Empty<string>(), other.Defines ?? Enumerable.Empty<string>());
} }
@ -120,6 +123,11 @@ namespace Microsoft.DotNet.ProjectModel
{ {
result.PreserveCompilationContext = option.PreserveCompilationContext; result.PreserveCompilationContext = option.PreserveCompilationContext;
} }
if (option.GenerateXmlDocumentation != null)
{
result.GenerateXmlDocumentation = option.GenerateXmlDocumentation;
}
} }
return result; return result;

View file

@ -42,7 +42,8 @@ namespace Microsoft.Extensions.DependencyModel
compilerOptions.KeyFile, compilerOptions.KeyFile,
compilerOptions.DelaySign, compilerOptions.DelaySign,
compilerOptions.PublicSign, compilerOptions.PublicSign,
compilerOptions.EmitEntryPoint); compilerOptions.EmitEntryPoint,
compilerOptions.GenerateXmlDocumentation);
} }
private static IEnumerable<Library> GetLibraries(IEnumerable<LibraryExport> dependencies, private static IEnumerable<Library> GetLibraries(IEnumerable<LibraryExport> dependencies,

View file

@ -535,6 +535,7 @@ namespace Microsoft.DotNet.ProjectModel
DelaySign = rawOptions.ValueAsNullableBoolean("delaySign"), DelaySign = rawOptions.ValueAsNullableBoolean("delaySign"),
PublicSign = rawOptions.ValueAsNullableBoolean("publicSign"), PublicSign = rawOptions.ValueAsNullableBoolean("publicSign"),
EmitEntryPoint = rawOptions.ValueAsNullableBoolean("emitEntryPoint"), EmitEntryPoint = rawOptions.ValueAsNullableBoolean("emitEntryPoint"),
GenerateXmlDocumentation = rawOptions.ValueAsNullableBoolean("xmlDoc"),
PreserveCompilationContext = rawOptions.ValueAsNullableBoolean("preserveCompilationContext") PreserveCompilationContext = rawOptions.ValueAsNullableBoolean("preserveCompilationContext")
}; };
} }

View file

@ -79,7 +79,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Csc
return returnCode; return returnCode;
} }
var translated = TranslateCommonOptions(commonOptions); var translated = TranslateCommonOptions(commonOptions, outputName);
var allArgs = new List<string>(translated); var allArgs = new List<string>(translated);
allArgs.AddRange(GetDefaultOptions()); allArgs.AddRange(GetDefaultOptions());
@ -131,7 +131,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Csc
return args; return args;
} }
private static IEnumerable<string> TranslateCommonOptions(CommonCompilerOptions options) private static IEnumerable<string> TranslateCommonOptions(CommonCompilerOptions options, string outputName)
{ {
List<string> commonArgs = new List<string>(); List<string> commonArgs = new List<string>();
@ -189,6 +189,11 @@ namespace Microsoft.DotNet.Tools.Compiler.Csc
commonArgs.Add("-publicsign"); commonArgs.Add("-publicsign");
} }
if (options.GenerateXmlDocumentation == true)
{
commonArgs.Add($"-doc:{Path.ChangeExtension(outputName, "xml")}");
}
if (options.EmitEntryPoint != true) if (options.EmitEntryPoint != true)
{ {
commonArgs.Add("-t:library"); commonArgs.Add("-t:library");

View file

@ -79,7 +79,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Fsc
return returnCode; return returnCode;
} }
var translated = TranslateCommonOptions(commonOptions); var translated = TranslateCommonOptions(commonOptions, outputName);
var allArgs = new List<string>(translated); var allArgs = new List<string>(translated);
allArgs.AddRange(GetDefaultOptions()); allArgs.AddRange(GetDefaultOptions());
@ -144,7 +144,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Fsc
return args; return args;
} }
private static IEnumerable<string> TranslateCommonOptions(CommonCompilerOptions options) private static IEnumerable<string> TranslateCommonOptions(CommonCompilerOptions options, string outputName)
{ {
List<string> commonArgs = new List<string>(); List<string> commonArgs = new List<string>();
@ -168,6 +168,11 @@ namespace Microsoft.DotNet.Tools.Compiler.Fsc
commonArgs.Add("--optimize"); commonArgs.Add("--optimize");
} }
if(options.GenerateXmlDocumentation == true)
{
commonArgs.Add($"--doc:{Path.ChangeExtension(outputName, "xml")}");
}
if (options.EmitEntryPoint != true) if (options.EmitEntryPoint != true)
{ {
commonArgs.Add("--target:library"); commonArgs.Add("--target:library");
@ -183,6 +188,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Fsc
commonArgs.Add($"--win32manifest:\"{win32manifestPath}\""); commonArgs.Add($"--win32manifest:\"{win32manifestPath}\"");
} }
} }
return commonArgs; return commonArgs;
} }

View file

@ -27,6 +27,8 @@ namespace Microsoft.Extensions.DependencyModel
public bool? EmitEntryPoint { get; } public bool? EmitEntryPoint { get; }
public bool? GenerateXmlDocumentation { get; }
public CompilationOptions(IEnumerable<string> defines, public CompilationOptions(IEnumerable<string> defines,
string languageVersion, string languageVersion,
string platform, string platform,
@ -36,7 +38,8 @@ namespace Microsoft.Extensions.DependencyModel
string keyFile, string keyFile,
bool? delaySign, bool? delaySign,
bool? publicSign, bool? publicSign,
bool? emitEntryPoint) bool? emitEntryPoint,
bool? generateXmlDocumentation)
{ {
Defines = defines; Defines = defines;
LanguageVersion = languageVersion; LanguageVersion = languageVersion;
@ -48,6 +51,7 @@ namespace Microsoft.Extensions.DependencyModel
DelaySign = delaySign; DelaySign = delaySign;
PublicSign = publicSign; PublicSign = publicSign;
EmitEntryPoint = emitEntryPoint; EmitEntryPoint = emitEntryPoint;
GenerateXmlDocumentation = generateXmlDocumentation;
} }
} }
} }

View file

@ -55,7 +55,8 @@ namespace Microsoft.Extensions.DependencyModel
compilationOptionsObject[DependencyContextStrings.KeyFilePropertyName]?.Value<string>(), compilationOptionsObject[DependencyContextStrings.KeyFilePropertyName]?.Value<string>(),
compilationOptionsObject[DependencyContextStrings.DelaySignPropertyName]?.Value<bool>(), compilationOptionsObject[DependencyContextStrings.DelaySignPropertyName]?.Value<bool>(),
compilationOptionsObject[DependencyContextStrings.PublicSignPropertyName]?.Value<bool>(), compilationOptionsObject[DependencyContextStrings.PublicSignPropertyName]?.Value<bool>(),
compilationOptionsObject[DependencyContextStrings.EmitEntryPointPropertyName]?.Value<bool>() compilationOptionsObject[DependencyContextStrings.EmitEntryPointPropertyName]?.Value<bool>(),
compilationOptionsObject[DependencyContextStrings.GenerateXmlDocumentationPropertyName]?.Value<bool>()
); );
} }

View file

@ -44,5 +44,7 @@ namespace Microsoft.Extensions.DependencyModel
internal const string PublicSignPropertyName = "publicSign"; internal const string PublicSignPropertyName = "publicSign";
internal const string EmitEntryPointPropertyName = "emitEntryPoint"; internal const string EmitEntryPointPropertyName = "emitEntryPoint";
internal const string GenerateXmlDocumentationPropertyName = "xmlDoc";
} }
} }

View file

@ -0,0 +1,67 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.IO;
using Microsoft.DotNet.Tools.Test.Utilities;
using Xunit;
namespace Microsoft.DotNet.Tools.Publish.Tests
{
public class CompilerTests : TestBase
{
private string _testProjectsRoot = @"TestProjects";
[Fact]
public void XmlDocumentationFileIsGenerated()
{
// create unique directories in the 'temp' folder
var root = Temp.CreateDirectory();
var testLibDir = root.CreateDirectory("TestLibrary");
// copy projects to the temp dir and restore them
CopyProjectToTempDir(Path.Combine(_testProjectsRoot, "TestLibrary"), testLibDir);
RunRestore(testLibDir.Path);
// run compile
var outputDir = Path.Combine(testLibDir.Path, "bin");
var testProject = GetProjectPath(testLibDir);
var buildCommand = new BuildCommand(testProject, output: outputDir);
var result = buildCommand.ExecuteWithCapturedOutput();
result.Should().Pass();
// Should have triggered some compiler warnings about missing XML doc comments
Assert.True(result.StdErr.Contains("warning CS1591"));
// verify the output xml file
var outputXml = Path.Combine(outputDir, "TestLibrary.xml");
Assert.True(File.Exists(outputXml));
Assert.Contains("Gets the message from the helper", File.ReadAllText(outputXml));
}
private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
{
// copy all the files to temp dir
foreach (var file in Directory.EnumerateFiles(projectDir))
{
// never copy project.lock.json. All the tests are expected to call 'dotnet restore'
if (file.ToLower().EndsWith("project.lock.json"))
{
continue;
}
tempDir.CopyFile(file);
}
}
private string GetProjectPath(TempDirectory projectDir)
{
return Path.Combine(projectDir.Path, "project.json");
}
private void RunRestore(string args)
{
var restoreCommand = new RestoreCommand();
restoreCommand.Execute($"--quiet {args}").Should().Pass();
}
}
}

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0.23107" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.23107</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>833ffee1-7eed-4f51-8dfd-946d48893d6e</ProjectGuid>
<RootNamespace>Microsoft.DotNet.Tools.Compiler.Tests</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>

View file

@ -0,0 +1,23 @@
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.0.0-rc2-23704",
"Microsoft.NETCore.TestHost" : "1.0.0-*",
"xunit": "2.1.0",
"xunit.console.netcore": "1.0.2-prerelease-00101",
"xunit.netcore.extensions": "1.0.0-prerelease-*",
"xunit.runner.utility": "2.1.0",
"Microsoft.DotNet.Tools.Tests.Utilities": { "target": "project" },
"Microsoft.DotNet.Cli.Utils": {
"target": "project",
"type": "build"
}
},
"frameworks": {
"dnxcore50": { }
}
}

View file

@ -174,6 +174,12 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
return base.Execute(args); return base.Execute(args);
} }
public override CommandResult ExecuteWithCapturedOutput(string args = "")
{
args = $"build {BuildArgs()} {args}";
return base.ExecuteWithCapturedOutput(args);
}
public string GetOutputExecutableName() public string GetOutputExecutableName()
{ {
var result = _project.Name; var result = _project.Name;

View file

@ -16,7 +16,7 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
_command = command; _command = command;
} }
public virtual CommandResult Execute(string args) public virtual CommandResult Execute(string args = "")
{ {
Console.WriteLine($"Executing - {_command} {args}"); Console.WriteLine($"Executing - {_command} {args}");
var commandResult = Command.Create(_command, args) var commandResult = Command.Create(_command, args)
@ -27,7 +27,7 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
return commandResult; return commandResult;
} }
public virtual CommandResult ExecuteWithCapturedOutput(string args) public virtual CommandResult ExecuteWithCapturedOutput(string args = "")
{ {
Console.WriteLine($"Executing (Captured Output) - {_command} {args}"); Console.WriteLine($"Executing (Captured Output) - {_command} {args}");
var commandResult = Command.Create(_command, args) var commandResult = Command.Create(_command, args)

View file

@ -40,10 +40,20 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
public virtual void Dispose() public virtual void Dispose()
{ {
if (_temp != null) if (_temp != null && !PreserveTemp())
{ {
_temp.Dispose(); _temp.Dispose();
} }
} }
// Quick-n-dirty way to allow the temp output to be preserved when running tests
private bool PreserveTemp()
{
var val = Environment.GetEnvironmentVariable("DOTNET_TEST_PRESERVE_TEMP");
return !string.IsNullOrEmpty(val) && (
string.Equals("true", val, StringComparison.OrdinalIgnoreCase) ||
string.Equals("1", val, StringComparison.OrdinalIgnoreCase) ||
string.Equals("on", val, StringComparison.OrdinalIgnoreCase));
}
} }
} }

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0.23107" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.23107</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>da8e0e9e-a6d6-4583-864c-8f40465e3a48</ProjectGuid>
<RootNamespace>TestAppWithArgs</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0.23107" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.23107</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>0138cb8f-4aa9-4029-a21e-c07c30f425ba</ProjectGuid>
<RootNamespace>TestAppWithContents</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>

View file

@ -7,6 +7,10 @@ namespace TestLibrary
{ {
public static class Helper public static class Helper
{ {
/// <summary>
/// Gets the message from the helper. This comment is here to help test XML documentation file generation, please do not remove it.
/// </summary>
/// <returns>A message</returns>
public static string GetMessage() public static string GetMessage()
{ {
return "This string came from the test library!"; return "This string came from the test library!";

View file

@ -1,5 +1,8 @@
{ {
"version": "1.0.0-*", "version": "1.0.0-*",
"compilationOptions": {
"xmlDoc": true
},
"dependencies": { "dependencies": {
"System.Runtime": "4.0.21-beta-23428", "System.Runtime": "4.0.21-beta-23428",
"System.Console": "4.0.0-beta-23428" "System.Console": "4.0.0-beta-23428"