Konvert to KoreBuild

This commit is contained in:
Ryan Nowak 2018-03-09 15:35:21 -08:00 committed by Steve Sanderson
parent 49c0596405
commit d175b4d38a
38 changed files with 946 additions and 234 deletions

View File

@ -15,13 +15,13 @@ test: 'off'
deploy: 'off' deploy: 'off'
os: Visual Studio 2017 Preview os: Visual Studio 2017 Preview
build_script: build_script:
- dotnet build Blazor.sln - build.cmd /p:SkipTests=true
before_test: before_test:
- choco install googlechrome --ignore-checksum - choco install googlechrome --ignore-checksum
- npm install -g selenium-standalone - npm install -g selenium-standalone
- selenium-standalone install - selenium-standalone install
- ps: $SeleniumProcess = Start-Process "selenium-standalone" -ArgumentList "start" -PassThru - ps: $SeleniumProcess = Start-Process "selenium-standalone" -ArgumentList "start" -PassThru
test_script: test_script:
- dotnet test test\AllTests.proj - build.cmd /t:Test /p:BlazorAllTests=true
after_test: after_test:
- ps: Stop-Process -Id $SeleniumProcess.Id - ps: Stop-Process -Id $SeleniumProcess.Id

View File

@ -35,6 +35,6 @@ install:
- curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel Current --version latest --install-dir "$DOTNET_INSTALL_DIR" - curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel Current --version latest --install-dir "$DOTNET_INSTALL_DIR"
- export PATH="$DOTNET_INSTALL_DIR:$PATH" - export PATH="$DOTNET_INSTALL_DIR:$PATH"
script: script:
- dotnet build Blazor.sln - ./build.sh /p:SkipTests=true
- selenium-standalone start & - selenium-standalone start &
- dotnet test test/AllTests.proj - ./build.sh /t:Test /p:BlazorAllTests=true

View File

