commit
979782fdfe
|
|
@ -17,6 +17,10 @@ pr:
|
|||
include:
|
||||
- '*'
|
||||
|
||||
variables:
|
||||
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
|
||||
value: true
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
|
|
@ -46,14 +50,14 @@ jobs:
|
|||
# if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing.
|
||||
# The sign settings have been configured to
|
||||
|
||||
- script: ./eng/scripts/cibuild.cmd -arch x64 /p:DisableCodeSigning=true /bl:artifacts/log/build.x64.binlog
|
||||
- script: ./eng/scripts/cibuild.cmd -BuildNative -arch x64 /p:DisableCodeSigning=true /bl:artifacts/log/build.x64.binlog
|
||||
displayName: Build x64
|
||||
# TODO: make it possible to build for one Windows architecture at a time
|
||||
# This is going to actually build x86 native assets. See https://github.com/aspnet/AspNetCore/issues/7196
|
||||
|
||||
# Build the x86 shared framework
|
||||
# Set DisableSignCheck because we'll run sign check in an explicit step after installers build
|
||||
- script: ./eng/scripts/cibuild.cmd -arch x86 -NoRestore /t:BuildSharedFx /p:DisableCodeSigning=true /bl:artifacts/log/build.x86.binlog
|
||||
- script: ./eng/scripts/cibuild.cmd -arch x86 -NoRestore -BuildNative /t:BuildSharedFx /p:DisableCodeSigning=true /bl:artifacts/log/build.x86.binlog
|
||||
displayName: Build x86
|
||||
|
||||
# This is in a separate build step with -forceCoreMsbuild to workaround MAX_PATH limitations - https://github.com/Microsoft/msbuild/issues/53
|
||||
|
|
@ -324,7 +328,7 @@ jobs:
|
|||
agentOs: Windows
|
||||
isTestingJob: true
|
||||
buildScript: ./eng/scripts/cibuild.cmd
|
||||
buildArgs: -test "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true /p:RunTemplateTests=false /p:BuildSiteExtensions=false"
|
||||
buildArgs: -test -BuildNative "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true /p:RunTemplateTests=false /p:BuildSiteExtensions=false"
|
||||
beforeBuild:
|
||||
- powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
|
||||
displayName: Setup IISExpress test certificates and schema
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ jobs:
|
|||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
- script: .\build.cmd -all -ci /t:Helix /p:IsHelixJob=true /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\SendToHelix.binlog
|
||||
- script: .\build.cmd -all -ci /p:BuildNative=true /t:Helix /p:IsHelixJob=true /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\SendToHelix.binlog
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ Our team members also monitor several other discussion forums:
|
|||
|
||||
## Contributing code and content
|
||||
|
||||
We accept fixes and features! Here are some resources to help you get started on how to contribute code or new content.
|
||||
|
||||
* Look at the [Contributor documentation](/docs/) to get started on building the source code on your own.
|
||||
* ["Help wanted" issues](https://github.com/aspnet/AspNetCore/labels/help%20wanted) - these issues are up for grabs. Comment on an issue if you want to create a fix.
|
||||
* ["Good first issue" issues](https://github.com/aspnet/AspNetCore/labels/good%20first%20issue) - we think these are a good for newcomers.
|
||||
|
||||
### Identifying the scale
|
||||
|
||||
If you would like to contribute to one of our repositories, first identify the scale of what you would like to contribute. If it is small (grammar/spelling or a bug fix) feel free to start working on a fix. If you are submitting a feature or substantial code contribution, please discuss it with the team and ensure it follows the product roadmap. You might also read these two blogs posts on contributing code: [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html) by Miguel de Icaza and [Don't "Push" Your Pull Requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/) by Ilya Grigorik. All code submissions will be rigorously reviewed and tested by the ASP.NET and Entity Framework teams, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,15 @@
|
|||
<Project>
|
||||
<Import Project="version.props" />
|
||||
|
||||
<!--
|
||||
These imports look funny.
|
||||
Eventually they will be replaced by a simplified import that brings in
|
||||
the entire Arcade SDK. For now, we're moving onto Arcade one piece at a time.
|
||||
-->
|
||||
<Import Project="../tools/DefaultVersions.Generated.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
<Import Project="eng\Versions.props" />
|
||||
<Import Project="../tools/Compiler.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(UsingToolMicrosoftNetCompilers)' == 'true'"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<Product>Microsoft ASP.NET Core</Product>
|
||||
|
||||
|
|
@ -121,7 +130,6 @@
|
|||
<OutDirName Condition="'$(IsReferenceAssemblyProject)' == 'true'">$(MSBuildProjectName)-ref</OutDirName>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="eng\Versions.props" />
|
||||
<Import Project="build\sources.props" />
|
||||
|
||||
<!-- Artifacts layout -->
|
||||
|
|
@ -190,7 +198,7 @@
|
|||
<!-- Projects which reference Microsoft.AspNetCore.Mvc.Testing should import this targets file to ensure dependency .deps.json files are copied into test output. -->
|
||||
<MvcTestingTargets>$(MSBuildThisFileDirectory)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.targets</MvcTestingTargets>
|
||||
<!-- IIS native projects can only be built on Windows for x86 and x64. -->
|
||||
<BuildIisNativeProjects Condition="'$(BuildNative)' != 'false' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64')">true</BuildIisNativeProjects>
|
||||
<BuildIisNativeProjects Condition="'$(BuildNative)' == 'true' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64')">true</BuildIisNativeProjects>
|
||||
<!-- This property is shared by several projects to layout the AspNetCore.App targeting pack for installers -->
|
||||
<TargetingPackLayoutRoot>$(ArtifactsObjDir)TargetingPack.Layout\$(Configuration)\</TargetingPackLayoutRoot>
|
||||
<!-- This property is shared by several projects to layout the AspNetCore.App shared framework for installers -->
|
||||
|
|
|
|||
|
|
@ -81,9 +81,12 @@
|
|||
|
||||
<ItemGroup>
|
||||
<KnownFrameworkReference Update="Microsoft.NETCore.App">
|
||||
<LatestRuntimeFrameworkVersion>$(MicrosoftNETCoreAppPackageVersion)</LatestRuntimeFrameworkVersion>
|
||||
<DefaultRuntimeFrameworkVersion Condition="'$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppPackageVersion)</DefaultRuntimeFrameworkVersion>
|
||||
<TargetingPackVersion Condition="'$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppPackageVersion)</TargetingPackVersion>
|
||||
<!-- Always update the 'latest version', whether the repo is servicing or not. -->
|
||||
<LatestRuntimeFrameworkVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">$(MicrosoftNETCoreAppPackageVersion)</LatestRuntimeFrameworkVersion>
|
||||
<!-- Only update the default runtime version for preview builds. -->
|
||||
<DefaultRuntimeFrameworkVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' and '$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppPackageVersion)</DefaultRuntimeFrameworkVersion>
|
||||
<!-- Only update the targeting pack version for preview builds. -->
|
||||
<TargetingPackVersion Condition="'%(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' and '$(IsServicingBuild)' != 'true'">$(MicrosoftNETCoreAppPackageVersion)</TargetingPackVersion>
|
||||
</KnownFrameworkReference>
|
||||
|
||||
<KnownFrameworkReference Condition="'$(UseAspNetCoreSharedRuntime)' != 'true'" Remove="Microsoft.AspNetCore.App" />
|
||||
|
|
@ -95,6 +98,10 @@
|
|||
<TargetingPackVersion Condition="'$(IsServicingBuild)' != 'true'">$(SharedFxVersion)</TargetingPackVersion>
|
||||
</KnownFrameworkReference>
|
||||
|
||||
<KnownFrameworkReference Update="NETStandard.Library">
|
||||
<TargetingPackVersion Condition="'%(TargetFramework)' == 'netstandard2.1' and '$(IsServicingBuild)' != 'true'">$(NETStandardLibraryRefPackageVersion)</TargetingPackVersion>
|
||||
</KnownFrameworkReference>
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Copied from https://github.com/dotnet/arcade/blob/9d0fd805448082c8d55e2434607b481bca70a146/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets#L12-L38 -->
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
The .NET Core and ASP.NET Core support policy, including supported versions can be found at the [.NET Core Support Policy Page](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com.
|
||||
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your
|
||||
original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://technet.microsoft.com/en-us/security/ff852094.aspx).
|
||||
|
||||
Reports via MSRC may qualify for the .NET Core Bug Bounty. Details of the .NET Core Bug Bounty including terms and conditions are at [https://aka.ms/corebounty](https://aka.ms/corebounty).
|
||||
|
||||
Please do not open issues for anything you think might have a security implication.
|
||||
|
|
@ -258,13 +258,12 @@ elseif ($Projects) {
|
|||
}
|
||||
# When adding new sub-group build flags, add them to this check.
|
||||
elseif((-not $BuildNative) -and (-not $BuildManaged) -and (-not $BuildNodeJS) -and (-not $BuildInstallers) -and (-not $BuildJava)) {
|
||||
Write-Warning "No default group of projects was specified, so building the 'managed' and 'native' subsets of projects. Run ``build.cmd -help`` for more details."
|
||||
Write-Warning "No default group of projects was specified, so building the 'managed' subsets of projects. Run ``build.cmd -help`` for more details."
|
||||
|
||||
# This goal of this is to pick a sensible default for `build.cmd` with zero arguments.
|
||||
# Now that we support subfolder invokations of build.cmd, we will be pushing to have build.cmd build everything (-all) by default
|
||||
|
||||
$BuildManaged = $true
|
||||
$BuildNative = $true
|
||||
}
|
||||
|
||||
if ($BuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=true" }
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@
|
|||
<TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(BuildAllProjects)' == 'true' ">
|
||||
<BuildNative>true</BuildNative>
|
||||
<BuildManaged>true</BuildManaged>
|
||||
<BuildNodeJS>true</BuildNodeJS>
|
||||
<BuildJava>true</BuildJava>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- This repo does not have solutions to build -->
|
||||
<DisableDefaultTargets>true</DisableDefaultTargets>
|
||||
|
|
@ -27,13 +34,7 @@
|
|||
<DisableSignCheckStrongName>true</DisableSignCheckStrongName>
|
||||
|
||||
<SharedSourcesFolder>$(RepoRoot)src\Shared\</SharedSourcesFolder>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(BuildAllProjects)' == 'true' ">
|
||||
<BuildNative>true</BuildNative>
|
||||
<BuildManaged>true</BuildManaged>
|
||||
<BuildNodeJS>true</BuildNodeJS>
|
||||
<BuildJava>true</BuildJava>
|
||||
<BuildIisNativeProjects Condition="'$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64')">true</BuildIisNativeProjects>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- These projects are always excluded, even when -projects is specified on command line. -->
|
||||
|
|
|
|||
|
|
@ -10,10 +10,12 @@
|
|||
|
||||
<RestoreSources Condition=" '$(DotNetBuildOffline)' != 'true' ">
|
||||
$(RestoreSources);
|
||||
https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json;
|
||||
https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json;
|
||||
https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json;
|
||||
https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json;
|
||||
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
|
||||
https://dotnet.myget.org/F/roslyn/api/v3/index.json;
|
||||
https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev;
|
||||
https://api.nuget.org/v3/index.json;
|
||||
</RestoreSources>
|
||||
|
|
@ -27,11 +29,6 @@
|
|||
$(RestoreSources);
|
||||
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
|
||||
</RestoreSources>
|
||||
<!-- TODO remove this once we move Microsoft.AspNetCore.Blazor.Mono to a non-myget feed -->
|
||||
<RestoreSources>
|
||||
$(RestoreSources);
|
||||
https://dotnet.myget.org/F/blazor-dev/api/v3/index.json;
|
||||
</RestoreSources>
|
||||
|
||||
<!-- In an orchestrated build, this may be overriden to other Azure feeds. -->
|
||||
<DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">https://dotnetcli.blob.core.windows.net/dotnet/</DotNetAssetRootUrl>
|
||||
|
|
|
|||
|
|
@ -33,4 +33,4 @@ These are available in the [Visual Studio Preview](https://www.visualstudio.com/
|
|||
* *Enable Source Link support* in Visual Studio should be enabled.
|
||||
* *Enable source server support* in Visual should be enabled.
|
||||
* *Enable Just My Code* should be disabled
|
||||
* Add https://dotnet.myget.org/F/aspnetcore-dev/symbols to the list of symbol servers in the Visual Studio Debugging options
|
||||
* Under Symbols enable the *Microsoft Symbol Servers* setting.
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ T:Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel
|
|||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
|
||||
# Manually implemented - https://github.com/aspnet/AspNetCore/issues/8825
|
||||
T:Microsoft.AspNetCore.Components.AuthorizeView
|
||||
T:Microsoft.AspNetCore.Components.AuthorizeViewCore
|
||||
T:Microsoft.AspNetCore.Components.CascadingAuthenticationState
|
||||
T:Microsoft.AspNetCore.Components.CascadingValue`1
|
||||
T:Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator
|
||||
|
|
@ -18,6 +19,6 @@ T:Microsoft.AspNetCore.Components.Forms.InputText
|
|||
T:Microsoft.AspNetCore.Components.Forms.InputTextArea
|
||||
T:Microsoft.AspNetCore.Components.Forms.ValidationMessage`1
|
||||
T:Microsoft.AspNetCore.Components.Forms.ValidationSummary
|
||||
T:Microsoft.AspNetCore.Components.Layouts.LayoutDisplay
|
||||
T:Microsoft.AspNetCore.Components.PageDisplay
|
||||
T:Microsoft.AspNetCore.Components.Routing.NavLink
|
||||
T:Microsoft.AspNetCore.Components.Routing.Router
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.Specification.Tests" ProjectPath="$(RepoRoot)src\Identity\Specification.Tests\src\Microsoft.AspNetCore.Identity.Specification.Tests.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Web.Xdt.Extensions" ProjectPath="$(RepoRoot)src\SiteExtensions\Microsoft.Web.Xdt.Extensions\src\Microsoft.Web.Xdt.Extensions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" ProjectPath="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Tasks" ProjectPath="$(RepoRoot)src\Mvc\Extensions.ApiDescription.Client\src\Microsoft.Extensions.ApiDescription.Client.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Client" ProjectPath="$(RepoRoot)src\Mvc\Extensions.ApiDescription.Client\src\Microsoft.Extensions.ApiDescription.Client.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Specification.Tests" ProjectPath="$(RepoRoot)src\SignalR\server\Specification.Tests\src\Microsoft.AspNetCore.SignalR.Specification.Tests.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Build" ProjectPath="$(RepoRoot)src\Components\Blazor\Build\src\Microsoft.AspNetCore.Blazor.Build.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore" ProjectPath="$(RepoRoot)src\DefaultBuilder\src\Microsoft.AspNetCore.csproj" RefProjectPath="$(RepoRoot)src\DefaultBuilder\ref\Microsoft.AspNetCore.csproj" />
|
||||
|
|
@ -54,9 +54,9 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IIS" ProjectPath="$(RepoRoot)src\Servers\IIS\IIS\src\Microsoft.AspNetCore.Server.IIS.csproj" RefProjectPath="$(RepoRoot)src\Servers\IIS\IIS\ref\Microsoft.AspNetCore.Server.IIS.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Core" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\ref\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\ref\Microsoft.AspNetCore.Server.Kestrel.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Abstractions\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Abstractions\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\ref\Microsoft.AspNetCore.Authentication.Certificate.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Cookies" ProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\src\Microsoft.AspNetCore.Authentication.Cookies.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\ref\Microsoft.AspNetCore.Authentication.Cookies.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication" ProjectPath="$(RepoRoot)src\Security\Authentication\Core\src\Microsoft.AspNetCore.Authentication.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Core\ref\Microsoft.AspNetCore.Authentication.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\ref\Microsoft.AspNetCore.Authentication.Facebook.csproj" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="RunPublishSymbols">
|
||||
<PropertyGroup>
|
||||
<!-- TFM doesn't matter. These settings are required to make NuGet happy so we can restore required MSBuild packages. -->
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
<ManifestsPath>artifacts\manifests\</ManifestsPath>
|
||||
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
|
||||
|
||||
<!-- Expire symbols after 10 years (or so) by default. -->
|
||||
<DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(MicrosoftSymbolUploaderBuildTaskPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
Initially copied from
|
||||
https://github.com/dotnet/core-setup/blob/19390ee14c2824c39db393aff75a95788ececebf/publish/publish.proj#L242-L286
|
||||
-->
|
||||
<Target Name="RunPublishSymbols">
|
||||
<ItemGroup>
|
||||
<SymbolServerConfig
|
||||
Include="MSDL (public symbols server)"
|
||||
Url="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
|
||||
Pat="$(MicrosoftSymbolServerPAT)" />
|
||||
|
||||
<SymbolServerConfig
|
||||
Include="SymWeb (internal symbols server)"
|
||||
Url="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
|
||||
Pat="$(SymwebSymbolServerPAT)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error
|
||||
Condition="'%(SymbolServerConfig.Pat)' == ''"
|
||||
Text="Missing symbol server publish PAT for '%(SymbolServerConfig.Identity)'" />
|
||||
|
||||
<!-- Could also set SymbolDryRun, SymbolExpirationInDays or SymbolVerboseLogging. -->
|
||||
<ItemGroup>
|
||||
<SymbolServerPublishProject
|
||||
Include="$(MSBuildProjectFullPath)"
|
||||
AdditionalProperties="
|
||||
SymbolServerDescription=%(SymbolServerConfig.Identity);
|
||||
SymbolServerPath=%(SymbolServerConfig.Url);
|
||||
SymbolServerPAT=%(SymbolServerConfig.Pat)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Note: Can't run in parallel. Symbol publish opens the zips exclusively. -->
|
||||
<MSBuild
|
||||
Projects="@(SymbolServerPublishProject)"
|
||||
Targets="SetupPublishSymbols;PublishSymbols"
|
||||
Properties="SymbolDirectory=$(SymbolDirectory)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="SetupPublishSymbols">
|
||||
<ItemGroup>
|
||||
<SymbolPackagesToPublish Include="$(SymbolDirectory)/**/*.symbols.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Importance="High" Text="Publishing symbol packages to '$(SymbolServerDescription)':%0A @(SymbolPackagesToPublish, '%0A ')"/>
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
These compilation references are necessary to compile netstandard2.0 assemblies which are in the shared framework.
|
||||
This references are part of Microsoft.NETCore.App, so are listed here as references to be used during compilation only.
|
||||
-->
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1'">
|
||||
<_CompilationOnlyReference Include="System.Buffers" />
|
||||
<_CompilationOnlyReference Include="System.ComponentModel.Annotations" />
|
||||
<_CompilationOnlyReference Include="System.Runtime.CompilerServices.Unsafe" />
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@
|
|||
<ItemGroup>
|
||||
<!-- These assemblies are available as both a NuGet package and in the shared framework -->
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Http.Features" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Metadata" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Connections.Abstractions" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Authorization" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Http.Connections.Common" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.SignalR.Protocols.Json" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.SignalR.Common" />
|
||||
|
|
@ -33,7 +35,6 @@
|
|||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Http.Abstractions" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Http.Extensions" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Http" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Metadata" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Routing.Abstractions" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Routing" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.WebUtilities" />
|
||||
|
|
@ -46,12 +47,10 @@
|
|||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Server.IIS" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Server.Kestrel" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Authentication.Cookies" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Authentication" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Authentication.OAuth" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Authorization" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Authorization.Policy" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.CookiePolicy" />
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore.Cors" />
|
||||
|
|
|
|||
|
|
@ -9,392 +9,404 @@
|
|||
-->
|
||||
<Dependencies>
|
||||
<ProductDependencies>
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview6.19270.2">
|
||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="0.10.0-preview7.19303.2">
|
||||
<Uri>https://github.com/aspnet/Blazor</Uri>
|
||||
<Sha>9bc8036bf68fd159fffa56f93f8b2471bf96efd4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview6.19303.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>62e33dac1d5ec88ab15d7af694c1adf29ffc4c59</Sha>
|
||||
<Sha>0156446a321deedadd175bdb32c8d1526be5f28d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview6.19270.2">
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview6.19303.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>62e33dac1d5ec88ab15d7af694c1adf29ffc4c59</Sha>
|
||||
<Sha>0156446a321deedadd175bdb32c8d1526be5f28d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview6.19270.2">
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview6.19303.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>62e33dac1d5ec88ab15d7af694c1adf29ffc4c59</Sha>
|
||||
<Sha>0156446a321deedadd175bdb32c8d1526be5f28d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview6.19270.2">
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview6.19303.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>62e33dac1d5ec88ab15d7af694c1adf29ffc4c59</Sha>
|
||||
<Sha>0156446a321deedadd175bdb32c8d1526be5f28d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview6.19252.4" Pinned="true">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview6.19303.2">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>08edd86216be4857b45b47bf0a9b29e98e525c05</Sha>
|
||||
<Sha>fd63251e1941070438c27577ed6b0068e33a139a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Text.Json" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Json" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview6-27714-15" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview6-27730-01" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>73226d6f119c757813f47b0dc021e8700d525f71</Sha>
|
||||
<Sha>63abc77da6d99470caa5bfa0465afe244105e595</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview6-27714-15" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview6-27730-01" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>73226d6f119c757813f47b0dc021e8700d525f71</Sha>
|
||||
<Sha>63abc77da6d99470caa5bfa0465afe244105e595</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-preview6-27730-01" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>63abc77da6d99470caa5bfa0465afe244105e595</Sha>
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview6.19279.8" CoherentParentDependency="Microsoft.NETCore.App">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
<Sha>e23119d577e644d2c2a25419c88c1181681358e0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19270.1">
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19302.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>e913fb3b02d4089a91ff91c041c5f6e7c29038b0</Sha>
|
||||
<Sha>e6a5d5f970bb872451c6310ae34eda31041fb552</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19270.1">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19302.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>e913fb3b02d4089a91ff91c041c5f6e7c29038b0</Sha>
|
||||
<Sha>e6a5d5f970bb872451c6310ae34eda31041fb552</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19302.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>e6a5d5f970bb872451c6310ae34eda31041fb552</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview6.19280.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||
<Sha>bfea1edf9e2e9a5465f331517149c4f543ac2ba6</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@
|
|||
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup Label="Arcade settings">
|
||||
<!-- Opt-in to using the version of the Roslyn compiler bundled with Arcade. -->
|
||||
<UsingToolMicrosoftNetCompilers Condition="'$(MSBuildProjectExtension)' == '.csproj' or '$(MSBuildProjectExtension)' == '.fsproj' or '$(MSBuildProjectExtension)' == '.vbproj'">true</UsingToolMicrosoftNetCompilers>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
|
||||
These versions should ONLY be updated by automation.
|
||||
|
|
@ -17,107 +21,110 @@
|
|||
-->
|
||||
<PropertyGroup Label="Automated">
|
||||
<!-- Packages from dotnet/arcade -->
|
||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19270.1</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19302.2</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<!-- Packages from dotnet/core-setup -->
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview6-27714-15</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview6-27714-15</MicrosoftNETCoreAppPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview6-27730-01</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview6-27730-01</MicrosoftNETCoreAppPackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0-preview6-27730-01</NETStandardLibraryRefPackageVersion>
|
||||
<!-- Packages from dotnet/corefx -->
|
||||
<MicrosoftCSharpPackageVersion>4.6.0-preview6.19264.9</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview6.19264.9</MicrosoftWin32RegistryPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview6.19264.9</SystemComponentModelAnnotationsPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>4.6.0-preview6.19279.8</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview6.19279.8</MicrosoftWin32RegistryPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview6.19279.8</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDataSqlClientPackageVersion>4.7.0-preview6.19264.9</SystemDataSqlClientPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview6.19264.9</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>4.6.0-preview6.19264.9</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview6.19264.9</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview6.19264.9</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview6.19264.9</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview6.19264.9</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview6.19264.9</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview6.19264.9</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview6.19264.9</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview6.19264.9</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview6.19264.9</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview6.19264.9</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview6.19264.9</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>4.6.0-preview6.19264.9</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview6.19264.9</SystemThreadingChannelsPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview6.19279.8</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>4.6.0-preview6.19279.8</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview6.19279.8</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview6.19279.8</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview6.19279.8</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview6.19279.8</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview6.19279.8</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview6.19279.8</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview6.19279.8</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview6.19279.8</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview6.19279.8</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview6.19279.8</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview6.19279.8</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>4.6.0-preview6.19279.8</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview6.19279.8</SystemThreadingChannelsPackageVersion>
|
||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview6.19264.9</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview6.19279.8</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<!-- Packages from aspnet/Blazor -->
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>0.10.0-preview7.19303.2</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<!-- Packages from aspnet/Extensions -->
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview6.19265.2</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview6.19265.2</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview6.19265.2</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview6.19265.2</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview6.19265.2</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview6.19265.2</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview6.19265.2</MonoWebAssemblyInteropPackageVersion>
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview6.19280.1</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview6.19280.1</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview6.19280.1</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview6.19280.1</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview6.19280.1</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview6.19280.1</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview6.19280.1</MonoWebAssemblyInteropPackageVersion>
|
||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||
<dotnetefPackageVersion>3.0.0-preview6.19252.4</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview6.19252.4</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<dotnetefPackageVersion>3.0.0-preview6.19303.2</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview6.19303.2</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview6.19270.2</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview6.19270.2</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview6.19270.2</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview6.19270.2</MicrosoftNETSdkRazorPackageVersion>
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview6.19303.1</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview6.19303.1</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview6.19303.1</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview6.19303.1</MicrosoftNETSdkRazorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
|
||||
|
|
@ -136,6 +143,7 @@
|
|||
<MicrosoftNETTestSdkPackageVersion>15.9.0</MicrosoftNETTestSdkPackageVersion>
|
||||
<MicrosoftSourceLinkGitHubPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkGitHubPackageVersion>
|
||||
<MicrosoftSourceLinkVstsGitPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkVstsGitPackageVersion>
|
||||
<MicrosoftSymbolUploaderBuildTaskPackageVersion>1.0.0-beta-64023-03</MicrosoftSymbolUploaderBuildTaskPackageVersion>
|
||||
<!-- Stable dotnet/corefx packages no longer updated for .NET Core 3 -->
|
||||
<SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion>
|
||||
<SystemCodeDomPackageVersion>4.4.0</SystemCodeDomPackageVersion>
|
||||
|
|
@ -164,8 +172,6 @@
|
|||
<MicrosoftWebAdministrationPackageVersion>11.1.0</MicrosoftWebAdministrationPackageVersion>
|
||||
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
|
||||
<SystemIdentityModelTokensJwtPackageVersion>5.3.0</SystemIdentityModelTokensJwtPackageVersion>
|
||||
<!-- Dependencies for Blazor. -->
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>0.10.0-preview-20190523.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<!-- Packages from 2.1/2.2 branches used for site extension build -->
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,146 @@
|
|||
# Source for this file was taken from https://github.com/microsoft/azure-pipelines-task-lib/blob/11c9439d4af17e6475d9fe058e6b2e03914d17e6/powershell/VstsTaskSdk/LoggingCommandFunctions.ps1
|
||||
|
||||
# NOTE: You should not be calling these method directly as they are likely to change. Instead you should be calling the Write-Pipeline* functions defined in tools.ps1
|
||||
|
||||
$script:loggingCommandPrefix = '##vso['
|
||||
$script:loggingCommandEscapeMappings = @( # TODO: WHAT ABOUT "="? WHAT ABOUT "%"?
|
||||
New-Object psobject -Property @{ Token = ';' ; Replacement = '%3B' }
|
||||
New-Object psobject -Property @{ Token = "`r" ; Replacement = '%0D' }
|
||||
New-Object psobject -Property @{ Token = "`n" ; Replacement = '%0A' }
|
||||
New-Object psobject -Property @{ Token = "]" ; Replacement = '%5D' }
|
||||
)
|
||||
# TODO: BUG: Escape % ???
|
||||
# TODO: Add test to verify don't need to escape "=".
|
||||
|
||||
<########################################
|
||||
# Private functions.
|
||||
########################################>
|
||||
function Format-LoggingCommandData {
|
||||
[CmdletBinding()]
|
||||
param([string]$Value, [switch]$Reverse)
|
||||
|
||||
if (!$Value) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (!$Reverse) {
|
||||
foreach ($mapping in $script:loggingCommandEscapeMappings) {
|
||||
$Value = $Value.Replace($mapping.Token, $mapping.Replacement)
|
||||
}
|
||||
} else {
|
||||
for ($i = $script:loggingCommandEscapeMappings.Length - 1 ; $i -ge 0 ; $i--) {
|
||||
$mapping = $script:loggingCommandEscapeMappings[$i]
|
||||
$Value = $Value.Replace($mapping.Replacement, $mapping.Token)
|
||||
}
|
||||
}
|
||||
|
||||
return $Value
|
||||
}
|
||||
|
||||
function Format-LoggingCommand {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Area,
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Event,
|
||||
[string]$Data,
|
||||
[hashtable]$Properties)
|
||||
|
||||
# Append the preamble.
|
||||
[System.Text.StringBuilder]$sb = New-Object -TypeName System.Text.StringBuilder
|
||||
$null = $sb.Append($script:loggingCommandPrefix).Append($Area).Append('.').Append($Event)
|
||||
|
||||
# Append the properties.
|
||||
if ($Properties) {
|
||||
$first = $true
|
||||
foreach ($key in $Properties.Keys) {
|
||||
[string]$value = Format-LoggingCommandData $Properties[$key]
|
||||
if ($value) {
|
||||
if ($first) {
|
||||
$null = $sb.Append(' ')
|
||||
$first = $false
|
||||
} else {
|
||||
$null = $sb.Append(';')
|
||||
}
|
||||
|
||||
$null = $sb.Append("$key=$value")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Append the tail and output the value.
|
||||
$Data = Format-LoggingCommandData $Data
|
||||
$sb.Append(']').Append($Data).ToString()
|
||||
}
|
||||
|
||||
function Write-LoggingCommand {
|
||||
[CmdletBinding(DefaultParameterSetName = 'Parameters')]
|
||||
param(
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Parameters')]
|
||||
[string]$Area,
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Parameters')]
|
||||
[string]$Event,
|
||||
[Parameter(ParameterSetName = 'Parameters')]
|
||||
[string]$Data,
|
||||
[Parameter(ParameterSetName = 'Parameters')]
|
||||
[hashtable]$Properties,
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Object')]
|
||||
$Command,
|
||||
[switch]$AsOutput)
|
||||
|
||||
if ($PSCmdlet.ParameterSetName -eq 'Object') {
|
||||
Write-LoggingCommand -Area $Command.Area -Event $Command.Event -Data $Command.Data -Properties $Command.Properties -AsOutput:$AsOutput
|
||||
return
|
||||
}
|
||||
|
||||
$command = Format-LoggingCommand -Area $Area -Event $Event -Data $Data -Properties $Properties
|
||||
if ($AsOutput) {
|
||||
$command
|
||||
} else {
|
||||
Write-Host $command
|
||||
}
|
||||
}
|
||||
|
||||
function Write-LogIssue {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[ValidateSet('warning', 'error')]
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Type,
|
||||
[string]$Message,
|
||||
[string]$ErrCode,
|
||||
[string]$SourcePath,
|
||||
[string]$LineNumber,
|
||||
[string]$ColumnNumber,
|
||||
[switch]$AsOutput)
|
||||
|
||||
$command = Format-LoggingCommand -Area 'task' -Event 'logissue' -Data $Message -Properties @{
|
||||
'type' = $Type
|
||||
'code' = $ErrCode
|
||||
'sourcepath' = $SourcePath
|
||||
'linenumber' = $LineNumber
|
||||
'columnnumber' = $ColumnNumber
|
||||
}
|
||||
if ($AsOutput) {
|
||||
return $command
|
||||
}
|
||||
|
||||
if ($Type -eq 'error') {
|
||||
$foregroundColor = $host.PrivateData.ErrorForegroundColor
|
||||
$backgroundColor = $host.PrivateData.ErrorBackgroundColor
|
||||
if ($foregroundColor -isnot [System.ConsoleColor] -or $backgroundColor -isnot [System.ConsoleColor]) {
|
||||
$foregroundColor = [System.ConsoleColor]::Red
|
||||
$backgroundColor = [System.ConsoleColor]::Black
|
||||
}
|
||||
} else {
|
||||
$foregroundColor = $host.PrivateData.WarningForegroundColor
|
||||
$backgroundColor = $host.PrivateData.WarningBackgroundColor
|
||||
if ($foregroundColor -isnot [System.ConsoleColor] -or $backgroundColor -isnot [System.ConsoleColor]) {
|
||||
$foregroundColor = [System.ConsoleColor]::Yellow
|
||||
$backgroundColor = [System.ConsoleColor]::Black
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host $command -ForegroundColor $foregroundColor -BackgroundColor $backgroundColor
|
||||
}
|
||||
|
|
@ -53,6 +53,8 @@
|
|||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETENTITYFRAMEWORK6'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETBLAZOR'">https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json</TargetStaticFeed>
|
||||
</PropertyGroup>
|
||||
|
||||
<Error
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[CmdletBinding(PositionalBinding=$false)]
|
||||
Param(
|
||||
[string][Alias('c')]$configuration = "Debug",
|
||||
[string]$platform = $null,
|
||||
[string] $projects,
|
||||
[string][Alias('v')]$verbosity = "minimal",
|
||||
[string] $msbuildEngine = $null,
|
||||
|
|
@ -29,6 +30,7 @@ Param(
|
|||
function Print-Usage() {
|
||||
Write-Host "Common settings:"
|
||||
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
||||
Write-Host " -platform <value> Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild"
|
||||
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||
Write-Host " -binaryLog Output binary log (short: -bl)"
|
||||
Write-Host " -help Print help and exit"
|
||||
|
|
@ -77,6 +79,7 @@ function Build {
|
|||
InitializeCustomToolset
|
||||
|
||||
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
|
||||
$platformArg = if ($platform) { "/p:Platform=$platform" } else { "" }
|
||||
|
||||
if ($projects) {
|
||||
# Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons.
|
||||
|
|
@ -88,6 +91,7 @@ function Build {
|
|||
|
||||
MSBuild $toolsetBuildProj `
|
||||
$bl `
|
||||
$platformArg `
|
||||
/p:Configuration=$configuration `
|
||||
/p:RepoRoot=$RepoRoot `
|
||||
/p:Restore=$restore `
|
||||
|
|
@ -129,9 +133,8 @@ try {
|
|||
Build
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTaskError -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ ci=false
|
|||
warn_as_error=true
|
||||
node_reuse=true
|
||||
binary_log=false
|
||||
pipelines_log=false
|
||||
|
||||
projects=''
|
||||
configuration='Debug'
|
||||
|
|
@ -92,6 +93,9 @@ while [[ $# > 0 ]]; do
|
|||
-binarylog|-bl)
|
||||
binary_log=true
|
||||
;;
|
||||
-pipelineslog|-pl)
|
||||
pipelines_log=true
|
||||
;;
|
||||
-restore|-r)
|
||||
restore=true
|
||||
;;
|
||||
|
|
@ -146,6 +150,7 @@ while [[ $# > 0 ]]; do
|
|||
done
|
||||
|
||||
if [[ "$ci" == true ]]; then
|
||||
pipelines_log=true
|
||||
binary_log=true
|
||||
node_reuse=false
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
deb http://deb.debian.org/debian buster main
|
||||
deb-src http://deb.debian.org/debian buster main
|
||||
|
||||
deb http://deb.debian.org/debian-security/ buster/updates main
|
||||
deb-src http://deb.debian.org/debian-security/ buster/updates main
|
||||
|
||||
deb http://deb.debian.org/debian buster-updates main
|
||||
deb-src http://deb.debian.org/debian buster-updates main
|
||||
|
||||
deb http://deb.debian.org/debian buster-backports main contrib non-free
|
||||
deb-src http://deb.debian.org/debian buster-backports main contrib non-free
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
deb http://deb.debian.org/debian stretch main
|
||||
deb-src http://deb.debian.org/debian stretch main
|
||||
|
||||
deb http://deb.debian.org/debian-security/ stretch/updates main
|
||||
deb-src http://deb.debian.org/debian-security/ stretch/updates main
|
||||
|
||||
deb http://deb.debian.org/debian stretch-updates main
|
||||
deb-src http://deb.debian.org/debian stretch-updates main
|
||||
|
||||
deb http://deb.debian.org/debian stretch-backports main contrib non-free
|
||||
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
|
||||
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] --rootfs <directory>]"
|
||||
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] --rootfsdir <directory>]"
|
||||
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
||||
echo "LinuxCodeName - optional, Code name for Linux, can be: trusty, xenial(default), zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine"
|
||||
|
|
@ -113,12 +113,12 @@ while :; do
|
|||
__LinuxCodeName=trusty
|
||||
fi
|
||||
;;
|
||||
xenial) # Ubunry 16.04
|
||||
xenial) # Ubuntu 16.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=xenial
|
||||
fi
|
||||
;;
|
||||
zesty) # Ununtu 17.04
|
||||
zesty) # Ubuntu 17.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=zesty
|
||||
fi
|
||||
|
|
@ -132,7 +132,16 @@ while :; do
|
|||
__LinuxCodeName=jessie
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
;;
|
||||
# TBD Stretch -> Debian 9, Buster -> Debian 10
|
||||
stretch) # Debian 9
|
||||
__LinuxCodeName=stretch
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
;;
|
||||
buster) # Debian 10
|
||||
__LinuxCodeName=buster
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
;;
|
||||
tizen)
|
||||
if [ "$__BuildArch" != "armel" ]; then
|
||||
echo "Tizen is available only for armel."
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
param (
|
||||
$darcVersion = $null
|
||||
$darcVersion = $null,
|
||||
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||
)
|
||||
|
||||
$verbosity = "m"
|
||||
|
|
@ -16,13 +17,13 @@ function InstallDarcCli ($darcVersion) {
|
|||
Invoke-Expression "& `"$dotnet`" tool uninstall $darcCliPackageName -g"
|
||||
}
|
||||
|
||||
# Until we can anonymously query the BAR API for the latest arcade-services
|
||||
# build applied to the PROD channel, this is hardcoded.
|
||||
# If the user didn't explicitly specify the darc version,
|
||||
# query the Maestro API for the correct version of darc to install.
|
||||
if (-not $darcVersion) {
|
||||
$darcVersion = '1.1.0-beta.19205.4'
|
||||
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
||||
}
|
||||
|
||||
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json'
|
||||
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
|
||||
|
||||
Write-Host "Installing Darc CLI version $darcVersion..."
|
||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
darcVersion="1.1.0-beta.19205.4"
|
||||
darcVersion=''
|
||||
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||
|
||||
while [[ $# > 0 ]]; do
|
||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||
|
|
@ -10,6 +11,10 @@ while [[ $# > 0 ]]; do
|
|||
darcVersion=$2
|
||||
shift
|
||||
;;
|
||||
--versionendpoint)
|
||||
versionEndpoint=$2
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument: $1"
|
||||
usage
|
||||
|
|
@ -33,6 +38,10 @@ verbosity=m
|
|||
|
||||
. "$scriptroot/tools.sh"
|
||||
|
||||
if [ -z "$darcVersion" ]; then
|
||||
darcVersion=$(curl -X GET "$versionEndpoint" -H "accept: text/plain")
|
||||
fi
|
||||
|
||||
function InstallDarcCli {
|
||||
local darc_cli_package_name="microsoft.dotnet.darc"
|
||||
|
||||
|
|
@ -45,9 +54,9 @@ function InstallDarcCli {
|
|||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
||||
fi
|
||||
|
||||
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json"
|
||||
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json"
|
||||
|
||||
echo "Installing Darc CLI version $toolset_version..."
|
||||
echo "Installing Darc CLI version $darcVersion..."
|
||||
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,9 +8,14 @@ Param(
|
|||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
$dotnetRoot = Join-Path $RepoRoot ".dotnet"
|
||||
|
||||
$installdir = $dotnetRoot
|
||||
try {
|
||||
$dotnetRoot = Join-Path $RepoRoot ".dotnet"
|
||||
InstallDotNet $dotnetRoot $version $architecture $runtime $true
|
||||
if ($architecture -and $architecture.Trim() -eq "x86") {
|
||||
$installdir = Join-Path $installdir "x86"
|
||||
}
|
||||
InstallDotNet $installdir $version $architecture $runtime $true
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
|
|
@ -19,4 +24,4 @@ catch {
|
|||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
ExitWithExitCode 0
|
||||
ExitWithExitCode 0
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ parameters:
|
|||
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
|
||||
HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
|
||||
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
|
||||
HelixConfiguration: '' # optional -- additional property attached to a job
|
||||
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
|
||||
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
|
||||
WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
|
||||
|
|
@ -35,6 +36,7 @@ steps:
|
|||
HelixSource: ${{ parameters.HelixSource }}
|
||||
HelixType: ${{ parameters.HelixType }}
|
||||
HelixBuild: ${{ parameters.HelixBuild }}
|
||||
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||
|
|
@ -64,6 +66,7 @@ steps:
|
|||
HelixSource: ${{ parameters.HelixSource }}
|
||||
HelixType: ${{ parameters.HelixType }}
|
||||
HelixBuild: ${{ parameters.HelixBuild }}
|
||||
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,68 @@ function Exec-Process([string]$command, [string]$commandArgs) {
|
|||
}
|
||||
}
|
||||
|
||||
function Write-PipelineTaskError {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Message,
|
||||
[Parameter(Mandatory = $false)]
|
||||
[string]$Type = 'error',
|
||||
[string]$ErrCode,
|
||||
[string]$SourcePath,
|
||||
[string]$LineNumber,
|
||||
[string]$ColumnNumber,
|
||||
[switch]$AsOutput)
|
||||
|
||||
if(!$ci) {
|
||||
if($Type -eq 'error') {
|
||||
Write-Error $Message
|
||||
return
|
||||
}
|
||||
elseif ($Type -eq 'warning') {
|
||||
Write-Warning $Message
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if(($Type -ne 'error') -and ($Type -ne 'warning')) {
|
||||
Write-Host $Message
|
||||
return
|
||||
}
|
||||
if(-not $PSBoundParameters.ContainsKey('Type')) {
|
||||
$PSBoundParameters.Add('Type', 'error')
|
||||
}
|
||||
Write-LogIssue @PSBoundParameters
|
||||
}
|
||||
|
||||
function Write-PipelineSetVariable {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Name,
|
||||
[string]$Value,
|
||||
[switch]$Secret,
|
||||
[switch]$AsOutput)
|
||||
|
||||
if($ci) {
|
||||
Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data $Value -Properties @{
|
||||
'variable' = $Name
|
||||
'issecret' = $Secret
|
||||
} -AsOutput:$AsOutput
|
||||
}
|
||||
}
|
||||
|
||||
function Write-PipelinePrependPath {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$Path,
|
||||
[switch]$AsOutput)
|
||||
if($ci) {
|
||||
Write-LoggingCommand -Area 'task' -Event 'prependpath' -Data $Path -AsOutput:$AsOutput
|
||||
}
|
||||
}
|
||||
|
||||
function InitializeDotNetCli([bool]$install) {
|
||||
if (Test-Path variable:global:_DotNetInstallDir) {
|
||||
return $global:_DotNetInstallDir
|
||||
|
|
@ -134,7 +196,7 @@ function InitializeDotNetCli([bool]$install) {
|
|||
if ($install) {
|
||||
InstallDotNetSdk $dotnetRoot $dotnetSdkVersion
|
||||
} else {
|
||||
Write-Host "Unable to find dotnet with SDK version '$dotnetSdkVersion'" -ForegroundColor Red
|
||||
Write-PipelineTaskError "Unable to find dotnet with SDK version '$dotnetSdkVersion'"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
|
|
@ -147,12 +209,10 @@ function InitializeDotNetCli([bool]$install) {
|
|||
# It also ensures that VS msbuild will use the downloaded sdk targets.
|
||||
$env:PATH = "$dotnetRoot;$env:PATH"
|
||||
|
||||
if ($ci) {
|
||||
# Make Sure that our bootstrapped dotnet cli is avaliable in future steps of the Azure Pipelines build
|
||||
Write-Host "##vso[task.prependpath]$dotnetRoot"
|
||||
Write-Host "##vso[task.setvariable variable=DOTNET_MULTILEVEL_LOOKUP]0"
|
||||
Write-Host "##vso[task.setvariable variable=DOTNET_SKIP_FIRST_TIME_EXPERIENCE]1"
|
||||
}
|
||||
# Make Sure that our bootstrapped dotnet cli is avaliable in future steps of the Azure Pipelines build
|
||||
Write-PipelinePrependPath -Path $dotnetRoot
|
||||
Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0'
|
||||
Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1'
|
||||
|
||||
return $global:_DotNetInstallDir = $dotnetRoot
|
||||
}
|
||||
|
|
@ -184,7 +244,7 @@ function InstallDotNet([string] $dotnetRoot, [string] $version, [string] $archit
|
|||
|
||||
& $installScript @installParameters
|
||||
if ($lastExitCode -ne 0) {
|
||||
Write-Host "Failed to install dotnet cli (exit code '$lastExitCode')." -ForegroundColor Red
|
||||
Write-PipelineTaskError -Message "Failed to install dotnet cli (exit code '$lastExitCode')."
|
||||
ExitWithExitCode $lastExitCode
|
||||
}
|
||||
}
|
||||
|
|
@ -213,7 +273,11 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
|
|||
if ($env:VSINSTALLDIR -ne $null) {
|
||||
$msbuildCmd = Get-Command "msbuild.exe" -ErrorAction SilentlyContinue
|
||||
if ($msbuildCmd -ne $null) {
|
||||
if ($msbuildCmd.Version -ge $vsMinVersion) {
|
||||
# Workaround for https://github.com/dotnet/roslyn/issues/35793
|
||||
# Due to this issue $msbuildCmd.Version returns 0.0.0.0 for msbuild.exe 16.2+
|
||||
$msbuildVersion = [Version]::new((Get-Item $msbuildCmd.Path).VersionInfo.ProductVersion.Split(@('-', '+'))[0])
|
||||
|
||||
if ($msbuildVersion -ge $vsMinVersion) {
|
||||
return $global:_MSBuildExe = $msbuildCmd.Path
|
||||
}
|
||||
|
||||
|
|
@ -354,7 +418,7 @@ function InitializeBuildTool() {
|
|||
|
||||
if ($msbuildEngine -eq "dotnet") {
|
||||
if (!$dotnetRoot) {
|
||||
Write-Host "/global.json must specify 'tools.dotnet'." -ForegroundColor Red
|
||||
Write-PipelineTaskError "/global.json must specify 'tools.dotnet'."
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
@ -363,13 +427,13 @@ function InitializeBuildTool() {
|
|||
try {
|
||||
$msbuildPath = InitializeVisualStudioMSBuild -install:$restore
|
||||
} catch {
|
||||
Write-Host $_ -ForegroundColor Red
|
||||
Write-PipelineTaskError $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
$buildTool = @{ Path = $msbuildPath; Command = ""; Tool = "vs"; Framework = "net472" }
|
||||
} else {
|
||||
Write-Host "Unexpected value of -msbuildEngine: '$msbuildEngine'." -ForegroundColor Red
|
||||
Write-PipelineTaskError "Unexpected value of -msbuildEngine: '$msbuildEngine'."
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
@ -386,7 +450,7 @@ function GetDefaultMSBuildEngine() {
|
|||
return "dotnet"
|
||||
}
|
||||
|
||||
Write-Host "-msbuildEngine must be specified, or /global.json must specify 'tools.dotnet' or 'tools.vs'." -ForegroundColor Red
|
||||
Write-PipelineTaskError "-msbuildEngine must be specified, or /global.json must specify 'tools.dotnet' or 'tools.vs'."
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
@ -437,7 +501,7 @@ function InitializeToolset() {
|
|||
}
|
||||
|
||||
if (-not $restore) {
|
||||
Write-Host "Toolset version $toolsetVersion has not been restored." -ForegroundColor Red
|
||||
Write-PipelineTaskError "Toolset version $toolsetVersion has not been restored."
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
@ -522,7 +586,7 @@ function MSBuild-Core() {
|
|||
$exitCode = Exec-Process $buildTool.Path $cmdArgs
|
||||
|
||||
if ($exitCode -ne 0) {
|
||||
Write-Host "Build failed." -ForegroundColor Red
|
||||
Write-PipelineTaskError "Build failed."
|
||||
|
||||
$buildLog = GetMSBuildBinaryLogCommandLineArgument $args
|
||||
if ($buildLog -ne $null) {
|
||||
|
|
@ -550,6 +614,8 @@ function GetMSBuildBinaryLogCommandLineArgument($arguments) {
|
|||
return $null
|
||||
}
|
||||
|
||||
. $PSScriptRoot\LoggingCommandFunctions.ps1
|
||||
|
||||
$RepoRoot = Resolve-Path (Join-Path $PSScriptRoot "..\..")
|
||||
$EngRoot = Resolve-Path (Join-Path $PSScriptRoot "..")
|
||||
$ArtifactsDir = Join-Path $RepoRoot "artifacts"
|
||||
|
|
@ -565,11 +631,8 @@ Create-Directory $ToolsetDir
|
|||
Create-Directory $TempDir
|
||||
Create-Directory $LogDir
|
||||
|
||||
if ($ci) {
|
||||
Write-Host "##vso[task.setvariable variable=Artifacts]$ArtifactsDir"
|
||||
Write-Host "##vso[task.setvariable variable=Artifacts.Toolset]$ToolsetDir"
|
||||
Write-Host "##vso[task.setvariable variable=Artifacts.Log]$LogDir"
|
||||
|
||||
$env:TEMP = $TempDir
|
||||
$env:TMP = $TempDir
|
||||
}
|
||||
Write-PipelineSetVariable -Name 'Artifacts' -Value $ArtifactsDir
|
||||
Write-PipelineSetVariable -Name 'Artifacts.Toolset' -Value $ToolsetDir
|
||||
Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir
|
||||
Write-PipelineSetVariable -Name 'TEMP' -Value $TempDir
|
||||
Write-PipelineSetVariable -Name 'TMP' -Value $TempDir
|
||||
|
|
|
|||
|
|
@ -1,8 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Initialize variables if they aren't already defined.
|
||||
|
||||
# CI mode - set to true on CI server for PR validation build or official build.
|
||||
ci=${ci:-false}
|
||||
|
||||
# Set to true to use the pipelines logger which will enable Azure logging output.
|
||||
# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
|
||||
# This flag is meant as a temporary opt-opt for the feature while validate it across
|
||||
# our consumers. It will be deleted in the future.
|
||||
if [[ "$ci" == true ]]; then
|
||||
pipelines_log=${pipelines_log:-true}
|
||||
else
|
||||
pipelines_log=${pipelines_log:-false}
|
||||
fi
|
||||
|
||||
# Build configuration. Common values include 'Debug' and 'Release', but the repository may use other names.
|
||||
configuration=${configuration:-'Debug'}
|
||||
|
||||
|
|
@ -40,6 +52,78 @@ else
|
|||
use_global_nuget_cache=${use_global_nuget_cache:-true}
|
||||
fi
|
||||
|
||||
function EmitError {
|
||||
if [[ "$ci" != true ]]; then
|
||||
echo "$@" >&2
|
||||
return
|
||||
fi
|
||||
|
||||
message_type="error"
|
||||
sourcepath=''
|
||||
linenumber=''
|
||||
columnnumber=''
|
||||
error_code=''
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')"
|
||||
case "$opt" in
|
||||
-type|-t)
|
||||
message_type=$2
|
||||
shift
|
||||
;;
|
||||
-sourcepath|-s)
|
||||
sourcepath=$2
|
||||
shift
|
||||
;;
|
||||
-linenumber|-l)
|
||||
linenumber=$2
|
||||
shift
|
||||
;;
|
||||
-columnnumber|-col)
|
||||
columnnumber=$2
|
||||
shift
|
||||
;;
|
||||
-code|-c)
|
||||
error_code=$2
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
message='##vso[task.logissue'
|
||||
|
||||
message="$message type=$message_type"
|
||||
|
||||
if [ -n "$sourcepath" ]; then
|
||||
message="$message;sourcepath=$sourcepath"
|
||||
else
|
||||
message="$message;sourcepath=${BASH_SOURCE[1]}"
|
||||
fi
|
||||
|
||||
if [ -n "$linenumber" ]; then
|
||||
message="$message;linenumber=$linenumber"
|
||||
else
|
||||
message="$message;linenumber=${BASH_LINENO[0]}"
|
||||
fi
|
||||
|
||||
if [ -n "$columnnumber" ]; then
|
||||
message="$message;columnnumber=$columnnumber"
|
||||
fi
|
||||
|
||||
if [ -n "$error_code" ]; then
|
||||
message="$message;code=$error_code"
|
||||
fi
|
||||
|
||||
message="$message]$*"
|
||||
|
||||
echo "$message"
|
||||
}
|
||||
|
||||
# Resolve any symlinks in the given path.
|
||||
function ResolvePath {
|
||||
local path=$1
|
||||
|
|
@ -65,7 +149,7 @@ function ReadGlobalVersion {
|
|||
local pattern="\"$key\" *: *\"(.*)\""
|
||||
|
||||
if [[ ! $line =~ $pattern ]]; then
|
||||
echo "Error: Cannot find \"$key\" in $global_json_file" >&2
|
||||
EmitError "Error: Cannot find \"$key\" in $global_json_file"
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
|
||||
|
|
@ -126,7 +210,7 @@ function InitializeDotNetCli {
|
|||
if [[ "$install" == true ]]; then
|
||||
InstallDotNetSdk "$dotnet_root" "$dotnet_sdk_version"
|
||||
else
|
||||
echo "Unable to find dotnet with SDK version '$dotnet_sdk_version'" >&2
|
||||
EmitError "Unable to find dotnet with SDK version '$dotnet_sdk_version'"
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
fi
|
||||
|
|
@ -179,7 +263,7 @@ function InstallDotNet {
|
|||
fi
|
||||
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || {
|
||||
local exit_code=$?
|
||||
echo "Failed to install dotnet SDK (exit code '$exit_code')." >&2
|
||||
EmitError "Failed to install dotnet SDK (exit code '$exit_code')."
|
||||
ExitWithExitCode $exit_code
|
||||
}
|
||||
}
|
||||
|
|
@ -216,6 +300,7 @@ function InitializeBuildTool {
|
|||
# return values
|
||||
_InitializeBuildTool="$_InitializeDotNetCli/dotnet"
|
||||
_InitializeBuildToolCommand="msbuild"
|
||||
_InitializeBuildToolFramework="netcoreapp2.1"
|
||||
}
|
||||
|
||||
function GetNuGetPackageCachePath {
|
||||
|
|
@ -264,7 +349,7 @@ function InitializeToolset {
|
|||
fi
|
||||
|
||||
if [[ "$restore" != true ]]; then
|
||||
echo "Toolset version $toolsetVersion has not been restored." >&2
|
||||
EmitError "Toolset version $toolsetVersion has not been restored."
|
||||
ExitWithExitCode 2
|
||||
fi
|
||||
|
||||
|
|
@ -276,12 +361,12 @@ function InitializeToolset {
|
|||
fi
|
||||
|
||||
echo '<Project Sdk="Microsoft.DotNet.Arcade.Sdk"/>' > "$proj"
|
||||
MSBuild "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
|
||||
MSBuild-Core "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
|
||||
|
||||
local toolset_build_proj=`cat "$toolset_location_file"`
|
||||
|
||||
if [[ ! -a "$toolset_build_proj" ]]; then
|
||||
echo "Invalid toolset path: $toolset_build_proj" >&2
|
||||
EmitError "Invalid toolset path: $toolset_build_proj"
|
||||
ExitWithExitCode 3
|
||||
fi
|
||||
|
||||
|
|
@ -304,14 +389,27 @@ function StopProcesses {
|
|||
}
|
||||
|
||||
function MSBuild {
|
||||
local args=$@
|
||||
if [[ "$pipelines_log" == true ]]; then
|
||||
InitializeBuildTool
|
||||
InitializeToolset
|
||||
local toolset_dir="${_InitializeToolset%/*}"
|
||||
local logger_path="$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll"
|
||||
args=( "${args[@]}" "-logger:$logger_path" )
|
||||
fi
|
||||
|
||||
MSBuild-Core ${args[@]}
|
||||
}
|
||||
|
||||
function MSBuild-Core {
|
||||
if [[ "$ci" == true ]]; then
|
||||
if [[ "$binary_log" != true ]]; then
|
||||
echo "Binary log must be enabled in CI build." >&2
|
||||
EmitError "Binary log must be enabled in CI build."
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
|
||||
if [[ "$node_reuse" == true ]]; then
|
||||
echo "Node reuse must be disabled in CI build." >&2
|
||||
EmitError "Node reuse must be disabled in CI build."
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
fi
|
||||
|
|
@ -325,7 +423,7 @@ function MSBuild {
|
|||
|
||||
"$_InitializeBuildTool" "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" || {
|
||||
local exit_code=$?
|
||||
echo "Build failed (exit code '$exit_code')." >&2
|
||||
EmitError "Build failed (exit code '$exit_code')."
|
||||
ExitWithExitCode $exit_code
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Installs NodeJs from http://nodejs.org/dist on a machine
|
||||
.DESCRIPTION
|
||||
This script installs NodeJs from http://nodejs.org/dist on a machine.
|
||||
.PARAMETER Version
|
||||
The version of NodeJS to install.
|
||||
.PARAMETER InstallDir
|
||||
The directory to install NodeJS to.
|
||||
.LINK
|
||||
https://nodejs.org/en/
|
||||
#>
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
$Version,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$InstallDir
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$ProgressPreference = 'SilentlyContinue' # Workaround PowerShell/PowerShell#2138
|
||||
|
||||
Set-StrictMode -Version 1
|
||||
|
||||
if (Get-Command "node.exe" -ErrorAction SilentlyContinue)
|
||||
{
|
||||
Write-Host "Found node.exe in PATH"
|
||||
exit
|
||||
}
|
||||
|
||||
if (Test-Path "$output_dir\node.exe")
|
||||
{
|
||||
Write-Host "Node.exe found at $output_dir"
|
||||
exit
|
||||
}
|
||||
|
||||
$nodeFile="node-v$Version-win-x64"
|
||||
$url="http://nodejs.org/dist/v$Version/$nodeFile.zip"
|
||||
Write-Host "Starting download of NodeJs ${Version} from $url"
|
||||
Invoke-WebRequest -UseBasicParsing -Uri "$url" -OutFile "nodejs.zip"
|
||||
Write-Host "Done downloading NodeJS ${Version}"
|
||||
|
||||
$tempPath = [System.IO.Path]::GetTempPath()
|
||||
$tempDir = Join-Path $tempPath nodejs
|
||||
New-Item -Path "$tempDir" -ItemType "directory" -Force
|
||||
Write-Host "Extracting to $tempDir"
|
||||
|
||||
if (Get-Command -Name 'Microsoft.PowerShell.Archive\Expand-Archive' -ErrorAction Ignore) {
|
||||
# Use built-in commands where possible as they are cross-plat compatible
|
||||
Microsoft.PowerShell.Archive\Expand-Archive -Path "nodejs.zip" -DestinationPath $tempDir
|
||||
}
|
||||
else {
|
||||
# Fallback to old approach for old installations of PowerShell
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory("nodejs.zip", $tempDir)
|
||||
}
|
||||
|
||||
Write-Host "Expanded NodeJs"
|
||||
New-Item -Path "$InstallDir" -ItemType "directory" -Force
|
||||
Write-Host "Copying $tempDir\$nodeFile\node.exe to $InstallDir"
|
||||
Copy-Item "$tempDir\$nodeFile\node.exe" "$InstallDir\node.exe"
|
||||
|
||||
if (Test-Path "$InstallDir\node.exe")
|
||||
{
|
||||
Write-Host "Node.exe copied to $InstallDir"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Node.exe not copied to $InstallDir"
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Cause the script to fail if any subcommand fails
|
||||
set -e
|
||||
|
||||
if type -P "node" &>/dev/null; then
|
||||
echo "node is in \$PATH"
|
||||
exit
|
||||
fi
|
||||
|
||||
node_version=$1
|
||||
osname=`uname -s`
|
||||
echo $osname
|
||||
if [ "$osname" = "Darwin" ]; then
|
||||
platformarch='darwin-x64'
|
||||
else
|
||||
platformarch='linux-x64'
|
||||
fi
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
output_dir="$DIR/node"
|
||||
url="http://nodejs.org/dist/v$node_version/node-v$node_version-$platformarch.tar.gz"
|
||||
tmp="$(mktemp -d -t install-node.XXXXXX)"
|
||||
trap "rm -rf $tmp" EXIT
|
||||
cd "$tmp"
|
||||
curl -Lsfo $(basename $url) "$url"
|
||||
echo "Installing node from $(basename $url) $url"
|
||||
mkdir $output_dir
|
||||
echo "Unpacking to $output_dir"
|
||||
tar --strip-components 1 -xzf "node-v$node_version-$platformarch.tar.gz" --no-same-owner --directory "$output_dir"
|
||||
|
|
@ -14,7 +14,7 @@ set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
|||
set DOTNET_MULTILEVEL_LOOKUP=0
|
||||
set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home
|
||||
|
||||
set PATH=%DOTNET_ROOT%;%PATH%
|
||||
set PATH=%DOTNET_ROOT%;%PATH%;%HELIX_CORRELATION_PAYLOAD%\node\bin
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Version %sdkVersion% -InstallDir %DOTNET_ROOT%"
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Runtime dotnet -Version %runtimeVersion% -InstallDir %DOTNET_ROOT%"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
export DOTNET_ROOT="$DIR/.dotnet$RANDOM"
|
||||
|
||||
# Ensure dotnet comes first on PATH
|
||||
export PATH="$DOTNET_ROOT:$PATH"
|
||||
export PATH="$DOTNET_ROOT:$PATH:$DIR/node/bin"
|
||||
|
||||
# Prevent fallback to global .NET locations. This ensures our tests use the shared frameworks we specify and don't rollforward to something else that might be installed on the machine
|
||||
export DOTNET_MULTILEVEL_LOOKUP=0
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
<HelixTestName>$(MSBuildProjectName)/$(TargetFramework)</HelixTestName>
|
||||
<HelixUseArchive>false</HelixUseArchive>
|
||||
<LoggingTestingDisableFileLogging Condition="'$(IsHelixJob)' == 'true'">true</LoggingTestingDisableFileLogging>
|
||||
<NodeVersion>10.15.3</NodeVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
|
||||
|
|
@ -35,4 +36,12 @@
|
|||
<HelixPreCommand Include="call RunPowershell.cmd mssql\InstallSqlServerLocalDB.ps1 || exit /b 1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'false'">
|
||||
<HelixPreCommand Include="./installnode.sh $(NodeVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true'">
|
||||
<HelixPreCommand Include="call RunPowershell.cmd InstallNode.ps1 $(NodeVersion) %25HELIX_CORRELATION_PAYLOAD%25\node\bin || exit /b 1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -53,6 +53,21 @@
|
|||
|
||||
<Copy SourceFiles="$(PackageJson)" DestinationFiles="$(_BackupPackageJson)" />
|
||||
|
||||
<ReadLinesFromFile File="$(PackageJson)" Condition="@(ReplacePackageContent->Count()) != 0 AND $([MSBuild]::IsOSPlatform('Windows'))">
|
||||
<Output TaskParameter="Lines" ItemName="PackageJsonContent" />
|
||||
</ReadLinesFromFile>
|
||||
|
||||
<PropertyGroup Condition="@(PackageJsonContent->Count()) > 0">
|
||||
<_PackageJsonContent>@(PackageJsonContent->'%(Identity)', '%0a')</_PackageJsonContent>
|
||||
<_PackageJsonContent>$(_PackageJsonContent.Replace('%(ReplacePackageContent.Identity)', '%(ReplacePackageContent.ReplaceWith)'))</_PackageJsonContent>
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteLinesToFile
|
||||
File="$(PackageJson)"
|
||||
Lines="$(_PackageJsonContent)"
|
||||
Condition="@(ReplacePackageContent->Count()) != 0 AND $([MSBuild]::IsOSPlatform('Windows'))"
|
||||
Overwrite="true" />
|
||||
|
||||
<Yarn Command="version --no-git-tag-version --new-version $(PackageVersion)" />
|
||||
<Yarn Command="pack --filename $(PackageFileName)" />
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<_GenAPICommand Condition="'$(MSBuildRuntimeType)' == 'core'">$(ToolHostCmd) --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
|
||||
<_GenAPICommand Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
|
||||
<_GenAPICmd>$(_GenAPICommand)</_GenAPICmd>
|
||||
<_GenAPICmd>$(_GenAPICmd) "$(TargetPath)"</_GenAPICmd>
|
||||
<_GenAPICmd>$(_GenAPICmd) --lib-path "@(_ReferencePathDirectories)"</_GenAPICmd>
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@
|
|||
"version": "3.0.100-preview5-011568"
|
||||
},
|
||||
"tools": {
|
||||
"dotnet": "3.0.100-preview5-011568",
|
||||
"jdk": "11.0.3"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Yarn.MSBuild": "1.15.2",
|
||||
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19270.1"
|
||||
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19302.2",
|
||||
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19302.2"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,12 @@ namespace Microsoft.AspNetCore.Analyzers.TestFiles.CompilationFeatureDetectorTes
|
|||
{
|
||||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
#pragma warning disable CS0618 // Type or member is obsolete
|
||||
app.UseSignalR(routes =>
|
||||
{
|
||||
|
||||
});
|
||||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,89 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
internal static class ComponentFacts
|
||||
{
|
||||
public static bool IsAnyParameter(ComponentSymbols symbols, IPropertySymbol property)
|
||||
{
|
||||
if (symbols == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(symbols));
|
||||
}
|
||||
|
||||
if (property == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(property));
|
||||
}
|
||||
|
||||
return property.GetAttributes().Any(a =>
|
||||
{
|
||||
return a.AttributeClass == symbols.ParameterAttribute || a.AttributeClass == symbols.CascadingParameterAttribute;
|
||||
});
|
||||
}
|
||||
|
||||
public static bool IsParameter(ComponentSymbols symbols, IPropertySymbol property)
|
||||
{
|
||||
if (symbols == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(symbols));
|
||||
}
|
||||
|
||||
if (property == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(property));
|
||||
}
|
||||
|
||||
return property.GetAttributes().Any(a => a.AttributeClass == symbols.ParameterAttribute);
|
||||
}
|
||||
|
||||
public static bool IsParameterWithCaptureUnmatchedValues(ComponentSymbols symbols, IPropertySymbol property)
|
||||
{
|
||||
if (symbols == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(symbols));
|
||||
}
|
||||
|
||||
if (property == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(property));
|
||||
}
|
||||
|
||||
var attribute = property.GetAttributes().FirstOrDefault(a => a.AttributeClass == symbols.ParameterAttribute);
|
||||
if (attribute == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (var kvp in attribute.NamedArguments)
|
||||
{
|
||||
if (string.Equals(kvp.Key, ComponentsApi.ParameterAttribute.CaptureUnmatchedValues, StringComparison.Ordinal))
|
||||
{
|
||||
return kvp.Value.Value as bool? ?? false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsCascadingParameter(ComponentSymbols symbols, IPropertySymbol property)
|
||||
{
|
||||
if (symbols == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(symbols));
|
||||
}
|
||||
|
||||
if (property == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(property));
|
||||
}
|
||||
|
||||
return property.GetAttributes().Any(a => a.AttributeClass == symbols.CascadingParameterAttribute);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
[DiagnosticAnalyzer(LanguageNames.CSharp)]
|
||||
public class ComponentParameterAnalyzer : DiagnosticAnalyzer
|
||||
{
|
||||
public ComponentParameterAnalyzer()
|
||||
{
|
||||
SupportedDiagnostics = ImmutableArray.Create(new[]
|
||||
{
|
||||
DiagnosticDescriptors.ComponentParametersShouldNotBePublic,
|
||||
DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesMustBeUnique,
|
||||
DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesHasWrongType,
|
||||
});
|
||||
}
|
||||
|
||||
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; }
|
||||
|
||||
public override void Initialize(AnalysisContext context)
|
||||
{
|
||||
context.RegisterCompilationStartAction(context =>
|
||||
{
|
||||
if (!ComponentSymbols.TryCreate(context.Compilation, out var symbols))
|
||||
{
|
||||
// Types we need are not defined.
|
||||
return;
|
||||
}
|
||||
|
||||
// This operates per-type because one of the validations we need has to look for duplicates
|
||||
// defined on the same type.
|
||||
context.RegisterSymbolStartAction(context =>
|
||||
{
|
||||
var properties = new List<IPropertySymbol>();
|
||||
|
||||
var type = (INamedTypeSymbol)context.Symbol;
|
||||
foreach (var member in type.GetMembers())
|
||||
{
|
||||
if (member is IPropertySymbol property && ComponentFacts.IsAnyParameter(symbols, property))
|
||||
{
|
||||
// Annotated with [Parameter] or [CascadingParameter]
|
||||
properties.Add(property);
|
||||
}
|
||||
}
|
||||
|
||||
if (properties.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
context.RegisterSymbolEndAction(context =>
|
||||
{
|
||||
var captureUnmatchedValuesParameters = new List<IPropertySymbol>();
|
||||
|
||||
// Per-property validations
|
||||
foreach (var property in properties)
|
||||
{
|
||||
if (property.SetMethod?.DeclaredAccessibility == Accessibility.Public)
|
||||
{
|
||||
context.ReportDiagnostic(Diagnostic.Create(
|
||||
DiagnosticDescriptors.ComponentParametersShouldNotBePublic,
|
||||
property.Locations[0],
|
||||
property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)));
|
||||
}
|
||||
|
||||
if (ComponentFacts.IsParameterWithCaptureUnmatchedValues(symbols, property))
|
||||
{
|
||||
captureUnmatchedValuesParameters.Add(property);
|
||||
|
||||
// Check the type, we need to be able to assign a Dictionary<string, object>
|
||||
var conversion = context.Compilation.ClassifyConversion(symbols.ParameterCaptureUnmatchedValuesRuntimeType, property.Type);
|
||||
if (!conversion.Exists || conversion.IsExplicit)
|
||||
{
|
||||
context.ReportDiagnostic(Diagnostic.Create(
|
||||
DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesHasWrongType,
|
||||
property.Locations[0],
|
||||
property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
|
||||
property.Type.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
|
||||
symbols.ParameterCaptureUnmatchedValuesRuntimeType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check if the type defines multiple CaptureUnmatchedValues parameters. Doing this outside the loop means we place the
|
||||
// errors on the type.
|
||||
if (captureUnmatchedValuesParameters.Count > 1)
|
||||
{
|
||||
context.ReportDiagnostic(Diagnostic.Create(
|
||||
DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesMustBeUnique,
|
||||
context.Symbol.Locations[0],
|
||||
type.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
|
||||
Environment.NewLine,
|
||||
string.Join(
|
||||
Environment.NewLine,
|
||||
captureUnmatchedValuesParameters.Select(p => p.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)).OrderBy(n => n))));
|
||||
}
|
||||
});
|
||||
}, SymbolKind.NamedType);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNetCore.Components.Shared;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
[DiagnosticAnalyzer(LanguageNames.CSharp)]
|
||||
public class ComponentParametersShouldNotBePublicAnalyzer : DiagnosticAnalyzer
|
||||
{
|
||||
public const string DiagnosticId = "BL9993";
|
||||
private const string Category = "Encapsulation";
|
||||
|
||||
private static readonly LocalizableString Title = new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Title), Resources.ResourceManager, typeof(Resources));
|
||||
private static readonly LocalizableString MessageFormat = new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Format), Resources.ResourceManager, typeof(Resources));
|
||||
private static readonly LocalizableString Description = new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Description), Resources.ResourceManager, typeof(Resources));
|
||||
private static DiagnosticDescriptor Rule = new DiagnosticDescriptor(
|
||||
DiagnosticId,
|
||||
Title,
|
||||
MessageFormat,
|
||||
Category,
|
||||
DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
description: Description);
|
||||
|
||||
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
|
||||
=> ImmutableArray.Create(Rule);
|
||||
|
||||
public override void Initialize(AnalysisContext context)
|
||||
{
|
||||
context.RegisterSyntaxNodeAction(AnalyzeSyntax, SyntaxKind.PropertyDeclaration);
|
||||
}
|
||||
|
||||
private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
var semanticModel = context.SemanticModel;
|
||||
var declaration = (PropertyDeclarationSyntax)context.Node;
|
||||
|
||||
var parameterAttribute = declaration.AttributeLists
|
||||
.SelectMany(list => list.Attributes)
|
||||
.Where(attr => semanticModel.GetTypeInfo(attr).Type?.ToDisplayString() == ComponentsApi.ParameterAttribute.FullTypeName)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (parameterAttribute != null && IsPubliclySettable(declaration))
|
||||
{
|
||||
var identifierText = declaration.Identifier.Text;
|
||||
if (!string.IsNullOrEmpty(identifierText))
|
||||
{
|
||||
context.ReportDiagnostic(Diagnostic.Create(
|
||||
Rule,
|
||||
declaration.GetLocation(),
|
||||
identifierText));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsPubliclySettable(PropertyDeclarationSyntax declaration)
|
||||
{
|
||||
// If the property has a setter explicitly marked private/protected/internal, then it's not public
|
||||
var setter = declaration.AccessorList?.Accessors.SingleOrDefault(x => x.Keyword.IsKind(SyntaxKind.SetKeyword));
|
||||
if (setter != null && setter.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword) || x.IsKind(SyntaxKind.ProtectedKeyword) || x.IsKind(SyntaxKind.InternalKeyword)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Otherwise fallback to the property declaration modifiers
|
||||
return declaration.Modifiers.Any(x => x.IsKind(SyntaxKind.PublicKeyword));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Immutable;
|
||||
using System.Composition;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CodeActions;
|
||||
using Microsoft.CodeAnalysis.CodeFixes;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using System.Collections.Immutable;
|
||||
using System.Composition;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers
|
|||
private static readonly LocalizableString Title = new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_FixTitle), Resources.ResourceManager, typeof(Resources));
|
||||
|
||||
public override ImmutableArray<string> FixableDiagnosticIds
|
||||
=> ImmutableArray.Create(ComponentParametersShouldNotBePublicAnalyzer.DiagnosticId);
|
||||
=> ImmutableArray.Create(DiagnosticDescriptors.ComponentParametersShouldNotBePublic.Id);
|
||||
|
||||
public sealed override FixAllProvider GetFixAllProvider()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
internal class ComponentSymbols
|
||||
{
|
||||
public static bool TryCreate(Compilation compilation, out ComponentSymbols symbols)
|
||||
{
|
||||
if (compilation == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(compilation));
|
||||
}
|
||||
|
||||
var parameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.ParameterAttribute.MetadataName);
|
||||
if (parameterAttribute == null)
|
||||
{
|
||||
symbols = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
var cascadingParameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.CascadingParameterAttribute.MetadataName);
|
||||
if (cascadingParameterAttribute == null)
|
||||
{
|
||||
symbols = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
var dictionary = compilation.GetTypeByMetadataName("System.Collections.Generic.Dictionary`2");
|
||||
var @string = compilation.GetSpecialType(SpecialType.System_String);
|
||||
var @object = compilation.GetSpecialType(SpecialType.System_Object);
|
||||
if (dictionary == null || @string == null || @object == null)
|
||||
{
|
||||
symbols = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
var parameterCaptureUnmatchedValuesRuntimeType = dictionary.Construct(@string, @object);
|
||||
|
||||
symbols = new ComponentSymbols(parameterAttribute, cascadingParameterAttribute, parameterCaptureUnmatchedValuesRuntimeType);
|
||||
return true;
|
||||
}
|
||||
|
||||
private ComponentSymbols(
|
||||
INamedTypeSymbol parameterAttribute,
|
||||
INamedTypeSymbol cascadingParameterAttribute,
|
||||
INamedTypeSymbol parameterCaptureUnmatchedValuesRuntimeType)
|
||||
{
|
||||
ParameterAttribute = parameterAttribute;
|
||||
CascadingParameterAttribute = cascadingParameterAttribute;
|
||||
ParameterCaptureUnmatchedValuesRuntimeType = parameterCaptureUnmatchedValuesRuntimeType;
|
||||
}
|
||||
|
||||
public INamedTypeSymbol ParameterAttribute { get; }
|
||||
|
||||
// Dictionary<string, object>
|
||||
public INamedTypeSymbol ParameterCaptureUnmatchedValuesRuntimeType { get; }
|
||||
|
||||
public INamedTypeSymbol CascadingParameterAttribute { get; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Shared
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
// Constants for type and method names used in code-generation
|
||||
// Keep these in sync with the actual definitions
|
||||
|
|
@ -13,6 +13,14 @@ namespace Microsoft.AspNetCore.Components.Shared
|
|||
{
|
||||
public static readonly string FullTypeName = "Microsoft.AspNetCore.Components.ParameterAttribute";
|
||||
public static readonly string MetadataName = FullTypeName;
|
||||
|
||||
public static readonly string CaptureUnmatchedValues = "CaptureUnmatchedValues";
|
||||
}
|
||||
|
||||
public static class CascadingParameterAttribute
|
||||
{
|
||||
public static readonly string FullTypeName = "Microsoft.AspNetCore.Components.CascadingParameterAttribute";
|
||||
public static readonly string MetadataName = FullTypeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
internal static class DiagnosticDescriptors
|
||||
{
|
||||
// Note: The Razor Compiler (including Components features) use the RZ prefix for diagnostics, so there's currently
|
||||
// no change of clashing between that and the BL prefix used here.
|
||||
//
|
||||
// Tracking https://github.com/aspnet/AspNetCore/issues/10382 to rationalize this
|
||||
public static readonly DiagnosticDescriptor ComponentParametersShouldNotBePublic = new DiagnosticDescriptor(
|
||||
"BL0001",
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Title), Resources.ResourceManager, typeof(Resources)),
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Format), Resources.ResourceManager, typeof(Resources)),
|
||||
"Encapsulation",
|
||||
DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
description: new LocalizableResourceString(nameof(Resources.ComponentParametersShouldNotBePublic_Description), Resources.ResourceManager, typeof(Resources)));
|
||||
|
||||
public static readonly DiagnosticDescriptor ComponentParameterCaptureUnmatchedValuesMustBeUnique = new DiagnosticDescriptor(
|
||||
"BL0002",
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesMustBeUnique_Title), Resources.ResourceManager, typeof(Resources)),
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesMustBeUnique_Format), Resources.ResourceManager, typeof(Resources)),
|
||||
"Usage",
|
||||
DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
description: new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesMustBeUnique_Description), Resources.ResourceManager, typeof(Resources)));
|
||||
|
||||
public static readonly DiagnosticDescriptor ComponentParameterCaptureUnmatchedValuesHasWrongType = new DiagnosticDescriptor(
|
||||
"BL0003",
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesHasWrongType_Title), Resources.ResourceManager, typeof(Resources)),
|
||||
new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesHasWrongType_Format), Resources.ResourceManager, typeof(Resources)),
|
||||
"Usage",
|
||||
DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
description: new LocalizableResourceString(nameof(Resources.ComponentParameterCaptureUnmatchedValuesHasWrongType_Description), Resources.ResourceManager, typeof(Resources)));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Components.Analyzers.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers {
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -20,7 +19,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers {
|
|||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
|
@ -40,7 +39,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers {
|
|||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.AspNetCore.Components.Analyzers.Resources", typeof(Resources).GetTypeInfo().Assembly);
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.AspNetCore.Components.Analyzers.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
|
|
@ -61,6 +60,60 @@ namespace Microsoft.AspNetCore.Components.Analyzers {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component parameters with CaptureUnmatchedValuess must be a correct type..
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesHasWrongType_Description {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesHasWrongType_Description", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component parameter '{0}' defines CaptureUnmatchedValuess but has an unsupported type '{1}'. Use a type assignable from '{2}'..
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesHasWrongType_Format {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesHasWrongType_Format", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component parameter with CaptureUnmatchedValues has the wrong type.
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesHasWrongType_Title {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesHasWrongType_Title", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Components may only define a single parameter with CaptureUnmatchedValues..
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesMustBeUnique_Description {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesMustBeUnique_Description", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component type '{0}' defines properties multiple parameters with CaptureUnmatchedValues. Properties: {1}{2}.
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesMustBeUnique_Format {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesMustBeUnique_Format", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component has multiple CaptureUnmatchedValues parameters.
|
||||
/// </summary>
|
||||
internal static string ComponentParameterCaptureUnmatchedValuesMustBeUnique_Title {
|
||||
get {
|
||||
return ResourceManager.GetString("ComponentParameterCaptureUnmatchedValuesMustBeUnique_Title", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Component parameters should not have public setters..
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
|
|
@ -26,36 +26,36 @@
|
|||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
|
|
@ -129,4 +129,22 @@
|
|||
<data name="ComponentParametersShouldNotBePublic_Title" xml:space="preserve">
|
||||
<value>Component parameter has public setter</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesMustBeUnique_Description" xml:space="preserve">
|
||||
<value>Components may only define a single parameter with CaptureUnmatchedValues.</value>
|
||||
</data>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesMustBeUnique_Format" xml:space="preserve">
|
||||
<value>Component type '{0}' defines properties multiple parameters with CaptureUnmatchedValues. Properties: {1}{2}</value>
|
||||
</data>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesMustBeUnique_Title" xml:space="preserve">
|
||||
<value>Component has multiple CaptureUnmatchedValues parameters</value>
|
||||
</data>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesHasWrongType_Description" xml:space="preserve">
|
||||
<value>Component parameters with CaptureUnmatchedValues must be a correct type.</value>
|
||||
</data>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesHasWrongType_Format" xml:space="preserve">
|
||||
<value>Component parameter '{0}' defines CaptureUnmatchedValues but has an unsupported type '{1}'. Use a type assignable from '{2}'.</value>
|
||||
</data>
|
||||
<data name="ComponentParameterCaptureUnmatchedValuesHasWrongType_Title" xml:space="preserve">
|
||||
<value>Component parameter with CaptureUnmatchedValues has the wrong type</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
using TestHelper;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
||||
{
|
||||
public class ComponentParameterCaptureUnmatchedValuesHasWrongTypeTest : DiagnosticVerifier
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>")]
|
||||
[InlineData("System.Collections.Generic.Dictionary<string, object>")]
|
||||
[InlineData("System.Collections.Generic.IDictionary<string, object>")]
|
||||
[InlineData("System.Collections.Generic.IReadOnlyDictionary<string, object>")]
|
||||
public void IgnoresPropertiesWithSupportedType(string propertyType)
|
||||
{
|
||||
var test = $@"
|
||||
namespace ConsoleApplication1
|
||||
{{
|
||||
using {typeof(ParameterAttribute).Namespace};
|
||||
class TypeName
|
||||
{{
|
||||
[Parameter(CaptureUnmatchedValues = true)] {propertyType} MyProperty {{ get; set; }}
|
||||
}}
|
||||
}}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IgnoresPropertiesWithCaptureUnmatchedValuesFalse()
|
||||
{
|
||||
var test = $@"
|
||||
namespace ConsoleApplication1
|
||||
{{
|
||||
using {typeof(ParameterAttribute).Namespace};
|
||||
class TypeName
|
||||
{{
|
||||
[Parameter(CaptureUnmatchedValues = false)] string MyProperty {{ get; set; }}
|
||||
}}
|
||||
}}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddsDiagnosticForInvalidType()
|
||||
{
|
||||
var test = $@"
|
||||
namespace ConsoleApplication1
|
||||
{{
|
||||
using {typeof(ParameterAttribute).Namespace};
|
||||
class TypeName
|
||||
{{
|
||||
[Parameter(CaptureUnmatchedValues = true)] string MyProperty {{ get; set; }}
|
||||
}}
|
||||
}}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test,
|
||||
new DiagnosticResult
|
||||
{
|
||||
Id = DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesHasWrongType.Id,
|
||||
Message = "Component parameter 'ConsoleApplication1.TypeName.MyProperty' defines CaptureUnmatchedValues but has an unsupported type 'string'. Use a type assignable from 'System.Collections.Generic.Dictionary<string, object>'.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[]
|
||||
{
|
||||
new DiagnosticResultLocation("Test0.cs", 7, 63)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected override DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer()
|
||||
{
|
||||
return new ComponentParameterAnalyzer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
using TestHelper;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
||||
{
|
||||
public class ComponentParameterCaptureUnmatchedValuesMustBeUniqueTest : DiagnosticVerifier
|
||||
{
|
||||
[Fact]
|
||||
public void IgnoresPropertiesWithCaptureUnmatchedValuesFalse()
|
||||
{
|
||||
var test = $@"
|
||||
namespace ConsoleApplication1
|
||||
{{
|
||||
using System.Collections.Generic;
|
||||
using {typeof(ParameterAttribute).Namespace};
|
||||
class TypeName
|
||||
{{
|
||||
[Parameter(CaptureUnmatchedValues = false)] string MyProperty {{ get; set; }}
|
||||
[Parameter(CaptureUnmatchedValues = true)] Dictionary<string, object> MyOtherProperty {{ get; set; }}
|
||||
}}
|
||||
}}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddsDiagnosticForMultipleCaptureUnmatchedValuesProperties()
|
||||
{
|
||||
var test = $@"
|
||||
namespace ConsoleApplication1
|
||||
{{
|
||||
using System.Collections.Generic;
|
||||
using {typeof(ParameterAttribute).Namespace};
|
||||
class TypeName
|
||||
{{
|
||||
[Parameter(CaptureUnmatchedValues = true)] Dictionary<string, object> MyProperty {{ get; set; }}
|
||||
[Parameter(CaptureUnmatchedValues = true)] Dictionary<string, object> MyOtherProperty {{ get; set; }}
|
||||
}}
|
||||
}}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
var message = @"Component type 'ConsoleApplication1.TypeName' defines properties multiple parameters with CaptureUnmatchedValues. Properties: " + Environment.NewLine +
|
||||
"ConsoleApplication1.TypeName.MyOtherProperty" + Environment.NewLine +
|
||||
"ConsoleApplication1.TypeName.MyProperty";
|
||||
|
||||
VerifyCSharpDiagnostic(test,
|
||||
new DiagnosticResult
|
||||
{
|
||||
Id = DiagnosticDescriptors.ComponentParameterCaptureUnmatchedValuesMustBeUnique.Id,
|
||||
Message = message,
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[]
|
||||
{
|
||||
new DiagnosticResultLocation("Test0.cs", 6, 15)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected override DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer()
|
||||
{
|
||||
return new ComponentParameterAnalyzer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CodeFixes;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
|
|
@ -12,15 +11,6 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
{
|
||||
public class ComponentParametersShouldNotBePublic : CodeFixVerifier
|
||||
{
|
||||
static string ParameterSource = $@"
|
||||
namespace {typeof(ParameterAttribute).Namespace}
|
||||
{{
|
||||
public class {typeof(ParameterAttribute).Name} : System.Attribute
|
||||
{{
|
||||
}}
|
||||
}}
|
||||
";
|
||||
|
||||
[Fact]
|
||||
public void IgnoresPublicPropertiesWithoutParameterAttribute()
|
||||
{
|
||||
|
|
@ -31,7 +21,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
{
|
||||
public string MyProperty { get; set; }
|
||||
}
|
||||
}" + ParameterSource;
|
||||
}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
|
@ -48,10 +38,10 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
{
|
||||
[Parameter] string MyPropertyNoModifer { get; set; }
|
||||
[Parameter] private string MyPropertyPrivate { get; set; }
|
||||
[Parameter] protected string MyPropertyProtected { get; set; }
|
||||
[Parameter] internal string MyPropertyInternal { get; set; }
|
||||
[CascadingParameter] protected string MyPropertyProtected { get; set; }
|
||||
[CascadingParameter] internal string MyPropertyInternal { get; set; }
|
||||
}
|
||||
}" + ParameterSource;
|
||||
}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
|
@ -67,29 +57,29 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
class TypeName
|
||||
{
|
||||
[Parameter] public string BadProperty1 { get; set; }
|
||||
[Parameter] public object BadProperty2 { get; set; }
|
||||
[CascadingParameter] public object BadProperty2 { get; set; }
|
||||
}
|
||||
}" + ParameterSource;
|
||||
}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test,
|
||||
new DiagnosticResult
|
||||
{
|
||||
Id = "BL9993",
|
||||
Message = "Component parameter 'BadProperty1' has a public setter, but component parameters should not be publicly settable.",
|
||||
Id = DiagnosticDescriptors.ComponentParametersShouldNotBePublic.Id,
|
||||
Message = "Component parameter 'ConsoleApplication1.TypeName.BadProperty1' has a public setter, but component parameters should not be publicly settable.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[]
|
||||
{
|
||||
new DiagnosticResultLocation("Test0.cs", 8, 13)
|
||||
new DiagnosticResultLocation("Test0.cs", 8, 39)
|
||||
}
|
||||
},
|
||||
new DiagnosticResult
|
||||
{
|
||||
Id = "BL9993",
|
||||
Message = "Component parameter 'BadProperty2' has a public setter, but component parameters should not be publicly settable.",
|
||||
Id = DiagnosticDescriptors.ComponentParametersShouldNotBePublic.Id,
|
||||
Message = "Component parameter 'ConsoleApplication1.TypeName.BadProperty2' has a public setter, but component parameters should not be publicly settable.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[]
|
||||
{
|
||||
new DiagnosticResultLocation("Test0.cs", 9, 13)
|
||||
new DiagnosticResultLocation("Test0.cs", 9, 48)
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -101,9 +91,9 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
class TypeName
|
||||
{
|
||||
[Parameter] string BadProperty1 { get; set; }
|
||||
[Parameter] object BadProperty2 { get; set; }
|
||||
[CascadingParameter] object BadProperty2 { get; set; }
|
||||
}
|
||||
}" + ParameterSource);
|
||||
}" + ComponentsTestDeclarations.Source);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -120,7 +110,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
[Parameter] public object MyProperty2 { get; protected set; }
|
||||
[Parameter] public object MyProperty2 { get; internal set; }
|
||||
}
|
||||
}" + ParameterSource;
|
||||
}" + ComponentsTestDeclarations.Source;
|
||||
|
||||
VerifyCSharpDiagnostic(test);
|
||||
}
|
||||
|
|
@ -132,7 +122,7 @@ namespace Microsoft.AspNetCore.Components.Analyzers.Test
|
|||
|
||||
protected override DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer()
|
||||
{
|
||||
return new ComponentParametersShouldNotBePublicAnalyzer();
|
||||
return new ComponentParameterAnalyzer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Analyzers
|
||||
{
|
||||
public static class ComponentsTestDeclarations
|
||||
{
|
||||
public static readonly string Source = $@"
|
||||
namespace {typeof(ParameterAttribute).Namespace}
|
||||
{{
|
||||
public class {typeof(ParameterAttribute).Name} : System.Attribute
|
||||
{{
|
||||
public bool CaptureUnmatchedValues {{ get; set; }}
|
||||
}}
|
||||
|
||||
public class {typeof(CascadingParameterAttribute).Name} : System.Attribute
|
||||
{{
|
||||
}}
|
||||
}}
|
||||
";
|
||||
}
|
||||
}
|
||||
|
|
@ -8,6 +8,8 @@ using Microsoft.AspNetCore.Blazor.Services;
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Routing;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.JSInterop;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Hosting
|
||||
|
|
@ -92,6 +94,7 @@ namespace Microsoft.AspNetCore.Blazor.Hosting
|
|||
services.AddSingleton<IComponentContext, WebAssemblyComponentContext>();
|
||||
services.AddSingleton<IUriHelper>(WebAssemblyUriHelper.Instance);
|
||||
services.AddSingleton<INavigationInterception>(WebAssemblyNavigationInterception.Instance);
|
||||
services.AddSingleton<ILoggerFactory, WebAssemblyLoggerFactory>();
|
||||
services.AddSingleton<HttpClient>(s =>
|
||||
{
|
||||
// Creating the URI helper needs to wait until the JS Runtime is initialized, so defer it.
|
||||
|
|
@ -102,6 +105,10 @@ namespace Microsoft.AspNetCore.Blazor.Hosting
|
|||
};
|
||||
});
|
||||
|
||||
// Needed for authorization
|
||||
services.AddOptions();
|
||||
services.TryAdd(ServiceDescriptor.Singleton(typeof(ILogger<>), typeof(WebAssemblyConsoleLogger<>)));
|
||||
|
||||
foreach (var configureServicesAction in _configureServicesActions)
|
||||
{
|
||||
configureServicesAction(_BrowserHostBuilderContext, services);
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Blazor.Services;
|
||||
using Microsoft.JSInterop;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Http
|
||||
{
|
||||
|
|
@ -59,7 +60,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
options.RequestInit = new RequestInit
|
||||
{
|
||||
Credentials = GetDefaultCredentialsString(),
|
||||
Headers = GetHeadersAsStringArray(request),
|
||||
Headers = GetHeaders(request),
|
||||
Method = request.Method.Method
|
||||
};
|
||||
|
||||
|
|
@ -68,7 +69,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
"Blazor._internal.http.sendAsync",
|
||||
id,
|
||||
request.Content == null ? null : await request.Content.ReadAsByteArrayAsync(),
|
||||
Json.Serialize(options));
|
||||
JsonSerializer.ToString(options, JsonSerializerOptionsProvider.Options));
|
||||
|
||||
return await tcs.Task;
|
||||
}
|
||||
|
|
@ -99,7 +100,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
}
|
||||
else
|
||||
{
|
||||
var responseDescriptor = Json.Deserialize<ResponseDescriptor>(responseDescriptorJson);
|
||||
var responseDescriptor = JsonSerializer.Parse<ResponseDescriptor>(responseDescriptorJson, JsonSerializerOptionsProvider.Options);
|
||||
var responseContent = responseBodyData == null ? null : new ByteArrayContent(responseBodyData);
|
||||
var responseMessage = responseDescriptor.ToResponseMessage(responseContent);
|
||||
tcs.SetResult(responseMessage);
|
||||
|
|
@ -114,10 +115,25 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
private static byte[] AllocateArray(string length) => new byte[int.Parse(length)];
|
||||
#pragma warning restore IDE0051 // Remove unused private members
|
||||
|
||||
private string[][] GetHeadersAsStringArray(HttpRequestMessage request)
|
||||
=> (from header in request.Headers.Concat(request.Content?.Headers ?? Enumerable.Empty<KeyValuePair<string, IEnumerable<string>>>())
|
||||
from headerValue in header.Value // There can be more than one value for each name
|
||||
select new[] { header.Key, headerValue }).ToArray();
|
||||
private static IReadOnlyList<Header> GetHeaders(HttpRequestMessage request)
|
||||
{
|
||||
var requestHeaders = request.Headers.AsEnumerable();
|
||||
if (request.Content?.Headers != null)
|
||||
{
|
||||
requestHeaders = requestHeaders.Concat(request.Content.Headers);
|
||||
}
|
||||
|
||||
var headers = new List<Header>();
|
||||
foreach (var item in requestHeaders)
|
||||
{
|
||||
foreach (var headerValue in item.Value)
|
||||
{
|
||||
headers.Add(new Header { Name = item.Key, Value = headerValue });
|
||||
}
|
||||
}
|
||||
|
||||
return headers;
|
||||
}
|
||||
|
||||
private static string GetDefaultCredentialsString()
|
||||
{
|
||||
|
|
@ -147,7 +163,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
private class RequestInit
|
||||
{
|
||||
public string Credentials { get; set; }
|
||||
public string[][] Headers { get; set; }
|
||||
public IReadOnlyList<Header> Headers { get; set; }
|
||||
public string Method { get; set; }
|
||||
}
|
||||
|
||||
|
|
@ -156,7 +172,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
#pragma warning disable 0649
|
||||
public int StatusCode { get; set; }
|
||||
public string StatusText { get; set; }
|
||||
public string[][] Headers { get; set; }
|
||||
public IReadOnlyList<Header> Headers { get; set; }
|
||||
#pragma warning restore 0649
|
||||
|
||||
public HttpResponseMessage ToResponseMessage(HttpContent content)
|
||||
|
|
@ -168,14 +184,21 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
var contentHeaders = result.Content?.Headers;
|
||||
foreach (var pair in Headers)
|
||||
{
|
||||
if (!headers.TryAddWithoutValidation(pair[0], pair[1]))
|
||||
if (!headers.TryAddWithoutValidation(pair.Name, pair.Value))
|
||||
{
|
||||
contentHeaders?.TryAddWithoutValidation(pair[0], pair[1]);
|
||||
contentHeaders?.TryAddWithoutValidation(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private class Header
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Value { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Services
|
||||
{
|
||||
internal class WebAssemblyConsoleLogger<T> : ILogger<T>, ILogger
|
||||
{
|
||||
public IDisposable BeginScope<TState>(TState state)
|
||||
{
|
||||
return NoOpDisposable.Instance;
|
||||
}
|
||||
|
||||
public bool IsEnabled(LogLevel logLevel)
|
||||
{
|
||||
return logLevel >= LogLevel.Warning;
|
||||
}
|
||||
|
||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
|
||||
{
|
||||
var formattedMessage = formatter(state, exception);
|
||||
Console.WriteLine($"[{logLevel}] {formattedMessage}");
|
||||
}
|
||||
|
||||
private class NoOpDisposable : IDisposable
|
||||
{
|
||||
public static NoOpDisposable Instance = new NoOpDisposable();
|
||||
|
||||
public void Dispose() { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Services
|
||||
{
|
||||
internal class WebAssemblyLoggerFactory : ILoggerFactory
|
||||
{
|
||||
public void AddProvider(ILoggerProvider provider)
|
||||
{
|
||||
// No-op
|
||||
}
|
||||
|
||||
public ILogger CreateLogger(string categoryName)
|
||||
=> new WebAssemblyConsoleLogger<object>();
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// No-op
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
<PreviewImage>Content\WebConfiguration.png</PreviewImage>
|
||||
</Metadata>
|
||||
<Installation AllUsers="true">
|
||||
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0,)" />
|
||||
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.2,)" />
|
||||
</Installation>
|
||||
<Assets>
|
||||
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.JSInterop;
|
||||
using Mono.Cecil;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Mono.Cecil;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Build
|
||||
{
|
||||
|
|
@ -40,7 +41,7 @@ namespace Microsoft.AspNetCore.Blazor.Build
|
|||
assemblyReferences,
|
||||
embeddedContent,
|
||||
linkerEnabled);
|
||||
return Json.Serialize(data);
|
||||
return JsonSerializer.ToString(data, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
private static string GetAssemblyEntryPoint(string assemblyPath)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
|
|
@ -47,4 +47,8 @@
|
|||
<Reference Include="Mono.Cecil" />
|
||||
<Reference Include="System.CodeDom" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\..\Components\src\JsonSerializerOptionsProvider.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<MyComponent bind-Value=""ParentValue"" />
|
||||
@functions {
|
||||
<MyComponent @bind-Value=""ParentValue"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -76,8 +76,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<MyComponent bind-Value=""ParentValue"" />
|
||||
@functions {
|
||||
<MyComponent @bind-Value=""ParentValue"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -113,8 +113,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<MyComponent bind-Value-OnChanged=""ParentValue"" />
|
||||
@functions {
|
||||
<MyComponent @bind-Value=""ParentValue"" @bind-Value:event=""OnChanged"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -150,8 +150,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<MyComponent bind-Value-OnChanged=""ParentValue"" />
|
||||
@functions {
|
||||
<MyComponent @bind-Value=""ParentValue"" @bind-Value:event=""OnChanged"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -183,8 +183,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<div bind=""@ParentValue"" />
|
||||
@functions {
|
||||
<div @bind=""@ParentValue"" />
|
||||
@code {
|
||||
public string ParentValue { get; set; } = ""hi"";
|
||||
}");
|
||||
|
||||
|
|
@ -216,8 +216,8 @@ namespace Test
|
|||
}"));
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<div bind-value=""@ParentValue"" />
|
||||
@functions {
|
||||
<div @bind-value=""@ParentValue"" />
|
||||
@code {
|
||||
public string ParentValue { get; set; } = ""hi"";
|
||||
}");
|
||||
|
||||
|
|
@ -251,8 +251,8 @@ namespace Test
|
|||
|
||||
// Act
|
||||
var result = CompileToCSharp(@"
|
||||
<div bind-value=""@ParentValue"" />
|
||||
@functions {
|
||||
<div @bind-value=""@ParentValue"" />
|
||||
@code {
|
||||
public string ParentValue { get; set; } = ""hi"";
|
||||
}");
|
||||
|
||||
|
|
@ -260,7 +260,7 @@ namespace Test
|
|||
var diagnostic = Assert.Single(result.Diagnostics);
|
||||
Assert.Equal("RZ9989", diagnostic.Id);
|
||||
Assert.Equal(
|
||||
"The attribute 'bind-value' was matched by multiple bind attributes. Duplicates:" + Environment.NewLine +
|
||||
"The attribute '@bind-value' was matched by multiple bind attributes. Duplicates:" + Environment.NewLine +
|
||||
"Test.BindAttributes" + Environment.NewLine +
|
||||
"Test.BindAttributes",
|
||||
diagnostic.GetMessage());
|
||||
|
|
@ -271,8 +271,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input bind=""@ParentValue"" />
|
||||
@functions {
|
||||
<input @bind=""@ParentValue"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -292,8 +292,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""text"" bind=""@CurrentDate"" format-value=""MM/dd/yyyy""/>
|
||||
@functions {
|
||||
<input type=""text"" @bind=""@CurrentDate"" @bind:format=""MM/dd/yyyy""/>
|
||||
@code {
|
||||
public DateTime CurrentDate { get; set; } = new DateTime(2018, 1, 1);
|
||||
}");
|
||||
|
||||
|
|
@ -314,8 +314,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""text"" bind=""@CurrentDate"" format-value=""@Format""/>
|
||||
@functions {
|
||||
<input type=""text"" @bind=""@CurrentDate"" @bind:format=""@Format""/>
|
||||
@code {
|
||||
public DateTime CurrentDate { get; set; } = new DateTime(2018, 1, 1);
|
||||
|
||||
public string Format { get; set; } = ""MM/dd/yyyy"";
|
||||
|
|
@ -338,8 +338,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""text"" bind=""@ParentValue"" />
|
||||
@functions {
|
||||
<input type=""text"" @bind=""@ParentValue"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -360,8 +360,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""checkbox"" bind=""@Enabled"" />
|
||||
@functions {
|
||||
<input type=""checkbox"" @bind=""@Enabled"" />
|
||||
@code {
|
||||
public bool Enabled { get; set; }
|
||||
}");
|
||||
|
||||
|
|
@ -381,8 +381,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""text"" bind-value-onchange=""@ParentValue"" />
|
||||
@functions {
|
||||
<input type=""text"" @bind-value=""@ParentValue"" @bind-value:event=""onchange"" />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -403,8 +403,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""text"" bind-value-onchange=""@CurrentDate"" format-value=""MM/dd"" />
|
||||
@functions {
|
||||
<input type=""text"" @bind-value=""@CurrentDate"" @bind-value:event=""onchange"" @bind-value:format=""MM/dd"" />
|
||||
@code {
|
||||
public DateTime CurrentDate { get; set; } = new DateTime(2018, 1, 1);
|
||||
}");
|
||||
|
||||
|
|
@ -425,8 +425,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input type=""@(""text"")"" bind-value-onchange=""@ParentValue"" visible />
|
||||
@functions {
|
||||
<input type=""@(""text"")"" @bind-value=""@ParentValue"" @bind-value:event=""onchange"" visible />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -448,8 +448,8 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<input bind-value-onchange=""@ParentValue"" type=""text"" visible />
|
||||
@functions {
|
||||
<input @bind-value=""@ParentValue"" @bind-value:event=""onchange"" type=""text"" visible />
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -474,10 +474,10 @@ namespace Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<div bind-value-onchange=""@ParentValue"">
|
||||
<div @bind-value=""@ParentValue"" @bind-value:event=""onchange"">
|
||||
<span>@(42.ToString())</span>
|
||||
</div>
|
||||
@functions {
|
||||
@code {
|
||||
public int ParentValue { get; set; } = 42;
|
||||
}");
|
||||
|
||||
|
|
@ -501,8 +501,8 @@ namespace Test
|
|||
{
|
||||
// Arrange & Act
|
||||
var generated = CompileToCSharp(@"
|
||||
<input type=""text"" bind-first-second-third=""Text"" />
|
||||
@functions {
|
||||
<input type=""text"" @bind-first-second-third=""Text"" />
|
||||
@code {
|
||||
public string Text { get; set; } = ""text"";
|
||||
}");
|
||||
|
||||
|
|
@ -516,8 +516,8 @@ namespace Test
|
|||
{
|
||||
// Arrange & Act
|
||||
var generated = CompileToCSharp(@"
|
||||
<input type=""text"" bind-first-=""Text"" />
|
||||
@functions {
|
||||
<input type=""text"" @bind-first-=""Text"" />
|
||||
@code {
|
||||
public string Text { get; set; } = ""text"";
|
||||
}");
|
||||
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ namespace Test
|
|||
var component = CompileToComponent($@"
|
||||
<MyComponent OnClick=""{expression}""/>
|
||||
|
||||
@functions {{
|
||||
@code {{
|
||||
private int counter;
|
||||
private void Increment(UIMouseEventArgs e) {{
|
||||
counter++;
|
||||
|
|
@ -261,7 +261,7 @@ namespace Test
|
|||
var component = CompileToComponent(@"
|
||||
<MyComponent OnClick=""@Increment""/>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
private int counter;
|
||||
private void Increment(UIEventArgs e) {
|
||||
counter++;
|
||||
|
|
@ -445,8 +445,8 @@ namespace Test
|
|||
|
||||
// Act
|
||||
var component = CompileToComponent(@"
|
||||
<p onmouseover=""@OnComponentHover"" style=""background: @ParentBgColor;"" />
|
||||
@functions {
|
||||
<p @onmouseover=""@OnComponentHover"" style=""background: @ParentBgColor;"" />
|
||||
@code {
|
||||
public string ParentBgColor { get; set; } = ""#FFFFFF"";
|
||||
|
||||
public void OnComponentHover(UIMouseEventArgs e)
|
||||
|
|
|
|||
|
|
@ -121,9 +121,9 @@ namespace Test
|
|||
AdditionalSyntaxTrees.Add(GenericContextComponent);
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<GenericContext TItem=int Items=""@(new List<int>() { 1, 2, })"" ref=""_my"" />
|
||||
<GenericContext TItem=int Items=""@(new List<int>() { 1, 2, })"" @ref=""_my"" />
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
GenericContext<int> _my;
|
||||
void Foo() { GC.KeepAlive(_my); }
|
||||
}");
|
||||
|
|
@ -188,9 +188,9 @@ namespace Test
|
|||
AdditionalSyntaxTrees.Add(GenericContextComponent);
|
||||
|
||||
var component = CompileToComponent(@"
|
||||
<GenericContext Items=""@(new List<int>() { 1, 2, })"" ref=""_my"" />
|
||||
<GenericContext Items=""@(new List<int>() { 1, 2, })"" @ref=""_my"" />
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
GenericContext<int> _my;
|
||||
void Foo() { GC.KeepAlive(_my); }
|
||||
}");
|
||||
|
|
@ -221,9 +221,9 @@ namespace Test
|
|||
|
||||
var assembly = CompileToAssembly("Test.cshtml", @"
|
||||
@typeparam TItem
|
||||
<GenericContext Items=""@MyItems"" ref=""_my"" />
|
||||
<GenericContext Items=""@MyItems"" @ref=""_my"" />
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
[Parameter] List<TItem> MyItems { get; set; }
|
||||
GenericContext<TItem> _my;
|
||||
void Foo() { GC.KeepAlive(_my); }
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
@foreach(var item in items) {
|
||||
@item
|
||||
}
|
||||
@functions {
|
||||
@code {
|
||||
string[] items = new[] { ""First"", ""Second"", ""Third"" };
|
||||
}
|
||||
");
|
||||
|
|
@ -296,7 +296,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
// Arrange/Act
|
||||
var component = CompileToComponent(
|
||||
@"<elem attr=@MyHandleEvent />
|
||||
@functions {
|
||||
@code {
|
||||
public bool HandlerWasCalled { get; set; } = false;
|
||||
|
||||
void MyHandleEvent(Microsoft.AspNetCore.Components.UIEventArgs eventArgs)
|
||||
|
|
@ -340,8 +340,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange/Act
|
||||
var component = CompileToComponent(
|
||||
@"<input bind=""MyValue"" />
|
||||
@functions {
|
||||
@"<input @bind=""MyValue"" />
|
||||
@code {
|
||||
public string MyValue { get; set; } = ""Initial value"";
|
||||
}");
|
||||
var myValueProperty = component.GetType().GetProperty("MyValue");
|
||||
|
|
@ -375,8 +375,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange/Act
|
||||
var component = CompileToComponent(
|
||||
@"<textarea bind=""MyValue"" ></textarea>
|
||||
@functions {
|
||||
@"<textarea @bind=""MyValue"" ></textarea>
|
||||
@code {
|
||||
public string MyValue { get; set; } = ""Initial value"";
|
||||
}");
|
||||
var myValueProperty = component.GetType().GetProperty("MyValue");
|
||||
|
|
@ -410,8 +410,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange/Act
|
||||
var component = CompileToComponent(
|
||||
@"<input bind=""MyDate"" />
|
||||
@functions {
|
||||
@"<input @bind=""MyDate"" />
|
||||
@code {
|
||||
public DateTime MyDate { get; set; } = new DateTime(2018, 3, 4, 1, 2, 3);
|
||||
}");
|
||||
var myDateProperty = component.GetType().GetProperty("MyDate");
|
||||
|
|
@ -448,8 +448,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
// Arrange/Act
|
||||
var testDateFormat = "ddd yyyy-MM-dd";
|
||||
var component = CompileToComponent(
|
||||
$@"<input bind=""@MyDate"" format-value=""{testDateFormat}"" />
|
||||
@functions {{
|
||||
$@"<input @bind=""@MyDate"" @bind:format=""{testDateFormat}"" />
|
||||
@code {{
|
||||
public DateTime MyDate {{ get; set; }} = new DateTime(2018, 3, 4);
|
||||
}}");
|
||||
var myDateProperty = component.GetType().GetProperty("MyDate");
|
||||
|
|
@ -483,7 +483,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<button onclick=""function(){console.log('hello');};"" />");
|
||||
<button @onclick=""function(){console.log('hello');};"" />");
|
||||
|
||||
// Act
|
||||
var frames = GetRenderTree(component);
|
||||
|
|
@ -499,8 +499,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<button onclick=""@(x => Clicked = true)"" />
|
||||
@functions {
|
||||
<button @onclick=""@(x => Clicked = true)"" />
|
||||
@code {
|
||||
public bool Clicked { get; set; }
|
||||
}");
|
||||
|
||||
|
|
@ -531,8 +531,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange
|
||||
var component = CompileToComponent(@"
|
||||
<button onclick=""@OnClick"" />
|
||||
@functions {
|
||||
<button @onclick=""@OnClick"" />
|
||||
@code {
|
||||
public void OnClick(UIMouseEventArgs e) { Clicked = true; }
|
||||
public bool Clicked { get; set; }
|
||||
}");
|
||||
|
|
@ -568,8 +568,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
{
|
||||
// Arrange/Act
|
||||
var component = CompileToComponent(
|
||||
@"<input bind=""MyValue"" />
|
||||
@functions {
|
||||
@"<input @bind=""MyValue"" />
|
||||
@code {
|
||||
public bool MyValue { get; set; } = true;
|
||||
}");
|
||||
var myValueProperty = component.GetType().GetProperty("MyValue");
|
||||
|
|
@ -604,8 +604,8 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
// Arrange/Act
|
||||
var myEnumType = FullTypeName<MyEnum>();
|
||||
var component = CompileToComponent(
|
||||
$@"<input bind=""MyValue"" />
|
||||
@functions {{
|
||||
$@"<input @bind=""MyValue"" />
|
||||
@code {{
|
||||
public {myEnumType} MyValue {{ get; set; }} = {myEnumType}.{nameof(MyEnum.FirstValue)};
|
||||
}}");
|
||||
var myValueProperty = component.GetType().GetProperty("MyValue");
|
||||
|
|
@ -695,7 +695,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
var component = CompileToComponent(@"
|
||||
@(Repeat(@<div>@(""Hello, World!"".ToLower())</div>, 3))
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
RenderFragment Repeat(RenderFragment template, int count)
|
||||
{
|
||||
return (b) =>
|
||||
|
|
@ -733,7 +733,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
var component = CompileToComponent(@"
|
||||
@(Repeat((context) => @<div>@context.ToLower()</div>, ""Hello, World!"", 3))
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
RenderFragment Repeat<T>(RenderFragment<T> template, T value, int count)
|
||||
{
|
||||
return (b) =>
|
||||
|
|
|
|||
|
|
@ -5,21 +5,14 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.AspNetCore.Testing.xunit;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||
{
|
||||
public class RuntimeDependenciesResolverTest
|
||||
{
|
||||
private readonly ITestOutputHelper _output;
|
||||
|
||||
public RuntimeDependenciesResolverTest(ITestOutputHelper output)
|
||||
{
|
||||
_output = output;
|
||||
}
|
||||
|
||||
[ConditionalFact]
|
||||
[SkipOnHelix("https://github.com/aspnet/AspNetCore/issues/10426")]
|
||||
public void FindsReferenceAssemblyGraph_ForStandaloneApp()
|
||||
|
|
@ -128,14 +121,49 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
|||
|
||||
var expected = new HashSet<string>(expectedContents);
|
||||
var actual = new HashSet<string>(contents);
|
||||
_output.WriteLine("Expected contents to have:");
|
||||
_output.WriteLine(string.Join(",", expected.Except(actual)));
|
||||
|
||||
_output.WriteLine("Unexpected contents:");
|
||||
_output.WriteLine(string.Join(",", actual.Except(expected)));
|
||||
var contentNotFound = expected.Except(actual);
|
||||
var additionalContentFound = actual.Except(expected);
|
||||
|
||||
// Assert
|
||||
if (contentNotFound.Any() || additionalContentFound.Any())
|
||||
{
|
||||
throw new ContentMisMatchException
|
||||
{
|
||||
ContentNotFound = contentNotFound,
|
||||
AdditionalContentFound = additionalContentFound,
|
||||
};
|
||||
}
|
||||
|
||||
Assert.Equal(expectedContents, contents);
|
||||
}
|
||||
|
||||
private class ContentMisMatchException : Xunit.Sdk.XunitException
|
||||
{
|
||||
public IEnumerable<string> ContentNotFound { get; set; }
|
||||
|
||||
public IEnumerable<string> AdditionalContentFound { get; set; }
|
||||
|
||||
public override string Message
|
||||
{
|
||||
get
|
||||
{
|
||||
var error = new StringBuilder();
|
||||
if (ContentNotFound.Any())
|
||||
{
|
||||
error.Append($"Expected content not found: ")
|
||||
.AppendJoin(", ", ContentNotFound);
|
||||
}
|
||||
|
||||
if (AdditionalContentFound.Any())
|
||||
{
|
||||
error.Append("Unexpected content found: ")
|
||||
.AppendJoin(", ", AdditionalContentFound);
|
||||
}
|
||||
|
||||
return error.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -247,7 +247,6 @@ namespace WsProxy {
|
|||
}
|
||||
|
||||
//step one, figure out where did we hit
|
||||
//lol no, fuck it, let's use fake data
|
||||
var res_value = res.Value? ["result"]? ["value"];
|
||||
if (res_value == null || res_value is JValue) {
|
||||
//Give up and send the original call stack
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace WsProxy {
|
|||
pending.Add (bytes);
|
||||
if (pending.Count == 1) {
|
||||
if (current_send != null)
|
||||
throw new Exception ("WTF, current_send MUST BE NULL IF THERE'S no pending send");
|
||||
throw new Exception ("UNEXPECTED, current_send MUST BE NULL IF THERE'S no pending send");
|
||||
//Console.WriteLine ("sending {0} bytes", bytes.Length);
|
||||
current_send = Ws.SendAsync (new ArraySegment<byte> (bytes), WebSocketMessageType.Text, true, token);
|
||||
return current_send;
|
||||
|
|
@ -86,7 +86,7 @@ namespace WsProxy {
|
|||
|
||||
if (pending.Count > 0) {
|
||||
if (current_send != null)
|
||||
throw new Exception ("WTF, current_send MUST BE NULL IF THERE'S no pending send");
|
||||
throw new Exception ("UNEXPECTED, current_send MUST BE NULL IF THERE'S no pending send");
|
||||
//Console.WriteLine ("sending more {0} bytes", pending[0].Length);
|
||||
current_send = Ws.SendAsync (new ArraySegment<byte> (pending [0]), WebSocketMessageType.Text, true, token);
|
||||
return current_send;
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
<p>Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
|
||||
<button class="btn btn-primary" @onclick="@IncrementCount">Click me</button>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
int currentCount = 0;
|
||||
|
||||
void IncrementCount()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ else
|
|||
</table>
|
||||
}
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
WeatherForecast[] forecasts;
|
||||
|
||||
protected override async Task OnInitAsync()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<a class="navbar-brand" href="">BlazorHosted-CSharp</a>
|
||||
<button class="navbar-toggler" onclick="@ToggleNavMenu">
|
||||
<button class="navbar-toggler" @onclick="@ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" onclick="@ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" @onclick="@ToggleNavMenu">
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
bool collapseNavMenu = true;
|
||||
|
||||
string NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2086020">brief survey</a>
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2093904">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
// Demonstrates how a parent component can supply parameters
|
||||
[Parameter] string Title { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
<p>Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
|
||||
<button class="btn btn-primary" @onclick="@IncrementCount">Click me</button>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
int currentCount = 0;
|
||||
|
||||
void IncrementCount()
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ else
|
|||
</table>
|
||||
}
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
WeatherForecast[] forecasts;
|
||||
|
||||
protected override async Task OnInitAsync()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<a class="navbar-brand" href="">BlazorStandalone-CSharp</a>
|
||||
<button class="navbar-toggler" onclick="@ToggleNavMenu">
|
||||
<button class="navbar-toggler" @onclick="@ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" onclick="@ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" @onclick="@ToggleNavMenu">
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
bool collapseNavMenu = true;
|
||||
|
||||
string NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2086020">brief survey</a>
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2093904">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
// Demonstrates how a parent component can supply parameters
|
||||
[Parameter] string Title { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
Hello, world!
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
protected override void OnAfterRender()
|
||||
{
|
||||
BenchmarkEvent.Send(JSRuntime, "Rendered index.cshtml");
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
@page "/json"
|
||||
@using System.Text.Json.Serialization
|
||||
@inject IJSRuntime JSRuntime
|
||||
|
||||
<h2>JSON performance</h2>
|
||||
|
||||
<p><button id="reset-all" onclick=@Reset>Reset</button></p>
|
||||
<p><button id="reset-all" @onclick=@Reset>Reset</button></p>
|
||||
|
||||
<button id="serialize-small" onclick=@SerializeSmall>Serialize (small)</button>
|
||||
<button id="serialize-large" onclick=@SerializeLarge>Serialize (large)</button>
|
||||
<button id="serialize-small" @onclick=@SerializeSmall>Serialize (small)</button>
|
||||
<button id="serialize-large" @onclick=@SerializeLarge>Serialize (large)</button>
|
||||
|
||||
<p><pre style="border: 1px solid black; overflow: scroll;">@serializedValue</pre></p>
|
||||
@if (serializedValue != null)
|
||||
|
|
@ -14,15 +15,15 @@
|
|||
<p>Serialized length: <strong id="serialized-length">@serializedValue.Length</strong> chars</p>
|
||||
}
|
||||
|
||||
<button id="deserialize-small" onclick=@DeserializeSmall>Deserialize (small)</button>
|
||||
<button id="deserialize-large" onclick=@DeserializeLarge>Deserialize (large)</button>
|
||||
<button id="deserialize-small" @onclick=@DeserializeSmall>Deserialize (small)</button>
|
||||
<button id="deserialize-large" @onclick=@DeserializeLarge>Deserialize (large)</button>
|
||||
|
||||
@if (numPeopleDeserialized > 0)
|
||||
{
|
||||
<p>Deserialized <strong id="deserialized-count">@numPeopleDeserialized</strong> people</p>
|
||||
}
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
static string[] Clearances = new[] { "Alpha", "Beta", "Gamma", "Delta", "Epsilon" };
|
||||
Person smallOrgChart = GenerateOrgChart(1, 4);
|
||||
Person largeOrgChart = GenerateOrgChart(5, 4);
|
||||
|
|
@ -32,8 +33,8 @@
|
|||
|
||||
protected override void OnInit()
|
||||
{
|
||||
smallOrgChartJson = Microsoft.JSInterop.Json.Serialize(smallOrgChart);
|
||||
largeOrgChartJson = Microsoft.JSInterop.Json.Serialize(largeOrgChart);
|
||||
smallOrgChartJson = JsonSerializer.ToString(smallOrgChart);
|
||||
largeOrgChartJson = JsonSerializer.ToString(largeOrgChart);
|
||||
}
|
||||
|
||||
protected override void OnAfterRender()
|
||||
|
|
@ -50,10 +51,10 @@
|
|||
}
|
||||
|
||||
void SerializeSmall()
|
||||
=> serializedValue = Microsoft.JSInterop.Json.Serialize(smallOrgChart);
|
||||
=> serializedValue = JsonSerializer.ToString(smallOrgChart);
|
||||
|
||||
void SerializeLarge()
|
||||
=> serializedValue = Microsoft.JSInterop.Json.Serialize(largeOrgChart);
|
||||
=> serializedValue = JsonSerializer.ToString(largeOrgChart);
|
||||
|
||||
void DeserializeSmall()
|
||||
=> numPeopleDeserialized = Deserialize(smallOrgChartJson);
|
||||
|
|
@ -80,7 +81,7 @@
|
|||
|
||||
static int Deserialize(string json)
|
||||
{
|
||||
var ceo = Microsoft.JSInterop.Json.Deserialize<Person>(json);
|
||||
var ceo = JsonSerializer.Parse<Person>(json);
|
||||
return CountPeople(ceo);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
<h2>Render List</h2>
|
||||
|
||||
Number of items: <input id="num-items" type="number" bind=@numItems />
|
||||
<button id="show-list" onclick=@Show>Show</button>
|
||||
<button id="hide-list" onclick=@Hide>Hide</button>
|
||||
Number of items: <input id="num-items" type="number" @bind=@numItems />
|
||||
<button id="show-list" @onclick=@Show>Show</button>
|
||||
<button id="hide-list" @onclick=@Hide>Hide</button>
|
||||
|
||||
@if (show)
|
||||
{
|
||||
|
|
@ -32,7 +32,7 @@ Number of items: <input id="num-items" type="number" bind=@numItems />
|
|||
</table>
|
||||
}
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
int numItems = 10;
|
||||
bool show = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
@page "/counter"
|
||||
@page "/counter"
|
||||
|
||||
<h1>Counter</h1>
|
||||
|
||||
<p>Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
|
||||
<button class="btn btn-primary" @onclick="@IncrementCount">Click me</button>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
int currentCount = 0;
|
||||
|
||||
void IncrementCount()
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ else
|
|||
</p>
|
||||
}
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
[Parameter] DateTime StartDate { get; set; }
|
||||
|
||||
WeatherForecast[] forecasts;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<a class="navbar-brand" href="">Blazor app</a>
|
||||
<button class="navbar-toggler" onclick=@ToggleNavMenu>
|
||||
<button class="navbar-toggler" @onclick=@ToggleNavMenu>
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class=@(collapseNavMenu ? "collapse" : null) onclick=@ToggleNavMenu>
|
||||
<div class=@(collapseNavMenu ? "collapse" : null) @onclick=@ToggleNavMenu>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match=NavLinkMatch.All>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
@code {
|
||||
bool collapseNavMenu = true;
|
||||
|
||||
void ToggleNavMenu()
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -7,23 +7,11 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<WebpackInputs Include="src\**\*.ts" />
|
||||
<WebPackOutputs Include="dist\Debug\blazor.webassembly.js" />
|
||||
<WebPackOutputs Include="dist\Release\blazor.webassembly.js" />
|
||||
<WebPackOutputs Include="dist\Debug\blazor.server.js" />
|
||||
<WebPackOutputs Include="dist\Release\blazor.server.js" />
|
||||
<ProjectReference Include="..\..\SignalR\clients\ts\signalr-protocol-msgpack\signalr-protocol-msgpack.npmproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||
|
||||
<!-- Override the default 'Build' target from eng/targets/Npm.Common.targets. -->
|
||||
<Target Name="Build"
|
||||
Inputs="@(WebpackInputs)"
|
||||
Outputs="@(WebPackOutputs)">
|
||||
<RemoveDir Directories="dist" />
|
||||
|
||||
<Yarn Command="run build:debug" />
|
||||
<Yarn Command="run build:production" />
|
||||
</Target>
|
||||
<Target Name="Restore" />
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
*.js -diff -merge
|
||||
*.js linguist-generated=true
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -316,17 +316,14 @@ var DotNet;
|
|||
promise.catch(function (error) { return console.error(error); });
|
||||
};
|
||||
DotNetObject.prototype.serializeAsArg = function () {
|
||||
return "__dotNetObject:" + this._id;
|
||||
return { __dotNetObject: this._id };
|
||||
};
|
||||
return DotNetObject;
|
||||
}());
|
||||
var dotNetObjectValueFormat = /^__dotNetObject\:(\d+)$/;
|
||||
var dotNetObjectRefKey = '__dotNetObject';
|
||||
attachReviver(function reviveDotNetObject(key, value) {
|
||||
if (typeof value === 'string') {
|
||||
var match = value.match(dotNetObjectValueFormat);
|
||||
if (match) {
|
||||
return new DotNetObject(parseInt(match[1]));
|
||||
}
|
||||
if (value && typeof value === 'object' && value.hasOwnProperty(dotNetObjectRefKey)) {
|
||||
return new DotNetObject(value.__dotNetObject);
|
||||
}
|
||||
// Unrecognized - let another reviver handle it
|
||||
return value;
|
||||
|
|
@ -880,6 +877,7 @@ function createEmscriptenModuleInstance(loadAssemblyUrls, onReady, onError) {
|
|||
});
|
||||
});
|
||||
module.postRun.push(function () {
|
||||
MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE", "true");
|
||||
var load_runtime = Module.cwrap('mono_wasm_load_runtime', null, ['string', 'number']);
|
||||
load_runtime(appBinDirName, MonoDebugger_1.hasDebuggingEnabled() ? 1 : 0);
|
||||
MONO.mono_wasm_runtime_is_ready = true;
|
||||
|
|
@ -1405,7 +1403,7 @@ function getCaptureIdAttributeName(referenceCaptureId) {
|
|||
return "_bl_" + referenceCaptureId;
|
||||
}
|
||||
// Support receiving ElementRef instances as args in interop calls
|
||||
var elementRefKey = '_blazorElementRef'; // Keep in sync with ElementRef.cs
|
||||
var elementRefKey = '__internalId'; // Keep in sync with ElementRef.cs
|
||||
DotNet.attachReviver(function (key, value) {
|
||||
if (value && typeof value === 'object' && value.hasOwnProperty(elementRefKey) && typeof value[elementRefKey] === 'string') {
|
||||
return getElementByCaptureId(value[elementRefKey]);
|
||||
|
|
@ -2338,7 +2336,7 @@ function sendAsync(id, body, jsonFetchArgs) {
|
|||
switch (_a.label) {
|
||||
case 0:
|
||||
fetchOptions = JSON.parse(Environment_1.platform.toJavaScriptString(jsonFetchArgs));
|
||||
requestInit = Object.assign(fetchOptions.requestInit, fetchOptions.requestInitOverrides);
|
||||
requestInit = Object.assign(convertToRequestInit(fetchOptions.requestInit), fetchOptions.requestInitOverrides);
|
||||
if (body) {
|
||||
requestInit.body = Environment_1.platform.toUint8Array(body);
|
||||
}
|
||||
|
|
@ -2363,6 +2361,13 @@ function sendAsync(id, body, jsonFetchArgs) {
|
|||
});
|
||||
});
|
||||
}
|
||||
function convertToRequestInit(blazorRequestInit) {
|
||||
return {
|
||||
credentials: blazorRequestInit.credentials,
|
||||
method: blazorRequestInit.method,
|
||||
headers: blazorRequestInit.headers.map(function (item) { return [item.name, item.value]; })
|
||||
};
|
||||
}
|
||||
function dispatchSuccessResponse(id, response, responseData) {
|
||||
var responseDescriptor = {
|
||||
statusCode: response.status,
|
||||
|
|
@ -2370,7 +2375,7 @@ function dispatchSuccessResponse(id, response, responseData) {
|
|||
headers: [],
|
||||
};
|
||||
response.headers.forEach(function (value, name) {
|
||||
responseDescriptor.headers.push([name, value]);
|
||||
responseDescriptor.headers.push({ name: name, value: value });
|
||||
});
|
||||
if (!allocateArrayMethod) {
|
||||
allocateArrayMethod = Environment_1.platform.findMethod(httpClientAssembly, httpClientNamespace, httpClientTypeName, 'AllocateArray');
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -5,15 +5,17 @@
|
|||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"preclean": "cd utils && yarn install --mutex network",
|
||||
"clean": "node utils/node_modules/rimraf/bin.js node_modules",
|
||||
"prebuild": "yarn run clean && yarn install --mutex network",
|
||||
"build": "yarn run build:debug && yarn run build:production",
|
||||
"build:debug": "cd src && webpack --mode development --config ./webpack.config.js",
|
||||
"build:production": "cd src && webpack --mode production --config ./webpack.config.js",
|
||||
"test": "jest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@aspnet/signalr": "^1.0.0",
|
||||
"@aspnet/signalr-protocol-msgpack": "^1.0.0",
|
||||
"@dotnet/jsinterop": "^0.1.1",
|
||||
"@aspnet/signalr-protocol-msgpack": "file:../../SignalR/clients/ts/signalr-protocol-msgpack",
|
||||
"@dotnet/jsinterop": "3.0.0-preview6.19280.1",
|
||||
"@types/emscripten": "0.0.31",
|
||||
"@types/jest": "^24.0.6",
|
||||
"@types/jsdom": "11.0.6",
|
||||
|
|
|
|||
|
|
@ -262,6 +262,7 @@ function createEmscriptenModuleInstance(loadAssemblyUrls: string[], onReady: ()
|
|||
});
|
||||
|
||||
module.postRun.push(() => {
|
||||
MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE","true");
|
||||
const load_runtime = Module.cwrap('mono_wasm_load_runtime', null, ['string', 'number']);
|
||||
load_runtime(appBinDirName, hasDebuggingEnabled() ? 1 : 0);
|
||||
MONO.mono_wasm_runtime_is_ready = true;
|
||||
|
|
|
|||
|
|
@ -24,4 +24,5 @@ declare namespace Mono {
|
|||
declare namespace MONO {
|
||||
var loaded_files: string[];
|
||||
var mono_wasm_runtime_is_ready: boolean;
|
||||
function mono_wasm_setenv (name: string, value: string): void;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ function getCaptureIdAttributeName(referenceCaptureId: string) {
|
|||
}
|
||||
|
||||
// Support receiving ElementRef instances as args in interop calls
|
||||
const elementRefKey = '_blazorElementRef'; // Keep in sync with ElementRef.cs
|
||||
const elementRefKey = '__internalId'; // Keep in sync with ElementRef.cs
|
||||
DotNet.attachReviver((key, value) => {
|
||||
if (value && typeof value === 'object' && value.hasOwnProperty(elementRefKey) && typeof value[elementRefKey] === 'string') {
|
||||
return getElementByCaptureId(value[elementRefKey]);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ async function sendAsync(id: number, body: System_Array<any>, jsonFetchArgs: Sys
|
|||
let responseData: ArrayBuffer;
|
||||
|
||||
const fetchOptions: FetchOptions = JSON.parse(platform.toJavaScriptString(jsonFetchArgs));
|
||||
const requestInit: RequestInit = Object.assign(fetchOptions.requestInit, fetchOptions.requestInitOverrides);
|
||||
const requestInit: RequestInit = Object.assign(convertToRequestInit(fetchOptions.requestInit), fetchOptions.requestInitOverrides);
|
||||
|
||||
if (body) {
|
||||
requestInit.body = platform.toUint8Array(body);
|
||||
|
|
@ -33,6 +33,14 @@ async function sendAsync(id: number, body: System_Array<any>, jsonFetchArgs: Sys
|
|||
dispatchSuccessResponse(id, response, responseData);
|
||||
}
|
||||
|
||||
function convertToRequestInit(blazorRequestInit: BlazorRequestInit) {
|
||||
return {
|
||||
credentials: blazorRequestInit.credentials,
|
||||
method: blazorRequestInit.method,
|
||||
headers: blazorRequestInit.headers.map(item => [item.name, item.value])
|
||||
};
|
||||
}
|
||||
|
||||
function dispatchSuccessResponse(id: number, response: Response, responseData: ArrayBuffer) {
|
||||
const responseDescriptor: ResponseDescriptor = {
|
||||
statusCode: response.status,
|
||||
|
|
@ -40,7 +48,7 @@ function dispatchSuccessResponse(id: number, response: Response, responseData: A
|
|||
headers: [],
|
||||
};
|
||||
response.headers.forEach((value, name) => {
|
||||
responseDescriptor.headers.push([name, value]);
|
||||
responseDescriptor.headers.push({ name: name, value: value });
|
||||
});
|
||||
|
||||
if (!allocateArrayMethod) {
|
||||
|
|
@ -99,15 +107,26 @@ function dispatchResponse(id: number, responseDescriptor: System_String | null,
|
|||
// Keep these in sync with the .NET equivalent in WebAssemblyHttpMessageHandler.cs
|
||||
interface FetchOptions {
|
||||
requestUri: string;
|
||||
requestInit: RequestInit;
|
||||
requestInit: BlazorRequestInit;
|
||||
requestInitOverrides: RequestInit;
|
||||
}
|
||||
|
||||
interface BlazorRequestInit {
|
||||
credentials: string;
|
||||
headers: Header[];
|
||||
method: string;
|
||||
}
|
||||
|
||||
interface ResponseDescriptor {
|
||||
// We don't have BodyText in here because if we did, then in the JSON-response case (which
|
||||
// is the most common case), we'd be double-encoding it, since the entire ResponseDescriptor
|
||||
// also gets JSON encoded. It would work but is twice the amount of string processing.
|
||||
statusCode: number;
|
||||
statusText: string;
|
||||
headers: string[][];
|
||||
headers: Header[];
|
||||
}
|
||||
|
||||
interface Header {
|
||||
name: string;
|
||||
value: string;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"name": "common",
|
||||
"private": true,
|
||||
"version": "0.0.1",
|
||||
"description": "Common dependencies used during dev time. DO NOT PUBLISH",
|
||||
"devDependencies": {
|
||||
"rimraf": "^2.6.2"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||
|
||||
glob@^7.1.3:
|
||||
version "7.1.4"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
|
||||
integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||
|
||||
minimatch@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
once@^1.3.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||
|
||||
rimraf@^2.6.2:
|
||||
version "2.6.3"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
||||
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
|
|
@ -2,17 +2,13 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@aspnet/signalr-protocol-msgpack@^1.0.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@aspnet/signalr-protocol-msgpack/-/signalr-protocol-msgpack-1.1.0.tgz#155038149e8e0eee1f97f4d1319f9f3271ff06fb"
|
||||
integrity sha512-AQv5AavWvoFz2iLSIDK1DAIXMNhQ1Jt1qRDouXxLKAKP13u8iFq7i3/MwJ30ShOBGBoL5/zn6pBlNjAzTmAsMA==
|
||||
"@aspnet/signalr-protocol-msgpack@file:../../SignalR/clients/ts/signalr-protocol-msgpack":
|
||||
version "3.0.0-dev"
|
||||
dependencies:
|
||||
msgpack5 "^4.0.2"
|
||||
|
||||
"@aspnet/signalr@^1.0.0":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@aspnet/signalr/-/signalr-1.1.2.tgz#eb9cbc758ff5bfe9a2aba6669e05dfc25a6d783d"
|
||||
integrity sha512-Xu2ndFTWYhyE+TOCK3LkPWGmc5xGLezBKgGEchyOA++alJ6fdWJ8P/Wsb4Mmd1buzcxGLlIyjpLfUP20rrCHIg==
|
||||
"@aspnet/signalr@file:../../SignalR/clients/ts/signalr":
|
||||
version "3.0.0-dev"
|
||||
dependencies:
|
||||
eventsource "^1.0.7"
|
||||
request "^2.88.0"
|
||||
|
|
@ -147,10 +143,10 @@
|
|||
lodash "^4.17.11"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@dotnet/jsinterop@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@dotnet/jsinterop/-/jsinterop-0.1.1.tgz#f54ba865f241596ea3744f28634454a160476399"
|
||||
integrity sha512-/Y5f3rtzZ85y8ukBds6IHRgnu7zwlAxe/JhaqN8mvj/JPDA4AtfdNqjJBZuZJxLrP0k6+q4owx/DS7LyZWccFQ==
|
||||
"@dotnet/jsinterop@3.0.0-preview6.19280.1":
|
||||
version "3.0.0-preview6.19280.1"
|
||||
resolved "https://dotnet.myget.org/F/aspnetcore-dev/npm/@dotnet/jsinterop/-/@dotnet/jsinterop-3.0.0-preview6.19280.1.tgz#4c991132f33157de93bc3b6db93cffc9e964b241"
|
||||
integrity sha1-TJkRMvMxV96TvDttuTz/yelkskE=
|
||||
|
||||
"@types/emscripten@0.0.31":
|
||||
version "0.0.31"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
|
|
@ -13,4 +13,8 @@
|
|||
<Reference Include="Microsoft.Extensions.DependencyInjection" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\Components\src\JsonSerializerOptionsProvider.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Components.Rendering;
|
||||
using Microsoft.JSInterop;
|
||||
|
|
@ -30,34 +32,61 @@ namespace Microsoft.AspNetCore.Components.Browser
|
|||
switch (eventArgsType)
|
||||
{
|
||||
case "change":
|
||||
return Json.Deserialize<UIChangeEventArgs>(eventArgsJson);
|
||||
return DeserializeUIEventChangeArgs(eventArgsJson);
|
||||
case "clipboard":
|
||||
return Json.Deserialize<UIClipboardEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIClipboardEventArgs>(eventArgsJson);
|
||||
case "drag":
|
||||
return Json.Deserialize<UIDragEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIDragEventArgs>(eventArgsJson);
|
||||
case "error":
|
||||
return Json.Deserialize<UIErrorEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIErrorEventArgs>(eventArgsJson);
|
||||
case "focus":
|
||||
return Json.Deserialize<UIFocusEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIFocusEventArgs>(eventArgsJson);
|
||||
case "keyboard":
|
||||
return Json.Deserialize<UIKeyboardEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIKeyboardEventArgs>(eventArgsJson);
|
||||
case "mouse":
|
||||
return Json.Deserialize<UIMouseEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIMouseEventArgs>(eventArgsJson);
|
||||
case "pointer":
|
||||
return Json.Deserialize<UIPointerEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIPointerEventArgs>(eventArgsJson);
|
||||
case "progress":
|
||||
return Json.Deserialize<UIProgressEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIProgressEventArgs>(eventArgsJson);
|
||||
case "touch":
|
||||
return Json.Deserialize<UITouchEventArgs>(eventArgsJson);
|
||||
return Deserialize<UITouchEventArgs>(eventArgsJson);
|
||||
case "unknown":
|
||||
return Json.Deserialize<UIEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIEventArgs>(eventArgsJson);
|
||||
case "wheel":
|
||||
return Json.Deserialize<UIWheelEventArgs>(eventArgsJson);
|
||||
return Deserialize<UIWheelEventArgs>(eventArgsJson);
|
||||
default:
|
||||
throw new ArgumentException($"Unsupported value '{eventArgsType}'.", nameof(eventArgsType));
|
||||
}
|
||||
}
|
||||
|
||||
private static T Deserialize<T>(string eventArgsJson)
|
||||
{
|
||||
return JsonSerializer.Parse<T>(eventArgsJson, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
private static UIChangeEventArgs DeserializeUIEventChangeArgs(string eventArgsJson)
|
||||
{
|
||||
var changeArgs = Deserialize<UIChangeEventArgs>(eventArgsJson);
|
||||
var jsonElement = (JsonElement)changeArgs.Value;
|
||||
switch (jsonElement.Type)
|
||||
{
|
||||
case JsonValueType.Null:
|
||||
changeArgs.Value = null;
|
||||
break;
|
||||
case JsonValueType.String:
|
||||
changeArgs.Value = jsonElement.GetString();
|
||||
break;
|
||||
case JsonValueType.True:
|
||||
case JsonValueType.False:
|
||||
changeArgs.Value = jsonElement.GetBoolean();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException($"Unsupported {nameof(UIChangeEventArgs)} value {jsonElement}.");
|
||||
}
|
||||
return changeArgs;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For framework use only.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -179,8 +179,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel", "..\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj", "{E01CD19E-B0BE-4480-8B8E-3701DE862E62}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions", "..\Servers\Kestrel\Transport.Abstractions\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj", "{06E9B7E9-3ABA-4766-BAF8-8904942470A9}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "..\Servers\Kestrel\Transport.Sockets\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj", "{AA87CAA1-2456-4108-A02F-E16B9B8A98EE}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Http.Connections.Common", "..\SignalR\common\Http.Connections.Common\src\Microsoft.AspNetCore.Http.Connections.Common.csproj", "{DC2F67CC-79DD-4F7C-AFD1-AC0D12B331C9}"
|
||||
|
|
@ -1184,18 +1182,6 @@ Global
|
|||
{E01CD19E-B0BE-4480-8B8E-3701DE862E62}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E01CD19E-B0BE-4480-8B8E-3701DE862E62}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E01CD19E-B0BE-4480-8B8E-3701DE862E62}.Release|x86.Build.0 = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|x64.Build.0 = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AA87CAA1-2456-4108-A02F-E16B9B8A98EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AA87CAA1-2456-4108-A02F-E16B9B8A98EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AA87CAA1-2456-4108-A02F-E16B9B8A98EE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
|
|
@ -1439,7 +1425,6 @@ Global
|
|||
{D8C72607-7E3E-4124-A065-A57F23E9F2BA} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{4272499A-C424-41DF-B6B8-DF3C19416BE2} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{E01CD19E-B0BE-4480-8B8E-3701DE862E62} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{06E9B7E9-3ABA-4766-BAF8-8904942470A9} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{AA87CAA1-2456-4108-A02F-E16B9B8A98EE} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{DC2F67CC-79DD-4F7C-AFD1-AC0D12B331C9} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
{56DA124E-A37A-44DE-9DED-2764DDF0816C} = {2FC10057-7A0A-4E34-8302-879925BC0102}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue