From 934ee44642194e00a920c19c558803a3b39e1df9 Mon Sep 17 00:00:00 2001 From: "1585955375@qq.com" <1585955375@qq.com> Date: Sat, 23 Jan 2021 20:11:31 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Add=E3=80=91=E6=B7=BB=E5=8A=A0IdentitS?= =?UTF-8?q?erver4=E7=9A=84=E4=B8=80=E4=BA=9B=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IdentityServer4/GrantType.cs | 21 + .../IdentityServer4/GrantTypes.cs | 43 + .../IdentityServer4/JwtClaimTypes.cs | 773 ++++++++++++++++++ 3 files changed, 837 insertions(+) create mode 100644 src/Destiny.Core.Flow/IdentityServer4/GrantType.cs create mode 100644 src/Destiny.Core.Flow/IdentityServer4/GrantTypes.cs create mode 100644 src/Destiny.Core.Flow/IdentityServer4/JwtClaimTypes.cs diff --git a/src/Destiny.Core.Flow/IdentityServer4/GrantType.cs b/src/Destiny.Core.Flow/IdentityServer4/GrantType.cs new file mode 100644 index 00000000..fef60257 --- /dev/null +++ b/src/Destiny.Core.Flow/IdentityServer4/GrantType.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Destiny.Core.Flow +{ + public static class GrantType + { + public const string Implicit = "implicit"; + + public const string Hybrid = "hybrid"; + + public const string AuthorizationCode = "authorization_code"; + + public const string ClientCredentials = "client_credentials"; + + public const string ResourceOwnerPassword = "password"; + + public const string DeviceFlow = "urn:ietf:params:oauth:grant-type:device_code"; + } +} diff --git a/src/Destiny.Core.Flow/IdentityServer4/GrantTypes.cs b/src/Destiny.Core.Flow/IdentityServer4/GrantTypes.cs new file mode 100644 index 00000000..56fc87e3 --- /dev/null +++ b/src/Destiny.Core.Flow/IdentityServer4/GrantTypes.cs @@ -0,0 +1,43 @@ +// Copyright (c) Brock Allen & Dominick Baier. All rights reserved. +// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information. + + +using System.Collections.Generic; + +#pragma warning disable 1591 + +namespace Destiny.Core.Flow +{ + public class GrantTypes + { + public static ICollection Implicit => + new[] { GrantType.Implicit }; + + public static ICollection ImplicitAndClientCredentials => + new[] { GrantType.Implicit, GrantType.ClientCredentials }; + + public static ICollection Code => + new[] { GrantType.AuthorizationCode }; + + public static ICollection CodeAndClientCredentials => + new[] { GrantType.AuthorizationCode, GrantType.ClientCredentials }; + + public static ICollection Hybrid => + new[] { GrantType.Hybrid }; + + public static ICollection HybridAndClientCredentials => + new[] { GrantType.Hybrid, GrantType.ClientCredentials }; + + public static ICollection ClientCredentials => + new[] { GrantType.ClientCredentials }; + + public static ICollection ResourceOwnerPassword => + new[] { GrantType.ResourceOwnerPassword }; + + public static ICollection ResourceOwnerPasswordAndClientCredentials => + new[] { GrantType.ResourceOwnerPassword, GrantType.ClientCredentials }; + + public static ICollection DeviceFlow => + new[] { GrantType.DeviceFlow }; + } +} \ No newline at end of file diff --git a/src/Destiny.Core.Flow/IdentityServer4/JwtClaimTypes.cs b/src/Destiny.Core.Flow/IdentityServer4/JwtClaimTypes.cs new file mode 100644 index 00000000..dc950831 --- /dev/null +++ b/src/Destiny.Core.Flow/IdentityServer4/JwtClaimTypes.cs @@ -0,0 +1,773 @@ +#region 程序集 IdentityModel, Version=4.4.0.0, Culture=neutral, PublicKeyToken=e7877f4675df049f +// C:\Users\wzwei\.nuget\packages\identitymodel\4.4.0\lib\netstandard2.0\IdentityModel.dll +// Decompiled with ICSharpCode.Decompiler 6.1.0.5902 +#endregion + +namespace Destiny.Core.Flow +{ + // + // 摘要: + // Commonly used claim types + public static class JwtClaimTypes + { + public class JwtTypes + { + // + // 摘要: + // OAuth 2.0 access token + public const string AccessToken = "at+jwt"; + + // + // 摘要: + // JWT secured authorization request + public const string AuthorizationRequest = "oauth-authz-req+jwt"; + } + + // + // 摘要: + // Unique Identifier for the End-User at the Issuer. + public const string Subject = "sub"; + + // + // 摘要: + // End-User's full name in displayable form including all name parts, possibly including + // titles and suffixes, ordered according to the End-User's locale and preferences. + public const string Name = "name"; + + // + // 摘要: + // Given name(s) or first name(s) of the End-User. Note that in some cultures, people + // can have multiple given names; all can be present, with the names being separated + // by space characters. + public const string GivenName = "given_name"; + + // + // 摘要: + // Surname(s) or last name(s) of the End-User. Note that in some cultures, people + // can have multiple family names or no family name; all can be present, with the + // names being separated by space characters. + public const string FamilyName = "family_name"; + + // + // 摘要: + // Middle name(s) of the End-User. Note that in some cultures, people can have multiple + // middle names; all can be present, with the names being separated by space characters. + // Also note that in some cultures, middle names are not used. + public const string MiddleName = "middle_name"; + + // + // 摘要: + // Casual name of the End-User that may or may not be the same as the given_name. + // For instance, a nickname value of Mike might be returned alongside a given_name + // value of Michael. + public const string NickName = "nickname"; + + // + // 摘要: + // Shorthand name by which the End-User wishes to be referred to at the RP, such + // as janedoe or j.doe. This value MAY be any valid JSON string including special + // characters such as @, /, or whitespace. The relying party MUST NOT rely upon + // this value being unique + // + // 言论: + // The RP MUST NOT rely upon this value being unique, as discussed in http://openid.net/specs/openid-connect-basic-1_0-32.html#ClaimStability + public const string PreferredUserName = "preferred_username"; + + // + // 摘要: + // URL of the End-User's profile page. The contents of this Web page SHOULD be about + // the End-User. + public const string Profile = "profile"; + + // + // 摘要: + // URL of the End-User's profile picture. This URL MUST refer to an image file (for + // example, a PNG, JPEG, or GIF image file), rather than to a Web page containing + // an image. + // + // 言论: + // Note that this URL SHOULD specifically reference a profile photo of the End-User + // suitable for displaying when describing the End-User, rather than an arbitrary + // photo taken by the End-User. + public const string Picture = "picture"; + + // + // 摘要: + // URL of the End-User's Web page or blog. This Web page SHOULD contain information + // published by the End-User or an organization that the End-User is affiliated + // with. + public const string WebSite = "website"; + + // + // 摘要: + // End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] + // addr-spec syntax. The relying party MUST NOT rely upon this value being unique + public const string Email = "email"; + + // + // 摘要: + // "true" if the End-User's e-mail address has been verified; otherwise "false". + // + // 言论: + // When this Claim Value is "true", this means that the OP took affirmative steps + // to ensure that this e-mail address was controlled by the End-User at the time + // the verification was performed. The means by which an e-mail address is verified + // is context-specific, and dependent upon the trust framework or contractual agreements + // within which the parties are operating. + public const string EmailVerified = "email_verified"; + + // + // 摘要: + // End-User's gender. Values defined by this specification are "female" and "male". + // Other values MAY be used when neither of the defined values are applicable. + public const string Gender = "gender"; + + // + // 摘要: + // End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD + // format. The year MAY be 0000, indicating that it is omitted. To represent only + // the year, YYYY format is allowed. Note that depending on the underlying platform's + // date related function, providing just year can result in varying month and day, + // so the implementers need to take this factor into account to correctly process + // the dates. + public const string BirthDate = "birthdate"; + + // + // 摘要: + // String from the time zone database (http://www.twinsun.com/tz/tz-link.htm) representing + // the End-User's time zone. For example, Europe/Paris or America/Los_Angeles. + public const string ZoneInfo = "zoneinfo"; + + // + // 摘要: + // End-User's locale, represented as a BCP47 [RFC5646] language tag. This is typically + // an ISO 639-1 Alpha-2 [ISO639‑1] language code in lowercase and an ISO 3166-1 + // Alpha-2 [ISO3166‑1] country code in uppercase, separated by a dash. For example, + // en-US or fr-CA. As a compatibility note, some implementations have used an underscore + // as the separator rather than a dash, for example, en_US; Relying Parties MAY + // choose to accept this locale syntax as well. + public const string Locale = "locale"; + + // + // 摘要: + // End-User's preferred telephone number. E.164 (https://www.itu.int/rec/T-REC-E.164/e) + // is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or + // +56 (2) 687 2400. If the phone number contains an extension, it is RECOMMENDED + // that the extension be represented using the RFC 3966 [RFC3966] extension syntax, + // for example, +1 (604) 555-1234;ext=5678. + public const string PhoneNumber = "phone_number"; + + // + // 摘要: + // True if the End-User's phone number has been verified; otherwise false. When + // this Claim Value is true, this means that the OP took affirmative steps to ensure + // that this phone number was controlled by the End-User at the time the verification + // was performed. + // + // 言论: + // The means by which a phone number is verified is context-specific, and dependent + // upon the trust framework or contractual agreements within which the parties are + // operating. When true, the phone_number Claim MUST be in E.164 format and any + // extensions MUST be represented in RFC 3966 format. + public const string PhoneNumberVerified = "phone_number_verified"; + + // + // 摘要: + // End-User's preferred postal address. The value of the address member is a JSON + // structure containing some or all of the members defined in http://openid.net/specs/openid-connect-basic-1_0-32.html#AddressClaim + public const string Address = "address"; + + // + // 摘要: + // Audience(s) that this ID Token is intended for. It MUST contain the OAuth 2.0 + // client_id of the Relying Party as an audience value. It MAY also contain identifiers + // for other audiences. In the general case, the aud value is an array of case sensitive + // strings. In the common special case when there is one audience, the aud value + // MAY be a single case sensitive string. + public const string Audience = "aud"; + + // + // 摘要: + // Issuer Identifier for the Issuer of the response. The iss value is a case sensitive + // URL using the https scheme that contains scheme, host, and optionally, port number + // and path components and no query or fragment components. + public const string Issuer = "iss"; + + // + // 摘要: + // The time before which the JWT MUST NOT be accepted for processing, specified + // as the number of seconds from 1970-01-01T0:0:0Z + public const string NotBefore = "nbf"; + + // + // 摘要: + // The exp (expiration time) claim identifies the expiration time on or after which + // the token MUST NOT be accepted for processing, specified as the number of seconds + // from 1970-01-01T0:0:0Z + public const string Expiration = "exp"; + + // + // 摘要: + // Time the End-User's information was last updated. Its value is a JSON number + // representing the number of seconds from 1970-01-01T0:0:0Z as measured in UTC + // until the date/time. + public const string UpdatedAt = "updated_at"; + + // + // 摘要: + // The iat (issued at) claim identifies the time at which the JWT was issued, , + // specified as the number of seconds from 1970-01-01T0:0:0Z + public const string IssuedAt = "iat"; + + // + // 摘要: + // Authentication Methods References. JSON array of strings that are identifiers + // for authentication methods used in the authentication. + public const string AuthenticationMethod = "amr"; + + // + // 摘要: + // Session identifier. This represents a Session of an OP at an RP to a User Agent + // or device for a logged-in End-User. Its contents are unique to the OP and opaque + // to the RP. + public const string SessionId = "sid"; + + // + // 摘要: + // Authentication Context Class Reference. String specifying an Authentication Context + // Class Reference value that identifies the Authentication Context Class that the + // authentication performed satisfied. The value "0" indicates the End-User authentication + // did not meet the requirements of ISO/IEC 29115 level 1. Authentication using + // a long-lived browser cookie, for instance, is one example where the use of "level + // 0" is appropriate. Authentications with level 0 SHOULD NOT be used to authorize + // access to any resource of any monetary value. (This corresponds to the OpenID + // 2.0 PAPE nist_auth_level 0.) An absolute URI or an RFC 6711 registered name SHOULD + // be used as the acr value; registered names MUST NOT be used with a different + // meaning than that which is registered. Parties using this claim will need to + // agree upon the meanings of the values used, which may be context-specific. The + // acr value is a case sensitive string. + public const string AuthenticationContextClassReference = "acr"; + + // + // 摘要: + // Time when the End-User authentication occurred. Its value is a JSON number representing + // the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the date/time. + // When a max_age request is made or when auth_time is requested as an Essential + // Claim, then this Claim is REQUIRED; otherwise, its inclusion is OPTIONAL. + public const string AuthenticationTime = "auth_time"; + + // + // 摘要: + // The party to which the ID Token was issued. If present, it MUST contain the OAuth + // 2.0 Client ID of this party. This Claim is only needed when the ID Token has + // a single audience value and that audience is different than the authorized party. + // It MAY be included even when the authorized party is the same as the sole audience. + // The azp value is a case sensitive string containing a StringOrURI value. + public const string AuthorizedParty = "azp"; + + // + // 摘要: + // Access Token hash value. Its value is the base64url encoding of the left-most + // half of the hash of the octets of the ASCII representation of the access_token + // value, where the hash algorithm used is the hash algorithm used in the alg Header + // Parameter of the ID Token's JOSE Header. For instance, if the alg is RS256, hash + // the access_token value with SHA-256, then take the left-most 128 bits and base64url + // encode them. The at_hash value is a case sensitive string. + public const string AccessTokenHash = "at_hash"; + + // + // 摘要: + // Code hash value. Its value is the base64url encoding of the left-most half of + // the hash of the octets of the ASCII representation of the code value, where the + // hash algorithm used is the hash algorithm used in the alg Header Parameter of + // the ID Token's JOSE Header. For instance, if the alg is HS512, hash the code + // value with SHA-512, then take the left-most 256 bits and base64url encode them. + // The c_hash value is a case sensitive string. + public const string AuthorizationCodeHash = "c_hash"; + + // + // 摘要: + // State hash value. Its value is the base64url encoding of the left-most half of + // the hash of the octets of the ASCII representation of the state value, where + // the hash algorithm used is the hash algorithm used in the alg Header Parameter + // of the ID Token's JOSE Header. For instance, if the alg is HS512, hash the code + // value with SHA-512, then take the left-most 256 bits and base64url encode them. + // The c_hash value is a case sensitive string. + public const string StateHash = "s_hash"; + + // + // 摘要: + // String value used to associate a Client session with an ID Token, and to mitigate + // replay attacks. The value is passed through unmodified from the Authentication + // Request to the ID Token. If present in the ID Token, Clients MUST verify that + // the nonce Claim Value is equal to the value of the nonce parameter sent in the + // Authentication Request. If present in the Authentication Request, Authorization + // Servers MUST include a nonce Claim in the ID Token with the Claim Value being + // the nonce value sent in the Authentication Request. Authorization Servers SHOULD + // perform no other processing on nonce values used. The nonce value is a case sensitive + // string. + public const string Nonce = "nonce"; + + // + // 摘要: + // JWT ID. A unique identifier for the token, which can be used to prevent reuse + // of the token. These tokens MUST only be used once, unless conditions for reuse + // were negotiated between the parties; any such negotiation is beyond the scope + // of this specification. + public const string JwtId = "jti"; + + // + // 摘要: + // Defines a set of event statements that each may add additional claims to fully + // describe a single logical event that has occurred. + public const string Events = "events"; + + // + // 摘要: + // OAuth 2.0 Client Identifier valid at the Authorization Server. + public const string ClientId = "client_id"; + + // + // 摘要: + // OpenID Connect requests MUST contain the "openid" scope value. If the openid + // scope value is not present, the behavior is entirely unspecified. Other scope + // values MAY be present. Scope values used that are not understood by an implementation + // SHOULD be ignored. + public const string Scope = "scope"; + + // + // 摘要: + // The "act" (actor) claim provides a means within a JWT to express that delegation + // has occurred and identify the acting party to whom authority has been delegated.The + // "act" claim value is a JSON object and members in the JSON object are claims + // that identify the actor. The claims that make up the "act" claim identify and + // possibly provide additional information about the actor. + public const string Actor = "act"; + + // + // 摘要: + // The "may_act" claim makes a statement that one party is authorized to become + // the actor and act on behalf of another party. The claim value is a JSON object + // and members in the JSON object are claims that identify the party that is asserted + // as being eligible to act for the party identified by the JWT containing the claim. + public const string MayAct = "may_act"; + + // + // 摘要: + // an identifier + public const string Id = "id"; + + // + // 摘要: + // The identity provider + public const string IdentityProvider = "idp"; + + // + // 摘要: + // The role + public const string Role = "role"; + + // + // 摘要: + // The reference token identifier + public const string ReferenceTokenId = "reference_token_id"; + + // + // 摘要: + // The confirmation + public const string Confirmation = "cnf"; + } +} +#if false // 反编译日志 +缓存中的 317 项 +------------------ +解析: "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +警告: 版本不匹配。应为: "2.0.0.0",实际为: "2.1.0.0" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\netstandard.dll" +------------------ +解析: "Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" +找到单个程序集: "Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" +警告: 版本不匹配。应为: "11.0.0.0",实际为: "12.0.0.0" +从以下位置加载: "C:\Users\wzwei\.nuget\packages\newtonsoft.json\12.0.2\lib\netstandard2.0\Newtonsoft.Json.dll" +------------------ +解析: "System.Text.Encodings.Web, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Text.Encodings.Web, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encodings.Web.dll" +------------------ +解析: "System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.dll" +------------------ +解析: "System.IO.MemoryMappedFiles, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.MemoryMappedFiles, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.MemoryMappedFiles.dll" +------------------ +解析: "System.IO.Pipes, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.Pipes, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Pipes.dll" +------------------ +解析: "System.Diagnostics.Process, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.Process, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Process.dll" +------------------ +解析: "System.Security.Cryptography.X509Certificates, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Cryptography.X509Certificates, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.X509Certificates.dll" +------------------ +解析: "System.Runtime.Extensions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Extensions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Extensions.dll" +------------------ +解析: "System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Memory, Version=4.2.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Memory.dll" +------------------ +解析: "System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Buffers.dll" +------------------ +解析: "System.Diagnostics.Tools, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.Tools, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Tools.dll" +------------------ +解析: "System.Collections, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Collections, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.dll" +------------------ +解析: "System.Collections.NonGeneric, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Collections.NonGeneric, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.NonGeneric.dll" +------------------ +解析: "System.Collections.Concurrent, Version=4.0.15.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Collections.Concurrent, Version=4.0.15.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.Concurrent.dll" +------------------ +解析: "System.ObjectModel, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.ObjectModel, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ObjectModel.dll" +------------------ +解析: "System.Collections.Specialized, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Collections.Specialized, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Collections.Specialized.dll" +------------------ +解析: "System.ComponentModel.TypeConverter, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.ComponentModel.TypeConverter, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.TypeConverter.dll" +------------------ +解析: "System.ComponentModel.EventBasedAsync, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.ComponentModel.EventBasedAsync, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.EventBasedAsync.dll" +------------------ +解析: "System.ComponentModel.Primitives, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.ComponentModel.Primitives, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.Primitives.dll" +------------------ +解析: "System.ComponentModel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.ComponentModel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.ComponentModel.dll" +------------------ +解析: "Microsoft.Win32.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "Microsoft.Win32.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.Primitives.dll" +------------------ +解析: "System.Console, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Console, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Console.dll" +------------------ +解析: "System.Data.Common, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Data.Common, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Data.Common.dll" +------------------ +解析: "System.Runtime.InteropServices, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.InteropServices, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.InteropServices.dll" +------------------ +解析: "System.Diagnostics.TraceSource, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.TraceSource, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.TraceSource.dll" +------------------ +解析: "System.Diagnostics.Contracts, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.Contracts, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Contracts.dll" +------------------ +解析: "System.Diagnostics.Debug, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.Debug, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Debug.dll" +------------------ +解析: "System.Diagnostics.TextWriterTraceListener, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.TextWriterTraceListener, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.TextWriterTraceListener.dll" +------------------ +解析: "System.Diagnostics.FileVersionInfo, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.FileVersionInfo, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.FileVersionInfo.dll" +------------------ +解析: "System.Diagnostics.StackTrace, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.StackTrace, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.StackTrace.dll" +------------------ +解析: "System.Diagnostics.Tracing, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Diagnostics.Tracing, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Diagnostics.Tracing.dll" +------------------ +解析: "System.Drawing.Primitives, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Drawing.Primitives, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Drawing.Primitives.dll" +------------------ +解析: "System.Linq.Expressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Linq.Expressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Expressions.dll" +------------------ +解析: "System.IO.Compression.Brotli, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +找到单个程序集: "System.IO.Compression.Brotli, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.Brotli.dll" +------------------ +解析: "System.IO.Compression, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +找到单个程序集: "System.IO.Compression, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.dll" +------------------ +解析: "System.IO.Compression.ZipFile, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +找到单个程序集: "System.IO.Compression.ZipFile, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.Compression.ZipFile.dll" +------------------ +解析: "System.IO.FileSystem, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.FileSystem, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.dll" +------------------ +解析: "System.IO.FileSystem.DriveInfo, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.FileSystem.DriveInfo, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.DriveInfo.dll" +------------------ +解析: "System.IO.FileSystem.Watcher, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.FileSystem.Watcher, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.FileSystem.Watcher.dll" +------------------ +解析: "System.IO.IsolatedStorage, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.IO.IsolatedStorage, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.IO.IsolatedStorage.dll" +------------------ +解析: "System.Linq, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Linq, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.dll" +------------------ +解析: "System.Linq.Queryable, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Linq.Queryable, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Queryable.dll" +------------------ +解析: "System.Linq.Parallel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Linq.Parallel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Linq.Parallel.dll" +------------------ +解析: "System.Threading.Thread, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.Thread, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Thread.dll" +------------------ +解析: "System.Net.Requests, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Requests, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Requests.dll" +------------------ +解析: "System.Net.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Primitives.dll" +------------------ +解析: "System.Net.HttpListener, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Net.HttpListener, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.HttpListener.dll" +------------------ +解析: "System.Net.ServicePoint, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Net.ServicePoint, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.ServicePoint.dll" +------------------ +解析: "System.Net.NameResolution, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.NameResolution, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.NameResolution.dll" +------------------ +解析: "System.Net.WebClient, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Net.WebClient, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebClient.dll" +------------------ +解析: "System.Net.Http, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Http, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Http.dll" +------------------ +解析: "System.Net.WebHeaderCollection, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.WebHeaderCollection, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebHeaderCollection.dll" +------------------ +解析: "System.Net.WebProxy, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Net.WebProxy, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebProxy.dll" +------------------ +解析: "System.Net.Mail, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Net.Mail, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Mail.dll" +------------------ +解析: "System.Net.NetworkInformation, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.NetworkInformation, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.NetworkInformation.dll" +------------------ +解析: "System.Net.Ping, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Ping, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Ping.dll" +------------------ +解析: "System.Net.Security, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Security, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Security.dll" +------------------ +解析: "System.Net.Sockets, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.Sockets, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Sockets.dll" +------------------ +解析: "System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.WebSockets.Client, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebSockets.Client.dll" +------------------ +解析: "System.Net.WebSockets, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Net.WebSockets, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.WebSockets.dll" +------------------ +解析: "System.Runtime.Numerics, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Numerics, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Numerics.dll" +------------------ +解析: "System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Numerics.Vectors.dll" +------------------ +解析: "System.Threading.Tasks, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.Tasks, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.dll" +------------------ +解析: "System.Reflection.DispatchProxy, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Reflection.DispatchProxy, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.DispatchProxy.dll" +------------------ +解析: "System.Reflection.Emit, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Reflection.Emit, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.dll" +------------------ +解析: "System.Reflection.Emit.ILGeneration, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Reflection.Emit.ILGeneration, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.ILGeneration.dll" +------------------ +解析: "System.Reflection.Emit.Lightweight, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Reflection.Emit.Lightweight, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Emit.Lightweight.dll" +------------------ +解析: "System.Reflection.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Reflection.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Reflection.Primitives.dll" +------------------ +解析: "System.Resources.ResourceManager, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Resources.ResourceManager, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.ResourceManager.dll" +------------------ +解析: "System.Resources.Writer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Resources.Writer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Resources.Writer.dll" +------------------ +解析: "System.Runtime.CompilerServices.VisualC, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.CompilerServices.VisualC, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.CompilerServices.VisualC.dll" +------------------ +解析: "System.Runtime.InteropServices.RuntimeInformation, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.InteropServices.RuntimeInformation, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.InteropServices.RuntimeInformation.dll" +------------------ +解析: "System.Runtime.Serialization.Primitives, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Serialization.Primitives, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Primitives.dll" +------------------ +解析: "System.Runtime.Serialization.Xml, Version=4.1.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Serialization.Xml, Version=4.1.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Xml.dll" +------------------ +解析: "System.Runtime.Serialization.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Serialization.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Json.dll" +------------------ +解析: "System.Runtime.Serialization.Formatters, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Runtime.Serialization.Formatters, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.Serialization.Formatters.dll" +------------------ +解析: "System.Security.Claims, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Claims, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Claims.dll" +------------------ +解析: "System.Security.Cryptography.Algorithms, Version=4.3.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Cryptography.Algorithms, Version=4.3.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Algorithms.dll" +------------------ +解析: "System.Security.Cryptography.Csp, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Cryptography.Csp, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Csp.dll" +------------------ +解析: "System.Security.Cryptography.Encoding, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Cryptography.Encoding, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Encoding.dll" +------------------ +解析: "System.Security.Cryptography.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Cryptography.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Cryptography.Primitives.dll" +------------------ +解析: "System.Security.Principal, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Security.Principal, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Security.Principal.dll" +------------------ +解析: "System.Text.Encoding.Extensions, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Text.Encoding.Extensions, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.Encoding.Extensions.dll" +------------------ +解析: "System.Text.RegularExpressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Text.RegularExpressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Text.RegularExpressions.dll" +------------------ +解析: "System.Threading, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.dll" +------------------ +解析: "System.Threading.Overlapped, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.Overlapped, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Overlapped.dll" +------------------ +解析: "System.Threading.ThreadPool, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.ThreadPool, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.ThreadPool.dll" +------------------ +解析: "System.Threading.Tasks.Parallel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.Tasks.Parallel, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Tasks.Parallel.dll" +------------------ +解析: "System.Threading.Timer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Threading.Timer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Threading.Timer.dll" +------------------ +解析: "System.Transactions.Local, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Transactions.Local, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Transactions.Local.dll" +------------------ +解析: "System.Web.HttpUtility, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +找到单个程序集: "System.Web.HttpUtility, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Web.HttpUtility.dll" +------------------ +解析: "System.Xml.ReaderWriter, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Xml.ReaderWriter, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.ReaderWriter.dll" +------------------ +解析: "System.Xml.XDocument, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Xml.XDocument, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XDocument.dll" +------------------ +解析: "System.Xml.XmlSerializer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Xml.XmlSerializer, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XmlSerializer.dll" +------------------ +解析: "System.Xml.XPath.XDocument, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Xml.XPath.XDocument, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XPath.XDocument.dll" +------------------ +解析: "System.Xml.XPath, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +找到单个程序集: "System.Xml.XPath, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" +从以下位置加载: "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Xml.XPath.dll" +#endif