@ -85,136 +85,262 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Client"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Server", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Server\BlazorHosted.CSharp.Server.csproj", "{78ED9932-0912-4F36-8F82-33DE850E7A33}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Server", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Server\BlazorHosted.CSharp.Server.csproj", "{78ED9932-0912-4F36-8F82-33DE850E7A33}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorHosted.CSharp.Shared", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj", "{F3E02B21-1127-431A-B832-0E53CB72097B}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Shared", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj", "{F3E02B21-1127-431A-B832-0E53CB72097B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Blazor.Razor.Extensions.Test", "test\Microsoft.AspNetCore.Blazor.Razor.Extensions.Test\Microsoft.AspNetCore.Blazor.Razor.Extensions.Test.csproj", "{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor.Razor.Extensions.Test", "test\Microsoft.AspNetCore.Blazor.Razor.Extensions.Test\Microsoft.AspNetCore.Blazor.Razor.Extensions.Test.csproj", "{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tooling", "tooling", "{F563ABB6-85FB-4CFC-B0D2-1D5130E8246D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LanguageServices.Blazor", "tooling\Microsoft.VisualStudio.LanguageServices.Blazor\Microsoft.VisualStudio.LanguageServices.Blazor.csproj", "{43E39257-7DC1-46BD-9BD9-2319A1313D07}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.VisualStudio.BlazorExtension", "tooling\Microsoft.VisualStudio.BlazorExtension\Microsoft.VisualStudio.BlazorExtension.csproj", "{9088E4E4-B855-457F-AE9E-D86709A5E1F4}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
DebugNoVSIX|Any CPU = DebugNoVSIX|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
ReleaseNoVSIX|Any CPU = ReleaseNoVSIX|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Debug|Any CPU.Build.0 = Debug|Any CPU {39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Release|Any CPU.ActiveCfg = Release|Any CPU {39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Release|Any CPU.Build.0 = Release|Any CPU {39FEC72D-AF52-47A3-B63D-7BF0E4335248}.Release|Any CPU.Build.0 = Release|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{39FEC72D-AF52-47A3-B63D-7BF0E4335248}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Debug|Any CPU.Build.0 = Debug|Any CPU {7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Release|Any CPU.ActiveCfg = Release|Any CPU {7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Release|Any CPU.Build.0 = Release|Any CPU {7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.Release|Any CPU.Build.0 = Release|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{7C53BB6B-5906-4753-B507-C9FCC2F7E5B7}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A694793-3257-4D37-BB74-4A41B3894685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A694793-3257-4D37-BB74-4A41B3894685}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A694793-3257-4D37-BB74-4A41B3894685}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.Release|Any CPU.Build.0 = Release|Any CPU {5A694793-3257-4D37-BB74-4A41B3894685}.Release|Any CPU.Build.0 = Release|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{5A694793-3257-4D37-BB74-4A41B3894685}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {118484D3-3993-45CE-97C1-6F28A517529B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.Debug|Any CPU.Build.0 = Debug|Any CPU {118484D3-3993-45CE-97C1-6F28A517529B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.Release|Any CPU.ActiveCfg = Release|Any CPU {118484D3-3993-45CE-97C1-6F28A517529B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.Release|Any CPU.Build.0 = Release|Any CPU {118484D3-3993-45CE-97C1-6F28A517529B}.Release|Any CPU.Build.0 = Release|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{118484D3-3993-45CE-97C1-6F28A517529B}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Release|Any CPU.Build.0 = Release|Any CPU {5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.Release|Any CPU.Build.0 = Release|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Debug|Any CPU.Build.0 = Debug|Any CPU {06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Release|Any CPU.ActiveCfg = Release|Any CPU {06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Release|Any CPU.Build.0 = Release|Any CPU {06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Release|Any CPU.Build.0 = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.Build.0 = Release|Any CPU {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.Build.0 = Release|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{BB34336F-E68E-4411-9805-CAAA919F5EA1}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.Build.0 = Debug|Any CPU {B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Release|Any CPU.ActiveCfg = Release|Any CPU {B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Release|Any CPU.Build.0 = Release|Any CPU {B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Release|Any CPU.Build.0 = Release|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F8996835-41F7-4663-91DF-3B5652ADC37D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.Debug|Any CPU.Build.0 = Debug|Any CPU {F8996835-41F7-4663-91DF-3B5652ADC37D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8996835-41F7-4663-91DF-3B5652ADC37D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.Release|Any CPU.Build.0 = Release|Any CPU {F8996835-41F7-4663-91DF-3B5652ADC37D}.Release|Any CPU.Build.0 = Release|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{F8996835-41F7-4663-91DF-3B5652ADC37D}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Debug|Any CPU.Build.0 = Debug|Any CPU {7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Release|Any CPU.ActiveCfg = Release|Any CPU {7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Release|Any CPU.Build.0 = Release|Any CPU {7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.Release|Any CPU.Build.0 = Release|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{7FD8C650-74B3-4153-AEA1-00F4F6AF393D}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B241434A-1642-44CC-AE9A-2012B5C5BD02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.Debug|Any CPU.Build.0 = Debug|Any CPU {B241434A-1642-44CC-AE9A-2012B5C5BD02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.Release|Any CPU.ActiveCfg = Release|Any CPU {B241434A-1642-44CC-AE9A-2012B5C5BD02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.Release|Any CPU.Build.0 = Release|Any CPU {B241434A-1642-44CC-AE9A-2012B5C5BD02}.Release|Any CPU.Build.0 = Release|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{B241434A-1642-44CC-AE9A-2012B5C5BD02}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {21EF76A4-63CC-455D-907C-F86C9E442CEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.Debug|Any CPU.Build.0 = Debug|Any CPU {21EF76A4-63CC-455D-907C-F86C9E442CEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.Release|Any CPU.ActiveCfg = Release|Any CPU {21EF76A4-63CC-455D-907C-F86C9E442CEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.Release|Any CPU.Build.0 = Release|Any CPU {21EF76A4-63CC-455D-907C-F86C9E442CEC}.Release|Any CPU.Build.0 = Release|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{21EF76A4-63CC-455D-907C-F86C9E442CEC}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Release|Any CPU.Build.0 = Release|Any CPU {7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.Release|Any CPU.Build.0 = Release|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{7F0BF3EA-6985-49F6-8070-0BBA41448BB0}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Debug|Any CPU.Build.0 = Debug|Any CPU {709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Debug|Any CPU.Build.0 = Debug|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Release|Any CPU.ActiveCfg = Release|Any CPU {709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Release|Any CPU.ActiveCfg = Release|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Release|Any CPU.Build.0 = Release|Any CPU {709C7EBE-EB93-4F6D-9491-D714B0D2E898}.Release|Any CPU.Build.0 = Release|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{709C7EBE-EB93-4F6D-9491-D714B0D2E898}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Release|Any CPU.Build.0 = Release|Any CPU {8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.Release|Any CPU.Build.0 = Release|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{8B3D0F1C-0E38-4E6D-BFF1-C4FDA0CD9815}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Release|Any CPU.Build.0 = Release|Any CPU {8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.Release|Any CPU.Build.0 = Release|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{8A19B1CE-9B62-4440-93B3-152DDBB39D0A}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4874AFF4-335D-4037-8858-BBBB987C124B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.Debug|Any CPU.Build.0 = Debug|Any CPU {4874AFF4-335D-4037-8858-BBBB987C124B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.Release|Any CPU.ActiveCfg = Release|Any CPU {4874AFF4-335D-4037-8858-BBBB987C124B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.Release|Any CPU.Build.0 = Release|Any CPU {4874AFF4-335D-4037-8858-BBBB987C124B}.Release|Any CPU.Build.0 = Release|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{4874AFF4-335D-4037-8858-BBBB987C124B}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8FD8636E-AFA5-434D-8857-06D02686741A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.Debug|Any CPU.Build.0 = Debug|Any CPU {8FD8636E-AFA5-434D-8857-06D02686741A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.Release|Any CPU.ActiveCfg = Release|Any CPU {8FD8636E-AFA5-434D-8857-06D02686741A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.Release|Any CPU.Build.0 = Release|Any CPU {8FD8636E-AFA5-434D-8857-06D02686741A}.Release|Any CPU.Build.0 = Release|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{8FD8636E-AFA5-434D-8857-06D02686741A}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Debug|Any CPU.Build.0 = Debug|Any CPU {2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Release|Any CPU.ActiveCfg = Release|Any CPU {2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Release|Any CPU.Build.0 = Release|Any CPU {2838CB6F-D2C7-4C0A-A994-C72E56F16984}.Release|Any CPU.Build.0 = Release|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{2838CB6F-D2C7-4C0A-A994-C72E56F16984}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {36706AC2-C851-4038-B161-9C1E44B668C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.Debug|Any CPU.Build.0 = Debug|Any CPU {36706AC2-C851-4038-B161-9C1E44B668C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.Release|Any CPU.ActiveCfg = Release|Any CPU {36706AC2-C851-4038-B161-9C1E44B668C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.Release|Any CPU.Build.0 = Release|Any CPU {36706AC2-C851-4038-B161-9C1E44B668C8}.Release|Any CPU.Build.0 = Release|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{36706AC2-C851-4038-B161-9C1E44B668C8}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D652A019-B765-4922-B7B8-3AB1C58338D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.Debug|Any CPU.Build.0 = Debug|Any CPU {D652A019-B765-4922-B7B8-3AB1C58338D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.Release|Any CPU.ActiveCfg = Release|Any CPU {D652A019-B765-4922-B7B8-3AB1C58338D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.Release|Any CPU.Build.0 = Release|Any CPU {D652A019-B765-4922-B7B8-3AB1C58338D7}.Release|Any CPU.Build.0 = Release|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{D652A019-B765-4922-B7B8-3AB1C58338D7}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EC2A38BF-6E77-4A8E-A731-15929544F29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.Debug|Any CPU.Build.0 = Debug|Any CPU {EC2A38BF-6E77-4A8E-A731-15929544F29C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.Release|Any CPU.ActiveCfg = Release|Any CPU {EC2A38BF-6E77-4A8E-A731-15929544F29C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.Release|Any CPU.Build.0 = Release|Any CPU {EC2A38BF-6E77-4A8E-A731-15929544F29C}.Release|Any CPU.Build.0 = Release|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{EC2A38BF-6E77-4A8E-A731-15929544F29C}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Debug|Any CPU.Build.0 = Debug|Any CPU {29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Release|Any CPU.ActiveCfg = Release|Any CPU {29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Release|Any CPU.Build.0 = Release|Any CPU {29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.Release|Any CPU.Build.0 = Release|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{29CD3FC6-49E3-4756-B5DF-E03B46E5CD45}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Debug|Any CPU.Build.0 = Debug|Any CPU {AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Release|Any CPU.ActiveCfg = Release|Any CPU {AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Release|Any CPU.Build.0 = Release|Any CPU {AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.Release|Any CPU.Build.0 = Release|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU {8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Release|Any CPU.Build.0 = Release|Any CPU {8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.Release|Any CPU.Build.0 = Release|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A092FA91-856B-4ACA-B1C2-10BDBA366185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Debug|Any CPU.Build.0 = Debug|Any CPU {A092FA91-856B-4ACA-B1C2-10BDBA366185}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Release|Any CPU.ActiveCfg = Release|Any CPU {A092FA91-856B-4ACA-B1C2-10BDBA366185}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Release|Any CPU.Build.0 = Release|Any CPU {A092FA91-856B-4ACA-B1C2-10BDBA366185}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Debug|Any CPU.Build.0 = Debug|Any CPU {7549444A-9C81-44DE-AD0D-2C55501EAAC7}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Release|Any CPU.ActiveCfg = Release|Any CPU {7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Release|Any CPU.Build.0 = Release|Any CPU {7549444A-9C81-44DE-AD0D-2C55501EAAC7}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78ED9932-0912-4F36-8F82-33DE850E7A33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Debug|Any CPU.Build.0 = Debug|Any CPU {78ED9932-0912-4F36-8F82-33DE850E7A33}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Release|Any CPU.ActiveCfg = Release|Any CPU {78ED9932-0912-4F36-8F82-33DE850E7A33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Release|Any CPU.Build.0 = Release|Any CPU {78ED9932-0912-4F36-8F82-33DE850E7A33}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3E02B21-1127-431A-B832-0E53CB72097B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3E02B21-1127-431A-B832-0E53CB72097B}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3E02B21-1127-431A-B832-0E53CB72097B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Release|Any CPU.Build.0 = Release|Any CPU {F3E02B21-1127-431A-B832-0E53CB72097B}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Debug|Any CPU.Build.0 = Debug|Any CPU {FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Release|Any CPU.ActiveCfg = Release|Any CPU {FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Release|Any CPU.Build.0 = Release|Any CPU {FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.Release|Any CPU.Build.0 = Release|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.Release|Any CPU.Build.0 = Release|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{43E39257-7DC1-46BD-9BD9-2319A1313D07}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.Build.0 = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -256,6 +382,8 @@ Global
{78ED9932-0912-4F36-8F82-33DE850E7A33} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8} {78ED9932-0912-4F36-8F82-33DE850E7A33} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{F3E02B21-1127-431A-B832-0E53CB72097B} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8} {F3E02B21-1127-431A-B832-0E53CB72097B} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{FF25111E-5A3E-48A3-96D8-08A2C5A2A91C} = {ADA3AE29-F6DE-49F6-8C7C-B321508CAE8E} {FF25111E-5A3E-48A3-96D8-08A2C5A2A91C} = {ADA3AE29-F6DE-49F6-8C7C-B321508CAE8E}
{43E39257-7DC1-46BD-9BD9-2319A1313D07} = {F563ABB6-85FB-4CFC-B0D2-1D5130E8246D}
{9088E4E4-B855-457F-AE9E-D86709A5E1F4} = {F563ABB6-85FB-4CFC-B0D2-1D5130E8246D}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {504DA352-6788-4DC0-8705-82167E72A4D3} SolutionGuid = {504DA352-6788-4DC0-8705-82167E72A4D3}

View File

@ -1,112 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tooling", "tooling", "{1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.VisualStudio.BlazorExtension", "tooling\Microsoft.VisualStudio.BlazorExtension\Microsoft.VisualStudio.BlazorExtension.csproj", "{9088E4E4-B855-457F-AE9E-D86709A5E1F4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LanguageServices.Blazor", "tooling\Microsoft.VisualStudio.LanguageServices.Blazor\Microsoft.VisualStudio.LanguageServices.Blazor.csproj", "{5884589D-4A06-4F5B-B983-8F8D34696550}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{74280251-105B-4618-A9D7-951076793E3D}"
ProjectSection(SolutionItems) = preProject
build\Key.snk = build\Key.snk
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{91810C0E-892D-40EF-BDC0-5470B37E255F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AngleSharpBuilder", "src\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj", "{E5067AD8-3AE7-442A-86C5-D19DBC48E961}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "anglesharp", "anglesharp", "{9DEA0869-2F17-419F-8F6A-53DCA898D3D6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor.Razor.Extensions", "src\Microsoft.AspNetCore.Blazor.Razor.Extensions\Microsoft.AspNetCore.Blazor.Razor.Extensions.csproj", "{319463A4-64C8-4A96-BEFD-2952BBD5FF67}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor.Templates", "src\Microsoft.AspNetCore.Blazor.Templates\Microsoft.AspNetCore.Blazor.Templates.csproj", "{EDD21533-C6E6-4F85-BE4F-10E06756E24C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x64.ActiveCfg = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x64.Build.0 = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x86.ActiveCfg = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x86.Build.0 = Debug|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.Build.0 = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x64.ActiveCfg = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x64.Build.0 = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x86.ActiveCfg = Release|Any CPU
{9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x86.Build.0 = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x64.ActiveCfg = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x64.Build.0 = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x86.ActiveCfg = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x86.Build.0 = Debug|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|Any CPU.Build.0 = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x64.ActiveCfg = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x64.Build.0 = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x86.ActiveCfg = Release|Any CPU
{5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x86.Build.0 = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x64.ActiveCfg = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x64.Build.0 = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x86.ActiveCfg = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x86.Build.0 = Debug|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|Any CPU.Build.0 = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x64.ActiveCfg = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x64.Build.0 = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x86.ActiveCfg = Release|Any CPU
{E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x86.Build.0 = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|Any CPU.Build.0 = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|x64.ActiveCfg = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|x64.Build.0 = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|x86.ActiveCfg = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Debug|x86.Build.0 = Debug|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|Any CPU.ActiveCfg = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|Any CPU.Build.0 = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|x64.ActiveCfg = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|x64.Build.0 = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|x86.ActiveCfg = Release|Any CPU
{319463A4-64C8-4A96-BEFD-2952BBD5FF67}.Release|x86.Build.0 = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|x64.ActiveCfg = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|x64.Build.0 = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|x86.ActiveCfg = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Debug|x86.Build.0 = Debug|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|Any CPU.Build.0 = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|x64.ActiveCfg = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|x64.Build.0 = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|x86.ActiveCfg = Release|Any CPU
{EDD21533-C6E6-4F85-BE4F-10E06756E24C}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9088E4E4-B855-457F-AE9E-D86709A5E1F4} = {1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB}
{5884589D-4A06-4F5B-B983-8F8D34696550} = {1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB}
{E5067AD8-3AE7-442A-86C5-D19DBC48E961} = {9DEA0869-2F17-419F-8F6A-53DCA898D3D6}
{9DEA0869-2F17-419F-8F6A-53DCA898D3D6} = {91810C0E-892D-40EF-BDC0-5470B37E255F}
{319463A4-64C8-4A96-BEFD-2952BBD5FF67} = {91810C0E-892D-40EF-BDC0-5470B37E255F}
{EDD21533-C6E6-4F85-BE4F-10E06756E24C} = {91810C0E-892D-40EF-BDC0-5470B37E255F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {248760B5-9F71-4110-8DBC-DDAB615AD88E}
EndGlobalSection
EndGlobal

View File

@ -1,15 +1,31 @@
<Project> <Project>
<Import
Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))\AspNetCoreSettings.props"
Condition=" '$(CI)' != 'true' AND '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))' != '' " />
<Import Project="version.props" /> <Import Project="version.props" />
<Import Project="build\dependencies.props" />
<Import Project="build\sources.props" />
<PropertyGroup> <PropertyGroup>
<Product>Microsoft ASP.NET Core Blazor</Product> <Product>Microsoft ASP.NET Core Blazor</Product>
<RepositoryUrl>https://github.com/aspnet/blazor</RepositoryUrl> <RepositoryUrl>https://github.com/aspnet/blazor</RepositoryUrl>
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot> <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\Key.snk</AssemblyOriginatorKeyFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<PackageOutputPath>$(MSBuildThisFileDirectory)artifacts\build</PackageOutputPath> <AssemblySigningCertName>Microsoft</AssemblySigningCertName>
<!-- Our customizations -->
<SignAssembly>false</SignAssembly>
<EnableApiCheck>false</EnableApiCheck>
<PublicSign>false</PublicSign>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
</ItemGroup>
<PropertyGroup> <PropertyGroup>
<RazorPackageVersion>2.1.0-preview2-30230</RazorPackageVersion> <RazorPackageVersion>2.1.0-preview2-30230</RazorPackageVersion>
</PropertyGroup> </PropertyGroup>

6
Directory.Build.targets Normal file
View File

@ -0,0 +1,6 @@
<Project>
<PropertyGroup>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(MicrosoftNETCoreApp20PackageVersion)</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(MicrosoftNETCoreApp21PackageVersion)</RuntimeFrameworkVersion>
</PropertyGroup>
</Project>

View File

@ -33,14 +33,15 @@ We are still *very early* in this project. There isn't yet anything you can down
## Build ## Build
Prerequisites: Prerequisites:
- [.NET Core SDK](https://dot.net/core) (>2.1.4)
- [Node.js](https://nodejs.org/) (>8.3) - [Node.js](https://nodejs.org/) (>8.3)
Run `dotnet build Blazor.sln` from the solution directory. The build script will acquire the required version of the .NET runtime and .NET SDK on first run.
## Run tests Run `build.cmd` or `build.sh` from the solution directory.
Run `dotnet test test/<dir>/<project>.Test.csproj` ## Run unit tests
Run `build.cmd /t:Test` or `build.sh /t:Test`
## Run end-to-end tests ## Run end-to-end tests
@ -52,35 +53,27 @@ Prerequisites:
Run `selenium-standalone start` Run `selenium-standalone start`
Run `dotnet test test\Microsoft.AspNetCore.Blazor.E2ETest\Microsoft.AspNetCore.Blazor.E2ETest.csproj` Run `build.cmd /t:Test /p:BlazorAllTests=true` or `build.sh /t:Test /p:BlazorAllTests=true`
## Run all tests ## Opening in Visual Studio
Install prerequisites for E2E tests
Run `dotnet test test\AllTests.proj`
## Build VS Tooling
Prerequisites: Prerequisites:
- Visual Studio 2017 15.6 (or newer) - Visual Studio 2017 15.7 preview 1 (or newer) - [download](https://www.visualstudio.com/thank-you-downloading-visual-studio/?ch=pre&sku=Enterprise&rel=15)
- Visual Studio extension development features (install via Visual Studio Installer)
Open a VS Developer Command Prompt We recommend getting the preview version of Visual Studio and updating it frequently. The Blazor
editing experience in Visual Studio depends on new features of the Razor language tooling and
will be updated frequently.
Run the following instructions from the solution directory. When installing Visual Studio choose the following workloads:
- ASP.NET and Web Development
- Visual Studio extension development features
```shell ## Developing the Blazor VS Tooling
msbuild BlazorTooling.sln /t:Restore
msbuild BlazorTooling.sln
```
## Use VS Tooling To do local development of the Blazor tooling experience in VS, select the `Microsoft.VisualStudio.BlazorExtension`
project and launch the debugger.
To install the Tooling following prerequisites must be installed first: The Blazor Visual Studio tooling will build as part of the command line build when on Windows.
- Visual Studio 2017 15.6 (or newer)
- Workload: ASP.NET and web development
## Contributing ## Contributing

2
build.cmd Normal file
View File

@ -0,0 +1,2 @@
@ECHO OFF
PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' default-build %*; exit $LASTEXITCODE"

8
build.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs)
chmod +x "$DIR/run.sh"; sync
"$DIR/run.sh" default-build "$@"

120
build/VSIX.targets Normal file
View File

@ -0,0 +1,120 @@
<Project>
<PropertyGroup>
<BuildVSIX Condition="'$(BuildVSIX)' ==''">true</BuildVSIX>
<RestoreDependsOn Condition="'$(OS)'=='Windows_NT' AND '$(BuildVSIX)' == 'true'">$(RestoreDependsOn);RestoreVSIX</RestoreDependsOn>
<PackageDependsOn Condition="'$(OS)'=='Windows_NT' AND '$(BuildVSIX)' == 'true'">$(PackageDependsOn);PackageVSIX</PackageDependsOn>
<GetArtifactInfoDependsOn Condition="'$(OS)'=='Windows_NT' AND '$(BuildVSIX)' == 'true'">$(GetArtifactInfoDependsOn);GetVSIXArtifactInfo</GetArtifactInfoDependsOn>
<VSIXName>Microsoft.VisualStudio.BlazorExtension</VSIXName>
<VSIXOutputPath>$(BuildDir)$(VSIXName).vsix</VSIXOutputPath>
<VSIXManifestOutputPath>$(BuildDir)$(VSIXName).json</VSIXManifestOutputPath>
<VSIXProject>$(RepositoryRoot)tooling\$(VSIXName)\$(VSIXName).csproj</VSIXProject>
<VSIXSymbolsOutputPath>$(BuildDir)$(VSIXName).pdb</VSIXSymbolsOutputPath>
<VSIXArtifactCategory>shipoob</VSIXArtifactCategory>
</PropertyGroup>
<Target
Name="GenerateVSIX"
DependsOnTargets="RestoreVSIX;PackageVSIX"
Condition="'$(OS)'=='Windows_NT'" />
<!-- This target is required so KoreBuild can generate a bill of materials with relevant information about the VSIX. -->
<Target Name="GetVSIXArtifactInfo">
<ItemGroup>
<ArtifactInfo Include="$(VSIXOutputPath)">
<ArtifactType>VsixPackage</ArtifactType>
<Version>$(PackageVersion)</Version>
<Category>$(VSIXArtifactCategory)</Category>
<PackageId>$(VSIXName)</PackageId>
</ArtifactInfo>
<ArtifactInfo Include="$(VSIXSymbolsOutputPath)">
<ArtifactType>SymbolsFile</ArtifactType>
<Category>$(VSIXArtifactCategory)</Category>
<Dependencies>$(VSIXName).vsix</Dependencies>
<DebugType>full</DebugType>
</ArtifactInfo>
<ArtifactInfo Include="$(VSIXManifestOutputPath)" Condition="'$(IsProductComponent)'=='true'">
<ArtifactType>VsixPackageManifestFile</ArtifactType>
<Category>$(VSIXArtifactCategory)</Category>
<Dependencies>$(VSIXName).vsix</Dependencies>
<PackageId>$(VSIXName)</PackageId>
</ArtifactInfo>
<FilesToSign Include="$(VSIXOutputPath)" Certificate="Vsix" />
<FilesToExcludeFromSigning Include="$(VSIXManifestOutputPath)" />
<FilesToExcludeFromSigning Include="$(VSIXSymbolsOutputPath)" />
</ItemGroup>
</Target>
<!--
VisualStudioMSBuildx86Path is set by the GetToolsets target in KoreBuild if a version of VS matching the requirements in korebuild.json is found.
-->
<Target Name="RestoreVSIX" DependsOnTargets="GetToolsets">
<PropertyGroup>
<VSIXResponseFilePath>$(LogOutputDir)vsix-restore.rsp</VSIXResponseFilePath>
</PropertyGroup>
<ItemGroup>
<MSBuildArguments Remove="@(MSBuildArguments)" />
<MSBuildArguments Include="
$(VSIXProject);
/t:Restore;
/m;
/v:m;
/p:Configuration=$(Configuration);
/p:BuildNumber=$(BuildNumber);" />
<MSBuildArguments Include="/p:DotNetPackageVersionPropsPath=$(DotNetPackageVersionPropsPath)" Condition="'$(DotNetPackageVersionPropsPath)' != ''" />
<MSBuildArguments Include="/p:DotNetRestoreSourcePropsPath=$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''" />
</ItemGroup>
<MakeDir Directories="$(LogOutputDir)" />
<WriteLinesToFile
File="$(VSIXResponseFilePath)"
Lines="@(MSBuildArguments)"
Overwrite="true" />
<Exec Command="&quot;$(VisualStudioMSBuildx86Path)&quot; @&quot;$(VSIXResponseFilePath)&quot;"
Condition="'$(VisualStudioMSBuildx86Path)' != ''" />
</Target>
<Target Name="PackageVSIX" DependsOnTargets="GetToolsets">
<Warning Text="Could not find a version of Visual Studio that has the Visual Studio SDK installed. This is required to build the Razor VSIX. Skipping."
Condition="'$(VisualStudioMSBuildx86Path)' == ''" />
<PropertyGroup>
<VSIXLogFilePath>$(LogOutputDir)vsix.log</VSIXLogFilePath>
<VSIXResponseFilePath>$(LogOutputDir)vsix-build.rsp</VSIXResponseFilePath>
</PropertyGroup>
<ItemGroup>
<MSBuildArguments Remove="@(MSBuildArguments)" />
<MSBuildArguments Include="
$(VSIXProject);
/m;
/v:M;
/fl;
/flp:LogFile=$(VSIXLogFilePath);
/p:DeployExtension=false;
/p:TargetVSIXContainer=$(VSIXOutputPath);
/p:SymbolsPublishDir=$(BuildDir);
/p:Configuration=$(Configuration);" />
</ItemGroup>
<MakeDir Directories="$(LogOutputDir)" />
<WriteLinesToFile
File="$(VSIXResponseFilePath)"
Lines="@(MSBuildArguments)"
Overwrite="true" />
<Exec Command="&quot;$(VisualStudioMSBuildx86Path)&quot; @&quot;$(VSIXResponseFilePath)&quot;"
Condition="'$(VisualStudioMSBuildx86Path)' != ''" />
</Target>
</Project>

View File

@ -1,6 +1 @@
Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1' -OutFile .\build\dotnet-install.ps1 build.cmd
.\build\dotnet-install.ps1 -channel Current -version 2.1.3 -InstallDir dotnetsdk
dotnet --version
dotnet pack Blazor.sln --configuration Release
cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\aspnetci\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" BlazorTooling.sln /t:Restore
cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\aspnetci\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" BlazorTooling.sln /p:DeployExtension=false /p:TargetVSIXContainer=..\..\artifacts\build\Microsoft.VisualStudio.BlazorExtension.vsix

10
build/dependencies.props Normal file
View File

@ -0,0 +1,10 @@
<Project>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup Label="Package Versions">
<InternalAspNetCoreSdkPackageVersion>2.1.0-preview2-15704</InternalAspNetCoreSdkPackageVersion>
</PropertyGroup>
<Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
</Project>

29
build/repo.props Normal file
View File

@ -0,0 +1,29 @@
<Project>
<Import Project="dependencies.props" />
<PropertyGroup>
<EnableBenchmarkValidation>false</EnableBenchmarkValidation>
</PropertyGroup>
<PropertyGroup>
<!-- These properties are use by the automation that updates dependencies.props -->
<LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
<LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
<!-- Let us hardcode versions -->
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
</PropertyGroup>
<!--
By default, this excludes the end-to-end tests from the repo-level build command.
The CI will script these directly by passing BlazorAllTests=true
-->
<ItemGroup Condition="'$(BlazorAllTests)'!='true'">
<ExcludeFromTest Include="$(RepositoryRoot)test\Microsoft.AspNetCore.Blazor.E2ETest\Microsoft.AspNetCore.Blazor.E2ETest.csproj" />
</ItemGroup>
<ItemGroup>
<DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
<DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" />
</ItemGroup>
</Project>

17
build/repo.targets Normal file
View File

@ -0,0 +1,17 @@
<Project>
<Import Project="VSIX.targets" />
<ItemGroup>
<Solutions Update="$(RepositoryRoot)Blazor.sln">
<!-- the 'DebugNoVSIX' and 'ReleaseNoVSIX' configurations exclude the VSIX project, which doesn't build with Microsoft.NET.Sdk yet. -->
<AdditionalProperties>Configuration=$(Configuration)NoVSIX</AdditionalProperties>
</Solutions>
</ItemGroup>
<!--
Get Anglesharp built right away. This isn't needed for correctness, but helps avoid concurrency problems.
-->
<Target Name="BuildAngleSharp" BeforeTargets="BuildSolutions">
<Message Importance="High" Text="Building Anglesharp..." />
<MSBuild Projects="$(MSBuildThisFileDirectory)..\src\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj" />
</Target>
</Project>

16
build/sources.props Normal file
View File

@ -0,0 +1,16 @@
<Project>
<Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
<PropertyGroup Label="RestoreSources">
<RestoreSources>$(DotNetRestoreSources)</RestoreSources>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
$(RestoreSources);
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json
</RestoreSources>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
$(RestoreSources);
https://api.nuget.org/v3/index.json;
</RestoreSources>
</PropertyGroup>
</Project>

View File

@ -1,5 +1 @@
{ { "sdk": { "version": "2.1.300-preview2-008322" } }
"sdk": {
"version": "2.1.3"
}
}

2
korebuild-lock.txt Normal file
View File

@ -0,0 +1,2 @@
version:2.1.0-preview2-15735
commithash:e1c2a4b79748d853196318c6e2e52151846070bd

14
korebuild.json Normal file
View File

@ -0,0 +1,14 @@
{
"$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json",
"channel": "dev",
"toolsets": {
"visualstudio": {
"required": false,
"includePrerelease": true,
"minVersion": "15.0.26730.03",
"requiredWorkloads": [
"Microsoft.VisualStudio.Component.VSSDK"
]
}
}
}

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="aspnetcore-dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>

2
run.cmd Normal file
View File

@ -0,0 +1,2 @@
@ECHO OFF
PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' %*; exit $LASTEXITCODE"

196
run.ps1 Normal file
View File

@ -0,0 +1,196 @@
#!/usr/bin/env powershell
#requires -version 4
<#
.SYNOPSIS
Executes KoreBuild commands.
.DESCRIPTION
Downloads korebuild if required. Then executes the KoreBuild command. To see available commands, execute with `-Command help`.
.PARAMETER Command
The KoreBuild command to run.
.PARAMETER Path
The folder to build. Defaults to the folder containing this script.
.PARAMETER Channel
The channel of KoreBuild to download. Overrides the value from the config file.
.PARAMETER DotNetHome
The directory where .NET Core tools will be stored.
.PARAMETER ToolsSource
The base url where build tools can be downloaded. Overrides the value from the config file.
.PARAMETER Update
Updates KoreBuild to the latest version even if a lock file is present.
.PARAMETER ConfigFile
The path to the configuration file that stores values. Defaults to korebuild.json.
.PARAMETER ToolsSourceSuffix
The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores.
.PARAMETER Arguments
Arguments to be passed to the command
.NOTES
This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be.
When the lockfile is not present, KoreBuild will create one using latest available version from $Channel.
The $ConfigFile is expected to be an JSON file. It is optional, and the configuration values in it are optional as well. Any options set
in the file are overridden by command line parameters.
.EXAMPLE
Example config file:
```json
{
"$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json",
"channel": "dev",
"toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools"
}
```
#>
[CmdletBinding(PositionalBinding = $false)]
param(
[Parameter(Mandatory = $true, Position = 0)]
[string]$Command,
[string]$Path = $PSScriptRoot,
[Alias('c')]
[string]$Channel,
[Alias('d')]
[string]$DotNetHome,
[Alias('s')]
[string]$ToolsSource,
[Alias('u')]
[switch]$Update,
[string]$ConfigFile,
[string]$ToolsSourceSuffix,
[Parameter(ValueFromRemainingArguments = $true)]
[string[]]$Arguments
)
Set-StrictMode -Version 2
$ErrorActionPreference = 'Stop'
#
# Functions
#
function Get-KoreBuild {
$lockFile = Join-Path $Path 'korebuild-lock.txt'
if (!(Test-Path $lockFile) -or $Update) {
Get-RemoteFile "$ToolsSource/korebuild/channels/$Channel/latest.txt" $lockFile $ToolsSourceSuffix
}
$version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1
if (!$version) {
Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'"
}
$version = $version.TrimStart('version:').Trim()
$korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version)
if (!(Test-Path $korebuildPath)) {
Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version"
New-Item -ItemType Directory -Path $korebuildPath | Out-Null
$remotePath = "$ToolsSource/korebuild/artifacts/$version/korebuild.$version.zip"
try {
$tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip"
Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix
if (Get-Command -Name 'Expand-Archive' -ErrorAction Ignore) {
# Use built-in commands where possible as they are cross-plat compatible
Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath
}
else {
# Fallback to old approach for old installations of PowerShell
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory($tmpfile, $korebuildPath)
}
}
catch {
Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore
throw
}
finally {
Remove-Item $tmpfile -ErrorAction Ignore
}
}
return $korebuildPath
}
function Join-Paths([string]$path, [string[]]$childPaths) {
$childPaths | ForEach-Object { $path = Join-Path $path $_ }
return $path
}
function Get-RemoteFile([string]$RemotePath, [string]$LocalPath, [string]$RemoteSuffix) {
if ($RemotePath -notlike 'http*') {
Copy-Item $RemotePath $LocalPath
return
}
$retries = 10
while ($retries -gt 0) {
$retries -= 1
try {
Invoke-WebRequest -UseBasicParsing -Uri $($RemotePath + $RemoteSuffix) -OutFile $LocalPath
return
}
catch {
Write-Verbose "Request failed. $retries retries remaining"
}
}
Write-Error "Download failed: '$RemotePath'."
}
#
# Main
#
# Load configuration or set defaults
$Path = Resolve-Path $Path
if (!$ConfigFile) { $ConfigFile = Join-Path $Path 'korebuild.json' }
if (Test-Path $ConfigFile) {
try {
$config = Get-Content -Raw -Encoding UTF8 -Path $ConfigFile | ConvertFrom-Json
if ($config) {
if (!($Channel) -and (Get-Member -Name 'channel' -InputObject $config)) { [string] $Channel = $config.channel }
if (!($ToolsSource) -and (Get-Member -Name 'toolsSource' -InputObject $config)) { [string] $ToolsSource = $config.toolsSource}
}
}
catch {
Write-Warning "$ConfigFile could not be read. Its settings will be ignored."
Write-Warning $Error[0]
}
}
if (!$DotNetHome) {
$DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } `
elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} `
elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}`
else { Join-Path $PSScriptRoot '.dotnet'}
}
if (!$Channel) { $Channel = 'dev' }
if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' }
# Execute
$korebuildPath = Get-KoreBuild
Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
try {
Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile
Invoke-KoreBuildCommand $Command @Arguments
}
finally {
Remove-Module 'KoreBuild' -ErrorAction Ignore
}

231
run.sh Executable file
View File

@ -0,0 +1,231 @@
#!/usr/bin/env bash
set -euo pipefail
#
# variables
#
RESET="\033[0m"
RED="\033[0;31m"
YELLOW="\033[0;33m"
MAGENTA="\033[0;95m"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
verbose=false
update=false
repo_path="$DIR"
channel=''
tools_source=''
tools_source_suffix=''
#
# Functions
#
__usage() {
echo "Usage: $(basename "${BASH_SOURCE[0]}") command [options] [[--] <Arguments>...]"
echo ""
echo "Arguments:"
echo " command The command to be run."
echo " <Arguments>... Arguments passed to the command. Variable number of arguments allowed."
echo ""
echo "Options:"
echo " --verbose Show verbose output."
echo " -c|--channel <CHANNEL> The channel of KoreBuild to download. Overrides the value from the config file.."
echo " --config-file <FILE> The path to the configuration file that stores values. Defaults to korebuild.json."
echo " -d|--dotnet-home <DIR> The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet."
echo " --path <PATH> The directory to build. Defaults to the directory containing the script."
echo " -s|--tools-source|-ToolsSource <URL> The base url where build tools can be downloaded. Overrides the value from the config file."
echo " --tools-source-suffix|-ToolsSourceSuffix <SUFFIX> The suffix to append to tools-source. Useful for query strings."
echo " -u|--update Update to the latest KoreBuild even if the lock file is present."
echo ""
echo "Description:"
echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be."
echo " When the lockfile is not present, KoreBuild will create one using latest available version from \$channel."
if [[ "${1:-}" != '--no-exit' ]]; then
exit 2
fi
}
get_korebuild() {
local version
local lock_file="$repo_path/korebuild-lock.txt"
if [ ! -f "$lock_file" ] || [ "$update" = true ]; then
__get_remote_file "$tools_source/korebuild/channels/$channel/latest.txt" "$lock_file" "$tools_source_suffix"
fi
version="$(grep 'version:*' -m 1 "$lock_file")"
if [[ "$version" == '' ]]; then
__error "Failed to parse version from $lock_file. Expected a line that begins with 'version:'"
return 1
fi
version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version"
{
if [ ! -d "$korebuild_path" ]; then
mkdir -p "$korebuild_path"
local remote_path="$tools_source/korebuild/artifacts/$version/korebuild.$version.zip"
tmpfile="$(mktemp)"
echo -e "${MAGENTA}Downloading KoreBuild ${version}${RESET}"
if __get_remote_file "$remote_path" "$tmpfile" "$tools_source_suffix"; then
unzip -q -d "$korebuild_path" "$tmpfile"
fi
rm "$tmpfile" || true
fi
source "$korebuild_path/KoreBuild.sh"
} || {
if [ -d "$korebuild_path" ]; then
echo "Cleaning up after failed installation"
rm -rf "$korebuild_path" || true
fi
return 1
}
}
__error() {
echo -e "${RED}error: $*${RESET}" 1>&2
}
__warn() {
echo -e "${YELLOW}warning: $*${RESET}"
}
__machine_has() {
hash "$1" > /dev/null 2>&1
return $?
}
__get_remote_file() {
local remote_path=$1
local local_path=$2
local remote_path_suffix=$3
if [[ "$remote_path" != 'http'* ]]; then
cp "$remote_path" "$local_path"
return 0
fi
local failed=false
if __machine_has wget; then
wget --tries 10 --quiet -O "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
else
failed=true
fi
if [ "$failed" = true ] && __machine_has curl; then
failed=false
curl --retry 10 -sSL -f --create-dirs -o "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
fi
if [ "$failed" = true ]; then
__error "Download failed: $remote_path" 1>&2
return 1
fi
}
#
# main
#
command="${1:-}"
shift
while [[ $# -gt 0 ]]; do
case $1 in
-\?|-h|--help)
__usage --no-exit
exit 0
;;
-c|--channel|-Channel)
shift
channel="${1:-}"
[ -z "$channel" ] && __usage
;;
--config-file|-ConfigFile)
shift
config_file="${1:-}"
[ -z "$config_file" ] && __usage
if [ ! -f "$config_file" ]; then
__error "Invalid value for --config-file. $config_file does not exist."
exit 1
fi
;;
-d|--dotnet-home|-DotNetHome)
shift
DOTNET_HOME="${1:-}"
[ -z "$DOTNET_HOME" ] && __usage
;;
--path|-Path)
shift
repo_path="${1:-}"
[ -z "$repo_path" ] && __usage
;;
-s|--tools-source|-ToolsSource)
shift
tools_source="${1:-}"
[ -z "$tools_source" ] && __usage
;;
--tools-source-suffix|-ToolsSourceSuffix)
shift
tools_source_suffix="${1:-}"
[ -z "$tools_source_suffix" ] && __usage
;;
-u|--update|-Update)
update=true
;;
--verbose|-Verbose)
verbose=true
;;
--)
shift
break
;;
*)
break
;;
esac
shift
done
if ! __machine_has unzip; then
__error 'Missing required command: unzip'
exit 1
fi
if ! __machine_has curl && ! __machine_has wget; then
__error 'Missing required command. Either wget or curl is required.'
exit 1
fi
[ -z "${config_file:-}" ] && config_file="$repo_path/korebuild.json"
if [ -f "$config_file" ]; then
if __machine_has jq ; then
if jq '.' "$config_file" >/dev/null ; then
config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")"
config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")"
else
__warn "$config_file is invalid JSON. Its settings will be ignored."
fi
elif __machine_has python ; then
if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
else
__warn "$config_file is invalid JSON. Its settings will be ignored."
fi
else
__warn 'Missing required command: jq or pyton. Could not parse the JSON file. Its settings will be ignored.'
fi
[ ! -z "${config_channel:-}" ] && channel="$config_channel"
[ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
fi
[ -z "$channel" ] && channel='dev'
[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
get_korebuild
set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file"
invoke_korebuild_command "$command" "$@"

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Razor/2.1.0-preview2-30230"> <Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Razor/2.1.0-preview2-30230"> <Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Razor/2.1.0-preview2-30230;Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>

View File

@ -27,6 +27,27 @@
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="Publish" Properties="TargetFramework=%(_TargetFramework.Identity)" /> <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="Publish" Properties="TargetFramework=%(_TargetFramework.Identity)" />
</Target> </Target>
<!-- Our build tools and nuget don't play well together with hand-authoring a .nuspec -->
<Target Name="_GetArtifactInfoWorkaround" AfterTargets="GetSignedPackageFiles">
<ItemGroup>
<ArtifactInfo Include="$(PackageOutputPath)$(PackageId).$(PackageVersion).symbols.nupkg">
<ArtifactType>NuGetSymbolsPackage</ArtifactType>
<PackageId>$(PackageId)</PackageId>
<Version>$(PackageVersion)</Version>
<TargetFramework>$(TargetFramework)</TargetFramework>
<TargetFrameworks>$([MSBuild]::Escape($(TargetFrameworks)))</TargetFrameworks>
<SourceIncluded>$(IncludeSource)</SourceIncluded>
<PackageType>$(PackageType)</PackageType>
<RepositoryRoot>$(RepositoryRoot)</RepositoryRoot>
<RepositoryUrl>$(RepositoryUrl)</RepositoryUrl>
<Category>$(PackageArtifactCategory)</Category>
<Certificate>$(PackageSigningCertName)</Certificate>
<ShouldBeSigned Condition="'$(PackageSigningCertName)' != '' OR @(SignedPackageFile->Count()) != 0 ">true</ShouldBeSigned>
<ShouldBeSigned Condition=" '$(DisableCodeSigning)' == 'true' ">false</ShouldBeSigned>
<IsContainer>true</IsContainer>
</ArtifactInfo>
</ItemGroup>
</Target>
<ItemGroup> <ItemGroup>
<None Remove="tools\**" /> <None Remove="tools\**" />
</ItemGroup> </ItemGroup>
@ -52,12 +73,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj">
<Name>AngleSharpBuilder</Name>
<Private>False</Private>
<SetTargetFramework>TargetFramework=netcoreapp2.0</SetTargetFramework>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<Reference Include="..\anglesharp\AngleSharpBuilder\dist\Microsoft.AspNetCore.Blazor.AngleSharp.dll" /> <Reference Include="..\anglesharp\AngleSharpBuilder\dist\Microsoft.AspNetCore.Blazor.AngleSharp.dll" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -10,6 +10,9 @@
<_BlazorAngleSharpAssemblyPath>$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.AngleSharp.dll</_BlazorAngleSharpAssemblyPath> <_BlazorAngleSharpAssemblyPath>$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.AngleSharp.dll</_BlazorAngleSharpAssemblyPath>
<_BlazorExtensionAssemblyPath>$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.Razor.Extensions.dll</_BlazorExtensionAssemblyPath> <_BlazorExtensionAssemblyPath>$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.Razor.Extensions.dll</_BlazorExtensionAssemblyPath>
<!-- Deactivates the Razor SDK's build-time compilation. We do our own -->
<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorDefaultConfiguration>Blazor-0.1</RazorDefaultConfiguration> <RazorDefaultConfiguration>Blazor-0.1</RazorDefaultConfiguration>
</PropertyGroup> </PropertyGroup>
@ -190,7 +193,8 @@
<!-- Include the temp assembly as a reference so we can discover components from the app.--> <!-- Include the temp assembly as a reference so we can discover components from the app.-->
<ItemGroup> <ItemGroup>
<_BlazorReferencePathWithRefAssemblies Include="@(ReferencePathWithRefAssemblies);@(_BlazorTempAssembly)"/> <_BlazorReferencePathWithRefAssemblies Include="@(ReferencePathWithRefAssemblies)" />
<_BlazorReferencePathWithRefAssemblies Include="%(_BlazorTempAssembly.FullPath)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -82,15 +82,21 @@ namespace Microsoft.AspNetCore.Blazor.Cli.Server
private static string FindClientBinDir(string clientAppSourceRoot) private static string FindClientBinDir(string clientAppSourceRoot)
{ {
var binDebugDir = Path.Combine(clientAppSourceRoot, "bin", "Debug"); // Our CI scripts will use Release
var subdirectories = Directory.GetDirectories(binDebugDir); #if DEBUG
var binDir = Path.Combine(clientAppSourceRoot, "bin", "Debug");
#else
var binDir = Path.Combine(clientAppSourceRoot, "bin", "Release");
#endif
var subdirectories = Directory.GetDirectories(binDir);
if (subdirectories.Length != 1) if (subdirectories.Length != 1)
{ {
throw new InvalidOperationException($"Could not locate bin directory for Blazor app. " + throw new InvalidOperationException($"Could not locate bin directory for Blazor app. " +
$"Expected to find exactly 1 subdirectory in '{binDebugDir}', but found {subdirectories.Length}."); $"Expected to find exactly 1 subdirectory in '{binDir}', but found {subdirectories.Length}.");
} }
return Path.Combine(binDebugDir, subdirectories[0]); return Path.Combine(binDir, subdirectories[0]);
} }
} }
} }

View File

@ -11,7 +11,11 @@
<PackageReference Include="Mono.Cecil" Version="0.10.0-beta7" /> <PackageReference Include="Mono.Cecil" Version="0.10.0-beta7" />
</ItemGroup> </ItemGroup>
<Target Name="GenerateDist" AfterTargets="Build"> <Target
Name="GenerateDist"
AfterTargets="Build"
Inputs="$(MSBuildAllProjects);$(OutDir)$(AssemblyName).dll"
Outputs="$(MSBuildThisFileDirectory)dist\Microsoft.AspNetCore.Blazor.AngleSharp.dll">
<Exec WorkingDirectory="$(MSBuildThisFileDirectory)" Command="dotnet $(OutDir)$(AssemblyName).dll" /> <Exec WorkingDirectory="$(MSBuildThisFileDirectory)" Command="dotnet $(OutDir)$(AssemblyName).dll" />
</Target> </Target>

View File

@ -3,9 +3,11 @@
using AngleSharp.Parser.Html; using AngleSharp.Parser.Html;
using Mono.Cecil; using Mono.Cecil;
using System;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading;
namespace AngleSharpBuilder namespace AngleSharpBuilder
{ {
@ -28,9 +30,30 @@ namespace AngleSharpBuilder
{ {
public static void Main() public static void Main()
{ {
var outputDir = Path.Combine(Directory.GetCurrentDirectory(), "dist"); // Prevent concurrent execution of this program. Since this is called by MSBuild
var inputAssembly = Assembly.GetAssembly(typeof(HtmlParser)); // make sure to wait for other instances to exit, we need the file to exist when
WriteModifiedAssembly(inputAssembly, outputDir); // this program exits.
using (var mutex = new Mutex(true, "AngleSharpBuilder", out var created))
{
if (created)
{
try
{
var outputDir = Path.Combine(Directory.GetCurrentDirectory(), "dist");
var inputAssembly = Assembly.GetAssembly(typeof(HtmlParser));
WriteModifiedAssembly(inputAssembly, outputDir);
}
finally
{
mutex.ReleaseMutex();
}
}
else
{
Console.WriteLine("Waiting for AngleSharpBuilder to exit...");
mutex.WaitOne(TimeSpan.FromSeconds(10));
}
}
} }
private static void WriteModifiedAssembly(Assembly assembly, string outputDir) private static void WriteModifiedAssembly(Assembly assembly, string outputDir)

View File

@ -1,8 +0,0 @@
<Project>
<ItemGroup>
<TestProject Include="*\*.csproj" />
</ItemGroup>
<Target Name="VSTest">
<MSBuild Projects="@(TestProject)" Targets="VSTest" ContinueOnError="ErrorAndContinue" />
</Target>
</Project>

View File

@ -47,7 +47,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -105,7 +105,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -132,7 +132,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -175,7 +175,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -201,7 +201,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -244,7 +244,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -280,7 +280,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -308,7 +308,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
{ {
base.BuildRenderTree(builder); base.BuildRenderTree(builder);
__o = new Microsoft.AspNetCore.Blazor.UIEventHandler(eventArgs => __o = new Microsoft.AspNetCore.Blazor.UIEventHandler((eventArgs) =>
#line 2 ""x:\dir\subdir\Test\TestComponent.cshtml"" #line 2 ""x:\dir\subdir\Test\TestComponent.cshtml""
Increment() Increment()
@ -333,7 +333,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -370,7 +370,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -428,7 +428,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim()); ", generated);
} }
[Fact] [Fact]
@ -458,7 +458,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -494,7 +494,7 @@ global::System.Object __typeHelper = ""*, TestAssembly"";
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim()); ", generated);
} }
} }
} }

View File

@ -23,7 +23,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj" ReferenceOutputAssembly="false" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Mono\Microsoft.AspNetCore.Blazor.Mono.csproj" /> <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Mono\Microsoft.AspNetCore.Blazor.Mono.csproj" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Razor.Extensions\Microsoft.AspNetCore.Blazor.Razor.Extensions.csproj" /> <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Razor.Extensions\Microsoft.AspNetCore.Blazor.Razor.Extensions.csproj" />
<Reference Include="Microsoft.AspNetCore.Blazor.AngleSharp" HintPath="..\..\src\anglesharp\AngleSharpBuilder\dist\Microsoft.AspNetCore.Blazor.AngleSharp.dll" /> <Reference Include="Microsoft.AspNetCore.Blazor.AngleSharp" HintPath="..\..\src\anglesharp\AngleSharpBuilder\dist\Microsoft.AspNetCore.Blazor.AngleSharp.dll" />

View File

@ -289,6 +289,19 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
return builder.GetFrames(); return builder.GetFrames();
} }
protected static void AssertSourceEquals(string expected, CompileToCSharpResult generated)
{
// Normalize the paths inside the expected result to match the OS paths
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
var windowsPath = Path.Combine(ArbitraryWindowsPath, generated.CodeDocument.Source.RelativePath).Replace('/', '\\');
expected = expected.Replace(windowsPath, generated.CodeDocument.Source.FilePath);
}
expected = expected.Trim();
Assert.Equal(expected, generated.Code.Trim(), ignoreLineEndingDifferences: true);
}
protected class CompileToCSharpResult protected class CompileToCSharpResult
{ {
// A compilation that can be used *with* this code to compile an assembly // A compilation that can be used *with* this code to compile an assembly

View File

@ -33,7 +33,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -56,7 +56,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -94,7 +94,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -121,7 +121,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -148,7 +148,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -172,7 +172,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -198,7 +198,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -223,7 +223,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
@ -260,7 +260,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -277,7 +277,7 @@ namespace Test
{ {
base.BuildRenderTree(builder); base.BuildRenderTree(builder);
builder.OpenComponent<Test.MyComponent>(0); builder.OpenComponent<Test.MyComponent>(0);
builder.AddAttribute(1, ""OnClick"", new Microsoft.AspNetCore.Blazor.UIEventHandler(eventArgs => Increment())); builder.AddAttribute(1, ""OnClick"", new Microsoft.AspNetCore.Blazor.UIEventHandler((eventArgs) => Increment()));
builder.CloseComponent(); builder.CloseComponent();
builder.AddContent(2, ""\n\n""); builder.AddContent(2, ""\n\n"");
} }
@ -290,7 +290,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim(), ignoreLineEndingDifferences: true); ", generated);
} }
[Fact] [Fact]
@ -327,7 +327,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -358,7 +358,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim()); ", generated);
} }
[Fact] [Fact]
@ -388,7 +388,7 @@ namespace Test
// Assert // Assert
CompileToAssembly(generated); CompileToAssembly(generated);
Assert.Equal(@" AssertSourceEquals(@"
// <auto-generated/> // <auto-generated/>
#pragma warning disable 1591 #pragma warning disable 1591
namespace Test namespace Test
@ -420,7 +420,7 @@ namespace Test
} }
} }
#pragma warning restore 1591 #pragma warning restore 1591
".Trim(), generated.Code.Trim()); ", generated);
} }
} }
} }

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Razor/2.1.0-preview2-30230;Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>

View File

@ -1,4 +1,5 @@
<PropertiesChangedHandlerChild SuppliedValue=@valueToSupply /> @addTagHelper "*, BasicTestApp"
<PropertiesChangedHandlerChild SuppliedValue=@valueToSupply />
<button onclick=@{ valueToSupply++; }>Increment</button> <button onclick=@{ valueToSupply++; }>Increment</button>
@functions { @functions {

View File

@ -15,12 +15,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj">
<Name>AngleSharpBuilder</Name>
<Private>False</Private>
<SetTargetFramework>TargetFramework=netcoreapp2.0</SetTargetFramework>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Razor.Extensions\Microsoft.AspNetCore.Blazor.Razor.Extensions.csproj" /> <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Blazor.Razor.Extensions\Microsoft.AspNetCore.Blazor.Razor.Extensions.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>