diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 1b785a2e6d6a..780b28e9e4dd 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,10 +15,16 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.20559.2", + "version": "1.0.0-prerelease.20574.2", "commands": [ "xharness" ] + }, + "microsoft.visualstudio.slngen.tool": { + "version": "4.4.0", + "commands": [ + "slngen" + ] } } } diff --git a/Build.proj b/Build.proj index 2d96f02056fe..6352e423156b 100644 --- a/Build.proj +++ b/Build.proj @@ -12,16 +12,6 @@ - - - - - - - @@ -36,12 +26,4 @@ - - - - - \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 799d054f3b1a..91557e143579 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -57,7 +57,7 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppCurrent)', 'publish')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', 'Debug', '$(NetCoreAppCurrent)', 'publish')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(NetCoreAppCurrent)')) - + $([MSBuild]::NormalizePath('$(AppleAppBuilderDir)', 'AppleAppBuilder.dll')) $([MSBuild]::NormalizePath('$(AndroidAppBuilderDir)', 'AndroidAppBuilder.dll')) $([MSBuild]::NormalizePath('$(WasmAppBuilderDir)', 'WasmAppBuilder.dll')) @@ -105,8 +105,6 @@ - - true false diff --git a/Directory.Build.targets b/Directory.Build.targets index 9d18986a3f87..68aa63fa324d 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -29,19 +29,19 @@ --> + TargetingPackVersion="$(MicrosoftNETCoreAppVersion)" /> diff --git a/docs/coding-guidelines/adding-api-guidelines.md b/docs/coding-guidelines/adding-api-guidelines.md index b9eba2201201..f6014fd1f7d5 100644 --- a/docs/coding-guidelines/adding-api-guidelines.md +++ b/docs/coding-guidelines/adding-api-guidelines.md @@ -15,7 +15,7 @@ Recommended reading to better understand this document: ### Determine what library -- Propose a library for exposing it as part of the [API review process](http://aka.ms/apireview). +- Propose a library for exposing it as part of the [API review process](https://aka.ms/apireview). - Keep in mind the API might be exposed in a reference assembly that doesn't match the identity of the implementation. There are many reasons for this but the primary reason is to abstract the runtime assembly identities across diff --git a/docs/coding-guidelines/api-guidelines/nullability.md b/docs/coding-guidelines/api-guidelines/nullability.md index 9cb1b96525c2..807a0c3f91f6 100644 --- a/docs/coding-guidelines/api-guidelines/nullability.md +++ b/docs/coding-guidelines/api-guidelines/nullability.md @@ -1,20 +1,20 @@ # Nullability annotations -C# 8 provides an opt-in feature that allows for the compiler to track reference type nullability in order to catch potential null dereferences. We are adopting that feature across .NET's libraries, working up from the bottom of the stack. We're doing this for three primary reasons, in order of importance: +As of C# 8 and improved in C# 9, the C# language provides an opt-in feature that allows the compiler to track reference type nullability in order to catch potential null dereferences. We have adopted that feature set across .NET's libraries, working up from the bottom of the stack. We've done this (and continue to do so for all new library development) for three primary reasons, in order of importance: -- **To annotate the .NET surface area with appropriate nullability annotations.** While this could be done solely in the reference assemblies, we're doing it first in the implementation to help validate the selected annotations. -- **To help validate the nullability feature itself.** With millions of lines of C# code, we have a very large and robust codebase with which to try out the feature and find areas in which it shines and areas in which we can improve it. The work to annotate System.Private.CoreLib in .NET Core 3.0 helped to improve the feature as shipped in C# 8, and annotating the rest of the libraries will continue to be helpful in this regard. -- **To find null-related bugs in .NET Runtime itself.** We expect to find relatively few meaningful bugs, due to how relatively well-tested the codebases are and how long they've been around. +- **To annotate the .NET surface area with appropriate nullability annotations.** While this could be done solely in the reference assemblies, we do it in the implementation to help validate the selected annotations. +- **To help validate the nullability feature itself.** With millions of lines of C# code, we have a very large and robust codebase with which to try out features and find areas in which it shines and areas in which we can improve it. The work to annotate System.Private.CoreLib in .NET Core 3.0 helped to improve the feature as shipped in C# 8, and the rest of the core libraries being annotated in .NET 5 helped to further flesh out the design for C# 9. +- **To find null-related bugs in .NET Runtime itself.** We have found few meaningful bugs, due to how relatively well-tested the codebases are and how long they've been around. However, for new code, the annotations do help to highlight places where null values may be erroneously dereferenced, helping to avoid NullReferenceExceptions in places testing may not yet be adequate. ## Breaking Change Guidance -We are striving to get annotations correct the "first time" and are doing due-diligence in an attempt to do so. However, we acknowledge that we are likely to need to augment and change some annotations in the future: +We strive to get annotations correct the "first time" and do due-diligence in an attempt to do so. However, we acknowledge that we are likely to need to augment and change some annotations in the future: - **Mistakes.** Given the sheer number of APIs being reviewed and annotated, we are likely to make some errors, and we'd like to be able to fix them so that long-term customers get the greatest benefit. -- **Breadth.** Annotation takes time, so annotations will roll out over time rather than being released all at once. +- **Breadth.** Annotation takes time, so annotations have rolled out and will continue to roll out over time rather than all at once for the whole stack. - **Feedback.** We may need to revisit some "gray area" decisions as to whether a parameter or return type should be nullable or non-nullable (more details later). -Any such additions or changes to annotations can impact the warnings consuming code receives if that code has opted in to nullability analysis and warnings. Even so, for at least the foreseeable future we may still do so. We will be very thoughtful about when and how we do. +Any such additions or changes to annotations can impact the warnings consuming code receives if that code has opted-in to nullability analysis and warnings. Even so, for at least the foreseeable future we may still do so, and we will be very thoughtful about when and how we do. ## Annotation Guidance @@ -23,7 +23,7 @@ Nullability annotations are considered to represent intent: they represent the n - **DO** annotate all new APIs with the desired contract. - **CONSIDER** changing that contract if overwhelming use suggests a different de facto contract. This is particularly relevant to virtual/abstract/interface methods defined in a library where all implementations may not be under your control, and derived implementations may not have adhered to the original intent. - **DO** respect documented behaviors. Nullability annotations are about codifying a contract, and documentation is a description of that contract. If, for example, a base abstract or virtual method says that it may throw an exception if `null` is passed in, that dictates that the argument should be non-nullable. -- **DO** continue to validate all arguments as you would have prior to nullability warnings. In particular, if you would have checked an argument for `null` and thrown an `ArgumentNullException` if it was `null`, continue to do so, even if the parameter is defined as non-nullable. Many consumers will not have nullability checked enabled, either because they're using a language other than C#, they're using an older version of C#, they simply haven't opted-in to nullability analysis, or the compiler isn't able to detect the misuse. +- **DO** continue to validate all arguments as you would have prior to nullability warnings. In particular, if you would have checked an argument for `null` and thrown an `ArgumentNullException` if it was `null`, continue to do so, even if the parameter is defined as non-nullable. Many consumers will not have nullability checked enabled, either because they're using a language other than C#, they're using an older version of C#, they simply haven't opted-in to nullability analysis, they've explicitly suppressed warnings, or the compiler isn't able to detect the misuse. - **DO NOT** remove existing argument validation when annotating existing public/protected APIs. If through the course of annotating it becomes clear that internal/private surface area is unnecessarily checking for nulls when nulls aren't possible (i.e. you found dead code), such use can be removed or replaced by asserts. - **AVOID** making any changes while annotating that substantively impact the generated IL for an implementation (e.g. `some.Method()` to `some?.Method()`). Any such changes should be thoroughly analyzed and reviewed as a bug fix. In some cases, such changes may be warranted, but they're a red flag that should be scrutinized heavily. diff --git a/docs/design/coreclr/jit/lsra-detail.md b/docs/design/coreclr/jit/lsra-detail.md index a637b8ac6982..47292dadcfdb 100644 --- a/docs/design/coreclr/jit/lsra-detail.md +++ b/docs/design/coreclr/jit/lsra-detail.md @@ -387,7 +387,7 @@ well as supporting components) in more depth. - `LinearScan::identifyCandidates` - This mostly duplicates what is done in - `Compiler::lvaMarkLocalVars(). There are differences in what + `Compiler::lvaMarkLocalVars()`. There are differences in what constitutes a register candidate vs. what is tracked, but we should probably handle them in `Compiler::lvaMarkLocalVars()` when it is called after `Lowering`. @@ -445,7 +445,7 @@ node, which builds `RefPositions` according to the liveness model described abov - First, we create `RefPosition`s to define any internal registers that are required. As we create new `Interval`s for these, we add the definition `RefPosition` to an array, - `InternalDefs`. This allows us to create the corresponding uses of these internal + `internalDefs`. This allows us to create the corresponding uses of these internal registers later. - Then we create `RefPosition`s for each use in the instruction. @@ -474,7 +474,7 @@ node, which builds `RefPositions` according to the liveness model described abov we need to ensure that the other source isn't given the same register as the target. For this, we annotate the use `RefPosition` with `delayRegFree`. -- Next we create the uses of the internal registers, using the `InternalDefs` array. +- Next we create the uses of the internal registers, using the `internalDefs` array. This is cleared before the next instruction is handled. - Next, any registers in the kill set for the instruction are killed. This is performed @@ -652,7 +652,7 @@ LinearScanAllocation(List refPositions) - When `COMPlus_EnableEHWriteThru == 0`, any variable that's live in to an exception region is always referenced on the stack. - - See [Enable EHWriteThru by default](#enable-EHWriteThru-by-default). + - See [Enable EHWriteThru by default](#enable-ehwritethru-by-default). - Code generation (genGenerateCode) diff --git a/docs/design/features/globalization-invariant-mode.md b/docs/design/features/globalization-invariant-mode.md index f3c4132fcc0d..62544139522d 100644 --- a/docs/design/features/globalization-invariant-mode.md +++ b/docs/design/features/globalization-invariant-mode.md @@ -103,9 +103,9 @@ Applications can enable the invariant mode by either of the following: 1. in project file: ```xml - - - + + true + ``` 2. in `runtimeconfig.json` file: diff --git a/docs/design/features/host-startup-hook.md b/docs/design/features/host-startup-hook.md index e2b4623fab03..ec0e35eb5d16 100644 --- a/docs/design/features/host-startup-hook.md +++ b/docs/design/features/host-startup-hook.md @@ -253,3 +253,10 @@ be defined either in the app or within the first hook that uses it: The type should be made `internal` to prevent exposing it as API surface to any managed code that happens to have access to the startup hook dll. However, the feature will also work if the type is `public`. + +### Incompatible with trimming + +Startup hooks are disabled by default on trimmed apps. The usage of +startup hooks on a trimmed app is potentially dangerous since these +could make use of assemblies, types or members that were removed by +trimming, causing the app to crash. diff --git a/docs/infra/buildtriage.md b/docs/infra/buildtriage.md index e91343f45b08..ca3903699aae 100644 --- a/docs/infra/buildtriage.md +++ b/docs/infra/buildtriage.md @@ -44,6 +44,7 @@ The main meta-bug linking to currently tracked issues is [here](https://github.c - [runfo Documentation](https://github.com/jaredpar/devops-util/tree/master/runfo) - [Internal Build Definition](https://dev.azure.com/dnceng/internal/_build?definitionId=679) - [Public Build Definition](https://dev.azure.com/dnceng/public/_build?definitionId=686) +- [Runtime dependency status](https://maestro-prod.westus2.cloudapp.azure.com/1296/https:%2F%2Fgithub.com%2Fdotnet%2Fruntime/latest/graph) ## Build Rotation for upcoming months diff --git a/docs/project/api-review-process.md b/docs/project/api-review-process.md index e958896f9c1f..4773d0651e95 100644 --- a/docs/project/api-review-process.md +++ b/docs/project/api-review-process.md @@ -42,7 +42,7 @@ APIs and some code samples that show how it should be used. If changes are neces There are three methods to get an API review: -* **Get into the backlog**. Generally speaking, filing an issue in `dotnet/runtime` and applying the label `api-ready-for-review` on it will make your issue show up during API reviews. The downside is that we generally walk the backlog oldest-newest, so your issue might not be looked at for a while. Progress of issues can be tracked via http://aka.ms/ready-for-api-review. +* **Get into the backlog**. Generally speaking, filing an issue in `dotnet/runtime` and applying the label `api-ready-for-review` on it will make your issue show up during API reviews. The downside is that we generally walk the backlog oldest-newest, so your issue might not be looked at for a while. Progress of issues can be tracked via https://aka.ms/ready-for-api-review. * **Fast track**. If you need to bypass the backlog apply both `api-ready-for-review` and `blocking`. All blocking issues are looked at before we walk the backlog. * **Dedicated review**. This only applies to area owners. If an issue you are the area owner for needs an hour or longer, send an email to FXDC and we book dedicated time. Rule of thumb: if the API proposal has more than a dozen APIs and/or the APIs have complex policy, then you need 60 min or more. When in doubt, send mail to FXDC. diff --git a/docs/project/linux-performance-tracing.md b/docs/project/linux-performance-tracing.md index ff70c266acec..720c54c50e99 100644 --- a/docs/project/linux-performance-tracing.md +++ b/docs/project/linux-performance-tracing.md @@ -19,9 +19,9 @@ CoreCLR supports two different mechanisms for tracing .NET applications on Linux ## Required Tools ## - **perfcollect**: Bash script that automates data collection. - - Available at . + - Available at . - **PerfView**: Windows-based performance tool that can also analyze trace files collected with Perfcollect. - - Available at . + - Available at . ## Preparing Your Machine ## Follow these steps to prepare your machine to collect a performance trace. @@ -29,7 +29,7 @@ Follow these steps to prepare your machine to collect a performance trace. 1. Download Perfcollect. > ```bash - > curl -OL http://aka.ms/perfcollect + > curl -OL https://aka.ms/perfcollect > ``` 2. Make the script executable. @@ -212,7 +212,7 @@ Traces are best viewed using PerfView on Windows. Note that we're currently loo ### Open the Trace File ### 1. Copy the trace.zip file from Linux to a Windows machine. -2. Download PerfView from . +2. Download PerfView from . 3. Run PerfView.exe > ```cmd @@ -269,7 +269,7 @@ dotnet-trace collect --process-id ``` ## Viewing the Trace ## -The resulting trace can be viewed in [PerfView](http://aka.ms/perfview) on Windows. Alternatively on Linux/macOS, it can be viewed on [SpeedScope](https://speedscope.app) if you convert the trace format to speedscope by passing `--format speedscope` argument when collecting the trace. +The resulting trace can be viewed in [PerfView](https://aka.ms/perfview) on Windows. Alternatively on Linux/macOS, it can be viewed on [SpeedScope](https://speedscope.app) if you convert the trace format to speedscope by passing `--format speedscope` argument when collecting the trace. ## More Information ## To read more about how to use dotnet-trace, please refer to the [dotnet-trace documentation](https://github.com/dotnet/diagnostics/blob/master/documentation/dotnet-trace-instructions.md). diff --git a/docs/workflow/editing-and-debugging.md b/docs/workflow/editing-and-debugging.md index 8297b10d2873..5ffc9813b9ca 100644 --- a/docs/workflow/editing-and-debugging.md +++ b/docs/workflow/editing-and-debugging.md @@ -15,8 +15,7 @@ more on Markdown in general. # Visual Studio Solutions -The repository has a number of Visual Studio Solutions files (`*.sln`) that are useful for editing parts of -what are in the repository. In particular +The repository has a number of Visual Studio Solutions files (`*.sln`) that are useful for editing parts of the repository. In particular * `src\coreclr\src\System.Private.CoreLib\System.Private.CorLib.sln` - This solution is for all managed (C#) code that is defined in the runtime itself. This is all class library support of one form or another. diff --git a/docs/workflow/requirements/linux-requirements.md b/docs/workflow/requirements/linux-requirements.md index 7563fdf7d7c0..cc8328136068 100644 --- a/docs/workflow/requirements/linux-requirements.md +++ b/docs/workflow/requirements/linux-requirements.md @@ -50,7 +50,7 @@ Install the following packages for the toolchain: - libkrb5-dev - libnuma-dev (optional, enables numa support) - zlib1g-dev -- ninja (optional, enables building native code with ninja instead of make) +- ninja-build (optional, enables building native code with ninja instead of make) The following dependencies are needed if Mono Runtime is enabled (default behavior): @@ -62,7 +62,7 @@ The following dependencies are needed if Mono Runtime is enabled (default behavi sudo apt-get install -y cmake llvm-9 clang-9 autoconf automake \ libtool build-essential python curl git lldb-6.0 liblldb-6.0-dev \ libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev \ -libssl-dev libnuma-dev libkrb5-dev zlib1g-dev ninja +libssl-dev libnuma-dev libkrb5-dev zlib1g-dev ninja-build ``` You now have all the required components. diff --git a/docs/workflow/testing/coreclr/unix-test-instructions.md b/docs/workflow/testing/coreclr/unix-test-instructions.md index aae608d27210..eeee6137909c 100644 --- a/docs/workflow/testing/coreclr/unix-test-instructions.md +++ b/docs/workflow/testing/coreclr/unix-test-instructions.md @@ -24,6 +24,17 @@ Please note that this builds the Priority 0 tests. To build priority 1: ./src/tests/build.sh -priority1 ``` +## Generating Core_Root + +The `src/tests/build.sh` script generates the Core_Root folder, which contains the test host (`corerun`), libraries, and coreclr product binaries necessary to run a test. To generate Core_Root without building the tests: + +``` +./src/tests/build.sh generatelayoutonly +``` + +The output will be at `/artifacts/tests/coreclr/../Tests/Core_Root`. + + ## Building Individual Tests During development there are many instances where building an individual test is fast and necessary. All of the necessary tools to build are under `coreclr`. It is possible to use `~/runtime/dotnet.sh msbuild` as you would normally use MSBuild with a few caveats. @@ -33,9 +44,11 @@ During development there are many instances where building an individual test is ## Building an Individual Test ```sh -./dotnet.sh msbuild src/coreclr/tests/src/path-to-proj-file /p:TargetOS= /p:Configuration= +./dotnet.sh msbuild src/tests/path-to-proj-file /p:TargetOS= /p:Configuration= ``` +In addition to the test assembly, this will generate a `.sh` script next to the test assembly in the test's output folder. The test's output folder will be under `/artifacts/tests/coreclr/..` at a subpath based on the test's location in source. + ## Running Tests The following instructions assume that on the Unix machine: @@ -76,6 +89,14 @@ Tests which never should be built or run are marked This propoerty should not be conditioned on Target properties to allow all tests to be built for `allTargets`. +## Running Individual Tests + +After [building an individual test](#building-individual-tests), to run the test: + +1) Set the `CORE_ROOT` environment variable to the [Core_Root folder](#generating-core_root). + +2) Run the test using the `.sh` generated for the test. + PAL tests --------- diff --git a/docs/workflow/testing/coreclr/windows-test-instructions.md b/docs/workflow/testing/coreclr/windows-test-instructions.md index 540c0794fa89..5b7457a291c9 100644 --- a/docs/workflow/testing/coreclr/windows-test-instructions.md +++ b/docs/workflow/testing/coreclr/windows-test-instructions.md @@ -6,13 +6,13 @@ Building and running tests on Windows Building coreclr tests must be done using a specific script as follows: ``` -> src\tests\build.cmd +src\tests\build.cmd ``` ## Building Precompiled Tests ``` -> src\tests\build.cmd crossgen +src\tests\build.cmd crossgen ``` This will use `crossgen.exe` to precompile test executables before they are executed. @@ -20,26 +20,42 @@ This will use `crossgen.exe` to precompile test executables before they are exec ## Building Specific Priority Tests ``` -> src\tests\build.cmd -priority=1 +src\tests\build.cmd -priority=1 ``` The above is an example of requesting that priority '1' and below be built. The default priority value is '0'. If '1' is specified, all tests with `CLRTestPriorty` `0` **and** `1` will be built and run. +## Generating Core_Root + +The `src\tests\build.cmd` script generates the Core_Root folder, which contains the test host (`corerun`), libraries, and coreclr product binaries necessary to run a test. To generate Core_Root without building the tests: + +``` +src\tests\build.cmd generatelayoutonly +``` + +The output will be at `\artifacts\tests\coreclr\windows..\Tests\Core_Root`. For example, the location for x64 checked would be: `\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root` + ## Examples -To run a priority '0' and '1' and crossgen'd test pass: +To build crossgen'd priority '0' and '1' tests: ``` -> src\tests\build.cmd crossgen -priority=1 +src\tests\build.cmd crossgen -priority=1 +``` + +To generate Core_Root for x86 release without building tests: + +``` +src\tests\build.cmd x86 Release generatelayoutonly ``` For additional supported parameters use the following: ``` -> src\tests\build.cmd -? +src\tests\build.cmd -? ``` -### Building Individual Tests +## Building Individual Tests **Note:** `build.cmd skipmanaged [Any additional flags]` needs to be run at least once if the individual test has native assets. @@ -47,18 +63,20 @@ For additional supported parameters use the following: * Managed Test: Use `dotnet.cmd` from the root of the repo on the test project directly. -### Running Tests +In addition to the test assembly, this will generate a `.cmd` script next to the test assembly in the test's output folder. The test's output folder will be under `\artifacts\tests\coreclr\windows..` at a subpath based on the test's location in source. + +## Running Tests Will list supported parameters. ``` -> src\tests\run.cmd /? +src\tests\run.cmd /? ``` In order to run all of the tests using your checked build: ``` -> src\tests\run.cmd checked +src\tests\run.cmd checked ``` This will generate a report named `TestRun__.html` (e.g. `TestRun_windows_x64_Checked.html`) in the subdirectory `\artifacts\log`. Any tests that failed will be listed in `TestRunResults_windows_x64_Checked.err`. @@ -74,21 +92,18 @@ There are 2 files of interest: - `Finalizer.output.txt` - Contains all the information logged by the test. - `Finalizer.error.txt` - Contains the information reported by CoreRun.exe (which executed the test) when the test process crashes. -### Re-run a failed test +To re-run a failed test, follow the instructions for [running individual tests](#running-individual-tests). The test report for the failed test will contain the test command to run - for example, `\artifacts\tests\coreclr\windows.x64.Checked\Exceptions\Finalization\Finalizer.cmd`. -If you wish to re-run a failed test, follow the following steps: +## Running Individual Tests -1) Set an environment variable, `CORE_ROOT`, pointing to the path to product binaries that was passed to run.cmd. -For example using a checked build the location would be: `\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root` +After [building an individual test](#building-individual-tests), to run the test: -2) Run the failed test, the command to which is also present in the test report for a failed test. It will be something like `\artifacts\tests\coreclr\windows.x64.Checked\Exceptions\Finalization\Finalizer.cmd`. +1) Set the `CORE_ROOT` environment variable to the [Core_Root folder](#generating-core_root). -If you wish to run the test under a debugger (e.g. [WinDbg](http://msdn.microsoft.com/library/windows/hardware/ff551063(v=vs.85).aspx)), append `-debug ` to the test command. For example: +2) Run the test using the `.cmd` generated for the test. -``` -> artifacts\tests\coreclr\windows.x64.Checked\Exceptions\Finalization\Finalizer.cmd -debug -``` +If you wish to run the test under a debugger (e.g. [WinDbg](http://msdn.microsoft.com/library/windows/hardware/ff551063(v=vs.85).aspx)), append `-debug ` to the test command. -### Modifying a test +## Modifying a test -If test changes are needed, make the change, and build the test project. This will binplace the binaries in the test binaries folder (e.g. `\artifacts\tests\coreclr\windows.x64.Checked\Exceptions\Finalization`). Then re-run the test following the instructions above. +If test changes are needed, make the change, and re-build the test project. This will binplace the binaries in the test binaries folder (e.g. `\artifacts\tests\coreclr\windows.x64.Checked\Exceptions\Finalization`). Then re-run the test following the instructions above. \ No newline at end of file diff --git a/docs/workflow/testing/mono/testing.md b/docs/workflow/testing/mono/testing.md index 1bffa1de3389..be444b256177 100644 --- a/docs/workflow/testing/mono/testing.md +++ b/docs/workflow/testing/mono/testing.md @@ -1,54 +1,108 @@ -# Running Tests using Mono Runtime +# Running test suites using Mono -## Running Runtime Tests -We currently only support running tests against coreclr. There are additional mono runtime tests in mono/mono, but they -have not been moved over yet. Simply run the following command: +Before running tests, [build Mono](../../building/mono/README.md) using the desired configuration. +## Runtime Tests +### Desktop Mono: + +To build the runtime tests for Mono JIT or interpreter, execute the following command from `$(REPO_ROOT)/src/tests` +``` +./build.sh excludemonofailures +``` + +Run individual test: +``` +cd ../mono/netcore +make run-tests-coreclr CoreClrTest="bash ../../artifacts/tests/coreclr/OSX.x64.Release/JIT/opt/InstructionCombining/DivToMul/DivToMul.sh" +``` + +Run all tests: +``` +cd ../mono/netcore +make run-tests-coreclr-all +``` + +### WebAssembly: +Build the runtime tests for WebAssembly +``` +$(REPO_ROOT)/src/tests/build.sh -skipstressdependencies -excludemonofailures os Browser wasm +``` + +The last few lines of the build log should contain something like this: ``` -dotnet build /t:RunCoreClrTests $(REPO_ROOT)/src/mono/mono.proj +-------------------------------------------------- + Example run.sh command + + src/tests/run.sh --coreOverlayDir=artifacts/tests/coreclr/Browser.wasm.Release/Tests/Core_Root --testNativeBinDir=/artifacts/obj/coreclr/Browser.wasm.Release/tests --testRootDir=/artifacts/tests/coreclr/Browser.wasm.Release --copyNativeTestBin Release +-------------------------------------------------- ``` -If you want to run individual tests, execute this command: +To run all tests, execute that command, adding `wasm` to the end. +### Android: +Build the runtime tests for Android x64 +``` +$(REPO_ROOT)/src/tests/build.sh -skipstressdependencies -excludemonofailures os Android x64 ``` -dotnet build /t:RunCoreClrTest /p:CoreClrTest="" $(REPO_ROOT)/src/mono/mono.proj + +The last few lines of the build log should contain something like this: ``` +-------------------------------------------------- + Example run.sh command -## Running Library Tests -Running library tests against Mono is straightforward regardless of configuration. Simply run the following commands: + src/tests/run.sh --coreOverlayDir=artifacts/tests/coreclr/Android.x64.Release/Tests/Core_Root --testNativeBinDir=/artifacts/obj/coreclr/Android.x64.Release/tests --testRootDir=/artifacts/tests/coreclr/Android.x64.Release --copyNativeTestBin Release +-------------------------------------------------- +``` +To run all tests, execute that command, adding `Android` at the end. -1. Build and set the RuntimeFlavor +### Additional Documents +For more details about internals of the runtime tests, please refer to the [CoreCLR testing documents](../coreclr) -```bash -./build.sh /p:RuntimeFlavor=mono +## Libraries tests +### Desktop Mono +Build and run library tests against Mono JIT or interpreter +``` +$(REPO_ROOT)/dotnet.sh build /t:Test /p:RuntimeFlavor=mono /p:Configuration= $(REPO_ROOT)/src/libraries//tests ``` -or on Windows -```bat -build.cmd /p:RuntimeFlavor=mono +Alternatively, you could execute the following command from `$(REPO_ROOT)/src/mono/netcore` ``` +make run-tests-corefx- +``` +For example, the following command is for running System.Runtime tests: +``` +make run-tests-corefx-System.Runtime +``` +### Mobile targets and WebAssembly +Build and run library tests against Webassembly, Android or iOS. See instructions located in [Library testing document folder](../libraries/) -2. cd into the test library of your choice (`cd src/libraries//tests`) +# Running the Mono samples +There are a few convenient samples located in `$(REPO_ROOT)/src/mono/netcore/sample`, which could help you test your program easily with different flavors of Mono or do a sanity check on the build. The samples are set up to work with a specific configuration; please refer to the relevant Makefile for specifics. If you would like to work with a different configuration, you can edit the Makefile. -3. Run the tests +## Desktop Mono +To run the desktop Mono sample, cd to `HelloWorld` and execute: ``` -dotnet build /t:Test /p:RuntimeFlavor=mono +make run ``` +Note that the default configuration of this sample is LLVM JIT. -# Patching Local dotnet (.dotnet-mono) -Another way to test mono out is by 'patching' a local dotnet with our runtime bits. This is a good way to write simple -test programs and get a glimpse of how mono will work with the dotnet tooling. +## WebAssembly +To run the WebAssembly sample, cd to `wasm`. There are two sub-folders `browser` and `console`. One is set up to run the progam in browser, the other is set up to run the program in console. Enter the desirable sub-folder and execute + +``` +make build && make run +``` -To generate a local .dotnet-mono, execute this command: +## Android +To run the Android sample, cd to `Android` and execute ``` -dotnet build /t:PatchLocalMonoDotnet $(REPO_ROOT)/src/mono/mono.proj +make run ``` -You can then, for example, run our HelloWorld sample via: +## iOS +To run the iOS sample, cd to `iOS` and execute ``` -dotnet build -c Release $(REPO_ROOT)/src/mono/netcore/sample/HelloWorld -MONO_ENV_OPTIONS="" COMPlus_DebugWriteToStdErr=1 \ -$(REPO_ROOT)/.dotnet-mono/dotnet $(REPO_ROOT)/src/mono/netcore/sample/HelloWorld/bin/HelloWorld.dll +make run ``` diff --git a/docs/workflow/trimming/feature-switches.md b/docs/workflow/trimming/feature-switches.md index 40d3a2299f47..b0dadfd38cdf 100644 --- a/docs/workflow/trimming/feature-switches.md +++ b/docs/workflow/trimming/feature-switches.md @@ -15,6 +15,7 @@ configurations but their defaults might vary as any SDK can set the defaults dif | InvariantGlobalization | System.Globalization.Invariant | All globalization specific code and data is trimmed when set to true | | UseSystemResourceKeys | System.Resources.UseSystemResourceKeys | Any localizable resources for system assemblies is trimmed when set to true | | HttpActivityPropagationSupport | System.Net.Http.EnableActivityPropagation | Any dependency related to diagnostics support for System.Net.Http is trimmed when set to false | +| StartupHookSupport | System.StartupHookProvider.IsSupported | Startup hooks are disabled when set to false. Startup hook related functionality can be trimmed. | Any feature-switch which defines property can be set in csproj file or on the command line as any other MSBuild property. Those without predefined property name diff --git a/eng/Configurations.props b/eng/Configurations.props index d26beec0e3e6..09814ae0c05e 100644 --- a/eng/Configurations.props +++ b/eng/Configurations.props @@ -4,6 +4,11 @@ steps and in the repository. --> + + + true + + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'libraries')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'coreclr')) @@ -49,9 +54,6 @@ - $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) - win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) - OSX FreeBSD NetBSD @@ -68,6 +70,109 @@ true + + <_runtimeOS>$(RuntimeOS) + + <_parseDistroRid>$(__DistroRid) + <_parseDistroRid Condition="'$(_parseDistroRid)' == '' and '$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + <_parseDistroRid Condition="'$(_parseDistroRid)' == '' and '$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) + <_distroRidIndex>$(_parseDistroRid.LastIndexOfAny("-")) + + <_runtimeOS Condition="'$(_runtimeOS)' == ''">$(_parseDistroRid.SubString(0, $(_distroRidIndex))) + + + <_runtimeOS Condition="'$(TargetsMobile)' == 'true'">$(TargetOS.ToLowerInvariant()) + + <_runtimeOSVersionIndex>$(_runtimeOS.IndexOfAny(".-0123456789")) + <_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' != '-1'">$(_runtimeOS.SubString(0, $(_runtimeOSVersionIndex))) + + <_buildingInOSX>$([MSBuild]::IsOSPlatform('OSX')) + <_portableOS>linux + <_portableOS Condition="'$(_runtimeOS)' == 'linux-musl'">linux-musl + <_portableOS Condition="$(_buildingInOSX)">osx + <_portableOS Condition="'$(_runtimeOSFamily)' == 'win' or '$(TargetOS)' == 'windows'">win + <_portableOS Condition="'$(_runtimeOSFamily)' == 'FreeBSD'">freebsd + <_portableOS Condition="'$(_runtimeOSFamily)' == 'illumos'">illumos + <_portableOS Condition="'$(_runtimeOSFamily)' == 'Solaris'">solaris + <_portableOS Condition="'$(_runtimeOS)' == 'Browser'">browser + <_portableOS Condition="'$(_runtimeOS)' == 'ios'">ios + <_portableOS Condition="'$(_runtimeOS)' == 'tvos'">tvos + <_portableOS Condition="'$(_runtimeOS)' == 'android'">android + + <_runtimeOS Condition="$(_runtimeOS.StartsWith('tizen'))">linux + <_runtimeOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) + + + <_portableOS Condition="'$(TargetOS)' == 'Unix' and '$(_runtimeOSFamily)' != 'osx' and '$(_runtimeOSFamily)' != 'FreeBSD' and '$(_runtimeOS)' != 'linux-musl' and '$(_runtimeOSFamily)' != 'illumos' and '$(_runtimeOSFamily)' != 'Solaris'">linux + + + + <_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant) + arm + arm64 + wasm + x64 + x64 + + + + <_toolRuntimeRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_runtimeOS)-x64 + <_toolRuntimeRID Condition="'$(_toolRuntimeRID)' == ''">$(_runtimeOS)-$(_hostArch) + + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'linux-musl' and $(TargetArchitecture.StartsWith('arm')) and !$(_hostArch.StartsWith('arm'))">linux-x64 + + + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser' and '$(TargetOS)' == 'windows'">win-x64 + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser' and '$(TargetOS)' != 'windows' and $(_buildingInOSX)">osx-x64 + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser' and '$(TargetOS)' != 'windows' and !$(_buildingInOSX)">linux-x64 + + + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and '$(TargetOS)' == 'windows'">win-x64 + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and '$(TargetOS)' != 'windows' and $(_buildingInOSX)">osx-x64 + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and '$(TargetOS)' != 'windows' and !$(_buildingInOSX)">linux-x64 + + + <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'tvos'">osx-x64 + $(_toolRuntimeRID) + + <_packageRID Condition="'$(PortableBuild)' == 'true'">$(_portableOS)-$(TargetArchitecture) + $(_packageRID) + $(_runtimeOS)-$(TargetArchitecture) + + <_outputRID Condition="'$(TargetOS)' == 'windows'">win-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'OSX'">osx-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'Linux'">linux-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'FreeBSD'">freebsd-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'NetBSD'">netbsd-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'illumos'">illumos-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'Solaris'">solaris-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'iOS'">ios-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'tvOS'">tvos-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'Android'">android-$(TargetArchitecture) + <_outputRID Condition="'$(TargetOS)' == 'Browser'">browser-$(TargetArchitecture) + + $(PackageRID) + $(_outputRID) + + + + true + true + true + true + true + true + true + true + true + true + true + true + true + true + + true @@ -76,4 +181,6 @@ false + + diff --git a/eng/Signing.props b/eng/Signing.props index 471473fc7d97..2d29ea85ea41 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -1,140 +1,85 @@ - + + + + + - true + true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - + + + + + + - - - - - - + - - - + + + + - - - - - - - - - + + + + + + + + + + + + + - - - + + + + false + - - - - + + + + + + - - - - - + + - - - - - - - - + - - - - - - - diff --git a/eng/Subsets.props b/eng/Subsets.props index 43843ea21393..d328c72ff619 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -7,38 +7,24 @@ Examples: - ./build.sh CoreHost + ./build.sh host.native - This builds only the .NET Core Host. + This builds only the .NET host. - ./build.sh corehost installer.managed + ./build.sh libs+host.native - This builds the CoreHost and also the Managed installer portion (e.g. Microsoft.NET.HostModel) - projects. A space ' ' or '+' are the delimiters between multiple subsets to build. + This builds the .NET host and also the manged libraries portion. + A space ' ' or '+' are the delimiters between multiple subsets to build. - ./build.sh -test installer.tests + ./build.sh -test host.tests This builds and executes the installer test projects. (The '-test' argument is an Arcade SDK argument that indicates tests should be run. Otherwise, they'll only be built.) - - Quirks: - - This command looks useful, but doesn't work as expected: - - ./build.sh -test /p:Subset=CoreHost-Test # (Doesn't work!) - - Intuitively, this should build the host, build the tests, then run the tests on the freshly - built host. What actually happens is the tests run on a previously built host. This is because - the depproj, pkgproj, and installer subsets process the host artifacts, and those didn't - rebuild because those subsets were disabled. - - You can get around this limitation by running the corehost subset, manually copying host - artifacts to the test layout, then running the test subset. --> - clr+mono+libs+installer - mono+libs+installer + clr+mono+libs+host+packs + mono+libs+packs @@ -54,7 +40,7 @@ - clr.runtime+clr.jit+clr.alljits+linuxdac+clr.corelib+clr.nativecorelib+clr.tools+clr.packages + clr.runtime+clr.jit+clr.alljits+linuxdac+clr.corelib+clr.tools+clr.nativecorelib+clr.packages mono.llvm+ mono.llvm+ @@ -63,9 +49,11 @@ libs.native+libs.ref+libs.src+libs.pretest+libs.packages - corehost+installer.managed+installer.depprojs+installer.pkgprojs+bundles+installers+installer.tests - installer.pkgprojs - corehost+$(DefaultInstallerSubsets) + host.native+host.pkg+host.tools+host.tests + + host.native + + packs.product+packs.tests @@ -73,8 +61,8 @@ <_subset>$(_subset.Replace('+clr+', '+$(DefaultCoreClrSubsets)+')) <_subset>$(_subset.Replace('+mono+', '+$(DefaultMonoSubsets)+')) <_subset>$(_subset.Replace('+libs+', '+$(DefaultLibrariesSubsets)+')) - <_subset>$(_subset.Replace('+installer+', '+$(DefaultInstallerSubsets)+')) - <_subset>$(_subset.Replace('+installer.nocorehost+', '+$(DefaultInstallerSubsets.Replace('corehost+', ''))+')) + <_subset>$(_subset.Replace('+host+', '+$(DefaultHostSubsets)+')) + <_subset>$(_subset.Replace('+packs+', '+$(DefaultPacksSubsets)+')) <_subset>+$(_subset.Trim('+'))+ @@ -117,19 +105,21 @@ - - - - - - - - - - - + + + + + + + + + + + + + @@ -191,17 +181,19 @@ - - - - - - + $(CoreClrProjectRoot)src\tools\r2rtest\R2RTest.csproj; + $(CoreClrProjectRoot)src\tools\aot\crossgen2\crossgen2.csproj" Category="clr" /> + + + + + + @@ -254,57 +246,62 @@ - - - - + + + + - + - - + - - - - + + + - - - - + + + + + + + + - - - + + + + + + + + + + + + - - - - + + + - - - - - - + - + - - + + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 73c906cbd86c..8381d4a5c69c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,67 +4,75 @@ https://github.com/dotnet/standard cfe95a23647c7de1fe1a349343115bd7720d6949 - + https://github.com/dotnet/icu - a39deb47c8f20ed5adb57cddbc83ac587413c4e4 + f9c78959ceca029309ae76932fb441cacb9650d1 - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 8fb2f6133d86c84ba1e560027e2f3288ec755ba5 + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff - + https://github.com/dotnet/arcade - 72b28b7e023d4c3fffa0a0b9748a7d4e8cc799be + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff + + + https://github.com/dotnet/arcade + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff + + + https://github.com/dotnet/arcade + 35bddd4fbfab8da3518fb920250d7c9e0c3138ff https://dev.azure.com/dnceng/internal/_git/dotnet-optimization @@ -90,73 +98,73 @@ https://github.com/microsoft/vstest b195e2589980861425b331e73a859252c3f2b71a - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/runtime-assets - edc9df4021be1dff54b8d8be88b4bee7626cb6a5 + 8c81a93d8914cc77a9858152c44e395b81083de5 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 - + https://github.com/dotnet/llvm-project - d6c16bf3ec8315049ad0412a7d41e8858b5d0d13 + 395ff4866ce6b470b4d96ee599ebf6dc57fb7dd6 https://github.com/dotnet/runtime @@ -186,17 +194,17 @@ https://github.com/dotnet/runtime 38017c3935de95d0335bac04f4901ddfc2718656 - + https://github.com/mono/linker - d8cbe373195ed3fc727d12d12eb5923b188a7990 + 8ee2557ccbaf9e4cf243f15b8cb95da4eddb18aa - + https://github.com/dotnet/xharness - ab2eee629494e7a17592feda257b4ede4ff2fc82 + ac9663744a551bf5e524165e1467c4fb22a80163 - + https://github.com/dotnet/xharness - ab2eee629494e7a17592feda257b4ede4ff2fc82 + ac9663744a551bf5e524165e1467c4fb22a80163 diff --git a/eng/Versions.props b/eng/Versions.props index 5203475cead7..71d7d6e5d168 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -13,7 +13,7 @@ as for the patches and revisions should be manually updated per assembly if it is serviced. --> - 5.0.0.0 + 6.0.0.0 false release @@ -54,16 +54,18 @@ 6.0.0-preview1.20513.4 3.8.0-4.20503.2 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 2.5.1-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 - 6.0.0-beta.20552.5 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 2.5.1-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 + 6.0.0-beta.20573.2 5.0.0-rc.1.20451.14 6.0.0-alpha.1.20501.4 @@ -105,15 +107,15 @@ 4.3.0 5.0.0-alpha.1.19563.3 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 - 5.0.0-beta.20527.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 + 5.0.0-beta.20568.1 2.2.0-prerelease.19564.1 2.0.3 @@ -141,9 +143,10 @@ 4.9.4 4.9.4 + 1.0.1-prerelease-00006 16.8.0-release-20201022-02 - 1.0.0-prerelease.20559.2 - 1.0.0-prerelease.20559.2 + 1.0.0-prerelease.20574.2 + 1.0.0-prerelease.20574.2 2.4.1 2.4.2 1.3.0 @@ -154,18 +157,18 @@ 5.0.0-preview-20201009.2 - 6.0.0-alpha.1.20560.1 + 6.0.0-alpha.1.20561.1 - 6.0.0-alpha.1.20552.1 + 6.0.0-alpha.1.20573.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 - 9.0.1-alpha.1.20552.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 + 9.0.1-alpha.1.20573.1 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index bb3617133f09..a0b5fc37f438 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -99,8 +99,9 @@ function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Passw function EnablePrivatePackageSources($DisabledPackageSources) { $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled" - $DisabledPackageSource.SetAttribute("value", "false") + Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries + $DisabledPackageSources.RemoveChild($DisabledPackageSource) } } diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index ef33382954cf..2734601c13c4 100644 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -158,8 +158,8 @@ if [ "$?" == "0" ]; then for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do if [[ $DisabledSourceName == darc-int* ]] then - OldDisableValue="add key=\"$DisabledSourceName\" value=\"true\"" - NewDisableValue="add key=\"$DisabledSourceName\" value=\"false\"" + OldDisableValue="" + NewDisableValue="" sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" fi diff --git a/eng/common/cross/armel/armel.jessie.patch b/eng/common/cross/armel/armel.jessie.patch new file mode 100644 index 000000000000..2d2615619351 --- /dev/null +++ b/eng/common/cross/armel/armel.jessie.patch @@ -0,0 +1,43 @@ +diff -u -r a/usr/include/urcu/uatomic/generic.h b/usr/include/urcu/uatomic/generic.h +--- a/usr/include/urcu/uatomic/generic.h 2014-10-22 15:00:58.000000000 -0700 ++++ b/usr/include/urcu/uatomic/generic.h 2020-10-30 21:38:28.550000000 -0700 +@@ -69,10 +69,10 @@ + #endif + #ifdef UATOMIC_HAS_ATOMIC_SHORT + case 2: +- return __sync_val_compare_and_swap_2(addr, old, _new); ++ return __sync_val_compare_and_swap_2((uint16_t*) addr, old, _new); + #endif + case 4: +- return __sync_val_compare_and_swap_4(addr, old, _new); ++ return __sync_val_compare_and_swap_4((uint32_t*) addr, old, _new); + #if (CAA_BITS_PER_LONG == 64) + case 8: + return __sync_val_compare_and_swap_8(addr, old, _new); +@@ -109,7 +109,7 @@ + return; + #endif + case 4: +- __sync_and_and_fetch_4(addr, val); ++ __sync_and_and_fetch_4((uint32_t*) addr, val); + return; + #if (CAA_BITS_PER_LONG == 64) + case 8: +@@ -148,7 +148,7 @@ + return; + #endif + case 4: +- __sync_or_and_fetch_4(addr, val); ++ __sync_or_and_fetch_4((uint32_t*) addr, val); + return; + #if (CAA_BITS_PER_LONG == 64) + case 8: +@@ -187,7 +187,7 @@ + return __sync_add_and_fetch_2(addr, val); + #endif + case 4: +- return __sync_add_and_fetch_4(addr, val); ++ return __sync_add_and_fetch_4((uint32_t*) addr, val); + #if (CAA_BITS_PER_LONG == 64) + case 8: + return __sync_add_and_fetch_8(addr, val); diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 575eee9fa190..6d59e181c8fd 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -336,7 +336,7 @@ elif [[ -n $__CodeName ]]; then chroot $__RootfsDir apt-get -f -y install chroot $__RootfsDir apt-get -y install $__UbuntuPackages chroot $__RootfsDir symlinks -cr /usr - chroot $__RootfsDir apt clean + chroot $__RootfsDir apt-get clean if [ $__SkipUnmount == 0 ]; then umount $__RootfsDir/* || true @@ -348,6 +348,12 @@ elif [[ -n $__CodeName ]]; then patch -p1 < $__CrossDir/$__BuildArch/trusty-lttng-2.4.patch popd fi + + if [[ "$__BuildArch" == "armel" && "$__CodeName" == "jessie" ]]; then + pushd $__RootfsDir + patch -p1 < $__CrossDir/$__BuildArch/armel.jessie.patch + popd + fi elif [[ "$__Tizen" == "tizen" ]]; then ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh else diff --git a/eng/common/performance/crossgen_perf.proj b/eng/common/performance/crossgen_perf.proj index 48455e7aa804..eb8bdd9c440c 100644 --- a/eng/common/performance/crossgen_perf.proj +++ b/eng/common/performance/crossgen_perf.proj @@ -19,7 +19,7 @@ python3 - $(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/startup/Startup;chmod +x $HELIX_WORKITEM_PAYLOAD/startup/perfcollect;sudo apt update + $(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/startup/Startup;chmod +x $HELIX_WORKITEM_PAYLOAD/startup/perfcollect;sudo apt update;chmod +x $HELIX_WORKITEM_PAYLOAD/SOD/SizeOnDisk $HELIX_CORRELATION_PAYLOAD/Core_Root $HELIX_CORRELATION_PAYLOAD/performance/src/scenarios/ $(ScenarioDirectory)crossgen/ diff --git a/eng/common/performance/performance-setup.sh b/eng/common/performance/performance-setup.sh index 315815a96777..c8e211bcb1bb 100755 --- a/eng/common/performance/performance-setup.sh +++ b/eng/common/performance/performance-setup.sh @@ -198,6 +198,12 @@ if [[ "$internal" == true ]]; then else queue=Ubuntu.1804.Amd64.Tiger.Perf fi +else + if [[ "$architecture" = "arm64" ]]; then + queue=ubuntu.1804.armarch.open + else + queue=Ubuntu.1804.Amd64.Open + fi fi if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "false" ]]; then diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 650b13b089b2..31cf27674171 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -10,6 +10,7 @@ param( [Parameter(Mandatory=$false)][string] $EnableNugetValidation, [Parameter(Mandatory=$false)][string] $PublishInstallersAndChecksums, [Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters, + [Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters, [Parameter(Mandatory=$false)][string] $SigningValidationAdditionalParameters ) @@ -25,6 +26,11 @@ try { $optionalParams.Add($ArtifactsPublishingAdditionalParameters) | Out-Null } + if ("" -ne $SymbolPublishingAdditionalParameters) { + $optionalParams.Add("symbol-publishing-parameters") | Out-Null + $optionalParams.Add($SymbolPublishingAdditionalParameters) | Out-Null + } + if ("false" -eq $WaitPublishingFinish) { $optionalParams.Add("--no-wait") | Out-Null } diff --git a/eng/common/post-build/sourcelink-validation.ps1 b/eng/common/post-build/sourcelink-validation.ps1 index 1728b742b3b7..1c46f7b63414 100644 --- a/eng/common/post-build/sourcelink-validation.ps1 +++ b/eng/common/post-build/sourcelink-validation.ps1 @@ -164,7 +164,7 @@ function CheckJobResult( [ref]$ValidationFailures, [switch]$logErrors) { if ($result -ne '0') { - if ($logError) { + if ($logErrors) { Write-PipelineTelemetryError -Category 'SourceLink' -Message "$packagePath has broken SourceLink links." } $ValidationFailures.Value++ diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 06048c27907b..866967934802 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -24,7 +24,6 @@ parameters: enablePublishBuildAssets: false enablePublishTestResults: false enablePublishUsingPipelines: false - useBuildManifest: false mergeTestResults: false testRunTitle: '' testResultsFormat: '' @@ -243,12 +242,3 @@ jobs: ArtifactName: AssetManifests continueOnError: ${{ parameters.continueOnError }} condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) - - - ${{ if eq(parameters.useBuildManifest, true) }}: - - task: PublishBuildArtifacts@1 - displayName: Publish Build Manifest - inputs: - PathToPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/manifest.props' - PublishLocation: Container - ArtifactName: BuildManifests - continueOnError: ${{ parameters.continueOnError }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 761fb1a29c35..41f2d96a608c 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -32,7 +32,6 @@ parameters: symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' signingValidationAdditionalParameters: '' - useBuildManifest: false # Which stages should finish execution before post-build stages start validateDependsOn: @@ -54,9 +53,6 @@ parameters: NETCoreExperimentalChannelId: 562 NetEngServicesIntChannelId: 678 NetEngServicesProdChannelId: 679 - Net5Preview8ChannelId: 1155 - Net5RC1ChannelId: 1157 - Net5RC2ChannelId: 1329 NetCoreSDK313xxChannelId: 759 NetCoreSDK313xxInternalChannelId: 760 NetCoreSDK314xxChannelId: 921 @@ -94,7 +90,7 @@ stages: inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 arguments: -PromoteToChannels "$(TargetChannels)" - -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} + -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} - job: displayName: NuGet Validation @@ -142,16 +138,6 @@ stages: pool: vmImage: 'windows-2019' steps: - - ${{ if eq(parameters.useBuildManifest, true) }}: - - task: DownloadBuildArtifacts@0 - displayName: Download build manifest - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: BuildManifests - task: DownloadBuildArtifacts@0 displayName: Download Package Artifacts inputs: @@ -253,6 +239,7 @@ stages: - job: displayName: Publish Using Darc dependsOn: setupMaestroVars + timeoutInMinutes: 120 variables: - name: BARBuildId value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] @@ -269,6 +256,8 @@ stages: -MaestroToken '$(MaestroApiAccessToken)' -WaitPublishingFinish ${{ parameters.waitPublishingFinish }} -PublishInstallersAndChecksums ${{ parameters.publishInstallersAndChecksums }} + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' - ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}: - template: \eng\common\templates\post-build\channels\generic-public-channel.yml @@ -303,54 +292,6 @@ stages: shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json' symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-symbols/nuget/v3/index.json' - - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} - dependsOn: ${{ parameters.publishDependsOn }} - publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - stageName: 'Net5_Preview8_Publish' - channelName: '.NET 5 Preview 8' - akaMSChannelName: 'net5/preview8' - channelId: ${{ parameters.Net5Preview8ChannelId }} - transportFeed: 'https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v3/index.json' - shippingFeed: 'https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v3/index.json' - symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-symbols/nuget/v3/index.json' - - - template: \eng\common\templates\post-build\channels\generic-public-channel.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} - dependsOn: ${{ parameters.publishDependsOn }} - publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - stageName: 'Net5_RC1_Publish' - channelName: '.NET 5 RC 1' - akaMSChannelName: 'net5/rc1' - channelId: ${{ parameters.Net5RC1ChannelId }} - transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json' - shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json' - symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-symbols/nuget/v3/index.json' - - - template: \eng\common\templates\post-build\channels\generic-public-channel.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} - dependsOn: ${{ parameters.publishDependsOn }} - publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - stageName: 'Net5_RC2_Publish' - channelName: '.NET 5 RC 2' - akaMSChannelName: 'net5/rc2' - channelId: ${{ parameters.Net5RC2ChannelId }} - transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json' - shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json' - symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-symbols/nuget/v3/index.json' - - template: \eng\common\templates\post-build\channels\generic-public-channel.yml parameters: BARBuildId: ${{ parameters.BARBuildId }} diff --git a/eng/coredistools.targets b/eng/coredistools.targets new file mode 100644 index 000000000000..0da9d1cc59b7 --- /dev/null +++ b/eng/coredistools.targets @@ -0,0 +1,15 @@ + + + + + native + true + + + + + $(PkgMicrosoft_NETCore_CoreDisTools)\runtimes\win-$(TargetArchitecture)\native\coredistools.dll + $(PkgMicrosoft_NETCore_CoreDisTools)\runtimes\linux-$(TargetArchitecture)\native\libcoredistools.so + $(PkgMicrosoft_NETCore_CoreDisTools)\runtimes\osx-$(TargetArchitecture)\native\libcoredistools.dylib + + diff --git a/eng/internal/NuGet.config b/eng/internal/NuGet.config deleted file mode 100644 index 885f44c10936..000000000000 --- a/eng/internal/NuGet.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 097941761a36..aeee8b277f19 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -12,41 +12,6 @@ $(LibrariesTargetOS)-$(LibrariesConfiguration)-$(TargetArchitecture) - - - - $(RuntimeIdentifier) - $(ArtifactPlatform.Replace('win-', 'windows-')) - $(ArtifactPlatform.Replace('unix-', 'Unix-')) - $(ArtifactPlatform.Replace('linux-', 'Linux-')) - $(ArtifactPlatform.Replace('osx-', 'OSX-')) - $(ArtifactPlatform.Replace('freebsd-', 'FreeBSD-')) - $(ArtifactPlatform.Replace('netbsd-', 'NetBSD-')) - - $(ArtifactPlatform.Replace('-', '_')) - - $([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'CoreCLRProduct_$(ArtifactPlatform)_$(CoreCLRConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'MonoProduct_$(ArtifactPlatform)_$(MonoConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'libraries_bin_$(ArtifactPlatform)_$(LibrariesConfiguration)')) - - - * - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(CoreCLRTargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) @@ -116,7 +81,7 @@ Include=" $(CoreCLRSharedFrameworkPdbDir)*.pdb; $(CoreCLRSharedFrameworkPdbDir)*.dbg; - $(CoreCLRSharedFrameworkPdbDir)*.dwarf" /> + $(CoreCLRSharedFrameworkPdbDir)*.dwarf" IsNative="true" /> runtime/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native + true @@ -200,7 +166,9 @@ + + lib + + - + - .exe - - .dll - .lib - .pdb + .exe + .dll + .lib + .pdb - + - lib - .dylib - .a - .dwarf + lib + .dylib + .a + .dwarf - + - lib - .so - .a + lib + .so + .a - .debug + .debug - lib - .so - .a - .dbg + lib + .so + .a + .dbg - - + + + + + $(SymbolsSuffix) + + diff --git a/eng/pipelines/common/download-artifact-step.yml b/eng/pipelines/common/download-artifact-step.yml index 6bb0462b4970..b3f497392ed5 100644 --- a/eng/pipelines/common/download-artifact-step.yml +++ b/eng/pipelines/common/download-artifact-step.yml @@ -19,6 +19,6 @@ steps: - task: ExtractFiles@1 displayName: 'Unzip ${{ parameters.displayName }}' inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/__download__/${{ parameters.artifactName }}/${{ parameters.artifactFileName }} + archiveFilePatterns: $(Build.SourcesDirectory)/__download__/${{ parameters.artifactName }}/**/${{ parameters.artifactFileName }} destinationFolder: ${{ parameters.unpackFolder }} cleanDestinationFolder: ${{ parameters.cleanUnpackFolder }} diff --git a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml index 606a4418b27a..b5390fda2a57 100644 --- a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml @@ -25,7 +25,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipstressdependencies -excludemonofailures os Android x64 $(buildConfigUpper) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os Android x64 $(buildConfigUpper) displayName: Build Tests # Send tests to Helix diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index f28ce14ce2cc..313cb5e7cea3 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -120,7 +120,7 @@ jobs: displayName: Disk Usage before Build # Build managed test components - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) allTargets skipstressdependencies skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) displayName: Build managed test components - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index c3d448182563..66f3b40d7e84 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -247,7 +247,7 @@ jobs: # and directly unzip them there after download). Unfortunately the logic to copy # the native artifacts to the final test folders is dependent on availability of the # managed test artifacts. - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) skipstressdependencies copynativeonly $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) copynativeonly $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg) displayName: Copy native test components to test output folder @@ -472,6 +472,7 @@ jobs: - jitobjectstackallocation - jitpgo - jitpgo_inline + - jitpgo_classes ${{ if in(parameters.testGroup, 'ilasm') }}: scenarios: - ilasmroundtrip diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 79db36072669..462fe6533108 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -31,7 +31,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipstressdependencies -excludemonofailures os Browser wasm $(buildConfigUpper) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os Browser wasm $(buildConfigUpper) displayName: Build Tests # Send tests to Helix diff --git a/eng/pipelines/common/upload-intermediate-artifacts-step.yml b/eng/pipelines/common/upload-intermediate-artifacts-step.yml new file mode 100644 index 000000000000..a0741b7b6820 --- /dev/null +++ b/eng/pipelines/common/upload-intermediate-artifacts-step.yml @@ -0,0 +1,20 @@ +parameters: + name: '' + +steps: +- task: CopyFiles@2 + displayName: Prepare job-specific intermediate artifacts subdirectory + inputs: + SourceFolder: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' + Contents: | + Shipping/**/* + NonShipping/**/* + TargetFolder: '$(Build.StagingDirectory)/IntermediateArtifacts/${{ parameters.name }}' + CleanTargetFolder: true + +- task: PublishBuildArtifacts@1 + displayName: Publish intermediate artifacts + inputs: + pathToPublish: '$(Build.StagingDirectory)/IntermediateArtifacts' + artifactName: IntermediateArtifacts + artifactType: container diff --git a/eng/pipelines/common/upload-unsigned-artifacts-step.yml b/eng/pipelines/common/upload-unsigned-artifacts-step.yml deleted file mode 100644 index c4fea2adaa63..000000000000 --- a/eng/pipelines/common/upload-unsigned-artifacts-step.yml +++ /dev/null @@ -1,20 +0,0 @@ -parameters: - name: '' - -steps: -- task: CopyFiles@2 - displayName: Prepare job-specific intermediate unsigned artifacts subdirectory - inputs: - SourceFolder: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' - Contents: | - Shipping/**/* - NonShipping/**/* - TargetFolder: '$(Build.StagingDirectory)/UnsignedArtifacts/${{ parameters.name }}' - CleanTargetFolder: true - -- task: PublishBuildArtifacts@1 - displayName: Publish intermediate unsigned artifacts - inputs: - pathToPublish: '$(Build.StagingDirectory)/UnsignedArtifacts' - artifactName: IntermediateUnsignedArtifacts - artifactType: container diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index a80e985fef1d..320caffd43ae 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -36,6 +36,7 @@ jobs: - Linux_x64 - windows_x64 - windows_x86 + - Linux_arm64 jobParameters: testGroup: perf @@ -48,7 +49,7 @@ jobs: platforms: - Browser_wasm jobParameters: - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) nameSuffix: wasm isOfficialBuild: ${{ variables.isOfficialBuild }} extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml @@ -130,6 +131,7 @@ jobs: - Linux_x64 - windows_x64 - windows_x86 + - Linux_arm64 jobParameters: testGroup: perf liveLibrariesBuildConfig: Release diff --git a/eng/pipelines/coreclr/superpmi.yml b/eng/pipelines/coreclr/superpmi.yml index 3ae264540b1f..6535309297f4 100644 --- a/eng/pipelines/coreclr/superpmi.yml +++ b/eng/pipelines/coreclr/superpmi.yml @@ -1,4 +1,17 @@ -trigger: none +# This job definition automates the SuperPMI collection process. + +# Trigger this job if the JIT-EE GUID changes, which invalidates previous SuperPMI +# collections. As a proxy for determining if the JIT-EE GUID has changed, we just +# trigger if the file containing the GUID definition changes, which almost always +# corresponds to the GUID itself changing. +trigger: + batch: true + branches: + include: + - master + paths: + include: + - src/coreclr/src/inc/corinfo.h pr: none diff --git a/eng/pipelines/coreclr/templates/build-job.yml b/eng/pipelines/coreclr/templates/build-job.yml index beb779bc605b..dae8c8a19177 100644 --- a/eng/pipelines/coreclr/templates/build-job.yml +++ b/eng/pipelines/coreclr/templates/build-job.yml @@ -111,7 +111,7 @@ jobs: - ${{ if eq(parameters.testGroup, 'clrinterpreter') }}: - name: clrInterpreterBuildArg value: '-cmakeargs "-DFEATURE_INTERPRETER=1"' - + - name: clrBuildPALTestsBuildArg value: '' - ${{ if ne(parameters.testGroup, 'innerloop') }}: @@ -124,6 +124,9 @@ jobs: - name: ninjaArg value: '-ninja' + - name: SignType + value: $[ coalesce(variables.OfficialSignType, 'real') ] + - ${{ parameters.variables }} steps: @@ -147,6 +150,17 @@ jobs: - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - template: /eng/pipelines/common/restore-internal-tools.yml + # Install MicroBuild for signing the DAC and DBI + - ${{ if and(eq(variables['System.TeamProject'], 'internal'), eq(parameters.signBinaries, true), eq(parameters.osGroup, 'windows')) }}: + - task: MicroBuildSigningPlugin@2 + displayName: Install MicroBuild plugin for Signing + inputs: + signType: $(SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + continueOnError: false + condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) + - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* @@ -156,7 +170,7 @@ jobs: # Build DacTableGen (Windows-only) - ${{ if eq(parameters.osGroup, 'windows') }}: - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.dactools $(crossArg) -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) -ci /bl:$(Build.SourcesDirectory)artifacts/logs/$(buildConfig)/DacTools.binlog - displayName: Build managed product components and packages + displayName: Build DAC utility tools # Build CoreCLR Runtime - ${{ if ne(parameters.osGroup, 'windows') }}: @@ -183,7 +197,7 @@ jobs: # Build native test components - ${{ if ne(parameters.isOfficialBuild, true) }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) skipstressdependencies skipmanaged skipgeneratelayout $(buildConfig) $(archType) $(crossArg) $(osArg) $(priorityArg) $(compilerArg) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) skipmanaged skipgeneratelayout $(buildConfig) $(archType) $(crossArg) $(osArg) $(priorityArg) $(compilerArg) displayName: Build native test components # Sign and add entitlements to these MacOS binaries @@ -208,10 +222,15 @@ jobs: targetFolder: $(buildProductRootFolderPath)/sharedFramework overWrite: true - # Sign on Windows - - ${{ if and(eq(parameters.osGroup, 'windows'), eq(parameters.signBinaries, 'true'), ne(parameters.testGroup, 'clrTools')) }}: - - powershell: eng\common\build.ps1 -ci -sign -restore -configuration:$(buildConfig) -warnaserror:0 /p:ArcadeBuild=true /p:OfficialBuild=true /p:TargetOS=$(osGroup) /p:TargetArchitecture=$(archType) /p:Configuration=$(_BuildConfig) /p:DotNetSignType=$env:_SignType -projects $(Build.SourcesDirectory)\eng\empty.csproj - displayName: Sign Binaries + # Sign diagnostic files on Windows + - ${{ if and(eq(parameters.osGroup, 'windows'), eq(parameters.signBinaries, true)) }}: + - powershell: >- + eng\common\build.ps1 -ci -sign -restore -configuration:$(buildConfig) -warnaserror:0 $(officialBuildIdArg) + /p:DiagnosticsFilesRoot="$(buildProductRootFolderPath)" + /p:SignDiagnostics=true + /p:DotNetSignType=$(SignType) + -projects $(Build.SourcesDirectory)\eng\empty.csproj + displayName: Sign Diagnostic Binaries - task: PublishPipelineArtifact@1 displayName: Publish Signing Logs @@ -264,7 +283,7 @@ jobs: # Save packages using the prepare-signed-artifacts format. - ${{ if and(eq(parameters.isOfficialBuild, true), ne(parameters.testGroup, 'clrTools')) }}: - - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml parameters: name: ${{ parameters.platform }} diff --git a/eng/pipelines/coreclr/templates/crossdac-build.yml b/eng/pipelines/coreclr/templates/crossdac-build.yml index 216485692c64..575e09f3c31b 100644 --- a/eng/pipelines/coreclr/templates/crossdac-build.yml +++ b/eng/pipelines/coreclr/templates/crossdac-build.yml @@ -5,16 +5,12 @@ parameters: steps: # Always build the crossdac, that way we know in CI/PR if things break to build. - - ${{ if eq(parameters.osGroup, 'windows') }}: - - ${{ if notin(parameters.archType, 'x86') }}: - - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -linuxdac $(officialBuildIdArg) - displayName: Build Cross OS Linux DAC for Windows + - ${{ if and(eq(parameters.osGroup, 'windows'), notin(parameters.archType, 'x86')) }}: + - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -linuxdac $(officialBuildIdArg) + displayName: Build Cross OS Linux DAC for Windows - - - ${{ if eq(parameters.osGroup, 'windows') }}: - - ${{ if notin(parameters.archType, 'x86') }}: - - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -alpinedac $(officialBuildIdArg) - displayName: Build Cross OS Linux-musl DAC for Windows + - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -alpinedac $(officialBuildIdArg) + displayName: Build Cross OS Linux-musl DAC for Windows - task: CopyFiles@2 displayName: Gather CrossDac Artifacts (Linux) diff --git a/eng/pipelines/coreclr/templates/crossdac-pack.yml b/eng/pipelines/coreclr/templates/crossdac-pack.yml index f876a85d33fe..4309baa32036 100644 --- a/eng/pipelines/coreclr/templates/crossdac-pack.yml +++ b/eng/pipelines/coreclr/templates/crossdac-pack.yml @@ -42,6 +42,8 @@ jobs: value: '/p:OfficialBuildId=$(Build.BuildNumber)' - name: crossDacArgs value: '/p:CrossDacArtifactsDir=$(crossDacArtifactPath)/$(buildCrossDacArtifactName)' + - name: SignType + value: $[ coalesce(variables.OfficialSignType, 'real') ] - ${{ parameters.variables }} dependsOn: @@ -50,6 +52,19 @@ jobs: - ${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_product_build_${{ platform }}_${{ parameters.buildConfig }} steps: + # Install MicroBuild for signing the package + - ${{ if eq(parameters.isOfficialBuild, true) }}: + - template: /eng/pipelines/common/restore-internal-tools.yml + + - task: MicroBuildSigningPlugin@2 + displayName: Install MicroBuild plugin for Signing + inputs: + signType: $(SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + continueOnError: false + condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) + - task: DownloadBuildArtifacts@0 displayName: Download CrossDac artifacts inputs: @@ -59,8 +74,18 @@ jobs: - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset crossdacpack -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) $(crossDacArgs) -ci displayName: Build crossdac packaging + # Sign diagnostic files + - ${{ if eq(parameters.isOfficialBuild, true) }}: + - powershell: >- + eng\common\build.ps1 -ci -sign -restore -configuration:$(buildConfig) -warnaserror:0 $(officialBuildIdArg) + /p:PackagesFolder="$(Build.SourcesDirectory)/artifacts/packages/$(buildConfig)" + /p:SignDiagnosticsPackages=true + /p:DotNetSignType=$(SignType) + -projects $(Build.SourcesDirectory)\eng\empty.csproj + displayName: Sign CrossDac package and contents + # Save packages using the prepare-signed-artifacts format. - - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml parameters: name: ${{ parameters.platform }} diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index 5ace7f310d47..50db8eeaacd2 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -21,19 +21,13 @@ parameters: packageDistroList: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046 - imageRid: ubuntu.14.04 - rids: [] + packageType: deb + packagingArgs: /p:BuildDebPackage=true - image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113 - imageRid: rhel.7 - rids: - - centos.7 - - fedora.27 - - opensuse.42 - - oraclelinux.7 - - sles.12 + packageType: rpm + packagingArgs: /p:BuildRpmPackage=true isOfficialBuild: false - useOfficialAllConfigurations: false buildFullPlatformManifest: false liveRuntimeBuildConfig: '' @@ -117,7 +111,7 @@ jobs: - name: BaseJobBuildCommand value: >- - build.cmd -subset installer -ci + build.cmd -subset host+packs -ci $(BuildAction) -configuration $(_BuildConfig) $(LiveOverridePathArgs) @@ -155,7 +149,7 @@ jobs: - name: BaseJobBuildCommand value: >- - $(Build.SourcesDirectory)/build.sh -subset installer -ci + $(Build.SourcesDirectory)/build.sh -subset packs -ci $(BuildAction) -configuration $(_BuildConfig) -os ${{ parameters.osGroup }} @@ -191,7 +185,7 @@ jobs: - ${{ if eq(parameters.isOfficialBuild, true) }}: - name: BuildScript - value: ./eng/install-nuget-credprovider-then-build.sh --subset installer + value: ./eng/install-nuget-credprovider-then-build.sh --subset host+packs - name: MSBuildScript value: /root/runtime/eng/install-nuget-credprovider-then-msbuild.sh @@ -217,7 +211,7 @@ jobs: - name: BuildArguments value: >- - -subset installer -ci + -subset host+packs -ci $(BuildAction) /p:CrossBuild=${{ parameters.crossBuild }} /p:PortableBuild=$(_PortableBuild) @@ -233,23 +227,15 @@ jobs: $(OutputRidArg) /bl:msbuild.publish.binlog - # Tell the build to package up the bits from the portable build. - - name: PackagePortableBitsArgs - value: >- - /p:PortableBuild=false - /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/ - /p:InstallerSourceOSPlatformConfig=linux-x64.$(_BuildConfig) - - name: DockerRunMSBuild value: >- docker run -v $(Build.SourcesDirectory):/root/runtime - -v $(Build.StagingDirectory)/sharedFrameworkPublish/:/root/sharedFrameworkPublish/ -w=/root/runtime $(PreserveNuGetAuthDockerArgs) - name: installersSubsetArg - value: --subset Installers + value: --subset packs.installers - name: BaseJobBuildCommand value: | @@ -265,26 +251,16 @@ jobs: value: >- $(RuntimeArtifactsArgs) $(LibrariesConfigurationArg) - $(LibrariesAllConfigurationsOverridePathArg) - $(AllArtifactsArgs) - name: RuntimeArtifactsArgs value: '' - name: LibrariesConfigurationArg value: '' - - name: LibrariesAllConfigurationsOverridePathArg - value: '' - - name: AllArtifactsArgs - value: '' - name: RuntimeDownloadPath value: '' - name: LibrariesDownloadPath value: '' - - name: LibrariesDownloadPathAllConfigurations - value: '' - - name: AllArtifactsDownloadPath - value: '' - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - name: liveRuntimeLegName @@ -316,60 +292,23 @@ jobs: - name: LibrariesConfigurationArg value: ' /p:LibrariesConfiguration=${{ parameters.liveLibrariesBuildConfig }}' - # Download allconfigurations bits to a separate location. It overlaps with the live libraries - # download and causes conflict when unzipping to the same location. - - ${{ if eq(parameters.useOfficialAllConfigurations, true) }}: - - name: LibrariesDownloadPathAllConfigurations - value: 'artifacts/transport/librariesallconfigurations' - - name: LibrariesAllConfigurationsOverridePathArg - value: /p:LibrariesAllConfigurationsOverridePath=${{ parameters.buildCommandSourcesDirectory }}$(LibrariesDownloadPathAllConfigurations) - - name: LibrariesArtifactNameAllConfigurations - value: libraries_bin_official_allconfigurations - - # Download all upstream platforms and incorporate in the platform manifest. - - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - - name: AllArtifactsDownloadPath - value: 'artifacts/transport/AllArtifacts' - - name: AllArtifactsArgs - value: >- - /p:AllArtifactsDownloadPath=${{ parameters.buildCommandSourcesDirectory }}$(AllArtifactsDownloadPath) - /p:BuildFullPlatformManifest=true - dependsOn: - checkout - ${{ parameters.dependsOn }} - - ${{ if eq(parameters.dependsOnGlobalBuild, false) }}: - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', - parameters.runtimeFlavor, - parameters.runtimeVariant, - parameters.osGroup, - parameters.osSubgroup, - parameters.archType, - parameters.liveRuntimeBuildConfig) }} - - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - - libraries_build_${{ format('{0}{1}_{2}_{3}', - parameters.osGroup, - parameters.osSubgroup, - parameters.archType, - parameters.liveLibrariesBuildConfig) }} - - ${{ if eq(parameters.useOfficialAllConfigurations, true) }}: - - libraries_build_allconfigurations_windows_x64_Release - - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - - ${{ each platform in parameters.platforms }}: - - ${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_product_build_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }} - - libraries_build_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }} - - - ${{ if eq(parameters.dependsOnGlobalBuild, true) }}: - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - ${{ format('build_{0}{1}_{2}_{3}_{4}', - parameters.osGroup, - parameters.osSubgroup, - parameters.archType, - parameters.liveRuntimeBuildConfig, - parameters.globalBuildSuffix) }} - - ${{ if eq(parameters.useOfficialAllConfigurations, true) }}: - - build_windows_x64_${{ parameters.liveLibrariesBuildConfig }}_AllConfigurations + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', + parameters.runtimeFlavor, + parameters.runtimeVariant, + parameters.osGroup, + parameters.osSubgroup, + parameters.archType, + parameters.liveRuntimeBuildConfig) }} + - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: + - libraries_build_${{ format('{0}{1}_{2}_{3}', + parameters.osGroup, + parameters.osSubgroup, + parameters.archType, + parameters.liveLibrariesBuildConfig) }} steps: @@ -408,36 +347,6 @@ jobs: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml - # Download and extract artifacts for earlier subsets. - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifacts for all platforms' - inputs: - buildType: current - downloadType: specific - downloadPath: '$(Build.SourcesDirectory)/__download__/AllPlatforms/' - allowPartiallySucceededBuilds: true - itemPattern: | - $(runtimeFlavorName)Product_*/** - libraries_bin_*/** - !*Logs* - - - ${{ if eq(parameters.buildFullPlatformManifest, true) }}: - - ${{ each platform in parameters.platforms }}: - - task: ExtractFiles@1 - displayName: 'Unzip $(runtimeFlavorName) artifacts: ${{ platform }}' - inputs: - archiveFilePatterns: | - $(Build.SourcesDirectory)/__download__/AllPlatforms/**/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}.* - destinationFolder: $(AllArtifactsDownloadPath)/$(runtimeFlavorName)Product_${{ platform }}_${{ parameters.liveRuntimeBuildConfig }}/ - cleanUnpackFolder: false - - task: ExtractFiles@1 - displayName: 'Unzip Libraries artifacts: ${{ platform }}' - inputs: - archiveFilePatterns: | - $(Build.SourcesDirectory)/__download__/AllPlatforms/**/libraries_bin_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }}.* - destinationFolder: $(AllArtifactsDownloadPath)/libraries_bin_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }}/ - cleanUnpackFolder: false - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: @@ -455,16 +364,6 @@ jobs: displayName: 'Libraries artifacts' cleanUnpackFolder: false - - ${{ if eq(parameters.useOfficialAllConfigurations, true) }}: - - template: /eng/pipelines/common/download-artifact-step.yml - parameters: - unpackFolder: $(Build.SourcesDirectory)/$(LibrariesDownloadPathAllConfigurations) - # Always use '.zip' because AllConfigurations is built on Windows but used everywhere. - artifactFileName: '$(LibrariesArtifactNameAllConfigurations).zip' - artifactName: '$(LibrariesArtifactNameAllConfigurations)' - displayName: 'Libraries artifacts (AllConfigurations)' - cleanUnpackFolder: false - - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh ${{ parameters.osGroup }} ${{ parameters.archType }} azDO displayName: Install Build Dependencies @@ -481,7 +380,7 @@ jobs: # Build corehost, sign and add entitlements to MacOS binaries - ${{ if eq(parameters.osGroup, 'OSX') }}: - - script: $(BaseJobBuildCommand) -subset corehost + - script: $(BaseJobBuildCommand) -subset host.native displayName: Build CoreHost - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: @@ -495,7 +394,7 @@ jobs: path: $(Build.SourcesDirectory)/artifacts/bin/osx-${{ parameters.archType }}.$(_BuildConfig)/corehost entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist - - script: $(BaseJobBuildCommand) -subset installer.nocorehost + - script: $(BaseJobBuildCommand) -subset host.pkg+host.tools+packs displayName: Build and Package - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: @@ -506,33 +405,17 @@ jobs: # Only in glibc leg, we produce RPMs and Debs - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), eq(parameters.platform, 'Linux_x64'), eq(parameters.osSubgroup, ''))}}: - - task: CopyFiles@2 - displayName: 'Copy built Portable linux-x64 binaries to staging directory' - inputs: - SourceFolder: '$(Build.SourcesDirectory)/artifacts/obj/linux-x64.$(_BuildConfig)/sharedFrameworkPublish' - TargetFolder: '$(Build.StagingDirectory)/sharedFrameworkPublish' - - ${{ each packageBuild in parameters.packageDistroList }}: # This leg's RID matches the build image. Build its distro-dependent packages, as well as # the distro-independent installers. (There's no particular reason to build the distro- # independent installers on this leg, but we need to do it somewhere.) - template: steps/build-linux-package.yml parameters: - distroRid: ${{ packageBuild.imageRid }} + packageType: ${{ packageBuild.packageType }} image: ${{ packageBuild.image }} packageStepDescription: Runtime Deps, Runtime, Framework Packs installers subsetArg: $(installersSubsetArg) - - - ${{ each rid in packageBuild.rids }}: - # Build distro-dependent packages. - - template: steps/build-linux-package.yml - parameters: - distroRid: ${{ rid }} - image: ${{ packageBuild.image }} - outputRidArg: /p:OutputRid=${{ rid }}-${{ parameters.archType }} - packageStepDescription: Runtime Deps installers - packagingArgs: /p:BuildDistroIndependentInstallers=false - subsetArg: $(installersSubsetArg) + packagingArgs: ${{ packageBuild.packagingArgs }} - ${{ if ne(parameters.container, '') }}: # Files may be owned by root because builds don't set user ID. Later build steps run 'find' in @@ -560,7 +443,8 @@ jobs: condition: and( succeeded(), eq(variables['_BuildConfig'], 'Release'), - ne(variables['DisableVSPublish'], 'true')) + ne(variables['DisableVSPublish'], 'true'), + ne(variables['PostBuildSign'], 'true')) - template: steps/upload-job-artifacts.yml parameters: diff --git a/eng/pipelines/installer/jobs/steps/build-linux-package.yml b/eng/pipelines/installer/jobs/steps/build-linux-package.yml index e0129ccff631..95bae9624037 100644 --- a/eng/pipelines/installer/jobs/steps/build-linux-package.yml +++ b/eng/pipelines/installer/jobs/steps/build-linux-package.yml @@ -1,7 +1,6 @@ parameters: - distroRid: null + packageType: null image: null - outputRidArg: '' packageStepDescription: null packagingArgs: '' subsetArg: '' @@ -13,12 +12,8 @@ steps: $(DockerRunMSBuild) ${{ parameters.image }} $(BuildScript) \ --ci \ ${{ parameters.subsetArg }} \ - /p:UsePrebuiltPortableBinariesForInstallers=true \ - $(PackagePortableBitsArgs) \ - /p:GenerateProjectInstallers=true \ ${{ parameters.packagingArgs }} \ $(CommonMSBuildArgs) \ - ${{ parameters.outputRidArg }} \ $(LiveOverridePathArgs) \ - /bl:artifacts/log/$(_BuildConfig)/msbuild.${{ parameters.distroRid }}.installers.binlog - displayName: Package ${{ parameters.packageStepDescription }} - ${{ parameters.distroRid }} + /bl:artifacts/log/$(_BuildConfig)/msbuild.${{ parameters.packageType }}.installers.binlog + displayName: Package ${{ parameters.packageStepDescription }} - ${{ parameters.packageType }} diff --git a/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml b/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml index 884ca0177e7f..30032b7da22e 100644 --- a/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml +++ b/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml @@ -7,7 +7,7 @@ parameters: steps: # Upload build artifacts (packages) to pipeline only if official, to save storage space. - ${{ if eq(parameters.isOfficialBuild, true) }}: - - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml parameters: name: ${{ parameters.name }} diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index d21a511d148a..c0dd92d3e055 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -129,7 +129,7 @@ jobs: # platform-specific jobs' nupkgs automatically flow through the matching platform-specific # Installer build, but AllConfigurations should only be uploaded once, here. - ${{ if eq(parameters.isOfficialAllConfigurations, true) }}: - - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml parameters: name: Libraries_AllConfigurations diff --git a/eng/pipelines/libraries/helix.yml b/eng/pipelines/libraries/helix.yml index 02f2086a1a47..706f82e19b06 100644 --- a/eng/pipelines/libraries/helix.yml +++ b/eng/pipelines/libraries/helix.yml @@ -21,7 +21,7 @@ steps: /p:TargetRuntimeIdentifier=${{ parameters.targetRid }} /p:Configuration=${{ parameters.buildConfig }} /p:TargetOS=${{ parameters.osGroup }} - /p:MonoEnableInterpreter=${{ parameters.interpreter }} + /p:MonoForceInterpreter=${{ parameters.interpreter }} /p:TestScope=${{ parameters.testScope }} /p:TestRunNamePrefixSuffix=${{ parameters.testRunNamePrefixSuffix }} /p:HelixBuild=$(Build.BuildNumber) diff --git a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml index 42c8bb69b73f..2a1a11339633 100644 --- a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml +++ b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml @@ -10,7 +10,7 @@ jobs: dependsOn: ${{ parameters.dependsOn }} pool: name: NetCoreInternal-Pool - queue: buildpool.windows.10.amd64.vs2017 + queue: buildpool.windows.10.amd64.vs2019 # Double the default timeout. timeoutInMinutes: 120 workspace: @@ -33,17 +33,18 @@ jobs: zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json continueOnError: false - condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) + condition: and(succeeded(), + in(variables['SignType'], 'real', 'test')) - task: DownloadBuildArtifacts@0 - displayName: Download IntermediateUnsignedArtifacts + displayName: Download IntermediateArtifacts inputs: - artifactName: IntermediateUnsignedArtifacts + artifactName: IntermediateArtifacts downloadPath: $(Build.SourcesDirectory)\artifacts\PackageDownload - script: >- build.cmd -ci - -subset installer.publish + -subset publish -configuration Release /p:PublishRidAgnosticPackagesFromPlatform=${{ parameters.PublishRidAgnosticPackagesFromPlatform }} /p:OfficialBuildId=$(Build.BuildNumber) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 62c07cbd896b..a531b4642dc1 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -32,6 +32,8 @@ variables: value: .NETCore - name: _DotNetValidationArtifactsCategory value: .NETCoreValidation +- name: PostBuildSign + value: true stages: - stage: Build @@ -63,13 +65,14 @@ stages: - windows_arm64 jobParameters: isOfficialBuild: ${{ variables.isOfficialBuild }} + signBinaries: ${{ variables.isOfficialBuild }} - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml buildConfig: release platforms: - - Linux_musl_x64 + - windows_x64 jobParameters: isOfficialBuild: ${{ variables.isOfficialBuild }} crossDacPlatforms: @@ -114,10 +117,10 @@ stages: # - windows_arm # - windows_arm64 jobParameters: - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) nameSuffix: AllSubsets_Mono isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: name: MonoRuntimePacks @@ -143,12 +146,12 @@ stages: buildConfig: release runtimeFlavor: mono jobParameters: - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false nameSuffix: AllSubsets_Mono_LLVMJIT runtimeVariant: LLVMJIT isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: name: MonoRuntimePacks #LLVMAOT @@ -156,12 +159,12 @@ stages: buildConfig: release runtimeFlavor: mono jobParameters: - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true nameSuffix: AllSubsets_Mono_LLVMAOT runtimeVariant: LLVMAOT isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: name: MonoRuntimePacks @@ -213,8 +216,6 @@ stages: liveRuntimeBuildConfig: release liveLibrariesBuildConfig: Release isOfficialBuild: ${{ variables.isOfficialBuild }} - useOfficialAllConfigurations: true - buildFullPlatformManifest: true platforms: - OSX_arm64 - OSX_x64 diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index dd43cb33606d..e84d08e83ef4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -271,7 +271,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), @@ -292,7 +292,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), @@ -320,7 +320,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- or( @@ -365,7 +365,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- or( @@ -473,7 +473,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false condition: >- or( @@ -493,7 +493,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false condition: >- or( @@ -516,7 +516,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true condition: >- or( @@ -535,7 +535,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true condition: >- or( diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml index 38425c1407e9..facd5bc264ae 100644 --- a/eng/pipelines/runtimelab.yml +++ b/eng/pipelines/runtimelab.yml @@ -71,7 +71,7 @@ stages: jobParameters: timeoutInMinutes: 100 testGroup: innerloop - buildArgs: -s clr+libs+installer -c debug -runtimeConfiguration Checked + buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml extraStepsParameters: uploadRuntimeTests: true @@ -92,9 +92,9 @@ stages: extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml extraStepsParameters: uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }} - uploadUnsignedArtifacts: false + uploadIntermediateArtifacts: false ${{ if eq(variables.isOfficialBuild, false) }}: - buildArgs: -s clr+libs+libs.tests+installer -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true ${{ if eq(variables.isOfficialBuild, true) }}: buildArgs: -s clr+libs -c $(_BuildConfig) @@ -115,7 +115,7 @@ stages: ${{ if eq(variables.isOfficialBuild, true) }}: extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml extraStepsParameters: - uploadUnsignedArtifacts: true + uploadIntermediateArtifacts: true isOfficialBuild: true librariesBinArtifactName: libraries_bin_official_allconfigurations diff --git a/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml index 124b38f0819e..61decc63875a 100644 --- a/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml +++ b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml @@ -9,12 +9,12 @@ parameters: isOfficialBuild: false uploadLibrariesTests: false uploadRuntimeTests: false - uploadUnsignedArtifacts: false + uploadIntermediateArtifacts: false steps: # Build coreclr native test output - ${{ if eq(parameters.uploadRuntimeTests, true) }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) skipstressdependencies skipmanaged skipgeneratelayout $(buildConfigUpper) ${{ parameters.archType }} + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) skipmanaged skipgeneratelayout $(buildConfigUpper) ${{ parameters.archType }} displayName: Build native test components # Copy all build output into artifacts staging directory @@ -69,7 +69,7 @@ steps: displayName: Build Assets # Upload unsigned artifacts - - ${{ if eq(parameters.uploadUnsignedArtifacts, true) }}: - - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml + - ${{ if eq(parameters.uploadIntermediateArtifacts, true) }}: + - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml parameters: name: ${{ parameters.platform }}${{ parameters.nameSuffix }} diff --git a/eng/slngen.targets b/eng/slngen.targets new file mode 100644 index 000000000000..39863abafb1e --- /dev/null +++ b/eng/slngen.targets @@ -0,0 +1,13 @@ + + + ref + tests + src + + + false + + + true + + \ No newline at end of file diff --git a/eng/targetframeworksuffix.props b/eng/targetframeworksuffix.props index 2525ce954a35..e4473df46fa7 100644 --- a/eng/targetframeworksuffix.props +++ b/eng/targetframeworksuffix.props @@ -77,7 +77,7 @@ true - true + true illumos diff --git a/eng/testing/RunnerTemplate.cmd b/eng/testing/RunnerTemplate.cmd index 10737eabe709..9e6c6d1e7866 100644 --- a/eng/testing/RunnerTemplate.cmd +++ b/eng/testing/RunnerTemplate.cmd @@ -56,7 +56,13 @@ pushd %EXECUTION_DIR% @echo off popd echo ----- end %DATE% %TIME% ----- exit code %ERRORLEVEL% ---------------------------------------------------------- -exit /b %ERRORLEVEL% +:: The helix work item should not exit with non-zero if tests ran and produced results +:: The special console runner for runtime returns 1 when tests fail +if %ERRORLEVEL%==1 ( + exit /b 0 +) else ( + exit /b %ERRORLEVEL% +) :: ========================= END Test Execution ================================= :usage diff --git a/eng/testing/RunnerTemplate.sh b/eng/testing/RunnerTemplate.sh index dbd5f4741a5d..e4593e82433e 100755 --- a/eng/testing/RunnerTemplate.sh +++ b/eng/testing/RunnerTemplate.sh @@ -204,4 +204,10 @@ if [[ "$(uname -s)" == "Linux" && $test_exitcode -ne 0 ]]; then fi popd >/dev/null # ======================== END Core File Inspection ========================== -exit $test_exitcode +# The helix work item should not exit with non-zero if tests ran and produced results +# The special console runner for runtime returns 1 when tests fail +if [ "$test_exitcode" == "1" ]; then + exit 0 +else + exit $test_exitcode +fi diff --git a/eng/testing/linker/SupportFiles/Directory.Build.props b/eng/testing/linker/SupportFiles/Directory.Build.props index 4f2c8b61a1e1..a2276bf20f94 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.props +++ b/eng/testing/linker/SupportFiles/Directory.Build.props @@ -8,4 +8,8 @@ true + + + + diff --git a/eng/testing/linker/SupportFiles/Directory.Build.targets b/eng/testing/linker/SupportFiles/Directory.Build.targets index 3318b0f4010f..0a59507942ab 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.targets +++ b/eng/testing/linker/SupportFiles/Directory.Build.targets @@ -1,18 +1,20 @@ - + - + + DependsOnTargets="ResolveFrameworkReferences"> @@ -31,23 +33,23 @@ - + + TargetingPackVersion="$(MicrosoftNETCoreAppVersion)" /> diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template index d335783fc44f..eddb438480c7 100644 --- a/eng/testing/linker/project.csproj.template +++ b/eng/testing/linker/project.csproj.template @@ -7,6 +7,7 @@ {RuntimePackDir} {TargetingPackDir} {NetCoreAppMaximumVersion} + {MicrosoftNETCoreAppVersion} IL2026 diff --git a/eng/testing/linker/trimmingTests.targets b/eng/testing/linker/trimmingTests.targets index 4a9152fbd5f9..c88f9e204e9f 100644 --- a/eng/testing/linker/trimmingTests.targets +++ b/eng/testing/linker/trimmingTests.targets @@ -2,7 +2,6 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'trimmingTests')) $([MSBuild]::NormalizeDirectory('$(TrimmingTestDir)', 'projects')) - $([MSBuild]::NormalizePath('$(DotNetRoot)', 'dotnet')) $(MSBuildThisFileDirectory)project.csproj.template @@ -73,6 +72,7 @@ - "$(TestDotNetPath)" + "$(DotNetTool)" $(TestPublishTrimmedCommand) build /t:PublishTrimmed $(TestPublishTrimmedCommand) /nr:false $(TestPublishTrimmedCommand) /warnaserror diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 97096ea948ae..ef94fd017269 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -52,6 +52,7 @@ ProjectName="$(AssemblyName)" MonoRuntimeHeaders="$(MicrosoftNetCoreAppRuntimePackNativeDir)include\mono-2.0" MainLibraryFileName="AndroidTestRunner.dll" + ForceInterpreter="$(MonoForceInterpreter)" StripDebugSymbols="False" OutputDir="$(BundleDir)" SourceDir="$(PublishDir)"> @@ -99,6 +100,8 @@ Mode="Full" OutputType="AsmOnly" Assemblies="@(AotInputAssemblies)" + AotModulesTablePath="$(BundleDir)\modules.m" + AotModulesTableLanguage="ObjC" UseLLVM="$(MonoEnableLLVM)" LLVMPath="$(MicrosoftNetCoreAppRuntimePackNativeDir)cross"> @@ -113,6 +116,7 @@ MonoRuntimeHeaders="$(MicrosoftNetCoreAppRuntimePackNativeDir)include\mono-2.0" Assemblies="@(BundleAssemblies)" MainLibraryFileName="AppleTestRunner.dll" + ForceInterpreter="$(MonoForceInterpreter)" UseConsoleUITemplate="True" GenerateXcodeProject="True" BuildAppBundle="True" diff --git a/eng/testing/tests.props b/eng/testing/tests.props index 65664f7f7499..bf54e899d4d1 100644 --- a/eng/testing/tests.props +++ b/eng/testing/tests.props @@ -32,7 +32,7 @@ - + diff --git a/eng/versioning.targets b/eng/versioning.targets index 3177b48b0ba6..98fd08c85010 100644 --- a/eng/versioning.targets +++ b/eng/versioning.targets @@ -29,6 +29,15 @@ + + true + + + + + + + <_unsupportedOSPlatforms Include="$(UnsupportedOSPlatforms)" /> diff --git a/global.json b/global.json index 31ac6fc0ef7c..c66815d17070 100644 --- a/global.json +++ b/global.json @@ -12,12 +12,12 @@ "python3": "3.7.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.20552.5", - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.20552.5", - "Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "6.0.0-beta.20552.5", - "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.20560.1", - "Microsoft.FIX-85B6-MERGE-9C38-CONFLICT": "1.0.0", - "Microsoft.NET.Sdk.IL": "5.0.0-preview.8.20359.4", + "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.20573.2", + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.20573.2", + "Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "6.0.0-beta.20573.2", + "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.20573.2", + "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.20552.5", + "Microsoft.NET.Sdk.IL": "6.0.0-alpha.1.20557.2", "Microsoft.Build.NoTargets": "2.0.1", "Microsoft.Build.Traversal": "2.1.1" } diff --git a/src/coreclr/clr.featuredefines.props b/src/coreclr/clr.featuredefines.props index 6c4c13243e12..a205c2d280dd 100644 --- a/src/coreclr/clr.featuredefines.props +++ b/src/coreclr/clr.featuredefines.props @@ -36,12 +36,6 @@ true - - - true - - - $(DefineConstants);FEATURE_ARRAYSTUB_AS_IL $(DefineConstants);FEATURE_MULTICASTSTUB_AS_IL @@ -60,7 +54,6 @@ $(DefineConstants);FEATURE_TYPEEQUIVALENCE $(DefineConstants);FEATURE_BASICFREEZE $(DefineConstants);FEATURE_PORTABLE_SHUFFLE_THUNKS - $(DefineConstants);FEATURE_UTF8STRING $(DefineConstants);PROFILING_SUPPORTED $(DefineConstants);FEATURE_PROFAPI_ATTACH_DETACH diff --git a/src/coreclr/clrdefinitions.cmake b/src/coreclr/clrdefinitions.cmake index eafe212786d8..d22738910023 100644 --- a/src/coreclr/clrdefinitions.cmake +++ b/src/coreclr/clrdefinitions.cmake @@ -1,11 +1,5 @@ include(clrfeatures.cmake) -# Features we're currently flighting, but don't intend to ship in officially supported releases -if (PRERELEASE) - add_definitions(-DFEATURE_UTF8STRING) - # add_definitions(-DFEATURE_XXX) -endif (PRERELEASE) - add_compile_definitions($<$>:DACCESS_COMPILE>) add_compile_definitions($<$>:CROSSGEN_COMPILE>) add_compile_definitions($<$>:CROSS_COMPILE>) diff --git a/src/coreclr/crossgen-corelib.proj b/src/coreclr/crossgen-corelib.proj index bf26cd259a8c..f4ff62f016f2 100644 --- a/src/coreclr/crossgen-corelib.proj +++ b/src/coreclr/crossgen-corelib.proj @@ -3,21 +3,107 @@ - - <_CoreClrBuildArg Condition="'$(TargetArchitecture)' != ''" Include="-$(TargetArchitecture)" /> - <_CoreClrBuildArg Include="-$(Configuration.ToLower())" /> - <_CoreClrBuildArg Condition="!$([MSBuild]::IsOsPlatform(Windows))" Include="-os $(TargetOS)" /> - <_CoreClrBuildArg Condition="'$(CrossBuild)' == 'true'" Include="-cross" /> - <_CoreClrBuildArg Condition="'$(PortableBuild)' != 'true'" Include="-portablebuild=false" /> - + + + false + + $(TargetOS).$(TargetArchitecture).$(Configuration) + $(RepoRoot)\artifacts + $(RootBinDir)\log + $(RootBinDir)\bin\coreclr\$(OSPlatformConfig) + $(RootBinDir)\obj\coreclr\$(OSPlatformConfig) + $(LogsDir)\CrossgenCoreLib_$(TargetOS)__$(TargetArchitecture)__$(Configuration).log + .exe + $(RepoRoot)/dotnet.sh + $(RepoRoot)\dotnet.cmd + + System.Private.CoreLib + $(BinDir)\IL\$(CoreLibAssemblyName).dll + $(BinDir)\$(CoreLibAssemblyName).dll + + + + + + + x64 + x86 + $(BuildArchitecture) + + + + true + false + + false + true + + false + true + + $(BinDir)\$(CrossDir)\crossgen$(ExeExtension) + $(CrossGen1Cmd) /nologo + $(CrossGen1Cmd) + $(CrossGen1Cmd) /Platform_Assemblies_Paths "$(BinDir)\IL" + + + + + - <_CoreClrBuildScript Condition="$([MSBuild]::IsOsPlatform(Windows))">crossgen-corelib.cmd - <_CoreClrBuildScript Condition="!$([MSBuild]::IsOsPlatform(Windows))">crossgen-corelib.sh + $(DotNetCli) $(BinDir)\$(CrossDir)\crossgen2\crossgen2.dll + $(CrossGenDllCmd) -o:$(CoreLibOutputPath) + $(CrossGenDllCmd) -r:$(BinDir)\IL\*.dll + $(CrossGenDllCmd) --targetarch:$(TargetArchitecture) + $(CrossGenDllCmd) -O + $(CrossGenDllCmd) $(CoreLibInputPath) + + + + $(CrossGen1Cmd) /out "$(CoreLibOutputPath)" + $(CrossGenDllCmd) "$(CoreLibInputPath)" + + + + + + $(CrossGen1Cmd) /CreatePerfMap "$(BinDir)" + $(CrossGenPerfMapCmd) "$(CoreLibOutputPath)" + + + + $(DotNetCli) $(BinDir)\r2rdump\r2rdump.dll + $(CrossGenPdbCmd) --create-pdb + $(CrossGenPdbCmd) --pdb-path:$(BinDir)\PDB + $(CrossGenPdbCmd) --in:$(CoreLibOutputPath) + + + call $(RepoRoot)\src\coreclr\setup_vs_tools.cmd && + + $(VsSetupCmd) $(CrossGen1Cmd) /CreatePdb "$(BinDir)\PDB" + $(CrossGenPdbCmd) "$(CoreLibOutputPath)" + + + + + + + + + + + + + + + - - + + diff --git a/src/coreclr/dir.common.props b/src/coreclr/dir.common.props index ebaf9645134a..08e71350e982 100644 --- a/src/coreclr/dir.common.props +++ b/src/coreclr/dir.common.props @@ -50,22 +50,6 @@ $(PackageVersion) - - - true - true - true - true - true - true - true - - true - - - $(__DistroRid) - - Portable diff --git a/src/coreclr/scripts/superpmi.py b/src/coreclr/scripts/superpmi.py index 2540559eff58..dd0b4cf8a9e3 100755 --- a/src/coreclr/scripts/superpmi.py +++ b/src/coreclr/scripts/superpmi.py @@ -141,7 +141,7 @@ superpmi_collect_help = """\ Command to run SuperPMI collect over. Note that there cannot be any dotnet CLI commands -invoked inside this command, as they will fail due to the shim altjit being set. +invoked inside this command, as they will fail due to the shim JIT being set. """ replay_mch_files_help = """\ @@ -750,9 +750,7 @@ def __collect_mc_files__(self): env_copy = os.environ.copy() env_copy["SuperPMIShimLogPath"] = self.temp_location env_copy["SuperPMIShimPath"] = self.jit_path - env_copy["COMPlus_AltJit"] = "*" - env_copy["COMPlus_AltJitNgen"] = "*" - env_copy["COMPlus_AltJitName"] = self.collection_shim_name + env_copy["COMPlus_JitName"] = self.collection_shim_name env_copy["COMPlus_EnableExtraSuperPmiQueries"] = "1" env_copy["COMPlus_TieredCompilation"] = "0" @@ -764,9 +762,7 @@ def __collect_mc_files__(self): logging.debug("") print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "SuperPMIShimLogPath", self.temp_location) print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "SuperPMIShimPath", self.jit_path) - print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_AltJit", "*") - print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_AltJitNgen", "*") - print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_AltJitName", self.collection_shim_name) + print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_JitName", self.collection_shim_name) print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_EnableExtraSuperPmiQueries", "1") print_platform_specific_environment_vars(logging.DEBUG, self.coreclr_args, "COMPlus_TieredCompilation", "0") if self.coreclr_args.use_zapdisable: @@ -1072,36 +1068,38 @@ def replay(self): logging.debug("Temp Location: %s", temp_location) logging.debug("") - flags = [ + # `repro_flags` are the subset of flags we tell the user to pass to superpmi when reproducing + # a failure. This won't include things like "-p" for parallelism or "-r" to create a repro .mc file. + repro_flags = [] + + common_flags = [ "-v", "ew", # only display errors and warnings "-r", os.path.join(temp_location, "repro") # Repro name, create .mc repro files ] - altjit_string = "*" if self.coreclr_args.altjit else "" - altjit_replay_flags = [ - "-jitoption", "force", "AltJit=" + altjit_string, - "-jitoption", "force", "AltJitNgen=" + altjit_string, - "-jitoption", "force", "EnableExtraSuperPmiQueries=0" - ] - flags += altjit_replay_flags + if self.coreclr_args.altjit: + repro_flags += [ + "-jitoption", "force", "AltJit=*", + "-jitoption", "force", "AltJitNgen=*" + ] + if self.coreclr_args.arch == "arm": + repro_flags += [ "-target", "arm" ] + elif self.coreclr_args.arch == "arm64": + repro_flags += [ "-target", "arm64" ] if not self.coreclr_args.sequential: - flags += [ "-p" ] + common_flags += [ "-p" ] if self.coreclr_args.break_on_assert: - flags += [ "-boa" ] + common_flags += [ "-boa" ] if self.coreclr_args.break_on_error: - flags += [ "-boe" ] + common_flags += [ "-boe" ] if self.coreclr_args.spmi_log_file is not None: - flags += [ "-w", self.coreclr_args.spmi_log_file ] + common_flags += [ "-w", self.coreclr_args.spmi_log_file ] - if self.coreclr_args.altjit: - if self.coreclr_args.arch == "arm": - flags += [ "-target", "arm" ] - elif self.coreclr_args.arch == "arm64": - flags += [ "-target", "arm64" ] + common_flags += repro_flags # For each MCH file that we are going to replay, do the replay and replay post-processing. # @@ -1117,6 +1115,8 @@ def replay(self): logging.info("Running SuperPMI replay of %s", mch_file) + flags = common_flags + fail_mcl_file = os.path.join(temp_location, os.path.basename(mch_file) + "_fail.mcl") flags += [ "-f", fail_mcl_file, # Failing mc List @@ -1136,7 +1136,7 @@ def replay(self): if return_code == 0: logging.warning("Warning: SuperPMI returned a zero exit code, but generated a non-zero-sized mcl file") print_fail_mcl_file_method_numbers(fail_mcl_file) - repro_base_command_line = "{} {} {}".format(self.superpmi_path, " ".join(altjit_replay_flags), self.jit_path) + repro_base_command_line = "{} {} {}".format(self.superpmi_path, " ".join(repro_flags), self.jit_path) save_repro_mc_files(temp_location, self.coreclr_args, repro_base_command_line) if not self.coreclr_args.skip_cleanup: @@ -1238,22 +1238,27 @@ def replay_with_asm_diffs(self): "COMPlus_JitDump": "*", "COMPlus_NgenDump": "*" } - altjit_string = "*" if self.coreclr_args.altjit else "" - - altjit_asm_diffs_flags = [ - "-jitoption", "force", "AltJit=" + altjit_string, - "-jitoption", "force", "AltJitNgen=" + altjit_string, - "-jitoption", "force", "EnableExtraSuperPmiQueries=0", - "-jit2option", "force", "AltJit=" + altjit_string, - "-jit2option", "force", "AltJitNgen=" + altjit_string, - "-jit2option", "force", "EnableExtraSuperPmiQueries=0" - ] + altjit_asm_diffs_flags = [] + altjit_replay_flags = [] + + if self.coreclr_args.altjit: + target_flags = [] + if self.coreclr_args.arch == "arm": + target_flags += [ "-target", "arm" ] + elif self.coreclr_args.arch == "arm64": + target_flags += [ "-target", "arm64" ] + + altjit_asm_diffs_flags = target_flags + [ + "-jitoption", "force", "AltJit=*", + "-jitoption", "force", "AltJitNgen=*", + "-jit2option", "force", "AltJit=*", + "-jit2option", "force", "AltJitNgen=*" + ] - altjit_replay_flags = [ - "-jitoption", "force", "AltJit=" + altjit_string, - "-jitoption", "force", "AltJitNgen=" + altjit_string, - "-jitoption", "force", "EnableExtraSuperPmiQueries=0" - ] + altjit_replay_flags = target_flags + [ + "-jitoption", "force", "AltJit=*", + "-jitoption", "force", "AltJitNgen=*" + ] # Keep track if any MCH file replay had asm diffs files_with_asm_diffs = [] @@ -1304,12 +1309,6 @@ def replay_with_asm_diffs(self): if self.coreclr_args.spmi_log_file is not None: flags += [ "-w", self.coreclr_args.spmi_log_file ] - if self.coreclr_args.altjit: - if self.coreclr_args.arch == "arm": - flags += [ "-target", "arm" ] - elif self.coreclr_args.arch == "arm64": - flags += [ "-target", "arm64" ] - # Change the working directory to the Core_Root we will call SuperPMI from. # This is done to allow libcoredistools to be loaded correctly on unix # as the loadlibrary path will be relative to the current directory. @@ -2699,7 +2698,7 @@ def verify_replay_common_args(): "collection_args", lambda unused: True, "Unable to set collection_args", - modify_arg=lambda collection_args: collection_args.split(" ") if collection_args is not None else collection_args) + modify_arg=lambda collection_args: collection_args.split(" ") if collection_args is not None else []) coreclr_args.verify(args, "pmi", @@ -2720,7 +2719,8 @@ def verify_replay_common_args(): coreclr_args.verify(args, "output_mch_path", lambda output_mch_path: output_mch_path is None or (not os.path.isdir(os.path.abspath(output_mch_path)) and not os.path.isfile(os.path.abspath(output_mch_path))), - "Invalid output_mch_path; is it an existing directory or file?") + "Invalid output_mch_path \"{}\"; is it an existing directory or file?".format, + modify_arg=lambda output_mch_path: None if output_mch_path is None else os.path.abspath(output_mch_path)) coreclr_args.verify(args, "merge_mch_files", @@ -3003,7 +3003,8 @@ def verify_replay_common_args(): coreclr_args.verify(args, "output_mch_path", lambda output_mch_path: not os.path.isdir(os.path.abspath(output_mch_path)) and not os.path.isfile(os.path.abspath(output_mch_path)), - "Invalid output_mch_path; is it an existing directory or file?") + "Invalid output_mch_path \"{}\"; is it an existing directory or file?".format, + modify_arg=lambda output_mch_path: os.path.abspath(output_mch_path)) coreclr_args.verify(args, "pattern", diff --git a/src/coreclr/src/.nuget/Directory.Build.props b/src/coreclr/src/.nuget/Directory.Build.props index 3473cbf83b52..1e0b60ec47c4 100644 --- a/src/coreclr/src/.nuget/Directory.Build.props +++ b/src/coreclr/src/.nuget/Directory.Build.props @@ -20,36 +20,14 @@ true - - <_parseDistroRid>$(__DistroRid) - <_parseDistroRid Condition="'$(_parseDistroRid)' == '' and '$(TargetOS)' == 'OSX'">osx.10.12-x64 - <_distroRidIndex>$(_parseDistroRid.LastIndexOfAny("-")) - <_archRidIndex>$([MSBuild]::Add($(_distroRidIndex), 1)) - $(_parseDistroRid.SubString(0, $(_distroRidIndex))) - win10 - - $(_parseDistroRid.SubString($(_archRidIndex))) - $(Platform) - - $(OSRid) - windows;OSX;Android;Linux;FreeBSD;NetBSD;illumos;Solaris ;$(SupportedPackageOSGroups); - - <_runtimeOSVersionIndex>$(RuntimeOS.IndexOfAny(".-0123456789")) - <_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' != '-1'">$(RuntimeOS.SubString(0, $(_runtimeOSVersionIndex))) - <_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' == '-1'">$(RuntimeOS) <_isSupportedOSGroup>true - <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'osx'">OSX - <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'android'">Android - <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'win'">windows <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(TargetOS)' != ''">$(TargetOS) <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == ''">Linux @@ -73,92 +51,6 @@ true - - - - - - $(OutputRID) - - - - - - win-$(TargetArchitecture) - - - - - osx.10.12-$(TargetArchitecture) - - osx-$(TargetArchitecture) - - - - - freebsd.11-$(TargetArchitecture) - - freebsd-$(TargetArchitecture) - - - - - netbsd-$(TargetArchitecture) - - netbsd-$(TargetArchitecture) - - - - - illumos-$(TargetArchitecture) - - illumos-$(TargetArchitecture) - - - - - solaris-$(TargetArchitecture) - - solaris-$(TargetArchitecture) - - - - - android.21-$(TargetArchitecture) - - android-$(TargetArchitecture) - - - - - $(OSRid)-$(TargetArchitecture) - - linux-$(TargetArchitecture) - - - - - $(OSRid)-$(TargetArchitecture) - - linux-musl-$(TargetArchitecture) - - - - - $(RuntimeOS)-$(TargetArchitecture) - - - - - $(RuntimeOS)-$(TargetArchitecture) - - linux-$(TargetArchitecture) - - - - - - diff --git a/src/coreclr/src/.nuget/Directory.Build.targets b/src/coreclr/src/.nuget/Directory.Build.targets index f9886d59b0bb..eeab2931cf83 100644 --- a/src/coreclr/src/.nuget/Directory.Build.targets +++ b/src/coreclr/src/.nuget/Directory.Build.targets @@ -9,8 +9,8 @@ Finds symbol files and injects them into the package build. --> - - + + @@ -42,7 +42,7 @@ - + diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj b/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj index ff68beebb047..744c17ad28bb 100644 --- a/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj +++ b/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj @@ -8,7 +8,7 @@ - + diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj b/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj index 116da5fd20dd..8c6321fc7fd8 100644 --- a/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj +++ b/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj @@ -8,7 +8,7 @@ - + diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj b/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj index aad674a25040..81b519f74bce 100644 --- a/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj +++ b/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj @@ -8,7 +8,7 @@ - + diff --git a/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj index 304b50f06676..4de4ac0aa586 100644 --- a/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj +++ b/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj @@ -52,6 +52,7 @@ true $(OutputPath)$(MSBuildProjectName).xml + src @@ -253,9 +254,6 @@ - - - diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs index 7a44e3cce019..a9505dc64666 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs @@ -377,7 +377,7 @@ private static Type[] GetIndexParameterTypes(PropertyInfo element) return indexParamTypes; } - return Array.Empty(); + return Type.EmptyTypes; } private static void AddAttributesToList(List attributeList, Attribute[] attributes, Dictionary types) @@ -430,27 +430,27 @@ private static Attribute[] CreateAttributeArrayHelper(Type elementType, int elem #region Public Statics #region MemberInfo - public static Attribute[] GetCustomAttributes(MemberInfo element, Type type) + public static Attribute[] GetCustomAttributes(MemberInfo element, Type attributeType) { - return GetCustomAttributes(element, type, true); + return GetCustomAttributes(element, attributeType, true); } - public static Attribute[] GetCustomAttributes(MemberInfo element, Type type, bool inherit) + public static Attribute[] GetCustomAttributes(MemberInfo element, Type attributeType, bool inherit) { if (element == null) throw new ArgumentNullException(nameof(element)); - if (type == null) - throw new ArgumentNullException(nameof(type)); + if (attributeType == null) + throw new ArgumentNullException(nameof(attributeType)); - if (!type.IsSubclassOf(typeof(Attribute)) && type != typeof(Attribute)) + if (!attributeType.IsSubclassOf(typeof(Attribute)) && attributeType != typeof(Attribute)) throw new ArgumentException(SR.Argument_MustHaveAttributeBaseClass); return element.MemberType switch { - MemberTypes.Property => InternalGetCustomAttributes((PropertyInfo)element, type, inherit), - MemberTypes.Event => InternalGetCustomAttributes((EventInfo)element, type, inherit), - _ => (element.GetCustomAttributes(type, inherit) as Attribute[])!, + MemberTypes.Property => InternalGetCustomAttributes((PropertyInfo)element, attributeType, inherit), + MemberTypes.Event => InternalGetCustomAttributes((EventInfo)element, attributeType, inherit), + _ => (element.GetCustomAttributes(attributeType, inherit) as Attribute[])!, }; } diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs index 5e7dd7ddc453..da6adab43e2f 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs @@ -27,7 +27,7 @@ private static IArraySortHelper CreateArraySortHelper() if (typeof(IComparable).IsAssignableFrom(typeof(T))) { - defaultArraySortHelper = (IArraySortHelper)RuntimeTypeHandle.Allocate(typeof(GenericArraySortHelper).TypeHandle.Instantiate(new Type[] { typeof(T) })); + defaultArraySortHelper = (IArraySortHelper)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericArraySortHelper), (RuntimeType)typeof(T)); } else { @@ -62,7 +62,7 @@ internal partial class ArraySortHelper if (typeof(IComparable).IsAssignableFrom(typeof(TKey))) { - defaultArraySortHelper = (IArraySortHelper)RuntimeTypeHandle.Allocate(typeof(GenericArraySortHelper).TypeHandle.Instantiate(new Type[] { typeof(TKey), typeof(TValue) })); + defaultArraySortHelper = (IArraySortHelper)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericArraySortHelper), (RuntimeType)typeof(TKey), (RuntimeType)typeof(TValue)); } else { diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/GC.cs b/src/coreclr/src/System.Private.CoreLib/src/System/GC.cs index d932d18d9fc9..bcbf042fd1b2 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/GC.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/GC.cs @@ -485,7 +485,7 @@ private static bool StartNoGCRegionWorker(long totalSize, bool hasLohSize, long throw new InvalidOperationException("The NoGCRegion mode was already in progress"); case StartNoGCRegionStatus.AmountTooLarge: throw new ArgumentOutOfRangeException(nameof(totalSize), - "totalSize is too large. For more information about setting the maximum size, see \"Latency Modes\" in http://go.microsoft.com/fwlink/?LinkId=522706"); + "totalSize is too large. For more information about setting the maximum size, see \"Latency Modes\" in https://go.microsoft.com/fwlink/?LinkId=522706"); } Debug.Assert(status == StartNoGCRegionStatus.Succeeded); diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs index 49f4cedbeef7..41534ab06518 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs @@ -1115,21 +1115,33 @@ internal static bool IsAttributeDefined(RuntimeModule decoratedModule, int decor private static bool IsCustomAttributeDefined( RuntimeModule decoratedModule, int decoratedMetadataToken, RuntimeType? attributeFilterType, int attributeCtorToken, bool mustBeInheritable) { - CustomAttributeRecord[] car = CustomAttributeData.GetCustomAttributeRecords(decoratedModule, decoratedMetadataToken); + MetadataImport scope = decoratedModule.MetadataImport; + + scope.EnumCustomAttributes(decoratedMetadataToken, out MetadataEnumResult attributeTokens); + + if (attributeTokens.Length == 0) + { + return false; + } + CustomAttributeRecord record = default; if (attributeFilterType != null) { Debug.Assert(attributeCtorToken == 0); - MetadataImport scope = decoratedModule.MetadataImport; RuntimeType.ListBuilder derivedAttributes = default; - for (int i = 0; i < car.Length; i++) + for (int i = 0; i < attributeTokens.Length; i++) { - if (FilterCustomAttributeRecord(car[i].tkCtor, in scope, + scope.GetCustomAttributeProps(attributeTokens[i], + out record.tkCtor.Value, out record.blob); + + if (FilterCustomAttributeRecord(record.tkCtor, in scope, decoratedModule, decoratedMetadataToken, attributeFilterType, mustBeInheritable, ref derivedAttributes, out _, out _, out _)) + { return true; + } } } else @@ -1137,10 +1149,15 @@ internal static bool IsAttributeDefined(RuntimeModule decoratedModule, int decor Debug.Assert(attributeFilterType == null); Debug.Assert(!MetadataToken.IsNullToken(attributeCtorToken)); - for (int i = 0; i < car.Length; i++) + for (int i = 0; i < attributeTokens.Length; i++) { - if (car[i].tkCtor == attributeCtorToken) + scope.GetCustomAttributeProps(attributeTokens[i], + out record.tkCtor.Value, out record.blob); + + if (record.tkCtor == attributeCtorToken) + { return true; + } } } diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs index 51487b02a4c0..586e1e55929b 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs @@ -168,7 +168,7 @@ public CustomAttributeBuilder(ConstructorInfo con, object?[] constructorArgs, Pr } // Make sure the property's type can take the given value. - // Note that there will be no coersion. + // Note that there will be no coercion. if (propertyValue != null) { VerifyTypeAndPassedObjectType(propType, propertyValue.GetType(), $"{nameof(propertyValues)}[{i}]"); @@ -222,7 +222,7 @@ public CustomAttributeBuilder(ConstructorInfo con, object?[] constructorArgs, Pr } // Make sure the field's type can take the given value. - // Note that there will be no coersion. + // Note that there will be no coercion. if (fieldValue != null) { VerifyTypeAndPassedObjectType(fldType, fieldValue.GetType(), $"{nameof(fieldValues)}[{i}]"); @@ -271,9 +271,7 @@ private bool ValidateType(Type t) } if (t.IsArray) { - if (t.GetArrayRank() != 1) - return false; - return ValidateType(t.GetElementType()!); + return t.GetArrayRank() == 1 && ValidateType(t.GetElementType()!); } return t == typeof(object); } diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs index 693a2937c152..3e11afaec3e1 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs @@ -482,20 +482,12 @@ private int GetMemberRefToken(MethodBase methodInfo, Type[]? optionalParameterTy Type[][]? optionalCustomModifiers, Type[]? optionalParameterTypes) { - SignatureHelper sig = SignatureHelper.GetMethodSigHelper(call, returnType); - if (parameterTypes != null) - { - for (int i = 0; i < parameterTypes.Length; i++) - { - sig.AddArgument(parameterTypes[i], requiredCustomModifiers![i], optionalCustomModifiers![i]); - } - } + SignatureHelper sig = SignatureHelper.GetMethodSigHelper(null, call, returnType, null, null, parameterTypes, requiredCustomModifiers, optionalCustomModifiers); + if (optionalParameterTypes != null && optionalParameterTypes.Length != 0) { - // add the sentinel sig.AddSentinel(); - foreach (Type t in optionalParameterTypes) - sig.AddArgument(t); + sig.AddArguments(optionalParameterTypes, null, null); } return sig; } diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs index e99c584074c1..0807751b2999 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs @@ -268,7 +268,7 @@ internal void ReleaseBakedStructures() m_exceptions = null; } - internal override Type[] GetParameterTypes() => m_parameterTypes ??= Array.Empty(); + internal override Type[] GetParameterTypes() => m_parameterTypes ??= Type.EmptyTypes; internal static Type? GetMethodBaseReturnType(MethodBase? method) { @@ -306,7 +306,7 @@ internal void SetToken(int token) internal SignatureHelper GetMethodSignature() { - m_parameterTypes ??= Array.Empty(); + m_parameterTypes ??= Type.EmptyTypes; m_signature = SignatureHelper.GetMethodSigHelper(m_module, m_callingConvention, m_inst != null ? m_inst.Length : 0, m_returnType, m_returnTypeRequiredCustomModifiers, m_returnTypeOptionalCustomModifiers, @@ -538,7 +538,7 @@ public override bool IsDefined(Type attributeType, bool inherit) public override bool IsGenericMethod => m_inst != null; - public override Type[] GetGenericArguments() => m_inst ?? Array.Empty(); + public override Type[] GetGenericArguments() => m_inst ?? Type.EmptyTypes; public override MethodInfo MakeGenericMethod(params Type[] typeArguments) { diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs index 6127c5947806..5e1f30842308 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs @@ -417,32 +417,14 @@ private int GetMemberRefToken(MethodBase method, Type[]? optionalParameterTypes) internal SignatureHelper GetMemberRefSignature(CallingConventions call, Type? returnType, Type[]? parameterTypes, Type[][]? requiredCustomModifiers, Type[][]? optionalCustomModifiers, - IEnumerable? optionalParameterTypes, int cGenericParameters) + Type[]? optionalParameterTypes, int cGenericParameters) { - SignatureHelper sig = SignatureHelper.GetMethodSigHelper(this, call, returnType, cGenericParameters); + SignatureHelper sig = SignatureHelper.GetMethodSigHelper(this, call, cGenericParameters, returnType, null, null, parameterTypes, requiredCustomModifiers, optionalCustomModifiers); - if (parameterTypes != null) + if (optionalParameterTypes != null && optionalParameterTypes.Length != 0) { - for (int i = 0; i < parameterTypes.Length; i++) - { - sig.AddArgument(parameterTypes[i], requiredCustomModifiers![i], optionalCustomModifiers![i]); - } - } - - if (optionalParameterTypes != null) - { - int i = 0; - foreach (Type type in optionalParameterTypes) - { - // add the sentinel - if (i == 0) - { - sig.AddSentinel(); - } - - sig.AddArgument(type); - i++; - } + sig.AddSentinel(); + sig.AddArguments(optionalParameterTypes, null, null); } return sig; diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs index 9e9aab8fcac4..10ae4bca5f7d 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs @@ -39,7 +39,7 @@ internal sealed class SymbolMethod : MethodInfo } else { - m_parameterTypes = Array.Empty(); + m_parameterTypes = Type.EmptyTypes; } m_module = mod; diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs index d485dc69c1cc..d87985db96d3 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs @@ -846,7 +846,7 @@ public override Type[] GetInterfaces() if (m_typeInterfaces == null) { - return Array.Empty(); + return Type.EmptyTypes; } return m_typeInterfaces.ToArray(); @@ -1188,7 +1188,7 @@ public override Type MakeGenericType(params Type[] typeArguments) return TypeBuilderInstantiation.MakeGenericType(this, typeArguments); } - public override Type[] GetGenericArguments() => m_inst ?? Array.Empty(); + public override Type[] GetGenericArguments() => m_inst ?? Type.EmptyTypes; // If a TypeBuilder is generic, it must be a generic type definition // All instantiated generic types are TypeBuilderInstantiation. diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs index e4d240d598ba..7d5a8f9f64cc 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs @@ -113,12 +113,12 @@ public override Type FieldType public override Type[] GetRequiredCustomModifiers() { - return Array.Empty(); + return Type.EmptyTypes; } public override Type[] GetOptionalCustomModifiers() { - return Array.Empty(); + return Type.EmptyTypes; } #endregion diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs index 9dfffd64a2e2..e0d87e7821d8 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs @@ -579,7 +579,7 @@ public override MethodInfo MakeGenericMethod(params Type[] methodInstantiation) RuntimeMethodHandle.GetMethodInstantiationInternal(this); public override Type[] GetGenericArguments() => - RuntimeMethodHandle.GetMethodInstantiationPublic(this) ?? Array.Empty(); + RuntimeMethodHandle.GetMethodInstantiationPublic(this) ?? Type.EmptyTypes; public override MethodInfo GetGenericMethodDefinition() { diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs index 9fbf8f9c0837..77b2d5e8f5a7 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs @@ -15,24 +15,26 @@ internal static ParameterInfo[] GetParameters(IRuntimeMethodInfo method, MemberI { Debug.Assert(method is RuntimeMethodInfo || method is RuntimeConstructorInfo); - return GetParameters(method, member, sig, out _, false); + return GetParameters(method, member, sig, out _, fetchReturnParameter: false); } internal static ParameterInfo GetReturnParameter(IRuntimeMethodInfo method, MemberInfo member, Signature sig) { Debug.Assert(method is RuntimeMethodInfo || method is RuntimeConstructorInfo); - ParameterInfo returnParameter; - GetParameters(method, member, sig, out returnParameter!, true); - return returnParameter; + GetParameters(method, member, sig, out ParameterInfo? returnParameter, fetchReturnParameter: true); + return returnParameter!; } - internal static ParameterInfo[] GetParameters( + private static ParameterInfo[] GetParameters( IRuntimeMethodInfo methodHandle, MemberInfo member, Signature sig, out ParameterInfo? returnParameter, bool fetchReturnParameter) { returnParameter = null; int sigArgCount = sig.Arguments.Length; - ParameterInfo[] args = fetchReturnParameter ? null! : new ParameterInfo[sigArgCount]; + ParameterInfo[] args = + fetchReturnParameter ? null! : + sigArgCount == 0 ? Array.Empty() : + new ParameterInfo[sigArgCount]; int tkMethodDef = RuntimeMethodHandle.GetMethodDef(methodHandle); int cParamDefs = 0; diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs index 6b6e4639bfec..95de9b788bfc 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs @@ -80,6 +80,9 @@ public static void PrepareMethod(RuntimeMethodHandle method) public static void PrepareMethod(RuntimeMethodHandle method, RuntimeTypeHandle[]? instantiation) { + // defensive copy of user-provided array, per CopyRuntimeTypeHandles contract + instantiation = (RuntimeTypeHandle[]?)instantiation?.Clone(); + unsafe { IntPtr[]? instantiationHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(instantiation, out int length); @@ -287,8 +290,9 @@ public static IntPtr AllocateTypeAssociatedMemory(Type type, int size) private static extern IntPtr AllocTailCallArgBuffer(int size, IntPtr gcDesc); [MethodImpl(MethodImplOptions.InternalCall)] - private static unsafe extern TailCallTls* GetTailCallInfo(IntPtr retAddrSlot, IntPtr* retAddr); + private static extern unsafe TailCallTls* GetTailCallInfo(IntPtr retAddrSlot, IntPtr* retAddr); + [StackTraceHidden] private static unsafe void DispatchTailCalls( IntPtr callersRetAddrSlot, delegate* callTarget, diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs index 22a918584a56..8bf969b60408 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs @@ -300,18 +300,11 @@ public static string GetTypeInfoName(ITypeInfo typeInfo) throw new ArgumentNullException(nameof(o)); } - return GetIUnknownForObjectNative(o, false); + return GetIUnknownForObjectNative(o); } [MethodImpl(MethodImplOptions.InternalCall)] - private static extern IntPtr /* IUnknown* */ GetIUnknownForObjectNative(object o, bool onlyInContext); - - /// - /// Return the raw IUnknown* for a COM Object not related to current. - /// Does not call AddRef. - /// - [MethodImpl(MethodImplOptions.InternalCall)] - internal static extern IntPtr /* IUnknown* */ GetRawIUnknownForComObjectNoAddRef(object o); + private static extern IntPtr /* IUnknown* */ GetIUnknownForObjectNative(object o); /// /// Return the IDispatch* for an Object. @@ -324,11 +317,11 @@ public static string GetTypeInfoName(ITypeInfo typeInfo) throw new ArgumentNullException(nameof(o)); } - return GetIDispatchForObjectNative(o, false); + return GetIDispatchForObjectNative(o); } [MethodImpl(MethodImplOptions.InternalCall)] - private static extern IntPtr /* IDispatch* */ GetIDispatchForObjectNative(object o, bool onlyInContext); + private static extern IntPtr /* IDispatch* */ GetIDispatchForObjectNative(object o); /// /// Return the IUnknown* representing the interface for the Object. @@ -347,7 +340,7 @@ public static string GetTypeInfoName(ITypeInfo typeInfo) throw new ArgumentNullException(nameof(T)); } - return GetComInterfaceForObjectNative(o, T, false, true); + return GetComInterfaceForObjectNative(o, T, true); } [SupportedOSPlatform("windows")] @@ -372,11 +365,11 @@ public static string GetTypeInfoName(ITypeInfo typeInfo) } bool bEnableCustomizedQueryInterface = ((mode == CustomQueryInterfaceMode.Allow) ? true : false); - return GetComInterfaceForObjectNative(o, T, false, bEnableCustomizedQueryInterface); + return GetComInterfaceForObjectNative(o, T, bEnableCustomizedQueryInterface); } [MethodImpl(MethodImplOptions.InternalCall)] - private static extern IntPtr /* IUnknown* */ GetComInterfaceForObjectNative(object o, Type t, bool onlyInContext, bool fEnableCustomizedQueryInterface); + private static extern IntPtr /* IUnknown* */ GetComInterfaceForObjectNative(object o, Type t, bool fEnableCustomizedQueryInterface); /// /// Return the managed object representing the IUnknown* diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs b/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs index adc808e43de5..cd9dfa1368fc 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs @@ -162,6 +162,12 @@ internal static bool HasElementType(RuntimeType type) || (corElemType == CorElementType.ELEMENT_TYPE_BYREF); // IsByRef } + // ** WARNING ** + // Caller bears responsibility for ensuring that the provided Types remain + // GC-reachable while the unmanaged handles are being manipulated. The caller + // may need to make a defensive copy of the input array to ensure it's not + // mutated by another thread, and this defensive copy should be passed to + // a KeepAlive routine. internal static IntPtr[]? CopyRuntimeTypeHandles(RuntimeTypeHandle[]? inHandles, out int length) { if (inHandles == null || inHandles.Length == 0) @@ -179,6 +185,12 @@ internal static bool HasElementType(RuntimeType type) return outHandles; } + // ** WARNING ** + // Caller bears responsibility for ensuring that the provided Types remain + // GC-reachable while the unmanaged handles are being manipulated. The caller + // may need to make a defensive copy of the input array to ensure it's not + // mutated by another thread, and this defensive copy should be passed to + // a KeepAlive routine. internal static IntPtr[]? CopyRuntimeTypeHandles(Type[]? inHandles, out int length) { if (inHandles == null || inHandles.Length == 0) @@ -202,8 +214,49 @@ internal static bool HasElementType(RuntimeType type) [MethodImpl(MethodImplOptions.InternalCall)] internal static extern object Allocate(RuntimeType type); - [MethodImpl(MethodImplOptions.InternalCall)] - internal static extern object CreateInstanceForAnotherGenericParameter(RuntimeType type, RuntimeType genericParameter); + internal static object CreateInstanceForAnotherGenericParameter(RuntimeType type, RuntimeType genericParameter) + { + object? instantiatedObject = null; + + IntPtr typeHandle = genericParameter.GetTypeHandleInternal().Value; + CreateInstanceForAnotherGenericParameter( + new QCallTypeHandle(ref type), + &typeHandle, + 1, + ObjectHandleOnStack.Create(ref instantiatedObject)); + + GC.KeepAlive(genericParameter); + return instantiatedObject!; + } + + internal static object CreateInstanceForAnotherGenericParameter(RuntimeType type, RuntimeType genericParameter1, RuntimeType genericParameter2) + { + object? instantiatedObject = null; + + IntPtr* pTypeHandles = stackalloc IntPtr[] + { + genericParameter1.GetTypeHandleInternal().Value, + genericParameter2.GetTypeHandleInternal().Value + }; + + CreateInstanceForAnotherGenericParameter( + new QCallTypeHandle(ref type), + pTypeHandles, + 2, + ObjectHandleOnStack.Create(ref instantiatedObject)); + + GC.KeepAlive(genericParameter1); + GC.KeepAlive(genericParameter2); + + return instantiatedObject!; + } + + [DllImport(RuntimeHelpers.QCall, CharSet = CharSet.Unicode)] + private static extern void CreateInstanceForAnotherGenericParameter( + QCallTypeHandle baseType, + IntPtr* pTypeHandles, + int cTypeHandles, + ObjectHandleOnStack instantiatedObject); internal RuntimeType GetRuntimeType() { @@ -469,9 +522,19 @@ internal Type[] GetInstantiationPublic() [DllImport(RuntimeHelpers.QCall, CharSet = CharSet.Unicode)] private static extern void Instantiate(QCallTypeHandle handle, IntPtr* pInst, int numGenericArgs, ObjectHandleOnStack type); + internal RuntimeType Instantiate(RuntimeType inst) + { + IntPtr ptr = inst.TypeHandle.Value; + + RuntimeType? type = null; + RuntimeTypeHandle nativeHandle = GetNativeHandle(); + Instantiate(new QCallTypeHandle(ref nativeHandle), &ptr, 1, ObjectHandleOnStack.Create(ref type)); + GC.KeepAlive(inst); + return type!; + } + internal RuntimeType Instantiate(Type[]? inst) { - // defensive copy to be sure array is not mutated from the outside during processing IntPtr[]? instHandles = CopyRuntimeTypeHandles(inst, out int instCount); fixed (IntPtr* pInst = instHandles) @@ -1199,6 +1262,10 @@ internal static RuntimeType ResolveTypeHandleInternal(RuntimeModule module, int throw new ArgumentOutOfRangeException(nameof(typeToken), SR.Format(SR.Argument_InvalidToken, typeToken, new ModuleHandle(module))); + // defensive copy of user-provided array, per CopyRuntimeTypeHandles contract + typeInstantiationContext = (RuntimeTypeHandle[]?)typeInstantiationContext?.Clone(); + methodInstantiationContext = (RuntimeTypeHandle[]?)methodInstantiationContext?.Clone(); + IntPtr[]? typeInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(typeInstantiationContext, out int typeInstCount); IntPtr[]? methodInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(methodInstantiationContext, out int methodInstCount); @@ -1232,6 +1299,9 @@ public RuntimeMethodHandle ResolveMethodHandle(int methodToken, RuntimeTypeHandl internal static IRuntimeMethodInfo ResolveMethodHandleInternal(RuntimeModule module, int methodToken, RuntimeTypeHandle[]? typeInstantiationContext, RuntimeTypeHandle[]? methodInstantiationContext) { + // defensive copy of user-provided array, per CopyRuntimeTypeHandles contract + typeInstantiationContext = (RuntimeTypeHandle[]?)typeInstantiationContext?.Clone(); + methodInstantiationContext = (RuntimeTypeHandle[]?)methodInstantiationContext?.Clone(); IntPtr[]? typeInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(typeInstantiationContext, out int typeInstCount); IntPtr[]? methodInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(methodInstantiationContext, out int methodInstCount); @@ -1277,6 +1347,10 @@ internal static IRuntimeFieldInfo ResolveFieldHandleInternal(RuntimeModule modul throw new ArgumentOutOfRangeException(nameof(fieldToken), SR.Format(SR.Argument_InvalidToken, fieldToken, new ModuleHandle(module))); + // defensive copy of user-provided array, per CopyRuntimeTypeHandles contract + typeInstantiationContext = (RuntimeTypeHandle[]?)typeInstantiationContext?.Clone(); + methodInstantiationContext = (RuntimeTypeHandle[]?)methodInstantiationContext?.Clone(); + // defensive copy to be sure array is not mutated from the outside during processing IntPtr[]? typeInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(typeInstantiationContext, out int typeInstCount); IntPtr[]? methodInstantiationContextHandles = RuntimeTypeHandle.CopyRuntimeTypeHandles(methodInstantiationContext, out int methodInstCount); diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs index f76df3efa491..1b968d25b370 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs @@ -3230,7 +3230,7 @@ internal RuntimeType[] GetGenericArgumentsInternal() public override Type[] GetGenericArguments() { Type[] types = GetRootElementType().GetTypeHandleInternal().GetInstantiationPublic(); - return types ?? Array.Empty(); + return types ?? Type.EmptyTypes; } public override Type MakeGenericType(Type[] instantiation) @@ -3238,15 +3238,29 @@ public override Type MakeGenericType(Type[] instantiation) if (instantiation == null) throw new ArgumentNullException(nameof(instantiation)); - RuntimeType[] instantiationRuntimeType = new RuntimeType[instantiation.Length]; - if (!IsGenericTypeDefinition) - throw new InvalidOperationException( - SR.Format(SR.Arg_NotGenericTypeDefinition, this)); + throw new InvalidOperationException(SR.Format(SR.Arg_NotGenericTypeDefinition, this)); - if (GetGenericArguments().Length != instantiation.Length) + RuntimeType[] genericParameters = GetGenericArgumentsInternal(); + if (genericParameters.Length != instantiation.Length) throw new ArgumentException(SR.Argument_GenericArgsCount, nameof(instantiation)); + if (instantiation.Length == 1 && instantiation[0] is RuntimeType rt) + { + ThrowIfTypeNeverValidGenericArgument(rt); + try + { + return new RuntimeTypeHandle(this).Instantiate(rt); + } + catch (TypeLoadException e) + { + ValidateGenericArguments(this, new[] { rt }, e); + throw; + } + } + + RuntimeType[] instantiationRuntimeType = new RuntimeType[instantiation.Length]; + bool foundSigType = false; bool foundNonRuntimeType = false; for (int i = 0; i < instantiation.Length; i++) @@ -3277,8 +3291,6 @@ public override Type MakeGenericType(Type[] instantiation) return System.Reflection.Emit.TypeBuilderInstantiation.MakeGenericType(this, (Type[])(instantiation.Clone())); } - RuntimeType[] genericParameters = GetGenericArgumentsInternal(); - SanityCheckGenericArguments(instantiationRuntimeType, genericParameters); Type ret; @@ -3315,7 +3327,7 @@ public override Type[] GetGenericParameterConstraints() throw new InvalidOperationException(SR.Arg_NotGenericParameter); Type[] constraints = new RuntimeTypeHandle(this).GetConstraints(); - return constraints ?? Array.Empty(); + return constraints ?? Type.EmptyTypes; } #endregion diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs b/src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs index ffdf388e43e3..1ad92333498e 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs @@ -1,7 +1,9 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Reflection; using System.Runtime.Loader; @@ -14,6 +16,8 @@ internal static class StartupHookProvider private const string InitializeMethodName = "Initialize"; private const string DisallowedSimpleAssemblyNameSuffix = ".dll"; + private static bool IsSupported => AppContext.TryGetSwitch("System.StartupHookProvider.IsSupported", out bool isSupported) ? isSupported : true; + private struct StartupHookNameOrPath { public AssemblyName AssemblyName; @@ -24,6 +28,9 @@ private struct StartupHookNameOrPath // containing a startup hook, and call each hook in turn. private static void ProcessStartupHooks() { + if (!IsSupported) + return; + // Initialize tracing before any user code can be called. System.Diagnostics.Tracing.RuntimeEventSource.Initialize(); @@ -96,6 +103,8 @@ private static void ProcessStartupHooks() // Load the specified assembly, and call the specified type's // "static void Initialize()" method. + [RequiresUnreferencedCode("The StartupHookSupport feature switch has been enabled for this app which is being trimmed. " + + "Startup hook code is not observable by the trimmer and so required assemblies, types and members may be removed")] private static void CallStartupHook(StartupHookNameOrPath startupHook) { Assembly assembly; diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs index e84d9621089f..728954377dff 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs @@ -169,7 +169,7 @@ public Overlapped(int offsetLo, int offsetHi, IntPtr hEvent, IAsyncResult? ar) : _overlappedData._asyncResult = ar; } - [Obsolete("This constructor is not 64-bit compatible. Use the constructor that takes an IntPtr for the event handle. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This constructor is not 64-bit compatible. Use the constructor that takes an IntPtr for the event handle. https://go.microsoft.com/fwlink/?linkid=14202")] public Overlapped(int offsetLo, int offsetHi, int hEvent, IAsyncResult? ar) : this(offsetLo, offsetHi, new IntPtr(hEvent), ar) { } @@ -192,7 +192,7 @@ public int OffsetHigh set => _overlappedData!.OffsetHigh = value; } - [Obsolete("This property is not 64-bit compatible. Use EventHandleIntPtr instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This property is not 64-bit compatible. Use EventHandleIntPtr instead. https://go.microsoft.com/fwlink/?linkid=14202")] public int EventHandle { get => EventHandleIntPtr.ToInt32(); @@ -210,7 +210,7 @@ public IntPtr EventHandleIntPtr * Roots the iocb and stores it in the ReservedCOR field of native Overlapped * Pins the native Overlapped struct and returns the pinned index. ====================================================================*/ - [Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")] [CLSCompliant(false)] public unsafe NativeOverlapped* Pack(IOCompletionCallback? iocb) { @@ -223,7 +223,7 @@ public IntPtr EventHandleIntPtr return _overlappedData!.Pack(iocb, userData); } - [Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")] [CLSCompliant(false)] public unsafe NativeOverlapped* UnsafePack(IOCompletionCallback? iocb) { diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs index dc8a82c079ed..e096e96d8c53 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs @@ -418,7 +418,7 @@ public ThreadPriority Priority /// single-threaded or multi-threaded apartment. /// #if FEATURE_COMINTEROP_APARTMENT_SUPPORT - private bool TrySetApartmentStateUnchecked(ApartmentState state) + private bool SetApartmentStateUnchecked(ApartmentState state, bool throwOnError) { ApartmentState retState = (ApartmentState)SetApartmentStateNative((int)state); @@ -433,6 +433,12 @@ private bool TrySetApartmentStateUnchecked(ApartmentState state) if (retState != state) { + if (throwOnError) + { + string msg = SR.Format(SR.Thread_ApartmentState_ChangeFailed, retState); + throw new InvalidOperationException(msg); + } + return false; } @@ -445,9 +451,19 @@ private bool TrySetApartmentStateUnchecked(ApartmentState state) [MethodImpl(MethodImplOptions.InternalCall)] internal extern int SetApartmentStateNative(int state); #else // FEATURE_COMINTEROP_APARTMENT_SUPPORT - private static bool TrySetApartmentStateUnchecked(ApartmentState state) + private static bool SetApartmentStateUnchecked(ApartmentState state, bool throwOnError) { - return state == ApartmentState.Unknown; + if (state != ApartmentState.Unknown) + { + if (throwOnError) + { + throw new PlatformNotSupportedException(SR.PlatformNotSupported_ComInterop); + } + + return false; + } + + return true; } #endif // FEATURE_COMINTEROP_APARTMENT_SUPPORT diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.CoreCLR.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.CoreCLR.cs deleted file mode 100644 index 015f89ee16a0..000000000000 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.CoreCLR.cs +++ /dev/null @@ -1,333 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text.Unicode; -using Internal.Runtime.CompilerServices; - -namespace System -{ - public sealed partial class Utf8String - { - /* - * INSTANCE FIELDS - * Do not reorder these fields. They must match the layout of Utf8StringObject in object.h. - */ - - private readonly int _length; - private readonly byte _firstByte; - - /* - * INSTANCE PROPERTIES - */ - - /// - /// Returns the length (in UTF-8 code units, or s) of this instance. - /// - public int Length => _length; - - /* - * CONSTRUCTORS - * - * Defining a new constructor for string-like types (like Utf8String) requires changes both - * to the managed code below and to the native VM code. See the comment at the top of - * src/vm/ecall.cpp for instructions on how to add new overloads. - * - * These ctors validate their input, throwing ArgumentException if the input does not represent - * well-formed UTF-8 data. (In the case of transcoding ctors, the ctors throw if the input does - * not represent well-formed UTF-16 data.) There are Create* factory methods which allow the caller - * to control this behavior with finer granularity, including performing U+FFFD replacement instead - * of throwing, or even suppressing validation altogether if the caller knows the input to be well- - * formed. - * - * The reason a throwing behavior was chosen by default is that we don't want to surprise developers - * if ill-formed data loses fidelity while being round-tripped through this type. Developers should - * perform an explicit gesture to opt-in to lossy behavior, such as calling the factories explicitly - * documented as performing such replacement. - */ - - /// - /// Creates a instance from existing UTF-8 data. - /// - /// The existing UTF-8 data from which to create a new . - /// - /// Thrown if does not represent well-formed UTF-8 data. - /// - /// - /// The UTF-8 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - [MethodImpl(MethodImplOptions.InternalCall)] - public extern Utf8String(ReadOnlySpan value); - -#pragma warning disable CA1822 // Mark members as static - -#if !CORECLR - static -#endif - private Utf8String Ctor(ReadOnlySpan value) - { - if (value.IsEmpty) - { - return Empty; - } - - // Create and populate the Utf8String instance. - - Utf8String newString = FastAllocateSkipZeroInit(value.Length); - Buffer.Memmove(ref newString.DangerousGetMutableReference(), ref MemoryMarshal.GetReference(value), (uint)value.Length); - - // Now perform validation. - // Reminder: Perform validation over the copy, not over the source. - - if (!Utf8Utility.IsWellFormedUtf8(newString.AsBytes())) - { - throw new ArgumentException( - message: SR.Utf8String_InputContainedMalformedUtf8, - paramName: nameof(value)); - } - - return newString; - } - - /// - /// Creates a instance from existing UTF-8 data. - /// - /// - /// Thrown if does not represent well-formed UTF-8 data. - /// - /// - /// The UTF-8 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - - [MethodImpl(MethodImplOptions.InternalCall)] - public extern Utf8String(byte[] value, int startIndex, int length); - -#if !CORECLR - static -#endif - private Utf8String Ctor(byte[] value, int startIndex, int length) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return Ctor(new ReadOnlySpan(value, startIndex, length)); - } - - /// - /// Creates a instance from existing null-terminated UTF-8 data. - /// - /// - /// Thrown if does not represent well-formed UTF-8 data. - /// - /// - /// The UTF-8 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - - [MethodImpl(MethodImplOptions.InternalCall)] - [CLSCompliant(false)] - public extern unsafe Utf8String(byte* value); - -#if !CORECLR - static -#endif - private unsafe Utf8String Ctor(byte* value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return Ctor(new ReadOnlySpan(value, string.strlen(value))); - } - - /// - /// Creates a instance from existing UTF-16 data, transcoding the - /// existing data to UTF-8 upon creation. - /// - /// The existing UTF-16 data from which to create a new . - /// - /// Thrown if does not represent well-formed UTF-16 data. - /// - /// - /// The UTF-16 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - [MethodImpl(MethodImplOptions.InternalCall)] - public extern Utf8String(ReadOnlySpan value); - -#if !CORECLR - static -#endif - private Utf8String Ctor(ReadOnlySpan value) - { - Utf8String? newString = CreateFromUtf16Common(value, replaceInvalidSequences: false); - - if (newString is null) - { - // Input buffer contained invalid UTF-16 data. - - throw new ArgumentException( - message: SR.Utf8String_InputContainedMalformedUtf16, - paramName: nameof(value)); - } - - return newString; - } - - /// - /// Creates a instance from existing UTF-16 data. - /// - /// - /// Thrown if does not represent well-formed UTF-16 data. - /// - /// - /// The UTF-16 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - [MethodImpl(MethodImplOptions.InternalCall)] - public extern Utf8String(char[] value, int startIndex, int length); - -#if !CORECLR - static -#endif - private Utf8String Ctor(char[] value, int startIndex, int length) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return Ctor(new ReadOnlySpan(value, startIndex, length)); - } - - /// - /// Creates a instance from existing null-terminated UTF-16 data. - /// - /// - /// Thrown if does not represent well-formed UTF-16 data. - /// - /// - /// The UTF-16 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - [MethodImpl(MethodImplOptions.InternalCall)] - [CLSCompliant(false)] - public extern unsafe Utf8String(char* value); - -#if !CORECLR - static -#endif - private unsafe Utf8String Ctor(char* value) - { - if (value == null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return Ctor(new ReadOnlySpan(value, string.wcslen(value))); - } - - /// - /// Creates a instance from existing UTF-16 data. - /// - /// - /// The UTF-16 data in is validated for well-formedness upon construction, - /// and an exception is thrown if the input is ill-formed. To avoid this exception, consider using - /// or . - /// - [MethodImpl(MethodImplOptions.InternalCall)] - public extern Utf8String(string value); - -#if !CORECLR - static -#endif - private Utf8String Ctor(string value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return Ctor(value.AsSpan()); - } - -#pragma warning restore CA1822 - - /* - * METHODS - */ - - /// - /// Similar to , but skips the null check on the input. - /// Throws a if the input is null. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ReadOnlySpan AsBytesSkipNullCheck() - { - // By dereferencing Length first, the JIT will skip the null check that normally precedes - // most instance method calls, and it'll use the field dereference as the null check. - - int length = Length; - return new ReadOnlySpan(ref DangerousGetMutableReference(), length); - } - - /// - /// Returns a mutable that can be used to populate this - /// instance. Only to be used during construction. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal Span DangerousGetMutableSpan() - { - // By dereferencing Length first, the JIT will skip the null check that normally precedes - // most instance method calls, and it'll use the field dereference as the null check. - - int length = Length; - return new Span(ref DangerousGetMutableReference(), length); - } - - /// - /// Returns a mutable reference to the first byte of this - /// (or the null terminator if the string is empty). - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference() => ref Unsafe.AsRef(in _firstByte); - - /// - /// Gets an immutable reference that can be used in a statement. The resulting - /// reference can be pinned and used as a null-terminated LPCUTF8STR. - /// - /// - /// If this instance is empty, returns a reference to the null terminator. - /// - [EditorBrowsable(EditorBrowsableState.Never)] // for compiler use only - public ref readonly byte GetPinnableReference() => ref _firstByte; - - /* - * HELPER METHODS - */ - - /// - /// Creates a new zero-initialized instance of the specified length. Actual storage allocated is "length + 1" bytes - /// because instances are null-terminated. - /// - /// - /// The implementation of this method checks its input argument for overflow. - /// - [MethodImpl(MethodImplOptions.InternalCall)] - private static extern Utf8String FastAllocate(int length); - } -} diff --git a/src/coreclr/src/ToolBox/superpmi/readme.md b/src/coreclr/src/ToolBox/superpmi/readme.md index e5e64514dd20..26e7c64b4668 100644 --- a/src/coreclr/src/ToolBox/superpmi/readme.md +++ b/src/coreclr/src/ToolBox/superpmi/readme.md @@ -121,9 +121,7 @@ Set the following environment variables: ``` SuperPMIShimLogPath= SuperPMIShimPath= -COMPlus_AltJit=* -COMPlus_AltJitNgen=* -COMPlus_AltJitName=superpmi-shim-collector.dll +COMPlus_JitName=superpmi-shim-collector.dll ``` for example, on Windows: @@ -132,9 +130,7 @@ for example, on Windows: mkdir f:\spmi\temp set SuperPMIShimLogPath=f:\spmi\temp set SuperPMIShimPath=f:\gh\runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\clrjit.dll -set COMPlus_AltJit=* -set COMPlus_AltJitNgen=* -set COMPlus_AltJitName=superpmi-shim-collector.dll +set COMPlus_JitName=superpmi-shim-collector.dll ``` (On Linux, use `libclrjit.so` and `libsuperpmi-shim-collector.so`. diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h index 0a2ea7b63f64..0a7e086551ee 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h @@ -979,6 +979,34 @@ struct BlockCounts // Also defined here: code:CORBBTPROF_BLOCK_DATA UINT32 ILOffset; UINT32 ExecutionCount; }; + +// Data structure for a single class probe. +// +// ILOffset is the IL offset in the method for the call site being probed. +// Currently it must be ORed with CLASS_FLAG and (for interface calls) +// INTERFACE_FLAG. +// +// Count is the number of times a call was made at that call site. +// +// SIZE is the number of entries in the table. +// +// SAMPLE_INTERVAL must be >= SIZE. SAMPLE_INTERVAL / SIZE +// gives the average number of calls between table updates. +// +struct ClassProfile +{ + enum { + SIZE = 8, + SAMPLE_INTERVAL = 32, + CLASS_FLAG = 0x80000000, + INTERFACE_FLAG = 0x40000000, + OFFSET_MASK = 0x3FFFFFFF + }; + + UINT32 ILOffset; + UINT32 Count; + CORINFO_CLASS_HANDLE ClassTable[SIZE]; +}; */ // allocate a basic block profile buffer where execution counts will be stored @@ -993,6 +1021,15 @@ HRESULT getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, BlockCounts** pBlockCounts, UINT32 * pNumRuns); +// Get the likely implementing class for a virtual call or interface call made by ftnHnd +// at the indicated IL offset. baseHnd is the interface class or base class for the method +// being called. +CORINFO_CLASS_HANDLE getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfCases); + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h index b9731198754a..803eae030a45 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h @@ -100,9 +100,11 @@ LWM(GetJitFlags, DWORD, DD) LWM(GetJitTimeLogFilename, DWORD, DWORD) LWM(GetJustMyCodeHandle, DWORDLONG, DLDL) LWM(GetLazyStringLiteralHelper, DWORDLONG, DWORD) +LWM(GetLikelyClass, Agnostic_GetLikelyClass, Agnostic_GetLikelyClassResult) LWM(GetLocationOfThisType, DWORDLONG, Agnostic_CORINFO_LOOKUP_KIND) LWM(GetMethodAttribs, DWORDLONG, DWORD) LWM(GetMethodClass, DWORDLONG, DWORDLONG) +LWM(GetMethodModule, DWORDLONG, DWORDLONG) LWM(GetMethodDefFromMethod, DWORDLONG, DWORD) LWM(GetMethodHash, DWORDLONG, DWORD) LWM(GetMethodInfo, DWORDLONG, Agnostic_GetMethodInfo) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp index b2443351f856..43131ddf4c12 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp @@ -759,6 +759,30 @@ CORINFO_CLASS_HANDLE MethodContext::repGetMethodClass(CORINFO_METHOD_HANDLE meth return value; } +void MethodContext::recGetMethodModule(CORINFO_METHOD_HANDLE methodHandle, CORINFO_MODULE_HANDLE moduleHandle) +{ + if (GetMethodModule == nullptr) + GetMethodModule = new LightWeightMap(); + + GetMethodModule->Add((DWORDLONG)methodHandle, (DWORDLONG)moduleHandle); + DEBUG_REC(dmpGetMethodModule((DWORDLONG)methodHandle, (DWORDLONG)moduleHandle)); +} +void MethodContext::dmpGetMethodModule(DWORDLONG key, DWORDLONG value) +{ + printf("GetMethodModule key %016llX, value %016llX", key, value); +} +CORINFO_MODULE_HANDLE MethodContext::repGetMethodModule(CORINFO_METHOD_HANDLE methodHandle) +{ + AssertCodeMsg(GetMethodModule != nullptr, EXCEPTIONCODE_MC, + "Found a null GetMethodModule. Probably missing a fatTrigger for %016llX.", (DWORDLONG)methodHandle); + int index = GetMethodModule->GetIndex((DWORDLONG)methodHandle); + AssertCodeMsg(index != -1, EXCEPTIONCODE_MC, "Didn't find %016llX. Probably missing a fatTrigger", + (DWORDLONG)methodHandle); + CORINFO_MODULE_HANDLE value = (CORINFO_MODULE_HANDLE)GetMethodModule->Get((DWORDLONG)methodHandle); + DEBUG_REP(dmpGetMethodModule((DWORDLONG)methodHandle, (DWORDLONG)value)); + return value; +} + void MethodContext::recGetClassAttribs(CORINFO_CLASS_HANDLE classHandle, DWORD attribs) { if (GetClassAttribs == nullptr) @@ -5241,6 +5265,48 @@ HRESULT MethodContext::repGetMethodBlockCounts(CORINFO_METHOD_HANDLE ftnH return result; } +void MethodContext::recGetLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, CORINFO_CLASS_HANDLE baseHnd, UINT32 ilOffset, CORINFO_CLASS_HANDLE result, UINT32* pLikelihood, UINT32* pNumberOfClasses) +{ + if (GetLikelyClass == nullptr) + GetLikelyClass = new LightWeightMap(); + + Agnostic_GetLikelyClass key; + ZeroMemory(&key, sizeof(Agnostic_GetLikelyClass)); + + key.ftnHnd = (DWORDLONG) ftnHnd; + key.baseHnd = (DWORDLONG) baseHnd; + key.ilOffset = (DWORD) ilOffset; + + Agnostic_GetLikelyClassResult value; + ZeroMemory(&value, sizeof(Agnostic_GetLikelyClassResult)); + value.classHnd = (DWORDLONG) result; + value.likelihood = *pLikelihood; + value.numberOfClasses = *pNumberOfClasses; + + GetLikelyClass->Add(key, value); + DEBUG_REC(dmpGetLikelyClass(key, value)); +} +void MethodContext::dmpGetLikelyClass(const Agnostic_GetLikelyClass& key, const Agnostic_GetLikelyClassResult& value) +{ + printf("GetLikelyClass key ftn-%016llX base-%016llX il-%u, class-%016llX likelihood-%u numberOfClasses-%u", + key.ftnHnd, key.baseHnd, key.ilOffset, value.classHnd, value.likelihood, value.numberOfClasses); +} +CORINFO_CLASS_HANDLE MethodContext::repGetLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, CORINFO_CLASS_HANDLE baseHnd, UINT32 ilOffset, UINT32* pLikelihood, UINT32* pNumberOfClasses) +{ + Agnostic_GetLikelyClass key; + ZeroMemory(&key, sizeof(Agnostic_GetLikelyClass)); + key.ftnHnd = (DWORDLONG) ftnHnd; + key.baseHnd = (DWORDLONG) baseHnd; + key.ilOffset = (DWORD) ilOffset; + + Agnostic_GetLikelyClassResult value = GetLikelyClass->Get(key); + DEBUG_REP(dmpGetLikelyClass(key, value)); + + *pLikelihood = value.likelihood; + *pNumberOfClasses = value.numberOfClasses; + return (CORINFO_CLASS_HANDLE) value.classHnd; +} + void MethodContext::recMergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, CORINFO_CLASS_HANDLE result) { if (MergeClasses == nullptr) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h index 2b0e6a9b55be..75466c13a480 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h @@ -435,6 +435,21 @@ class MethodContext DWORD numRuns; DWORD result; }; + + struct Agnostic_GetLikelyClass + { + DWORDLONG ftnHnd; + DWORDLONG baseHnd; + DWORD ilOffset; + }; + + struct Agnostic_GetLikelyClassResult + { + DWORDLONG classHnd; + DWORD likelihood; + DWORD numberOfClasses; + }; + struct Agnostic_GetProfilingHandle { DWORD bHookFunction; @@ -611,6 +626,10 @@ class MethodContext void dmpGetMethodClass(DWORDLONG key, DWORDLONG value); CORINFO_CLASS_HANDLE repGetMethodClass(CORINFO_METHOD_HANDLE methodHandle); + void recGetMethodModule(CORINFO_METHOD_HANDLE methodHandle, CORINFO_MODULE_HANDLE moduleHandle); + void dmpGetMethodModule(DWORDLONG key, DWORDLONG value); + CORINFO_MODULE_HANDLE repGetMethodModule(CORINFO_METHOD_HANDLE methodHandle); + void recGetClassAttribs(CORINFO_CLASS_HANDLE classHandle, DWORD attribs); void dmpGetClassAttribs(DWORDLONG key, DWORD value); DWORD repGetClassAttribs(CORINFO_CLASS_HANDLE classHandle); @@ -1189,6 +1208,10 @@ class MethodContext ICorJitInfo::BlockCounts** pBlockCounts, UINT32 * pNumRuns); + void recGetLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, CORINFO_CLASS_HANDLE baseHnd, UINT32 ilOffset, CORINFO_CLASS_HANDLE classHnd, UINT32* pLikelihood, UINT32* pNumberOfClasses); + void dmpGetLikelyClass(const Agnostic_GetLikelyClass& key, const Agnostic_GetLikelyClassResult& value); + CORINFO_CLASS_HANDLE repGetLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, CORINFO_CLASS_HANDLE baseHnd, UINT32 ilOffset, UINT32* pLikelihood, UINT32* pNumberOfClasses); + void recMergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, CORINFO_CLASS_HANDLE result); void dmpMergeClasses(DLDL key, DWORDLONG value); CORINFO_CLASS_HANDLE repMergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); @@ -1355,7 +1378,7 @@ class MethodContext }; // ********************* Please keep this up-to-date to ease adding more *************** -// Highest packet number: 178 +// Highest packet number: 182 // ************************************************************************************* enum mcPackets { @@ -1454,9 +1477,11 @@ enum mcPackets Packet_GetJitFlags = 154, // Added 2/3/2016 Packet_GetJitTimeLogFilename = 67, Packet_GetJustMyCodeHandle = 68, + Packet_GetLikelyClass = 182, // Added 9/27/2020 Packet_GetLocationOfThisType = 69, Packet_GetMethodAttribs = 70, Packet_GetMethodClass = 71, + Packet_GetMethodModule = 181, // Added 11/20/2020 Packet_GetMethodDefFromMethod = 72, Packet_GetMethodHash = 73, Packet_GetMethodInfo = 74, diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp index bb1bba81f01d..116e0756c7e9 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -212,7 +212,9 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::getMethodClass(CORINFO_METHOD_HANDLE meth CORINFO_MODULE_HANDLE interceptor_ICJI::getMethodModule(CORINFO_METHOD_HANDLE method) { mc->cr->AddCall("getMethodModule"); - return original_ICorJitInfo->getMethodModule(method); + CORINFO_MODULE_HANDLE temp = original_ICorJitInfo->getMethodModule(method); + mc->recGetMethodModule(method, temp); + return temp; } // This function returns the offset of the specified method in the @@ -2047,6 +2049,21 @@ HRESULT interceptor_ICJI::getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, return temp; } +// Get the likely implementing class for a virtual call or interface call made by ftnHnd +// at the indicated IL offset. baseHnd is the interface class or base class for the method +// being called. +CORINFO_CLASS_HANDLE interceptor_ICJI::getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfClasses) +{ + mc->cr->AddCall("getLikelyClass"); + CORINFO_CLASS_HANDLE result = original_ICorJitInfo->getLikelyClass(ftnHnd, baseHnd, ilOffset, pLikelihood, pNumberOfClasses); + mc->recGetLikelyClass(ftnHnd, baseHnd, ilOffset, result, pLikelihood, pNumberOfClasses); + return result; +} + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp index 23d37a630f71..29301e0d25fa 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp @@ -10,6 +10,33 @@ JitHost* g_ourJitHost; +// RecordVariable: return `true` if the given COMPlus variable `key` should be recorded +// in the method context. +bool RecordVariable(const WCHAR* key) +{ + // Special-case: we don't want to store some COMPlus variables during + // collections that we don't want to see on replay: + // COMPlus_JitName -- used to get the VM to load the SuperPMI collection shim + // without requiring the shim to overwrite the original JIT. + // This JIT doesn't care about this on SuperPMI replay, but + // we don't need to waste the space in the MC file storing it. + // COMPlus_AltJitName -- if collecting with an altjit, this is set. The JIT doesn't + // use this on replay, but it doesn't need to be stored. + // COMPlus_EnableExtraSuperPmiQueries -- used to force the JIT to ask additional + // questions during SuperPMI collection. We don't want to store + // this variable because we don't want to replay using it. + + if ((_wcsicmp(key, W("JitName")) == 0) || + (_wcsicmp(key, W("AltJitName")) == 0) || + (_wcsicmp(key, W("EnableExtraSuperPmiQueries")) == 0)) + { + return false; + } + + // By default, we record everything. + return true; +} + JitHost::JitHost(ICorJitHost* wrappedHost, MethodContext* methodContext) : wrappedHost(wrappedHost), mc(methodContext) { } @@ -37,7 +64,7 @@ int JitHost::getIntConfigValue(const WCHAR* key, int defaultValue) // The JIT eagerly asks about every config value. If we store all these // queries, it takes almost half the MC file space. So only store the // non-default answers. - if (result != defaultValue) + if (RecordVariable(key) && (result != defaultValue)) { mc->recGetIntConfigValue(key, defaultValue, result); } @@ -50,7 +77,7 @@ const WCHAR* JitHost::getStringConfigValue(const WCHAR* key) const WCHAR* result = wrappedHost->getStringConfigValue(key); // Don't store null returns, which is the default - if (result != nullptr) + if (RecordVariable(key) && (result != nullptr)) { mc->recGetStringConfigValue(key, result); } diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp index 03a5643d6e6c..496dd3d04dbc 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp @@ -1623,6 +1623,19 @@ HRESULT interceptor_ICJI::getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, return original_ICorJitInfo->getMethodBlockCounts(ftnHnd, pCount, pBlockCounts, pNumRuns); } +// Get the likely implementing class for a virtual call or interface call made by ftnHnd +// at the indicated IL offset. baseHnd is the interface class or base class for the method +// being called. +CORINFO_CLASS_HANDLE interceptor_ICJI::getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfClasses) +{ + mcs->AddCall("getLikelyClass"); + return original_ICorJitInfo->getLikelyClass(ftnHnd, baseHnd, ilOffset, pLikelihood, pNumberOfClasses); +} + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp index 139937e4c03f..613a299c1fe4 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp @@ -1441,6 +1441,18 @@ HRESULT interceptor_ICJI::getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, return original_ICorJitInfo->getMethodBlockCounts(ftnHnd, pCount, pBlockCounts, pNumRuns); } +// Get the likely implementing class for a virtual call or interface call made by ftnHnd +// at the indicated IL offset. baseHnd is the interface class or base class for the method +// being called. +CORINFO_CLASS_HANDLE interceptor_ICJI::getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfClasses) +{ + return original_ICorJitInfo->getLikelyClass(ftnHnd, baseHnd, ilOffset, pLikelihood, pNumberOfClasses); +} + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp index 6b8f4540a522..39aa3661c2f2 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp @@ -156,9 +156,7 @@ CORINFO_CLASS_HANDLE MyICJI::getMethodClass(CORINFO_METHOD_HANDLE method) CORINFO_MODULE_HANDLE MyICJI::getMethodModule(CORINFO_METHOD_HANDLE method) { jitInstance->mc->cr->AddCall("getMethodModule"); - LogError("Hit unimplemented getMethodModule"); - DebugBreakorAV(7); - return 0; + return jitInstance->mc->repGetMethodModule(method); } // This function returns the offset of the specified method in the @@ -1566,7 +1564,16 @@ void MyICJI::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bo DWORD MyICJI::getJitFlags(CORJIT_FLAGS* jitFlags, DWORD sizeInBytes) { jitInstance->mc->cr->AddCall("getJitFlags"); - return jitInstance->mc->repGetJitFlags(jitFlags, sizeInBytes); + DWORD ret = jitInstance->mc->repGetJitFlags(jitFlags, sizeInBytes); + if (jitInstance->forceClearAltJitFlag) + { + jitFlags->Clear(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT); + } + else if (jitInstance->forceSetAltJitFlag) + { + jitFlags->Set(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT); + } + return ret; } // Runs the given function with the given parameter under an error trap @@ -1798,6 +1805,19 @@ HRESULT MyICJI::getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, return jitInstance->mc->repGetMethodBlockCounts(ftnHnd, pCount, pBlockCounts, pNumRuns); } +// Get the likely implementing class for a virtual call or interface call made by ftnHnd +// at the indicated IL offset. baseHnd is the interface class or base class for the method +// being called. +CORINFO_CLASS_HANDLE MyICJI::getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfClasses) +{ + jitInstance->mc->cr->AddCall("getLikelyClass"); + return jitInstance->mc->repGetLikelyClass(ftnHnd, baseHnd, ilOffset, pLikelihood, pNumberOfClasses); +} + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp index 5050f248fa47..bc81ff9dd3f1 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp @@ -26,9 +26,38 @@ JitInstance* JitInstance::InitJit(char* nameOfJit, } jit->forceOptions = forceOptions; - jit->options = options; + // The flag to cause the JIT to be invoked as an altjit is stored in the jit flags, not in + // the environment. If the user uses the "-jitoption force" flag to force AltJit off + // or to force it on, then propagate that to the jit flags. + jit->forceClearAltJitFlag = false; + jit->forceSetAltJitFlag = false; + const WCHAR* altJitFlag = jit->getForceOption(W("AltJit")); + if (altJitFlag != nullptr) + { + if (wcscmp(altJitFlag, W("")) == 0) + { + jit->forceClearAltJitFlag = true; + } + else + { + jit->forceSetAltJitFlag = true; + } + } + const WCHAR* altJitNgenFlag = jit->getForceOption(W("AltJitNgen")); + if (altJitNgenFlag != nullptr) + { + if (wcscmp(altJitNgenFlag, W("")) == 0) + { + jit->forceClearAltJitFlag = true; + } + else + { + jit->forceSetAltJitFlag = true; + } + } + jit->environment.getIntConfigValue = nullptr; jit->environment.getStingConfigValue = nullptr; diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h b/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h index 1acec90792e3..d8755635d936 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h @@ -32,6 +32,10 @@ class JitInstance void timeResult(CORINFO_METHOD_INFO info, unsigned flags); public: + + bool forceClearAltJitFlag; + bool forceSetAltJitFlag; + enum Result { RESULT_ERROR, diff --git a/src/coreclr/src/classlibnative/bcltype/objectnative.cpp b/src/coreclr/src/classlibnative/bcltype/objectnative.cpp index 7af628a04e5c..80023e27a9d8 100644 --- a/src/coreclr/src/classlibnative/bcltype/objectnative.cpp +++ b/src/coreclr/src/classlibnative/bcltype/objectnative.cpp @@ -236,9 +236,6 @@ FCIMPL1(Object*, ObjectNative::AllocateUninitializedClone, Object* pObjUNSAFE) // assert that String has overloaded the Clone() method _ASSERTE(pMT != g_pStringClass); -#ifdef FEATURE_UTF8STRING - _ASSERTE(pMT != g_pUtf8StringClass); -#endif // FEATURE_UTF8STRING if (pMT->IsArray()) { refClone = DupArrayForCloning((BASEARRAYREF)refClone); diff --git a/src/coreclr/src/debug/daccess/dacdbiimpl.cpp b/src/coreclr/src/debug/daccess/dacdbiimpl.cpp index 51cb32072d3d..cef46813c247 100644 --- a/src/coreclr/src/debug/daccess/dacdbiimpl.cpp +++ b/src/coreclr/src/debug/daccess/dacdbiimpl.cpp @@ -3801,51 +3801,8 @@ void DacDbiInterfaceImpl::GetRcwCachedInterfaceTypes( BOOL bIInspectableOnly, DacDbiArrayList * pDacInterfaces) { -#ifdef FEATURE_COMINTEROP - - DD_ENTER_MAY_THROW; - - Object* objPtr = vmObject.GetDacPtr(); - - InlineSArray rgMT; - - PTR_RCW pRCW = GetRcwFromVmptrObject(vmObject); - if (pRCW != NULL) - { - pRCW->GetCachedInterfaceTypes(bIInspectableOnly, &rgMT); - - pDacInterfaces->Alloc(rgMT.GetCount()); - - for (COUNT_T i = 0; i < rgMT.GetCount(); ++i) - { - // There is the possiblity that we'll get this far with a dump and not fail, but still - // not be able to get full info for a particular param. - EX_TRY_ALLOW_DATATARGET_MISSING_MEMORY_WITH_HANDLER - { - // Fill in the struct using the current TypeHandle - VMPTR_TypeHandle vmTypeHandle = VMPTR_TypeHandle::NullPtr(); - TypeHandle th = TypeHandle::FromTAddr(dac_cast(rgMT[i])); - vmTypeHandle.SetDacTargetPtr(th.AsTAddr()); - TypeHandleToExpandedTypeInfo(NoValueTypeBoxing, - vmAppDomain, - vmTypeHandle, - &((*pDacInterfaces)[i])); - } - EX_CATCH_ALLOW_DATATARGET_MISSING_MEMORY_WITH_HANDLER - { - // On failure for a particular type, default it to NULL. - (*pDacInterfaces)[i].elementType = ELEMENT_TYPE_END; - } - EX_END_CATCH_ALLOW_DATATARGET_MISSING_MEMORY_WITH_HANDLER - - } - - } - else -#endif // FEATURE_COMINTEROP - { - pDacInterfaces->Alloc(0); - } + // Legacy WinRT API. + pDacInterfaces->Alloc(0); } void DacDbiInterfaceImpl::GetRcwCachedInterfacePointers( diff --git a/src/coreclr/src/debug/daccess/dacimpl.h b/src/coreclr/src/debug/daccess/dacimpl.h index 717c6cf07ed5..86eecc3c8b07 100644 --- a/src/coreclr/src/debug/daccess/dacimpl.h +++ b/src/coreclr/src/debug/daccess/dacimpl.h @@ -1703,7 +1703,11 @@ class LinearReadCache // clear the GC flag bits off the MethodTable // equivalent to Object::GetGCSafeMethodTable() +#if TARGET_64BIT + *mt &= ~7; +#else *mt &= ~3; +#endif return true; } diff --git a/src/coreclr/src/debug/daccess/request.cpp b/src/coreclr/src/debug/daccess/request.cpp index 6523b40f2413..3401e68bcb9a 100644 --- a/src/coreclr/src/debug/daccess/request.cpp +++ b/src/coreclr/src/debug/daccess/request.cpp @@ -74,7 +74,11 @@ TADDR DACGetMethodTableFromObjectPointer(TADDR objAddr, ICorDebugDataTarget * ta return NULL; } +#if TARGET_64BIT + Value = Value & ~7; // equivalent to Object::GetGCSafeMethodTable() +#else Value = Value & ~3; // equivalent to Object::GetGCSafeMethodTable() +#endif return Value; } @@ -4353,13 +4357,6 @@ HRESULT ClrDataAccess::IsRCWDCOMProxy(CLRDATA_ADDRESS rcwAddr, BOOL* isDCOMProxy *isDCOMProxy = FALSE; #ifdef FEATURE_COMINTEROP - SOSDacEnter(); - - PTR_RCW pRCW = dac_cast(CLRDATA_ADDRESS_TO_TADDR(rcwAddr)); - *isDCOMProxy = pRCW->IsDCOMProxy(); - - SOSDacLeave(); - return S_OK; #else return E_NOTIMPL; diff --git a/src/coreclr/src/debug/di/process.cpp b/src/coreclr/src/debug/di/process.cpp index bb09213c5553..badcd863d47b 100644 --- a/src/coreclr/src/debug/di/process.cpp +++ b/src/coreclr/src/debug/di/process.cpp @@ -2169,10 +2169,6 @@ HRESULT CordbProcess::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } - else if (id == IID_ICorDebugProcess10) - { - *pInterface = static_cast(this); - } else if (id == IID_ICorDebugProcess11) { *pInterface = static_cast(this); diff --git a/src/coreclr/src/debug/di/rspriv.h b/src/coreclr/src/debug/di/rspriv.h index a42a37d90141..0874716db873 100644 --- a/src/coreclr/src/debug/di/rspriv.h +++ b/src/coreclr/src/debug/di/rspriv.h @@ -2929,7 +2929,6 @@ class CordbProcess : public ICorDebugProcess5, public ICorDebugProcess7, public ICorDebugProcess8, - public ICorDebugProcess10, public ICorDebugProcess11, public IDacDbiInterface::IAllocator, public IDacDbiInterface::IMetaDataLookup, @@ -3140,7 +3139,7 @@ class CordbProcess : COM_METHOD EnableExceptionCallbacksOutsideOfMyCode(BOOL enableExceptionsOutsideOfJMC); //----------------------------------------------------------- - // ICorDebugProcess10 + // ICorDebugProcess10 (To be removed in .NET 6, in a separate cleanup PR) //----------------------------------------------------------- COM_METHOD EnableGCNotificationEvents(BOOL fEnable); diff --git a/src/coreclr/src/debug/ee/controller.cpp b/src/coreclr/src/debug/ee/controller.cpp index 01396cc3951d..16a9c88e026a 100644 --- a/src/coreclr/src/debug/ee/controller.cpp +++ b/src/coreclr/src/debug/ee/controller.cpp @@ -1332,7 +1332,7 @@ bool DebuggerController::ApplyPatch(DebuggerControllerPatch *patch) LOG((LF_CORDB, LL_INFO10000, "DC::ApplyPatch at addr 0x%p\n", patch->address)); - // If we try to apply an already applied patch, we'll overide our saved opcode + // If we try to apply an already applied patch, we'll override our saved opcode // with the break opcode and end up getting a break in out patch bypass buffer. _ASSERTE(!patch->IsActivated() ); _ASSERTE(patch->IsBound()); diff --git a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt b/src/coreclr/src/dlls/dbgshim/CMakeLists.txt index 12b5b64d6bc3..2d066062290c 100644 --- a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt +++ b/src/coreclr/src/dlls/dbgshim/CMakeLists.txt @@ -29,6 +29,10 @@ else(CLR_CMAKE_TARGET_WIN32) # This option is necessary to ensure that the overloaded delete operator defined inside # of the utilcode will be used instead of the standard library delete operator. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic") + + # These options are used to force every object to be included even if it's unused. + set(START_WHOLE_ARCHIVE -Wl,--whole-archive) + set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS) set_exports_linker_option(${EXPORTS_FILE}) @@ -69,9 +73,11 @@ if(CLR_CMAKE_HOST_WIN32) ) else() list(APPEND DBGSHIM_LIBRARIES - coreclrpal mscorrc + ${START_WHOLE_ARCHIVE} + coreclrpal palrt + ${END_WHOLE_ARCHIVE} ) endif(CLR_CMAKE_HOST_WIN32) diff --git a/src/coreclr/src/dlls/mscoree/unixinterface.cpp b/src/coreclr/src/dlls/mscoree/unixinterface.cpp index e23ece987224..fd8cf506b234 100644 --- a/src/coreclr/src/dlls/mscoree/unixinterface.cpp +++ b/src/coreclr/src/dlls/mscoree/unixinterface.cpp @@ -220,7 +220,7 @@ int coreclr_initialize( if (bundleProbe != nullptr) { - static Bundle bundle(StringToUnicode(exePath), bundleProbe); + static Bundle bundle(exePath, bundleProbe); Bundle::AppBundle = &bundle; } diff --git a/src/coreclr/src/gc/gc.cpp b/src/coreclr/src/gc/gc.cpp index 38b6d8e97d56..0efd12744507 100644 --- a/src/coreclr/src/gc/gc.cpp +++ b/src/coreclr/src/gc/gc.cpp @@ -34133,10 +34133,19 @@ CObjectHeader* gc_heap::allocate_uoh_object (size_t jsize, uint32_t flags, int g //mark the new block specially so we know it is a new object if ((result < current_highest_address) && (result >= current_lowest_address)) { - dprintf (3, ("Setting mark bit at address %Ix", - (size_t)(&mark_array [mark_word_of (result)]))); +#ifdef DOUBLY_LINKED_FL + heap_segment* seg = seg_mapping_table_segment_of (result); + // if bgc_allocated is 0 it means it was allocated during bgc sweep, + // and since sweep does not look at this seg we cannot set the mark array bit. + uint8_t* background_allocated = heap_segment_background_allocated(seg); + if (background_allocated != 0) +#endif //DOUBLY_LINKED_FL + { + dprintf(3, ("Setting mark bit at address %Ix", + (size_t)(&mark_array[mark_word_of(result)]))); - mark_array_set_marked (result); + mark_array_set_marked(result); + } } } } @@ -34515,7 +34524,7 @@ BOOL gc_heap::fgc_should_consider_object (uint8_t* o, no_bgc_mark_p = TRUE; } - dprintf (3, ("bgc mark %Ix: %s (bm: %s)", o, (no_bgc_mark_p ? "no" : "yes"), (background_object_marked (o, FALSE) ? "yes" : "no"))); + dprintf (3, ("bgc mark %Ix: %s (bm: %s)", o, (no_bgc_mark_p ? "no" : "yes"), ((no_bgc_mark_p || background_object_marked (o, FALSE)) ? "yes" : "no"))); return (no_bgc_mark_p ? TRUE : background_object_marked (o, FALSE)); } @@ -40510,6 +40519,9 @@ void PopulateDacVars(GcDacVars *gcDacVars) #ifndef DACCESS_COMPILE assert(gcDacVars != nullptr); *gcDacVars = {}; + // Note: these version numbers are not actually checked by SOS, so if you change + // the GC in a way that makes it incompatible with SOS, please change + // SOS_BREAKING_CHANGE_VERSION in both the runtime and the diagnostics repo gcDacVars->major_version_number = 1; gcDacVars->minor_version_number = 0; gcDacVars->built_with_svr = &g_built_with_svr_gc; diff --git a/src/coreclr/src/gc/gcpriv.h b/src/coreclr/src/gc/gcpriv.h index 23f5bc836339..223db42108ed 100644 --- a/src/coreclr/src/gc/gcpriv.h +++ b/src/coreclr/src/gc/gcpriv.h @@ -65,8 +65,7 @@ inline void FATAL_GC_ERROR() // We need the lower 3 bits in the MT to do our bookkeeping so doubly linked free list is only for 64-bit #ifdef HOST_64BIT -// To be enabled. -// #define DOUBLY_LINKED_FL +#define DOUBLY_LINKED_FL #endif //HOST_64BIT #ifndef FEATURE_REDHAWK diff --git a/src/coreclr/src/gc/unix/cgroup.cpp b/src/coreclr/src/gc/unix/cgroup.cpp index 00ebc14a9492..d61026f1c828 100644 --- a/src/coreclr/src/gc/unix/cgroup.cpp +++ b/src/coreclr/src/gc/unix/cgroup.cpp @@ -66,8 +66,8 @@ class CGroup static void Initialize() { s_cgroup_version = FindCGroupVersion(); - s_memory_cgroup_path = FindCGroupPath(&IsCGroup1MemorySubsystem); - s_cpu_cgroup_path = FindCGroupPath(&IsCGroup1CpuSubsystem); + s_memory_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1MemorySubsystem : nullptr); + s_cpu_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1CpuSubsystem : nullptr); } static void Cleanup() @@ -257,12 +257,19 @@ class CGroup if (strncmp(filesystemType, "cgroup", 6) == 0) { - char* context = nullptr; - char* strTok = strtok_r(options, ",", &context); - while (strTok != nullptr) + bool isSubsystemMatch = is_subsystem == nullptr; + if (!isSubsystemMatch) { - if ((s_cgroup_version == 2) || ((s_cgroup_version == 1) && is_subsystem(strTok))) + char* context = nullptr; + char* strTok = strtok_r(options, ",", &context); + while (!isSubsystemMatch && strTok != nullptr) { + isSubsystemMatch = is_subsystem(strTok); + strTok = strtok_r(nullptr, ",", &context); + } + } + if (isSubsystemMatch) + { mountpath = (char*)malloc(lineLen+1); if (mountpath == nullptr) goto done; @@ -281,9 +288,6 @@ class CGroup *pmountpath = mountpath; *pmountroot = mountroot; mountpath = mountroot = nullptr; - goto done; - } - strTok = strtok_r(nullptr, ",", &context); } } } diff --git a/src/coreclr/src/hosts/CMakeLists.txt b/src/coreclr/src/hosts/CMakeLists.txt index e097f6098d4c..6cf6866bdab9 100644 --- a/src/coreclr/src/hosts/CMakeLists.txt +++ b/src/coreclr/src/hosts/CMakeLists.txt @@ -2,14 +2,9 @@ include_directories(inc) if(CLR_CMAKE_HOST_WIN32) add_subdirectory(corerun) - add_subdirectory(coreconsole) add_subdirectory(coreshim) else(CLR_CMAKE_HOST_WIN32) add_definitions(-D_FILE_OFFSET_BITS=64) add_subdirectory(unixcoreruncommon) add_subdirectory(unixcorerun) - add_subdirectory(unixcoreconsole) - if(CLR_CMAKE_HOST_OSX) - add_subdirectory(osxbundlerun) - endif(CLR_CMAKE_HOST_OSX) endif(CLR_CMAKE_HOST_WIN32) diff --git a/src/coreclr/src/hosts/coreconsole/CMakeLists.txt b/src/coreclr/src/hosts/coreconsole/CMakeLists.txt deleted file mode 100644 index 5d8aa8c742c5..000000000000 --- a/src/coreclr/src/hosts/coreconsole/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -project(CoreConsole) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CoreConsole_SOURCES coreconsole.cpp logger.cpp) -set(CoreConsole_RESOURCES native.rc) - -add_definitions(-DFX_VER_INTERNALNAME_STR=CoreConsole.exe) - -if(CLR_CMAKE_HOST_UNIX) - # This does not compile on Linux yet - if(CAN_BE_COMPILED_ON_LINUX) - _add_executable(CoreConsole - ${CoreConsole_SOURCES} - ${CoreConsole_RESOURCES} - ) - endif(CAN_BE_COMPILED_ON_LINUX) - -else() - _add_executable(CoreConsole - ${CoreConsole_SOURCES} - ${CoreConsole_RESOURCES} - ) - - target_link_libraries(CoreConsole - ${STATIC_MT_CRT_LIB} - ${STATIC_MT_VCRT_LIB} - ) - - # Can't compile on linux yet so only add for windows - install_clr(TARGETS CoreConsole) - -endif(CLR_CMAKE_HOST_UNIX) diff --git a/src/coreclr/src/hosts/coreconsole/coreconsole.cpp b/src/coreclr/src/hosts/coreconsole/coreconsole.cpp deleted file mode 100644 index 406525f8d77d..000000000000 --- a/src/coreclr/src/hosts/coreconsole/coreconsole.cpp +++ /dev/null @@ -1,658 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -// -// A simple CoreCLR host that runs a managed binary with the same name as this executable but with *.dll extension -// The dll binary must contain main entry point. -// - -#include "windows.h" -#include -#include "mscoree.h" -#include -#include "palclr.h" - -// The name of the CoreCLR native runtime DLL. -static const wchar_t *coreCLRDll = W("CoreCLR.dll"); - -// Dynamically expanding string buffer to hold TPA list -class StringBuffer { - static const int m_defaultSize = 4096; - wchar_t* m_buffer; - size_t m_capacity; - size_t m_length; - - StringBuffer(const StringBuffer&); - StringBuffer& operator =(const StringBuffer&); - -public: - StringBuffer() : m_buffer(nullptr), m_capacity(0), m_length(0) { - } - - ~StringBuffer() { - delete[] m_buffer; - } - - const wchar_t* CStr() const { - return m_buffer; - } - - void Append(const wchar_t* str, size_t strLen) { - if (!m_buffer) { - m_buffer = new wchar_t[m_defaultSize]; - m_capacity = m_defaultSize; - } - if (m_length + strLen + 1 > m_capacity) { - size_t newCapacity = (m_length + strLen + 1) * 2; - wchar_t* newBuffer = new wchar_t[newCapacity]; - wcsncpy_s(newBuffer, newCapacity, m_buffer, m_length); - delete[] m_buffer; - m_buffer = newBuffer; - m_capacity = newCapacity; - } - wcsncpy_s(m_buffer + m_length, m_capacity - m_length, str, strLen); - m_length += strLen; - } -}; - -// Encapsulates the environment that CoreCLR will run in, including the TPALIST -class HostEnvironment -{ - // The path to this module - wchar_t m_hostPath[MAX_LONGPATH]; - - // The path to the directory containing this module - wchar_t m_hostDirectoryPath[MAX_LONGPATH]; - - // The name of this module, without the path - wchar_t *m_hostExeName; - - // The list of paths to the assemblies that will be trusted by CoreCLR - StringBuffer m_tpaList; - - ICLRRuntimeHost4* m_CLRRuntimeHost; - - HMODULE m_coreCLRModule; - - Logger *m_log; - - - // Attempts to load CoreCLR.dll from the given directory. - // On success pins the dll, sets m_coreCLRDirectoryPath and returns the HMODULE. - // On failure returns nullptr. - HMODULE TryLoadCoreCLR(const wchar_t* directoryPath) { - - wchar_t coreCLRPath[MAX_LONGPATH]; - wcscpy_s(coreCLRPath, directoryPath); - wcscat_s(coreCLRPath, coreCLRDll); - - *m_log << W("Attempting to load: ") << coreCLRPath << Logger::endl; - - HMODULE result = ::LoadLibraryExW(coreCLRPath, NULL, 0); - if (!result) { - *m_log << W("Failed to load: ") << coreCLRPath << Logger::endl; - *m_log << W("Error code: ") << GetLastError() << Logger::endl; - return nullptr; - } - - // Pin the module - CoreCLR.dll does not support being unloaded. - HMODULE dummy_coreCLRModule; - if (!::GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_PIN, coreCLRPath, &dummy_coreCLRModule)) { - *m_log << W("Failed to pin: ") << coreCLRPath << Logger::endl; - return nullptr; - } - - wchar_t coreCLRLoadedPath[MAX_LONGPATH]; - ::GetModuleFileNameW(result, coreCLRLoadedPath, MAX_LONGPATH); - - *m_log << W("Loaded: ") << coreCLRLoadedPath << Logger::endl; - - return result; - } - -public: - // The path to the directory that CoreCLR is in - wchar_t m_coreCLRDirectoryPath[MAX_LONGPATH]; - - HostEnvironment(Logger *logger) - : m_CLRRuntimeHost(nullptr), m_log(logger) { - - // Discover the path to this exe's module. All other files are expected to be in the same directory. - DWORD thisModuleLength = ::GetModuleFileNameW(::GetModuleHandleW(nullptr), m_hostPath, MAX_LONGPATH); - - // Search for the last backslash in the host path. - int lastBackslashIndex; - for (lastBackslashIndex = thisModuleLength-1; lastBackslashIndex >= 0; lastBackslashIndex--) { - if (m_hostPath[lastBackslashIndex] == W('\\')) { - break; - } - } - - // Copy the directory path - ::wcsncpy_s(m_hostDirectoryPath, m_hostPath, lastBackslashIndex + 1); - - // Save the exe name - m_hostExeName = m_hostPath + lastBackslashIndex + 1; - - *m_log << W("Host directory: ") << m_hostDirectoryPath << Logger::endl; - - // Check for %CORE_ROOT% and try to load CoreCLR.dll from it if it is set - wchar_t coreRoot[MAX_LONGPATH]; - size_t outSize; - m_coreCLRModule = NULL; // Initialize this here since we don't call TryLoadCoreCLR if CORE_ROOT is unset. - if (_wgetenv_s(&outSize, coreRoot, MAX_LONGPATH, W("CORE_ROOT")) == 0 && outSize > 0) - { - wcscat_s(coreRoot, MAX_LONGPATH, W("\\")); - m_coreCLRModule = TryLoadCoreCLR(coreRoot); - } - else - { - *m_log << W("CORE_ROOT not set; skipping") << Logger::endl; - *m_log << W("You can set the environment variable CORE_ROOT to point to the path") << Logger::endl; - *m_log << W("where CoreCLR.dll lives to help this executable find it.") << Logger::endl; - } - - // Try to load CoreCLR from the directory that this exexutable is in - if (!m_coreCLRModule) { - m_coreCLRModule = TryLoadCoreCLR(m_hostDirectoryPath); - } - - if (m_coreCLRModule) { - - // Save the directory that CoreCLR was found in - DWORD modulePathLength = ::GetModuleFileNameW(m_coreCLRModule, m_coreCLRDirectoryPath, MAX_LONGPATH); - - // Search for the last backslash and terminate it there to keep just the directory path with trailing slash - for (lastBackslashIndex = modulePathLength-1; lastBackslashIndex >= 0; lastBackslashIndex--) { - if (m_coreCLRDirectoryPath[lastBackslashIndex] == W('\\')) { - m_coreCLRDirectoryPath[lastBackslashIndex + 1] = W('\0'); - break; - } - } - - } else { - *m_log << W("Unable to load ") << coreCLRDll << Logger::endl; - } - } - - bool TPAListContainsFile(_In_z_ wchar_t* fileNameWithoutExtension, _In_reads_(countExtensions) const wchar_t** rgTPAExtensions, int countExtensions) - { - if (!m_tpaList.CStr()) return false; - - for (int iExtension = 0; iExtension < countExtensions; iExtension++) - { - wchar_t fileName[MAX_LONGPATH]; - wcscpy_s(fileName, MAX_LONGPATH, W("\\")); // So that we don't match other files that end with the current file name - wcscat_s(fileName, MAX_LONGPATH, fileNameWithoutExtension); - wcscat_s(fileName, MAX_LONGPATH, rgTPAExtensions[iExtension] + 1); - wcscat_s(fileName, MAX_LONGPATH, W(";")); // So that we don't match other files that begin with the current file name - - if (wcsstr(m_tpaList.CStr(), fileName)) - { - return true; - } - } - return false; - } - - void RemoveExtensionAndNi(_In_z_ wchar_t* fileName) - { - // Remove extension, if it exists - wchar_t* extension = wcsrchr(fileName, W('.')); - if (extension != NULL) - { - extension[0] = W('\0'); - - // Check for .ni - size_t len = wcslen(fileName); - if (len > 3 && - fileName[len - 1] == W('i') && - fileName[len - 2] == W('n') && - fileName[len - 3] == W('.') ) - { - fileName[len - 3] = W('\0'); - } - } - } - - void AddFilesFromDirectoryToTPAList(_In_z_ wchar_t* targetPath, _In_reads_(countExtensions) const wchar_t** rgTPAExtensions, int countExtensions) - { - *m_log << W("Adding assemblies from ") << targetPath << W(" to the TPA list") << Logger::endl; - wchar_t assemblyPath[MAX_LONGPATH]; - - for (int iExtension = 0; iExtension < countExtensions; iExtension++) - { - wcscpy_s(assemblyPath, MAX_LONGPATH, targetPath); - - const size_t dirLength = wcslen(targetPath); - wchar_t* const fileNameBuffer = assemblyPath + dirLength; - const size_t fileNameBufferSize = MAX_LONGPATH - dirLength; - - wcscat_s(assemblyPath, rgTPAExtensions[iExtension]); - WIN32_FIND_DATA data; - HANDLE findHandle = FindFirstFile(assemblyPath, &data); - - if (findHandle != INVALID_HANDLE_VALUE) { - do { - if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { - // It seems that CoreCLR doesn't always use the first instance of an assembly on the TPA list (ni's may be preferred - // over il, even if they appear later). So, only include the first instance of a simple assembly name to allow - // users the opportunity to override Framework assemblies by placing dlls in %CORE_LIBRARIES% - - // ToLower for case-insensitive comparisons - wchar_t* fileNameChar = data.cFileName; - while (*fileNameChar) - { - *fileNameChar = towlower(*fileNameChar); - fileNameChar++; - } - - // Remove extension - wchar_t fileNameWithoutExtension[MAX_LONGPATH]; - wcscpy_s(fileNameWithoutExtension, MAX_LONGPATH, data.cFileName); - - RemoveExtensionAndNi(fileNameWithoutExtension); - - // Add to the list if not already on it - if (!TPAListContainsFile(fileNameWithoutExtension, rgTPAExtensions, countExtensions)) - { - const size_t fileLength = wcslen(data.cFileName); - const size_t assemblyPathLength = dirLength + fileLength; - wcsncpy_s(fileNameBuffer, fileNameBufferSize, data.cFileName, fileLength); - m_tpaList.Append(assemblyPath, assemblyPathLength); - m_tpaList.Append(W(";"), 1); - } - else - { - *m_log << W("Not adding ") << targetPath << data.cFileName << W(" to the TPA list because another file with the same name is already present on the list") << Logger::endl; - } - } - } while (0 != FindNextFile(findHandle, &data)); - - FindClose(findHandle); - } - } - } - - // Returns the semicolon-separated list of paths to runtime dlls that are considered trusted. - // On first call, scans the coreclr directory for dlls and adds them all to the list. - const wchar_t * GetTpaList() { - if (!m_tpaList.CStr()) { - const wchar_t *rgTPAExtensions[] = { - W("*.ni.dll"), // Probe for .ni.dll first so that it's preferred if ni and il coexist in the same dir - W("*.dll"), - W("*.ni.exe"), - W("*.exe"), - }; - - // Add files from %CORE_LIBRARIES% if specified - wchar_t coreLibraries[MAX_LONGPATH]; - size_t outSize; - if (_wgetenv_s(&outSize, coreLibraries, MAX_LONGPATH, W("CORE_LIBRARIES")) == 0 && outSize > 0) - { - wcscat_s(coreLibraries, MAX_LONGPATH, W("\\")); - AddFilesFromDirectoryToTPAList(coreLibraries, rgTPAExtensions, _countof(rgTPAExtensions)); - } - else - { - *m_log << W("CORE_LIBRARIES not set; skipping") << Logger::endl; - *m_log << W("You can set the environment variable CORE_LIBRARIES to point to a") << Logger::endl; - *m_log << W("path containing additional platform assemblies,") << Logger::endl; - } - - AddFilesFromDirectoryToTPAList(m_coreCLRDirectoryPath, rgTPAExtensions, _countof(rgTPAExtensions)); - } - - return m_tpaList.CStr(); - } - - // Returns the path to the host module - const wchar_t * GetHostPath() const { - return m_hostPath; - } - - // Returns the path to the host module - const wchar_t * GetHostExeName() const { - return m_hostExeName; - } - - // Returns the ICLRRuntimeHost4 instance, loading it from CoreCLR.dll if necessary, or nullptr on failure. - ICLRRuntimeHost4* GetCLRRuntimeHost() { - if (!m_CLRRuntimeHost) { - - if (!m_coreCLRModule) { - *m_log << W("Unable to load ") << coreCLRDll << Logger::endl; - return nullptr; - } - - *m_log << W("Finding GetCLRRuntimeHost(...)") << Logger::endl; - - FnGetCLRRuntimeHost pfnGetCLRRuntimeHost = - (FnGetCLRRuntimeHost)::GetProcAddress(m_coreCLRModule, "GetCLRRuntimeHost"); - - if (!pfnGetCLRRuntimeHost) { - *m_log << W("Failed to find function GetCLRRuntimeHost in ") << coreCLRDll << Logger::endl; - return nullptr; - } - - *m_log << W("Calling GetCLRRuntimeHost(...)") << Logger::endl; - - HRESULT hr = pfnGetCLRRuntimeHost(IID_ICLRRuntimeHost4, (IUnknown**)&m_CLRRuntimeHost); - if (FAILED(hr)) { - *m_log << W("Failed to get ICLRRuntimeHost4 interface. ERRORCODE: ") << hr << Logger::endl; - return nullptr; - } - } - - return m_CLRRuntimeHost; - } - - -}; - -bool TryRun(const int argc, const wchar_t* argv[], Logger &log, const bool verbose, const bool waitForDebugger, DWORD &exitCode, _In_z_ wchar_t* programPath) -{ - // Assume failure - exitCode = -1; - - HostEnvironment hostEnvironment(&log); - - wchar_t appPath[MAX_LONGPATH] = W(""); - wchar_t appNiPath[MAX_LONGPATH * 2] = W(""); - wchar_t managedAssemblyFullName[MAX_LONGPATH] = W(""); - - wchar_t* filePart = NULL; - - if (!::GetFullPathName(programPath, MAX_LONGPATH, appPath, &filePart)) { - log << W("Failed to get full path: ") << programPath << Logger::endl; - log << W("Error code: ") << GetLastError() << Logger::endl; - return false; - } - - wcscpy_s(managedAssemblyFullName, appPath); - - *(filePart) = W('\0'); - - log << W("Loading: ") << managedAssemblyFullName << Logger::endl; - - wcscpy_s(appNiPath, appPath); - wcscat_s(appNiPath, MAX_LONGPATH * 2, W(";")); - wcscat_s(appNiPath, MAX_LONGPATH * 2, appPath); - - // Construct native search directory paths - wchar_t nativeDllSearchDirs[MAX_LONGPATH * 3]; - - wcscpy_s(nativeDllSearchDirs, appPath); - wchar_t coreLibraries[MAX_LONGPATH]; - size_t outSize; - if (_wgetenv_s(&outSize, coreLibraries, MAX_LONGPATH, W("CORE_LIBRARIES")) == 0 && outSize > 0) - { - wcscat_s(nativeDllSearchDirs, MAX_LONGPATH * 3, W(";")); - wcscat_s(nativeDllSearchDirs, MAX_LONGPATH * 3, coreLibraries); - } - wcscat_s(nativeDllSearchDirs, MAX_LONGPATH * 3, W(";")); - wcscat_s(nativeDllSearchDirs, MAX_LONGPATH * 3, hostEnvironment.m_coreCLRDirectoryPath); - - // Start the CoreCLR - - ICLRRuntimeHost4 *host = hostEnvironment.GetCLRRuntimeHost(); - if (!host) { - return false; - } - - HRESULT hr; - - log << W("Setting ICLRRuntimeHost4 startup flags") << Logger::endl; - - // Default startup flags - hr = host->SetStartupFlags((STARTUP_FLAGS) - (STARTUP_FLAGS::STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN | - STARTUP_FLAGS::STARTUP_SINGLE_APPDOMAIN | - STARTUP_FLAGS::STARTUP_CONCURRENT_GC)); - if (FAILED(hr)) { - log << W("Failed to set startup flags. ERRORCODE: ") << hr << Logger::endl; - return false; - } - - log << W("Starting ICLRRuntimeHost4") << Logger::endl; - - hr = host->Start(); - if (FAILED(hr)) { - log << W("Failed to start CoreCLR. ERRORCODE: ") << hr << Logger:: endl; - return false; - } - - //------------------------------------------------------------- - - // Create an AppDomain - - // Allowed property names: - // APPBASE - // - The base path of the application from which the exe and other assemblies will be loaded - // - // TRUSTED_PLATFORM_ASSEMBLIES - // - The list of complete paths to each of the fully trusted assemblies - // - // APP_PATHS - // - The list of paths which will be probed by the assembly loader - // - // APP_NI_PATHS - // - The list of additional paths that the assembly loader will probe for ngen images - // - // NATIVE_DLL_SEARCH_DIRECTORIES - // - The list of paths that will be probed for native DLLs called by PInvoke - // - const wchar_t *property_keys[] = { - W("TRUSTED_PLATFORM_ASSEMBLIES"), - W("APP_PATHS"), - W("APP_NI_PATHS"), - W("NATIVE_DLL_SEARCH_DIRECTORIES"), - }; - const wchar_t *property_values[] = { - // TRUSTED_PLATFORM_ASSEMBLIES - hostEnvironment.GetTpaList(), - // APP_PATHS - appPath, - // APP_NI_PATHS - appNiPath, - // NATIVE_DLL_SEARCH_DIRECTORIES - nativeDllSearchDirs, - }; - - - log << W("Creating an AppDomain") << Logger::endl; - log << W("TRUSTED_PLATFORM_ASSEMBLIES=") << property_values[0] << Logger::endl; - log << W("APP_PATHS=") << property_values[1] << Logger::endl; - log << W("APP_NI_PATHS=") << property_values[2] << Logger::endl; - log << W("NATIVE_DLL_SEARCH_DIRECTORIES=") << property_values[3] << Logger::endl; - - DWORD domainId; - - hr = host->CreateAppDomainWithManager( - hostEnvironment.GetHostExeName(), // The friendly name of the AppDomain - // Flags: - // APPDOMAIN_ENABLE_PLATFORM_SPECIFIC_APPS - // - By default CoreCLR only allows platform neutral assembly to be run. To allow - // assemblies marked as platform specific, include this flag - // - // APPDOMAIN_ENABLE_PINVOKE_AND_CLASSIC_COMINTEROP - // - Allows sandboxed applications to make P/Invoke calls and use COM interop - // - // APPDOMAIN_SECURITY_SANDBOXED - // - Enables sandboxing. If not set, the app is considered full trust - // - // APPDOMAIN_IGNORE_UNHANDLED_EXCEPTION - // - Prevents the application from being torn down if a managed exception is unhandled - // - APPDOMAIN_ENABLE_PLATFORM_SPECIFIC_APPS | - APPDOMAIN_ENABLE_PINVOKE_AND_CLASSIC_COMINTEROP | - APPDOMAIN_DISABLE_TRANSPARENCY_ENFORCEMENT, - NULL, // Name of the assembly that contains the AppDomainManager implementation - NULL, // The AppDomainManager implementation type name - sizeof(property_keys)/sizeof(wchar_t*), // The number of properties - property_keys, - property_values, - &domainId); - - if (FAILED(hr)) { - log << W("Failed call to CreateAppDomainWithManager. ERRORCODE: ") << hr << Logger::endl; - return false; - } - - if(waitForDebugger) - { - if(!IsDebuggerPresent()) - { - log << W("Waiting for the debugger to attach. Press any key to continue ...") << Logger::endl; - getchar(); - if (IsDebuggerPresent()) - { - log << "Debugger is attached." << Logger::endl; - } - else - { - log << "Debugger failed to attach." << Logger::endl; - } - } - } - - hr = host->ExecuteAssembly(domainId, managedAssemblyFullName, argc, (argc)?&(argv[0]):NULL, &exitCode); - if (FAILED(hr)) { - log << W("Failed call to ExecuteAssembly. ERRORCODE: ") << hr << Logger::endl; - return false; - } - - log << W("App exit value = ") << exitCode << Logger::endl; - - - //------------------------------------------------------------- - - // Unload the AppDomain - - log << W("Unloading the AppDomain") << Logger::endl; - - hr = host->UnloadAppDomain2( - domainId, - true, - (int *)&exitCode); // Wait until done - - if (FAILED(hr)) { - log << W("Failed to unload the AppDomain. ERRORCODE: ") << hr << Logger::endl; - return false; - } - - log << W("App domain unloaded exit value = ") << exitCode << Logger::endl; - - //------------------------------------------------------------- - - // Stop the host - - log << W("Stopping the host") << Logger::endl; - - hr = host->Stop(); - - if (FAILED(hr)) { - log << W("Failed to stop the host. ERRORCODE: ") << hr << Logger::endl; - return false; - } - - //------------------------------------------------------------- - - // Release the reference to the host - - log << W("Releasing ICLRRuntimeHost4") << Logger::endl; - - host->Release(); - - return true; - -} - -void showHelp() { - ::wprintf( - W("Runs executables on CoreCLR\r\n") - W("\r\n") - W("USAGE: .exe [/_d] [/_v]\r\n") - W("\r\n") - W(" Runs .dll managed program on CoreCLR.\r\n") - W(" /_v causes verbose output to be written to the console.\r\n") - W(" /_d causes the process to wait for a debugger to attach before starting.\r\n") - W("\r\n") - W(" CoreCLR is searched for in %%core_root%%, then in the directory that this executable is in.\r\n") - W(" The program dll needs to be in the same directory as this executable.\r\n") - W(" The program dll needs to have main entry point.\r\n") - ); -} - -static wchar_t programPath[MAX_LONGPATH]; - -int __cdecl wmain(const int argc, const wchar_t* argv[]) -{ - DWORD dwModuleFileName = GetModuleFileName(NULL, programPath, MAX_LONGPATH); - if (dwModuleFileName == 0 || dwModuleFileName >= MAX_LONGPATH) { - ::wprintf(W("Failed to get the path to the current executable")); - return -1; - } - auto extension = wcsrchr(programPath, '.'); - if (extension == NULL || (wcscmp(extension, L".exe") != 0)) { - ::wprintf(W("This executable needs to have 'exe' extension")); - return -1; - } - - // Change the extension from ".exe" to ".dll" - extension[1] = 'd'; - extension[2] = 'l'; - extension[3] = 'l'; - - // Parse the options from the command line - bool verbose = false; - bool waitForDebugger = false; - bool helpRequested = false; - int newArgc = argc - 1; - const wchar_t **newArgv = argv + 1; - - auto stringsEqual = [](const wchar_t * const a, const wchar_t * const b) -> bool { - return ::_wcsicmp(a, b) == 0; - }; - - auto tryParseOption = [&](const wchar_t* arg) -> bool { - if ( stringsEqual(arg, W("/_v")) || stringsEqual(arg, W("-_v")) ) { - verbose = true; - return true; - } else if ( stringsEqual(arg, W("/_d")) || stringsEqual(arg, W("-_d")) ) { - waitForDebugger = true; - return true; - } else if ( stringsEqual(arg, W("/_h")) || stringsEqual(arg, W("-_h")) ) { - helpRequested = true; - return true; - } else { - return false; - } - }; - - while (newArgc > 0 && tryParseOption(newArgv[0])) { - newArgc--; - newArgv++; - } - - if (helpRequested) { - showHelp(); - return -1; - } - else { - Logger log; - if (verbose) { - log.Enable(); - } - else { - log.Disable(); - } - - DWORD exitCode; - auto success = TryRun(newArgc, newArgv, log, verbose, waitForDebugger, exitCode, programPath); - - log << W("Execution ") << (success ? W("succeeded") : W("failed")) << Logger::endl; - - return exitCode; - } -} diff --git a/src/coreclr/src/hosts/coreconsole/logger.cpp b/src/coreclr/src/hosts/coreconsole/logger.cpp deleted file mode 100644 index 071305d00791..000000000000 --- a/src/coreclr/src/hosts/coreconsole/logger.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#include -#include -#include -#include "palclr.h" - -void Logger::Enable() { - m_isEnabled = true; -} - -void Logger::Disable() { - m_isEnabled = false; -} - -void print(const wchar_t *val) { - // If val is longer than 2048 characters, wprintf will refuse to print it. - // So write it in chunks. - - const size_t chunkSize = 1024; - - wchar_t chunk[chunkSize]; - - auto valLength = ::wcslen(val); - - for (size_t i = 0 ; i < valLength ; i += chunkSize) { - - ::wcsncpy_s(chunk, chunkSize, val + i, _TRUNCATE); - - ::wprintf(W("%s"), chunk); - } -} - -Logger& Logger::operator<< (bool val) { - if (m_isEnabled) { - if (val) { - EnsurePrefixIsPrinted(); - print(W("true")); - } else { - EnsurePrefixIsPrinted(); - print(W("false")); - } - } - return *this; -} - -Logger& Logger::operator<< (int val) { - - if (m_isEnabled) { - EnsurePrefixIsPrinted(); - ::wprintf(W("%d"), val); - } - - return *this; -} - -#ifdef _MSC_VER -Logger& Logger::operator<< (long val) { - if (m_isEnabled) { - EnsurePrefixIsPrinted(); - ::wprintf(W("%d"), val); - } - return *this; -} - -Logger& Logger::operator<< (unsigned long val) { - if (m_isEnabled) { - EnsurePrefixIsPrinted(); - ::wprintf(W("%d"), val); - } - return *this; -} -#endif - -Logger& Logger::operator<< (const wchar_t *val) { - if (m_isEnabled) { - EnsurePrefixIsPrinted(); - print(val); - } - return *this; -} - -Logger& Logger::operator<< (Logger& ( *pf )(Logger&)) { - if (m_isEnabled) { - return pf(*this); - } else { - return *this; - } -} - -void Logger::EnsurePrefixIsPrinted() { - if (this->m_isEnabled && this->m_prefixRequired) { - print(W(" HOSTLOG: ")); - m_prefixRequired = false; - } -} - -// Manipulators - -// Newline -Logger& Logger::endl (Logger& log) { - if (log.m_isEnabled) { - log.EnsurePrefixIsPrinted(); - print(W("\r\n")); - log.m_prefixRequired = true; - log.m_formatHRESULT = false; - } - return log; -} - diff --git a/src/coreclr/src/hosts/coreconsole/logger.h b/src/coreclr/src/hosts/coreconsole/logger.h deleted file mode 100644 index 4226e4a2e653..000000000000 --- a/src/coreclr/src/hosts/coreconsole/logger.h +++ /dev/null @@ -1,53 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -// -// Logger for the CoreCLR host. -// Relies on the SYSCRT and therefore cannot use C++ libraries. -// - -class Logger { - bool m_isEnabled; - bool m_prefixRequired; - bool m_formatHRESULT; - -public: - Logger() : - m_isEnabled(true), - m_prefixRequired(true), - m_formatHRESULT(false) { } - - ~Logger() { } - - // Enables output from the logger - void Enable(); - - // Disables output from the logger - void Disable(); - - - Logger& operator<< (bool val); - Logger& operator<< (short val); - Logger& operator<< (unsigned short val); - Logger& operator<< (int val); - Logger& operator<< (unsigned int val); -#ifdef _MSC_VER - Logger& operator<< (long val); - Logger& operator<< (unsigned long val); -#endif - Logger& operator<< (float val); - Logger& operator<< (double val); - Logger& operator<< (long double val); - Logger& operator<< (const wchar_t* val); - Logger& operator<< (Logger& ( *pf )(Logger&)); - static Logger& endl ( Logger& log ); - static Logger& hresult ( Logger& log); - -private: - void EnsurePrefixIsPrinted(); -}; - - - - - diff --git a/src/coreclr/src/hosts/coreconsole/native.rc b/src/coreclr/src/hosts/coreconsole/native.rc deleted file mode 100644 index 302e69dd4714..000000000000 --- a/src/coreclr/src/hosts/coreconsole/native.rc +++ /dev/null @@ -1,7 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#define FX_VER_FILEDESCRIPTION_STR "Microsoft CoreCLR Program launcher\0" - -#include -#include diff --git a/src/coreclr/src/hosts/osxbundlerun/CMakeLists.txt b/src/coreclr/src/hosts/osxbundlerun/CMakeLists.txt deleted file mode 100644 index a09c3f330ad9..000000000000 --- a/src/coreclr/src/hosts/osxbundlerun/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -project(osxbundlerun) - -include_directories(../unixcoreruncommon) - -set(CORERUN_SOURCES - osxbundlerun.cpp -) - -_add_executable(osxbundlerun - ${CORERUN_SOURCES} -) - -target_link_libraries(osxbundlerun - dl - unixcoreruncommon -) - -add_dependencies(osxbundlerun - coreclr -) - -install_clr(TARGETS osxbundlerun) diff --git a/src/coreclr/src/hosts/osxbundlerun/osxbundlerun.cpp b/src/coreclr/src/hosts/osxbundlerun/osxbundlerun.cpp deleted file mode 100644 index 6a0ea83db4db..000000000000 --- a/src/coreclr/src/hosts/osxbundlerun/osxbundlerun.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -// CoreCLR boot loader for OSX app packages. -// -// Assumes the following app package structure -// -// /Contents/MacOS/yourAppName (osxbundlerun renamed to your app name) -// /Contents/CoreClrBundle/ The CoreCLR runtime, or a symlink to it if external -// /Contents/ManagedBundle/ Your managed assemblies, including yourAppName.exe -// -// Of course you can also include whatever else you might need in the app package -// -// Symlinking the CoreClrBundle is handy for dev/debug builds. eg: -// -// Contents> ln -s ~/dotnet/runtime/ CoreClrBundle -// -// All command line arguments are passed directly to the managed assembly's Main(args) -// Note that args[0] will be /Contents/MacOS/yourAppName, not /Contents/ManagedBundle/yourAppName.exe - - -#include -#include -#include -#include -#include - -int main(const int argc, const char* argv[]) -{ - // Make sure we have a full path for argv[0]. - std::string argv0AbsolutePath; - if (!GetAbsolutePath(argv[0], argv0AbsolutePath)) - { - perror("Could not get full path to current executable"); - return -1; - } - - // Get name of self and containing folder (typically the MacOS folder) - int lastSlashPos = argv0AbsolutePath.rfind('/'); - std::string appName = argv0AbsolutePath.substr(lastSlashPos+1); - std::string appFolder = argv0AbsolutePath.substr(0, lastSlashPos); - - // Strip off "MacOS" to get to the "Contents" folder - std::string contentsFolder; - if (!GetDirectory(appFolder.c_str(), contentsFolder)) - { - perror("Could not get Contents folder"); - return -1; - } - - // Append standard locations - std::string clrFilesAbsolutePath = contentsFolder + "/CoreClrBundle"; - std::string managedFolderAbsolutePath = contentsFolder + "/ManagedBundle/"; - std::string managedAssemblyAbsolutePath = managedFolderAbsolutePath + appName + ".exe"; - - // Pass all command line arguments to managed executable - const char** managedAssemblyArgv = argv; - int managedAssemblyArgc = argc; - - // Check if the specified managed assembly file exists - struct stat sb; - if (stat(managedAssemblyAbsolutePath.c_str(), &sb) == -1) - { - perror(managedAssemblyAbsolutePath.c_str()); - return -1; - } - - // Verify that the managed assembly path points to a file - if (!S_ISREG(sb.st_mode)) - { - fprintf(stderr, "The specified managed assembly is not a file\n"); - return -1; - } - - // And go... - int exitCode = ExecuteManagedAssembly( - argv0AbsolutePath.c_str(), - clrFilesAbsolutePath.c_str(), - managedAssemblyAbsolutePath.c_str(), - managedAssemblyArgc, - managedAssemblyArgv); - - return exitCode; -} diff --git a/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt b/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt deleted file mode 100644 index e62ea0a1f49a..000000000000 --- a/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -project(unixcoreconsole) - -include_directories(../unixcoreruncommon) - -set(CORECONSOLE_SOURCES - coreconsole.cpp -) - -_add_executable(coreconsole - ${CORECONSOLE_SOURCES} -) - -# FreeBSD and NetBSD implement dlopen(3) in libc -if(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) - target_link_libraries(coreconsole - dl - ) -endif(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) - -# Libc turns locks into no-ops if pthread was not loaded into process yet. Loading -# pthread by the process executable ensures that all locks are initialized properly. -target_link_libraries(coreconsole - unixcoreruncommon -) - -if(NOT CLR_CMAKE_TARGET_ANDROID) - target_link_libraries(coreconsole - pthread - ) -endif() - -install_clr(TARGETS coreconsole) diff --git a/src/coreclr/src/hosts/unixcoreconsole/coreconsole.cpp b/src/coreclr/src/hosts/unixcoreconsole/coreconsole.cpp deleted file mode 100644 index 44a0ac339489..000000000000 --- a/src/coreclr/src/hosts/unixcoreconsole/coreconsole.cpp +++ /dev/null @@ -1,154 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -// -// A simple CoreCLR host that runs a managed binary with the same name as this executable but with the *.dll extension -// The dll binary must contain a main entry point. -// - -#include -#include -#include -#include - -// Display the help text -void DisplayUsage() -{ - fprintf( - stderr, - "Runs executables on CoreCLR\n\n" - "Usage: [OPTIONS] [ARGUMENTS]\n" - "Runs .dll on CoreCLR.\n\n" - "Options:\n" - "-_c path to libcoreclr.so and the managed CLR assemblies.\n" - "-_h show this help message. \n"); -} - -// Parse the command line arguments -bool ParseArguments( - const int argc, - const char* argv[], - const char** clrFilesPath, - int* managedAssemblyArgc, - const char*** managedAssemblyArgv) -{ - bool success = true; - - *clrFilesPath = nullptr; - *managedAssemblyArgv = nullptr; - *managedAssemblyArgc = 0; - - for (int i = 1; i < argc; i++) - { - // Check for options. Options to the Unix coreconsole are prefixed with '-_' to match the convention - // used in the Windows version of coreconsole. - if (strncmp(argv[i], "-_", 2) == 0) - { - // Path to the libcoreclr.so and the managed CLR assemblies - if (strcmp(argv[i], "-_c") == 0) - { - i++; - if (i < argc) - { - *clrFilesPath = argv[i]; - } - else - { - fprintf(stderr, "Option %s: missing path\n", argv[i - 1]); - success = false; - break; - } - } - else if (strcmp(argv[i], "-_h") == 0) - { - DisplayUsage(); - success = false; - break; - } - else - { - fprintf(stderr, "Unknown option %s\n", argv[i]); - success = false; - break; - } - } - else - { - // We treat everything starting from the first non-option argument as arguments - // to the managed assembly. - *managedAssemblyArgc = argc - i; - if (*managedAssemblyArgc != 0) - { - *managedAssemblyArgv = &argv[i]; - } - - break; - } - } - - return success; -} - -int main(const int argc, const char* argv[]) -{ - // Make sure we have a full path for argv[0]. - std::string entryPointExecutablePath; - - if (!GetEntrypointExecutableAbsolutePath(entryPointExecutablePath)) - { - perror("Could not get full path to current executable"); - return -1; - } - - // We will try to load the managed assembly with the same name as this executable - // but with the .dll extension. - std::string programPath(entryPointExecutablePath); - programPath.append(".dll"); - const char* managedAssemblyAbsolutePath = programPath.c_str(); - - // Check if the specified managed assembly file exists - struct stat sb; - if (stat(managedAssemblyAbsolutePath, &sb) == -1) - { - perror("Managed assembly not found"); - return -1; - } - - // Verify that the managed assembly path points to a file - if (!S_ISREG(sb.st_mode)) - { - fprintf(stderr, "The specified managed assembly is not a file\n"); - return -1; - } - - const char* clrFilesPath; - const char** managedAssemblyArgv; - int managedAssemblyArgc; - - if (!ParseArguments( - argc, - argv, - &clrFilesPath, - &managedAssemblyArgc, - &managedAssemblyArgv - )) - { - // Invalid command line - return -1; - } - - std::string clrFilesAbsolutePath; - if(!GetClrFilesAbsolutePath(entryPointExecutablePath.c_str(), clrFilesPath, clrFilesAbsolutePath)) - { - return -1; - } - - int exitCode = ExecuteManagedAssembly( - entryPointExecutablePath.c_str(), - clrFilesAbsolutePath.c_str(), - managedAssemblyAbsolutePath, - managedAssemblyArgc, - managedAssemblyArgv); - - return exitCode; -} diff --git a/src/coreclr/src/ilasm/assembler.cpp b/src/coreclr/src/ilasm/assembler.cpp index 9748bf70488d..2e674dbd608f 100644 --- a/src/coreclr/src/ilasm/assembler.cpp +++ b/src/coreclr/src/ilasm/assembler.cpp @@ -2487,6 +2487,10 @@ BOOL Assembler::IsPortablePdb() return (m_pdbFormat == PORTABLE) && (m_pPortablePdbWriter != NULL); } +// This method is called after we have parsed the generic type parameters for either +// a generic class or a generic method. It calls CheckAddGenericParamConstraint on +// each generic parameter constraint that was recorded. +// void Assembler::RecordTypeConstraints(GenericParamConstraintList* pGPCList, int numTyPars, TyParDescr* tyPars) { if (numTyPars > 0) @@ -2503,13 +2507,18 @@ void Assembler::RecordTypeConstraints(GenericParamConstraintList* pGPCList, int for (int j = 0; j < numConstraints; j++) { mdToken tkTypeConstraint = ptk[j]; - CheckAddGenericParamConstraint(pGPCList, i, tkTypeConstraint); + + // pass false for isParamDirective, these constraints are from the class or method definition + // + CheckAddGenericParamConstraint(pGPCList, i, tkTypeConstraint, false); } } } } } +// AddGenericParamConstraint is called when we have a .param constraint directive after a class definition +// void Assembler::AddGenericParamConstraint(int index, char * pStrGenericParam, mdToken tkTypeConstraint) { if (!m_pCurClass) @@ -2545,13 +2554,20 @@ void Assembler::AddGenericParamConstraint(int index, char * pStrGenericParam, md return; } } - bool newlyAdded = CheckAddGenericParamConstraint(&m_pCurClass->m_GPCList, index, tkTypeConstraint); + + // pass true for isParamDirective, we are parsing a .param directive for a class here + // + CheckAddGenericParamConstraint(&m_pCurClass->m_GPCList, index, tkTypeConstraint, true); } -// returns true if we create a new GenericParamConstraintDescriptor -// reurns false if we return an already existing GenericParamConstraintDescriptor +// CheckAddGenericParamConstraint is called when we have to handle a generic parameter constraint +// When parsing a generic class/method definition isParamDirective is false - we have a generic type constaint +// for this case we do not setup m_pCustomDescrList as a .custom after a generic class/method definition is +// for the class/method +// When isParamDirective is true, we have a .param constraint directive and we will setup m_pCustomDescrList +// and any subsequent .custom is for the generic parameter constrant // -bool Assembler::CheckAddGenericParamConstraint(GenericParamConstraintList* pGPCList, int index, mdToken tkTypeConstraint) +void Assembler::CheckAddGenericParamConstraint(GenericParamConstraintList* pGPCList, int index, mdToken tkTypeConstraint, bool isParamDirective) { _ASSERTE(tkTypeConstraint != 0); _ASSERTE(index >= 0); @@ -2578,18 +2594,30 @@ bool Assembler::CheckAddGenericParamConstraint(GenericParamConstraintList* pGPCL if (match) { - m_pCustomDescrList = pGPC->CAList(); - return false; + // Found an existing generic parameter constraint + // + if (isParamDirective) + { + // Setup the custom descr list so that we can record + // custom attributes on this generic param contraint + // + m_pCustomDescrList = pGPC->CAList(); + } } else { - // not found add it to our list + // not found - add it to our pGPCList // GenericParamConstraintDescriptor* pNewGPCDescr = new GenericParamConstraintDescriptor(); pNewGPCDescr->Init(index, tkTypeConstraint); pGPCList->PUSH(pNewGPCDescr); - m_pCustomDescrList = pNewGPCDescr->CAList(); - return true; + if (isParamDirective) + { + // Setup the custom descr list so that we can record + // custom attributes on this generic param contraint + // + m_pCustomDescrList = pNewGPCDescr->CAList(); + } } } diff --git a/src/coreclr/src/ilasm/assembler.h b/src/coreclr/src/ilasm/assembler.h index 60aa014940d5..8f87df66645c 100644 --- a/src/coreclr/src/ilasm/assembler.h +++ b/src/coreclr/src/ilasm/assembler.h @@ -1289,7 +1289,7 @@ class Assembler { void AddGenericParamConstraint(int index, char * pStrGenericParam, mdToken tkTypeConstraint); - bool CheckAddGenericParamConstraint(GenericParamConstraintList* pGPCList, int index, mdToken tkTypeConstraint); + void CheckAddGenericParamConstraint(GenericParamConstraintList* pGPCList, int index, mdToken tkTypeConstraint, bool isParamDirective); void EmitGenericParamConstraints(int numTyPars, TyParDescr* pTyPars, mdToken tkOwner, GenericParamConstraintList* pGPCL); diff --git a/src/coreclr/src/ilasm/method.cpp b/src/coreclr/src/ilasm/method.cpp index 41df30f510f6..10fd7537f320 100644 --- a/src/coreclr/src/ilasm/method.cpp +++ b/src/coreclr/src/ilasm/method.cpp @@ -134,6 +134,8 @@ Label *Method::FindLabel(DWORD PC) return NULL; } +// Method::AddGenericParamConstraint is called when we have a .param constraint directive after a method definition +// void Method::AddGenericParamConstraint(int index, char * pStrGenericParam, mdToken tkTypeConstraint) { if (index > 0) @@ -164,7 +166,10 @@ void Method::AddGenericParamConstraint(int index, char * pStrGenericParam, mdTok return; } } - m_pAssembler->CheckAddGenericParamConstraint(&m_GPCList, index, tkTypeConstraint); + + // pass true for isParamDirective, we are parsing a .param directive for a method here + // + m_pAssembler->CheckAddGenericParamConstraint(&m_GPCList, index, tkTypeConstraint, true); } diff --git a/src/coreclr/src/inc/CrstTypes.def b/src/coreclr/src/inc/CrstTypes.def index 46eb9eaccc5f..642a4c19a028 100644 --- a/src/coreclr/src/inc/CrstTypes.def +++ b/src/coreclr/src/inc/CrstTypes.def @@ -73,10 +73,6 @@ // Each Crst type definition is currently in alphabetical order. Please maintain this convention. // -Crst AllowedFiles - AcquiredBefore JumpStubCache UniqueStack -End - Crst AppDomainCache AcquiredBefore UniqueStack UnresolvedClassLock End @@ -89,9 +85,6 @@ End Crst ArgBasedStubCache End -Crst AssemblyIdentityCache -End - Crst AssemblyLoader AcquiredBefore DeadlockDetection UniqueStack End @@ -100,9 +93,6 @@ Crst AvailableClass AcquiredBefore LoaderHeap End -Crst AssemblyDependencyGraph -End - Crst AvailableParamTypes AcquiredBefore ModuleLookupTable IbcProfile LoaderHeap End @@ -115,10 +105,6 @@ Crst CCompRC Unordered End -Crst Cer - AcquiredBefore JumpStubCache UniqueStack -End - Crst ClassFactInfoHash AcquiredBefore SyncBlockCache ThreadStore End @@ -132,30 +118,10 @@ Crst ClrNotification Unordered End -Crst CLRPrivBinderMaps -End - -Crst CLRPrivBinderMapsAdd - AcquiredBefore CLRPrivBinderMaps -End - Crst COMWrapperCache AcquiredBefore HandleTable UniqueStack End -Crst ConnectionNameTable -End - -Crst Contexts - AcquiredBefore AvailableParamTypes Cer ClassInit DeadlockDetection DomainLocalBlock FuncPtrStubs - GlobalStrLiteralMap Jit LoaderHeap ModuleLookupTable RWLock SigConvert SingleUseLock - StubUnwindInfoHeapSegments SyncBlockCache TypeIDMap UnresolvedClassLock -End - -Crst CSPCache - AcquiredBefore JumpStubCache -End - Crst DeadlockDetection End @@ -191,7 +157,7 @@ End // This is the major debugger lock. // It's the largest of the debugger locks. Crst DebuggerMutex - AcquiredBefore AvailableParamTypes ConnectionNameTable + AcquiredBefore AvailableParamTypes DynamicIL LoaderHeap ModuleLookupTable // Disabled per bug 581892 @@ -212,7 +178,6 @@ Crst DataTest2 AcquiredAfter DataTest1 End - Crst DbgTransport End @@ -230,20 +195,12 @@ Crst DynamicMT AcquiredBefore IbcProfile End -Crst DynLinkZapItems - AcquiredBefore LoaderHeap -End - Crst EventStore End Crst Exception End -Crst ExecuteManLock - AcquiredBefore UniqueStack -End - Crst ExecuteManRangeLock End @@ -255,26 +212,14 @@ Crst RetThunkCache AcquiredBefore LoaderHeap End -Crst FriendAccessCache - AcquiredBefore JumpStubCache UniqueStack -End - Crst FuncPtrStubs - AcquiredBefore IbcProfile LoaderHeap UniqueStack CodeFragmentHeap JumpStubCache PatchEntryPoint + AcquiredBefore IbcProfile LoaderHeap UniqueStack CodeFragmentHeap JumpStubCache End Crst FusionAppCtx AcquiredBefore PEImage End -Crst NativeBinderInit - Unordered -End - -Crst NativeImageCache - Unordered -End - Crst GCCover AcquiredBefore LoaderHeap CodeVersioning End @@ -312,11 +257,8 @@ Crst InstMethodHashTable AcquiredBefore LoaderHeap UniqueStack JumpStubCache End -Crst InterfaceVTableMap -End - Crst Interop - AcquiredBefore AppDomainHandleTable AvailableParamTypes Cer ClassInit DeadlockDetection DomainLocalBlock + AcquiredBefore AppDomainHandleTable AvailableParamTypes ClassInit DeadlockDetection DomainLocalBlock HandleTable InstMethodHashTable InteropData JitGenericHandleCache LoaderHeap SigConvert StubDispatchCache StubUnwindInfoHeapSegments SyncBlockCache TypeIDMap UnresolvedClassLock End @@ -325,15 +267,11 @@ Crst InteropData AcquiredBefore LoaderHeap UniqueStack End -Crst IOThreadpoolWorker - AcquiredBefore ThreadIdDispenser ThreadStore -End - Crst IsJMCMethod End Crst ISymUnmanagedReader - AcquiredBefore PEImagePDBStream UniqueStack JumpStubCache + AcquiredBefore UniqueStack JumpStubCache End Crst Jit @@ -354,9 +292,9 @@ End Crst JumpStubCache AcquiredBefore ExecuteManRangeLock LoaderHeap SingleUseLock - AcquiredAfter AppDomainCache ExecuteManLock + AcquiredAfter AppDomainCache ILStubGen ThreadpoolTimerQueue ThreadpoolWaitThreads - TPMethodTable TypeIDMap BaseDomain AssemblyLoader + TypeIDMap BaseDomain AssemblyLoader End Crst ListLock @@ -384,20 +322,10 @@ End Crst LoaderHeap End -Crst Mda -End - -Crst MetadataTracker - Unordered -End - Crst StubCache AcquiredBefore LoaderHeap End -Crst ModIntPairList -End - Crst Module AcquiredBefore LoaderHeap UniqueStack End @@ -410,9 +338,6 @@ Crst ModuleLookupTable AcquiredBefore LoaderHeap End -Crst MUThunkHash -End - Crst Nls End @@ -420,34 +345,22 @@ Crst ObjectList SameLevelAs ObjectList End -Crst OnEventManager -End - -Crst PatchEntryPoint -End - Crst PEImage AcquiredBefore UniqueStack End -Crst PEImagePDBStream -End - Crst PendingTypeLoadEntry AcquiredBefore AppDomainCache AppDomainHandleTable AssemblyLoader AvailableClass AvailableParamTypes BaseDomain ClassInit DeadlockDetection DebuggerController DebuggerJitInfo DebuggerMutex - DomainLocalBlock DynLinkZapItems Exception ExecuteManRangeLock FuncPtrStubs + DomainLocalBlock Exception ExecuteManRangeLock FuncPtrStubs FusionAppCtx GlobalStrLiteralMap HandleTable IbcProfile - IJWFixupData IJWHash ISymUnmanagedReader Jit JumpStubCache LoaderHeap ModIntPairList - Module ModuleLookupTable PEImage SecurityStackwalkCache SharedAssemblyCreate + IJWFixupData IJWHash ISymUnmanagedReader Jit JumpStubCache LoaderHeap + Module ModuleLookupTable PEImage SecurityStackwalkCache SigConvert SingleUseLock StubDispatchCache StubUnwindInfoHeapSegments SyncBlockCache SystemDomain ThreadIdDispenser ThreadStore TypeIDMap UnresolvedClassLock SameLevelAs PendingTypeLoadEntry End -Crst PinHandle -End - // ProfilerGCRefDataFreeList synchronizes access to the profiler API's list of // free, previously allocated structures that track moved references and // root references during a GC. @@ -461,26 +374,16 @@ End Crst ProfilingAPIStatus End -Crst PublisherCertificate -End - Crst RCWCache AcquiredBefore IbcProfile LoaderHeap RCWCleanupList End -Crst RCWRefCache - AcquiredBefore HandleTable -End - Crst RCWCleanupList End Crst ExternalObjectContextCache End -Crst ReDacl -End - Crst Reflection AcquiredBefore LoaderHeap UnresolvedClassLock End @@ -503,11 +406,11 @@ End // used to remember which types have been logged (to avoid duplicate logging of the // same type). Crst EtwTypeLogHash - AcquiredAfter AllowedFiles Cer SingleUseLock TPMethodTable + AcquiredAfter SingleUseLock End Crst Remoting - AcquiredBefore AppDomainHandleTable AvailableParamTypes Cer ClassInit DeadlockDetection DebuggerController + AcquiredBefore AppDomainHandleTable AvailableParamTypes ClassInit DeadlockDetection DebuggerController DebuggerHeapLock DebuggerJitInfo DebuggerMutex DomainLocalBlock ExecuteManRangeLock FuncPtrStubs GlobalStrLiteralMap HandleTable InstMethodHashTable Jit JitGenericHandleCache JumpStubCache LoaderHeap StubCache Module ModuleLookupTable SecurityStackwalkCache SigConvert @@ -515,9 +418,6 @@ Crst Remoting ThreadStore UnresolvedClassLock PendingTypeLoadEntry End -Crst RWLock -End - Crst SavedExceptionInfo AcquiredBefore DebuggerController End @@ -528,10 +428,6 @@ End Crst SecurityStackwalkCache End -Crst SharedAssemblyCreate - AcquiredBefore DeadlockDetection UniqueStack -End - Crst SigConvert AcquiredBefore LoaderHeap End @@ -552,9 +448,6 @@ Crst StressLog Unordered End -Crst StrongName -End - Crst CodeFragmentHeap AcquiredBefore SingleUseLock End @@ -588,9 +481,6 @@ End Crst ThreadIdDispenser End -Crst ThreadpoolEventCache -End - Crst ThreadpoolTimerQueue AcquiredBefore UniqueStack End @@ -603,20 +493,12 @@ Crst ThreadpoolWorker AcquiredBefore ThreadIdDispenser ThreadStore End -Crst ThreadStaticDataHashTable - AcquiredBefore SyncBlockCache -End - Crst ThreadStore - AcquiredBefore AvailableParamTypes ConnectionNameTable DeadlockDetection DebuggerController + AcquiredBefore AvailableParamTypes DeadlockDetection DebuggerController DebuggerHeapLock DebuggerJitInfo DynamicIL ExecuteManRangeLock HandleTable IbcProfile JitGenericHandleCache JumpStubCache LoaderHeap ModuleLookupTable ProfilingAPIStatus - ProfilerGCRefDataFreeList RWLock SingleUseLock SyncBlockCache SystemDomainDelayedUnloadList - ThreadIdDispenser ThreadStaticDataHashTable DebuggerMutex -End - -Crst TPMethodTable - AcquiredBefore DebuggerHeapLock LoaderHeap UniqueStack AvailableParamTypes + ProfilerGCRefDataFreeList SingleUseLock SyncBlockCache SystemDomainDelayedUnloadList + ThreadIdDispenser DebuggerMutex End Crst TypeIDMap @@ -627,15 +509,12 @@ Crst TypeEquivalenceMap AcquiredBefore LoaderHeap End -Crst UMThunkHash -End - Crst UniqueStack AcquiredBefore LoaderHeap End Crst UnresolvedClassLock - AcquiredBefore AvailableParamTypes DynLinkZapItems IbcProfile JumpStubCache + AcquiredBefore AvailableParamTypes IbcProfile JumpStubCache End Crst WrapperTemplate @@ -660,9 +539,6 @@ Crst MulticoreJitManager AcquiredBefore MulticoreJitHash ThreadStore End -Crst SqmManager -End - Crst StackSampler End diff --git a/src/coreclr/src/inc/bitvector.h b/src/coreclr/src/inc/bitvector.h index 0ef797f6e3c9..469b1d44728b 100644 --- a/src/coreclr/src/inc/bitvector.h +++ b/src/coreclr/src/inc/bitvector.h @@ -48,7 +48,7 @@ You should use mutator operators &=, |= ... instead of the non-mutators whenever possible to avoid creating a temps - Specifically did NOT supply automatic coersions to + Specifically did NOT supply automatic coercions to and from short types so that the programmer is aware of when code was being injected on their behalf. The upshot of this is that you have to use the BitVector() toUnsigned() to convert diff --git a/src/coreclr/src/inc/bundle.h b/src/coreclr/src/inc/bundle.h index c669790350db..e6c7a0a1dd18 100644 --- a/src/coreclr/src/inc/bundle.h +++ b/src/coreclr/src/inc/bundle.h @@ -34,20 +34,20 @@ struct BundleFileLocation bool IsValid() const { LIMITED_METHOD_CONTRACT; return Offset != 0; } }; -typedef bool(__stdcall BundleProbe)(LPCWSTR, INT64*, INT64*); +typedef bool(__stdcall BundleProbe)(LPCSTR, INT64*, INT64*); class Bundle { public: - Bundle(LPCWSTR bundlePath, BundleProbe *probe); - BundleFileLocation Probe(LPCWSTR path, bool pathIsBundleRelative = false) const; + Bundle(LPCSTR bundlePath, BundleProbe *probe); + BundleFileLocation Probe(const SString& path, bool pathIsBundleRelative = false) const; const SString &Path() const { LIMITED_METHOD_CONTRACT; return m_path; } const SString &BasePath() const { LIMITED_METHOD_CONTRACT; return m_basePath; } static Bundle* AppBundle; // The BundleInfo for the current app, initialized by coreclr_initialize. static bool AppIsBundle() { LIMITED_METHOD_CONTRACT; return AppBundle != nullptr; } - static BundleFileLocation ProbeAppBundle(LPCWSTR path, bool pathIsBundleRelative = false); + static BundleFileLocation ProbeAppBundle(const SString& path, bool pathIsBundleRelative = false); private: @@ -55,6 +55,7 @@ class Bundle BundleProbe *m_probe; SString m_basePath; // The prefix to denote a path within the bundle + COUNT_T m_basePathLength; }; #endif // _BUNDLE_H_ diff --git a/src/coreclr/src/inc/corinfo.h b/src/coreclr/src/inc/corinfo.h index 76be79c89f42..fa9db2c75939 100644 --- a/src/coreclr/src/inc/corinfo.h +++ b/src/coreclr/src/inc/corinfo.h @@ -208,11 +208,11 @@ TODO: Talk about initializing strutures before use // ////////////////////////////////////////////////////////////////////////////////////////////////////////// -constexpr GUID JITEEVersionIdentifier = { /* a0184d06-a562-43f6-94ad-44627db87310 */ - 0xa0184d06, - 0xa562, - 0x43f6, - {0x94, 0xad, 0x44, 0x62, 0x7d, 0xb8, 0x73, 0x10} +constexpr GUID JITEEVersionIdentifier = { /* 0d235fe4-65a1-487a-8553-c845496da901 */ + 0x0d235fe4, + 0x65a1, + 0x487a, + {0x85, 0x53, 0xc8, 0x45, 0x49, 0x6d, 0xa9, 0x01} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -623,6 +623,7 @@ enum CorInfoHelpFunc CORINFO_HELP_STACK_PROBE, // Probes each page of the allocated stack frame CORINFO_HELP_PATCHPOINT, // Notify runtime that code has reached a patchpoint + CORINFO_HELP_CLASSPROFILE, // Update class profile for a call site CORINFO_HELP_COUNT, }; @@ -1454,7 +1455,7 @@ struct CORINFO_HELPER_DESC // CORINFO_DEREF_THIS --> Deref the byref to get an object reference // // In addition, the "kind" field will be set as follows for constraint calls: - +// // CORINFO_CALL --> the call was resolved at compile time, and // can be compiled like a normal call. // CORINFO_CALL_CODE_POINTER --> the call was resolved, but the target address will be diff --git a/src/coreclr/src/inc/corjit.h b/src/coreclr/src/inc/corjit.h index 609bfc64b893..13a9e3312702 100644 --- a/src/coreclr/src/inc/corjit.h +++ b/src/coreclr/src/inc/corjit.h @@ -251,6 +251,34 @@ class ICorJitInfo : public ICorDynamicInfo UINT32 ExecutionCount; }; + // Data structure for a single class probe. + // + // ILOffset is the IL offset in the method for the call site being probed. + // Currently it must be ORed with CLASS_FLAG and (for interface calls) + // INTERFACE_FLAG. + // + // Count is the number of times a call was made at that call site. + // + // SIZE is the number of entries in the table. + // + // SAMPLE_INTERVAL must be >= SIZE. SAMPLE_INTERVAL / SIZE + // gives the average number of calls between table updates. + // + struct ClassProfile + { + enum { + SIZE = 8, + SAMPLE_INTERVAL = 32, + CLASS_FLAG = 0x80000000, + INTERFACE_FLAG = 0x40000000, + OFFSET_MASK = 0x3FFFFFFF + }; + + UINT32 ILOffset; + UINT32 Count; + CORINFO_CLASS_HANDLE ClassTable[SIZE]; + }; + // allocate a basic block profile buffer where execution counts will be stored // for jitted basic blocks. virtual HRESULT allocMethodBlockCounts ( @@ -267,6 +295,24 @@ class ICorJitInfo : public ICorDynamicInfo UINT32 * pNumRuns // pointer to the total number of profile scenarios run ) = 0; + // Get the likely implementing class for a virtual call or interface call made by ftnHnd + // at the indicated IL offset. baseHnd is the interface class or base class for the method + // being called. May returns NULL. + // + // pLikelihood is the estimated percent chance that the class at runtime is the class + // returned by this method. A well-estimated monomorphic call site will return a likelihood + // of 100. + // + // pNumberOfClasses is the estimated number of different classes seen at the site. + // A well-estimated monomorphic call site will return 1. + virtual CORINFO_CLASS_HANDLE getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32 * pLikelihood, // OUT, estimated likelihood of the class (0...100) + UINT32 * pNumberOfClasses // OUT, estimated number of possible classes + ) = 0; + // Associates a native call site, identified by its offset in the native code stream, with // the signature information and method handle the JIT used to lay out the call site. If // the call site has no signature information (e.g. a helper call) or has no method handle diff --git a/src/coreclr/src/inc/corjitflags.h b/src/coreclr/src/inc/corjitflags.h index 5cd57af5a94e..76f8816851a0 100644 --- a/src/coreclr/src/inc/corjitflags.h +++ b/src/coreclr/src/inc/corjitflags.h @@ -54,7 +54,7 @@ class CORJIT_FLAGS CORJIT_FLAG_OSR = 13, // Generate alternate method for On Stack Replacement - CORJIT_FLAG_UNUSED7 = 14, + CORJIT_FLAG_ALT_JIT = 14, // JIT should consider itself an ALT_JIT CORJIT_FLAG_UNUSED8 = 15, CORJIT_FLAG_UNUSED9 = 16, diff --git a/src/coreclr/src/inc/crsttypes.h b/src/coreclr/src/inc/crsttypes.h index 98c38c831f34..bbf65cf19a73 100644 --- a/src/coreclr/src/inc/crsttypes.h +++ b/src/coreclr/src/inc/crsttypes.h @@ -1,5 +1,7 @@ +// // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +// #ifndef __CRST_TYPES_INCLUDED #define __CRST_TYPES_INCLUDED @@ -13,160 +15,125 @@ // Each Crst type is declared as a value in the following CrstType enum. enum CrstType { - CrstAllowedFiles = 0, - CrstAppDomainCache = 1, - CrstAppDomainHandleTable = 2, - CrstArgBasedStubCache = 3, - CrstAssemblyDependencyGraph = 4, - CrstAssemblyIdentityCache = 5, - CrstAssemblyList = 6, - CrstAssemblyLoader = 7, - CrstAvailableClass = 8, - CrstAvailableParamTypes = 9, - CrstBaseDomain = 10, - CrstCCompRC = 11, - CrstCer = 12, - CrstClassFactInfoHash = 13, - CrstClassInit = 14, - CrstClrNotification = 15, - CrstCLRPrivBinderMaps = 16, - CrstCLRPrivBinderMapsAdd = 17, - CrstCodeFragmentHeap = 18, - CrstCodeVersioning = 19, - CrstCOMCallWrapper = 20, - CrstCOMWrapperCache = 21, - CrstConnectionNameTable = 22, - CrstContexts = 23, - CrstCSPCache = 24, - CrstDataTest1 = 25, - CrstDataTest2 = 26, - CrstDbgTransport = 27, - CrstDeadlockDetection = 28, - CrstDebuggerController = 29, - CrstDebuggerFavorLock = 30, - CrstDebuggerHeapExecMemLock = 31, - CrstDebuggerHeapLock = 32, - CrstDebuggerJitInfo = 33, - CrstDebuggerMutex = 34, - CrstDelegateToFPtrHash = 35, - CrstDomainLocalBlock = 36, - CrstDynamicIL = 37, - CrstDynamicMT = 38, - CrstDynLinkZapItems = 39, - CrstEtwTypeLogHash = 40, - CrstEventPipe = 41, - CrstEventStore = 42, - CrstException = 43, - CrstExecuteManLock = 44, - CrstExecuteManRangeLock = 45, - CrstExternalObjectContextCache = 46, - CrstFCall = 47, - CrstFriendAccessCache = 48, - CrstFuncPtrStubs = 49, - CrstFusionAppCtx = 50, - CrstGCCover = 51, - CrstGlobalStrLiteralMap = 52, - CrstHandleTable = 53, - CrstHostAssemblyMap = 54, - CrstHostAssemblyMapAdd = 55, - CrstIbcProfile = 56, - CrstIJWFixupData = 57, - CrstIJWHash = 58, - CrstILStubGen = 59, - CrstInlineTrackingMap = 60, - CrstInstMethodHashTable = 61, - CrstInterfaceVTableMap = 62, - CrstInterop = 63, - CrstInteropData = 64, - CrstIOThreadpoolWorker = 65, - CrstIsJMCMethod = 66, - CrstISymUnmanagedReader = 67, - CrstJit = 68, - CrstJitGenericHandleCache = 69, - CrstJitInlineTrackingMap = 70, - CrstJitPatchpoint = 71, - CrstJitPerf = 72, - CrstJumpStubCache = 73, - CrstLeafLock = 74, - CrstListLock = 75, - CrstLoaderAllocator = 76, - CrstLoaderAllocatorReferences = 77, - CrstLoaderHeap = 78, - CrstMda = 79, - CrstMetadataTracker = 80, - CrstMethodDescBackpatchInfoTracker = 81, - CrstModIntPairList = 82, - CrstModule = 83, - CrstModuleFixup = 84, - CrstModuleLookupTable = 85, - CrstMulticoreJitHash = 86, - CrstMulticoreJitManager = 87, - CrstMUThunkHash = 88, - CrstNativeBinderInit = 89, - CrstNativeImageCache = 90, - CrstNativeImageEagerFixups = 91, - CrstNativeImageLoad = 92, - CrstNls = 93, - CrstNotifyGdb = 94, - CrstObjectList = 95, - CrstOnEventManager = 96, - CrstPatchEntryPoint = 97, - CrstPEImage = 98, - CrstPEImagePDBStream = 99, - CrstPendingTypeLoadEntry = 100, - CrstPinHandle = 101, - CrstPinnedByrefValidation = 102, - CrstProfilerGCRefDataFreeList = 103, - CrstProfilingAPIStatus = 104, - CrstPublisherCertificate = 105, - CrstRCWCache = 106, - CrstRCWCleanupList = 107, - CrstRCWRefCache = 108, - CrstReadyToRunEntryPointToMethodDescMap = 109, - CrstReDacl = 110, - CrstReflection = 111, - CrstReJITGlobalRequest = 112, - CrstRemoting = 113, - CrstRetThunkCache = 114, - CrstRWLock = 115, - CrstSavedExceptionInfo = 116, - CrstSaveModuleProfileData = 117, - CrstSecurityStackwalkCache = 118, - CrstSharedAssemblyCreate = 119, - CrstSigConvert = 120, - CrstSingleUseLock = 121, - CrstSpecialStatics = 122, - CrstSqmManager = 123, - CrstStackSampler = 124, - CrstStressLog = 125, - CrstStrongName = 126, - CrstStubCache = 127, - CrstStubDispatchCache = 128, - CrstStubUnwindInfoHeapSegments = 129, - CrstSyncBlockCache = 130, - CrstSyncHashLock = 131, - CrstSystemBaseDomain = 132, - CrstSystemDomain = 133, - CrstSystemDomainDelayedUnloadList = 134, - CrstThreadIdDispenser = 135, - CrstThreadpoolEventCache = 136, - CrstThreadpoolTimerQueue = 137, - CrstThreadpoolWaitThreads = 138, - CrstThreadpoolWorker = 139, - CrstThreadStaticDataHashTable = 140, - CrstThreadStore = 141, - CrstTieredCompilation = 142, - CrstTPMethodTable = 143, - CrstTypeEquivalenceMap = 144, - CrstTypeIDMap = 145, - CrstUMEntryThunkCache = 146, - CrstUMThunkHash = 147, - CrstUniqueStack = 148, - CrstUnresolvedClassLock = 149, - CrstUnwindInfoTableLock = 150, - CrstVSDIndirectionCellLock = 151, - CrstWrapperTemplate = 152, - kNumberOfCrstTypes = 153 + CrstAppDomainCache = 0, + CrstAppDomainHandleTable = 1, + CrstArgBasedStubCache = 2, + CrstAssemblyList = 3, + CrstAssemblyLoader = 4, + CrstAvailableClass = 5, + CrstAvailableParamTypes = 6, + CrstBaseDomain = 7, + CrstCCompRC = 8, + CrstClassFactInfoHash = 9, + CrstClassInit = 10, + CrstClrNotification = 11, + CrstCodeFragmentHeap = 12, + CrstCodeVersioning = 13, + CrstCOMCallWrapper = 14, + CrstCOMWrapperCache = 15, + CrstDataTest1 = 16, + CrstDataTest2 = 17, + CrstDbgTransport = 18, + CrstDeadlockDetection = 19, + CrstDebuggerController = 20, + CrstDebuggerFavorLock = 21, + CrstDebuggerHeapExecMemLock = 22, + CrstDebuggerHeapLock = 23, + CrstDebuggerJitInfo = 24, + CrstDebuggerMutex = 25, + CrstDelegateToFPtrHash = 26, + CrstDomainLocalBlock = 27, + CrstDynamicIL = 28, + CrstDynamicMT = 29, + CrstEtwTypeLogHash = 30, + CrstEventPipe = 31, + CrstEventStore = 32, + CrstException = 33, + CrstExecuteManRangeLock = 34, + CrstExternalObjectContextCache = 35, + CrstFCall = 36, + CrstFuncPtrStubs = 37, + CrstFusionAppCtx = 38, + CrstGCCover = 39, + CrstGlobalStrLiteralMap = 40, + CrstHandleTable = 41, + CrstHostAssemblyMap = 42, + CrstHostAssemblyMapAdd = 43, + CrstIbcProfile = 44, + CrstIJWFixupData = 45, + CrstIJWHash = 46, + CrstILStubGen = 47, + CrstInlineTrackingMap = 48, + CrstInstMethodHashTable = 49, + CrstInterop = 50, + CrstInteropData = 51, + CrstIsJMCMethod = 52, + CrstISymUnmanagedReader = 53, + CrstJit = 54, + CrstJitGenericHandleCache = 55, + CrstJitInlineTrackingMap = 56, + CrstJitPatchpoint = 57, + CrstJitPerf = 58, + CrstJumpStubCache = 59, + CrstLeafLock = 60, + CrstListLock = 61, + CrstLoaderAllocator = 62, + CrstLoaderAllocatorReferences = 63, + CrstLoaderHeap = 64, + CrstMethodDescBackpatchInfoTracker = 65, + CrstModule = 66, + CrstModuleFixup = 67, + CrstModuleLookupTable = 68, + CrstMulticoreJitHash = 69, + CrstMulticoreJitManager = 70, + CrstNativeImageEagerFixups = 71, + CrstNativeImageLoad = 72, + CrstNls = 73, + CrstNotifyGdb = 74, + CrstObjectList = 75, + CrstPEImage = 76, + CrstPendingTypeLoadEntry = 77, + CrstPinnedByrefValidation = 78, + CrstProfilerGCRefDataFreeList = 79, + CrstProfilingAPIStatus = 80, + CrstRCWCache = 81, + CrstRCWCleanupList = 82, + CrstReadyToRunEntryPointToMethodDescMap = 83, + CrstReflection = 84, + CrstReJITGlobalRequest = 85, + CrstRemoting = 86, + CrstRetThunkCache = 87, + CrstSavedExceptionInfo = 88, + CrstSaveModuleProfileData = 89, + CrstSecurityStackwalkCache = 90, + CrstSigConvert = 91, + CrstSingleUseLock = 92, + CrstSpecialStatics = 93, + CrstStackSampler = 94, + CrstStressLog = 95, + CrstStubCache = 96, + CrstStubDispatchCache = 97, + CrstStubUnwindInfoHeapSegments = 98, + CrstSyncBlockCache = 99, + CrstSyncHashLock = 100, + CrstSystemBaseDomain = 101, + CrstSystemDomain = 102, + CrstSystemDomainDelayedUnloadList = 103, + CrstThreadIdDispenser = 104, + CrstThreadpoolTimerQueue = 105, + CrstThreadpoolWaitThreads = 106, + CrstThreadpoolWorker = 107, + CrstThreadStore = 108, + CrstTieredCompilation = 109, + CrstTypeEquivalenceMap = 110, + CrstTypeIDMap = 111, + CrstUMEntryThunkCache = 112, + CrstUniqueStack = 113, + CrstUnresolvedClassLock = 114, + CrstUnwindInfoTableLock = 115, + CrstVSDIndirectionCellLock = 116, + CrstWrapperTemplate = 117, + kNumberOfCrstTypes = 118 }; #endif // __CRST_TYPES_INCLUDED @@ -177,31 +144,22 @@ enum CrstType // An array mapping CrstType to level. int g_rgCrstLevelMap[] = { - 7, // CrstAllowedFiles 10, // CrstAppDomainCache 14, // CrstAppDomainHandleTable 0, // CrstArgBasedStubCache - 0, // CrstAssemblyDependencyGraph - 0, // CrstAssemblyIdentityCache 0, // CrstAssemblyList 7, // CrstAssemblyLoader 3, // CrstAvailableClass 4, // CrstAvailableParamTypes 7, // CrstBaseDomain -1, // CrstCCompRC - 7, // CrstCer 13, // CrstClassFactInfoHash 11, // CrstClassInit -1, // CrstClrNotification - 0, // CrstCLRPrivBinderMaps - 3, // CrstCLRPrivBinderMapsAdd 6, // CrstCodeFragmentHeap 9, // CrstCodeVersioning 0, // CrstCOMCallWrapper 4, // CrstCOMWrapperCache - 0, // CrstConnectionNameTable - 17, // CrstContexts - 7, // CrstCSPCache 3, // CrstDataTest1 0, // CrstDataTest2 0, // CrstDbgTransport @@ -216,16 +174,13 @@ int g_rgCrstLevelMap[] = 16, // CrstDomainLocalBlock 0, // CrstDynamicIL 3, // CrstDynamicMT - 3, // CrstDynLinkZapItems 0, // CrstEtwTypeLogHash 18, // CrstEventPipe 0, // CrstEventStore 0, // CrstException - 7, // CrstExecuteManLock 0, // CrstExecuteManRangeLock 0, // CrstExternalObjectContextCache 3, // CrstFCall - 7, // CrstFriendAccessCache 7, // CrstFuncPtrStubs 10, // CrstFusionAppCtx 10, // CrstGCCover @@ -239,10 +194,8 @@ int g_rgCrstLevelMap[] = 7, // CrstILStubGen 3, // CrstInlineTrackingMap 17, // CrstInstMethodHashTable - 0, // CrstInterfaceVTableMap 18, // CrstInterop 4, // CrstInteropData - 13, // CrstIOThreadpoolWorker 0, // CrstIsJMCMethod 7, // CrstISymUnmanagedReader 11, // CrstJit @@ -256,54 +209,37 @@ int g_rgCrstLevelMap[] = 15, // CrstLoaderAllocator 16, // CrstLoaderAllocatorReferences 0, // CrstLoaderHeap - 0, // CrstMda - -1, // CrstMetadataTracker 14, // CrstMethodDescBackpatchInfoTracker - 0, // CrstModIntPairList 4, // CrstModule 15, // CrstModuleFixup 3, // CrstModuleLookupTable 0, // CrstMulticoreJitHash 13, // CrstMulticoreJitManager - 0, // CrstMUThunkHash - -1, // CrstNativeBinderInit - -1, // CrstNativeImageCache 0, // CrstNativeImageEagerFixups 0, // CrstNativeImageLoad 0, // CrstNls 0, // CrstNotifyGdb 2, // CrstObjectList - 0, // CrstOnEventManager - 0, // CrstPatchEntryPoint 4, // CrstPEImage - 0, // CrstPEImagePDBStream 19, // CrstPendingTypeLoadEntry - 0, // CrstPinHandle 0, // CrstPinnedByrefValidation 0, // CrstProfilerGCRefDataFreeList 0, // CrstProfilingAPIStatus - 0, // CrstPublisherCertificate 3, // CrstRCWCache 0, // CrstRCWCleanupList - 3, // CrstRCWRefCache 10, // CrstReadyToRunEntryPointToMethodDescMap - 0, // CrstReDacl 8, // CrstReflection 17, // CrstReJITGlobalRequest 20, // CrstRemoting 3, // CrstRetThunkCache - 0, // CrstRWLock 3, // CrstSavedExceptionInfo 0, // CrstSaveModuleProfileData 0, // CrstSecurityStackwalkCache - 4, // CrstSharedAssemblyCreate 3, // CrstSigConvert 5, // CrstSingleUseLock 0, // CrstSpecialStatics - 0, // CrstSqmManager 0, // CrstStackSampler -1, // CrstStressLog - 0, // CrstStrongName 5, // CrstStubCache 0, // CrstStubDispatchCache 4, // CrstStubUnwindInfoHeapSegments @@ -313,18 +249,14 @@ int g_rgCrstLevelMap[] = 13, // CrstSystemDomain 0, // CrstSystemDomainDelayedUnloadList 0, // CrstThreadIdDispenser - 0, // CrstThreadpoolEventCache 7, // CrstThreadpoolTimerQueue 7, // CrstThreadpoolWaitThreads 13, // CrstThreadpoolWorker - 4, // CrstThreadStaticDataHashTable 12, // CrstThreadStore 8, // CrstTieredCompilation - 7, // CrstTPMethodTable 3, // CrstTypeEquivalenceMap 10, // CrstTypeIDMap 3, // CrstUMEntryThunkCache - 0, // CrstUMThunkHash 3, // CrstUniqueStack 7, // CrstUnresolvedClassLock 3, // CrstUnwindInfoTableLock @@ -335,31 +267,22 @@ int g_rgCrstLevelMap[] = // An array mapping CrstType to a stringized name. LPCSTR g_rgCrstNameMap[] = { - "CrstAllowedFiles", "CrstAppDomainCache", "CrstAppDomainHandleTable", "CrstArgBasedStubCache", - "CrstAssemblyDependencyGraph", - "CrstAssemblyIdentityCache", "CrstAssemblyList", "CrstAssemblyLoader", "CrstAvailableClass", "CrstAvailableParamTypes", "CrstBaseDomain", "CrstCCompRC", - "CrstCer", "CrstClassFactInfoHash", "CrstClassInit", "CrstClrNotification", - "CrstCLRPrivBinderMaps", - "CrstCLRPrivBinderMapsAdd", "CrstCodeFragmentHeap", "CrstCodeVersioning", "CrstCOMCallWrapper", "CrstCOMWrapperCache", - "CrstConnectionNameTable", - "CrstContexts", - "CrstCSPCache", "CrstDataTest1", "CrstDataTest2", "CrstDbgTransport", @@ -374,16 +297,13 @@ LPCSTR g_rgCrstNameMap[] = "CrstDomainLocalBlock", "CrstDynamicIL", "CrstDynamicMT", - "CrstDynLinkZapItems", "CrstEtwTypeLogHash", "CrstEventPipe", "CrstEventStore", "CrstException", - "CrstExecuteManLock", "CrstExecuteManRangeLock", "CrstExternalObjectContextCache", "CrstFCall", - "CrstFriendAccessCache", "CrstFuncPtrStubs", "CrstFusionAppCtx", "CrstGCCover", @@ -397,10 +317,8 @@ LPCSTR g_rgCrstNameMap[] = "CrstILStubGen", "CrstInlineTrackingMap", "CrstInstMethodHashTable", - "CrstInterfaceVTableMap", "CrstInterop", "CrstInteropData", - "CrstIOThreadpoolWorker", "CrstIsJMCMethod", "CrstISymUnmanagedReader", "CrstJit", @@ -414,54 +332,37 @@ LPCSTR g_rgCrstNameMap[] = "CrstLoaderAllocator", "CrstLoaderAllocatorReferences", "CrstLoaderHeap", - "CrstMda", - "CrstMetadataTracker", "CrstMethodDescBackpatchInfoTracker", - "CrstModIntPairList", "CrstModule", "CrstModuleFixup", "CrstModuleLookupTable", "CrstMulticoreJitHash", "CrstMulticoreJitManager", - "CrstMUThunkHash", - "CrstNativeBinderInit", - "CrstNativeImageCache", "CrstNativeImageEagerFixups", "CrstNativeImageLoad", "CrstNls", "CrstNotifyGdb", "CrstObjectList", - "CrstOnEventManager", - "CrstPatchEntryPoint", "CrstPEImage", - "CrstPEImagePDBStream", "CrstPendingTypeLoadEntry", - "CrstPinHandle", "CrstPinnedByrefValidation", "CrstProfilerGCRefDataFreeList", "CrstProfilingAPIStatus", - "CrstPublisherCertificate", "CrstRCWCache", "CrstRCWCleanupList", - "CrstRCWRefCache", "CrstReadyToRunEntryPointToMethodDescMap", - "CrstReDacl", "CrstReflection", "CrstReJITGlobalRequest", "CrstRemoting", "CrstRetThunkCache", - "CrstRWLock", "CrstSavedExceptionInfo", "CrstSaveModuleProfileData", "CrstSecurityStackwalkCache", - "CrstSharedAssemblyCreate", "CrstSigConvert", "CrstSingleUseLock", "CrstSpecialStatics", - "CrstSqmManager", "CrstStackSampler", "CrstStressLog", - "CrstStrongName", "CrstStubCache", "CrstStubDispatchCache", "CrstStubUnwindInfoHeapSegments", @@ -471,18 +372,14 @@ LPCSTR g_rgCrstNameMap[] = "CrstSystemDomain", "CrstSystemDomainDelayedUnloadList", "CrstThreadIdDispenser", - "CrstThreadpoolEventCache", "CrstThreadpoolTimerQueue", "CrstThreadpoolWaitThreads", "CrstThreadpoolWorker", - "CrstThreadStaticDataHashTable", "CrstThreadStore", "CrstTieredCompilation", - "CrstTPMethodTable", "CrstTypeEquivalenceMap", "CrstTypeIDMap", "CrstUMEntryThunkCache", - "CrstUMThunkHash", "CrstUniqueStack", "CrstUnresolvedClassLock", "CrstUnwindInfoTableLock", diff --git a/src/coreclr/src/inc/dacvars.h b/src/coreclr/src/inc/dacvars.h index 92f3edf77855..9f2b5c96fae4 100644 --- a/src/coreclr/src/inc/dacvars.h +++ b/src/coreclr/src/inc/dacvars.h @@ -162,9 +162,6 @@ DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pObjectClass, ::g_pObjectClass DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pRuntimeTypeClass, ::g_pRuntimeTypeClass) DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pCanonMethodTableClass, ::g_pCanonMethodTableClass) DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pStringClass, ::g_pStringClass) -#ifdef FEATURE_UTF8STRING -DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pUtf8StringClass, ::g_pUtf8StringClass) -#endif // FEATURE_UTF8STRING DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pArrayClass, ::g_pArrayClass) DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pSZArrayHelperClass, ::g_pSZArrayHelperClass) DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pNullableClass, ::g_pNullableClass) diff --git a/src/coreclr/src/inc/gcinfodecoder.h b/src/coreclr/src/inc/gcinfodecoder.h index 576b5201623d..13b95756302a 100644 --- a/src/coreclr/src/inc/gcinfodecoder.h +++ b/src/coreclr/src/inc/gcinfodecoder.h @@ -42,12 +42,12 @@ typedef ArrayDPTR(const uint8_t) PTR_CBYTE; #define VALIDATE_ROOT(isInterior, hCallBack, pObjRef) -#define UINT32 UInt32 -#define INT32 Int32 -#define UINT16 UInt16 -#define UINT UInt32 -#define SIZE_T UIntNative -#define SSIZE_T IntNative +#define UINT32 uint32_t +#define INT32 int32_t +#define UINT16 uint16_t +#define UINT uint32_t +#define SIZE_T uintptr_t +#define SSIZE_T intptr_t #define LPVOID void* typedef void * OBJECTREF; diff --git a/src/coreclr/src/inc/jithelpers.h b/src/coreclr/src/inc/jithelpers.h index a1f687893018..38f518251cf5 100644 --- a/src/coreclr/src/inc/jithelpers.h +++ b/src/coreclr/src/inc/jithelpers.h @@ -355,6 +355,7 @@ #endif JITHELPER(CORINFO_HELP_PATCHPOINT, JIT_Patchpoint, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_CLASSPROFILE, JIT_ClassProfile, CORINFO_HELP_SIG_REG_ONLY) #undef JITHELPER #undef DYNAMICJITHELPER diff --git a/src/coreclr/src/inc/ngen.h b/src/coreclr/src/inc/ngen.h index 9e63b30d4b41..3f8f5aa42d3c 100644 --- a/src/coreclr/src/inc/ngen.h +++ b/src/coreclr/src/inc/ngen.h @@ -22,7 +22,7 @@ // ngen events. (Roughly 200KB of space including secondary log file.) #define DEFAULT_APPLOCAL_WIDE_LOG_SIZE (100*1024) -#define NGEN_LOG_HEADER_TEXT W("To learn about increasing the verbosity of the NGen log files please see http://go.microsoft.com/fwlink/?linkid=210113\r\n") +#define NGEN_LOG_HEADER_TEXT W("To learn about increasing the verbosity of the NGen log files please see https://go.microsoft.com/fwlink/?linkid=210113\r\n") // supported debug info types enum DebugType diff --git a/src/coreclr/src/inc/sospriv.idl b/src/coreclr/src/inc/sospriv.idl index dae0a4ff5208..6da8b5814f7e 100644 --- a/src/coreclr/src/inc/sospriv.idl +++ b/src/coreclr/src/inc/sospriv.idl @@ -413,7 +413,7 @@ interface ISOSDacInterface8 : IUnknown // Increment anytime there is a change in the data structures that SOS depends on like // stress log structs (StressMsg, StressLogChunck, ThreadStressLog, etc), exception // stack traces (StackTraceElement), the PredefinedTlsSlots enums, etc. -cpp_quote("#define SOS_BREAKING_CHANGE_VERSION 1") +cpp_quote("#define SOS_BREAKING_CHANGE_VERSION 2") [ object, diff --git a/src/coreclr/src/jit/CMakeLists.txt b/src/coreclr/src/jit/CMakeLists.txt index 33057b1004f2..914dc83bc5c7 100644 --- a/src/coreclr/src/jit/CMakeLists.txt +++ b/src/coreclr/src/jit/CMakeLists.txt @@ -14,7 +14,7 @@ function(create_standalone_jit) set(oneValueArgs TARGET OS ARCH) set(multiValueArgs ADDITIONAL_DESTINATIONS) - set(options NOALTJIT) + set(options) cmake_parse_arguments(TARGETDETAILS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(JIT_ARCH_LINK_LIBRARIES gcinfo_${TARGETDETAILS_OS}_${TARGETDETAILS_ARCH}) @@ -40,10 +40,6 @@ function(create_standalone_jit) set_target_definitions_to_custom_os_and_arch(${ARGN}) set_target_properties(${TARGETDETAILS_TARGET} PROPERTIES IGNORE_FEATURE_MERGE_JIT_AND_ENGINE TRUE) - if (NOT TARGETDETAILS_NOALTJIT) - target_compile_definitions(${TARGETDETAILS_TARGET} PRIVATE ALT_JIT) - endif (NOT TARGETDETAILS_NOALTJIT) - target_compile_definitions(${TARGETDETAILS_TARGET} PRIVATE FEATURE_NO_HOST) target_compile_definitions(${TARGETDETAILS_TARGET} PRIVATE SELF_NO_HOST) if(FEATURE_READYTORUN) @@ -461,7 +457,7 @@ else() set(TARGET_OS_NAME win) endif() -create_standalone_jit(TARGET clrjit OS ${TARGET_OS_NAME} ARCH ${ARCH_TARGET_NAME} NOALTJIT ADDITIONAL_DESTINATIONS sharedFramework) +create_standalone_jit(TARGET clrjit OS ${TARGET_OS_NAME} ARCH ${ARCH_TARGET_NAME} ADDITIONAL_DESTINATIONS sharedFramework) # Enable profile guided optimization add_pgo(clrjit) diff --git a/src/coreclr/src/jit/assertionprop.cpp b/src/coreclr/src/jit/assertionprop.cpp index 135bc1e5083f..0953ca5b6314 100644 --- a/src/coreclr/src/jit/assertionprop.cpp +++ b/src/coreclr/src/jit/assertionprop.cpp @@ -129,7 +129,7 @@ void Compiler::optAddCopies() } // We require that the weighted ref count be significant. - if (varDsc->lvRefCntWtd() <= (BB_LOOP_WEIGHT * BB_UNITY_WEIGHT / 2)) + if (varDsc->lvRefCntWtd() <= (BB_LOOP_WEIGHT_SCALE * BB_UNITY_WEIGHT / 2)) { continue; } @@ -143,7 +143,8 @@ void Compiler::optAddCopies() BlockSet paramImportantUseDom(BlockSetOps::MakeFull(this)); // This will be threshold for determining heavier-than-average uses - unsigned paramAvgWtdRefDiv2 = (varDsc->lvRefCntWtd() + varDsc->lvRefCnt() / 2) / (varDsc->lvRefCnt() * 2); + BasicBlock::weight_t paramAvgWtdRefDiv2 = + (varDsc->lvRefCntWtd() + varDsc->lvRefCnt() / 2) / (varDsc->lvRefCnt() * 2); bool paramFoundImportantUse = false; @@ -306,9 +307,9 @@ void Compiler::optAddCopies() /* dominates all the uses of the local variable */ /* Our default is to use the first block */ - BasicBlock* bestBlock = fgFirstBB; - unsigned bestWeight = bestBlock->getBBWeight(this); - BasicBlock* block = bestBlock; + BasicBlock* bestBlock = fgFirstBB; + BasicBlock::weight_t bestWeight = bestBlock->getBBWeight(this); + BasicBlock* block = bestBlock; #ifdef DEBUG if (verbose) @@ -1625,7 +1626,8 @@ void Compiler::optDebugCheckAssertion(AssertionDsc* assertion) assert(assertion->op2.u1.iconFlags != 0); break; case O1K_LCLVAR: - assert((lvaTable[assertion->op1.lcl.lclNum].lvType != TYP_REF) || (assertion->op2.u1.iconVal == 0)); + assert((lvaTable[assertion->op1.lcl.lclNum].lvType != TYP_REF) || + (assertion->op2.u1.iconVal == 0) || doesMethodHaveFrozenString()); break; case O1K_VALUE_NUMBER: assert((vnStore->TypeOfVN(assertion->op1.vn) != TYP_REF) || (assertion->op2.u1.iconVal == 0)); @@ -2163,22 +2165,20 @@ void Compiler::optAssertionGen(GenTree* tree) break; case GT_CALL: + { // A virtual call can create a non-null assertion. We transform some virtual calls into non-virtual calls // with a GTF_CALL_NULLCHECK flag set. - if ((tree->gtFlags & GTF_CALL_NULLCHECK) || tree->AsCall()->IsVirtual()) + // Ignore tail calls because they have 'this` pointer in the regular arg list and an implicit null check. + GenTreeCall* const call = tree->AsCall(); + if (call->NeedsNullCheck() || (call->IsVirtual() && !call->IsTailCall())) { - // Retrieve the 'this' arg - GenTree* thisArg = gtGetThisArg(tree->AsCall()); - if (thisArg == nullptr) - { - // For tail calls we lose the this pointer in the argument list but that's OK because a null check - // was made explicit, so we get the assertion when we walk the GT_IND in the argument list. - noway_assert(tree->AsCall()->IsTailCall()); - break; - } + // Retrieve the 'this' arg. + GenTree* thisArg = gtGetThisArg(call); + assert(thisArg != nullptr); assertionInfo = optCreateAssertion(thisArg, nullptr, OAK_NOT_EQUAL); } - break; + } + break; case GT_CAST: // We only create this assertion for global assertion prop diff --git a/src/coreclr/src/jit/block.h b/src/coreclr/src/jit/block.h index 949b2460c6b1..f996893beba1 100644 --- a/src/coreclr/src/jit/block.h +++ b/src/coreclr/src/jit/block.h @@ -448,6 +448,7 @@ struct BasicBlock : private LIR::Range #define BBF_BACKWARD_JUMP_TARGET MAKE_BBFLAG(36) // Block is a target of a backward jump #define BBF_PATCHPOINT MAKE_BBFLAG(37) // Block is a patchpoint +#define BBF_HAS_CLASS_PROFILE MAKE_BBFLAG(38) // BB contains a call needing a class profile // clang-format on @@ -492,7 +493,7 @@ struct BasicBlock : private LIR::Range #define BBF_SPLIT_GAINED \ (BBF_DONT_REMOVE | BBF_HAS_LABEL | BBF_HAS_JMP | BBF_BACKWARD_JUMP | BBF_HAS_IDX_LEN | BBF_HAS_NEWARRAY | \ BBF_PROF_WEIGHT | BBF_HAS_NEWOBJ | BBF_KEEP_BBJ_ALWAYS | BBF_CLONED_FINALLY_END | BBF_HAS_NULLCHECK | \ - BBF_HAS_VTABREF) + BBF_HAS_VTABREF | BBF_HAS_CLASS_PROFILE) #ifndef __GNUC__ // GCC doesn't like C_ASSERT at global scope static_assert_no_msg((BBF_SPLIT_NONEXIST & BBF_SPLIT_LOST) == 0); @@ -514,16 +515,14 @@ struct BasicBlock : private LIR::Range const char* dspToString(int blockNumPadding = 0); #endif // DEBUG - typedef unsigned weight_t; // Type used to hold block and edge weights - // Note that for CLR v2.0 and earlier our - // block weights were stored using unsigned shorts + // Type used to hold block and edge weights + typedef float weight_t; -#define BB_UNITY_WEIGHT 100 // how much a normal execute once block weights -#define BB_LOOP_WEIGHT 8 // how much more loops are weighted -#define BB_ZERO_WEIGHT 0 -#define BB_MAX_WEIGHT UINT32_MAX // we're using an 'unsigned' for the weight -#define BB_VERY_HOT_WEIGHT 256 // how many average hits a BB has (per BBT scenario run) for this block - // to be considered as very hot +#define BB_UNITY_WEIGHT 100.0f // how much a normal execute once block weighs +#define BB_UNITY_WEIGHT_UNSIGNED 100 // how much a normal execute once block weighs +#define BB_LOOP_WEIGHT_SCALE 8.0f // synthetic profile scale factor for loops +#define BB_ZERO_WEIGHT 0.0f +#define BB_MAX_WEIGHT FLT_MAX // maximum finite weight -- needs rethinking. weight_t bbWeight; // The dynamic execution weight of this block @@ -551,7 +550,7 @@ struct BasicBlock : private LIR::Range } // setBBProfileWeight -- Set the profile-derived weight for a basic block - void setBBProfileWeight(unsigned weight) + void setBBProfileWeight(weight_t weight) { this->bbFlags |= BBF_PROF_WEIGHT; this->bbWeight = weight; diff --git a/src/coreclr/src/jit/codegenarm64.cpp b/src/coreclr/src/jit/codegenarm64.cpp index a2e907db09d1..9bf02f45f8cd 100644 --- a/src/coreclr/src/jit/codegenarm64.cpp +++ b/src/coreclr/src/jit/codegenarm64.cpp @@ -242,6 +242,7 @@ void CodeGen::genPrologSaveRegPair(regNumber reg1, // stp REG, REG + 1, [SP, #offset] // 64-bit STP offset range: -512 to 504, multiple of 8. assert(spOffset <= 504); + assert((spOffset % 8) == 0); GetEmitter()->emitIns_R_R_R_I(INS_stp, EA_PTRSIZE, reg1, reg2, REG_SPBASE, spOffset); #if defined(TARGET_UNIX) diff --git a/src/coreclr/src/jit/codegenarmarch.cpp b/src/coreclr/src/jit/codegenarmarch.cpp index 6e987ec52f13..d51353f48aa3 100644 --- a/src/coreclr/src/jit/codegenarmarch.cpp +++ b/src/coreclr/src/jit/codegenarmarch.cpp @@ -665,9 +665,13 @@ void CodeGen::genIntrinsic(GenTree* treeNode) void CodeGen::genPutArgStk(GenTreePutArgStk* treeNode) { assert(treeNode->OperIs(GT_PUTARG_STK)); - GenTree* source = treeNode->gtOp1; + GenTree* source = treeNode->gtOp1; +#if !defined(OSX_ARM64_ABI) var_types targetType = genActualType(source->TypeGet()); - emitter* emit = GetEmitter(); +#else + var_types targetType = source->TypeGet(); +#endif + emitter* emit = GetEmitter(); // This is the varNum for our store operations, // typically this is the varNum for the Outgoing arg space @@ -678,12 +682,12 @@ void CodeGen::genPutArgStk(GenTreePutArgStk* treeNode) // Get argument offset to use with 'varNumOut' // Here we cross check that argument offset hasn't changed from lowering to codegen since // we are storing arg slot number in GT_PUTARG_STK node in lowering phase. - unsigned argOffsetOut = treeNode->gtSlotNum * TARGET_POINTER_SIZE; + unsigned argOffsetOut = treeNode->getArgOffset(); #ifdef DEBUG fgArgTabEntry* curArgTabEntry = compiler->gtArgEntryByNode(treeNode->gtCall, treeNode); - assert(curArgTabEntry); - assert(argOffsetOut == (curArgTabEntry->slotNum * TARGET_POINTER_SIZE)); + assert(curArgTabEntry != nullptr); + DEBUG_ARG_SLOTS_ASSERT(argOffsetOut == (curArgTabEntry->slotNum * TARGET_POINTER_SIZE)); #endif // DEBUG // Whether to setup stk arg in incoming or out-going arg area? @@ -730,6 +734,21 @@ void CodeGen::genPutArgStk(GenTreePutArgStk* treeNode) return; } +#if defined(OSX_ARM64_ABI) + switch (treeNode->GetStackByteSize()) + { + case 1: + targetType = TYP_BYTE; + break; + case 2: + targetType = TYP_SHORT; + break; + default: + assert(treeNode->GetStackByteSize() >= 4); + break; + } +#endif + instruction storeIns = ins_Store(targetType); emitAttr storeAttr = emitTypeSize(targetType); @@ -1161,7 +1180,7 @@ void CodeGen::genPutArgSplit(GenTreePutArgSplit* treeNode) emitter* emit = GetEmitter(); unsigned varNumOut = compiler->lvaOutgoingArgSpaceVar; unsigned argOffsetMax = compiler->lvaOutgoingArgSpaceSize; - unsigned argOffsetOut = treeNode->gtSlotNum * TARGET_POINTER_SIZE; + unsigned argOffsetOut = treeNode->getArgOffset(); if (source->OperGet() == GT_FIELD_LIST) { @@ -1292,13 +1311,12 @@ void CodeGen::genPutArgSplit(GenTreePutArgSplit* treeNode) assert(!compiler->IsHfa(source->AsObj()->GetLayout()->GetClassHandle())); } - int structSize = treeNode->getArgSize(); - ClassLayout* layout = source->AsObj()->GetLayout(); + ClassLayout* layout = source->AsObj()->GetLayout(); // Put on stack first unsigned nextIndex = treeNode->gtNumRegs; unsigned structOffset = nextIndex * TARGET_POINTER_SIZE; - int remainingSize = structSize - structOffset; + int remainingSize = treeNode->GetStackByteSize(); // remainingSize is always multiple of TARGET_POINTER_SIZE assert(remainingSize % TARGET_POINTER_SIZE == 0); diff --git a/src/coreclr/src/jit/codegencommon.cpp b/src/coreclr/src/jit/codegencommon.cpp index ec19e5c005d7..1cbf0aa7232f 100644 --- a/src/coreclr/src/jit/codegencommon.cpp +++ b/src/coreclr/src/jit/codegencommon.cpp @@ -2203,7 +2203,7 @@ void CodeGen::genGenerateMachineCode() if (compiler->fgHaveProfileData()) { - printf("; with IBC profile data, edge weights are %s, and fgCalledCount is %u\n", + printf("; with IBC profile data, edge weights are %s, and fgCalledCount is %.0f\n", compiler->fgHaveValidEdgeWeights ? "valid" : "invalid", compiler->fgCalledCount); } @@ -2211,6 +2211,11 @@ void CodeGen::genGenerateMachineCode() { printf("; discarded IBC profile data due to mismatch in ILSize\n"); } + + if (compiler->opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT)) + { + printf("; invoked as altjit\n"); + } } #endif // DEBUG @@ -2355,7 +2360,7 @@ void CodeGen::genEmitMachineCode() } #endif -#if EMIT_TRACK_STACK_DEPTH && defined(DEBUG) && !defined(OSX_ARM64_ABI) +#if EMIT_TRACK_STACK_DEPTH && defined(DEBUG_ARG_SLOTS) // Check our max stack level. Needed for fgAddCodeRef(). // We need to relax the assert as our estimation won't include code-gen // stack changes (which we know don't affect fgAddCodeRef()). diff --git a/src/coreclr/src/jit/codegenlinear.cpp b/src/coreclr/src/jit/codegenlinear.cpp index f3f52e7fb77b..bf8d1ce087ad 100644 --- a/src/coreclr/src/jit/codegenlinear.cpp +++ b/src/coreclr/src/jit/codegenlinear.cpp @@ -1704,8 +1704,6 @@ void CodeGen::genConsumePutStructArgStk(GenTreePutArgStk* putArgNode, assert((src->gtOper == GT_OBJ) || ((src->gtOper == GT_IND && varTypeIsSIMD(src)))); GenTree* srcAddr = src->gtGetOp1(); - unsigned int size = putArgNode->getArgSize(); - assert(dstReg != REG_NA); assert(srcReg != REG_NA); @@ -1757,6 +1755,7 @@ void CodeGen::genConsumePutStructArgStk(GenTreePutArgStk* putArgNode, if (sizeReg != REG_NA) { + unsigned size = putArgNode->GetStackByteSize(); inst_RV_IV(INS_mov, sizeReg, size, EA_PTRSIZE); } } diff --git a/src/coreclr/src/jit/codegenxarch.cpp b/src/coreclr/src/jit/codegenxarch.cpp index 259f33147023..6828c99cced1 100644 --- a/src/coreclr/src/jit/codegenxarch.cpp +++ b/src/coreclr/src/jit/codegenxarch.cpp @@ -1970,43 +1970,32 @@ void CodeGen::genAllocLclFrame(unsigned frameSize, regNumber initReg, bool* pIni return; } - const target_size_t pageSize = compiler->eeGetPageSize(); - target_size_t lastTouchDelta = 0; // What offset from the final SP was the last probe? + const target_size_t pageSize = compiler->eeGetPageSize(); if (frameSize == REGSIZE_BYTES) { // Frame size is the same as register size. - inst_RV(INS_push, REG_EAX, TYP_I_IMPL); + GetEmitter()->emitIns_R(INS_push, EA_PTRSIZE, REG_EAX); + compiler->unwindAllocStack(frameSize); } else if (frameSize < pageSize) { - // Frame size is (0x0008..0x1000) - inst_RV_IV(INS_sub, REG_SPBASE, frameSize, EA_PTRSIZE); - lastTouchDelta = frameSize; - } - else if (frameSize < compiler->getVeryLargeFrameSize()) - { - lastTouchDelta = frameSize; + GetEmitter()->emitIns_R_I(INS_sub, EA_PTRSIZE, REG_SPBASE, frameSize); + compiler->unwindAllocStack(frameSize); - // Frame size is (0x1000..0x3000) + const unsigned lastProbedLocToFinalSp = frameSize; - GetEmitter()->emitIns_AR_R(INS_test, EA_PTRSIZE, REG_EAX, REG_SPBASE, -(int)pageSize); - lastTouchDelta -= pageSize; - - if (frameSize >= 0x2000) + if (lastProbedLocToFinalSp + STACK_PROBE_BOUNDARY_THRESHOLD_BYTES > pageSize) { - GetEmitter()->emitIns_AR_R(INS_test, EA_PTRSIZE, REG_EAX, REG_SPBASE, -2 * (int)pageSize); - lastTouchDelta -= pageSize; + // We haven't probed almost a complete page. If the next action on the stack might subtract from SP + // first, before touching the current SP, then we need to probe at the very bottom. This can + // happen on x86, for example, when we copy an argument to the stack using a "SUB ESP; REP MOV" + // strategy. + GetEmitter()->emitIns_R_AR(INS_test, EA_4BYTE, REG_EAX, REG_SPBASE, 0); } - - inst_RV_IV(INS_sub, REG_SPBASE, frameSize, EA_PTRSIZE); - assert(lastTouchDelta == frameSize % pageSize); } else { - // Frame size >= 0x3000 - assert(frameSize >= compiler->getVeryLargeFrameSize()); - #ifdef TARGET_X86 int spOffset = -(int)frameSize; @@ -2053,24 +2042,14 @@ void CodeGen::genAllocLclFrame(unsigned frameSize, regNumber initReg, bool* pIni GetEmitter()->emitIns_R_R(INS_mov, EA_PTRSIZE, REG_SPBASE, REG_STACK_PROBE_HELPER_ARG); #endif // !TARGET_X86 + compiler->unwindAllocStack(frameSize); + if (initReg == REG_STACK_PROBE_HELPER_ARG) { *pInitRegZeroed = false; } } - if (lastTouchDelta + STACK_PROBE_BOUNDARY_THRESHOLD_BYTES > pageSize) - { - // We haven't probed almost a complete page. If the next action on the stack might subtract from SP - // first, before touching the current SP, then we do one more probe at the very bottom. This can - // happen on x86, for example, when we copy an argument to the stack using a "SUB ESP; REP MOV" - // strategy. - - GetEmitter()->emitIns_AR_R(INS_test, EA_PTRSIZE, REG_EAX, REG_SPBASE, 0); - } - - compiler->unwindAllocStack(frameSize); - #ifdef USING_SCOPE_INFO if (!doubleAlignOrFramePointerUsed()) { @@ -3156,7 +3135,7 @@ void CodeGen::genStructPutArgUnroll(GenTreePutArgStk* putArgNode) // in genPutStructArgStk(). noway_assert(src->TypeGet() == TYP_STRUCT); - unsigned size = putArgNode->getArgSize(); + unsigned size = putArgNode->GetStackByteSize(); assert(size <= CPBLK_UNROLL_LIMIT); emitter* emit = GetEmitter(); @@ -5049,7 +5028,7 @@ void CodeGen::genCallInstruction(GenTreeCall* call) if (arg->OperIs(GT_PUTARG_STK) && ((arg->gtFlags & GTF_LATE_ARG) == 0)) { GenTree* source = arg->AsPutArgStk()->gtGetOp1(); - unsigned size = arg->AsPutArgStk()->getArgSize(); + unsigned size = arg->AsPutArgStk()->GetStackByteSize(); stackArgBytes += size; #ifdef DEBUG fgArgTabEntry* curArgTabEntry = compiler->gtArgEntryByNode(call, arg); @@ -7292,7 +7271,7 @@ void CodeGen::genRemoveAlignmentAfterCall(GenTreeCall* call, unsigned bias) // bool CodeGen::genAdjustStackForPutArgStk(GenTreePutArgStk* putArgStk) { - const unsigned argSize = putArgStk->getArgSize(); + const unsigned argSize = putArgStk->GetStackByteSize(); GenTree* source = putArgStk->gtGetOp1(); #ifdef FEATURE_SIMD @@ -7389,7 +7368,7 @@ void CodeGen::genPutArgStkFieldList(GenTreePutArgStk* putArgStk) // If we are pushing the arguments (i.e. we have not pre-adjusted the stack), then we are pushing them // in reverse order, so we start with the current field offset at the size of the struct arg (which must be // a multiple of the target pointer size). - unsigned currentOffset = (preAdjustedStack) ? 0 : putArgStk->getArgSize(); + unsigned currentOffset = (preAdjustedStack) ? 0 : putArgStk->GetStackByteSize(); unsigned prevFieldOffset = currentOffset; regNumber intTmpReg = REG_NA; regNumber simdTmpReg = REG_NA; @@ -7601,7 +7580,7 @@ void CodeGen::genPutArgStk(GenTreePutArgStk* putArgStk) // On a 32-bit target, all of the long arguments are handled with GT_FIELD_LISTs of TYP_INT. assert(targetType != TYP_LONG); - const unsigned argSize = putArgStk->getArgSize(); + const unsigned argSize = putArgStk->GetStackByteSize(); assert((argSize % TARGET_POINTER_SIZE) == 0); if (data->isContainedIntOrIImmed()) @@ -7653,12 +7632,12 @@ void CodeGen::genPutArgStk(GenTreePutArgStk* putArgStk) // Get argument offset on stack. // Here we cross check that argument offset hasn't changed from lowering to codegen since // we are storing arg slot number in GT_PUTARG_STK node in lowering phase. - int argOffset = putArgStk->getArgOffset(); + unsigned argOffset = putArgStk->getArgOffset(); #ifdef DEBUG fgArgTabEntry* curArgTabEntry = compiler->gtArgEntryByNode(putArgStk->gtCall, putArgStk); - assert(curArgTabEntry); - assert(argOffset == (int)curArgTabEntry->slotNum * TARGET_POINTER_SIZE); + assert(curArgTabEntry != nullptr); + assert(argOffset == curArgTabEntry->slotNum * TARGET_POINTER_SIZE); #endif if (data->isContainedIntOrIImmed()) @@ -7899,7 +7878,10 @@ void CodeGen::genPutStructArgStk(GenTreePutArgStk* putArgStk) assert(m_pushStkArg); GenTree* srcAddr = source->gtGetOp1(); - const unsigned numSlots = putArgStk->gtNumSlots; + const unsigned byteSize = putArgStk->GetStackByteSize(); + assert(byteSize % TARGET_POINTER_SIZE == 0); + const unsigned numSlots = byteSize / TARGET_POINTER_SIZE; + assert(putArgStk->gtNumSlots == numSlots); regNumber srcRegNum = srcAddr->GetRegNum(); const bool srcAddrInReg = srcRegNum != REG_NA; @@ -7920,15 +7902,15 @@ void CodeGen::genPutStructArgStk(GenTreePutArgStk* putArgStk) for (int i = numSlots - 1; i >= 0; --i) { - emitAttr slotAttr = emitTypeSize(layout->GetGCPtrType(i)); - const unsigned offset = i * TARGET_POINTER_SIZE; + emitAttr slotAttr = emitTypeSize(layout->GetGCPtrType(i)); + const unsigned byteOffset = i * TARGET_POINTER_SIZE; if (srcAddrInReg) { - GetEmitter()->emitIns_AR_R(INS_push, slotAttr, REG_NA, srcRegNum, offset); + GetEmitter()->emitIns_AR_R(INS_push, slotAttr, REG_NA, srcRegNum, byteOffset); } else { - GetEmitter()->emitIns_S(INS_push, slotAttr, srcLclNum, srcLclOffset + offset); + GetEmitter()->emitIns_S(INS_push, slotAttr, srcLclNum, srcLclOffset + byteOffset); } AddStackLevel(TARGET_POINTER_SIZE); } @@ -7945,7 +7927,10 @@ void CodeGen::genPutStructArgStk(GenTreePutArgStk* putArgStk) unsigned numGCSlotsCopied = 0; #endif // DEBUG - const unsigned numSlots = putArgStk->gtNumSlots; + const unsigned byteSize = putArgStk->GetStackByteSize(); + assert(byteSize % TARGET_POINTER_SIZE == 0); + const unsigned numSlots = byteSize / TARGET_POINTER_SIZE; + assert(putArgStk->gtNumSlots == numSlots); for (unsigned i = 0; i < numSlots;) { if (!layout->IsGCPtr(i)) diff --git a/src/coreclr/src/jit/compiler.cpp b/src/coreclr/src/jit/compiler.cpp index 89da77e1653f..3a6ea5006b26 100644 --- a/src/coreclr/src/jit/compiler.cpp +++ b/src/coreclr/src/jit/compiler.cpp @@ -40,11 +40,9 @@ unsigned Compiler::jitTotalMethodCompiled = 0; LONG Compiler::jitNestingLevel = 0; #endif // defined(DEBUG) -#ifdef ALT_JIT // static bool Compiler::s_pAltJitExcludeAssembliesListInitialized = false; AssemblyNamesList2* Compiler::s_pAltJitExcludeAssembliesList = nullptr; -#endif // ALT_JIT #ifdef DEBUG // static @@ -1353,13 +1351,11 @@ void Compiler::compStartup() /* static */ void Compiler::compShutdown() { -#ifdef ALT_JIT if (s_pAltJitExcludeAssembliesList != nullptr) { s_pAltJitExcludeAssembliesList->~AssemblyNamesList2(); // call the destructor s_pAltJitExcludeAssembliesList = nullptr; } -#endif // ALT_JIT #ifdef DEBUG if (s_pJitDisasmIncludeAssembliesList != nullptr) @@ -2582,18 +2578,19 @@ void Compiler::compInitOptions(JitFlags* jitFlags) pfAltJit = &JitConfig.AltJit(); } -#ifdef ALT_JIT - if (pfAltJit->contains(info.compMethodName, info.compClassName, &info.compMethodInfo->args)) + if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT)) { - opts.altJit = true; - } + if (pfAltJit->contains(info.compMethodName, info.compClassName, &info.compMethodInfo->args)) + { + opts.altJit = true; + } - unsigned altJitLimit = ReinterpretHexAsDecimal(JitConfig.AltJitLimit()); - if (altJitLimit > 0 && Compiler::jitTotalMethodCompiled >= altJitLimit) - { - opts.altJit = false; + unsigned altJitLimit = ReinterpretHexAsDecimal(JitConfig.AltJitLimit()); + if (altJitLimit > 0 && Compiler::jitTotalMethodCompiled >= altJitLimit) + { + opts.altJit = false; + } } -#endif // ALT_JIT #else // !DEBUG @@ -2607,20 +2604,20 @@ void Compiler::compInitOptions(JitFlags* jitFlags) altJitVal = JitConfig.AltJit().list(); } -#ifdef ALT_JIT - // In release mode, you either get all methods or no methods. You must use "*" as the parameter, or we ignore it. - // You don't get to give a regular expression of methods to match. - // (Partially, this is because we haven't computed and stored the method and class name except in debug, and it - // might be expensive to do so.) - if ((altJitVal != nullptr) && (strcmp(altJitVal, "*") == 0)) + if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT)) { - opts.altJit = true; + // In release mode, you either get all methods or no methods. You must use "*" as the parameter, or we ignore + // it. You don't get to give a regular expression of methods to match. + // (Partially, this is because we haven't computed and stored the method and class name except in debug, and it + // might be expensive to do so.) + if ((altJitVal != nullptr) && (strcmp(altJitVal, "*") == 0)) + { + opts.altJit = true; + } } -#endif // ALT_JIT #endif // !DEBUG -#ifdef ALT_JIT // Take care of COMPlus_AltJitExcludeAssemblies. if (opts.altJit) { @@ -2652,7 +2649,6 @@ void Compiler::compInitOptions(JitFlags* jitFlags) } } } -#endif // ALT_JIT #ifdef DEBUG @@ -5920,14 +5916,12 @@ int Compiler::compCompileHelper(CORINFO_MODULE_HANDLE classPtr, compInitOptions(compileFlags); -#ifdef ALT_JIT - if (!compIsForInlining() && !opts.altJit) + if (!compIsForInlining() && !opts.altJit && opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT)) { // We're an altjit, but the COMPlus_AltJit configuration did not say to compile this method, // so skip it. return CORJIT_SKIPPED; } -#endif // ALT_JIT #ifdef DEBUG @@ -5988,6 +5982,7 @@ int Compiler::compCompileHelper(CORINFO_MODULE_HANDLE classPtr, info.compNativeCodeSize = 0; info.compTotalHotCodeSize = 0; info.compTotalColdCodeSize = 0; + info.compClassProbeCount = 0; compHasBackwardJump = false; @@ -6217,14 +6212,12 @@ int Compiler::compCompileHelper(CORINFO_MODULE_HANDLE classPtr, return CORJIT_SKIPPED; } -#ifdef ALT_JIT #ifdef DEBUG - if (JitConfig.RunAltJitCode() == 0) + if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT) && JitConfig.RunAltJitCode() == 0) { return CORJIT_SKIPPED; } #endif // DEBUG -#endif // ALT_JIT } /* Success! */ diff --git a/src/coreclr/src/jit/compiler.h b/src/coreclr/src/jit/compiler.h index 0770b2821a4d..15e7db0570df 100644 --- a/src/coreclr/src/jit/compiler.h +++ b/src/coreclr/src/jit/compiler.h @@ -1630,7 +1630,9 @@ struct fgArgTabEntry return 0; } - // Get the number of bytes that this argument is occupying on the stack. + // Get the number of bytes that this argument is occupying on the stack, + // including padding up to the target pointer size for platforms + // where a stack argument can't take less. unsigned GetStackByteSize() const { if (!IsSplit() && numRegs > 0) @@ -1642,7 +1644,10 @@ struct fgArgTabEntry assert(GetByteSize() > TARGET_POINTER_SIZE * numRegs); unsigned stackByteSize = GetByteSize() - TARGET_POINTER_SIZE * numRegs; - return GetByteSize() - TARGET_POINTER_SIZE * numRegs; +#if !defined(OSX_ARM64_ABI) + stackByteSize = roundUp(stackByteSize, TARGET_POINTER_SIZE); +#endif + return stackByteSize; } var_types GetHfaType() const @@ -1800,7 +1805,7 @@ struct fgArgTabEntry return size; } -#endif // DEBUG && !OSX_ARM64_ABI +#endif // DEBUG_ARG_SLOTS private: unsigned m_byteOffset; @@ -3774,7 +3779,8 @@ class Compiler CORINFO_CONTEXT_HANDLE* contextHandle, CORINFO_CONTEXT_HANDLE* exactContextHandle, bool isLateDevirtualization, - bool isExplicitTailCall); + bool isExplicitTailCall, + IL_OFFSETX ilOffset = BAD_IL_OFFSET); //========================================================================= // PROTECTED @@ -4351,11 +4357,10 @@ class Compiler InlineCandidateInfo** ppInlineCandidateInfo, InlineResult* inlineResult); - void impInlineRecordArgInfo(InlineInfo* pInlineInfo, - GenTree* curArgVal, - unsigned argNum, - unsigned __int64 bbFlags, - InlineResult* inlineResult); + void impInlineRecordArgInfo(InlineInfo* pInlineInfo, + GenTree* curArgVal, + unsigned argNum, + InlineResult* inlineResult); void impInlineInitVars(InlineInfo* pInlineInfo); @@ -4660,6 +4665,8 @@ class Compiler BasicBlock* canonicalBlock, flowList* predEdge); + GenTree* fgCheckCallArgUpdate(GenTree* parent, GenTree* child, var_types origType); + #if defined(FEATURE_EH_FUNCLETS) && defined(TARGET_ARM) // Sometimes we need to defer updating the BBF_FINALLY_TARGET bit. fgNeedToAddFinallyTargetBits signals // when this is necessary. @@ -5521,7 +5528,7 @@ class Compiler bool fgHaveProfileData(); void fgComputeProfileScale(); - bool fgGetProfileWeightForBasicBlock(IL_OFFSET offset, unsigned* weight); + bool fgGetProfileWeightForBasicBlock(IL_OFFSET offset, BasicBlock::weight_t* weight); void fgInstrumentMethod(); public: @@ -5533,10 +5540,10 @@ class Compiler } // fgProfileRunsCount - returns total number of scenario runs for the profile data - // or BB_UNITY_WEIGHT when we aren't using profile data. + // or BB_UNITY_WEIGHT_UNSIGNED when we aren't using profile data. unsigned fgProfileRunsCount() { - return fgIsUsingProfileWeights() ? fgNumProfileRuns : BB_UNITY_WEIGHT; + return fgIsUsingProfileWeights() ? fgNumProfileRuns : BB_UNITY_WEIGHT_UNSIGNED; } //-------- Insert a statement at the start or end of a basic block -------- @@ -6075,7 +6082,7 @@ class Compiler // non-loop predecessors other than the head entry, create a new, empty block that goes (only) to the entry, // and redirects the preds of the entry to this new block.) Sets the weight of the newly created block to // "ambientWeight". - void optEnsureUniqueHead(unsigned loopInd, unsigned ambientWeight); + void optEnsureUniqueHead(unsigned loopInd, BasicBlock::weight_t ambientWeight); void optUnrollLoops(); // Unrolls loops (needs to have cost info) @@ -6480,8 +6487,8 @@ class Compiler unsigned short csdDefCount; // definition count unsigned short csdUseCount; // use count (excluding the implicit uses at defs) - unsigned csdDefWtCnt; // weighted def count - unsigned csdUseWtCnt; // weighted use count (excluding the implicit uses at defs) + BasicBlock::weight_t csdDefWtCnt; // weighted def count + BasicBlock::weight_t csdUseWtCnt; // weighted use count (excluding the implicit uses at defs) GenTree* csdTree; // treenode containing the 1st occurrence Statement* csdStmt; // stmt containing the 1st occurrence @@ -6594,13 +6601,13 @@ class Compiler #endif // FEATURE_VALNUM_CSE #if FEATURE_ANYCSE - bool optDoCSE; // True when we have found a duplicate CSE tree - bool optValnumCSE_phase; // True when we are executing the optValnumCSE_phase - unsigned optCSECandidateTotal; // Grand total of CSE candidates for both Lexical and ValNum - unsigned optCSECandidateCount; // Count of CSE's candidates, reset for Lexical and ValNum CSE's - unsigned optCSEstart; // The first local variable number that is a CSE - unsigned optCSEcount; // The total count of CSE's introduced. - unsigned optCSEweight; // The weight of the current block when we are doing PerformCSE + bool optDoCSE; // True when we have found a duplicate CSE tree + bool optValnumCSE_phase; // True when we are executing the optValnumCSE_phase + unsigned optCSECandidateTotal; // Grand total of CSE candidates for both Lexical and ValNum + unsigned optCSECandidateCount; // Count of CSE's candidates, reset for Lexical and ValNum CSE's + unsigned optCSEstart; // The first local variable number that is a CSE + unsigned optCSEcount; // The total count of CSE's introduced. + BasicBlock::weight_t optCSEweight; // The weight of the current block when we are doing PerformCSE bool optIsCSEcandidate(GenTree* tree); @@ -6692,6 +6699,7 @@ class Compiler #define OMF_HAS_EXPRUNTIMELOOKUP 0x00000100 // Method contains a runtime lookup to an expandable dictionary. #define OMF_HAS_PATCHPOINT 0x00000200 // Method contains patchpoints #define OMF_NEEDS_GCPOLLS 0x00000400 // Method needs GC polls +#define OMF_HAS_FROZEN_STRING 0x00000800 // Method has a frozen string (REF constant int), currently only on CoreRT. bool doesMethodHaveFatPointer() { @@ -6710,7 +6718,17 @@ class Compiler void addFatPointerCandidate(GenTreeCall* call); - bool doesMethodHaveGuardedDevirtualization() + bool doesMethodHaveFrozenString() const + { + return (optMethodFlags & OMF_HAS_FROZEN_STRING) != 0; + } + + void setMethodHasFrozenString() + { + optMethodFlags |= OMF_HAS_FROZEN_STRING; + } + + bool doesMethodHaveGuardedDevirtualization() const { return (optMethodFlags & OMF_HAS_GUARDEDDEVIRT) != 0; } @@ -6729,7 +6747,8 @@ class Compiler CORINFO_METHOD_HANDLE methodHandle, CORINFO_CLASS_HANDLE classHandle, unsigned methodAttr, - unsigned classAttr); + unsigned classAttr, + unsigned likelihood); bool doesMethodHaveExpRuntimeLookup() { @@ -7707,11 +7726,11 @@ class Compiler return codeGen->doDoubleAlign(); } DWORD getCanDoubleAlign(); - bool shouldDoubleAlign(unsigned refCntStk, - unsigned refCntReg, - unsigned refCntWtdReg, - unsigned refCntStkParam, - unsigned refCntWtdStkDbl); + bool shouldDoubleAlign(unsigned refCntStk, + unsigned refCntReg, + BasicBlock::weight_t refCntWtdReg, + unsigned refCntStkParam, + BasicBlock::weight_t refCntWtdStkDbl); #endif // DOUBLE_ALIGN bool IsFullPtrRegMapRequired() @@ -9011,10 +9030,8 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #endif } opts; -#ifdef ALT_JIT static bool s_pAltJitExcludeAssembliesListInitialized; static AssemblyNamesList2* s_pAltJitExcludeAssembliesList; -#endif // ALT_JIT #ifdef DEBUG static bool s_pJitDisasmIncludeAssembliesListInitialized; @@ -9296,6 +9313,10 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #define CPU_ARM64 0x0400 // The generic ARM64 CPU unsigned genCPU; // What CPU are we running on + + // Number of class profile probes in this method + unsigned compClassProbeCount; + } info; // Returns true if the method being compiled returns a non-void and non-struct value. @@ -10433,6 +10454,7 @@ class GenTreeVisitor case GT_NULLCHECK: case GT_PUTARG_REG: case GT_PUTARG_STK: + case GT_PUTARG_TYPE: case GT_RETURNTRAP: case GT_NOP: case GT_RETURN: diff --git a/src/coreclr/src/jit/compiler.hpp b/src/coreclr/src/jit/compiler.hpp index c9bd49172442..8d3207c2112e 100644 --- a/src/coreclr/src/jit/compiler.hpp +++ b/src/coreclr/src/jit/compiler.hpp @@ -856,7 +856,7 @@ inline unsigned int genCSEnum2bit(unsigned index) #ifdef DEBUG const char* genES2str(BitVecTraits* traits, EXPSET_TP set); -const char* refCntWtd2str(unsigned refCntWtd); +const char* refCntWtd2str(BasicBlock::weight_t refCntWtd); #endif /* @@ -1841,15 +1841,9 @@ inline void LclVarDsc::incRefCnts(BasicBlock::weight_t weight, Compiler* comp, R weight *= 2; } - unsigned newWeight = lvRefCntWtd(state) + weight; - if (newWeight >= lvRefCntWtd(state)) - { // lvRefCntWtd is an "unsigned". Don't overflow it - setLvRefCntWtd(newWeight, state); - } - else - { // On overflow we assign UINT32_MAX - setLvRefCntWtd(UINT32_MAX, state); - } + BasicBlock::weight_t newWeight = lvRefCntWtd(state) + weight; + assert(newWeight >= lvRefCntWtd(state)); + setLvRefCntWtd(newWeight, state); } } @@ -3612,11 +3606,11 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // are we compiling for fast code, or are we compiling for blended code and // inside a loop? -// We return true for BLENDED_CODE if the Block executes more than BB_LOOP_WEIGHT/2 +// We return true for BLENDED_CODE if the Block executes more than BB_LOOP_WEIGHT_SCALE/2 inline bool Compiler::optFastCodeOrBlendedLoop(BasicBlock::weight_t bbWeight) { return (compCodeOpt() == FAST_CODE) || - ((compCodeOpt() == BLENDED_CODE) && (bbWeight > (BB_LOOP_WEIGHT / 2 * BB_UNITY_WEIGHT))); + ((compCodeOpt() == BLENDED_CODE) && (bbWeight > ((BB_LOOP_WEIGHT_SCALE / 2) * BB_UNITY_WEIGHT))); } // are we running on a Intel Pentium 4? @@ -3868,10 +3862,21 @@ inline GenTree* Compiler::impCheckForNullPointer(GenTree* obj) { assert(obj->gtType == TYP_REF || obj->gtType == TYP_BYREF); - // We can see non-zero byrefs for RVA statics. + // We can see non-zero byrefs for RVA statics or for frozen strings. if (obj->AsIntCon()->gtIconVal != 0) { - assert(obj->gtType == TYP_BYREF); +#ifdef DEBUG + if (!obj->TypeIs(TYP_BYREF)) + { + assert(obj->TypeIs(TYP_REF)); + assert(obj->IsIconHandle(GTF_ICON_STR_HDL)); + if (!doesMethodHaveFrozenString()) + { + assert(compIsForInlining()); + assert(impInlineInfo->InlinerCompiler->doesMethodHaveFrozenString()); + } + } +#endif // DEBUG return obj; } @@ -4376,6 +4381,7 @@ void GenTree::VisitOperands(TVisitor visitor) case GT_NULLCHECK: case GT_PUTARG_REG: case GT_PUTARG_STK: + case GT_PUTARG_TYPE: #if FEATURE_ARG_SPLIT case GT_PUTARG_SPLIT: #endif // FEATURE_ARG_SPLIT diff --git a/src/coreclr/src/jit/decomposelongs.cpp b/src/coreclr/src/jit/decomposelongs.cpp index 064453daa916..33650892924a 100644 --- a/src/coreclr/src/jit/decomposelongs.cpp +++ b/src/coreclr/src/jit/decomposelongs.cpp @@ -61,9 +61,7 @@ void DecomposeLongs::DecomposeBlock(BasicBlock* block) { assert(block == m_compiler->compCurBB); // compCurBB must already be set. assert(block->isEmpty() || block->IsLIR()); - - m_blockWeight = block->getBBWeight(m_compiler); - m_range = &LIR::AsRange(block); + m_range = &LIR::AsRange(block); DecomposeRangeHelper(); } @@ -75,20 +73,17 @@ void DecomposeLongs::DecomposeBlock(BasicBlock* block) // // Arguments: // compiler - The compiler context. -// blockWeight - The weight of the block into which the range will be -// inserted. // range - The range to decompose. // // Return Value: // None. // -void DecomposeLongs::DecomposeRange(Compiler* compiler, unsigned blockWeight, LIR::Range& range) +void DecomposeLongs::DecomposeRange(Compiler* compiler, LIR::Range& range) { assert(compiler != nullptr); DecomposeLongs decomposer(compiler); - decomposer.m_blockWeight = blockWeight; - decomposer.m_range = ⦥ + decomposer.m_range = ⦥ decomposer.DecomposeRangeHelper(); } @@ -626,7 +621,7 @@ GenTree* DecomposeLongs::DecomposeCast(LIR::Use& use) else { LIR::Use src(Range(), &(cast->AsOp()->gtOp1), cast); - unsigned lclNum = src.ReplaceWithLclVar(m_compiler, m_blockWeight); + unsigned lclNum = src.ReplaceWithLclVar(m_compiler); loResult = src.Def(); @@ -768,14 +763,14 @@ GenTree* DecomposeLongs::DecomposeStoreInd(LIR::Use& use) // Save address to a temp. It is used in storeIndLow and storeIndHigh trees. LIR::Use address(Range(), &tree->AsOp()->gtOp1, tree); - address.ReplaceWithLclVar(m_compiler, m_blockWeight); + address.ReplaceWithLclVar(m_compiler); JITDUMP("[DecomposeStoreInd]: Saving address tree to a temp var:\n"); DISPTREERANGE(Range(), address.Def()); if (!gtLong->AsOp()->gtOp1->OperIsLeaf()) { LIR::Use op1(Range(), >Long->AsOp()->gtOp1, gtLong); - op1.ReplaceWithLclVar(m_compiler, m_blockWeight); + op1.ReplaceWithLclVar(m_compiler); JITDUMP("[DecomposeStoreInd]: Saving low data tree to a temp var:\n"); DISPTREERANGE(Range(), op1.Def()); } @@ -783,7 +778,7 @@ GenTree* DecomposeLongs::DecomposeStoreInd(LIR::Use& use) if (!gtLong->AsOp()->gtOp2->OperIsLeaf()) { LIR::Use op2(Range(), >Long->AsOp()->gtOp2, gtLong); - op2.ReplaceWithLclVar(m_compiler, m_blockWeight); + op2.ReplaceWithLclVar(m_compiler); JITDUMP("[DecomposeStoreInd]: Saving high data tree to a temp var:\n"); DISPTREERANGE(Range(), op2.Def()); } @@ -841,7 +836,7 @@ GenTree* DecomposeLongs::DecomposeInd(LIR::Use& use) GenTree* indLow = use.Def(); LIR::Use address(Range(), &indLow->AsOp()->gtOp1, indLow); - address.ReplaceWithLclVar(m_compiler, m_blockWeight); + address.ReplaceWithLclVar(m_compiler); JITDUMP("[DecomposeInd]: Saving addr tree to a temp var:\n"); DISPTREERANGE(Range(), address.Def()); @@ -1151,7 +1146,7 @@ GenTree* DecomposeLongs::DecomposeShift(LIR::Use& use) // x = x << 32 LIR::Use loOp1Use(Range(), >Long->AsOp()->gtOp1, gtLong); - loOp1Use.ReplaceWithLclVar(m_compiler, m_blockWeight); + loOp1Use.ReplaceWithLclVar(m_compiler); hiResult = loOp1Use.Def(); Range().Remove(gtLong); @@ -1434,10 +1429,10 @@ GenTree* DecomposeLongs::DecomposeRotate(LIR::Use& use) { // If the rotate amount is 32, then swap hi and lo LIR::Use loOp1Use(Range(), >Long->AsOp()->gtOp1, gtLong); - loOp1Use.ReplaceWithLclVar(m_compiler, m_blockWeight); + loOp1Use.ReplaceWithLclVar(m_compiler); LIR::Use hiOp1Use(Range(), >Long->AsOp()->gtOp2, gtLong); - hiOp1Use.ReplaceWithLclVar(m_compiler, m_blockWeight); + hiOp1Use.ReplaceWithLclVar(m_compiler); hiResult = loOp1Use.Def(); loResult = hiOp1Use.Def(); @@ -1821,7 +1816,7 @@ GenTree* DecomposeLongs::StoreNodeToVar(LIR::Use& use) } // Otherwise, we need to force var = call() - unsigned varNum = use.ReplaceWithLclVar(m_compiler, m_blockWeight); + unsigned varNum = use.ReplaceWithLclVar(m_compiler); m_compiler->lvaTable[varNum].lvIsMultiRegRet = true; // Decompose the new LclVar use @@ -1848,7 +1843,7 @@ GenTree* DecomposeLongs::RepresentOpAsLocalVar(GenTree* op, GenTree* user, GenTr else { LIR::Use opUse(Range(), edge, user); - opUse.ReplaceWithLclVar(m_compiler, m_blockWeight); + opUse.ReplaceWithLclVar(m_compiler); return *edge; } } diff --git a/src/coreclr/src/jit/decomposelongs.h b/src/coreclr/src/jit/decomposelongs.h index a9a75f5d3c33..cc3bddab1287 100644 --- a/src/coreclr/src/jit/decomposelongs.h +++ b/src/coreclr/src/jit/decomposelongs.h @@ -25,7 +25,7 @@ class DecomposeLongs void PrepareForDecomposition(); void DecomposeBlock(BasicBlock* block); - static void DecomposeRange(Compiler* compiler, unsigned blockWeight, LIR::Range& range); + static void DecomposeRange(Compiler* compiler, LIR::Range& range); private: inline LIR::Range& Range() const @@ -69,7 +69,6 @@ class DecomposeLongs // Data Compiler* m_compiler; - unsigned m_blockWeight; LIR::Range* m_range; }; diff --git a/src/coreclr/src/jit/ee_il_dll.cpp b/src/coreclr/src/jit/ee_il_dll.cpp index 30e69dbf98d5..7a7229a2d2dc 100644 --- a/src/coreclr/src/jit/ee_il_dll.cpp +++ b/src/coreclr/src/jit/ee_il_dll.cpp @@ -360,7 +360,7 @@ unsigned Compiler::eeGetArgSize(CORINFO_ARG_LIST_HANDLE list, CORINFO_SIG_INFO* if (varTypeIsStruct(argType)) { unsigned structSize = info.compCompHnd->getClassSize(argClass); - return structSize; // TODO: roundUp() needed here? + return roundUp(structSize, TARGET_POINTER_SIZE); } #endif // UNIX_AMD64_ABI return TARGET_POINTER_SIZE; diff --git a/src/coreclr/src/jit/emit.cpp b/src/coreclr/src/jit/emit.cpp index 08d547ef00a7..57be302194b3 100644 --- a/src/coreclr/src/jit/emit.cpp +++ b/src/coreclr/src/jit/emit.cpp @@ -4755,7 +4755,7 @@ unsigned emitter::emitEndCodeGen(Compiler* comp, // code to be 16-byte aligned. // // 1. For ngen code with IBC data, use 16-byte alignment if the method - // has been called more than BB_VERY_HOT_WEIGHT times. + // has been called more than ScenarioHotWeight times. // 2. For JITed code and ngen code without IBC data, use 16-byte alignment // when the code is 16 bytes or smaller. We align small getters/setters // because of they are penalized heavily on certain hardware when not 16-byte @@ -4764,7 +4764,8 @@ unsigned emitter::emitEndCodeGen(Compiler* comp, // if (emitComp->fgHaveProfileData()) { - if (emitComp->fgCalledCount > (BB_VERY_HOT_WEIGHT * emitComp->fgProfileRunsCount())) + const float scenarioHotWeight = 256.0f; + if (emitComp->fgCalledCount > (scenarioHotWeight * emitComp->fgProfileRunsCount())) { allocMemFlag = CORJIT_ALLOCMEM_FLG_16BYTE_ALIGN; } diff --git a/src/coreclr/src/jit/emitarm64.cpp b/src/coreclr/src/jit/emitarm64.cpp index 6a819f8c05a9..29dd58e4e02d 100644 --- a/src/coreclr/src/jit/emitarm64.cpp +++ b/src/coreclr/src/jit/emitarm64.cpp @@ -12340,14 +12340,22 @@ void emitter::emitDispIns( targetName = "String handle"; } } - else if ((idFlags == GTF_ICON_FIELD_HDL) || (idFlags == GTF_ICON_STATIC_HDL)) + else if (idFlags == GTF_ICON_FIELD_HDL) { targetName = emitComp->eeGetFieldName((CORINFO_FIELD_HANDLE)targetHandle); } - else if ((idFlags == GTF_ICON_METHOD_HDL) || (idFlags == GTF_ICON_FTN_ADDR)) + else if (idFlags == GTF_ICON_STATIC_HDL) + { + targetName = "Static handle"; + } + else if (idFlags == GTF_ICON_METHOD_HDL) { targetName = emitComp->eeGetMethodFullName((CORINFO_METHOD_HANDLE)targetHandle); } + else if (idFlags == GTF_ICON_FTN_ADDR) + { + targetName = "Function address"; + } else if (idFlags == GTF_ICON_CLASS_HDL) { targetName = emitComp->eeGetClassName((CORINFO_CLASS_HANDLE)targetHandle); diff --git a/src/coreclr/src/jit/error.cpp b/src/coreclr/src/jit/error.cpp index 8a52465ddc4e..2aec1be24da7 100644 --- a/src/coreclr/src/jit/error.cpp +++ b/src/coreclr/src/jit/error.cpp @@ -139,11 +139,15 @@ void noWayAssertBodyConditional( } } -#if defined(ALT_JIT) - /*****************************************************************************/ void notYetImplemented(const char* msg, const char* filename, unsigned line) { + Compiler* pCompiler = JitTls::GetCompiler(); + if ((pCompiler == nullptr) || (pCompiler->opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT))) + { + NOWAY_MSG_FILE_AND_LINE(msg, filename, line); + return; + } #if FUNC_INFO_LOGGING #ifdef DEBUG LogEnv* env = JitTls::GetLogEnv(); @@ -171,12 +175,8 @@ void notYetImplemented(const char* msg, const char* filename, unsigned line) #endif // FUNC_INFO_LOGGING #ifdef DEBUG - Compiler* pCompiler = JitTls::GetCompiler(); - if (pCompiler != nullptr) - { - // Assume we're within a compFunctionTrace boundary, which might not be true. - pCompiler->compFunctionTraceEnd(nullptr, 0, true); - } + // Assume we're within a compFunctionTrace boundary, which might not be true. + pCompiler->compFunctionTraceEnd(nullptr, 0, true); #endif // DEBUG DWORD value = JitConfig.AltJitAssertOnNYI(); @@ -203,8 +203,6 @@ void notYetImplemented(const char* msg, const char* filename, unsigned line) } } -#endif // #if defined(ALT_JIT) - /*****************************************************************************/ LONG __JITfilter(PEXCEPTION_POINTERS pExceptionPointers, LPVOID lpvParam) { @@ -305,20 +303,23 @@ extern "C" void __cdecl assertAbort(const char* why, const char* file, unsigned DebugBreak(); } -#ifdef ALT_JIT - // If we hit an assert, and we got here, it's either because the user hit "ignore" on the - // dialog pop-up, or they set COMPlus_ContinueOnAssert=1 to not emit a pop-up, but just continue. - // If we're an altjit, we have two options: (1) silently continue, as a normal JIT would, probably - // leading to additional asserts, or (2) tell the VM that the AltJit wants to skip this function, - // thus falling back to the fallback JIT. Setting COMPlus_AltJitSkipOnAssert=1 chooses this "skip" - // to the fallback JIT behavior. This is useful when doing ASM diffs, where we only want to see - // the first assert for any function, but we don't want to kill the whole ngen process on the - // first assert (which would happen if you used COMPlus_NoGuiOnAssert=1 for example). - if (JitConfig.AltJitSkipOnAssert() != 0) + Compiler* comp = JitTls::GetCompiler(); + + if (comp != nullptr && comp->opts.jitFlags->IsSet(JitFlags::JIT_FLAG_ALT_JIT)) { - fatal(CORJIT_SKIPPED); + // If we hit an assert, and we got here, it's either because the user hit "ignore" on the + // dialog pop-up, or they set COMPlus_ContinueOnAssert=1 to not emit a pop-up, but just continue. + // If we're an altjit, we have two options: (1) silently continue, as a normal JIT would, probably + // leading to additional asserts, or (2) tell the VM that the AltJit wants to skip this function, + // thus falling back to the fallback JIT. Setting COMPlus_AltJitSkipOnAssert=1 chooses this "skip" + // to the fallback JIT behavior. This is useful when doing ASM diffs, where we only want to see + // the first assert for any function, but we don't want to kill the whole ngen process on the + // first assert (which would happen if you used COMPlus_NoGuiOnAssert=1 for example). + if (JitConfig.AltJitSkipOnAssert() != 0) + { + fatal(CORJIT_SKIPPED); + } } -#endif } /*********************************************************************/ diff --git a/src/coreclr/src/jit/error.h b/src/coreclr/src/jit/error.h index 520dba73b65c..a63643c0ee5b 100644 --- a/src/coreclr/src/jit/error.h +++ b/src/coreclr/src/jit/error.h @@ -118,6 +118,7 @@ extern void RecordNowayAssertGlobal(const char* filename, unsigned line, const c #define unreached() noWayAssertBody("unreached", __FILE__, __LINE__) #define NOWAY_MSG(msg) noWayAssertBodyConditional(msg, __FILE__, __LINE__) +#define NOWAY_MSG_FILE_AND_LINE(msg, file, line) noWayAssertBodyConditional(msg, file, line) // IMPL_LIMITATION is called when we encounter valid IL that is not // supported by our current implementation because of various @@ -153,24 +154,17 @@ extern void RecordNowayAssertGlobal(const char* filename, unsigned line, const c #define unreached() noWayAssertBody() #define NOWAY_MSG(msg) noWayAssertBodyConditional(NOWAY_ASSERT_BODY_ARGUMENTS) +#define NOWAY_MSG_FILE_AND_LINE(msg, file, line) noWayAssertBodyConditional(NOWAY_ASSERT_BODY_ARGUMENTS) #endif // !DEBUG #if 1 // All platforms currently enable NYI; this should be a tighter condition to exclude some platforms from NYI -#if defined(ALT_JIT) - // This can return based on Config flag/Debugger extern void notYetImplemented(const char* msg, const char* file, unsigned line); #define NYIRAW(msg) notYetImplemented(msg, __FILE__, __LINE__) -#else // !defined(ALT_JIT) - -#define NYIRAW(msg) NOWAY_MSG(msg) - -#endif // !defined(ALT_JIT) - #define NYI(msg) NYIRAW("NYI: " msg) #define NYI_IF(cond, msg) if (cond) NYIRAW("NYI: " msg) diff --git a/src/coreclr/src/jit/flowgraph.cpp b/src/coreclr/src/jit/flowgraph.cpp index 8ee9e69ac5c8..7dc9865f16d9 100644 --- a/src/coreclr/src/jit/flowgraph.cpp +++ b/src/coreclr/src/jit/flowgraph.cpp @@ -299,7 +299,7 @@ void Compiler::fgComputeProfileScale() // if (calleeWeight < callSiteWeight) { - JITDUMP(" ... callee entry count %d is less than call site count %d\n", calleeWeight, callSiteWeight); + JITDUMP(" ... callee entry count %f is less than call site count %f\n", calleeWeight, callSiteWeight); impInlineInfo->profileScaleState = InlineInfo::ProfileScaleState::UNAVAILABLE; return; } @@ -310,7 +310,7 @@ void Compiler::fgComputeProfileScale() impInlineInfo->profileScaleFactor = scale; impInlineInfo->profileScaleState = InlineInfo::ProfileScaleState::KNOWN; - JITDUMP(" call site count %u callee entry count %u scale %f\n", callSiteWeight, calleeWeight, scale); + JITDUMP(" call site count %f callee entry count %f scale %f\n", callSiteWeight, calleeWeight, scale); } //------------------------------------------------------------------------ @@ -323,10 +323,10 @@ void Compiler::fgComputeProfileScale() // Returns: // true if data was found // -bool Compiler::fgGetProfileWeightForBasicBlock(IL_OFFSET offset, unsigned* weightWB) +bool Compiler::fgGetProfileWeightForBasicBlock(IL_OFFSET offset, BasicBlock::weight_t* weightWB) { noway_assert(weightWB != nullptr); - unsigned weight = 0; + BasicBlock::weight_t weight = 0; #ifdef DEBUG unsigned hashSeed = fgStressBBProf(); @@ -345,17 +345,17 @@ bool Compiler::fgGetProfileWeightForBasicBlock(IL_OFFSET offset, unsigned* weigh } else if (hash % 11 == 0) { - weight = (hash % 23) * (hash % 29) * (hash % 31); + weight = (BasicBlock::weight_t)(hash % 23) * (hash % 29) * (hash % 31); } else { - weight = (hash % 17) * (hash % 19); + weight = (BasicBlock::weight_t)(hash % 17) * (hash % 19); } // The first block is never given a weight of zero if ((offset == 0) && (weight == 0)) { - weight = 1 + (hash % 5); + weight = (BasicBlock::weight_t)1 + (hash % 5); } *weightWB = weight; @@ -372,7 +372,7 @@ bool Compiler::fgGetProfileWeightForBasicBlock(IL_OFFSET offset, unsigned* weigh { if (fgBlockCounts[i].ILOffset == offset) { - *weightWB = fgBlockCounts[i].ExecutionCount; + *weightWB = (BasicBlock::weight_t)fgBlockCounts[i].ExecutionCount; return true; } } @@ -381,12 +381,34 @@ bool Compiler::fgGetProfileWeightForBasicBlock(IL_OFFSET offset, unsigned* weigh return true; } +//------------------------------------------------------------------------ +// fgInstrumentMethod: add instrumentation probes to the method +// +// Note: +// +// By default this instruments each non-internal block with +// a counter probe. +// +// Probes data is held in a runtime-allocated slab of Entries, with +// each Entry an (IL offset, count) pair. This method determines +// the number of Entrys needed and initializes each entry's IL offset. +// +// Options (many not yet implemented): +// * suppress count instrumentation for methods with +// a single block, or +// * instrument internal blocks (requires same internal expansions +// for BBOPT and BBINSTR, not yet guaranteed) +// * use spanning tree for minimal count probing +// * add class profile probes for virtual and interface call sites +// * record indirection cells for VSD calls +// void Compiler::fgInstrumentMethod() { noway_assert(!compIsForInlining()); // Count the number of basic blocks in the method - + // that will get block count probes. + // int countOfBlocks = 0; BasicBlock* block; for (block = fgFirstBB; (block != nullptr); block = block->bbNext) @@ -398,45 +420,255 @@ void Compiler::fgInstrumentMethod() countOfBlocks++; } + // We've already counted the number of class probes + // when importing. + // + int countOfCalls = info.compClassProbeCount; + + // Optionally bail out, if there are less than three blocks and no call sites to profile. + // One block is common. We don't expect to see zero or two blocks here. + // + // Note we have to at least visit all the profile call sites to properly restore their + // stub addresses. So we can't bail out early if there are any of these. + // + if ((JitConfig.JitMinimalProfiling() > 0) && (countOfBlocks < 3) && (countOfCalls == 0)) + { + JITDUMP("Not instrumenting method: %d blocks and %d calls\n", countOfBlocks, countOfCalls); + assert(countOfBlocks == 1); + return; + } + + JITDUMP("Instrumenting method, %d blocks and %d calls\n", countOfBlocks, countOfCalls); + // Allocate the profile buffer + // + // Allocation is in multiples of ICorJitInfo::BlockCounts. For each profile table we need + // some multiple of these. + // + const unsigned entriesPerCall = sizeof(ICorJitInfo::ClassProfile) / sizeof(ICorJitInfo::BlockCounts); + assert(entriesPerCall * sizeof(ICorJitInfo::BlockCounts) == sizeof(ICorJitInfo::ClassProfile)); - ICorJitInfo::BlockCounts* profileBlockCountsStart; + const unsigned totalEntries = countOfBlocks + entriesPerCall * countOfCalls; + ICorJitInfo::BlockCounts* profileBlockCountsStart = nullptr; - HRESULT res = info.compCompHnd->allocMethodBlockCounts(countOfBlocks, &profileBlockCountsStart); + HRESULT res = info.compCompHnd->allocMethodBlockCounts(totalEntries, &profileBlockCountsStart); + + // We may not be able to instrument, if so we'll set this false. + // We can't just early exit, because we have to clean up calls that we might have profiled. + // + bool instrument = true; if (!SUCCEEDED(res)) { + JITDUMP("Unable to instrument -- block counter allocation failed: 0x%x\n", res); + instrument = false; // The E_NOTIMPL status is returned when we are profiling a generic method from a different assembly - if (res == E_NOTIMPL) - { - // expected failure... - } - else + if (res != E_NOTIMPL) { noway_assert(!"Error: failed to allocate profileBlockCounts"); return; } } - else - { - // For each BasicBlock (non-Internal) - // 1. Assign the blocks bbCodeOffs to the ILOffset field of this blocks profile data. - // 2. Add an operation that increments the ExecutionCount field at the beginning of the block. - // Each (non-Internal) block has it own BlockCounts tuple [ILOffset, ExecutionCount] - // To start we initialize our current one with the first one that we allocated + ICorJitInfo::BlockCounts* profileBlockCountsEnd = &profileBlockCountsStart[countOfBlocks]; + ICorJitInfo::BlockCounts* profileEnd = &profileBlockCountsStart[totalEntries]; + + // For each BasicBlock (non-Internal) + // 1. Assign the blocks bbCodeOffs to the ILOffset field of this blocks profile data. + // 2. Add an operation that increments the ExecutionCount field at the beginning of the block. + // + // Each (non-Internal) block has it own BlockCounts tuple [ILOffset, ExecutionCount] + // To start we initialize our current one with the first one that we allocated + // + ICorJitInfo::BlockCounts* currentBlockCounts = profileBlockCountsStart; + + for (block = fgFirstBB; (block != nullptr); block = block->bbNext) + { + // We don't want to profile any un-imported blocks // - ICorJitInfo::BlockCounts* currentBlockCounts = profileBlockCountsStart; + if ((block->bbFlags & BBF_IMPORTED) == 0) + { + continue; + } - for (block = fgFirstBB; (block != nullptr); block = block->bbNext) + // We may see class probes in internal blocks, thanks to the + // block splitting done by the indirect call transformer. + // + if (JitConfig.JitClassProfiling() > 0) { - if (!(block->bbFlags & BBF_IMPORTED) || (block->bbFlags & BBF_INTERNAL)) + // Only works when jitting. + assert(!opts.jitFlags->IsSet(JitFlags::JIT_FLAG_PREJIT)); + + if ((block->bbFlags & BBF_HAS_CLASS_PROFILE) != 0) { - continue; + // Would be nice to avoid having to search here by tracking + // candidates more directly. + // + JITDUMP("Scanning for calls to profile in " FMT_BB "\n", block->bbNum); + + class ClassProbeVisitor final : public GenTreeVisitor + { + public: + enum + { + DoPreOrder = true + }; + + int m_count; + ICorJitInfo::ClassProfile* m_tableBase; + bool m_instrument; + + ClassProbeVisitor(Compiler* compiler, ICorJitInfo::ClassProfile* tableBase, bool instrument) + : GenTreeVisitor(compiler) + , m_count(0) + , m_tableBase(tableBase) + , m_instrument(instrument) + { + } + Compiler::fgWalkResult PreOrderVisit(GenTree** use, GenTree* user) + { + GenTree* const node = *use; + if (node->IsCall()) + { + GenTreeCall* const call = node->AsCall(); + if (call->IsVirtual() && (call->gtCallType != CT_INDIRECT)) + { + JITDUMP("Found call [%06u] with probe index %d and ilOffset 0x%X\n", + m_compiler->dspTreeID(call), call->gtClassProfileCandidateInfo->probeIndex, + call->gtClassProfileCandidateInfo->ilOffset); + + m_count++; + + if (m_instrument) + { + // We transform the call from (CALLVIRT obj, ... args ...) to + // to + // (CALLVIRT + // (COMMA + // (ASG tmp, obj) + // (COMMA + // (CALL probe_fn tmp, &probeEntry) + // tmp))) + // ... args ...) + // + + assert(call->gtCallThisArg->GetNode()->TypeGet() == TYP_REF); + + // Figure out where the table is located. + // + ICorJitInfo::ClassProfile* classProfile = + &m_tableBase[call->gtClassProfileCandidateInfo->probeIndex]; + + // Grab a temp to hold the 'this' object as it will be used three times + // + unsigned const tmpNum = m_compiler->lvaGrabTemp(true DEBUGARG("class profile tmp")); + m_compiler->lvaTable[tmpNum].lvType = TYP_REF; + + // Generate the IR... + // + GenTree* const classProfileNode = + m_compiler->gtNewIconNode((ssize_t)classProfile, TYP_I_IMPL); + GenTree* const tmpNode = m_compiler->gtNewLclvNode(tmpNum, TYP_REF); + GenTreeCall::Use* const args = m_compiler->gtNewCallArgs(tmpNode, classProfileNode); + GenTree* const helperCallNode = + m_compiler->gtNewHelperCallNode(CORINFO_HELP_CLASSPROFILE, TYP_VOID, args); + GenTree* const tmpNode2 = m_compiler->gtNewLclvNode(tmpNum, TYP_REF); + GenTree* const callCommaNode = + m_compiler->gtNewOperNode(GT_COMMA, TYP_REF, helperCallNode, tmpNode2); + GenTree* const tmpNode3 = m_compiler->gtNewLclvNode(tmpNum, TYP_REF); + GenTree* const asgNode = m_compiler->gtNewOperNode(GT_ASG, TYP_REF, tmpNode3, + call->gtCallThisArg->GetNode()); + GenTree* const asgCommaNode = + m_compiler->gtNewOperNode(GT_COMMA, TYP_REF, asgNode, callCommaNode); + + // Update the call + // + call->gtCallThisArg->SetNode(asgCommaNode); + + JITDUMP("Modified call is now\n"); + DISPTREE(call); + + // Initialize the class table + // + // Hack: we use two high bits of the offset to indicate that this record + // is the start of a class profile, and what kind of call is being profiled. + // + IL_OFFSET offset = jitGetILoffs(call->gtClassProfileCandidateInfo->ilOffset); + assert((offset & (ICorJitInfo::ClassProfile::CLASS_FLAG | + ICorJitInfo::ClassProfile::INTERFACE_FLAG)) == 0); + + offset |= ICorJitInfo::ClassProfile::CLASS_FLAG; + + if (call->IsVirtualStub()) + { + offset |= ICorJitInfo::ClassProfile::INTERFACE_FLAG; + } + else + { + assert(call->IsVirtualVtable()); + } + + classProfile->ILOffset = offset; + classProfile->Count = 0; + + for (int i = 0; i < ICorJitInfo::ClassProfile::SIZE; i++) + { + classProfile->ClassTable[i] = NO_CLASS_HANDLE; + } + } + + // Restore the stub address on call, whether instrumenting or not. + // + call->gtStubCallStubAddr = call->gtClassProfileCandidateInfo->stubAddr; + } + } + + return Compiler::WALK_CONTINUE; + } + }; + + // Scan the statements and add class probes + // + ClassProbeVisitor visitor(this, (ICorJitInfo::ClassProfile*)profileBlockCountsEnd, instrument); + for (Statement* stmt : block->Statements()) + { + visitor.WalkTree(stmt->GetRootNodePointer(), nullptr); + } + + // Bookkeeping + // + assert(visitor.m_count <= countOfCalls); + countOfCalls -= visitor.m_count; + JITDUMP("\n%d calls remain to be visited\n", countOfCalls); + } + else + { + JITDUMP("No calls to profile in " FMT_BB "\n", block->bbNum); } + } + + // We won't need count probes in internal blocks. + // + // TODO, perhaps: profile the flow early expansion ... we would need + // some non-il based keying scheme. + // + if ((block->bbFlags & BBF_INTERNAL) != 0) + { + continue; + } + // One less block + countOfBlocks--; + + if (instrument) + { // Assign the current block's IL offset into the profile data - currentBlockCounts->ILOffset = block->bbCodeOffs; + // (make sure IL offset is sane) + // + IL_OFFSET offset = block->bbCodeOffs; + assert((int)offset >= 0); + + currentBlockCounts->ILOffset = offset; currentBlockCounts->ExecutionCount = 0; size_t addrOfCurrentExecutionCount = (size_t)¤tBlockCounts->ExecutionCount; @@ -456,57 +688,63 @@ void Compiler::fgInstrumentMethod() // Advance to the next BlockCounts tuple [ILOffset, ExecutionCount] currentBlockCounts++; - - // One less block - countOfBlocks--; } - // Check that we allocated and initialized the same number of BlockCounts tuples - noway_assert(countOfBlocks == 0); + } - // When prejitting, add the method entry callback node - if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_PREJIT)) - { - GenTree* arg; + if (!instrument) + { + return; + } + + // Check that we allocated and initialized the same number of BlockCounts tuples + // + noway_assert(countOfBlocks == 0); + noway_assert(countOfCalls == 0); + assert(currentBlockCounts == profileBlockCountsEnd); + + // When prejitting, add the method entry callback node + if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_PREJIT)) + { + GenTree* arg; #ifdef FEATURE_READYTORUN_COMPILER - if (opts.IsReadyToRun()) - { - mdMethodDef currentMethodToken = info.compCompHnd->getMethodDefFromMethod(info.compMethodHnd); + if (opts.IsReadyToRun()) + { + mdMethodDef currentMethodToken = info.compCompHnd->getMethodDefFromMethod(info.compMethodHnd); - CORINFO_RESOLVED_TOKEN resolvedToken; - resolvedToken.tokenContext = MAKE_METHODCONTEXT(info.compMethodHnd); - resolvedToken.tokenScope = info.compScopeHnd; - resolvedToken.token = currentMethodToken; - resolvedToken.tokenType = CORINFO_TOKENKIND_Method; + CORINFO_RESOLVED_TOKEN resolvedToken; + resolvedToken.tokenContext = MAKE_METHODCONTEXT(info.compMethodHnd); + resolvedToken.tokenScope = info.compScopeHnd; + resolvedToken.token = currentMethodToken; + resolvedToken.tokenType = CORINFO_TOKENKIND_Method; - info.compCompHnd->resolveToken(&resolvedToken); + info.compCompHnd->resolveToken(&resolvedToken); - arg = impTokenToHandle(&resolvedToken); - } - else + arg = impTokenToHandle(&resolvedToken); + } + else #endif - { - arg = gtNewIconEmbMethHndNode(info.compMethodHnd); - } + { + arg = gtNewIconEmbMethHndNode(info.compMethodHnd); + } - GenTreeCall::Use* args = gtNewCallArgs(arg); - GenTree* call = gtNewHelperCallNode(CORINFO_HELP_BBT_FCN_ENTER, TYP_VOID, args); + GenTreeCall::Use* args = gtNewCallArgs(arg); + GenTree* call = gtNewHelperCallNode(CORINFO_HELP_BBT_FCN_ENTER, TYP_VOID, args); - // Get the address of the first blocks ExecutionCount - size_t addrOfFirstExecutionCount = (size_t)&profileBlockCountsStart->ExecutionCount; + // Get the address of the first blocks ExecutionCount + size_t addrOfFirstExecutionCount = (size_t)&profileBlockCountsStart->ExecutionCount; - // Read Basic-Block count value - GenTree* valueNode = gtNewIndOfIconHandleNode(TYP_INT, addrOfFirstExecutionCount, GTF_ICON_BBC_PTR, false); + // Read Basic-Block count value + GenTree* valueNode = gtNewIndOfIconHandleNode(TYP_INT, addrOfFirstExecutionCount, GTF_ICON_BBC_PTR, false); - // Compare Basic-Block count value against zero - GenTree* relop = gtNewOperNode(GT_NE, TYP_INT, valueNode, gtNewIconNode(0, TYP_INT)); - GenTree* colon = new (this, GT_COLON) GenTreeColon(TYP_VOID, gtNewNothingNode(), call); - GenTree* cond = gtNewQmarkNode(TYP_VOID, relop, colon); - Statement* stmt = gtNewStmt(cond); + // Compare Basic-Block count value against zero + GenTree* relop = gtNewOperNode(GT_NE, TYP_INT, valueNode, gtNewIconNode(0, TYP_INT)); + GenTree* colon = new (this, GT_COLON) GenTreeColon(TYP_VOID, gtNewNothingNode(), call); + GenTree* cond = gtNewQmarkNode(TYP_VOID, relop, colon); + Statement* stmt = gtNewStmt(cond); - fgEnsureFirstBBisScratch(); - fgInsertStmtAtEnd(fgFirstBB, stmt); - } + fgEnsureFirstBBisScratch(); + fgInsertStmtAtEnd(fgFirstBB, stmt); } } @@ -5179,7 +5417,7 @@ void Compiler::fgObserveInlineConstants(OPCODE opcode, const FgStack& stack, boo // Check for the double whammy of an incoming constant argument // feeding a constant test. unsigned varNum = FgStack::SlotTypeToArgNum(slot0); - if (impInlineInfo->inlArgInfo[varNum].argNode->OperIsConst()) + if (impInlineInfo->inlArgInfo[varNum].argIsInvariant) { compInlineResult->Note(InlineObservation::CALLSITE_CONSTANT_ARG_FEEDS_TEST); } @@ -5221,7 +5459,7 @@ void Compiler::fgObserveInlineConstants(OPCODE opcode, const FgStack& stack, boo compInlineResult->Note(InlineObservation::CALLEE_ARG_FEEDS_TEST); unsigned varNum = FgStack::SlotTypeToArgNum(slot0); - if (impInlineInfo->inlArgInfo[varNum].argNode->OperIsConst()) + if (impInlineInfo->inlArgInfo[varNum].argIsInvariant) { compInlineResult->Note(InlineObservation::CALLSITE_CONSTANT_ARG_FEEDS_TEST); } @@ -5232,7 +5470,7 @@ void Compiler::fgObserveInlineConstants(OPCODE opcode, const FgStack& stack, boo compInlineResult->Note(InlineObservation::CALLEE_ARG_FEEDS_TEST); unsigned varNum = FgStack::SlotTypeToArgNum(slot1); - if (impInlineInfo->inlArgInfo[varNum].argNode->OperIsConst()) + if (impInlineInfo->inlArgInfo[varNum].argIsInvariant) { compInlineResult->Note(InlineObservation::CALLSITE_CONSTANT_ARG_FEEDS_TEST); } @@ -5816,7 +6054,7 @@ unsigned Compiler::fgMakeBasicBlocks(const BYTE* codeAddr, IL_OFFSET codeSize, F curBBdesc->bbCodeOffs = curBBoffs; curBBdesc->bbCodeOffsEnd = nxtBBoffs; - unsigned profileWeight; + BasicBlock::weight_t profileWeight; if (fgGetProfileWeightForBasicBlock(curBBoffs, &profileWeight)) { @@ -5824,7 +6062,8 @@ unsigned Compiler::fgMakeBasicBlocks(const BYTE* codeAddr, IL_OFFSET codeSize, F { if (impInlineInfo->profileScaleState == InlineInfo::ProfileScaleState::KNOWN) { - profileWeight = (unsigned)(impInlineInfo->profileScaleFactor * profileWeight); + double scaledWeight = impInlineInfo->profileScaleFactor * profileWeight; + profileWeight = (BasicBlock::weight_t)scaledWeight; } } @@ -9807,6 +10046,8 @@ void Compiler::fgSimpleLowering() JITDUMP("Bumping outgoingArgSpaceSize to %u for localloc", outgoingArgSpaceSize); } + assert((outgoingArgSpaceSize % TARGET_POINTER_SIZE) == 0); + // Publish the final value and mark it as read only so any update // attempt later will cause an assert. lvaOutgoingArgSpaceSize = outgoingArgSpaceSize; @@ -13199,7 +13440,7 @@ void Compiler::fgPrintEdgeWeights() if (edge->edgeWeightMin() < BB_MAX_WEIGHT) { - printf("(%u", edge->edgeWeightMin()); + printf("(%f", edge->edgeWeightMin()); } else { @@ -13209,7 +13450,7 @@ void Compiler::fgPrintEdgeWeights() { if (edge->edgeWeightMax() < BB_MAX_WEIGHT) { - printf("..%u", edge->edgeWeightMax()); + printf("..%f", edge->edgeWeightMax()); } else { @@ -13490,7 +13731,7 @@ void Compiler::fgComputeCalledCount(BasicBlock::weight_t returnWeight) #if DEBUG if (verbose) { - printf("We are using the Profile Weights and fgCalledCount is %d.\n", fgCalledCount); + printf("We are using the Profile Weights and fgCalledCount is %.0f.\n", fgCalledCount); } #endif } @@ -13612,8 +13853,8 @@ void Compiler::fgComputeEdgeWeights() slop = BasicBlock::GetSlopFraction(bSrc, bDst) + 1; if (bSrc->bbJumpKind == BBJ_COND) { - int diff; - flowList* otherEdge; + BasicBlock::weight_t diff; + flowList* otherEdge; if (bSrc->bbNext == bDst) { otherEdge = fgGetPredForBlock(bSrc->bbJumpDest, bSrc); @@ -13626,7 +13867,7 @@ void Compiler::fgComputeEdgeWeights() noway_assert(otherEdge->edgeWeightMin() <= otherEdge->edgeWeightMax()); // Adjust edge->flEdgeWeightMin up or adjust otherEdge->flEdgeWeightMax down - diff = ((int)bSrc->bbWeight) - ((int)edge->edgeWeightMin() + (int)otherEdge->edgeWeightMax()); + diff = bSrc->bbWeight - (edge->edgeWeightMin() + otherEdge->edgeWeightMax()); if (diff > 0) { assignOK &= edge->setEdgeWeightMinChecked(edge->edgeWeightMin() + diff, slop, &usedSlop); @@ -13638,7 +13879,7 @@ void Compiler::fgComputeEdgeWeights() } // Adjust otherEdge->flEdgeWeightMin up or adjust edge->flEdgeWeightMax down - diff = ((int)bSrc->bbWeight) - ((int)otherEdge->edgeWeightMin() + (int)edge->edgeWeightMax()); + diff = bSrc->bbWeight - (otherEdge->edgeWeightMin() + edge->edgeWeightMax()); if (diff > 0) { assignOK &= @@ -13658,12 +13899,12 @@ void Compiler::fgComputeEdgeWeights() } #ifdef DEBUG // Now edge->flEdgeWeightMin and otherEdge->flEdgeWeightMax) should add up to bSrc->bbWeight - diff = ((int)bSrc->bbWeight) - ((int)edge->edgeWeightMin() + (int)otherEdge->edgeWeightMax()); - noway_assert((-((int)slop) <= diff) && (diff <= ((int)slop))); + diff = bSrc->bbWeight - (edge->edgeWeightMin() + otherEdge->edgeWeightMax()); + assert(((-slop) <= diff) && (diff <= slop)); // Now otherEdge->flEdgeWeightMin and edge->flEdgeWeightMax) should add up to bSrc->bbWeight - diff = ((int)bSrc->bbWeight) - ((int)otherEdge->edgeWeightMin() + (int)edge->edgeWeightMax()); - noway_assert((-((int)slop) <= diff) && (diff <= ((int)slop))); + diff = bSrc->bbWeight - (otherEdge->edgeWeightMin() + edge->edgeWeightMax()); + assert(((-slop) <= diff) && (diff <= slop)); #endif // DEBUG } } @@ -13689,8 +13930,8 @@ void Compiler::fgComputeEdgeWeights() bDstWeight -= fgCalledCount; } - UINT64 minEdgeWeightSum = 0; - UINT64 maxEdgeWeightSum = 0; + BasicBlock::weight_t minEdgeWeightSum = 0; + BasicBlock::weight_t maxEdgeWeightSum = 0; // Calculate the sums of the minimum and maximum edge weights for (edge = bDst->bbPreds; edge != nullptr; edge = edge->flNext) @@ -13716,12 +13957,12 @@ void Compiler::fgComputeEdgeWeights() // otherMaxEdgesWeightSum is the sum of all of the other edges flEdgeWeightMax values // This can be used to compute a lower bound for our minimum edge weight noway_assert(maxEdgeWeightSum >= edge->edgeWeightMax()); - UINT64 otherMaxEdgesWeightSum = maxEdgeWeightSum - edge->edgeWeightMax(); + BasicBlock::weight_t otherMaxEdgesWeightSum = maxEdgeWeightSum - edge->edgeWeightMax(); // otherMinEdgesWeightSum is the sum of all of the other edges flEdgeWeightMin values // This can be used to compute an upper bound for our maximum edge weight noway_assert(minEdgeWeightSum >= edge->edgeWeightMin()); - UINT64 otherMinEdgesWeightSum = minEdgeWeightSum - edge->edgeWeightMin(); + BasicBlock::weight_t otherMinEdgesWeightSum = minEdgeWeightSum - edge->edgeWeightMin(); if (bDstWeight >= otherMaxEdgesWeightSum) { @@ -15245,9 +15486,9 @@ bool Compiler::fgOptimizeBranch(BasicBlock* bJump) { newWeightDest = (weightDest - weightJump); } - if (weightDest >= (BB_LOOP_WEIGHT * BB_UNITY_WEIGHT) / 2) + if (weightDest >= (BB_LOOP_WEIGHT_SCALE * BB_UNITY_WEIGHT) / 2) { - newWeightDest = (weightDest * 2) / (BB_LOOP_WEIGHT * BB_UNITY_WEIGHT); + newWeightDest = (weightDest * 2) / (BB_LOOP_WEIGHT_SCALE * BB_UNITY_WEIGHT); } if (newWeightDest > 0) { @@ -19985,7 +20226,7 @@ bool Compiler::fgDumpFlowGraph(Phases phase) if (fgHaveProfileData()) { - fprintf(fgxFile, "\n calledCount=\"%d\"", fgCalledCount); + fprintf(fgxFile, "\n calledCount=\"%f\"", fgCalledCount); fprintf(fgxFile, "\n profileData=\"true\""); } if (compHndBBtabCount > 0) @@ -20156,7 +20397,7 @@ bool Compiler::fgDumpFlowGraph(Phases phase) if (validWeights) { - unsigned edgeWeight = (edge->edgeWeightMin() + edge->edgeWeightMax()) / 2; + BasicBlock::weight_t edgeWeight = (edge->edgeWeightMin() + edge->edgeWeightMax()) / 2; fprintf(fgxFile, "%slabel=\"%7.2f\"", sep, (double)edgeWeight / weightDivisor); } @@ -20181,7 +20422,7 @@ bool Compiler::fgDumpFlowGraph(Phases phase) } if (validWeights) { - unsigned edgeWeight = (edge->edgeWeightMin() + edge->edgeWeightMax()) / 2; + BasicBlock::weight_t edgeWeight = (edge->edgeWeightMin() + edge->edgeWeightMax()) / 2; fprintf(fgxFile, "\n weight="); fprintfDouble(fgxFile, ((double)edgeWeight) / weightDivisor); @@ -20416,13 +20657,13 @@ void Compiler::fgTableDispBasicBlock(BasicBlock* block, int ibcColWidth /* = 0 * if (weight <= 99999 * BB_UNITY_WEIGHT) { // print weight in this format ddddd. - printf("%5u.", (weight + (BB_UNITY_WEIGHT / 2)) / BB_UNITY_WEIGHT); + printf("%5u.", (unsigned)FloatingPointUtils::round(weight / BB_UNITY_WEIGHT)); } else // print weight in terms of k (i.e. 156k ) { // print weight in this format dddddk BasicBlock::weight_t weightK = weight / 1000; - printf("%5uk", (weightK + (BB_UNITY_WEIGHT / 2)) / BB_UNITY_WEIGHT); + printf("%5uk", (unsigned)FloatingPointUtils::round(weightK / BB_UNITY_WEIGHT)); } } else // print weight in this format ddd.dd @@ -20430,7 +20671,6 @@ void Compiler::fgTableDispBasicBlock(BasicBlock* block, int ibcColWidth /* = 0 * printf("%6s", refCntWtd2str(weight)); } } - printf(" "); // // Display optional IBC weight column. @@ -20441,7 +20681,7 @@ void Compiler::fgTableDispBasicBlock(BasicBlock* block, int ibcColWidth /* = 0 * { if (block->hasProfileWeight()) { - printf("%*u", ibcColWidth, block->bbWeight); + printf("%*u", ibcColWidth, (unsigned)FloatingPointUtils::round(block->bbWeight)); } else { @@ -22741,7 +22981,11 @@ void Compiler::fgAttachStructInlineeToAsg(GenTree* tree, GenTree* child, CORINFO // If the return type is a struct type and we're on a platform // where structs can be returned in multiple registers, ensure the // call has a suitable parent. - +// +// If the original call type and the substitution type are different +// the functions makes necessary updates. It could happen if there was +// an implicit conversion in the inlinee body. +// Compiler::fgWalkResult Compiler::fgUpdateInlineReturnExpressionPlaceHolder(GenTree** pTree, fgWalkData* data) { // All the operations here and in the corresponding postorder @@ -22796,6 +23040,29 @@ Compiler::fgWalkResult Compiler::fgUpdateInlineReturnExpressionPlaceHolder(GenTr } #endif // DEBUG + var_types newType = inlineCandidate->TypeGet(); + + // If we end up swapping type we may need to retype the tree: + if (retType != newType) + { + if ((retType == TYP_BYREF) && (tree->OperGet() == GT_IND)) + { + // - in an RVA static if we've reinterpreted it as a byref; + assert(newType == TYP_I_IMPL); + JITDUMP("Updating type of the return GT_IND expression to TYP_BYREF\n"); + inlineCandidate->gtType = TYP_BYREF; + } + else + { + // - under a call if we changed size of the argument. + GenTree* putArgType = comp->fgCheckCallArgUpdate(data->parent, inlineCandidate, retType); + if (putArgType != nullptr) + { + inlineCandidate = putArgType; + } + } + } + tree->ReplaceWith(inlineCandidate, comp); comp->compCurBB->bbFlags |= (bbFlags & BBF_SPLIT_GAINED); @@ -22807,17 +23074,6 @@ Compiler::fgWalkResult Compiler::fgUpdateInlineReturnExpressionPlaceHolder(GenTr printf("\n"); } #endif // DEBUG - - var_types newType = tree->TypeGet(); - - // If we end up swapping in an RVA static we may need to retype it here, - // if we've reinterpreted it as a byref. - if ((retType != newType) && (retType == TYP_BYREF) && (tree->OperGet() == GT_IND)) - { - assert(newType == TYP_I_IMPL); - JITDUMP("Updating type of the return GT_IND expression to TYP_BYREF\n"); - tree->gtType = TYP_BYREF; - } } // If an inline was rejected and the call returns a struct, we may @@ -23099,8 +23355,16 @@ Compiler::fgWalkResult Compiler::fgLateDevirtualization(GenTree** pTree, fgWalkD } else { - GenTree* foldedTree = comp->gtFoldExpr(tree); - *pTree = foldedTree; + const var_types retType = tree->TypeGet(); + GenTree* foldedTree = comp->gtFoldExpr(tree); + const var_types newType = foldedTree->TypeGet(); + + GenTree* putArgType = comp->fgCheckCallArgUpdate(data->parent, foldedTree, retType); + if (putArgType != nullptr) + { + foldedTree = putArgType; + } + *pTree = foldedTree; } return WALK_CONTINUE; @@ -23797,8 +24061,12 @@ Statement* Compiler::fgInlinePrependStatements(InlineInfo* inlineInfo) { const InlArgInfo& argInfo = inlArgInfo[argNum]; const bool argIsSingleDef = !argInfo.argHasLdargaOp && !argInfo.argHasStargOp; - GenTree* const argNode = inlArgInfo[argNum].argNode; - unsigned __int64 bbFlags = inlArgInfo[argNum].bbFlags; + GenTree* argNode = inlArgInfo[argNum].argNode; + const bool argHasPutArg = argNode->OperIs(GT_PUTARG_TYPE); + + unsigned __int64 bbFlags = 0; + argNode = argNode->gtSkipPutArgType(); + argNode = argNode->gtRetExprVal(&bbFlags); if (argInfo.argHasTmp) { @@ -23818,7 +24086,11 @@ Statement* Compiler::fgInlinePrependStatements(InlineInfo* inlineInfo) GenTree* argSingleUseNode = argInfo.argBashTmpNode; - if ((argSingleUseNode != nullptr) && !(argSingleUseNode->gtFlags & GTF_VAR_CLONED) && argIsSingleDef) + // argHasPutArg disqualifies the arg from a direct substitution because we don't have information about + // its user. For example: replace `LCL_VAR short` with `PUTARG_TYPE short->LCL_VAR int`, + // we should keep `PUTARG_TYPE` iff the user is a call that needs `short` and delete it otherwise. + if ((argSingleUseNode != nullptr) && !(argSingleUseNode->gtFlags & GTF_VAR_CLONED) && argIsSingleDef && + !argHasPutArg) { // Change the temp in-place to the actual argument. // We currently do not support this for struct arguments, so it must not be a GT_OBJ. @@ -26499,6 +26771,44 @@ void Compiler::fgTailMergeThrowsJumpToHelper(BasicBlock* predBlock, canonicalBlock->bbFlags |= (BBF_JMP_TARGET | BBF_HAS_LABEL); } +//------------------------------------------------------------------------ +// fgCheckCallArgUpdate: check if we are replacing a call argument and add GT_PUTARG_TYPE if necessary. +// +// Arguments: +// parent - the parent that could be a call; +// child - the new child node; +// origType - the original child type; +// +// Returns: +// PUT_ARG_TYPE node if it is needed, nullptr otherwise. +// +GenTree* Compiler::fgCheckCallArgUpdate(GenTree* parent, GenTree* child, var_types origType) +{ + if ((parent == nullptr) || !parent->IsCall()) + { + return nullptr; + } + const var_types newType = child->TypeGet(); + if (newType == origType) + { + return nullptr; + } + if (varTypeIsStruct(origType) || (genTypeSize(origType) == genTypeSize(newType))) + { + assert(!varTypeIsStruct(newType)); + return nullptr; + } + GenTree* putArgType = gtNewOperNode(GT_PUTARG_TYPE, origType, child); +#if defined(DEBUG) + if (verbose) + { + printf("For call [%06d] the new argument's type [%06d]", dspTreeID(parent), dspTreeID(child)); + printf(" does not match the original type size, add a GT_PUTARG_TYPE [%06d]\n", dspTreeID(parent)); + } +#endif + return putArgType; +} + #ifdef DEBUG //------------------------------------------------------------------------ diff --git a/src/coreclr/src/jit/gentree.cpp b/src/coreclr/src/jit/gentree.cpp index e2ae7339c6d5..a55d157714c7 100644 --- a/src/coreclr/src/jit/gentree.cpp +++ b/src/coreclr/src/jit/gentree.cpp @@ -1206,7 +1206,7 @@ bool GenTreeCall::Equals(GenTreeCall* c1, GenTreeCall* c2) } #if !defined(FEATURE_PUT_STRUCT_ARG_STK) -unsigned GenTreePutArgStk::getArgSize() +unsigned GenTreePutArgStk::GetStackByteSize() const { return genTypeSize(genActualType(gtOp1->gtType)); } @@ -5112,6 +5112,7 @@ bool GenTree::TryGetUse(GenTree* def, GenTree*** use) case GT_NULLCHECK: case GT_PUTARG_REG: case GT_PUTARG_STK: + case GT_PUTARG_TYPE: case GT_RETURNTRAP: case GT_NOP: case GT_RETURN: @@ -6070,19 +6071,12 @@ GenTree* Compiler::gtNewStringLiteralNode(InfoAccessType iat, void* pValue) switch (iat) { case IAT_VALUE: - // For CoreRT only - Constant object can be a frozen string. - if (!IsTargetAbi(CORINFO_CORERT_ABI)) - { - // Non CoreRT - This case is illegal, creating a TYP_REF from an INT_CNS - noway_assert(!"unreachable IAT_VALUE case in gtNewStringLiteralNode"); - } - + setMethodHasFrozenString(); tree = gtNewIconEmbHndNode(pValue, nullptr, GTF_ICON_STR_HDL, nullptr); tree->gtType = TYP_REF; #ifdef DEBUG tree->AsIntCon()->gtTargetHandle = (size_t)pValue; #endif - tree = gtNewOperNode(GT_NOP, TYP_REF, tree); // prevents constant folding break; case IAT_PVALUE: // The value needs to be accessed via an indirection @@ -8535,15 +8529,21 @@ bool Compiler::gtCompareTree(GenTree* op1, GenTree* op2) return false; } +//------------------------------------------------------------------------ +// gtGetThisArg: Return this pointer node for the call. +// +// Arguments: +// call - the call node with a this argument. +// +// Return value: +// the this pointer node. +// GenTree* Compiler::gtGetThisArg(GenTreeCall* call) { - if (call->gtCallThisArg == nullptr) - { - return nullptr; - } + assert(call->gtCallThisArg != nullptr); GenTree* thisArg = call->gtCallThisArg->GetNode(); - if (thisArg->OperIs(GT_NOP, GT_ASG) == false) + if (!thisArg->OperIs(GT_ASG)) { if ((thisArg->gtFlags & GTF_LATE_ARG) == 0) { @@ -8551,41 +8551,38 @@ GenTree* Compiler::gtGetThisArg(GenTreeCall* call) } } - if (call->gtCallLateArgs != nullptr) - { - unsigned argNum = 0; - fgArgTabEntry* thisArgTabEntry = gtArgEntryByArgNum(call, argNum); - GenTree* result = thisArgTabEntry->GetNode(); + assert(call->gtCallLateArgs != nullptr); - // Assert if we used DEBUG_DESTROY_NODE. - assert(result->gtOper != GT_COUNT); + unsigned argNum = 0; + fgArgTabEntry* thisArgTabEntry = gtArgEntryByArgNum(call, argNum); + GenTree* result = thisArgTabEntry->GetNode(); + + // Assert if we used DEBUG_DESTROY_NODE. + assert(result->gtOper != GT_COUNT); #if !FEATURE_FIXED_OUT_ARGS && defined(DEBUG) - // Check that call->fgArgInfo used in gtArgEntryByArgNum was not - // left outdated by assertion propogation updates. - // There is no information about registers of late args for platforms - // with FEATURE_FIXED_OUT_ARGS that is why this debug check is under - // !FEATURE_FIXED_OUT_ARGS. - regNumber thisReg = REG_ARG_0; - regList list = call->regArgList; - int index = 0; - for (GenTreeCall::Use& use : call->LateArgs()) + // Check that call->fgArgInfo used in gtArgEntryByArgNum was not + // left outdated by assertion propogation updates. + // There is no information about registers of late args for platforms + // with FEATURE_FIXED_OUT_ARGS that is why this debug check is under + // !FEATURE_FIXED_OUT_ARGS. + regNumber thisReg = REG_ARG_0; + regList list = call->regArgList; + int index = 0; + for (GenTreeCall::Use& use : call->LateArgs()) + { + assert(index < call->regArgListCount); + regNumber curArgReg = list[index]; + if (curArgReg == thisReg) { - assert(index < call->regArgListCount); - regNumber curArgReg = list[index]; - if (curArgReg == thisReg) - { - assert(result == use.GetNode()); - } - - index++; + assert(result == use.GetNode()); } -#endif // !FEATURE_FIXED_OUT_ARGS && defined(DEBUG) - return result; + index++; } +#endif // !FEATURE_FIXED_OUT_ARGS && defined(DEBUG) - return nullptr; + return result; } bool GenTree::gtSetFlags() const @@ -9111,6 +9108,7 @@ GenTreeUseEdgeIterator::GenTreeUseEdgeIterator(GenTree* node) case GT_NULLCHECK: case GT_PUTARG_REG: case GT_PUTARG_STK: + case GT_PUTARG_TYPE: case GT_BSWAP: case GT_BSWAP16: case GT_KEEPALIVE: @@ -11523,10 +11521,16 @@ void Compiler::gtDispTree(GenTree* tree, #if FEATURE_PUT_STRUCT_ARG_STK else if (tree->OperGet() == GT_PUTARG_STK) { - printf(" (%d slots)", tree->AsPutArgStk()->gtNumSlots); - if (tree->AsPutArgStk()->gtPutArgStkKind != GenTreePutArgStk::Kind::Invalid) + const GenTreePutArgStk* putArg = tree->AsPutArgStk(); +#if !defined(DEBUG_ARG_SLOTS) + printf(" (%d stackByteSize), (%d byteOffset)", putArg->GetStackByteSize(), putArg->getArgOffset()); +#else + printf(" (%d slots), (%d stackByteSize), (%d slot), (%d byteOffset)", putArg->gtNumSlots, + putArg->GetStackByteSize(), putArg->gtSlotNum, putArg->getArgOffset()); +#endif + if (putArg->gtPutArgStkKind != GenTreePutArgStk::Kind::Invalid) { - switch (tree->AsPutArgStk()->gtPutArgStkKind) + switch (putArg->gtPutArgStkKind) { case GenTreePutArgStk::Kind::RepInstr: printf(" (RepInstr)"); @@ -11545,6 +11549,18 @@ void Compiler::gtDispTree(GenTree* tree, } } } +#if FEATURE_ARG_SPLIT + else if (tree->OperGet() == GT_PUTARG_SPLIT) + { + const GenTreePutArgSplit* putArg = tree->AsPutArgSplit(); +#if !defined(DEBUG_ARG_SLOTS) + printf(" (%d stackByteSize), (%d numRegs)", putArg->GetStackByteSize(), putArg->gtNumRegs); +#else + printf(" (%d slots), (%d stackByteSize), (%d numRegs)", putArg->gtNumSlots, putArg->GetStackByteSize(), + putArg->gtNumRegs); +#endif + } +#endif // FEATURE_ARG_SPLIT #endif // FEATURE_PUT_STRUCT_ARG_STK if (tree->gtOper == GT_INTRINSIC) @@ -12007,9 +12023,7 @@ void Compiler::gtGetArgMsg(GenTreeCall* call, GenTree* arg, unsigned argNum, cha } #endif // TARGET_ARM #if FEATURE_FIXED_OUT_ARGS - - sprintf_s(bufp, bufLength, "arg%d out+%02x%c", argNum, curArgTabEntry->slotNum * TARGET_POINTER_SIZE, 0); - + sprintf_s(bufp, bufLength, "arg%d out+%02x%c", argNum, curArgTabEntry->GetByteOffset(), 0); #else sprintf_s(bufp, bufLength, "arg%d on STK%c", argNum, 0); #endif @@ -12052,8 +12066,7 @@ void Compiler::gtGetLateArgMsg(GenTreeCall* call, GenTree* argx, int lateArgInde #else if (argReg == REG_STK) { - sprintf_s(bufp, bufLength, "arg%d in out+%02x%c", curArgTabEntry->argNum, - curArgTabEntry->slotNum * TARGET_POINTER_SIZE, 0); + sprintf_s(bufp, bufLength, "arg%d in out+%02x%c", curArgTabEntry->argNum, curArgTabEntry->GetByteOffset(), 0); } else #endif @@ -15506,7 +15519,7 @@ GenTree* Compiler::gtNewTempAssign( // There are 2 special cases: // 1. we have lost classHandle from a FIELD node because the parent struct has overlapping fields, // the field was transformed as IND opr GT_LCL_FLD; - // 2. we are propogating `ASG(struct V01, 0)` to `RETURN(struct V01)`, `CNT_INT` doesn't `structHnd`; + // 2. we are propagation `ASG(struct V01, 0)` to `RETURN(struct V01)`, `CNT_INT` doesn't `structHnd`; // in these cases, we can use the type of the merge return for the assignment. assert(val->OperIs(GT_IND, GT_LCL_FLD, GT_CNS_INT)); assert(!compDoOldStructRetyping()); diff --git a/src/coreclr/src/jit/gentree.h b/src/coreclr/src/jit/gentree.h index 687a27134af1..7391a8be15f4 100644 --- a/src/coreclr/src/jit/gentree.h +++ b/src/coreclr/src/jit/gentree.h @@ -155,6 +155,7 @@ enum TargetHandleType : BYTE struct BasicBlock; struct InlineCandidateInfo; struct GuardedDevirtualizationCandidateInfo; +struct ClassProfileCandidateInfo; typedef unsigned short AssertionIndex; @@ -1736,7 +1737,9 @@ struct GenTree inline GenTree* gtEffectiveVal(bool commaOnly = false); // Tunnel through any GT_RET_EXPRs - inline GenTree* gtRetExprVal(unsigned __int64* pbbFlags); + inline GenTree* gtRetExprVal(unsigned __int64* pbbFlags = nullptr); + + inline GenTree* gtSkipPutArgType(); // Return the child of this node if it is a GT_RELOAD or GT_COPY; otherwise simply return the node itself inline GenTree* gtSkipReloadOrCopy(); @@ -4514,6 +4517,7 @@ struct GenTreeCall final : public GenTree // gtInlineCandidateInfo is only used when inlining methods InlineCandidateInfo* gtInlineCandidateInfo; GuardedDevirtualizationCandidateInfo* gtGuardedDevirtualizationCandidateInfo; + ClassProfileCandidateInfo* gtClassProfileCandidateInfo; void* gtStubCallStubAddr; // GTF_CALL_VIRT_STUB - these are never inlined CORINFO_GENERIC_HANDLE compileTimeHelperArgumentHandle; // Used to track type handle argument of dynamic helpers void* gtDirectCallAddress; // Used to pass direct call address between lower and codegen @@ -5991,48 +5995,93 @@ struct GenTreePhiArg : public GenTreeLclVarCommon struct GenTreePutArgStk : public GenTreeUnOp { +private: + unsigned m_byteOffset; +#ifdef FEATURE_PUT_STRUCT_ARG_STK + unsigned m_byteSize; // The number of bytes that this argument is occupying on the stack with padding. +#endif + +public: +#if defined(DEBUG_ARG_SLOTS) unsigned gtSlotNum; // Slot number of the argument to be passed on stack +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + unsigned gtNumSlots; // Number of slots for the argument to be passed on stack +#endif +#endif + #if defined(UNIX_X86_ABI) unsigned gtPadAlign; // Number of padding slots for stack alignment #endif +#if defined(DEBUG) || defined(UNIX_X86_ABI) + GenTreeCall* gtCall; // the call node to which this argument belongs +#endif - // Don't let clang-format mess with the GenTreePutArgStk constructor. - // clang-format off +#if FEATURE_FASTTAILCALL + + bool gtPutInIncomingArgArea; // Whether this arg needs to be placed in incoming arg area. + // By default this is false and will be placed in out-going arg area. + // Fast tail calls set this to true. + // In future if we need to add more such bool fields consider bit fields. +#endif + +#ifdef FEATURE_PUT_STRUCT_ARG_STK + // Instruction selection: during codegen time, what code sequence we will be using + // to encode this operation. + // TODO-Throughput: The following information should be obtained from the child + // block node. + + enum class Kind : __int8{ + Invalid, RepInstr, Unroll, Push, PushAllSlots, + }; + Kind gtPutArgStkKind; +#endif - GenTreePutArgStk(genTreeOps oper, - var_types type, + GenTreePutArgStk(genTreeOps oper, + var_types type, GenTree* op1, - unsigned slotNum - PUT_STRUCT_ARG_STK_ONLY_ARG(unsigned numSlots), - bool putInIncomingArgArea = false, - GenTreeCall* callNode = nullptr) + unsigned stackByteOffset, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + unsigned stackByteSize, +#endif +#if defined(DEBUG_ARG_SLOTS) + unsigned slotNum, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + unsigned numSlots, +#endif +#endif + GenTreeCall* callNode, + bool putInIncomingArgArea) : GenTreeUnOp(oper, type, op1 DEBUGARG(/*largeNode*/ false)) + , m_byteOffset(stackByteOffset) +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + , m_byteSize(stackByteSize) +#endif +#if defined(DEBUG_ARG_SLOTS) , gtSlotNum(slotNum) +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + , gtNumSlots(numSlots) +#endif +#endif #if defined(UNIX_X86_ABI) , gtPadAlign(0) #endif +#if defined(DEBUG) || defined(UNIX_X86_ABI) + , gtCall(callNode) +#endif #if FEATURE_FASTTAILCALL , gtPutInIncomingArgArea(putInIncomingArgArea) #endif // FEATURE_FASTTAILCALL -#ifdef FEATURE_PUT_STRUCT_ARG_STK +#if defined(FEATURE_PUT_STRUCT_ARG_STK) , gtPutArgStkKind(Kind::Invalid) - , gtNumSlots(numSlots) -#endif // FEATURE_PUT_STRUCT_ARG_STK -#if defined(DEBUG) || defined(UNIX_X86_ABI) - , gtCall(callNode) #endif { + DEBUG_ARG_SLOTS_ASSERT(m_byteOffset == slotNum * TARGET_POINTER_SIZE); +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + DEBUG_ARG_SLOTS_ASSERT(m_byteSize == gtNumSlots * TARGET_POINTER_SIZE); +#endif } -// clang-format on - #if FEATURE_FASTTAILCALL - - bool gtPutInIncomingArgArea; // Whether this arg needs to be placed in incoming arg area. - // By default this is false and will be placed in out-going arg area. - // Fast tail calls set this to true. - // In future if we need to add more such bool fields consider bit fields. - bool putInIncomingArgArea() const { return gtPutInIncomingArgArea; @@ -6049,7 +6098,9 @@ struct GenTreePutArgStk : public GenTreeUnOp unsigned getArgOffset() const { - return gtSlotNum * TARGET_POINTER_SIZE; + DEBUG_ARG_SLOTS_ASSERT(m_byteOffset / TARGET_POINTER_SIZE == gtSlotNum); + DEBUG_ARG_SLOTS_ASSERT(m_byteOffset % TARGET_POINTER_SIZE == 0); + return m_byteOffset; } #if defined(UNIX_X86_ABI) @@ -6065,43 +6116,26 @@ struct GenTreePutArgStk : public GenTreeUnOp #endif #ifdef FEATURE_PUT_STRUCT_ARG_STK - unsigned getArgSize() const + unsigned GetStackByteSize() const { - return gtNumSlots * TARGET_POINTER_SIZE; + return m_byteSize; } // Return true if this is a PutArgStk of a SIMD12 struct. // This is needed because such values are re-typed to SIMD16, and the type of PutArgStk is VOID. unsigned isSIMD12() const { - return (varTypeIsSIMD(gtOp1) && (gtNumSlots == 3)); + return (varTypeIsSIMD(gtOp1) && (GetStackByteSize() == 12)); } - // Instruction selection: during codegen time, what code sequence we will be using - // to encode this operation. - // TODO-Throughput: The following information should be obtained from the child - // block node. - - enum class Kind : __int8{ - Invalid, RepInstr, Unroll, Push, PushAllSlots, - }; - - Kind gtPutArgStkKind; bool isPushKind() const { return (gtPutArgStkKind == Kind::Push) || (gtPutArgStkKind == Kind::PushAllSlots); } - - unsigned gtNumSlots; // Number of slots for the argument to be passed on stack - #else // !FEATURE_PUT_STRUCT_ARG_STK - unsigned getArgSize(); + unsigned GetStackByteSize() const; #endif // !FEATURE_PUT_STRUCT_ARG_STK -#if defined(DEBUG) || defined(UNIX_X86_ABI) - GenTreeCall* gtCall; // the call node to which this argument belongs -#endif - #if DEBUGGABLE_GENTREE GenTreePutArgStk() : GenTreeUnOp() { @@ -6116,16 +6150,34 @@ struct GenTreePutArgSplit : public GenTreePutArgStk unsigned gtNumRegs; GenTreePutArgSplit(GenTree* op1, - unsigned slotNum PUT_STRUCT_ARG_STK_ONLY_ARG(unsigned numSlots), + unsigned stackByteOffset, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + unsigned stackByteSize, +#endif +#if defined(DEBUG_ARG_SLOTS) + unsigned slotNum, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + unsigned numSlots, +#endif +#endif unsigned numRegs, - bool putIncomingArgArea = false, - GenTreeCall* callNode = nullptr) + GenTreeCall* callNode, + bool putIncomingArgArea) : GenTreePutArgStk(GT_PUTARG_SPLIT, TYP_STRUCT, op1, - slotNum PUT_STRUCT_ARG_STK_ONLY_ARG(numSlots), - putIncomingArgArea, - callNode) + stackByteOffset, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + stackByteSize, +#endif +#if defined(DEBUG_ARG_SLOTS) + slotNum, +#if defined(FEATURE_PUT_STRUCT_ARG_STK) + numSlots, +#endif +#endif + callNode, + putIncomingArgArea) , gtNumRegs(numRegs) { ClearOtherRegs(); @@ -6246,13 +6298,6 @@ struct GenTreePutArgSplit : public GenTreePutArgStk gtSpillFlags = 0; } -#ifdef FEATURE_PUT_STRUCT_ARG_STK - unsigned getArgSize() const - { - return (gtNumSlots + gtNumRegs) * TARGET_POINTER_SIZE; - } -#endif // FEATURE_PUT_STRUCT_ARG_STK - #if DEBUGGABLE_GENTREE GenTreePutArgSplit() : GenTreePutArgStk() { @@ -7070,14 +7115,15 @@ inline GenTree* GenTree::gtGetOp2IfPresent() const return op2; } -inline GenTree* GenTree::gtEffectiveVal(bool commaOnly) +inline GenTree* GenTree::gtEffectiveVal(bool commaOnly /* = false */) { GenTree* effectiveVal = this; for (;;) { + assert(!effectiveVal->OperIs(GT_PUTARG_TYPE)); if (effectiveVal->gtOper == GT_COMMA) { - effectiveVal = effectiveVal->AsOp()->gtOp2; + effectiveVal = effectiveVal->AsOp()->gtGetOp2(); } else if (!commaOnly && (effectiveVal->gtOper == GT_NOP) && (effectiveVal->AsOp()->gtOp1 != nullptr)) { @@ -7106,23 +7152,49 @@ inline GenTree* GenTree::gtEffectiveVal(bool commaOnly) // Multi-level inlines can form chains of GT_RET_EXPRs. // This method walks back to the root of the chain. -inline GenTree* GenTree::gtRetExprVal(unsigned __int64* pbbFlags) +inline GenTree* GenTree::gtRetExprVal(unsigned __int64* pbbFlags /* = nullptr */) { GenTree* retExprVal = this; unsigned __int64 bbFlags = 0; - assert(pbbFlags != nullptr); + assert(!retExprVal->OperIs(GT_PUTARG_TYPE)); - for (; retExprVal->gtOper == GT_RET_EXPR; retExprVal = retExprVal->AsRetExpr()->gtInlineCandidate) + while (retExprVal->OperIs(GT_RET_EXPR)) { - bbFlags = retExprVal->AsRetExpr()->bbFlags; + const GenTreeRetExpr* retExpr = retExprVal->AsRetExpr(); + bbFlags = retExpr->bbFlags; + retExprVal = retExpr->gtInlineCandidate; } - *pbbFlags = bbFlags; + if (pbbFlags != nullptr) + { + *pbbFlags = bbFlags; + } return retExprVal; } +//------------------------------------------------------------------------- +// gtSkipPutArgType - skip PUTARG_TYPE if it is presented. +// +// Returns: +// the original tree or its child if it was a PUTARG_TYPE. +// +// Notes: +// PUTARG_TYPE should be skipped when we are doing transformations +// that are not affected by ABI, for example: inlining, implicit byref morphing. +// +inline GenTree* GenTree::gtSkipPutArgType() +{ + if (OperIs(GT_PUTARG_TYPE)) + { + GenTree* res = AsUnOp()->gtGetOp1(); + assert(!res->OperIs(GT_PUTARG_TYPE)); + return res; + } + return this; +} + inline GenTree* GenTree::gtSkipReloadOrCopy() { // There can be only one reload or copy (we can't have a reload/copy of a reload/copy) diff --git a/src/coreclr/src/jit/gtlist.h b/src/coreclr/src/jit/gtlist.h index 640affba218b..f73f0c6ce68d 100644 --- a/src/coreclr/src/jit/gtlist.h +++ b/src/coreclr/src/jit/gtlist.h @@ -292,6 +292,7 @@ GTNODE(PUTARG_REG , GenTreeMultiRegOp ,0,GTK_UNOP) #else GTNODE(PUTARG_REG , GenTreeOp ,0,GTK_UNOP) // operator that places outgoing arg in register #endif +GTNODE(PUTARG_TYPE , GenTreeOp ,0,GTK_UNOP|GTK_NOTLIR) // operator that places saves argument type between importation and morph GTNODE(PUTARG_STK , GenTreePutArgStk ,0,GTK_UNOP|GTK_NOVALUE) // operator that places outgoing arg in stack #if FEATURE_ARG_SPLIT GTNODE(PUTARG_SPLIT , GenTreePutArgSplit ,0,GTK_UNOP) // operator that places outgoing arg in registers with stack (split struct in ARM32) diff --git a/src/coreclr/src/jit/importer.cpp b/src/coreclr/src/jit/importer.cpp index 5d57941ba410..fb9e10c6a980 100644 --- a/src/coreclr/src/jit/importer.cpp +++ b/src/coreclr/src/jit/importer.cpp @@ -935,16 +935,15 @@ GenTreeCall::Use* Compiler::impPopCallArgs(unsigned count, CORINFO_SIG_INFO* sig info.compCompHnd->classMustBeLoadedBeforeCodeIsRun(sig->retTypeSigClass); } - CORINFO_ARG_LIST_HANDLE argLst = sig->args; - CORINFO_CLASS_HANDLE argClass; - CORINFO_CLASS_HANDLE argRealClass; + CORINFO_ARG_LIST_HANDLE sigArgs = sig->args; GenTreeCall::Use* arg; for (arg = argList, count = sig->numArgs; count > 0; arg = arg->GetNext(), count--) { PREFIX_ASSUME(arg != nullptr); - CorInfoType corType = strip(info.compCompHnd->getArgType(sig, argLst, &argClass)); + CORINFO_CLASS_HANDLE classHnd; + CorInfoType corType = strip(info.compCompHnd->getArgType(sig, sigArgs, &classHnd)); var_types jitSigType = JITtype2varType(corType); @@ -954,7 +953,6 @@ GenTreeCall::Use* Compiler::impPopCallArgs(unsigned count, CORINFO_SIG_INFO* sig } // insert implied casts (from float to double or double to float) - if ((jitSigType == TYP_DOUBLE) && (arg->GetNode()->TypeGet() == TYP_FLOAT)) { arg->SetNode(gtNewCastNode(TYP_DOUBLE, arg->GetNode(), false, TYP_DOUBLE)); @@ -965,21 +963,35 @@ GenTreeCall::Use* Compiler::impPopCallArgs(unsigned count, CORINFO_SIG_INFO* sig } // insert any widening or narrowing casts for backwards compatibility - arg->SetNode(impImplicitIorI4Cast(arg->GetNode(), jitSigType)); if (corType != CORINFO_TYPE_CLASS && corType != CORINFO_TYPE_BYREF && corType != CORINFO_TYPE_PTR && - corType != CORINFO_TYPE_VAR && (argRealClass = info.compCompHnd->getArgClass(sig, argLst)) != nullptr) + corType != CORINFO_TYPE_VAR) { - // Make sure that all valuetypes (including enums) that we push are loaded. - // This is to guarantee that if a GC is triggered from the prestub of this methods, - // all valuetypes in the method signature are already loaded. - // We need to be able to find the size of the valuetypes, but we cannot - // do a class-load from within GC. - info.compCompHnd->classMustBeLoadedBeforeCodeIsRun(argRealClass); + CORINFO_CLASS_HANDLE argRealClass = info.compCompHnd->getArgClass(sig, sigArgs); + if (argRealClass != nullptr) + { + // Make sure that all valuetypes (including enums) that we push are loaded. + // This is to guarantee that if a GC is triggered from the prestub of this methods, + // all valuetypes in the method signature are already loaded. + // We need to be able to find the size of the valuetypes, but we cannot + // do a class-load from within GC. + info.compCompHnd->classMustBeLoadedBeforeCodeIsRun(argRealClass); + } } - argLst = info.compCompHnd->getArgNext(argLst); + const var_types nodeArgType = arg->GetNode()->TypeGet(); + if (!varTypeIsStruct(jitSigType) && genTypeSize(nodeArgType) != genTypeSize(jitSigType)) + { + assert(!varTypeIsStruct(nodeArgType)); + // Some ABI require precise size information for call arguments less than target pointer size, + // for example arm64 OSX. Create a special node to keep this information until morph + // consumes it into `fgArgInfo`. + GenTree* putArgType = gtNewOperNode(GT_PUTARG_TYPE, jitSigType, arg->GetNode()); + arg->SetNode(putArgType); + } + + sigArgs = info.compCompHnd->getArgNext(sigArgs); } } @@ -8725,7 +8737,7 @@ var_types Compiler::impImportCall(OPCODE opcode, const bool isExplicitTailCall = (tailCallFlags & PREFIX_TAILCALL_EXPLICIT) != 0; const bool isLateDevirtualization = false; impDevirtualizeCall(call->AsCall(), &callInfo->hMethod, &callInfo->methodFlags, &callInfo->contextHandle, - &exactContextHnd, isLateDevirtualization, isExplicitTailCall); + &exactContextHnd, isLateDevirtualization, isExplicitTailCall, rawILOffset); } if (impIsThis(obj)) @@ -18879,9 +18891,13 @@ void Compiler::impMakeDiscretionaryInlineObservations(InlineInfo* pInlineInfo, I frequency = InlineCallsiteFrequency::BORING; } - // Also capture the block weight of the call site. In the prejit - // root case, assume there's some hot call site for this method. - unsigned weight = 0; + // Also capture the block weight of the call site. + // + // In the prejit root case, assume at runtime there might be a hot call site + // for this method, so we won't prematurely conclude this method should never + // be inlined. + // + BasicBlock::weight_t weight = 0; if (pInlineInfo != nullptr) { @@ -18889,11 +18905,12 @@ void Compiler::impMakeDiscretionaryInlineObservations(InlineInfo* pInlineInfo, I } else { - weight = BB_MAX_WEIGHT; + const float prejitHotCallerWeight = 1000000.0f; + weight = prejitHotCallerWeight; } inlineResult->NoteInt(InlineObservation::CALLSITE_FREQUENCY, static_cast(frequency)); - inlineResult->NoteInt(InlineObservation::CALLSITE_WEIGHT, static_cast(weight)); + inlineResult->NoteInt(InlineObservation::CALLSITE_WEIGHT, (int)(weight)); // If the call site has profile data, report the relative frequency of the site. // @@ -19207,20 +19224,24 @@ void Compiler::impCheckCanInline(GenTreeCall* call, // properties are used later by impInlineFetchArg to determine how best to // pass the argument into the inlinee. -void Compiler::impInlineRecordArgInfo( - InlineInfo* pInlineInfo, GenTree* curArgVal, unsigned argNum, unsigned __int64 bbFlags, InlineResult* inlineResult) +void Compiler::impInlineRecordArgInfo(InlineInfo* pInlineInfo, + GenTree* curArgVal, + unsigned argNum, + InlineResult* inlineResult) { InlArgInfo* inlCurArgInfo = &pInlineInfo->inlArgInfo[argNum]; + inlCurArgInfo->argNode = curArgVal; // Save the original tree, with PUT_ARG and RET_EXPR. + + curArgVal = curArgVal->gtSkipPutArgType(); + curArgVal = curArgVal->gtRetExprVal(); + if (curArgVal->gtOper == GT_MKREFANY) { inlineResult->NoteFatal(InlineObservation::CALLSITE_ARG_IS_MKREFANY); return; } - inlCurArgInfo->argNode = curArgVal; - inlCurArgInfo->bbFlags = bbFlags; - GenTree* lclVarTree; const bool isAddressInLocal = impIsAddressInLocal(curArgVal, &lclVarTree); @@ -19374,12 +19395,10 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) assert((methInfo->args.hasThis()) == (thisArg != nullptr)); - if (thisArg) + if (thisArg != nullptr) { - inlArgInfo[0].argIsThis = true; - unsigned __int64 bbFlags = 0; - GenTree* actualThisArg = thisArg->GetNode()->gtRetExprVal(&bbFlags); - impInlineRecordArgInfo(pInlineInfo, actualThisArg, argCnt, bbFlags, inlineResult); + inlArgInfo[0].argIsThis = true; + impInlineRecordArgInfo(pInlineInfo, thisArg->GetNode(), argCnt, inlineResult); if (inlineResult->IsFailure()) { @@ -19414,9 +19433,8 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) continue; } - unsigned __int64 bbFlags = 0; - GenTree* actualArg = use.GetNode()->gtRetExprVal(&bbFlags); - impInlineRecordArgInfo(pInlineInfo, actualArg, argCnt, bbFlags, inlineResult); + GenTree* actualArg = use.GetNode(); + impInlineRecordArgInfo(pInlineInfo, actualArg, argCnt, inlineResult); if (inlineResult->IsFailure()) { @@ -19514,8 +19532,12 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) GenTree* inlArgNode = inlArgInfo[i].argNode; - if (sigType != inlArgNode->gtType) + if ((sigType != inlArgNode->gtType) || inlArgNode->OperIs(GT_PUTARG_TYPE)) { + assert(impCheckImplicitArgumentCoercion(sigType, inlArgNode->gtType)); + assert(!varTypeIsStruct(inlArgNode->gtType) && !varTypeIsStruct(sigType) && + genTypeSize(inlArgNode->gtType) == genTypeSize(sigType)); + /* In valid IL, this can only happen for short integer types or byrefs <-> [native] ints, but in bad IL cases with caller-callee signature mismatches we can see other types. Intentionally reject cases with mismatches so the jit is more flexible when @@ -19531,10 +19553,23 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) return; } + GenTree** pInlArgNode; + if (inlArgNode->OperIs(GT_PUTARG_TYPE)) + { + // There was a widening or narrowing cast. + GenTreeUnOp* putArgType = inlArgNode->AsUnOp(); + pInlArgNode = &putArgType->gtOp1; + inlArgNode = putArgType->gtOp1; + } + else + { + // The same size but different type of the arguments. + pInlArgNode = &inlArgInfo[i].argNode; + } + /* Is it a narrowing or widening cast? * Widening casts are ok since the value computed is already * normalized to an int (on the IL stack) */ - if (genTypeSize(inlArgNode->gtType) >= genTypeSize(sigType)) { if (sigType == TYP_BYREF) @@ -19560,37 +19595,34 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) } else if (genTypeSize(sigType) < EA_PTRSIZE) { - /* Narrowing cast */ - - if (inlArgNode->gtOper == GT_LCL_VAR && - !lvaTable[inlArgNode->AsLclVarCommon()->GetLclNum()].lvNormalizeOnLoad() && - sigType == lvaGetRealType(inlArgNode->AsLclVarCommon()->GetLclNum())) + // Narrowing cast. + if (inlArgNode->OperIs(GT_LCL_VAR)) { - /* We don't need to insert a cast here as the variable - was assigned a normalized value of the right type */ - - continue; + const unsigned lclNum = inlArgNode->AsLclVarCommon()->GetLclNum(); + if (!lvaTable[lclNum].lvNormalizeOnLoad() && sigType == lvaGetRealType(lclNum)) + { + // We don't need to insert a cast here as the variable + // was assigned a normalized value of the right type. + continue; + } } - inlArgNode = inlArgInfo[i].argNode = gtNewCastNode(TYP_INT, inlArgNode, false, sigType); + inlArgNode = gtNewCastNode(TYP_INT, inlArgNode, false, sigType); inlArgInfo[i].argIsLclVar = false; - - /* Try to fold the node in case we have constant arguments */ - + // Try to fold the node in case we have constant arguments. if (inlArgInfo[i].argIsInvariant) { - inlArgNode = gtFoldExprConst(inlArgNode); - inlArgInfo[i].argNode = inlArgNode; + inlArgNode = gtFoldExprConst(inlArgNode); assert(inlArgNode->OperIsConst()); } + *pInlArgNode = inlArgNode; } #ifdef TARGET_64BIT else if (genTypeSize(genActualType(inlArgNode->gtType)) < genTypeSize(sigType)) { // This should only happen for int -> native int widening - inlArgNode = inlArgInfo[i].argNode = - gtNewCastNode(genActualType(sigType), inlArgNode, false, sigType); + inlArgNode = gtNewCastNode(genActualType(sigType), inlArgNode, false, sigType); inlArgInfo[i].argIsLclVar = false; @@ -19598,10 +19630,10 @@ void Compiler::impInlineInitVars(InlineInfo* pInlineInfo) if (inlArgInfo[i].argIsInvariant) { - inlArgNode = gtFoldExprConst(inlArgNode); - inlArgInfo[i].argNode = inlArgNode; + inlArgNode = gtFoldExprConst(inlArgNode); assert(inlArgNode->OperIsConst()); } + *pInlArgNode = inlArgNode; } #endif // TARGET_64BIT } @@ -19828,6 +19860,8 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In const var_types lclTyp = lclInfo.lclTypeInfo; GenTree* op1 = nullptr; + GenTree* argNode = argInfo.argNode->gtSkipPutArgType()->gtRetExprVal(); + if (argInfo.argIsInvariant && !argCanBeModified) { // Directly substitute constants or addresses of locals @@ -19838,7 +19872,7 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In // impInlineExpr. Then gtFoldExpr() could change it, causing // further references to the argument working off of the // bashed copy. - op1 = gtCloneExpr(argInfo.argNode); + op1 = gtCloneExpr(argNode); PREFIX_ASSUME(op1 != nullptr); argInfo.argTmpNum = BAD_VAR_NUM; @@ -19858,7 +19892,7 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In // Directly substitute unaliased caller locals for args that cannot be modified // // Use the caller-supplied node if this is the first use. - op1 = argInfo.argNode; + op1 = argNode; argInfo.argTmpNum = op1->AsLclVarCommon()->GetLclNum(); // Use an equivalent copy if this is the second or subsequent @@ -19901,8 +19935,8 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In then we change the argument tree (of "ldloca.s V_1") to TYP_I_IMPL to match the callee signature. We'll soon afterwards reject the inlining anyway, since the tree we return isn't a GT_LCL_VAR. */ - assert(argInfo.argNode->TypeGet() == TYP_BYREF || argInfo.argNode->TypeGet() == TYP_I_IMPL); - op1 = gtCloneExpr(argInfo.argNode); + assert(argNode->TypeGet() == TYP_BYREF || argNode->TypeGet() == TYP_I_IMPL); + op1 = gtCloneExpr(argNode); } else { @@ -19943,7 +19977,7 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In assert(lvaTable[tmpNum].lvSingleDef == 0); lvaTable[tmpNum].lvSingleDef = 1; JITDUMP("Marked V%02u as a single def temp\n", tmpNum); - lvaSetClass(tmpNum, argInfo.argNode, lclInfo.lclVerTypeInfo.GetClassHandleForObjRef()); + lvaSetClass(tmpNum, argNode, lclInfo.lclVerTypeInfo.GetClassHandleForObjRef()); } else { @@ -20520,9 +20554,10 @@ bool Compiler::IsMathIntrinsic(GenTree* tree) // method -- [IN/OUT] the method handle for call. Updated iff call devirtualized. // methodFlags -- [IN/OUT] flags for the method to call. Updated iff call devirtualized. // contextHandle -- [IN/OUT] context handle for the call. Updated iff call devirtualized. -// exactContextHnd -- [OUT] updated context handle iff call devirtualized +// exactContextHandle -- [OUT] updated context handle iff call devirtualized // isLateDevirtualization -- if devirtualization is happening after importation // isExplicitTailCalll -- [IN] true if we plan on using an explicit tail call +// ilOffset -- IL offset of the call // // Notes: // Virtual calls in IL will always "invoke" the base class method. @@ -20557,7 +20592,8 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, CORINFO_CONTEXT_HANDLE* contextHandle, CORINFO_CONTEXT_HANDLE* exactContextHandle, bool isLateDevirtualization, - bool isExplicitTailCall) + bool isExplicitTailCall, + IL_OFFSETX ilOffset) { assert(call != nullptr); assert(method != nullptr); @@ -20567,9 +20603,39 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // This should be a virtual vtable or virtual stub call. assert(call->IsVirtual()); - // Bail if not optimizing - if (opts.OptimizationDisabled()) + // Possibly instrument, if not optimizing. + // + if (opts.OptimizationDisabled() && (call->gtCallType != CT_INDIRECT)) { + // During importation, optionally flag this block as one that + // contains calls requiring class profiling. Ideally perhaps + // we'd just keep track of the calls themselves, so we don't + // have to search for them later. + // + if (opts.jitFlags->IsSet(JitFlags::JIT_FLAG_BBINSTR) && !opts.jitFlags->IsSet(JitFlags::JIT_FLAG_PREJIT) && + (JitConfig.JitClassProfiling() > 0) && !isLateDevirtualization) + { + JITDUMP("\n ... marking [%06u] in " FMT_BB " for class profile instrumentation\n", dspTreeID(call), + compCurBB->bbNum); + ClassProfileCandidateInfo* pInfo = new (this, CMK_Inlining) ClassProfileCandidateInfo; + + // Record some info needed for the class profiling probe. + // + pInfo->ilOffset = ilOffset; + pInfo->probeIndex = info.compClassProbeCount++; + pInfo->stubAddr = call->gtStubCallStubAddr; + + // note this overwrites gtCallStubAddr, so it needs to be undone + // during the instrumentation phase, or we won't generate proper + // code for vsd calls. + // + call->gtClassProfileCandidateInfo = pInfo; + + // Flag block as needing scrutiny + // + compCurBB->bbFlags |= BBF_HAS_CLASS_PROFILE; + } + return; } @@ -20647,8 +20713,7 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, if ((objClass == nullptr) || !isExact) { // Walk back through any return expression placeholders - unsigned __int64 bbFlags = 0; - actualThisObj = thisObj->gtRetExprVal(&bbFlags); + actualThisObj = thisObj->gtRetExprVal(); // See if we landed on a call to a special intrinsic method if (actualThisObj->IsCall()) @@ -20717,56 +20782,74 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // IL_021e: callvirt instance int32 System.Object::GetHashCode() // // If so, we can't devirtualize, but we may be able to do guarded devirtualization. + // if ((objClassAttribs & CORINFO_FLG_INTERFACE) != 0) { - // If we're called during early devirtualiztion, attempt guarded devirtualization - // if there's currently just one implementing class. - if (exactContextHandle == nullptr) + // Don't try guarded devirtualiztion when we're doing late devirtualization. + // + if (isLateDevirtualization) { - JITDUMP("--- obj class is interface...unable to dervirtualize, sorry\n"); + JITDUMP("No guarded devirt during late devirtualization\n"); return; } - CORINFO_CLASS_HANDLE uniqueImplementingClass = NO_CLASS_HANDLE; + JITDUMP("Considering guarded devirt...\n"); - // info.compCompHnd->getUniqueImplementingClass(objClass); + // See if the runtime can provide a class to guess for. + // + const unsigned interfaceLikelihoodThreshold = 25; + unsigned likelihood = 0; + unsigned numberOfClasses = 0; + CORINFO_CLASS_HANDLE likelyClass = + info.compCompHnd->getLikelyClass(info.compMethodHnd, baseClass, ilOffset, &likelihood, &numberOfClasses); - if (uniqueImplementingClass == NO_CLASS_HANDLE) + if (likelyClass == NO_CLASS_HANDLE) { - JITDUMP("No unique implementor of interface %p (%s), sorry\n", dspPtr(objClass), objClassName); + JITDUMP("No likely implementor of interface %p (%s), sorry\n", dspPtr(objClass), objClassName); return; } + else + { + JITDUMP("Likely implementor of interface %p (%s) is %p (%s) [likelihood:%u classes seen:%u]\n", + dspPtr(objClass), objClassName, likelyClass, eeGetClassName(likelyClass), likelihood, + numberOfClasses); + } - JITDUMP("Only known implementor of interface %p (%s) is %p (%s)!\n", dspPtr(objClass), objClassName, - uniqueImplementingClass, eeGetClassName(uniqueImplementingClass)); - - bool guessUniqueInterface = true; - - INDEBUG(guessUniqueInterface = (JitConfig.JitGuardedDevirtualizationGuessUniqueInterface() > 0);); - - if (!guessUniqueInterface) + // Todo: a more advanced heuristic using likelihood, number of + // classes, and the profile count for this block. + // + // For now we will guess if the likelihood is 25% or more, as studies + // have shown this should pay off for interface calls. + // + if (likelihood < interfaceLikelihoodThreshold) { - JITDUMP("Guarded devirt for unique interface implementor is not enabled, sorry\n"); + JITDUMP("Not guessing for class; likelihood is below interface call threshold %u\n", + interfaceLikelihoodThreshold); return; } - // Ask the runtime to determine the method that would be called based on the guessed-for type. - CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; - CORINFO_METHOD_HANDLE uniqueImplementingMethod = - info.compCompHnd->resolveVirtualMethod(baseMethod, uniqueImplementingClass, ownerType); + // Ask the runtime to determine the method that would be called based on the likely type. + // + CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; + CORINFO_METHOD_HANDLE likelyMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, likelyClass, ownerType); - if (uniqueImplementingMethod == nullptr) + if (likelyMethod == nullptr) { JITDUMP("Can't figure out which method would be invoked, sorry\n"); return; } - JITDUMP("Interface call would invoke method %s\n", eeGetMethodName(uniqueImplementingMethod, nullptr)); - DWORD uniqueMethodAttribs = info.compCompHnd->getMethodAttribs(uniqueImplementingMethod); - DWORD uniqueClassAttribs = info.compCompHnd->getClassAttribs(uniqueImplementingClass); + JITDUMP("%s call would invoke method %s\n", callKind, eeGetMethodName(likelyMethod, nullptr)); + + // Some of these may be redundant + // + DWORD likelyMethodAttribs = info.compCompHnd->getMethodAttribs(likelyMethod); + DWORD likelyClassAttribs = info.compCompHnd->getClassAttribs(likelyClass); - addGuardedDevirtualizationCandidate(call, uniqueImplementingMethod, uniqueImplementingClass, - uniqueMethodAttribs, uniqueClassAttribs); + // Try guarded devirtualization. + // + addGuardedDevirtualizationCandidate(call, likelyMethod, likelyClass, likelyMethodAttribs, likelyClassAttribs, + likelihood); return; } @@ -20778,84 +20861,156 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, JITDUMP("--- base class is interface\n"); } - // Fetch the method that would be called based on the declared type of 'this' + // Fetch the method that would be called based on the declared type of 'this', + // and prepare to fetch the method attributes. + // CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; CORINFO_METHOD_HANDLE derivedMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, objClass, ownerType); - // If we failed to get a handle, we can't devirtualize. This can - // happen when prejitting, if the devirtualization crosses - // servicing bubble boundaries. - // - // Note if we have some way of guessing a better and more likely type we can do something similar to the code - // above for the case where the best jit type is an interface type. - if (derivedMethod == nullptr) - { - JITDUMP("--- no derived method, sorry\n"); - return; - } - - // Fetch method attributes to see if method is marked final. - DWORD derivedMethodAttribs = info.compCompHnd->getMethodAttribs(derivedMethod); - const bool derivedMethodIsFinal = ((derivedMethodAttribs & CORINFO_FLG_FINAL) != 0); + DWORD derivedMethodAttribs = 0; + bool derivedMethodIsFinal = false; + bool canDevirtualize = false; #if defined(DEBUG) const char* derivedClassName = "?derivedClass"; const char* derivedMethodName = "?derivedMethod"; + const char* note = "inexact or not final"; +#endif - const char* note = "inexact or not final"; - if (isExact) - { - note = "exact"; - } - else if (objClassIsFinal) + // If we failed to get a method handle, we can't directly devirtualize. + // + // This can happen when prejitting, if the devirtualization crosses + // servicing bubble boundaries, or if objClass is a shared class. + // + if (derivedMethod == nullptr) { - note = "final class"; + JITDUMP("--- no derived method\n"); } - else if (derivedMethodIsFinal) + else { - note = "final method"; - } + // Fetch method attributes to see if method is marked final. + derivedMethodAttribs = info.compCompHnd->getMethodAttribs(derivedMethod); + derivedMethodIsFinal = ((derivedMethodAttribs & CORINFO_FLG_FINAL) != 0); - if (verbose || doPrint) - { - derivedMethodName = eeGetMethodName(derivedMethod, &derivedClassName); - if (verbose) +#if defined(DEBUG) + if (isExact) { - printf(" devirt to %s::%s -- %s\n", derivedClassName, derivedMethodName, note); - gtDispTree(call); + note = "exact"; + } + else if (objClassIsFinal) + { + note = "final class"; + } + else if (derivedMethodIsFinal) + { + note = "final method"; + } + + if (verbose || doPrint) + { + derivedMethodName = eeGetMethodName(derivedMethod, &derivedClassName); + if (verbose) + { + printf(" devirt to %s::%s -- %s\n", derivedClassName, derivedMethodName, note); + gtDispTree(call); + } } - } #endif // defined(DEBUG) - const bool canDevirtualize = isExact || objClassIsFinal || (!isInterface && derivedMethodIsFinal); + canDevirtualize = isExact || objClassIsFinal || (!isInterface && derivedMethodIsFinal); + } + // We still might be able to do a guarded devirtualization. + // Note the call might be an interface call or a virtual call. + // if (!canDevirtualize) { JITDUMP(" Class not final or exact%s\n", isInterface ? "" : ", and method not final"); - // Have we enabled guarded devirtualization by guessing the jit's best class? - bool guessJitBestClass = true; - INDEBUG(guessJitBestClass = (JitConfig.JitGuardedDevirtualizationGuessBestClass() > 0);); + // Don't try guarded devirtualiztion if we're doing late devirtualization. + // + if (isLateDevirtualization) + { + JITDUMP("No guarded devirt during late devirtualization\n"); + return; + } + + JITDUMP("Consdering guarded devirt...\n"); + + // See if there's a likely guess for the class. + // + const unsigned likelihoodThreshold = isInterface ? 25 : 30; + unsigned likelihood = 0; + unsigned numberOfClasses = 0; + CORINFO_CLASS_HANDLE likelyClass = + info.compCompHnd->getLikelyClass(info.compMethodHnd, baseClass, ilOffset, &likelihood, &numberOfClasses); - if (!guessJitBestClass) + if (likelyClass != NO_CLASS_HANDLE) { - JITDUMP("No guarded devirt: guessing for jit best class disabled\n"); + JITDUMP("Likely class for %p (%s) is %p (%s) [likelihood:%u classes seen:%u]\n", dspPtr(objClass), + objClassName, likelyClass, eeGetClassName(likelyClass), likelihood, numberOfClasses); + } + else if (derivedMethod != nullptr) + { + // If we have a derived method we can optionally guess for + // the class that introduces the method. + // + bool guessJitBestClass = true; + INDEBUG(guessJitBestClass = (JitConfig.JitGuardedDevirtualizationGuessBestClass() > 0);); + + if (!guessJitBestClass) + { + JITDUMP("No guarded devirt: no likely class and guessing for jit best class disabled\n"); + return; + } + + // We will use the class that introduced the method as our guess + // for the runtime class of the object. + // + // We don't know now likely this is; just choose a value that gets + // us past the threshold. + likelyClass = info.compCompHnd->getMethodClass(derivedMethod); + likelihood = likelihoodThreshold; + + JITDUMP("Will guess implementing class for class %p (%s) is %p (%s)!\n", dspPtr(objClass), objClassName, + likelyClass, eeGetClassName(likelyClass)); + } + + // Todo: a more advanced heuristic using likelihood, number of + // classes, and the profile count for this block. + // + // For now we will guess if the likelihood is at least 25%/30% (intfc/virt), as studies + // have shown this transformation should pay off even if we guess wrong sometimes. + // + if (likelihood < likelihoodThreshold) + { + JITDUMP("Not guessing for class; likelihood is below %s call threshold %u\n", callKind, + likelihoodThreshold); return; } - // Don't try guarded devirtualiztion when we're doing late devirtualization. - if (isLateDevirtualization) + // Figure out which method will be called. + // + CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; + CORINFO_METHOD_HANDLE likelyMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, likelyClass, ownerType); + + if (likelyMethod == nullptr) { - JITDUMP("No guarded devirt during late devirtualization\n"); + JITDUMP("Can't figure out which method would be invoked, sorry\n"); return; } - // We will use the class that introduced the method as our guess - // for the runtime class of othe object. - CORINFO_CLASS_HANDLE derivedClass = info.compCompHnd->getMethodClass(derivedMethod); + JITDUMP("%s call would invoke method %s\n", callKind, eeGetMethodName(likelyMethod, nullptr)); + + // Some of these may be redundant + // + DWORD likelyMethodAttribs = info.compCompHnd->getMethodAttribs(likelyMethod); + DWORD likelyClassAttribs = info.compCompHnd->getClassAttribs(likelyClass); // Try guarded devirtualization. - addGuardedDevirtualizationCandidate(call, derivedMethod, derivedClass, derivedMethodAttribs, objClassAttribs); + // + addGuardedDevirtualizationCandidate(call, likelyMethod, likelyClass, likelyMethodAttribs, likelyClassAttribs, + likelihood); return; } @@ -20864,6 +21019,14 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, JITDUMP(" %s; can devirtualize\n", note); + // See if the method we're devirtualizing to is an intrinsic. + // + if (derivedMethodAttribs & (CORINFO_FLG_JIT_INTRINSIC | CORINFO_FLG_INTRINSIC)) + { + JITDUMP("!!! Devirt to intrinsic in %s, calling %s::%s\n", impInlineRoot()->info.compFullName, derivedClassName, + derivedMethodName); + } + // Make the updates. call->gtFlags &= ~GTF_CALL_VIRT_VTABLE; call->gtFlags &= ~GTF_CALL_VIRT_STUB; @@ -21256,12 +21419,14 @@ void Compiler::addFatPointerCandidate(GenTreeCall* call) // classHandle - class that will be tested for at runtime // methodAttr - attributes of the method // classAttr - attributes of the class +// likelihood - odds that this class is the class seen at runtime // void Compiler::addGuardedDevirtualizationCandidate(GenTreeCall* call, CORINFO_METHOD_HANDLE methodHandle, CORINFO_CLASS_HANDLE classHandle, unsigned methodAttr, - unsigned classAttr) + unsigned classAttr, + unsigned likelihood) { // This transformation only makes sense for virtual calls assert(call->IsVirtual()); @@ -21301,24 +21466,46 @@ void Compiler::addGuardedDevirtualizationCandidate(GenTreeCall* call, return; } +#ifdef DEBUG + + // See if disabled by range + // + static ConfigMethodRange JitGuardedDevirtualizationRange; + JitGuardedDevirtualizationRange.EnsureInit(JitConfig.JitGuardedDevirtualizationRange()); + assert(!JitGuardedDevirtualizationRange.Error()); + if (!JitGuardedDevirtualizationRange.Contains(impInlineRoot()->info.compMethodHash())) + { + JITDUMP("NOT Marking call [%06u] as guarded devirtualization candidate -- excluded by " + "JitGuardedDevirtualizationRange", + dspTreeID(call)); + return; + } + +#endif + // We're all set, proceed with candidate creation. + // JITDUMP("Marking call [%06u] as guarded devirtualization candidate; will guess for class %s\n", dspTreeID(call), eeGetClassName(classHandle)); setMethodHasGuardedDevirtualization(); call->SetGuardedDevirtualizationCandidate(); // Spill off any GT_RET_EXPR subtrees so we can clone the call. + // SpillRetExprHelper helper(this); helper.StoreRetExprResultsInArgs(call); // Gather some information for later. Note we actually allocate InlineCandidateInfo // here, as the devirtualized half of this call will likely become an inline candidate. + // GuardedDevirtualizationCandidateInfo* pInfo = new (this, CMK_Inlining) InlineCandidateInfo; pInfo->guardedMethodHandle = methodHandle; pInfo->guardedClassHandle = classHandle; + pInfo->likelihood = likelihood; // Save off the stub address since it shares a union with the candidate info. + // if (call->IsVirtualStub()) { JITDUMP("Saving stub addr %p in candidate info\n", dspPtr(call->gtStubCallStubAddr)); @@ -21409,9 +21596,16 @@ bool Compiler::impCanSkipCovariantStoreCheck(GenTree* value, GenTree* array) // Check for assignment of NULL. if (value->OperIs(GT_CNS_INT)) { - JITDUMP("\nstelem of null: skipping covariant store check\n"); - assert((value->gtType == TYP_REF) && (value->AsIntCon()->gtIconVal == 0)); - return true; + assert(value->gtType == TYP_REF); + if (value->AsIntCon()->gtIconVal == 0) + { + JITDUMP("\nstelem of null: skipping covariant store check\n"); + return true; + } + // Non-0 const refs can only occur with frozen objects + assert(value->IsIconHandle(GTF_ICON_STR_HDL)); + assert(doesMethodHaveFrozenString() || + (compIsForInlining() && impInlineInfo->InlinerCompiler->doesMethodHaveFrozenString())); } // Try and get a class handle for the array diff --git a/src/coreclr/src/jit/indirectcalltransformer.cpp b/src/coreclr/src/jit/indirectcalltransformer.cpp index ebbce239d168..156d7c9c3a40 100644 --- a/src/coreclr/src/jit/indirectcalltransformer.cpp +++ b/src/coreclr/src/jit/indirectcalltransformer.cpp @@ -192,6 +192,7 @@ class IndirectCallTransformer thenBlock = nullptr; elseBlock = nullptr; origCall = nullptr; + likelihood = HIGH_PROBABILITY; } //------------------------------------------------------------------------ @@ -204,7 +205,7 @@ class IndirectCallTransformer void Transform() { - JITDUMP("*** %s: transforming" FMT_STMT "\n", Name(), stmt->GetID()); + JITDUMP("*** %s: transforming " FMT_STMT "\n", Name(), stmt->GetID()); FixupRetExpr(); ClearFlag(); CreateRemainder(); @@ -228,9 +229,8 @@ class IndirectCallTransformer // void CreateRemainder() { - remainderBlock = compiler->fgSplitBlockAfterStatement(currBlock, stmt); - unsigned propagateFlags = currBlock->bbFlags & BBF_GC_SAFE_POINT; - remainderBlock->bbFlags |= BBF_JMP_TARGET | BBF_HAS_LABEL | propagateFlags; + remainderBlock = compiler->fgSplitBlockAfterStatement(currBlock, stmt); + remainderBlock->bbFlags |= BBF_JMP_TARGET | BBF_HAS_LABEL | BBF_INTERNAL; } virtual void CreateCheck() = 0; @@ -248,11 +248,7 @@ class IndirectCallTransformer BasicBlock* CreateAndInsertBasicBlock(BBjumpKinds jumpKind, BasicBlock* insertAfter) { BasicBlock* block = compiler->fgNewBBafter(jumpKind, insertAfter, true); - if ((insertAfter->bbFlags & BBF_INTERNAL) == 0) - { - block->bbFlags &= ~BBF_INTERNAL; - block->bbFlags |= BBF_IMPORTED; - } + block->bbFlags |= BBF_IMPORTED; return block; } @@ -274,8 +270,8 @@ class IndirectCallTransformer { remainderBlock->inheritWeight(currBlock); checkBlock->inheritWeight(currBlock); - thenBlock->inheritWeightPercentage(currBlock, HIGH_PROBABILITY); - elseBlock->inheritWeightPercentage(currBlock, 100 - HIGH_PROBABILITY); + thenBlock->inheritWeightPercentage(currBlock, likelihood); + elseBlock->inheritWeightPercentage(currBlock, 100 - likelihood); } //------------------------------------------------------------------------ @@ -296,6 +292,7 @@ class IndirectCallTransformer BasicBlock* elseBlock; Statement* stmt; GenTreeCall* origCall; + unsigned likelihood; const int HIGH_PROBABILITY = 80; }; @@ -546,6 +543,10 @@ class IndirectCallTransformer return; } + likelihood = origCall->gtGuardedDevirtualizationCandidateInfo->likelihood; + assert((likelihood >= 0) && (likelihood <= 100)); + JITDUMP("Likelihood of correct guess is %u\n", likelihood); + Transform(); } @@ -688,7 +689,7 @@ class IndirectCallTransformer thenBlock->bbFlags |= currBlock->bbFlags & BBF_SPLIT_GAINED; InlineCandidateInfo* inlineInfo = origCall->gtInlineCandidateInfo; - CORINFO_CLASS_HANDLE clsHnd = inlineInfo->clsHandle; + CORINFO_CLASS_HANDLE clsHnd = inlineInfo->guardedClassHandle; // copy 'this' to temp with exact type. const unsigned thisTemp = compiler->lvaGrabTemp(false DEBUGARG("guarded devirt this exact temp")); @@ -721,8 +722,9 @@ class IndirectCallTransformer assert(!call->IsVirtual()); // Re-establish this call as an inline candidate. - GenTree* oldRetExpr = inlineInfo->retExpr; - inlineInfo->clsHandle = clsHnd; + GenTree* oldRetExpr = inlineInfo->retExpr; + // Todo -- pass this back from impdevirt...? + inlineInfo->clsHandle = compiler->info.compCompHnd->getMethodClass(methodHnd); inlineInfo->exactContextHnd = context; call->gtInlineCandidateInfo = inlineInfo; diff --git a/src/coreclr/src/jit/inline.h b/src/coreclr/src/jit/inline.h index 4918e6ca7bef..82da6685c911 100644 --- a/src/coreclr/src/jit/inline.h +++ b/src/coreclr/src/jit/inline.h @@ -512,14 +512,24 @@ class InlineResult bool m_Reported; }; -// GuardedDevirtualizationCandidateInfo provides information about -// a potential target of a virtual call. +// ClassProfileCandidateInfo provides information about +// profiling an indirect or virtual call. +// +struct ClassProfileCandidateInfo +{ + IL_OFFSET ilOffset; + unsigned probeIndex; + void* stubAddr; +}; -struct GuardedDevirtualizationCandidateInfo +// GuardedDevirtualizationCandidateInfo provides information about +// a potential target of a virtual or interface call. +// +struct GuardedDevirtualizationCandidateInfo : ClassProfileCandidateInfo { CORINFO_CLASS_HANDLE guardedClassHandle; CORINFO_METHOD_HANDLE guardedMethodHandle; - void* stubAddr; + unsigned likelihood; }; // InlineCandidateInfo provides basic information about a particular @@ -527,7 +537,7 @@ struct GuardedDevirtualizationCandidateInfo // // It is a superset of GuardedDevirtualizationCandidateInfo: calls // can start out as GDv candidates and turn into inline candidates - +// struct InlineCandidateInfo : public GuardedDevirtualizationCandidateInfo { CORINFO_METHOD_INFO methInfo; @@ -548,8 +558,6 @@ struct InlineCandidateInfo : public GuardedDevirtualizationCandidateInfo struct InlArgInfo { - unsigned __int64 bbFlags; // basic block flags that need to be added when replacing GT_RET_EXPR - // with argNode GenTree* argNode; // caller node for this argument GenTree* argBashTmpNode; // tmp node created, if it may be replaced with actual arg unsigned argTmpNum; // the argument tmp number diff --git a/src/coreclr/src/jit/jit.h b/src/coreclr/src/jit/jit.h index 1c8a9e70d996..9fb780dbd40c 100644 --- a/src/coreclr/src/jit/jit.h +++ b/src/coreclr/src/jit/jit.h @@ -182,12 +182,6 @@ #endif #endif -#if (defined(ALT_JIT) && (defined(UNIX_AMD64_ABI) || defined(UNIX_X86_ABI)) && !defined(TARGET_UNIX)) -// If we are building an ALT_JIT targeting Unix, override the TARGET_ to TARGET_UNIX -#undef TARGET_WINDOWS -#define TARGET_UNIX -#endif - // -------------------------------------------------------------------------------- // IMAGE_FILE_MACHINE_TARGET // -------------------------------------------------------------------------------- diff --git a/src/coreclr/src/jit/jitconfigvalues.h b/src/coreclr/src/jit/jitconfigvalues.h index 5cec14545ffe..7b14eb30bfdc 100644 --- a/src/coreclr/src/jit/jitconfigvalues.h +++ b/src/coreclr/src/jit/jitconfigvalues.h @@ -359,10 +359,8 @@ CONFIG_METHODSET(AltJit, W("AltJit")) // Enables AltJit and selectively CONFIG_METHODSET(AltJitNgen, W("AltJitNgen")) // Enables AltJit for NGEN and selectively limits it // to the specified methods. -#if defined(ALT_JIT) CONFIG_STRING(AltJitExcludeAssemblies, W("AltJitExcludeAssemblies")) // Do not use AltJit on this // semicolon-delimited list of assemblies. -#endif // defined(ALT_JIT) CONFIG_INTEGER(JitMeasureIR, W("JitMeasureIR"), 0) // If set, measure the IR size after some phases and report it in // the time log. @@ -418,8 +416,10 @@ CONFIG_INTEGER(JitEnableGuardedDevirtualization, W("JitEnableGuardedDevirtualiza #if defined(DEBUG) // Various policies for GuardedDevirtualization +CONFIG_STRING(JitGuardedDevirtualizationRange, W("JitGuardedDevirtualizationRange")) CONFIG_INTEGER(JitGuardedDevirtualizationGuessUniqueInterface, W("JitGuardedDevirtualizationGuessUniqueInterface"), 1) CONFIG_INTEGER(JitGuardedDevirtualizationGuessBestClass, W("JitGuardedDevirtualizationGuessBestClass"), 1) +CONFIG_INTEGER(JitGuardedDeivrtualizationUseProfile, W("JitGuardedDevirtualizationUseProfile"), 0) #endif // DEBUG // Enable insertion of patchpoints into Tier0 methods with loops. @@ -427,6 +427,10 @@ CONFIG_INTEGER(TC_OnStackReplacement, W("TC_OnStackReplacement"), 0) // Initial patchpoint counter value used by jitted code CONFIG_INTEGER(TC_OnStackReplacement_InitialCounter, W("TC_OnStackReplacement_InitialCounter"), 1000) +// Profile instrumentation options +CONFIG_INTEGER(JitMinimalProfiling, W("JitMinimalProfiling"), 0) +CONFIG_INTEGER(JitClassProfiling, W("JitClassProfiling"), 0) + #if defined(DEBUG) // JitFunctionFile: Name of a file that contains a list of functions. If the currently compiled function is in the // file, certain other JIT config variables will be active. If the currently compiled function is not in the file, diff --git a/src/coreclr/src/jit/jitee.h b/src/coreclr/src/jit/jitee.h index 25ff8b835d5a..c11c2023f75e 100644 --- a/src/coreclr/src/jit/jitee.h +++ b/src/coreclr/src/jit/jitee.h @@ -39,7 +39,7 @@ class JitFlags JIT_FLAG_OSR = 13, // Generate alternate version for On Stack Replacement - JIT_FLAG_UNUSED7 = 14, + JIT_FLAG_ALT_JIT = 14, // JIT should consider itself an ALT_JIT JIT_FLAG_UNUSED8 = 15, JIT_FLAG_UNUSED9 = 16, @@ -180,6 +180,8 @@ class JitFlags #endif + FLAGS_EQUAL(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT, JIT_FLAG_ALT_JIT); + #if defined(TARGET_X86) || defined(TARGET_AMD64) || defined(TARGET_ARM64) FLAGS_EQUAL(CORJIT_FLAGS::CORJIT_FLAG_FEATURE_SIMD, JIT_FLAG_FEATURE_SIMD); diff --git a/src/coreclr/src/jit/lclvars.cpp b/src/coreclr/src/jit/lclvars.cpp index a97e81da2161..8ea469a6e368 100644 --- a/src/coreclr/src/jit/lclvars.cpp +++ b/src/coreclr/src/jit/lclvars.cpp @@ -605,11 +605,12 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo) // ARM softfp calling convention should affect only the floating point arguments. // Otherwise there appear too many surplus pre-spills and other memory operations // with the associated locations . - bool isSoftFPPreSpill = opts.compUseSoftFP && varTypeIsFloating(varDsc->TypeGet()); - unsigned argSize = eeGetArgSize(argLst, &info.compMethodInfo->args); - unsigned cSlots = argSize / TARGET_POINTER_SIZE; // the total number of slots of this argument - bool isHfaArg = false; - var_types hfaType = TYP_UNDEF; + bool isSoftFPPreSpill = opts.compUseSoftFP && varTypeIsFloating(varDsc->TypeGet()); + unsigned argSize = eeGetArgSize(argLst, &info.compMethodInfo->args); + unsigned cSlots = + (argSize + TARGET_POINTER_SIZE - 1) / TARGET_POINTER_SIZE; // the total number of slots of this argument + bool isHfaArg = false; + var_types hfaType = TYP_UNDEF; #if defined(TARGET_ARM64) && defined(TARGET_UNIX) // Native varargs on arm64 unix use the regular calling convention. @@ -1014,8 +1015,21 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo) #endif // TARGET_XXX #if FEATURE_FASTTAILCALL +#if defined(OSX_ARM64_ABI) + unsigned argAlignment = TARGET_POINTER_SIZE; + if (argSize <= TARGET_POINTER_SIZE) + { + argAlignment = argSize; + } + varDscInfo->stackArgSize = roundUp(varDscInfo->stackArgSize, argAlignment); + assert(argSize % argAlignment == 0); +#else // !OSX_ARM64_ABI + assert((argSize % TARGET_POINTER_SIZE) == 0); + assert((varDscInfo->stackArgSize % TARGET_POINTER_SIZE) == 0); +#endif // !OSX_ARM64_ABI + varDsc->SetStackOffset(varDscInfo->stackArgSize); - varDscInfo->stackArgSize += roundUp(argSize, TARGET_POINTER_SIZE); + varDscInfo->stackArgSize += argSize; #endif // FEATURE_FASTTAILCALL } @@ -3142,47 +3156,9 @@ BasicBlock::weight_t BasicBlock::getBBWeight(Compiler* comp) // Normalize the bbWeights by multiplying by BB_UNITY_WEIGHT and dividing by the calledCount. // - // 1. For methods that do not have IBC data the called weight will always be 100 (BB_UNITY_WEIGHT) - // and the entry point bbWeight value is almost always 100 (BB_UNITY_WEIGHT) - // 2. For methods that do have IBC data the called weight is the actual number of calls - // from the IBC data and the entry point bbWeight value is almost always the actual - // number of calls from the IBC data. - // - // "almost always" - except for the rare case where a loop backedge jumps to BB01 - // - // We also perform a rounding operation by adding half of the 'calledCount' before performing - // the division. - // - // Thus for both cases we will return 100 (BB_UNITY_WEIGHT) for the entry point BasicBlock - // - // Note that with a 100 (BB_UNITY_WEIGHT) values between 1 and 99 represent decimal fractions. - // (i.e. 33 represents 33% and 75 represents 75%, and values greater than 100 require - // some kind of loop backedge) - // - - if (this->bbWeight < (BB_MAX_WEIGHT / BB_UNITY_WEIGHT)) - { - // Calculate the result using unsigned arithmetic - weight_t result = ((this->bbWeight * BB_UNITY_WEIGHT) + (calledCount / 2)) / calledCount; + weight_t fullResult = this->bbWeight * BB_UNITY_WEIGHT / calledCount; - // We don't allow a value of zero, as that would imply rarely run - return max(1, result); - } - else - { - // Calculate the full result using floating point - double fullResult = ((double)this->bbWeight * (double)BB_UNITY_WEIGHT) / (double)calledCount; - - if (fullResult < (double)BB_MAX_WEIGHT) - { - // Add 0.5 and truncate to unsigned - return (weight_t)(fullResult + 0.5); - } - else - { - return BB_MAX_WEIGHT; - } - } + return fullResult; } } @@ -3256,17 +3232,19 @@ class LclVarDsc_SmallCode_Less // Break the tie by: // - Increasing the weight by 2 if we are a register arg. // - Increasing the weight by 0.5 if we are a GC type. + // + // Review: seems odd that this is mixing counts and weights. if (weight1 != 0) { if (dsc1->lvIsRegArg) { - weight2 += 2 * BB_UNITY_WEIGHT; + weight2 += 2 * BB_UNITY_WEIGHT_UNSIGNED; } if (varTypeIsGC(dsc1->TypeGet())) { - weight1 += BB_UNITY_WEIGHT / 2; + weight1 += BB_UNITY_WEIGHT_UNSIGNED / 2; } } @@ -3274,12 +3252,12 @@ class LclVarDsc_SmallCode_Less { if (dsc2->lvIsRegArg) { - weight2 += 2 * BB_UNITY_WEIGHT; + weight2 += 2 * BB_UNITY_WEIGHT_UNSIGNED; } if (varTypeIsGC(dsc2->TypeGet())) { - weight2 += BB_UNITY_WEIGHT / 2; + weight2 += BB_UNITY_WEIGHT_UNSIGNED / 2; } } @@ -3323,8 +3301,8 @@ class LclVarDsc_BlendedCode_Less assert(!dsc1->lvRegister); assert(!dsc2->lvRegister); - unsigned weight1 = dsc1->lvRefCntWtd(); - unsigned weight2 = dsc2->lvRefCntWtd(); + BasicBlock::weight_t weight1 = dsc1->lvRefCntWtd(); + BasicBlock::weight_t weight2 = dsc2->lvRefCntWtd(); #ifndef TARGET_ARM // ARM-TODO: this was disabled for ARM under !FEATURE_FP_REGALLOC; it was probably a left-over from @@ -4269,7 +4247,7 @@ void Compiler::lvaComputeRefCounts(bool isRecompute, bool setSlotNumbers) // If, in minopts/debug, we really want to allow locals to become // unreferenced later, we'll have to explicitly clear this bit. varDsc->setLvRefCnt(0); - varDsc->setLvRefCntWtd(0); + varDsc->setLvRefCntWtd(BB_ZERO_WEIGHT); // Special case for some varargs params ... these must // remain unreferenced. @@ -5254,7 +5232,9 @@ void Compiler::lvaAssignVirtualFrameOffsetsToArgs() /* Update the argOffs to reflect arguments that are passed in registers */ noway_assert(codeGen->intRegState.rsCalleeRegArgCount <= MAX_REG_ARG); +#if !defined(OSX_ARM64_ABI) noway_assert(compArgSize >= codeGen->intRegState.rsCalleeRegArgCount * REGSIZE_BYTES); +#endif #ifdef TARGET_X86 argOffs -= codeGen->intRegState.rsCalleeRegArgCount * REGSIZE_BYTES; @@ -5767,6 +5747,18 @@ int Compiler::lvaAssignVirtualFrameOffsetToArg(unsigned lclNum, break; } #endif // TARGET_ARM +#if defined(OSX_ARM64_ABI) + unsigned argAlignment = TARGET_POINTER_SIZE; + if (argSize <= TARGET_POINTER_SIZE) + { + argAlignment = argSize; + } + argOffs = roundUp(argOffs, argAlignment); + assert((argOffs % argAlignment) == 0); +#else // !OSX_ARM64_ABI + assert((argSize % TARGET_POINTER_SIZE) == 0); + assert((argOffs % TARGET_POINTER_SIZE) == 0); +#endif // !OSX_ARM64_ABI varDsc->SetStackOffset(argOffs); } diff --git a/src/coreclr/src/jit/lir.cpp b/src/coreclr/src/jit/lir.cpp index 290b3fd58939..08257c022799 100644 --- a/src/coreclr/src/jit/lir.cpp +++ b/src/coreclr/src/jit/lir.cpp @@ -243,14 +243,13 @@ void LIR::Use::ReplaceWith(Compiler* compiler, GenTree* replacement) // // Arguments: // compiler - The Compiler context. -// blockWeight - The weight of the basic block that contains the use. // lclNum - The local to use for temporary storage. If BAD_VAR_NUM (the // default) is provided, this method will create and use a new // local var. // // Return Value: The number of the local var used for temporary storage. // -unsigned LIR::Use::ReplaceWithLclVar(Compiler* compiler, unsigned blockWeight, unsigned lclNum) +unsigned LIR::Use::ReplaceWithLclVar(Compiler* compiler, unsigned lclNum) { assert(IsInitialized()); assert(compiler != nullptr); diff --git a/src/coreclr/src/jit/lir.h b/src/coreclr/src/jit/lir.h index 460a24e58e38..5348b9ed920e 100644 --- a/src/coreclr/src/jit/lir.h +++ b/src/coreclr/src/jit/lir.h @@ -74,7 +74,7 @@ class LIR final bool IsDummyUse() const; void ReplaceWith(Compiler* compiler, GenTree* replacement); - unsigned ReplaceWithLclVar(Compiler* compiler, unsigned blockWeight, unsigned lclNum = BAD_VAR_NUM); + unsigned ReplaceWithLclVar(Compiler* compiler, unsigned lclNum = BAD_VAR_NUM); }; //------------------------------------------------------------------------ diff --git a/src/coreclr/src/jit/liveness.cpp b/src/coreclr/src/jit/liveness.cpp index cbc4ebbd05af..c90571f2c1fd 100644 --- a/src/coreclr/src/jit/liveness.cpp +++ b/src/coreclr/src/jit/liveness.cpp @@ -1015,8 +1015,7 @@ void Compiler::fgExtendDbgLifetimes() initRange.InsertBefore(nullptr, zero, store); #if !defined(TARGET_64BIT) - unsigned blockWeight = block->getBBWeight(this); - DecomposeLongs::DecomposeRange(this, blockWeight, initRange); + DecomposeLongs::DecomposeRange(this, initRange); #endif // !defined(TARGET_64BIT) m_pLowering->LowerRange(block, initRange); diff --git a/src/coreclr/src/jit/lower.cpp b/src/coreclr/src/jit/lower.cpp index d047083e763f..96a14f942895 100644 --- a/src/coreclr/src/jit/lower.cpp +++ b/src/coreclr/src/jit/lower.cpp @@ -1041,17 +1041,20 @@ GenTree* Lowering::NewPutArg(GenTreeCall* call, GenTree* arg, fgArgTabEntry* inf #endif // TARGET_ARM } - unsigned slotNumber = info->GetByteOffset() / TARGET_POINTER_SIZE; -#if defined(FEATURE_PUT_STRUCT_ARG_STK) - unsigned numberOfStackSlots = info->GetStackSlotsNumber(); - DEBUG_ARG_SLOTS_ASSERT(numberOfStackSlots == info->numSlots); -#endif + const unsigned slotNumber = info->GetByteOffset() / TARGET_POINTER_SIZE; DEBUG_ARG_SLOTS_ASSERT(slotNumber == info->slotNum); + const bool putInIncomingArgArea = call->IsFastTailCall(); putArg = new (comp, GT_PUTARG_SPLIT) - GenTreePutArgSplit(arg, slotNumber PUT_STRUCT_ARG_STK_ONLY_ARG(numberOfStackSlots), info->numRegs, - call->IsFastTailCall(), call); - + GenTreePutArgSplit(arg, info->GetByteOffset(), +#if defined(DEBUG_ARG_SLOTS) && defined(FEATURE_PUT_STRUCT_ARG_STK) + info->GetStackByteSize(), slotNumber, info->GetStackSlotsNumber(), +#elif defined(DEBUG_ARG_SLOTS) && !defined(FEATURE_PUT_STRUCT_ARG_STK) + slotNumber, +#elif !defined(DEBUG_ARG_SLOTS) && defined(FEATURE_PUT_STRUCT_ARG_STK) + info->GetStackByteSize(), +#endif + info->numRegs, call, putInIncomingArgArea); // If struct argument is morphed to GT_FIELD_LIST node(s), // we can know GC info by type of each GT_FIELD_LIST node. // So we skip setting GC Pointer info. @@ -1148,7 +1151,7 @@ GenTree* Lowering::NewPutArg(GenTreeCall* call, GenTree* arg, fgArgTabEntry* inf #if defined(FEATURE_SIMD) && defined(FEATURE_PUT_STRUCT_ARG_STK) if (type == TYP_SIMD12) { - assert(info->numSlots == 3); + assert(info->GetByteSize() == 12); } else #endif // defined(FEATURE_SIMD) && defined(FEATURE_PUT_STRUCT_ARG_STK) @@ -1156,17 +1159,19 @@ GenTree* Lowering::NewPutArg(GenTreeCall* call, GenTree* arg, fgArgTabEntry* inf assert(genActualType(arg->TypeGet()) == type); } } - unsigned slotNumber = info->GetByteOffset() / TARGET_POINTER_SIZE; -#if defined(FEATURE_PUT_STRUCT_ARG_STK) - unsigned numberOfStackSlots = info->GetStackSlotsNumber(); - DEBUG_ARG_SLOTS_ASSERT(numberOfStackSlots == info->numSlots); + const unsigned slotNumber = info->GetByteOffset() / TARGET_POINTER_SIZE; + const bool putInIncomingArgArea = call->IsFastTailCall(); + + putArg = new (comp, GT_PUTARG_STK) + GenTreePutArgStk(GT_PUTARG_STK, TYP_VOID, arg, info->GetByteOffset(), +#if defined(DEBUG_ARG_SLOTS) && defined(FEATURE_PUT_STRUCT_ARG_STK) + info->GetStackByteSize(), slotNumber, info->GetStackSlotsNumber(), +#elif defined(DEBUG_ARG_SLOTS) && !defined(FEATURE_PUT_STRUCT_ARG_STK) + slotNumber, +#elif !defined(DEBUG_ARG_SLOTS) && defined(FEATURE_PUT_STRUCT_ARG_STK) + info->GetStackByteSize(), #endif - DEBUG_ARG_SLOTS_ASSERT(slotNumber == info->slotNum); - - putArg = - new (comp, GT_PUTARG_STK) GenTreePutArgStk(GT_PUTARG_STK, TYP_VOID, arg, - slotNumber PUT_STRUCT_ARG_STK_ONLY_ARG(numberOfStackSlots), - call->IsFastTailCall(), call); + call, putInIncomingArgArea); #ifdef FEATURE_PUT_STRUCT_ARG_STK // If the ArgTabEntry indicates that this arg is a struct @@ -1227,7 +1232,7 @@ GenTree* Lowering::NewPutArg(GenTreeCall* call, GenTree* arg, fgArgTabEntry* inf } else if (!arg->OperIs(GT_FIELD_LIST)) { - assert(varTypeIsSIMD(arg) || (info->numSlots == 1)); + assert(varTypeIsSIMD(arg) || (info->GetStackSlotsNumber() == 1)); } } #endif // FEATURE_PUT_STRUCT_ARG_STK @@ -1892,7 +1897,7 @@ void Lowering::LowerFastTailCall(GenTreeCall* call) GenTreePutArgStk* put = putargs.Bottom(i)->AsPutArgStk(); unsigned int overwrittenStart = put->getArgOffset(); - unsigned int overwrittenEnd = overwrittenStart + put->getArgSize(); + unsigned int overwrittenEnd = overwrittenStart + put->GetStackByteSize(); #if !(defined(TARGET_WINDOWS) && defined(TARGET_AMD64)) int baseOff = -1; // Stack offset of first arg on stack #endif @@ -3762,6 +3767,7 @@ GenTree* Lowering::LowerDelegateInvoke(GenTreeCall* call) thisArgNode = comp->gtGetThisArg(call); } + assert(thisArgNode != nullptr); assert(thisArgNode->gtOper == GT_PUTARG_REG); GenTree* originalThisExpr = thisArgNode->AsOp()->gtOp1; GenTree* thisExpr = originalThisExpr; @@ -4222,8 +4228,7 @@ void Lowering::InsertPInvokeCallProlog(GenTreeCall* call) #if !defined(TARGET_64BIT) // On 32-bit targets, indirect calls need the size of the stack args in InlinedCallFrame.m_Datum. const unsigned stackByteOffset = call->fgArgInfo->GetNextSlotByteOffset(); - - src = comp->gtNewIconNode(stackByteOffset, TYP_INT); + src = comp->gtNewIconNode(stackByteOffset, TYP_INT); #else // On 64-bit targets, indirect calls may need the stub parameter value in InlinedCallFrame.m_Datum. // If the stub parameter value is not needed, m_Datum will be initialized by the VM. @@ -5181,9 +5186,9 @@ bool Lowering::LowerUnsignedDivOrMod(GenTreeOp* divMod) // add == true (when divisor == 7 for example): // mulhi = dividend MULHI magic // div = (((dividend SUB mulhi) RSZ 1) ADD mulhi)) RSZ (shift - 1) - const bool requiresAdjustment = add; - const bool requiresDividendMultiuse = requiresAdjustment || !isDiv; - const unsigned curBBWeight = m_block->getBBWeight(comp); + const bool requiresAdjustment = add; + const bool requiresDividendMultiuse = requiresAdjustment || !isDiv; + const BasicBlock::weight_t curBBWeight = m_block->getBBWeight(comp); if (requiresDividendMultiuse) { @@ -5370,10 +5375,10 @@ GenTree* Lowering::LowerConstIntDivOrMod(GenTree* node) // For -3 we need: // mulhi -= dividend ; requires sub adjust // div = signbit(mulhi) + sar(mulhi, 1) ; requires shift adjust - bool requiresAddSubAdjust = signum(divisorValue) != signum(magic); - bool requiresShiftAdjust = shift != 0; - bool requiresDividendMultiuse = requiresAddSubAdjust || !isDiv; - unsigned curBBWeight = comp->compCurBB->getBBWeight(comp); + bool requiresAddSubAdjust = signum(divisorValue) != signum(magic); + bool requiresShiftAdjust = shift != 0; + bool requiresDividendMultiuse = requiresAddSubAdjust || !isDiv; + BasicBlock::weight_t curBBWeight = comp->compCurBB->getBBWeight(comp); if (requiresDividendMultiuse) { diff --git a/src/coreclr/src/jit/lower.h b/src/coreclr/src/jit/lower.h index ff13302c1ba9..c8500c0636b9 100644 --- a/src/coreclr/src/jit/lower.h +++ b/src/coreclr/src/jit/lower.h @@ -217,7 +217,7 @@ class Lowering final : public Phase GenTree* oldUseNode = use.Def(); if ((oldUseNode->gtOper != GT_LCL_VAR) || (tempNum != BAD_VAR_NUM)) { - use.ReplaceWithLclVar(comp, m_block->getBBWeight(comp), tempNum); + use.ReplaceWithLclVar(comp, tempNum); GenTree* newUseNode = use.Def(); ContainCheckRange(oldUseNode->gtNext, newUseNode); return newUseNode->AsLclVar(); diff --git a/src/coreclr/src/jit/lowerxarch.cpp b/src/coreclr/src/jit/lowerxarch.cpp index 8a02933bfc64..a12118149513 100644 --- a/src/coreclr/src/jit/lowerxarch.cpp +++ b/src/coreclr/src/jit/lowerxarch.cpp @@ -397,7 +397,7 @@ void Lowering::LowerPutArgStk(GenTreePutArgStk* putArgStk) // Now that the fields have been sorted, the kind of code we will generate. bool allFieldsAreSlots = true; - unsigned prevOffset = putArgStk->getArgSize(); + unsigned prevOffset = putArgStk->GetStackByteSize(); for (GenTreeFieldList::Use& use : fieldList->Uses()) { GenTree* const fieldNode = use.GetNode(); @@ -520,7 +520,7 @@ void Lowering::LowerPutArgStk(GenTreePutArgStk* putArgStk) // The cpyXXXX code is rather complex and this could cause it to be more complex, but // it might be the right thing to do. - ssize_t size = putArgStk->gtNumSlots * TARGET_POINTER_SIZE; + unsigned size = putArgStk->GetStackByteSize(); // TODO-X86-CQ: The helper call either is not supported on x86 or required more work // (I don't know which). diff --git a/src/coreclr/src/jit/lsra.cpp b/src/coreclr/src/jit/lsra.cpp index d24e1f1ff009..84f3020255cd 100644 --- a/src/coreclr/src/jit/lsra.cpp +++ b/src/coreclr/src/jit/lsra.cpp @@ -179,10 +179,10 @@ void lsraAssignRegToTree(GenTree* tree, regNumber reg, unsigned regIdx) // // Returns: // Weight of ref position. -unsigned LinearScan::getWeight(RefPosition* refPos) +BasicBlock::weight_t LinearScan::getWeight(RefPosition* refPos) { - unsigned weight; - GenTree* treeNode = refPos->treeNode; + BasicBlock::weight_t weight; + GenTree* treeNode = refPos->treeNode; if (treeNode != nullptr) { @@ -1037,8 +1037,8 @@ int LinearScan::compareBlocksForSequencing(BasicBlock* block1, BasicBlock* block { if (useBlockWeights) { - unsigned weight1 = block1->getBBWeight(compiler); - unsigned weight2 = block2->getBBWeight(compiler); + BasicBlock::weight_t weight1 = block1->getBBWeight(compiler); + BasicBlock::weight_t weight2 = block2->getBBWeight(compiler); if (weight1 > weight2) { @@ -1620,13 +1620,13 @@ void LinearScan::identifyCandidates() // This is defined as thresholdLargeVectorRefCntWtd, as we are likely to use the same mechanism // for vectors on Arm64, though the actual value may differ. - unsigned int floatVarCount = 0; - unsigned int thresholdFPRefCntWtd = 4 * BB_UNITY_WEIGHT; - unsigned int maybeFPRefCntWtd = 2 * BB_UNITY_WEIGHT; - VARSET_TP fpMaybeCandidateVars(VarSetOps::UninitVal()); + unsigned int floatVarCount = 0; + BasicBlock::weight_t thresholdFPRefCntWtd = 4 * BB_UNITY_WEIGHT; + BasicBlock::weight_t maybeFPRefCntWtd = 2 * BB_UNITY_WEIGHT; + VARSET_TP fpMaybeCandidateVars(VarSetOps::UninitVal()); #if FEATURE_PARTIAL_SIMD_CALLEE_SAVE - unsigned int largeVectorVarCount = 0; - unsigned int thresholdLargeVectorRefCntWtd = 4 * BB_UNITY_WEIGHT; + unsigned int largeVectorVarCount = 0; + BasicBlock::weight_t thresholdLargeVectorRefCntWtd = 4 * BB_UNITY_WEIGHT; #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE if (enregisterLocalVars) { @@ -1638,13 +1638,13 @@ void LinearScan::identifyCandidates() #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE } #if DOUBLE_ALIGN - unsigned refCntStk = 0; - unsigned refCntReg = 0; - unsigned refCntWtdReg = 0; - unsigned refCntStkParam = 0; // sum of ref counts for all stack based parameters - unsigned refCntWtdStkDbl = 0; // sum of wtd ref counts for stack based doubles - doDoubleAlign = false; - bool checkDoubleAlign = true; + unsigned refCntStk = 0; + unsigned refCntReg = 0; + BasicBlock::weight_t refCntWtdReg = 0; + unsigned refCntStkParam = 0; // sum of ref counts for all stack based parameters + BasicBlock::weight_t refCntWtdStkDbl = 0; // sum of wtd ref counts for stack based doubles + doDoubleAlign = false; + bool checkDoubleAlign = true; if (compiler->codeGen->isFramePointerRequired() || compiler->opts.MinOpts()) { checkDoubleAlign = false; @@ -1802,7 +1802,7 @@ void LinearScan::identifyCandidates() { largeVectorVarCount++; VarSetOps::AddElemD(compiler, largeVectorVars, varDsc->lvVarIndex); - unsigned refCntWtd = varDsc->lvRefCntWtd(); + BasicBlock::weight_t refCntWtd = varDsc->lvRefCntWtd(); if (refCntWtd >= thresholdLargeVectorRefCntWtd) { VarSetOps::AddElemD(compiler, largeVectorCalleeSaveCandidateVars, varDsc->lvVarIndex); @@ -1813,7 +1813,7 @@ void LinearScan::identifyCandidates() if (regType(type) == FloatRegisterType) { floatVarCount++; - unsigned refCntWtd = varDsc->lvRefCntWtd(); + BasicBlock::weight_t refCntWtd = varDsc->lvRefCntWtd(); if (varDsc->lvIsRegArg) { // Don't count the initial reference for register params. In those cases, @@ -1861,8 +1861,8 @@ void LinearScan::identifyCandidates() // the lclVars allocated to the frame pointer. // => Here, estimate of the EBP refCnt and weighted refCnt is a wild guess. // - unsigned refCntEBP = refCntReg / 8; - unsigned refCntWtdEBP = refCntWtdReg / 8; + unsigned refCntEBP = refCntReg / 8; + BasicBlock::weight_t refCntWtdEBP = refCntWtdReg / 8; doDoubleAlign = compiler->shouldDoubleAlign(refCntStk, refCntEBP, refCntWtdEBP, refCntStkParam, refCntWtdStkDbl); @@ -3297,7 +3297,9 @@ regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* // // Note: This helper is designed to be used only from allocateBusyReg() and canSpillDoubleReg() // -bool LinearScan::canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation, unsigned* recentAssignedRefWeight) +bool LinearScan::canSpillReg(RegRecord* physRegRecord, + LsraLocation refLocation, + BasicBlock::weight_t* recentAssignedRefWeight) { assert(physRegRecord->assignedInterval != nullptr); RefPosition* recentAssignedRef = physRegRecord->assignedInterval->recentRefPosition; @@ -3335,14 +3337,14 @@ bool LinearScan::canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation, // This helper is designed to be used only from allocateBusyReg() and canSpillDoubleReg(). // The recentAssignedRefWeight is not updated if either register cannot be spilled. // -bool LinearScan::canSpillDoubleReg(RegRecord* physRegRecord, - LsraLocation refLocation, - unsigned* recentAssignedRefWeight) +bool LinearScan::canSpillDoubleReg(RegRecord* physRegRecord, + LsraLocation refLocation, + BasicBlock::weight_t* recentAssignedRefWeight) { assert(genIsValidDoubleReg(physRegRecord->regNum)); - bool retVal = true; - unsigned weight = BB_ZERO_WEIGHT; - unsigned weight2 = BB_ZERO_WEIGHT; + bool retVal = true; + BasicBlock::weight_t weight = BB_ZERO_WEIGHT; + BasicBlock::weight_t weight2 = BB_ZERO_WEIGHT; RegRecord* physRegRecord2 = findAnotherHalfRegRec(physRegRecord); @@ -3686,9 +3688,9 @@ regNumber LinearScan::allocateBusyReg(Interval* current, RefPosition* refPositio #ifdef TARGET_ARM RegRecord* farthestRefPhysRegRecord2 = nullptr; #endif - LsraLocation farthestLocation = MinLocation; - LsraLocation refLocation = refPosition->nodeLocation; - unsigned farthestRefPosWeight; + LsraLocation farthestLocation = MinLocation; + LsraLocation refLocation = refPosition->nodeLocation; + BasicBlock::weight_t farthestRefPosWeight; if (allocateIfProfitable) { // If allocating a reg is optional, we will consider those ref positions @@ -3703,7 +3705,7 @@ regNumber LinearScan::allocateBusyReg(Interval* current, RefPosition* refPositio // initialized to MinLocation, the first available ref position // will be selected as spill candidate and its weight as the // fathestRefPosWeight. - farthestRefPosWeight = BB_MAX_WEIGHT; + farthestRefPosWeight = FloatingPointUtils::infinite_float(); } for (regNumber regNum : Registers(regType)) @@ -3725,10 +3727,10 @@ regNumber LinearScan::allocateBusyReg(Interval* current, RefPosition* refPositio // We've passed the preliminary checks for a spill candidate. // Now, if we have a recentAssignedRef, check that it is going to be OK to spill it. - Interval* assignedInterval = physRegRecord->assignedInterval; - unsigned recentAssignedRefWeight = BB_ZERO_WEIGHT; - RefPosition* recentAssignedRef = nullptr; - RefPosition* recentAssignedRef2 = nullptr; + Interval* assignedInterval = physRegRecord->assignedInterval; + BasicBlock::weight_t recentAssignedRefWeight = BB_ZERO_WEIGHT; + RefPosition* recentAssignedRef = nullptr; + RefPosition* recentAssignedRef2 = nullptr; #ifdef TARGET_ARM if (current->registerType == TYP_DOUBLE) { @@ -4179,9 +4181,10 @@ void LinearScan::setIntervalAsSpilled(Interval* interval) } //------------------------------------------------------------------------ -// spill: Spill this Interval between "fromRefPosition" and "toRefPosition" +// spill: Spill the "interval" starting from "fromRefPosition" (upto "toRefPosition") // // Arguments: +// interval - The interval that contains the RefPosition to be spilled // fromRefPosition - The RefPosition at which the Interval is to be spilled // toRefPosition - The RefPosition at which it must be reloaded (debug only arg) // @@ -4372,6 +4375,7 @@ void LinearScan::unassignPhysReg(RegRecord* regRec, RefPosition* spillRefPositio { Interval* assignedInterval = regRec->assignedInterval; assert(assignedInterval != nullptr); + assert(spillRefPosition == nullptr || spillRefPosition->getInterval() == assignedInterval); regNumber thisRegNum = regRec->regNum; // Is assignedInterval actually still assigned to this register? @@ -5596,8 +5600,13 @@ void LinearScan::allocateRegisters() { allocate = false; } - else if (refType == RefTypeParamDef && varDsc->lvRefCntWtd() <= BB_UNITY_WEIGHT) + else if (refType == RefTypeParamDef && (varDsc->lvRefCntWtd() <= BB_UNITY_WEIGHT) && + (!currentRefPosition->lastUse || (currentInterval->physReg == REG_STK))) { + // If this is a low ref-count parameter, and either it is used (def is not the last use) or it's + // passed on the stack, don't allocate a register. + // Note that if this is an unused register parameter we don't want to set allocate to false because that + // will cause us to allocate stack space to spill it. allocate = false; } else if ((currentInterval->physReg == REG_STK) && nextRefPosition->treeNode->OperIs(GT_BITCAST)) @@ -9169,13 +9178,13 @@ void LinearScan::updateLsraStat(LsraStat stat, unsigned bbNum) // void LinearScan::dumpLsraStats(FILE* file) { - unsigned sumSpillCount = 0; - unsigned sumCopyRegCount = 0; - unsigned sumResolutionMovCount = 0; - unsigned sumSplitEdgeCount = 0; - UINT64 wtdSpillCount = 0; - UINT64 wtdCopyRegCount = 0; - UINT64 wtdResolutionMovCount = 0; + unsigned sumSpillCount = 0; + unsigned sumCopyRegCount = 0; + unsigned sumResolutionMovCount = 0; + unsigned sumSplitEdgeCount = 0; + BasicBlock::weight_t wtdSpillCount = 0; + BasicBlock::weight_t wtdCopyRegCount = 0; + BasicBlock::weight_t wtdResolutionMovCount = 0; fprintf(file, "----------\n"); fprintf(file, "LSRA Stats"); @@ -9220,18 +9229,18 @@ void LinearScan::dumpLsraStats(FILE* file) sumResolutionMovCount += resolutionMovCount; sumSplitEdgeCount += splitEdgeCount; - wtdSpillCount += (UINT64)spillCount * block->bbWeight; - wtdCopyRegCount += (UINT64)copyRegCount * block->bbWeight; - wtdResolutionMovCount += (UINT64)resolutionMovCount * block->bbWeight; + wtdSpillCount += spillCount * block->bbWeight; + wtdCopyRegCount += copyRegCount * block->bbWeight; + wtdResolutionMovCount += resolutionMovCount * block->bbWeight; } fprintf(file, "Total Tracked Vars: %d\n", compiler->lvaTrackedCount); fprintf(file, "Total Reg Cand Vars: %d\n", regCandidateVarCount); fprintf(file, "Total number of Intervals: %d\n", static_cast(intervals.size() - 1)); fprintf(file, "Total number of RefPositions: %d\n", static_cast(refPositions.size() - 1)); - fprintf(file, "Total Spill Count: %d Weighted: %I64u\n", sumSpillCount, wtdSpillCount); - fprintf(file, "Total CopyReg Count: %d Weighted: %I64u\n", sumCopyRegCount, wtdCopyRegCount); - fprintf(file, "Total ResolutionMov Count: %d Weighted: %I64u\n", sumResolutionMovCount, wtdResolutionMovCount); + fprintf(file, "Total Spill Count: %d Weighted: %f\n", sumSpillCount, wtdSpillCount); + fprintf(file, "Total CopyReg Count: %d Weighted: %f\n", sumCopyRegCount, wtdCopyRegCount); + fprintf(file, "Total ResolutionMov Count: %d Weighted: %f\n", sumResolutionMovCount, wtdResolutionMovCount); fprintf(file, "Total number of split edges: %d\n", sumSplitEdgeCount); // compute total number of spill temps created diff --git a/src/coreclr/src/jit/lsra.h b/src/coreclr/src/jit/lsra.h index c2adcf29a40a..0d443f900c6c 100644 --- a/src/coreclr/src/jit/lsra.h +++ b/src/coreclr/src/jit/lsra.h @@ -371,7 +371,7 @@ class RefInfoListNodePool final public: RefInfoListNodePool(Compiler* compiler, unsigned preallocate = defaultPreallocation); - RefInfoListNode* GetNode(RefPosition* r, GenTree* t, unsigned regIdx = 0); + RefInfoListNode* GetNode(RefPosition* r, GenTree* t); void ReturnNode(RefInfoListNode* listNode); }; @@ -520,7 +520,7 @@ class RegRecord : public Referenceable // interval to which this register is currently allocated. // If the interval is inactive (isActive == false) then it is not currently live, - // and the register call be unassigned (i.e. setting assignedInterval to nullptr) + // and the register can be unassigned (i.e. setting assignedInterval to nullptr) // without spilling the register. Interval* assignedInterval; // Interval to which this register was previously allocated, and which was unassigned @@ -976,7 +976,9 @@ class LinearScan : public LinearScanInterface bool isSecondHalfReg(RegRecord* regRec, Interval* interval); RegRecord* getSecondHalfRegRec(RegRecord* regRec); RegRecord* findAnotherHalfRegRec(RegRecord* regRec); - bool canSpillDoubleReg(RegRecord* physRegRecord, LsraLocation refLocation, unsigned* recentAssignedRefWeight); + bool canSpillDoubleReg(RegRecord* physRegRecord, + LsraLocation refLocation, + BasicBlock::weight_t* recentAssignedRefWeight); void unassignDoublePhysReg(RegRecord* doubleRegRecord); #endif void updateAssignedInterval(RegRecord* reg, Interval* interval, RegisterType regType); @@ -984,7 +986,7 @@ class LinearScan : public LinearScanInterface bool canRestorePreviousInterval(RegRecord* regRec, Interval* assignedInterval); bool isAssignedToInterval(Interval* interval, RegRecord* regRec); bool isRefPositionActive(RefPosition* refPosition, LsraLocation refLocation); - bool canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation, unsigned* recentAssignedRefWeight); + bool canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation, BasicBlock::weight_t* recentAssignedRefWeight); bool isRegInUse(RegRecord* regRec, RefPosition* refPosition); // insert refpositions representing prolog zero-inits which will be added later @@ -1135,7 +1137,7 @@ class LinearScan : public LinearScanInterface void associateRefPosWithInterval(RefPosition* rp); - unsigned getWeight(RefPosition* refPos); + BasicBlock::weight_t getWeight(RefPosition* refPos); /***************************************************************************** * Register management @@ -1494,11 +1496,11 @@ class LinearScan : public LinearScanInterface // i.e. whose consuming node has not yet been handled. RefInfoListNodePool listNodePool; - // The defList is used for the transient RefInfo that is computed by - // the Build methods, and used in building RefPositions. - // When Def RefPositions are built for a node, their NodeInfo is placed - // in the defList. As the consuming node is handled, it moves the NodeInfo - // into an ordered useList corresponding to the uses for that node. + // When Def RefPositions are built for a node, their RefInfoListNode + // (GenTree* to RefPosition* mapping) is placed in the defList. + // As the consuming node is handled, it removes the RefInfoListNode from the + // defList, use the interval associated with the corresponding Def RefPosition and + // use it to build the Use RefPosition. RefInfoList defList; // As we build uses, we may want to preference the next definition (i.e. the register produced @@ -1925,13 +1927,12 @@ class RefPosition GenTree* treeNode; unsigned int bbNum; + LsraLocation nodeLocation; + // Prior to the allocation pass, registerAssignment captures the valid registers - // for this RefPosition. An empty set means that any register is valid. A non-empty - // set means that it must be one of the given registers (may be the full set if the - // only constraint is that it must reside in SOME register) + // for this RefPosition. // After the allocation pass, this contains the actual assignment - LsraLocation nodeLocation; - regMaskTP registerAssignment; + regMaskTP registerAssignment; RefType refType; diff --git a/src/coreclr/src/jit/lsrabuild.cpp b/src/coreclr/src/jit/lsrabuild.cpp index 7b581f2c66f6..49e486b70f81 100644 --- a/src/coreclr/src/jit/lsrabuild.cpp +++ b/src/coreclr/src/jit/lsrabuild.cpp @@ -103,15 +103,13 @@ RefInfoListNodePool::RefInfoListNodePool(Compiler* compiler, unsigned preallocat // pool. // // Arguments: -// l - - The `LsraLocation` for the `RefInfo` value. -// i - The interval for the `RefInfo` value. -// t - The IR node for the `RefInfo` value -// regIdx - The register index for the `RefInfo` value. +// r - The `RefPosition` for the `RefInfo` value. +// t - The IR node for the `RefInfo` value // // Returns: // A pooled or newly-allocated `RefInfoListNode`, depending on the // contents of the pool. -RefInfoListNode* RefInfoListNodePool::GetNode(RefPosition* r, GenTree* t, unsigned regIdx) +RefInfoListNode* RefInfoListNodePool::GetNode(RefPosition* r, GenTree* t) { RefInfoListNode* head = m_freeList; if (head == nullptr) @@ -1695,11 +1693,11 @@ void LinearScan::buildRefPositionsForNode(GenTree* tree, BasicBlock* block, Lsra #ifdef DEBUG int newDefListCount = defList.Count(); - int produce = newDefListCount - oldDefListCount; + // Currently produce is unused, but need to strengthen an assert to check if produce is + // as expected. See https://github.com/dotnet/runtime/issues/8678 + int produce = newDefListCount - oldDefListCount; assert((consume == 0) || (ComputeAvailableSrcCount(tree) == consume)); -#endif // DEBUG -#ifdef DEBUG // If we are constraining registers, modify all the RefPositions we've just built to specify the // minimum reg count required. if ((getStressLimitRegs() != LSRA_LIMIT_NONE) || (getSelectionHeuristics() != LSRA_SELECT_DEFAULT)) @@ -2095,7 +2093,6 @@ void LinearScan::buildIntervals() { setBlockSequence(); } - curBBNum = blockSequence[bbSeqCount - 1]->bbNum; // Next, create ParamDef RefPositions for all the tracked parameters, in order of their varIndex. // Assign these RefPositions to the (nonexistent) BB0. @@ -2266,7 +2263,7 @@ void LinearScan::buildIntervals() { JITDUMP(" Marking RP #%d of V%02u as spillAfter\n", interval->recentRefPosition->rpNum, interval->varNum); - interval->recentRefPosition->spillAfter; + interval->recentRefPosition->spillAfter = true; } } } diff --git a/src/coreclr/src/jit/lsraxarch.cpp b/src/coreclr/src/jit/lsraxarch.cpp index 02f739d15ddc..db787c55fdf2 100644 --- a/src/coreclr/src/jit/lsraxarch.cpp +++ b/src/coreclr/src/jit/lsraxarch.cpp @@ -1488,7 +1488,7 @@ int LinearScan::BuildPutArgStk(GenTreePutArgStk* putArgStk) RefPosition* simdTemp = nullptr; RefPosition* intTemp = nullptr; - unsigned prevOffset = putArgStk->getArgSize(); + unsigned prevOffset = putArgStk->GetStackByteSize(); // We need to iterate over the fields twice; once to determine the need for internal temps, // and once to actually build the uses. for (GenTreeFieldList::Use& use : putArgStk->gtOp1->AsFieldList()->Uses()) @@ -1571,27 +1571,16 @@ int LinearScan::BuildPutArgStk(GenTreePutArgStk* putArgStk) ClassLayout* layout = src->AsObj()->GetLayout(); - ssize_t size = putArgStk->gtNumSlots * TARGET_POINTER_SIZE; + ssize_t size = putArgStk->GetStackByteSize(); switch (putArgStk->gtPutArgStkKind) { case GenTreePutArgStk::Kind::Push: case GenTreePutArgStk::Kind::PushAllSlots: case GenTreePutArgStk::Kind::Unroll: // If we have a remainder smaller than XMM_REGSIZE_BYTES, we need an integer temp reg. - // - // x86 specific note: if the size is odd, the last copy operation would be of size 1 byte. - // But on x86 only RBM_BYTE_REGS could be used as byte registers. Therefore, exclude - // RBM_NON_BYTE_REGS from internal candidates. if (!layout->HasGCPtr() && (size & (XMM_REGSIZE_BYTES - 1)) != 0) { regMaskTP regMask = allRegs(TYP_INT); - -#ifdef TARGET_X86 - if ((size % 2) != 0) - { - regMask &= ~RBM_NON_BYTE_REGS; - } -#endif buildInternalIntRegisterDefForNode(putArgStk, regMask); } diff --git a/src/coreclr/src/jit/morph.cpp b/src/coreclr/src/jit/morph.cpp index 2679b45683ba..71f905a79cc4 100644 --- a/src/coreclr/src/jit/morph.cpp +++ b/src/coreclr/src/jit/morph.cpp @@ -1187,17 +1187,10 @@ void fgArgInfo::UpdateStkArg(fgArgTabEntry* curArgTabEntry, GenTree* node, bool assert(curArgTabEntry->slotNum == nextSlotNum); nextSlotNum += curArgTabEntry->numSlots; #endif + nextStackByteOffset = roundUp(nextStackByteOffset, curArgTabEntry->byteAlignment); assert(curArgTabEntry->GetByteOffset() == nextStackByteOffset); - - if (!curArgTabEntry->IsSplit()) - { - nextStackByteOffset += curArgTabEntry->GetByteSize(); - } - else - { - nextStackByteOffset += curArgTabEntry->GetStackByteSize(); - } + nextStackByteOffset += curArgTabEntry->GetStackByteSize(); } void fgArgInfo::SplitArg(unsigned argNum, unsigned numRegs, unsigned numSlots) @@ -2890,9 +2883,60 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) SYSTEMV_AMD64_CORINFO_STRUCT_REG_PASSING_DESCRIPTOR structDesc; #endif // UNIX_AMD64_ABI +#if defined(DEBUG) + // Check that we have valid information about call's argument types. + // For example: + // load byte; call(int) -> CALL(PUTARG_TYPE byte(IND byte)); + // load int; call(byte) -> CALL(PUTARG_TYPE int (IND int)); + // etc. + if (call->callSig != nullptr) + { + CORINFO_SIG_INFO* sig = call->callSig; + const unsigned sigArgsCount = sig->numArgs; + + GenTreeCall::Use* nodeArgs = call->gtCallArgs; + // It could include many arguments not included in `sig->numArgs`, for example, `this`, runtime lookup, cookie + // etc. + unsigned nodeArgsCount = call->NumChildren(); + + if (call->gtCallThisArg != nullptr) + { + // Handle the most common argument not in the `sig->numArgs`. + // so the following check works on more methods. + nodeArgsCount--; + } + + assert(nodeArgsCount >= sigArgsCount); + if ((nodeArgsCount == sigArgsCount) && + ((Target::g_tgtArgOrder == Target::ARG_ORDER_R2L) || (nodeArgsCount == 1))) + { + CORINFO_ARG_LIST_HANDLE sigArg = sig->args; + for (unsigned i = 0; i < sig->numArgs; ++i) + { + CORINFO_CLASS_HANDLE argClass; + const CorInfoType corType = strip(info.compCompHnd->getArgType(sig, sigArg, &argClass)); + const var_types sigType = JITtype2varType(corType); + + assert(nodeArgs != nullptr); + const GenTree* nodeArg = nodeArgs->GetNode(); + assert(nodeArg != nullptr); + const var_types nodeType = nodeArg->TypeGet(); + + assert((nodeType == sigType) || varTypeIsStruct(sigType) || + genTypeSize(nodeType) == genTypeSize(sigType)); + + sigArg = info.compCompHnd->getArgNext(sigArg); + nodeArgs = nodeArgs->GetNext(); + } + assert(nodeArgs == nullptr); + } + } +#endif // DEBUG + for (args = call->gtCallArgs; args != nullptr; args = args->GetNext(), argIndex++) { - argx = args->GetNode(); + argx = args->GetNode()->gtSkipPutArgType(); + fgArgTabEntry* argEntry = nullptr; // Change the node to TYP_I_IMPL so we don't report GC info @@ -3157,6 +3201,12 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) } } + if (args->GetNode()->OperIs(GT_PUTARG_TYPE)) + { + const GenTreeUnOp* putArgType = args->GetNode()->AsUnOp(); + byteSize = genTypeSize(putArgType->TypeGet()); + } + // The 'size' value has now must have been set. (the original value of zero is an invalid value) assert(size != 0); assert(byteSize != 0); @@ -8435,6 +8485,10 @@ void Compiler::fgMorphTailCallViaJitHelper(GenTreeCall* call) thisPtr = objp; } + // TODO-Cleanup: we leave it as a virtual stub call to + // use logic in `LowerVirtualStubCall`, clear GTF_CALL_VIRT_KIND_MASK here + // and change `LowerCall` to recognize it as a direct call. + // During rationalization tmp="this" and null check will // materialize as embedded stmts in right execution order. assert(thisPtr != nullptr); @@ -12237,7 +12291,7 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac) LclVarDsc* varDsc = lvaGetDesc(lclVar); if (varDsc->CanBeReplacedWithItsField(this)) { - // We can replace the struct with its only field and allow copy propogation to replace + // We can replace the struct with its only field and allow copy propagation to replace // return value that was written as a field. unsigned fieldLclNum = varDsc->lvFieldLclStart; LclVarDsc* fieldDsc = lvaGetDesc(fieldLclNum); @@ -12317,6 +12371,9 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac) // Special handling for the arg list. return fgMorphArgList(tree->AsArgList(), mac); + case GT_PUTARG_TYPE: + return fgMorphTree(tree->AsUnOp()->gtGetOp1()); + default: break; } @@ -18120,7 +18177,7 @@ void Compiler::fgRetypeImplicitByRefArgs() // arguments to calls. We undo promotion unless we see enough non-call uses. // const unsigned totalAppearances = varDsc->lvRefCnt(RCS_EARLY); - const unsigned callAppearances = varDsc->lvRefCntWtd(RCS_EARLY); + const unsigned callAppearances = (unsigned)varDsc->lvRefCntWtd(RCS_EARLY); assert(totalAppearances >= callAppearances); const unsigned nonCallAppearances = totalAppearances - callAppearances; @@ -18348,14 +18405,15 @@ bool Compiler::fgMorphImplicitByRefArgs(GenTree* tree) { for (GenTree** pTree : tree->UseEdges()) { - GenTree* childTree = *pTree; + GenTree** pTreeCopy = pTree; + GenTree* childTree = *pTree; if (childTree->gtOper == GT_LCL_VAR) { GenTree* newChildTree = fgMorphImplicitByRefArgs(childTree, false); if (newChildTree != nullptr) { - changed = true; - *pTree = newChildTree; + changed = true; + *pTreeCopy = newChildTree; } } } diff --git a/src/coreclr/src/jit/optcse.cpp b/src/coreclr/src/jit/optcse.cpp index f5dc3f27adf6..2684b497e2d5 100644 --- a/src/coreclr/src/jit/optcse.cpp +++ b/src/coreclr/src/jit/optcse.cpp @@ -1393,11 +1393,11 @@ void Compiler::optValnumCSE_Availablity() if (IS_CSE_INDEX(tree->gtCSEnum)) { - unsigned CSEnum = GET_CSE_INDEX(tree->gtCSEnum); - unsigned CseAvailBit = genCSEnum2bit(CSEnum) * 2; - unsigned cseAvailCrossCallBit = CseAvailBit + 1; - CSEdsc* desc = optCSEfindDsc(CSEnum); - unsigned stmw = block->getBBWeight(this); + unsigned CSEnum = GET_CSE_INDEX(tree->gtCSEnum); + unsigned CseAvailBit = genCSEnum2bit(CSEnum) * 2; + unsigned cseAvailCrossCallBit = CseAvailBit + 1; + CSEdsc* desc = optCSEfindDsc(CSEnum); + BasicBlock::weight_t stmw = block->getBBWeight(this); isUse = BitVecOps::IsMember(cseLivenessTraits, available_cses, CseAvailBit); isDef = !isUse; // If is isn't a CSE use, it is a CSE def @@ -1704,8 +1704,8 @@ class CSE_Heuristic Compiler* m_pCompiler; unsigned m_addCSEcount; - unsigned aggressiveRefCnt; - unsigned moderateRefCnt; + BasicBlock::weight_t aggressiveRefCnt; + BasicBlock::weight_t moderateRefCnt; unsigned enregCount; // count of the number of predicted enregistered variables bool largeFrame; bool hugeFrame; @@ -1965,8 +1965,8 @@ class CSE_Heuristic if (m_pCompiler->verbose) { printf("\n"); - printf("Aggressive CSE Promotion cutoff is %u\n", aggressiveRefCnt); - printf("Moderate CSE Promotion cutoff is %u\n", moderateRefCnt); + printf("Aggressive CSE Promotion cutoff is %f\n", aggressiveRefCnt); + printf("Moderate CSE Promotion cutoff is %f\n", moderateRefCnt); printf("enregCount is %u\n", enregCount); printf("Framesize estimate is 0x%04X\n", frameSize); printf("We have a %s frame\n", hugeFrame ? "huge" : (largeFrame ? "large" : "small")); @@ -2001,9 +2001,9 @@ class CSE_Heuristic Compiler::CSEdsc* dsc = sortTab[cnt]; GenTree* expr = dsc->csdTree; - unsigned def; - unsigned use; - unsigned cost; + BasicBlock::weight_t def; + BasicBlock::weight_t use; + unsigned cost; if (CodeOptKind() == Compiler::SMALL_CODE) { @@ -2020,14 +2020,14 @@ class CSE_Heuristic if (!Compiler::Is_Shared_Const_CSE(dsc->csdHashKey)) { - printf("CSE #%02u, {$%-3x, $%-3x} useCnt=%d: [def=%3u, use=%3u, cost=%3u%s]\n :: ", + printf("CSE #%02u, {$%-3x, $%-3x} useCnt=%d: [def=%3f, use=%3f, cost=%3u%s]\n :: ", dsc->csdIndex, dsc->csdHashKey, dsc->defExcSetPromise, dsc->csdUseCount, def, use, cost, dsc->csdLiveAcrossCall ? ", call" : " "); } else { size_t kVal = Compiler::Decode_Shared_Const_CSE_Value(dsc->csdHashKey); - printf("CSE #%02u, {K_%p} useCnt=%d: [def=%3u, use=%3u, cost=%3u%s]\n :: ", dsc->csdIndex, + printf("CSE #%02u, {K_%p} useCnt=%d: [def=%3f, use=%3f, cost=%3u%s]\n :: ", dsc->csdIndex, dspPtr(kVal), dsc->csdUseCount, def, use, cost, dsc->csdLiveAcrossCall ? ", call" : " "); } @@ -2050,11 +2050,11 @@ class CSE_Heuristic CSE_Heuristic* m_context; Compiler::CSEdsc* m_CseDsc; - unsigned m_cseIndex; - unsigned m_defCount; - unsigned m_useCount; - unsigned m_Cost; - unsigned m_Size; + unsigned m_cseIndex; + BasicBlock::weight_t m_defCount; + BasicBlock::weight_t m_useCount; + unsigned m_Cost; + unsigned m_Size; // When this Candidate is successfully promoted to a CSE we record // the following information about what category was used when promoting it. @@ -2104,11 +2104,11 @@ class CSE_Heuristic { return m_cseIndex; } - unsigned DefCount() + BasicBlock::weight_t DefCount() { return m_defCount; } - unsigned UseCount() + BasicBlock::weight_t UseCount() { return m_useCount; } @@ -2336,14 +2336,14 @@ class CSE_Heuristic unsigned cse_def_cost; unsigned cse_use_cost; - unsigned no_cse_cost = 0; - unsigned yes_cse_cost = 0; - unsigned extra_yes_cost = 0; - unsigned extra_no_cost = 0; + BasicBlock::weight_t no_cse_cost = 0; + BasicBlock::weight_t yes_cse_cost = 0; + unsigned extra_yes_cost = 0; + unsigned extra_no_cost = 0; // The 'cseRefCnt' is the RefCnt that we will have if we promote this CSE into a new LclVar // Each CSE Def will contain two Refs and each CSE Use will have one Ref of this new LclVar - unsigned cseRefCnt = (candidate->DefCount() * 2) + candidate->UseCount(); + BasicBlock::weight_t cseRefCnt = (candidate->DefCount() * 2) + candidate->UseCount(); bool canEnregister = true; unsigned slotCount = 1; @@ -2381,7 +2381,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Aggressive CSE Promotion (%u >= %u)\n", cseRefCnt, aggressiveRefCnt); + printf("Aggressive CSE Promotion (%f >= %f)\n", cseRefCnt, aggressiveRefCnt); } #endif // With aggressive promotion we expect that the candidate will be enregistered @@ -2480,7 +2480,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Aggressive CSE Promotion (%u >= %u)\n", cseRefCnt, aggressiveRefCnt); + printf("Aggressive CSE Promotion (%f >= %f)\n", cseRefCnt, aggressiveRefCnt); } #endif // With aggressive promotion we expect that the candidate will be enregistered @@ -2499,7 +2499,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Moderate CSE Promotion (CSE never live at call) (%u >= %u)\n", cseRefCnt, + printf("Moderate CSE Promotion (CSE never live at call) (%f >= %f)\n", cseRefCnt, moderateRefCnt); } #endif @@ -2511,7 +2511,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Moderate CSE Promotion (%s) (%u >= %u)\n", + printf("Moderate CSE Promotion (%s) (%f >= %f)\n", candidate->LiveAcrossCall() ? "CSE is live across a call" : "not enregisterable", cseRefCnt, moderateRefCnt); } @@ -2544,7 +2544,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Conservative CSE Promotion (%s) (%u < %u)\n", + printf("Conservative CSE Promotion (%s) (%f < %f)\n", candidate->LiveAcrossCall() ? "CSE is live across a call" : "not enregisterable", cseRefCnt, moderateRefCnt); } @@ -2557,7 +2557,7 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("Conservative CSE Promotion (%u < %u)\n", cseRefCnt, moderateRefCnt); + printf("Conservative CSE Promotion (%f < %f)\n", cseRefCnt, moderateRefCnt); } #endif cse_def_cost = 2; @@ -2589,7 +2589,7 @@ class CSE_Heuristic if ((enregCount < (CNT_CALLEE_ENREG * 3 / 2)) || varTypeIsFloating(candidate->Expr()->TypeGet())) { // Extra cost in case we have to spill/restore a caller saved register - extra_yes_cost = BB_UNITY_WEIGHT; + extra_yes_cost = BB_UNITY_WEIGHT_UNSIGNED; if (cseRefCnt < moderateRefCnt) // If Conservative CSE promotion { @@ -2623,7 +2623,7 @@ class CSE_Heuristic cse_use_cost += 2; } - extra_yes_cost = (BB_UNITY_WEIGHT * spillSimdRegInProlog) * 3; + extra_yes_cost = (BB_UNITY_WEIGHT_UNSIGNED * spillSimdRegInProlog) * 3; } #endif // FEATURE_SIMD } @@ -2649,14 +2649,14 @@ class CSE_Heuristic #ifdef DEBUG if (m_pCompiler->verbose) { - printf("cseRefCnt=%d, aggressiveRefCnt=%d, moderateRefCnt=%d\n", cseRefCnt, aggressiveRefCnt, + printf("cseRefCnt=%f, aggressiveRefCnt=%f, moderateRefCnt=%f\n", cseRefCnt, aggressiveRefCnt, moderateRefCnt); - printf("defCnt=%d, useCnt=%d, cost=%d, size=%d%s\n", candidate->DefCount(), candidate->UseCount(), + printf("defCnt=%f, useCnt=%f, cost=%d, size=%d%s\n", candidate->DefCount(), candidate->UseCount(), candidate->Cost(), candidate->Size(), candidate->LiveAcrossCall() ? ", LiveAcrossCall" : ""); printf("def_cost=%d, use_cost=%d, extra_no_cost=%d, extra_yes_cost=%d\n", cse_def_cost, cse_use_cost, extra_no_cost, extra_yes_cost); - printf("CSE cost savings check (%u >= %u) %s\n", no_cse_cost, yes_cse_cost, + printf("CSE cost savings check (%f >= %f) %s\n", no_cse_cost, yes_cse_cost, (no_cse_cost >= yes_cse_cost) ? "passes" : "fails"); } #endif // DEBUG @@ -2673,7 +2673,7 @@ class CSE_Heuristic /* In stress mode we will make some extra CSEs */ if (no_cse_cost > 0) { - int percentage = (no_cse_cost * 100) / yes_cse_cost; + int percentage = (int)((no_cse_cost * 100) / yes_cse_cost); if (m_pCompiler->compStressCompile(Compiler::STRESS_MAKE_CSE, percentage)) { @@ -2719,14 +2719,14 @@ class CSE_Heuristic // It will also put cse0 into SSA if there is just one def. void PerformCSE(CSE_Candidate* successfulCandidate) { - unsigned cseRefCnt = (successfulCandidate->DefCount() * 2) + successfulCandidate->UseCount(); + BasicBlock::weight_t cseRefCnt = (successfulCandidate->DefCount() * 2) + successfulCandidate->UseCount(); if (successfulCandidate->LiveAcrossCall() != 0) { // As we introduce new LclVars for these CSE we slightly // increase the cutoffs for aggressive and moderate CSE's // - int incr = BB_UNITY_WEIGHT; + BasicBlock::weight_t incr = BB_UNITY_WEIGHT; if (cseRefCnt > aggressiveRefCnt) { diff --git a/src/coreclr/src/jit/optimizer.cpp b/src/coreclr/src/jit/optimizer.cpp index 240e0c508857..b7562f6e8406 100644 --- a/src/coreclr/src/jit/optimizer.cpp +++ b/src/coreclr/src/jit/optimizer.cpp @@ -133,7 +133,7 @@ void Compiler::optMarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk, bool ex Thus we increase each block by 7 times the weight of the loop header block, if the loops are all properly formed gives us: - (assuming that BB_LOOP_WEIGHT is 8) + (assuming that BB_LOOP_WEIGHT_SCALE is 8) 1 -- non loop basic block 8 -- single loop nesting @@ -217,7 +217,7 @@ void Compiler::optMarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk, bool ex { noway_assert(curBlk->bbWeight > BB_ZERO_WEIGHT); - unsigned weight; + BasicBlock::weight_t weight; if (curBlk->hasProfileWeight()) { @@ -228,11 +228,11 @@ void Compiler::optMarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk, bool ex { if (dominates) { - weight = curBlk->bbWeight * BB_LOOP_WEIGHT; + weight = curBlk->bbWeight * BB_LOOP_WEIGHT_SCALE; } else { - weight = curBlk->bbWeight * (BB_LOOP_WEIGHT / 2); + weight = curBlk->bbWeight * (BB_LOOP_WEIGHT_SCALE / 2); } // @@ -357,7 +357,7 @@ void Compiler::optUnmarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk) // if (!curBlk->isRunRarely() && fgReachable(curBlk, begBlk) && fgReachable(begBlk, curBlk)) { - unsigned weight = curBlk->bbWeight; + BasicBlock::weight_t weight = curBlk->bbWeight; // Don't unmark blocks that are set to BB_MAX_WEIGHT // Don't unmark blocks when we are using profile weights @@ -372,7 +372,7 @@ void Compiler::optUnmarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk) { /* Merging of blocks can disturb the Dominates information (see RAID #46649) */ - if (weight < BB_LOOP_WEIGHT) + if (weight < BB_LOOP_WEIGHT_SCALE) { weight *= 2; } @@ -384,9 +384,9 @@ void Compiler::optUnmarkLoopBlocks(BasicBlock* begBlk, BasicBlock* endBlk) weight = BB_MAX_WEIGHT; } - assert(weight >= BB_LOOP_WEIGHT); + assert(weight >= BB_LOOP_WEIGHT_SCALE); - curBlk->modifyBBWeight(weight / BB_LOOP_WEIGHT); + curBlk->modifyBBWeight(weight / BB_LOOP_WEIGHT_SCALE); } #ifdef DEBUG @@ -3546,19 +3546,7 @@ void Compiler::optUnrollLoops() // Check for required flags: // LPFLG_DO_WHILE - required because this transform only handles loops of this form // LPFLG_CONST - required because this transform only handles full unrolls - // LPFLG_SIMD_LIMIT - included here as a heuristic, not for correctness/structural reasons - requiredFlags = LPFLG_DO_WHILE | LPFLG_CONST | LPFLG_SIMD_LIMIT; - -#ifdef DEBUG - if (compStressCompile(STRESS_UNROLL_LOOPS, 50)) - { - // In stress mode, quadruple the size limit, and drop - // the restriction that loop limit must be vector element count. - - unrollLimitSz *= 4; - requiredFlags &= ~LPFLG_SIMD_LIMIT; - } -#endif + requiredFlags = LPFLG_DO_WHILE | LPFLG_CONST; /* Ignore the loop if we don't have a do-while that has a constant number of iterations */ @@ -3647,6 +3635,24 @@ void Compiler::optUnrollLoops() continue; } + if (INDEBUG(compStressCompile(STRESS_UNROLL_LOOPS, 50) ||) false) + { + // In stress mode, quadruple the size limit, and drop + // the restriction that loop limit must be vector element count. + unrollLimitSz *= 4; + } + else if (totalIter <= 1) + { + // No limit for single iteration loops + unrollLimitSz = INT_MAX; + } + else if (!(loopFlags & LPFLG_SIMD_LIMIT)) + { + // Otherwise unroll only if limit is Vector_.Length + // (as a heuristic, not for correctness/structural reasons) + continue; + } + GenTree* incr = incrStmt->GetRootNode(); // Don't unroll loops we don't understand. @@ -3776,7 +3782,7 @@ void Compiler::optUnrollLoops() goto DONE_LOOP; } // Block weight should no longer have the loop multiplier - newBlock->modifyBBWeight(newBlock->bbWeight / BB_LOOP_WEIGHT); + newBlock->modifyBBWeight(newBlock->bbWeight / BB_LOOP_WEIGHT_SCALE); // Jump dests are set in a post-pass; make sure CloneBlockState hasn't tried to set them. assert(newBlock->bbJumpDest == nullptr); @@ -4156,7 +4162,7 @@ void Compiler::fgOptWhileLoop(BasicBlock* block) gtPrepareCost(condTree); unsigned estDupCostSz = condTree->GetCostSz(); - double loopIterations = (double)BB_LOOP_WEIGHT; + double loopIterations = (double)BB_LOOP_WEIGHT_SCALE; bool allProfileWeightsAreValid = false; BasicBlock::weight_t weightBlock = block->bbWeight; @@ -5148,21 +5154,13 @@ void Compiler::optCloneLoop(unsigned loopInd, LoopCloneContext* context) optLoopTable[loopInd].lpEntry->bbNum, optLoopTable[loopInd].lpBottom->bbNum); // Determine the depth of the loop, so we can properly weight blocks added (outside the cloned loop blocks). - unsigned depth = optLoopDepth(loopInd); - unsigned ambientWeight = 1; + unsigned depth = optLoopDepth(loopInd); + BasicBlock::weight_t ambientWeight = 1; for (unsigned j = 0; j < depth; j++) { - unsigned lastWeight = ambientWeight; - ambientWeight *= BB_LOOP_WEIGHT; - // If the multiplication overflowed, stick at max. - // (Strictly speaking, a multiplication could overflow and still have a result - // that is >= lastWeight...but if so, the original weight must be pretty large, - // and it got bigger, so that's OK.) - if (ambientWeight < lastWeight) - { - ambientWeight = BB_MAX_WEIGHT; - break; - } + BasicBlock::weight_t lastWeight = ambientWeight; + ambientWeight *= BB_LOOP_WEIGHT_SCALE; + assert(ambientWeight > lastWeight); } // If we're in a non-natural loop, the ambient weight might be higher than we computed above. @@ -5410,7 +5408,7 @@ BasicBlock* Compiler::optInsertLoopChoiceConditions(LoopCloneContext* context, return curCond; } -void Compiler::optEnsureUniqueHead(unsigned loopInd, unsigned ambientWeight) +void Compiler::optEnsureUniqueHead(unsigned loopInd, BasicBlock::weight_t ambientWeight) { BasicBlock* h = optLoopTable[loopInd].lpHead; BasicBlock* t = optLoopTable[loopInd].lpTop; @@ -7179,8 +7177,8 @@ void Compiler::optHoistLoopBlocks(unsigned loopNum, ArrayStack* blo while (!blocks->Empty()) { - BasicBlock* block = blocks->Pop(); - unsigned blockWeight = block->getBBWeight(this); + BasicBlock* block = blocks->Pop(); + BasicBlock::weight_t blockWeight = block->getBBWeight(this); JITDUMP(" optHoistLoopBlocks " FMT_BB " (weight=%6s) of loop L%02u <" FMT_BB ".." FMT_BB ">, firstBlock is %s\n", @@ -7406,8 +7404,8 @@ void Compiler::fgCreateLoopPreHeader(unsigned lnum) if (allValidProfileWeights) { - double loopEnteredCount; - double loopSkippedCount; + BasicBlock::weight_t loopEnteredCount; + BasicBlock::weight_t loopSkippedCount; if (fgHaveValidEdgeWeights) { @@ -7416,21 +7414,19 @@ void Compiler::fgCreateLoopPreHeader(unsigned lnum) noway_assert(edgeToNext != nullptr); noway_assert(edgeToJump != nullptr); - loopEnteredCount = - ((double)edgeToNext->edgeWeightMin() + (double)edgeToNext->edgeWeightMax()) / 2.0; - loopSkippedCount = - ((double)edgeToJump->edgeWeightMin() + (double)edgeToJump->edgeWeightMax()) / 2.0; + loopEnteredCount = (edgeToNext->edgeWeightMin() + edgeToNext->edgeWeightMax()) / 2.0f; + loopSkippedCount = (edgeToJump->edgeWeightMin() + edgeToJump->edgeWeightMax()) / 2.0f; } else { - loopEnteredCount = (double)head->bbNext->bbWeight; - loopSkippedCount = (double)head->bbJumpDest->bbWeight; + loopEnteredCount = head->bbNext->bbWeight; + loopSkippedCount = head->bbJumpDest->bbWeight; } - double loopTakenRatio = loopEnteredCount / (loopEnteredCount + loopSkippedCount); + BasicBlock::weight_t loopTakenRatio = loopEnteredCount / (loopEnteredCount + loopSkippedCount); // Calculate a good approximation of the preHead's block weight - unsigned preHeadWeight = (unsigned)(((double)head->bbWeight * loopTakenRatio) + 0.5); + BasicBlock::weight_t preHeadWeight = (head->bbWeight * loopTakenRatio) + 0.5f; preHead->setBBWeight(max(preHeadWeight, 1)); noway_assert(!preHead->isRunRarely()); } diff --git a/src/coreclr/src/jit/patchpoint.cpp b/src/coreclr/src/jit/patchpoint.cpp index 790ec3e56a00..8ce03ea95906 100644 --- a/src/coreclr/src/jit/patchpoint.cpp +++ b/src/coreclr/src/jit/patchpoint.cpp @@ -93,11 +93,7 @@ class PatchpointTransformer BasicBlock* CreateAndInsertBasicBlock(BBjumpKinds jumpKind, BasicBlock* insertAfter) { BasicBlock* block = compiler->fgNewBBafter(jumpKind, insertAfter, true); - if ((insertAfter->bbFlags & BBF_INTERNAL) == 0) - { - block->bbFlags &= ~BBF_INTERNAL; - block->bbFlags |= BBF_IMPORTED; - } + block->bbFlags |= BBF_IMPORTED; return block; } @@ -138,6 +134,7 @@ class PatchpointTransformer block->bbJumpKind = BBJ_COND; block->bbJumpDest = remainderBlock; helperBlock->bbFlags |= BBF_BACKWARD_JUMP; + block->bbFlags |= BBF_INTERNAL; // Update weights remainderBlock->inheritWeight(block); diff --git a/src/coreclr/src/jit/rationalize.cpp b/src/coreclr/src/jit/rationalize.cpp index 8054fda6e8ef..ebdac7725ab7 100644 --- a/src/coreclr/src/jit/rationalize.cpp +++ b/src/coreclr/src/jit/rationalize.cpp @@ -303,8 +303,8 @@ void Rationalizer::SanityCheck() for (GenTree* tree = statement->GetTreeList(); tree; tree = tree->gtNext) { - // QMARK nodes should have been removed before this phase. - assert(tree->OperGet() != GT_QMARK); + // QMARK and PUT_ARG_TYPE nodes should have been removed before this phase. + assert(!tree->OperIs(GT_QMARK, GT_PUTARG_TYPE)); if (tree->OperGet() == GT_ASG) { diff --git a/src/coreclr/src/jit/regalloc.cpp b/src/coreclr/src/jit/regalloc.cpp index 8dc4930ca837..5e609b66d519 100644 --- a/src/coreclr/src/jit/regalloc.cpp +++ b/src/coreclr/src/jit/regalloc.cpp @@ -61,8 +61,11 @@ DWORD Compiler::getCanDoubleAlign() // Otherwise, we compare the weighted ref count of ebp-enregistered variables against double the // ref count for double-aligned values. // -bool Compiler::shouldDoubleAlign( - unsigned refCntStk, unsigned refCntEBP, unsigned refCntWtdEBP, unsigned refCntStkParam, unsigned refCntWtdStkDbl) +bool Compiler::shouldDoubleAlign(unsigned refCntStk, + unsigned refCntEBP, + BasicBlock::weight_t refCntWtdEBP, + unsigned refCntStkParam, + BasicBlock::weight_t refCntWtdStkDbl) { bool doDoubleAlign = false; const unsigned DBL_ALIGN_SETUP_SIZE = 7; @@ -78,10 +81,10 @@ bool Compiler::shouldDoubleAlign( JITDUMP("\nDouble alignment:\n"); JITDUMP(" Bytes that could be saved by not using EBP frame: %i\n", bytesUsed); - JITDUMP(" Sum of weighted ref counts for EBP enregistered variables: %i\n", refCntWtdEBP); - JITDUMP(" Sum of weighted ref counts for weighted stack based doubles: %i\n", refCntWtdStkDbl); + JITDUMP(" Sum of weighted ref counts for EBP enregistered variables: %f\n", refCntWtdEBP); + JITDUMP(" Sum of weighted ref counts for weighted stack based doubles: %f\n", refCntWtdStkDbl); - if (bytesUsed > ((refCntWtdStkDbl * misaligned_weight) / BB_UNITY_WEIGHT)) + if (((BasicBlock::weight_t)bytesUsed) > ((refCntWtdStkDbl * misaligned_weight) / BB_UNITY_WEIGHT)) { JITDUMP(" Predicting not to double-align ESP to save %d bytes of code.\n", bytesUsed); } diff --git a/src/coreclr/src/jit/utils.cpp b/src/coreclr/src/jit/utils.cpp index 1f041a3be40f..c973f6f63c87 100644 --- a/src/coreclr/src/jit/utils.cpp +++ b/src/coreclr/src/jit/utils.cpp @@ -646,7 +646,7 @@ const char* genES2str(BitVecTraits* traits, EXPSET_TP set) return temp; } -const char* refCntWtd2str(unsigned refCntWtd) +const char* refCntWtd2str(BasicBlock::weight_t refCntWtd) { const int bufSize = 17; static char num1[bufSize]; @@ -663,16 +663,27 @@ const char* refCntWtd2str(unsigned refCntWtd) } else { - unsigned valueInt = refCntWtd / BB_UNITY_WEIGHT; - unsigned valueFrac = refCntWtd % BB_UNITY_WEIGHT; + float scaledWeight = refCntWtd / BB_UNITY_WEIGHT; + float intPart = (float)floor(scaledWeight); + bool isLarge = intPart > 1e9; + bool isSmall = (intPart < 1e-2) && (intPart != 0); - if (valueFrac == 0) + // Use g format for high dynamic range counts. + // + if (isLarge || isSmall) { - sprintf_s(temp, bufSize, "%u ", valueInt); + sprintf_s(temp, bufSize, "%.2g", scaledWeight); } else { - sprintf_s(temp, bufSize, "%u.%02u", valueInt, (valueFrac * 100 / BB_UNITY_WEIGHT)); + if (intPart == scaledWeight) + { + sprintf_s(temp, bufSize, "%lld ", (long long)intPart); + } + else + { + sprintf_s(temp, bufSize, "%.2f", scaledWeight); + } } } return temp; @@ -1836,6 +1847,18 @@ unsigned CountDigits(unsigned num, unsigned base /* = 10 */) return count; } +unsigned CountDigits(float num, unsigned base /* = 10 */) +{ + assert(2 <= base && base <= 16); // sanity check + unsigned count = 1; + while (num >= base) + { + num /= base; + ++count; + } + return count; +} + #endif // DEBUG double FloatingPointUtils::convertUInt64ToDouble(unsigned __int64 uIntVal) @@ -2079,6 +2102,21 @@ bool FloatingPointUtils::isNormal(float x) return (bits < 0x7F800000) && (bits != 0) && ((bits & 0x7F800000) != 0); } +//------------------------------------------------------------------------ +// infinite_float: return an infinite float value +// +// Returns: +// Infinite float value. +// +// Notes: +// This is the predefined constant HUGE_VALF on many platforms. +// +float FloatingPointUtils::infinite_float() +{ + int32_t bits = 0x7F800000; + return *reinterpret_cast(&bits); +} + //------------------------------------------------------------------------ // hasPreciseReciprocal: check double for precise reciprocal. E.g. 2.0 <--> 0.5 // diff --git a/src/coreclr/src/jit/utils.h b/src/coreclr/src/jit/utils.h index 149ef88b0027..2a50680229ef 100644 --- a/src/coreclr/src/jit/utils.h +++ b/src/coreclr/src/jit/utils.h @@ -169,6 +169,11 @@ class ConfigMethodRange } } + bool IsEmpty() const + { + return m_lastRange == 0; + } + // Error checks bool Error() const { @@ -643,6 +648,7 @@ class PerfCounter * Used when outputting strings. */ unsigned CountDigits(unsigned num, unsigned base = 10); +unsigned CountDigits(float num, unsigned base = 10); #endif // DEBUG @@ -669,6 +675,8 @@ class FloatingPointUtils static bool hasPreciseReciprocal(double x); static bool hasPreciseReciprocal(float x); + + static float infinite_float(); }; // The CLR requires that critical section locks be initialized via its ClrCreateCriticalSection API...but diff --git a/src/coreclr/src/jit/valuenum.cpp b/src/coreclr/src/jit/valuenum.cpp index eb357ddf991b..21fcad4231fb 100644 --- a/src/coreclr/src/jit/valuenum.cpp +++ b/src/coreclr/src/jit/valuenum.cpp @@ -6453,7 +6453,7 @@ void Compiler::fgValueNumberTreeConst(GenTree* tree) } else { - assert(tree->gtFlags == GTF_ICON_STR_HDL); // Constant object can be only frozen string. + assert(tree->IsIconHandle(GTF_ICON_STR_HDL)); // Constant object can be only frozen string. tree->gtVNPair.SetBoth( vnStore->VNForHandle(ssize_t(tree->AsIntConCommon()->IconValue()), tree->GetIconHandleFlag())); } diff --git a/src/coreclr/src/pal/prebuilt/inc/sospriv.h b/src/coreclr/src/pal/prebuilt/inc/sospriv.h index e1cbc05e9028..38bb6791ea17 100644 --- a/src/coreclr/src/pal/prebuilt/inc/sospriv.h +++ b/src/coreclr/src/pal/prebuilt/inc/sospriv.h @@ -2675,7 +2675,7 @@ EXTERN_C const IID IID_ISOSDacInterface8; /* interface __MIDL_itf_sospriv_0000_0012 */ /* [local] */ -#define SOS_BREAKING_CHANGE_VERSION 1 +#define SOS_BREAKING_CHANGE_VERSION 2 extern RPC_IF_HANDLE __MIDL_itf_sospriv_0000_0012_v0_0_c_ifspec; diff --git a/src/coreclr/src/pal/src/exception/remote-unwind.cpp b/src/coreclr/src/pal/src/exception/remote-unwind.cpp index 46d520f08772..af595151c188 100644 --- a/src/coreclr/src/pal/src/exception/remote-unwind.cpp +++ b/src/coreclr/src/pal/src/exception/remote-unwind.cpp @@ -1859,7 +1859,10 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pip, int nee ehFrameHdrLen = ph.p_memsz; break; -#ifdef PT_ARM_EXIDX +#if defined(TARGET_ARM) +#ifndef PT_ARM_EXIDX +#define PT_ARM_EXIDX 0x70000001 /* See llvm ELF.h */ +#endif /* !PT_ARM_EXIDX */ case PT_ARM_EXIDX: exidxFrameHdrAddr = loadbias + ph.p_vaddr; exidxFrameHdrLen = ph.p_memsz; diff --git a/src/coreclr/src/pal/src/misc/cgroup.cpp b/src/coreclr/src/pal/src/misc/cgroup.cpp index 26f9686e73c2..f3e20012c539 100644 --- a/src/coreclr/src/pal/src/misc/cgroup.cpp +++ b/src/coreclr/src/pal/src/misc/cgroup.cpp @@ -53,8 +53,8 @@ class CGroup static void Initialize() { s_cgroup_version = FindCGroupVersion(); - s_memory_cgroup_path = FindCGroupPath(&IsCGroup1MemorySubsystem); - s_cpu_cgroup_path = FindCGroupPath(&IsCGroup1CpuSubsystem); + s_memory_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1MemorySubsystem : nullptr); + s_cpu_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1CpuSubsystem : nullptr); } static void Cleanup() @@ -245,33 +245,37 @@ class CGroup if (strncmp(filesystemType, "cgroup", 6) == 0) { - char* context = nullptr; - char* strTok = strtok_s(options, ",", &context); - while (strTok != nullptr) + bool isSubsystemMatch = is_subsystem == nullptr; + if (!isSubsystemMatch) { - if (is_subsystem(strTok)) + char* context = nullptr; + char* strTok = strtok_s(options, ",", &context); + while (!isSubsystemMatch && strTok != nullptr) { - mountpath = (char*)PAL_malloc(lineLen+1); - if (mountpath == nullptr) - goto done; - mountroot = (char*)PAL_malloc(lineLen+1); - if (mountroot == nullptr) - goto done; - - sscanfRet = sscanf_s(line, - "%*s %*s %*s %s %s ", - mountroot, lineLen+1, - mountpath, lineLen+1); - if (sscanfRet != 2) - _ASSERTE(!"Failed to parse mount info file contents with sscanf_s."); - - // assign the output arguments and clear the locals so we don't free them. - *pmountpath = mountpath; - *pmountroot = mountroot; - mountpath = mountroot = nullptr; - goto done; + isSubsystemMatch = is_subsystem(strTok); + strTok = strtok_s(nullptr, ",", &context); } - strTok = strtok_s(nullptr, ",", &context); + } + if (isSubsystemMatch) + { + mountpath = (char*)PAL_malloc(lineLen+1); + if (mountpath == nullptr) + goto done; + mountroot = (char*)PAL_malloc(lineLen+1); + if (mountroot == nullptr) + goto done; + + sscanfRet = sscanf_s(line, + "%*s %*s %*s %s %s ", + mountroot, lineLen+1, + mountpath, lineLen+1); + if (sscanfRet != 2) + _ASSERTE(!"Failed to parse mount info file contents with sscanf_s."); + + // assign the output arguments and clear the locals so we don't free them. + *pmountpath = mountpath; + *pmountroot = mountroot; + mountpath = mountroot = nullptr; } } } @@ -343,7 +347,7 @@ class CGroup // See https://www.kernel.org/doc/Documentation/cgroup-v2.txt // Look for a "0::/some/path" int sscanfRet = sscanf_s(line, - "0::%s", lineLen+1, + "0::%s", cgroup_path, lineLen+1); if (sscanfRet == 1) { diff --git a/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs b/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs index 3cd92b4296e6..4499457db562 100644 --- a/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs +++ b/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs @@ -190,7 +190,7 @@ private EcmaModule AddModule(string filePath, string expectedSimpleName, bool us try { PEReader peReader = OpenPEFile(filePath, out mappedViewAccessor); - pdbReader = OpenAssociatedSymbolFile(filePath, peReader); + pdbReader = PortablePdbSymbolReader.TryOpenEmbedded(peReader, GetMetadataStringDecoder()) ?? OpenAssociatedSymbolFile(filePath, peReader); EcmaModule module = EcmaModule.Create(this, peReader, containingAssembly: null, pdbReader); diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs index 1c8c7ba76ae0..511ea87ab15c 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs @@ -2440,6 +2440,21 @@ static HRESULT _getMethodBlockCounts(IntPtr thisHandle, IntPtr* ppException, COR } } + [UnmanagedCallersOnly] + static CORINFO_CLASS_STRUCT_* _getLikelyClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftnHnd, CORINFO_CLASS_STRUCT_* baseHnd, uint ilOffset, uint* pLikelihood, uint* pNumberOfClasses) + { + var _this = GetThis(thisHandle); + try + { + return _this.getLikelyClass(ftnHnd, baseHnd, ilOffset, ref *pLikelihood, ref *pNumberOfClasses); + } + catch (Exception ex) + { + *ppException = _this.AllocException(ex); + return default; + } + } + [UnmanagedCallersOnly] static void _recordCallSite(IntPtr thisHandle, IntPtr* ppException, uint instrOffset, CORINFO_SIG_INFO* callSig, CORINFO_METHOD_STRUCT_* methodHandle) { @@ -2516,7 +2531,7 @@ static uint _getJitFlags(IntPtr thisHandle, IntPtr* ppException, CORJIT_FLAGS* f static IntPtr GetUnmanagedCallbacks() { - void** callbacks = (void**)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 170); + void** callbacks = (void**)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 171); callbacks[0] = (delegate* unmanaged)&_getMethodAttribs; callbacks[1] = (delegate* unmanaged)&_setMethodAttribs; @@ -2683,11 +2698,12 @@ static IntPtr GetUnmanagedCallbacks() callbacks[162] = (delegate* unmanaged)&_reportFatalError; callbacks[163] = (delegate* unmanaged)&_allocMethodBlockCounts; callbacks[164] = (delegate* unmanaged)&_getMethodBlockCounts; - callbacks[165] = (delegate* unmanaged)&_recordCallSite; - callbacks[166] = (delegate* unmanaged)&_recordRelocation; - callbacks[167] = (delegate* unmanaged)&_getRelocTypeHint; - callbacks[168] = (delegate* unmanaged)&_getExpectedTargetArchitecture; - callbacks[169] = (delegate* unmanaged)&_getJitFlags; + callbacks[165] = (delegate* unmanaged)&_getLikelyClass; + callbacks[166] = (delegate* unmanaged)&_recordCallSite; + callbacks[167] = (delegate* unmanaged)&_recordRelocation; + callbacks[168] = (delegate* unmanaged)&_getRelocTypeHint; + callbacks[169] = (delegate* unmanaged)&_getExpectedTargetArchitecture; + callbacks[170] = (delegate* unmanaged)&_getJitFlags; return (IntPtr)callbacks; } diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs index 2f53520f3740..bd6aaca2d7f4 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs @@ -111,9 +111,6 @@ static IntrinsicHashtable InitializeIntrinsicHashtable() table.Add(CorInfoIntrinsics.CORINFO_INTRINSIC_GetRawHandle, "DefaultConstructorOf", "System", "Activator"); table.Add(CorInfoIntrinsics.CORINFO_INTRINSIC_GetRawHandle, "AllocatorOf", "System", "Activator"); - // If this assert fails, make sure to add the new intrinsics to the table above and update the expected count below. - Debug.Assert((int)CorInfoIntrinsics.CORINFO_INTRINSIC_Count == 34, "Please update intrinsic hash table"); - return table; } diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs index 56873fe0b651..122987d7659d 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs @@ -662,12 +662,13 @@ private CorInfoType asCorInfoType(TypeDesc type, out TypeDesc typeIfNotPrimitive return (CorInfoType)type.Category; } - typeIfNotPrimitive = type; - if (type.IsPointer || type.IsFunctionPointer) { + typeIfNotPrimitive = null; return CorInfoType.CORINFO_TYPE_PTR; } + + typeIfNotPrimitive = type; if (type.IsByRef) { @@ -1432,7 +1433,8 @@ private int appendClassName(char** ppBuf, ref int pnBufLen, CORINFO_CLASS_STRUCT private bool isValueClass(CORINFO_CLASS_STRUCT_* cls) { - return HandleToObject(cls).IsValueType; + TypeDesc type = HandleToObject(cls); + return type.IsValueType || type.IsPointer || type.IsFunctionPointer; } private CorInfoInlineTypeCheck canInlineTypeCheck(CORINFO_CLASS_STRUCT_* cls, CorInfoInlineTypeCheckSource source) @@ -1454,6 +1456,10 @@ private uint getClassAttribsInternal(TypeDesc type) CorInfoFlag result = (CorInfoFlag)0; + // CoreCLR uses UIntPtr in place of pointers here + if (type.IsPointer || type.IsFunctionPointer) + type = _compilation.TypeSystemContext.GetWellKnownType(WellKnownType.UIntPtr); + var metadataType = type as MetadataType; // The array flag is used to identify the faked-up methods on diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs index de9e108428c4..631e848410d7 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs @@ -1267,7 +1267,8 @@ public enum CorJitFlag : uint CORJIT_FLAG_UNUSED4 = 10, CORJIT_FLAG_UNUSED5 = 11, CORJIT_FLAG_UNUSED6 = 12, - CORJIT_FLAG_UNUSED7 = 13, + CORJIT_FLAG_OSR = 13, // Generate alternate version for On Stack Replacement + CORJIT_FLAG_ALT_JIT = 14, // JIT should consider itself an ALT_JIT CORJIT_FLAG_FEATURE_SIMD = 17, CORJIT_FLAG_MAKEFINALCODE = 18, // Use the final code generator, i.e., not the interpreter. CORJIT_FLAG_READYTORUN = 19, // Use version-resilient code generation diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 348c59ec9f0b..757635757ffd 100644 --- a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -321,6 +321,7 @@ FUNCTIONS void reportFatalError(CorJitResult result) HRESULT allocMethodBlockCounts(UINT32 count, ICorJitInfo::BlockCounts** pBlockCounts) HRESULT getMethodBlockCounts(CORINFO_METHOD_HANDLE ftnHnd, UINT32* pCount, ICorJitInfo::BlockCounts** pBlockCounts, UINT32* pNumRuns) + CORINFO_CLASS_HANDLE getLikelyClass(CORINFO_METHOD_HANDLE ftnHnd, CORINFO_CLASS_HANDLE baseHnd, UINT32 ilOffset, UINT32* pLikelihood, UINT32* pNumberOfClasses) void recordCallSite(ULONG instrOffset, CORINFO_SIG_INFO* callSig, CORINFO_METHOD_HANDLE methodHandle) void recordRelocation(void* location, void* target, WORD fRelocType, WORD slotNum, INT32 addlDelta) WORD getRelocTypeHint(void* target) diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs b/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs index a72d9a1d7d9f..75a95154f66d 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs @@ -369,7 +369,7 @@ public static MethodDesc ResolveInterfaceMethodTarget(this TypeDesc thisType, Me return result; } - public static bool ContainsSignatureVariables(this TypeDesc thisType) + public static bool ContainsSignatureVariables(this TypeDesc thisType, bool treatGenericParameterLikeSignatureVariable = false) { switch (thisType.Category) { @@ -377,29 +377,34 @@ public static bool ContainsSignatureVariables(this TypeDesc thisType) case TypeFlags.SzArray: case TypeFlags.ByRef: case TypeFlags.Pointer: - return ((ParameterizedType)thisType).ParameterType.ContainsSignatureVariables(); + return ((ParameterizedType)thisType).ParameterType.ContainsSignatureVariables(treatGenericParameterLikeSignatureVariable); case TypeFlags.FunctionPointer: MethodSignature pointerSignature = ((FunctionPointerType)thisType).Signature; for (int i = 0; i < pointerSignature.Length; i++) - if (pointerSignature[i].ContainsSignatureVariables()) + if (pointerSignature[i].ContainsSignatureVariables(treatGenericParameterLikeSignatureVariable)) return true; - return pointerSignature.ReturnType.ContainsSignatureVariables(); + return pointerSignature.ReturnType.ContainsSignatureVariables(treatGenericParameterLikeSignatureVariable); case TypeFlags.SignatureMethodVariable: case TypeFlags.SignatureTypeVariable: return true; case TypeFlags.GenericParameter: + if (treatGenericParameterLikeSignatureVariable) + return true; + // It is generally a bug to have instantiations over generic parameters + // in the system. Typical instantiations are represented as instantiations + // over own formals - so these should be signature variables instead. throw new ArgumentException(); default: Debug.Assert(thisType is DefType); foreach (TypeDesc arg in thisType.Instantiation) { - if (arg.ContainsSignatureVariables()) + if (arg.ContainsSignatureVariables(treatGenericParameterLikeSignatureVariable)) return true; } diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs b/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs index 886280f21f75..4d14480129ce 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs @@ -7,6 +7,7 @@ using System.IO.MemoryMappedFiles; using System.Reflection.Metadata; using System.Reflection.Metadata.Ecma335; +using System.Reflection.PortableExecutable; using Internal.IL; @@ -74,6 +75,21 @@ public static PdbSymbolReader TryOpen(string pdbFilename, MetadataStringDecoder return new PortablePdbSymbolReader(reader, mappedViewAccessor); } + public static PdbSymbolReader TryOpenEmbedded(PEReader peReader, MetadataStringDecoder stringDecoder) + { + foreach (DebugDirectoryEntry debugEntry in peReader.ReadDebugDirectory()) + { + if (debugEntry.Type != DebugDirectoryEntryType.EmbeddedPortablePdb) + continue; + + MetadataReaderProvider embeddedReaderProvider = peReader.ReadEmbeddedPortablePdbDebugDirectoryData(debugEntry); + MetadataReader reader = embeddedReaderProvider.GetMetadataReader(MetadataReaderOptions.Default, stringDecoder); + return new PortablePdbSymbolReader(reader, mappedViewAccessor: null); + } + + return null; + } + private MetadataReader _reader; private MemoryMappedViewAccessor _mappedViewAccessor; @@ -85,7 +101,8 @@ private PortablePdbSymbolReader(MetadataReader reader, MemoryMappedViewAccessor public override void Dispose() { - _mappedViewAccessor.Dispose(); + if (_mappedViewAccessor != null) + _mappedViewAccessor.Dispose(); } public override IEnumerable GetSequencePointsForMethod(int methodToken) diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs b/src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs index e3e4fba5983a..8f4cb7440c71 100644 --- a/src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs +++ b/src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs @@ -746,25 +746,25 @@ private void ImportBasicBlock(BasicBlock basicBlock) ImportConvert(WellKnownType.SByte, true, false); break; case ILOpcode.conv_ovf_u1: - ImportConvert(WellKnownType.Byte, true, false); + ImportConvert(WellKnownType.Byte, true, true); break; case ILOpcode.conv_ovf_i2: ImportConvert(WellKnownType.Int16, true, false); break; case ILOpcode.conv_ovf_u2: - ImportConvert(WellKnownType.UInt16, true, false); + ImportConvert(WellKnownType.UInt16, true, true); break; case ILOpcode.conv_ovf_i4: ImportConvert(WellKnownType.Int32, true, false); break; case ILOpcode.conv_ovf_u4: - ImportConvert(WellKnownType.UInt32, true, false); + ImportConvert(WellKnownType.UInt32, true, true); break; case ILOpcode.conv_ovf_i8: ImportConvert(WellKnownType.Int64, true, false); break; case ILOpcode.conv_ovf_u8: - ImportConvert(WellKnownType.UInt64, true, false); + ImportConvert(WellKnownType.UInt64, true, true); break; case ILOpcode.refanyval: ImportRefAnyVal(ReadILToken()); @@ -779,10 +779,10 @@ private void ImportBasicBlock(BasicBlock basicBlock) ImportLdToken(ReadILToken()); break; case ILOpcode.conv_u2: - ImportConvert(WellKnownType.UInt16, false, false); + ImportConvert(WellKnownType.UInt16, false, true); break; case ILOpcode.conv_u1: - ImportConvert(WellKnownType.Byte, false, false); + ImportConvert(WellKnownType.Byte, false, true); break; case ILOpcode.conv_i: ImportConvert(WellKnownType.IntPtr, false, false); @@ -791,7 +791,7 @@ private void ImportBasicBlock(BasicBlock basicBlock) ImportConvert(WellKnownType.IntPtr, true, false); break; case ILOpcode.conv_ovf_u: - ImportConvert(WellKnownType.UIntPtr, true, false); + ImportConvert(WellKnownType.UIntPtr, true, true); break; case ILOpcode.add_ovf: case ILOpcode.add_ovf_un: diff --git a/src/coreclr/src/tools/ILVerify/README.md b/src/coreclr/src/tools/ILVerify/README.md index 7f61e432569b..ea3d629756d4 100644 --- a/src/coreclr/src/tools/ILVerify/README.md +++ b/src/coreclr/src/tools/ILVerify/README.md @@ -8,11 +8,10 @@ The main users of this tool are people working on software that emits MSIL code. ## How to use ILVerify -ILVerify is published as a global tool in the .NET runtime nightly feed. Install it by running: +ILVerify is published as a global tool [package](https://www.nuget.org/packages/dotnet-ilverify/). Install it by running: ``` -dotnet new tool-manifest -dotnet tool install dotnet-ilverify --version 5.0.0-preview* --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json +dotnet tool install --global dotnet-ilverify ``` Example of use: diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs index f9c8c1cf16d2..03ef31b3888e 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs @@ -74,9 +74,6 @@ public override CompilationBuilder UseBackendOptions(IEnumerable options builder.Add(new KeyValuePair(name, value)); } - // As we always use an AltJit to compile, tell the jit to always generate code - builder.Add(new KeyValuePair("AltJitNgen", "*")); - _ryujitOptions = builder.ToArray(); return this; diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs index 90f76588691e..22d2d8515f78 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs @@ -2341,6 +2341,11 @@ private HRESULT allocMethodBlockCounts(uint count, ref BlockCounts* pBlockCounts private HRESULT getMethodBlockCounts(CORINFO_METHOD_STRUCT_* ftnHnd, ref uint pCount, ref BlockCounts* pBlockCounts, ref uint pNumRuns) { throw new NotImplementedException("getBBProfileData"); } + private CORINFO_CLASS_STRUCT_* getLikelyClass(CORINFO_METHOD_STRUCT_* ftnHnd, CORINFO_CLASS_STRUCT_* baseHnd, uint IlOffset, ref uint pLikelihood, ref uint pNumberOfClasses) + { + return null; + } + private void getAddressOfPInvokeTarget(CORINFO_METHOD_STRUCT_* method, ref CORINFO_CONST_LOOKUP pLookup) { MethodDesc methodDesc = HandleToObject(method); diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs index 1f970811dbf4..63c1024b2516 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs @@ -103,7 +103,6 @@ public GcInfo(byte[] image, int offset, Machine machine, ushort majorVersion) Version = ReadyToRunVersionToGcInfoVersion(majorVersion); int bitOffset = offset * 8; - int startBitOffset = bitOffset; ParseHeaderFlags(image, ref bitOffset); @@ -185,17 +184,23 @@ public GcInfo(byte[] image, int offset, Machine machine, ushort majorVersion) SlotTable = new GcSlotTable(image, machine, _gcInfoTypes, ref bitOffset); - // Try partially interruptible first - if (NumSafePoints > 0) + if (SlotTable.NumSlots > 0) { - LiveSlotsAtSafepoints = GetLiveSlotsAtSafepoints(image, ref bitOffset); - } - else - { - Transitions = GetTransitions(image, ref bitOffset); + if (NumSafePoints > 0) + { + // Partially interruptible code + LiveSlotsAtSafepoints = GetLiveSlotsAtSafepoints(image, ref bitOffset); + } + else + { + // Fully interruptible code + Debug.Assert(NumInterruptibleRanges > 0); + Transitions = GetTransitions(image, ref bitOffset); + } } - Size = bitOffset - startBitOffset; + int nextByteOffset = (bitOffset + 7) >> 3; + Size = nextByteOffset - offset; } public override string ToString() @@ -482,7 +487,7 @@ private List> GetLiveSlotsAtSafepoints(byte[] image, ref int bi /// /// based on end of GcInfoDecoder::EnumerateLiveSlots and GcInfoEncoder::Build /// - public Dictionary> GetTransitions(byte[] image, ref int bitOffset) + private Dictionary> GetTransitions(byte[] image, ref int bitOffset) { int totalInterruptibleLength = 0; if (NumInterruptibleRanges == 0) @@ -511,8 +516,8 @@ private List> GetLiveSlotsAtSafepoints(byte[] image, ref int bi chunkPointers[i] = NativeReader.ReadBits(image, numBitsPerPointer, ref bitOffset); } - // Offset to m_Info2 containing all the info on register liveness - int info2Offset = (int)Math.Ceiling(bitOffset / 8.0) * 8; + // Offset to m_Info2 containing all the info on register liveness, which starts at the next byte + int info2Offset = (bitOffset + 7) & ~7; List transitions = new List(); bool[] liveAtEnd = new bool[SlotTable.NumTracked]; // true if slot is live at the end of the chunk diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs index 4d0840836efd..19acb658f62d 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs @@ -83,9 +83,11 @@ public abstract class BaseGcInfo /// /// A runtime function corresponds to a contiguous fragment of code that implements a method. /// + /// + /// Based on src/pal/inc/pal.h _RUNTIME_FUNCTION + /// public class RuntimeFunction { - // based on src / pal / inc / pal.h _RUNTIME_FUNCTION private ReadyToRunReader _readyToRunReader; private EHInfo _ehInfo; private DebugInfo _debugInfo; @@ -184,8 +186,7 @@ internal ReadyToRunReader ReadyToRunReader int unwindRva, int codeOffset, ReadyToRunMethod method, - BaseUnwindInfo unwindInfo, - Func gcInfo) + BaseUnwindInfo unwindInfo) { _readyToRunReader = readyToRunReader; @@ -196,7 +197,6 @@ internal ReadyToRunReader ReadyToRunReader Method = method; UnwindInfo = unwindInfo; CodeOffset = codeOffset; - method.GetGcInfo = gcInfo; } private void EnsureInitialized() @@ -213,17 +213,17 @@ private int GetSize() { return EndAddress - StartAddress; } - else if (UnwindInfo is x86.UnwindInfo) + else if (UnwindInfo is x86.UnwindInfo x86Info) { - return (int)((x86.UnwindInfo)UnwindInfo).FunctionLength; + return (int)x86Info.FunctionLength; } - else if (UnwindInfo is Arm.UnwindInfo) + else if (UnwindInfo is Arm.UnwindInfo armInfo) { - return (int)((Arm.UnwindInfo)UnwindInfo).FunctionLength; + return (int)armInfo.FunctionLength; } - else if (UnwindInfo is Arm64.UnwindInfo) + else if (UnwindInfo is Arm64.UnwindInfo arm64Info) { - return (int)((Arm64.UnwindInfo)UnwindInfo).FunctionLength; + return (int)arm64Info.FunctionLength; } else if (Method.GcInfo != null) { @@ -300,7 +300,7 @@ private void EnsureRuntimeFunctions() /// public int EntryPointRuntimeFunctionId { get; set; } - public Func GetGcInfo { get; set; } + public int GcInfoRva { get; set; } public BaseGcInfo GcInfo { @@ -445,9 +445,18 @@ public IReadOnlyList Fixups private void EnsureInitialized() { - if (_gcInfo == null && GetGcInfo != null) + if (_gcInfo == null && GcInfoRva != 0) { - _gcInfo = GetGcInfo(); + int gcInfoOffset = _readyToRunReader.CompositeReader.GetOffset(GcInfoRva); + if (_readyToRunReader.Machine == Machine.I386) + { + _gcInfo = new x86.GcInfo(_readyToRunReader.Image, gcInfoOffset, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion); + } + else + { + // Arm and Arm64 use the same GcInfo format as Amd64 + _gcInfo = new Amd64.GcInfo(_readyToRunReader.Image, gcInfoOffset, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion); + } } } @@ -507,8 +516,8 @@ private void ParseRuntimeFunctions() int runtimeFunctionSize = _readyToRunReader.CalculateRuntimeFunctionSize(); int runtimeFunctionOffset = _readyToRunReader.CompositeReader.GetOffset(_readyToRunReader.ReadyToRunHeader.Sections[ReadyToRunSectionType.RuntimeFunctions].RelativeVirtualAddress); int curOffset = runtimeFunctionOffset + runtimeFunctionId * runtimeFunctionSize; - Func gcInfo = default(Func); int codeOffset = 0; + for (int i = 0; i < RuntimeFunctionCount; i++) { int startRva = NativeReader.ReadInt32(_readyToRunReader.Image, ref curOffset); @@ -527,36 +536,32 @@ private void ParseRuntimeFunctions() int unwindOffset = _readyToRunReader.CompositeReader.GetOffset(unwindRva); BaseUnwindInfo unwindInfo = null; - if (_readyToRunReader.Machine == Machine.Amd64) + if (_readyToRunReader.Machine == Machine.I386) { - unwindInfo = new Amd64.UnwindInfo(_readyToRunReader.Image, unwindOffset); - if (i == 0) - { - gcInfo = new Func(() => new Amd64.GcInfo(_readyToRunReader.Image, unwindOffset + unwindInfo.Size, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion)); - } + unwindInfo = new x86.UnwindInfo(_readyToRunReader.Image, unwindOffset); } - else if (_readyToRunReader.Machine == Machine.I386) + else if (_readyToRunReader.Machine == Machine.Amd64) { - unwindInfo = new x86.UnwindInfo(_readyToRunReader.Image, unwindOffset); - if (i == 0) - { - gcInfo = new Func(() => new x86.GcInfo(_readyToRunReader.Image, unwindOffset, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion)); - } + unwindInfo = new Amd64.UnwindInfo(_readyToRunReader.Image, unwindOffset); } else if (_readyToRunReader.Machine == Machine.ArmThumb2) { unwindInfo = new Arm.UnwindInfo(_readyToRunReader.Image, unwindOffset); - if (i == 0) - { - gcInfo = new Func(() => new Amd64.GcInfo(_readyToRunReader.Image, unwindOffset + unwindInfo.Size, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion)); // Arm and Arm64 use the same GcInfo format as x6 - } } else if (_readyToRunReader.Machine == Machine.Arm64) { unwindInfo = new Arm64.UnwindInfo(_readyToRunReader.Image, unwindOffset); - if (i == 0) + } + + if (i == 0 && unwindInfo != null) + { + if (_readyToRunReader.Machine == Machine.I386) + { + GcInfoRva = unwindRva; + } + else { - gcInfo = new Func(() => new Amd64.GcInfo(_readyToRunReader.Image, unwindOffset + unwindInfo.Size, _readyToRunReader.Machine, _readyToRunReader.ReadyToRunHeader.MajorVersion)); + GcInfoRva = unwindRva + unwindInfo.Size; } } @@ -568,8 +573,7 @@ private void ParseRuntimeFunctions() unwindRva, codeOffset, this, - unwindInfo, - gcInfo); + unwindInfo); _runtimeFunctions.Add(rtf); runtimeFunctionId++; diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs index f0e843174c54..e2e888cf2e95 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs @@ -47,6 +47,36 @@ public InstanceMethod(byte bucket, ReadyToRunMethod method) } } + public class ReadyToRunAssembly + { + private ReadyToRunReader _reader; + internal List _availableTypes; + internal List _methods; + + internal ReadyToRunAssembly(ReadyToRunReader reader) + { + _reader = reader; + } + + public IReadOnlyList AvailableTypes + { + get + { + _reader.EnsureAvailableTypes(); + return _availableTypes; + } + } + + public IReadOnlyList Methods + { + get + { + _reader.EnsureMethods(); + return _methods; + } + } + } + public sealed class ReadyToRunReader { private const string SystemModuleName = "System.Private.CoreLib"; @@ -73,6 +103,7 @@ public sealed class ReadyToRunReader private int _readyToRunHeaderRVA; private ReadyToRunHeader _readyToRunHeader; private List _readyToRunAssemblyHeaders; + private List _readyToRunAssemblies; // DebugInfo private Dictionary _runtimeFunctionIdToDebugOffset; @@ -86,16 +117,12 @@ public sealed class ReadyToRunReader private Dictionary _runtimeFunctionToEHInfo; // Methods - private Dictionary> _methods; private List _instanceMethods; // ImportSections private List _importSections; private Dictionary _importSignatures; - // AvailableType - private Dictionary> _availableTypes; - // CompilerIdentifier private string _compilerIdentifier; @@ -228,15 +255,12 @@ public IReadOnlyList ReadyToRunAssemblyHeaders } } - /// - /// The runtime functions and method signatures of each method - /// - public Dictionary> Methods + public IReadOnlyList ReadyToRunAssemblies { get { - EnsureMethods(); - return _methods; + EnsureHeader(); + return _readyToRunAssemblies; } } @@ -252,20 +276,6 @@ public IReadOnlyList InstanceMethods } } - /// - /// The available types from READYTORUN_SECTION_AVAILABLE_TYPES - /// - public Dictionary> AvailableTypes - { - - get - { - EnsureAvailableTypes(); - return _availableTypes; - } - - } - /// /// The compiler identifier string from READYTORUN_SECTION_COMPILER_IDENTIFIER /// @@ -411,14 +421,14 @@ private unsafe void Initialize(IAssemblyMetadata metadata) } } - private void EnsureMethods() + internal void EnsureMethods() { - if (_methods != null) + EnsureHeader(); + if (_readyToRunAssemblies[0]._methods != null) { return; } - _methods = new Dictionary>(); _instanceMethods = new List(); if (ReadyToRunHeader.Sections.TryGetValue(ReadyToRunSectionType.RuntimeFunctions, out ReadyToRunSection runtimeFunctionSection)) @@ -443,13 +453,10 @@ private void EnsureEntrypointRuntimeFunctionToReadyToRunMethodDict() if (_runtimeFunctionToMethod == null) { _runtimeFunctionToMethod = new Dictionary(); - foreach (var section in _methods) + foreach (var method in Methods) { - foreach (var method in section.Value) - { - if (!_runtimeFunctionToMethod.ContainsKey(method.EntryPointRuntimeFunctionId)) - _runtimeFunctionToMethod.Add(method.EntryPointRuntimeFunctionId, method); - } + if (!_runtimeFunctionToMethod.ContainsKey(method.EntryPointRuntimeFunctionId)) + _runtimeFunctionToMethod.Add(method.EntryPointRuntimeFunctionId, method); } } } @@ -555,10 +562,15 @@ private unsafe void EnsureHeader() int r2rHeaderOffset = GetOffset(_readyToRunHeaderRVA); _readyToRunHeader = new ReadyToRunHeader(Image, _readyToRunHeaderRVA, r2rHeaderOffset); + _readyToRunAssemblies = new List(); if (_composite) { ParseComponentAssemblies(); } + else + { + _readyToRunAssemblies.Add(new ReadyToRunAssembly(this)); + } } private void EnsureDebugInfo() @@ -693,6 +705,8 @@ private void ParseMethodDefEntrypoints(ActionSet to true for each runtime function index representing a method entrypoint private void ParseMethodDefEntrypointsSection(ReadyToRunSection section, IAssemblyMetadata componentReader, bool[] isEntryPoint) { + int assemblyIndex = GetAssemblyIndex(section); + _readyToRunAssemblies[assemblyIndex]._methods = new List(); int methodDefEntryPointsOffset = GetOffset(section.RelativeVirtualAddress); NativeArray methodEntryPoints = new NativeArray(Image, (uint)methodDefEntryPointsOffset); uint nMethodEntryPoints = methodEntryPoints.GetCount(); @@ -713,12 +727,7 @@ private void ParseMethodDefEntrypointsSection(ReadyToRunSection section, IAssemb throw new BadImageFormatException("EntryPointRuntimeFunctionId out of bounds"); } isEntryPoint[method.EntryPointRuntimeFunctionId] = true; - if (!_methods.TryGetValue(section, out List sectionMethods)) - { - sectionMethods = new List(); - _methods.Add(section, sectionMethods); - } - sectionMethods.Add(method); + _readyToRunAssemblies[assemblyIndex]._methods.Add(method); } } } @@ -746,7 +755,7 @@ private void ParseMethodDefEntrypointsSection(ReadyToRunSection section, IAssemb GetRuntimeFunctionIndexFromOffset(offset, out runtimeFunctionId, out fixupOffset); ReadyToRunMethod r2rMethod = _runtimeFunctionToMethod[runtimeFunctionId]; var customMethod = provider.GetMethodFromMethodDef(metadataReader.MetadataReader, MetadataTokens.MethodDefinitionHandle((int)rid), default(TType)); - + if (!Object.ReferenceEquals(customMethod, null) && !foundMethods.ContainsKey(customMethod)) foundMethods.Add(customMethod, r2rMethod); } @@ -865,20 +874,23 @@ private void ParseInstanceMethodEntrypoints(bool[] isEntryPoint) { isEntryPoint[method.EntryPointRuntimeFunctionId] = true; } - if (!Methods.TryGetValue(instMethodEntryPointSection, out List sectionMethods)) - { - sectionMethods = new List(); - Methods.Add(instMethodEntryPointSection, sectionMethods); - } - sectionMethods.Add(method); _instanceMethods.Add(new InstanceMethod(curParser.LowHashcode, method)); curParser = allEntriesEnum.GetNext(); } } + public IEnumerable Methods + { + get + { + EnsureMethods(); + return _readyToRunAssemblies.SelectMany(assembly => assembly.Methods).Concat(_instanceMethods.Select(im => im.Method)); + } + } + private void CountRuntimeFunctions(bool[] isEntryPoint) { - foreach (ReadyToRunMethod method in Methods.Values.SelectMany(sectionMethods => sectionMethods)) + foreach (ReadyToRunMethod method in Methods) { int runtimeFunctionId = method.EntryPointRuntimeFunctionId; if (runtimeFunctionId == -1) @@ -895,20 +907,41 @@ private void CountRuntimeFunctions(bool[] isEntryPoint) } } + public int GetAssemblyIndex(ReadyToRunSection section) + { + EnsureHeader(); + if (_composite) + { + for (int assemblyIndex = 0; assemblyIndex < _readyToRunAssemblyHeaders.Count; assemblyIndex++) + { + ReadyToRunSection toMatch; + if (_readyToRunAssemblyHeaders[assemblyIndex].Sections.TryGetValue(section.Type, out toMatch) && section.RelativeVirtualAddress == toMatch.RelativeVirtualAddress) + { + return assemblyIndex; + } + } + return -1; + } + else + { + return 0; + } + } + /// /// Iterates through a native hashtable to get all RIDs /// - private void EnsureAvailableTypes() + internal void EnsureAvailableTypes() { - if (_availableTypes != null) + EnsureHeader(); + if (_readyToRunAssemblies[0]._availableTypes != null) { return; } - _availableTypes = new Dictionary>(); ReadyToRunSection availableTypesSection; if (ReadyToRunHeader.Sections.TryGetValue(ReadyToRunSectionType.AvailableTypes, out availableTypesSection)) { - ParseAvailableTypesSection(availableTypesSection, GetGlobalMetadata()); + ParseAvailableTypesSection(0, availableTypesSection, GetGlobalMetadata()); } else if (_readyToRunAssemblyHeaders != null) { @@ -917,7 +950,7 @@ private void EnsureAvailableTypes() if (_readyToRunAssemblyHeaders[assemblyIndex].Sections.TryGetValue( ReadyToRunSectionType.AvailableTypes, out availableTypesSection)) { - ParseAvailableTypesSection(availableTypesSection, OpenReferenceAssembly(assemblyIndex + 1)); + ParseAvailableTypesSection(assemblyIndex, availableTypesSection, OpenReferenceAssembly(assemblyIndex + 1)); } } } @@ -928,8 +961,9 @@ private void EnsureAvailableTypes() /// as available types are stored separately for each component assembly of the composite R2R executable. /// /// - private void ParseAvailableTypesSection(ReadyToRunSection availableTypesSection, IAssemblyMetadata metadataReader) + private void ParseAvailableTypesSection(int assemblyIndex, ReadyToRunSection availableTypesSection, IAssemblyMetadata metadataReader) { + _readyToRunAssemblies[assemblyIndex]._availableTypes = new List(); int availableTypesOffset = GetOffset(availableTypesSection.RelativeVirtualAddress); NativeParser parser = new NativeParser(Image, (uint)availableTypesOffset); NativeHashtable availableTypes = new NativeHashtable(Image, parser, (uint)(availableTypesOffset + availableTypesSection.Size)); @@ -946,23 +980,14 @@ private void ParseAvailableTypesSection(ReadyToRunSection availableTypesSection, { ExportedTypeHandle exportedTypeHandle = MetadataTokens.ExportedTypeHandle((int)rid); string exportedTypeName = GetExportedTypeFullName(metadataReader.MetadataReader, exportedTypeHandle); - if (!AvailableTypes.TryGetValue(availableTypesSection, out List sectionTypes)) - { - sectionTypes = new List(); - AvailableTypes.Add(availableTypesSection, sectionTypes); - } - sectionTypes.Add("exported " + exportedTypeName); + + _readyToRunAssemblies[assemblyIndex]._availableTypes.Add("exported " + exportedTypeName); } else { TypeDefinitionHandle typeDefHandle = MetadataTokens.TypeDefinitionHandle((int)rid); string typeDefName = MetadataNameFormatter.FormatHandle(metadataReader.MetadataReader, typeDefHandle); - if (!AvailableTypes.TryGetValue(availableTypesSection, out List sectionTypes)) - { - sectionTypes = new List(); - AvailableTypes.Add(availableTypesSection, sectionTypes); - } - sectionTypes.Add(typeDefName); + _readyToRunAssemblies[assemblyIndex]._availableTypes.Add(typeDefName); } curParser = allEntriesEnum.GetNext(); @@ -1012,6 +1037,7 @@ private void ParseComponentAssemblies() ReadyToRunCoreHeader assemblyHeader = new ReadyToRunCoreHeader(Image, ref headerOffset); _readyToRunAssemblyHeaders.Add(assemblyHeader); + _readyToRunAssemblies.Add(new ReadyToRunAssembly(this)); } } diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs index 6c6b2f05b1a4..938103f3fa6c 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs @@ -1669,6 +1669,14 @@ private void ParseHelper(StringBuilder builder) builder.Append("NEW_MULTI_DIM_ARR__NON_VAR_ARG"); break; + case ReadyToRunHelper.MonitorEnter: + builder.Append("MONITOR_ENTER"); + break; + + case ReadyToRunHelper.MonitorExit: + builder.Append("MONITOR_EXIT"); + break; + // Helpers used with generic handle lookup cases case ReadyToRunHelper.NewObject: builder.Append("NEW_OBJECT"); @@ -1879,9 +1887,7 @@ private void ParseHelper(StringBuilder builder) break; default: - // TODO: Something is wrong with helper signature parsing - builder.Append(string.Format("Unknown helper: {0:X2}", helperType)); - break; + throw new BadImageFormatException(); } } diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs index b2be1ae712a5..a40afd15e9eb 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs @@ -16,8 +16,9 @@ public class UnwindInfo : BaseUnwindInfo public UnwindInfo(byte[] image, int offset) { + int startOffset = offset; FunctionLength = NativeReader.DecodeUnsignedGc(image, ref offset); - Size = sizeof(int); + Size = offset - startOffset; } public override string ToString() diff --git a/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj b/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj index ad11c3afa816..db88de8ef97b 100644 --- a/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj +++ b/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj @@ -12,8 +12,11 @@ $(RuntimeBinDir)/crossgen2 true false - linux-x64;linux-musl-x64;win-x64 + linux-x64;linux-musl-x64;osx-x64;win-x64 Debug;Release;Checked + true + + true @@ -63,13 +66,7 @@ $(TargetOSComponent)_$(TargetArchitecture)_$(TargetArchitecture) $(TargetOSComponent)_$(TargetArchitecture)_$(CrossHostArch) - lib - - .dll - .so - .dylib - - $(LibraryNamePrefix)jitinterface_$(TargetArchitecture)$(LibraryNameExtension) + $(LibPrefix)jitinterface_$(TargetArchitecture)$(LibSuffix) @@ -79,7 +76,7 @@ Link="%(FileName)%(Extension)" /> - - @@ -104,8 +101,8 @@ - + Exclude="$(RuntimeBinDir)\crossgen2\$(JitInterfaceLibraryName);$(RuntimeBinDir)\crossgen2\$(LibPrefix)clrjit_*$(LibSuffix)" /> + @@ -117,33 +114,16 @@ - - - - - - .a - .lib - - - - - - - - - - diff --git a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h index ecb7e88915b7..37828567f2b6 100644 --- a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h +++ b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h @@ -171,6 +171,7 @@ struct JitInterfaceCallbacks void (* reportFatalError)(void * thisHandle, CorInfoException** ppException, int result); int (* allocMethodBlockCounts)(void * thisHandle, CorInfoException** ppException, unsigned int count, void** pBlockCounts); int (* getMethodBlockCounts)(void * thisHandle, CorInfoException** ppException, void* ftnHnd, unsigned int* pCount, void** pBlockCounts, unsigned int* pNumRuns); + void* (* getLikelyClass)(void * thisHandle, CorInfoException** ppException, void* ftnHnd, void* baseHnd, unsigned int ilOffset, unsigned int* pLikelihood, unsigned int* pNumberOfClasses); void (* recordCallSite)(void * thisHandle, CorInfoException** ppException, unsigned int instrOffset, void* callSig, void* methodHandle); void (* recordRelocation)(void * thisHandle, CorInfoException** ppException, void* location, void* target, unsigned short fRelocType, unsigned short slotNum, int addlDelta); unsigned short (* getRelocTypeHint)(void * thisHandle, CorInfoException** ppException, void* target); @@ -1608,6 +1609,15 @@ class JitInterfaceWrapper return _ret; } + virtual void* getLikelyClass(void* ftnHnd, void* baseHnd, unsigned int ilOffset, unsigned int* pLikelihood, unsigned int* pNumberOfClasses) + { + CorInfoException* pException = nullptr; + void* _ret = _callbacks->getLikelyClass(_thisHandle, &pException, ftnHnd, baseHnd, ilOffset, pLikelihood, pNumberOfClasses); + if (pException != nullptr) + throw pException; + return _ret; + } + virtual void recordCallSite(unsigned int instrOffset, void* callSig, void* methodHandle) { CorInfoException* pException = nullptr; diff --git a/src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp b/src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp index 34cb99623b9a..f922a50c4a39 100644 --- a/src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp +++ b/src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp @@ -26,11 +26,11 @@ class CORJIT_FLAGS uint64_t corJitFlags; }; -static const GUID JITEEVersionIdentifier = { /* a0184d06-a562-43f6-94ad-44627db87310 */ - 0xa0184d06, - 0xa562, - 0x43f6, - {0x94, 0xad, 0x44, 0x62, 0x7d, 0xb8, 0x73, 0x10} +static const GUID JITEEVersionIdentifier = { /* 0d235fe4-65a1-487a-8553-c845496da901 */ + 0x0d235fe4, + 0x65a1, + 0x487a, + {0x85, 0x53, 0xc8, 0x45, 0x49, 0x6d, 0xa9, 0x01} }; class Jit diff --git a/src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs b/src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs index 68a0febb281d..d817bd437b44 100644 --- a/src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs +++ b/src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs @@ -120,7 +120,7 @@ public static void Prepare(StreamReader jittraceStream, out int successfulPrepar int signatureLen = int.Parse(methodStrComponents[2]); string[] methodInstantiationArgComponents = SplitAndUnescape(methodStrComponents[3], innerCsvEscapeChar, innerCsvEscapeCharArray); int genericMethodArgCount = int.Parse(methodInstantiationArgComponents[0]); - Type[] methodArgs = genericMethodArgCount != 0 ? new Type[genericMethodArgCount] : Array.Empty(); + Type[] methodArgs = genericMethodArgCount != 0 ? new Type[genericMethodArgCount] : Type.EmptyTypes; bool abortMethodDiscovery = false; for (int iMethodArg = 0; iMethodArg < genericMethodArgCount; iMethodArg++) { diff --git a/src/coreclr/src/tools/r2rdump/R2RDiff.cs b/src/coreclr/src/tools/r2rdump/R2RDiff.cs index 25e6dd9d6a2d..ff660a9c1dc8 100644 --- a/src/coreclr/src/tools/r2rdump/R2RDiff.cs +++ b/src/coreclr/src/tools/r2rdump/R2RDiff.cs @@ -90,13 +90,28 @@ public void Run() } } + private bool TryGetMethods(ReadyToRunReader reader, ReadyToRunSection section, out IReadOnlyList methods) + { + int assemblyIndex = reader.GetAssemblyIndex(section); + if (assemblyIndex == -1) + { + methods = null; + return false; + } + else + { + methods = reader.ReadyToRunAssemblies[assemblyIndex].Methods; + return true; + } + } + private void DiffMethodsForModule(ReadyToRunSection leftSection, ReadyToRunSection rightSection) { - if (!_leftDumper.Reader.Methods.TryGetValue(leftSection, out List leftSectionMethods)) + if (!TryGetMethods(_leftDumper.Reader, leftSection, out IReadOnlyList leftSectionMethods)) { leftSectionMethods = new List(); } - if (!_rightDumper.Reader.Methods.TryGetValue(rightSection, out List rightSectionMethods)) + if (!TryGetMethods(_rightDumper.Reader, rightSection, out IReadOnlyList rightSectionMethods)) { rightSectionMethods = new List(); } @@ -290,7 +305,7 @@ private void ShowDiff(Dictionary leftObjects, Dictionary methodMap = new Dictionary(); - if (reader.Methods.TryGetValue(section, out List sectionMethods)) + if (TryGetMethods(reader, section, out IReadOnlyList sectionMethods)) { foreach (ReadyToRunMethod method in sectionMethods) { @@ -309,7 +324,7 @@ private void ShowDiff(Dictionary leftObjects, DictionarySet of common signatures of methods to dump private void DumpCommonMethods(Dumper dumper, ReadyToRunSection section, Dictionary signatureFilter) { - if (dumper.Reader.Methods.TryGetValue(section, out List sectionMethods)) + if (!TryGetMethods(dumper.Reader, section, out IReadOnlyList sectionMethods)) { IEnumerable filteredMethods = sectionMethods .Where(method => signatureFilter.ContainsKey(method.SignatureString)) diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.cs b/src/coreclr/src/tools/r2rdump/R2RDump.cs index fa21ad441827..d2909a6e1bc4 100644 --- a/src/coreclr/src/tools/r2rdump/R2RDump.cs +++ b/src/coreclr/src/tools/r2rdump/R2RDump.cs @@ -176,7 +176,7 @@ public IEnumerable NormalizedSections(ReadyToRunCoreHeader he public IEnumerable NormalizedMethods() { - IEnumerable methods = _r2r.Methods.Values.SelectMany(sectionMethods => sectionMethods); + IEnumerable methods = _r2r.Methods; if (_options.Normalize) { methods = methods.OrderBy((m) => m.SignatureString); @@ -492,7 +492,7 @@ private bool Match(ReadyToRunSection section, string query) public IList FindMethod(ReadyToRunReader r2r, string query, bool exact) { List res = new List(); - foreach (ReadyToRunMethod method in r2r.Methods.Values.SelectMany(sectionMethods => sectionMethods)) + foreach (ReadyToRunMethod method in r2r.Methods) { if (Match(method, query, exact)) { @@ -529,7 +529,7 @@ public IList FindSection(ReadyToRunReader r2r, string query) /// The name or value to search for public RuntimeFunction FindRuntimeFunction(ReadyToRunReader r2r, int rtfQuery) { - foreach (ReadyToRunMethod m in r2r.Methods.Values.SelectMany(sectionMethods => sectionMethods)) + foreach (ReadyToRunMethod m in r2r.Methods) { foreach (RuntimeFunction rtf in m.RuntimeFunctions) { diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.csproj b/src/coreclr/src/tools/r2rdump/R2RDump.csproj index 0b575b257ff2..7d1a73bff7cf 100644 --- a/src/coreclr/src/tools/r2rdump/R2RDump.csproj +++ b/src/coreclr/src/tools/r2rdump/R2RDump.csproj @@ -4,7 +4,8 @@ 1.0.0.0 true Exe - AnyCPU + x64;x86;arm64;arm + AnyCPU Open true $(NetCoreAppToolCurrent) @@ -12,18 +13,18 @@ 8002,NU1701 win-x64;win-x86 $(RuntimeBinDir)/R2RDump - AnyCPU;x64 + - - 1.0.1-prerelease-00005 - $(SystemCommandLineVersion) + + PreserveNewest + diff --git a/src/coreclr/src/tools/r2rdump/TextDumper.cs b/src/coreclr/src/tools/r2rdump/TextDumper.cs index 682abd7c05f6..bf36df822ab2 100644 --- a/src/coreclr/src/tools/r2rdump/TextDumper.cs +++ b/src/coreclr/src/tools/r2rdump/TextDumper.cs @@ -133,7 +133,7 @@ internal override void DumpEntryPoints() internal override void DumpAllMethods() { WriteDivider("R2R Methods"); - _writer.WriteLine($"{_r2r.Methods.Sum(kvp => kvp.Value.Count)} methods"); + _writer.WriteLine($"{_r2r.Methods.Count()} methods"); SkipLine(); foreach (ReadyToRunMethod method in NormalizedMethods()) { @@ -161,7 +161,7 @@ internal override void DumpMethod(ReadyToRunMethod method) if (_options.Raw) { - DumpBytes(gcInfo.Offset, (uint)gcInfo.Size, "", false); + DumpBytes(method.GcInfoRva, (uint)gcInfo.Size); } } SkipLine(); @@ -226,9 +226,8 @@ internal override void DumpDisasm(RuntimeFunction rtf, int imageOffset) } _writer.WriteLine(); } - BaseGcInfo gcInfo = (_options.HideTransitions ? null : rtf.Method?.GcInfo); - if (gcInfo != null && gcInfo.Transitions.TryGetValue(codeOffset, out List transitionsForOffset)) + if (gcInfo != null && gcInfo.Transitions != null && gcInfo.Transitions.TryGetValue(codeOffset, out List transitionsForOffset)) { string[] formattedTransitions = new string[transitionsForOffset.Count]; for (int transitionIndex = 0; transitionIndex < formattedTransitions.Length; transitionIndex++) @@ -304,10 +303,11 @@ internal override void DumpSectionContents(ReadyToRunSection section) _writer.WriteLine(availableTypes.ToString()); } - if (_r2r.AvailableTypes.TryGetValue(section, out List sectionTypes)) + int assemblyIndex1 = _r2r.GetAssemblyIndex(section); + if (assemblyIndex1 != -1) { _writer.WriteLine(); - foreach (string name in sectionTypes) + foreach (string name in _r2r.ReadyToRunAssemblies[assemblyIndex1].AvailableTypes) { _writer.WriteLine(name); } @@ -320,10 +320,11 @@ internal override void DumpSectionContents(ReadyToRunSection section) _writer.Write(methodEntryPoints.ToString()); } - if (_r2r.Methods.TryGetValue(section, out List sectionMethods)) + int assemblyIndex2 = _r2r.GetAssemblyIndex(section); + if (assemblyIndex2 != -1) { _writer.WriteLine(); - foreach (ReadyToRunMethod method in sectionMethods) + foreach (ReadyToRunMethod method in _r2r.ReadyToRunAssemblies[assemblyIndex2].Methods) { _writer.WriteLine($@"{MetadataTokens.GetToken(method.MethodHandle):X8}: {method.SignatureString}"); } diff --git a/src/coreclr/src/tools/r2rtest/BuildFolderSet.cs b/src/coreclr/src/tools/r2rtest/BuildFolderSet.cs index 4a7c94d829b3..89bc481a07d7 100644 --- a/src/coreclr/src/tools/r2rtest/BuildFolderSet.cs +++ b/src/coreclr/src/tools/r2rtest/BuildFolderSet.cs @@ -535,7 +535,7 @@ private void AddBuildFolderExecutions(List executionsToRun, BuildFo foreach (ProcessInfo[] compilation in folder.Compilations) { ProcessInfo runnerCompilation = compilation[(int)runner.Index]; - if (!runnerCompilation.Succeeded) + if (!runnerCompilation.IsEmpty && !runnerCompilation.Succeeded) { compilationsSucceeded = false; break; @@ -636,7 +636,7 @@ private void WriteBuildStatistics(StreamWriter logWriter) bool anyCompilationFailed = false; foreach (CompilerRunner runner in _compilerRunners) { - if (compilation[(int)runner.Index] != null) + if (!compilation[(int)runner.Index].IsEmpty) { CompilationOutcome outcome = GetCompilationOutcome(compilation[(int)runner.Index]); compilationOutcomes[(int)outcome, (int)runner.Index]++; diff --git a/src/coreclr/src/utilcode/stresslog.cpp b/src/coreclr/src/utilcode/stresslog.cpp index 7d01fc09ca6b..108080455d79 100644 --- a/src/coreclr/src/utilcode/stresslog.cpp +++ b/src/coreclr/src/utilcode/stresslog.cpp @@ -151,7 +151,7 @@ void StressLog::Initialize(unsigned facilities, unsigned level, unsigned maxByt return; } - theLog.lock = ClrCreateCriticalSection(CrstStressLog,(CrstFlags)(CRST_UNSAFE_ANYMODE|CRST_DEBUGGER_THREAD)); + theLog.lock = ClrCreateCriticalSection(CrstStressLog,(CrstFlags)(CRST_UNSAFE_ANYMODE|CRST_DEBUGGER_THREAD|CRST_TAKEN_DURING_SHUTDOWN)); // StressLog::Terminate is going to free memory. if (maxBytesPerThread < STRESSLOG_CHUNK_SIZE) { diff --git a/src/coreclr/src/vm/appdomain.cpp b/src/coreclr/src/vm/appdomain.cpp index 1ba7c47cd50a..f703b4214cea 100644 --- a/src/coreclr/src/vm/appdomain.cpp +++ b/src/coreclr/src/vm/appdomain.cpp @@ -1517,11 +1517,6 @@ void SystemDomain::LoadBaseSystemClasses() // Load String g_pStringClass = CoreLibBinder::LoadPrimitiveType(ELEMENT_TYPE_STRING); -#ifdef FEATURE_UTF8STRING - // Load Utf8String - g_pUtf8StringClass = CoreLibBinder::GetClass(CLASS__UTF8_STRING); -#endif // FEATURE_UTF8STRING - #ifndef CROSSGEN_COMPILE ECall::PopulateManagedStringConstructors(); #endif // CROSSGEN_COMPILE diff --git a/src/coreclr/src/vm/bundle.cpp b/src/coreclr/src/vm/bundle.cpp index 3a204deb2cfb..373ab591b432 100644 --- a/src/coreclr/src/vm/bundle.cpp +++ b/src/coreclr/src/vm/bundle.cpp @@ -30,25 +30,26 @@ const SString &BundleFileLocation::Path() const return Bundle::AppBundle->Path(); } -Bundle::Bundle(LPCWSTR bundlePath, BundleProbe *probe) +Bundle::Bundle(LPCSTR bundlePath, BundleProbe *probe) { STANDARD_VM_CONTRACT; _ASSERTE(probe != nullptr); - m_path.Set(bundlePath); + m_path.SetUTF8(bundlePath); m_probe = probe; // The bundle-base path is the directory containing the single-file bundle. // When the Probe() function searches within the bundle, it masks out the basePath from the assembly-path (if found). - LPCWSTR pos = wcsrchr(bundlePath, DIRECTORY_SEPARATOR_CHAR_W); + LPCSTR pos = strrchr(bundlePath, DIRECTORY_SEPARATOR_CHAR_A); _ASSERTE(pos != nullptr); - size_t baseLen = pos - bundlePath + 1; // Include DIRECTORY_SEPARATOR_CHAR_W in m_basePath - m_basePath.Set(bundlePath, (COUNT_T)baseLen); + size_t baseLen = pos - bundlePath + 1; // Include DIRECTORY_SEPARATOR_CHAR_A in m_basePath + m_basePath.SetUTF8(bundlePath, (COUNT_T)baseLen); + m_basePathLength = (COUNT_T)baseLen; } -BundleFileLocation Bundle::Probe(LPCWSTR path, bool pathIsBundleRelative) const +BundleFileLocation Bundle::Probe(const SString& path, bool pathIsBundleRelative) const { STANDARD_VM_CONTRACT; @@ -59,17 +60,18 @@ BundleFileLocation Bundle::Probe(LPCWSTR path, bool pathIsBundleRelative) const // Bundle.Probe("path/to/exe/lib.dll") => m_probe("lib.dll") // Bundle.Probe("path/to/exe/and/some/more/lib.dll") => m_probe("and/some/more/lib.dll") + StackScratchBuffer scratchBuffer; + LPCSTR utf8Path(path.GetUTF8(scratchBuffer)); + if (!pathIsBundleRelative) { - size_t baseLen = m_basePath.GetCount(); - #ifdef TARGET_UNIX - if (wcsncmp(m_basePath, path, baseLen) == 0) + if (wcsncmp(m_basePath, path, m_basePath.GetCount()) == 0) #else - if (_wcsnicmp(m_basePath, path, baseLen) == 0) + if (_wcsnicmp(m_basePath, path, m_basePath.GetCount()) == 0) #endif // TARGET_UNIX { - path += baseLen; // m_basePath includes count for DIRECTORY_SEPARATOR_CHAR_W + utf8Path += m_basePathLength; // m_basePath includes count for DIRECTORY_SEPARATOR_CHAR_W } else { @@ -78,15 +80,14 @@ BundleFileLocation Bundle::Probe(LPCWSTR path, bool pathIsBundleRelative) const } } - m_probe(path, &loc.Offset, &loc.Size); + m_probe(utf8Path, &loc.Offset, &loc.Size); return loc; } -BundleFileLocation Bundle::ProbeAppBundle(LPCWSTR path, bool pathIsBundleRelative) +BundleFileLocation Bundle::ProbeAppBundle(const SString& path, bool pathIsBundleRelative) { STANDARD_VM_CONTRACT; return AppIsBundle() ? AppBundle->Probe(path, pathIsBundleRelative) : BundleFileLocation::Invalid(); } - diff --git a/src/coreclr/src/vm/ceeload.h b/src/coreclr/src/vm/ceeload.h index 4ac12e59f645..f87e84312548 100644 --- a/src/coreclr/src/vm/ceeload.h +++ b/src/coreclr/src/vm/ceeload.h @@ -3282,7 +3282,7 @@ class ReflectionModule : public Module void Destruct(); #endif // !DACCESS_COMPILE && !CROSSGEN_COMPILE - // Overides functions to access sections + // Overrides functions to access sections virtual TADDR GetIL(RVA target); virtual PTR_VOID GetRvaField(RVA rva, BOOL fZapped); diff --git a/src/coreclr/src/vm/classnames.h b/src/coreclr/src/vm/classnames.h index e2af51817f16..59e516d3e3a4 100644 --- a/src/coreclr/src/vm/classnames.h +++ b/src/coreclr/src/vm/classnames.h @@ -94,10 +94,6 @@ #define g_ThreadClassName "System.Threading.Thread" #define g_TypeClassName "System.Type" -#ifdef FEATURE_UTF8STRING -#define g_Utf8StringName "Utf8String" -#endif // FEATURE_UTF8STRING - #define g_VariantClassName "System.Variant" #define g_GuidClassName "System.Guid" diff --git a/src/coreclr/src/vm/codeman.cpp b/src/coreclr/src/vm/codeman.cpp index 8fb9fdea1197..c4f00736defb 100644 --- a/src/coreclr/src/vm/codeman.cpp +++ b/src/coreclr/src/vm/codeman.cpp @@ -1557,6 +1557,39 @@ struct JIT_LOAD_DATA // Here's the global data for JIT load and initialization state. JIT_LOAD_DATA g_JitLoadData; +// Validate that the name used to load the JIT is just a simple file name +// and does not contain something that could be used in a non-qualified path. +// For example, using the string "..\..\..\myjit.dll" we might attempt to +// load a JIT from the root of the drive. +// +// The minimal set of characters that we must check for and exclude are: +// '\\' - (backslash) +// '/' - (forward slash) +// ':' - (colon) +// +// Returns false if we find any of these characters in 'pwzJitName' +// Returns true if we reach the null terminator without encountering +// any of these characters. +// +static bool ValidateJitName(LPCWSTR pwzJitName) +{ + LPCWSTR pCurChar = pwzJitName; + wchar_t curChar; + do { + curChar = *pCurChar; + if ((curChar == '\\') || (curChar == '/') || (curChar == ':')) + { + // Return false if we find any of these character in 'pwzJitName' + return false; + } + pCurChar++; + } while (curChar != 0); + + // Return true; we have reached the null terminator + // + return true; +} + // LoadAndInitializeJIT: load the JIT dll into the process, and initialize it (call the UtilCode initialization function, // check the JIT-EE interface GUID, etc.) // @@ -1589,34 +1622,40 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I *phJit = NULL; *ppICorJitCompiler = NULL; - HRESULT hr = E_FAIL; - - PathString CoreClrFolderHolder; - bool havePath = false; - - if (GetClrModulePathName(CoreClrFolderHolder)) + if (pwzJitName == nullptr) { - // Load JIT from next to CoreCLR binary - havePath = true; + pJitLoadData->jld_hr = E_FAIL; + LOG((LF_JIT, LL_FATALERROR, "LoadAndInitializeJIT: pwzJitName is null")); + return; } - if (havePath && !CoreClrFolderHolder.IsEmpty()) + HRESULT hr = E_FAIL; + + if (ValidateJitName(pwzJitName)) { - SString::Iterator iter = CoreClrFolderHolder.End(); - BOOL findSep = CoreClrFolderHolder.FindBack(iter, DIRECTORY_SEPARATOR_CHAR_W); - if (findSep) + // Load JIT from next to CoreCLR binary + PathString CoreClrFolderHolder; + if (GetClrModulePathName(CoreClrFolderHolder) && !CoreClrFolderHolder.IsEmpty()) { - SString sJitName(pwzJitName); - CoreClrFolderHolder.Replace(iter + 1, CoreClrFolderHolder.End() - (iter + 1), sJitName); - - *phJit = CLRLoadLibrary(CoreClrFolderHolder.GetUnicode()); - if (*phJit != NULL) + SString::Iterator iter = CoreClrFolderHolder.End(); + BOOL findSep = CoreClrFolderHolder.FindBack(iter, DIRECTORY_SEPARATOR_CHAR_W); + if (findSep) { - hr = S_OK; + SString sJitName(pwzJitName); + CoreClrFolderHolder.Replace(iter + 1, CoreClrFolderHolder.End() - (iter + 1), sJitName); + + *phJit = CLRLoadLibrary(CoreClrFolderHolder.GetUnicode()); + if (*phJit != NULL) + { + hr = S_OK; + } } } } - + else + { + LOG((LF_JIT, LL_FATALERROR, "LoadAndInitializeJIT: invalid characters in %S\n", pwzJitName)); + } if (SUCCEEDED(hr)) { @@ -4367,7 +4406,17 @@ LPCWSTR ExecutionManager::GetJitName() { STANDARD_VM_CONTRACT; - return MAKEDLLNAME_W(W("clrjit")); + LPCWSTR pwzJitName = NULL; + + // Try to obtain a name for the jit library from the env. variable + IfFailThrow(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_JitName, const_cast(&pwzJitName))); + + if (NULL == pwzJitName) + { + pwzJitName = MAKEDLLNAME_W(W("clrjit")); + } + + return pwzJitName; } #endif // !FEATURE_MERGE_JIT_AND_ENGINE diff --git a/src/coreclr/src/vm/comcallablewrapper.cpp b/src/coreclr/src/vm/comcallablewrapper.cpp index 5907d36ff9a1..a0d8891616cc 100644 --- a/src/coreclr/src/vm/comcallablewrapper.cpp +++ b/src/coreclr/src/vm/comcallablewrapper.cpp @@ -380,23 +380,6 @@ bool IsOleAutDispImplRequiredForClass(MethodTable *pClass) return false; } -MethodTable* RefineProxy(OBJECTREF pServer) -{ - CONTRACT (MethodTable*) - { - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; - POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); - } - CONTRACT_END; - - MethodTable* pRefinedClass = NULL; - - - RETURN pRefinedClass; -} - //-------------------------------------------------------------------------- // This routine is called anytime a com method is invoked for the first time. // It is responsible for generating the real stub. @@ -906,31 +889,6 @@ SimpleComCallWrapper::~SimpleComCallWrapper() Cleanup(); } -//-------------------------------------------------------------------------- -// Creates a simple wrapper off the process heap (thus avoiding any debug -// memory tracking) and initializes the memory to zero -// static -//-------------------------------------------------------------------------- -// -SimpleComCallWrapper* SimpleComCallWrapper::CreateSimpleWrapper() -{ - CONTRACT (SimpleComCallWrapper*) - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - INJECT_FAULT(COMPlusThrowOM()); - POSTCONDITION(CheckPointer(RETVAL)); - } - CONTRACT_END; - - NewHolder pWrapper = new SimpleComCallWrapper; - memset (pWrapper, 0, sizeof(SimpleComCallWrapper)); - - pWrapper.SuppressRelease(); - RETURN pWrapper; -} - //-------------------------------------------------------------------------- // Init, with the MethodTable, pointer to the vtable of the interface // and the main ComCallWrapper if the interface needs it @@ -2007,13 +1965,13 @@ void ComCallWrapper::Cleanup() _ASSERTE(m_pSimpleWrapper); // Save it into a variable to observe a consistent state - LONGLONG llRefCount = m_pSimpleWrapper->GetRealRefCount(); + ULONG refCount = m_pSimpleWrapper->GetRefCount(); LOG((LF_INTEROP, LL_INFO100, "Calling ComCallWrapper::Cleanup on CCW 0x%p. cbRef = 0x%x\n", - this, GET_COM_REF(llRefCount))); + this, refCount)); - if (GET_COM_REF(llRefCount) != 0) + if (refCount != 0) { // _ASSERTE(g_fEEShutDown == TRUE); // could be either in shutdown or forced GC in appdomain unload @@ -2221,9 +2179,6 @@ ComCallWrapper* ComCallWrapper::CreateWrapper(OBJECTREF* ppObj, ComCallWrapperTe pServer = *ppObj; - // Force Refine the object if it is a transparent proxy - RefineProxy(pServer); - // grab the sync block from the server SyncBlock* pSyncBlock = pServer->GetSyncBlock(); @@ -2283,7 +2238,7 @@ ComCallWrapper* ComCallWrapper::CreateWrapper(OBJECTREF* ppObj, ComCallWrapperTe // copy from template pNewCCW = CopyFromTemplate(pTemplate, pWrapperCache, oh); - NewHolder pSimpleWrap = SimpleComCallWrapper::CreateSimpleWrapper(); + NewHolder pSimpleWrap = new SimpleComCallWrapper(); pSimpleWrap->InitNew(pServer, pWrapperCache, pNewCCW, pClassCCW, pSyncBlock, pTemplate); @@ -2488,78 +2443,6 @@ VOID __stdcall InvokeICustomQueryInterfaceGetInterface_CallBack(LPVOID ptr) } } -// Returns a covariant supertype of pMT with the given IID or NULL if not found. -static MethodTable *FindCovariantSubtype(MethodTable *pMT, REFIID riid) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(pMT->IsInterface() && pMT->HasVariance()); - } - CONTRACTL_END; - - Instantiation inst = pMT->GetInstantiation(); - - // we only support one type parameter - if (inst.GetNumArgs() != 1) - return NULL; - - // and it must be covariant - if (pMT->GetClass()->GetVarianceOfTypeParameter(0) != gpCovariant) - return NULL; - - TypeHandle thArg = inst[0]; - - // arrays are not allowed, valuetypes don't support covariance - if (thArg.IsTypeDesc() || thArg.IsArray() || thArg.IsValueType()) - return NULL; - - // if the argument is System.Object, there's no covariant supertype - if (thArg.IsObjectType()) - return NULL; - - GUID guid; - TypeHandle thBaseClass = thArg.GetParent(); - - // try base classes first (this includes System.Object if thArg is an interface) - while (!thBaseClass.IsNull()) - { - // The internal base classes do not have guid. Skip them to avoid confusing exception being - // thrown and swallowed inside GetGuidNoThrow. - if (thBaseClass != TypeHandle(g_pBaseCOMObject)) - { - Instantiation newInst(&thBaseClass, 1); - MethodTable *pItfMT = TypeHandle(pMT).Instantiate(newInst).AsMethodTable(); - - if (SUCCEEDED(pItfMT->GetGuidNoThrow(&guid, FALSE, FALSE)) && guid == riid) - { - return pItfMT; - } - } - - thBaseClass = thBaseClass.GetParent(); - } - - // now try implemented interfaces - MethodTable::InterfaceMapIterator it = thArg.AsMethodTable()->IterateInterfaceMap(); - while (it.Next()) - { - TypeHandle thNewArg = TypeHandle(it.GetInterface()); - Instantiation newInst(&thNewArg, 1); - - MethodTable *pItfMT = TypeHandle(pMT).Instantiate(newInst).AsMethodTable(); - - if (SUCCEEDED(pItfMT->GetGuidNoThrow(&guid, FALSE, FALSE)) && guid == riid) - { - return pItfMT; - } - } - - return NULL; -} - //-------------------------------------------------------------------------- // check if the interface is supported, return a index into the IMap // returns -1, if pIntfMT is not supported @@ -2612,52 +2495,6 @@ static IUnknown *GetComIPFromCCW_VisibilityCheck( RETURN pIntf; } -static IUnknown *GetComIPFromCCW_VariantInterface( - ComCallWrapper *pWrap, - REFIID riid, - MethodTable *pIntfMT, - GetComIPFromCCW::flags flags, - ComCallWrapperTemplate *pTemplate) -{ - CONTRACT(IUnknown*) - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(CheckPointer(pWrap)); - } - CONTRACT_END; - - IUnknown* pIntf = NULL; - ComMethodTable *pIntfComMT = NULL; - - // we are only going to respond to the one interface that this CCW represents - pIntfComMT = pTemplate->GetComMTForIndex(0); - if (pIntfComMT->GetIID() == riid || (pIntfMT != NULL && GetIndexForIntfMT(pTemplate, pIntfMT) == 0)) - { - SLOT **ppVtable = pWrap->GetFirstInterfaceSlot(); - _ASSERTE(*ppVtable != NULL); // this should point to COM Vtable or interface vtable - - if (!pIntfComMT->IsLayoutComplete() && !pIntfComMT->LayOutInterfaceMethodTable(NULL)) - { - RETURN NULL; - } - - // The interface pointer is the pointer to the vtable. - pIntf = (IUnknown*)ppVtable; - - // AddRef the wrapper. - // Note that we don't do SafeAddRef(pIntf) because it's overkill to - // go via IUnknown when we already have the wrapper in-hand. - pWrap->AddRefWithAggregationCheck(); - - RETURN GetComIPFromCCW_VisibilityCheck(pIntf, pIntfMT, pIntfComMT, flags); - } - - // for anything else, fall back to the CCW representing the "parent" class - RETURN ComCallWrapper::GetComIPFromCCW(pWrap->GetSimpleWrapper()->GetClassWrapper(), riid, pIntfMT, flags); -} - static IUnknown * GetComIPFromCCW_HandleExtendsCOMObject( ComCallWrapper * pWrap, REFIID riid, @@ -3700,78 +3537,6 @@ void ComMethodTable::LayOutClassMethodTable() LOG((LF_INTEROP, LL_INFO1000, "LayOutClassMethodTable: %s, parent: %s, this: %p [DONE]\n", m_pMT->GetDebugClassName(), pParentClass ? pParentClass->GetDebugClassName() : 0, this)); } - -BOOL ComMethodTable::CheckSigTypesCanBeLoaded(MethodTable *pItfClass) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(CheckPointer(pItfClass)); - } - CONTRACTL_END; - - if (!IsLayoutComplete()) - { - if (!IsSigClassLoadChecked()) - { - BOOL fCheckSuccess = TRUE; - unsigned cbSlots = pItfClass->GetNumVirtuals(); - - GCX_COOP(); - OBJECTREF pThrowable = NULL; - GCPROTECT_BEGIN(pThrowable); - { - EX_TRY - { - // check the sigs of the methods to see if we can load - // all the classes - for (unsigned i = 0; i < cbSlots; i++) - { - MethodDesc* pIntfMD = m_pMT->GetMethodDescForSlot(i); - MetaSig::CheckSigTypesCanBeLoaded(pIntfMD); - } - } - EX_CATCH_THROWABLE(&pThrowable); - - if (pThrowable != NULL) - { - HRESULT hr = SetupErrorInfo(pThrowable); - - if (hr == COR_E_TYPELOAD) - { - // We only care about TypeLoadExceptions here. If one occurs, it means - // that some of the type in the signature could not be loaded so this - // interface is not useable from COM. - SetSigClassCannotLoad(); - } - else - { - // We want to rethrow any other exceptions that occur. - COMPlusThrow(pThrowable); - } - } - } - GCPROTECT_END(); - - SetSigClassLoadChecked(); - } - - _ASSERTE(IsSigClassLoadChecked() != 0); - - // check if all types loaded successfully - if (IsSigClassCannotLoad()) - { - LogInterop(W("CLASS LOAD FAILURE: in Interface method signature")); - return FALSE; - } - } - return TRUE; -} - - - //-------------------------------------------------------------------------- // Lay out the members of a ComMethodTable that represents an interface. //-------------------------------------------------------------------------- @@ -4909,74 +4674,6 @@ ComMethodTable* ComCallWrapperTemplate::CreateComMethodTableForBasic(MethodTable RETURN pComMT; } -//-------------------------------------------------------------------------- -// Creates a ComMethodTable for a WinRT-exposed delegate class. -//-------------------------------------------------------------------------- -ComMethodTable* ComCallWrapperTemplate::CreateComMethodTableForDelegate(MethodTable *pDelegateMT) -{ - CONTRACT (ComMethodTable*) - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - INJECT_FAULT(COMPlusThrowOM()); - PRECONDITION(CheckPointer(pDelegateMT)); - PRECONDITION(pDelegateMT->IsDelegate()); - POSTCONDITION(CheckPointer(RETVAL)); - } - CONTRACT_END; - - const unsigned cbExtraSlots = ComMethodTable::GetNumExtraSlots(ifVtable); - const unsigned cbTotalSlots = 1; // one slot for the Invoke method - - LOG((LF_INTEROP, LL_INFO1000, "CreateComMethodTableForDelegate %s\n", pDelegateMT->GetClass()->GetDebugClassName())); - - // Alloc space for the delegate COM method table - LOG((LF_INTEROP, LL_INFO1000, "cbExtraSlots: %d\n", cbExtraSlots)); - LOG((LF_INTEROP, LL_INFO1000, "cbTotalSlots: %d\n", cbTotalSlots)); - - // Alloc COM vtable & method descs - S_UINT32 cbVtable = (S_UINT32(cbTotalSlots) + S_UINT32(cbExtraSlots)) * S_UINT32(sizeof(SLOT)); - S_UINT32 cbMethDescs = S_UINT32(cbTotalSlots) * S_UINT32((COMMETHOD_PREPAD + sizeof(ComCallMethodDesc))); - S_UINT32 cbToAlloc = S_UINT32(sizeof(ComMethodTable)) + cbVtable + cbMethDescs; - - if (cbToAlloc.IsOverflow()) - ThrowHR(COR_E_OVERFLOW); - - NewExecutableHolder pComMT = (ComMethodTable*) new (executable) BYTE[cbToAlloc.Value()]; - - // set up the header - pComMT->m_ptReserved = (SLOT)(size_t)0xDEADC0FF; // reserved - pComMT->m_pMT = pDelegateMT; - pComMT->m_cbRefCount = 0; - pComMT->m_pMDescr = NULL; - pComMT->m_pITypeInfo = NULL; - pComMT->m_pDispatchInfo = NULL; - pComMT->m_cbSlots = cbTotalSlots; // number of slots not counting IUnknown methods. - - // Set the flags. - pComMT->m_Flags = enum_ClassVtableMask | clsIfNone | enum_ComVisible; - - MethodTable *pMTForIID = pDelegateMT; - pMTForIID->GetGuid(&pComMT->m_IID, TRUE); - - pComMT->m_Flags |= enum_GuidGenerated; - -#if _DEBUG - { - // In debug set all the vtable slots to 0xDEADCA11. - SLOT *pComVTable = (SLOT*)(pComMT + 1); - for (unsigned iComSlots = 0; iComSlots < cbTotalSlots + cbExtraSlots; iComSlots++) - *(pComVTable + iComSlots) = (SLOT)(size_t)0xDEADCA11; - } -#endif - - LOG((LF_INTEROP, LL_INFO1000, "---------- end of CreateComMethodTableForDelegate %s -----------\n", pDelegateMT->GetClass()->GetDebugClassName())); - - pComMT.SuppressRelease(); - RETURN pComMT; -} - //-------------------------------------------------------------------------- // Creates a ComMethodTable for an interface and stores it in the m_rgpIPtr array. //-------------------------------------------------------------------------- diff --git a/src/coreclr/src/vm/comcallablewrapper.h b/src/coreclr/src/vm/comcallablewrapper.h index c50fbd873b99..887e09aece60 100644 --- a/src/coreclr/src/vm/comcallablewrapper.h +++ b/src/coreclr/src/vm/comcallablewrapper.h @@ -390,7 +390,6 @@ class ComCallWrapperTemplate ComMethodTable* CreateComMethodTableForClass(MethodTable *pClassMT); ComMethodTable* CreateComMethodTableForInterface(MethodTable* pInterfaceMT); ComMethodTable* CreateComMethodTableForBasic(MethodTable* pClassMT); - ComMethodTable* CreateComMethodTableForDelegate(MethodTable *pDelegateMT); void DetermineComVisibility(); ComCallWrapperTemplate* FindInvisibleParent(); @@ -471,8 +470,8 @@ enum Masks enum_ClassVtableMask = 0x00000004, enum_LayoutComplete = 0x00000010, enum_ComVisible = 0x00000040, - enum_SigClassCannotLoad = 0x00000080, - enum_SigClassLoadChecked = 0x00000100, + // enum_unused = 0x00000080, + // enum_unused = 0x00000100, enum_ComClassItf = 0x00000200, enum_GuidGenerated = 0x00000400, // enum_unused = 0x00001000, @@ -588,30 +587,6 @@ struct ComMethodTable return ((ComCallWrapperTemplate*)m_pMT->GetComCallWrapperTemplate())->HasInvisibleParent(); } - BOOL IsSigClassLoadChecked() - { - LIMITED_METHOD_CONTRACT; - return (m_Flags & enum_SigClassLoadChecked) != 0; - } - - BOOL IsSigClassCannotLoad() - { - LIMITED_METHOD_CONTRACT; - return 0 != (m_Flags & enum_SigClassCannotLoad); - } - - VOID SetSigClassCannotLoad() - { - LIMITED_METHOD_CONTRACT; - m_Flags |= enum_SigClassCannotLoad; - } - - VOID SetSigClassLoadChecked() - { - LIMITED_METHOD_CONTRACT; - m_Flags |= enum_SigClassLoadChecked; - } - DWORD GetSlots() { LIMITED_METHOD_CONTRACT; @@ -807,9 +782,6 @@ struct ComMethodTable } private: - // Helper methods. - BOOL CheckSigTypesCanBeLoaded(MethodTable *pItfClass); - SLOT m_ptReserved; //= (SLOT) 0xDEADC0FF; reserved PTR_MethodTable m_pMT; // pointer to the VMs method table ULONG m_cbSlots; // number of slots in the interface (excluding IUnk/IDisp) @@ -1411,9 +1383,6 @@ public : FastInterlockOr((ULONG*)&m_flags, enum_IsComActivated); } - // Used for the creation and deletion of simple wrappers - static SimpleComCallWrapper* CreateSimpleWrapper(); - // Determines if the type associated with the ComCallWrapper supports exceptions. static BOOL SupportsExceptions(MethodTable *pMT); @@ -1465,16 +1434,6 @@ public : RETURN m_pWrap; } - inline PTR_ComCallWrapper GetClassWrapper() - { - LIMITED_METHOD_CONTRACT; - - _ASSERTE(m_pMT->IsInterface()); - _ASSERTE(m_pClassWrap != NULL); - - return m_pClassWrap; - } - inline ULONG GetRefCount() { LIMITED_METHOD_CONTRACT; @@ -1482,15 +1441,6 @@ public : return GET_COM_REF(READ_REF(m_llRefCount)); } - // Returns the unmarked raw ref count - // Make sure we always make a copy of the value instead of inlining - NOINLINE LONGLONG GetRealRefCount() - { - LIMITED_METHOD_CONTRACT; - - return READ_REF(m_llRefCount); - } - inline BOOL IsNeutered() { LIMITED_METHOD_DAC_CONTRACT; @@ -1968,10 +1918,9 @@ inline BOOL ComCallWrapper::IsWrapperActive() // Since its called by GCPromote, we assume that this is the start wrapper - LONGLONG llRefCount = m_pSimpleWrapper->GetRealRefCount(); - ULONG cbRef = GET_COM_REF(llRefCount); + ULONG cbRef = m_pSimpleWrapper->GetRefCount(); - BOOL bHasStrongCOMRefCount = ((cbRef > 0)); + BOOL bHasStrongCOMRefCount = cbRef > 0; BOOL bIsWrapperActive = (bHasStrongCOMRefCount && !m_pSimpleWrapper->IsHandleWeak()); diff --git a/src/coreclr/src/vm/cominterfacemarshaler.cpp b/src/coreclr/src/vm/cominterfacemarshaler.cpp index d2f47cd279d0..37adc481698e 100644 --- a/src/coreclr/src/vm/cominterfacemarshaler.cpp +++ b/src/coreclr/src/vm/cominterfacemarshaler.cpp @@ -39,7 +39,6 @@ COMInterfaceMarshaler::COMInterfaceMarshaler() m_pUnknown = NULL; m_pIdentity = NULL; m_flags = RCW::CF_None; - m_pCallback = NULL; m_pThread = NULL; } @@ -90,42 +89,6 @@ VOID COMInterfaceMarshaler::Init(IUnknown* pUnk, MethodTable* pClassMT, Thread * m_flags = flags; } -//-------------------------------------------------------------------------------- -// VOID COMInterfaceMarshaler::InitializeObjectClass() -//-------------------------------------------------------------------------------- -VOID COMInterfaceMarshaler::InitializeObjectClass(IUnknown *pIncomingIP) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - } - CONTRACTL_END; - - if (m_typeHandle.IsNull()) - { - EX_TRY - { - m_typeHandle = GetClassFromIProvideClassInfo(m_pUnknown); - - if (!m_typeHandle.IsNull() && !m_typeHandle.IsComObjectType()) - { - m_typeHandle = TypeHandle(); // Clear the existing one. - } - } - EX_CATCH - { - } - EX_END_CATCH(RethrowTerminalExceptions); - if(!m_typeHandle.IsNull()) - return; - } - - if (m_typeHandle.IsNull()) - m_typeHandle = TypeHandle(g_pBaseCOMObject); -} - //-------------------------------------------------------------------------------- // void COMInterfaceMarshaler::CreateObjectRef(BOOL fDuplicate, OBJECTREF *pComObj) // Creates an RCW of the proper type. @@ -276,20 +239,6 @@ void COMInterfaceMarshaler::CreateObjectRef(BOOL fDuplicate, OBJECTREF *pComObj, // a different object! BOOL fInsertAsDuplicateWrapper = fExisting; - if (!fInsertAsDuplicateWrapper) - { - // Shall we use the RCW that is already in the cache? - if (m_pCallback && !m_pCallback->ShouldUseThisRCW(pRCW.GetRawRCWUnsafe())) - { - // No - let's insert our wrapper as a duplicate instead - fInsertAsDuplicateWrapper = TRUE; - - // Initialize pRCW again and make sure sure pRCW is indeed our new wrapper - pRCW.UnInit(); - pRCW.InitNoCheck(pNewRCW); - } - } - if (fInsertAsDuplicateWrapper) { // we need to keep this wrapper separate so we'll insert it with the alternate identity @@ -301,16 +250,9 @@ void COMInterfaceMarshaler::CreateObjectRef(BOOL fDuplicate, OBJECTREF *pComObj, _ASSERTE(fInserted); pNewRCW.SuppressRelease(); - - if (m_pCallback) - m_pCallback->OnRCWCreated(pRCW.GetRawRCWUnsafe()); } else { - // Somebody beat us in creating the wrapper. Let's use that - if (m_pCallback) - m_pCallback->OnRCWCacheHit(pRCW.GetRawRCWUnsafe()); - // grab the new object *pComObj = (OBJECTREF)pRCW->GetExposedObject(); } @@ -319,9 +261,6 @@ void COMInterfaceMarshaler::CreateObjectRef(BOOL fDuplicate, OBJECTREF *pComObj, { // If we did insert this wrapper in the table, make sure we don't delete it. pNewRCW.SuppressRelease(); - - if (m_pCallback) - m_pCallback->OnRCWCreated(pRCW.GetRawRCWUnsafe()); } } @@ -398,17 +337,7 @@ OBJECTREF COMInterfaceMarshaler::FindOrCreateObjectRefInternal(IUnknown **ppInco &pRCW); if (!pRCW.IsNull()) { - bool bShouldUseThisRCW = true; - - if (m_pCallback) - bShouldUseThisRCW = m_pCallback->ShouldUseThisRCW(pRCW.GetRawRCWUnsafe()); - - if (bShouldUseThisRCW) - { - oref = (OBJECTREF)pRCW->GetExposedObject(); - if (m_pCallback) - m_pCallback->OnRCWCacheHit(pRCW.GetRawRCWUnsafe()); - } + oref = (OBJECTREF)pRCW->GetExposedObject(); } } @@ -457,35 +386,28 @@ VOID COMInterfaceMarshaler::InitializeExistingComObject(OBJECTREF *pComObj, IUnk } //-------------------------------------------------------------------------------- -// Helper to wrap an IUnknown with COM object +// VOID COMInterfaceMarshaler::InitializeObjectClass() //-------------------------------------------------------------------------------- -OBJECTREF COMInterfaceMarshaler::WrapWithComObject() +VOID COMInterfaceMarshaler::InitializeObjectClass(IUnknown *pIncomingIP) { CONTRACTL { - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; + NOTHROW; + GC_NOTRIGGER; + MODE_ANY; } CONTRACTL_END; - OBJECTREF oref = NULL; - GCPROTECT_BEGIN(oref) + // If the marshaller's type handle is null, compute what it should be. + if (m_typeHandle.IsNull()) { - CreateObjectRef( - TRUE, // fDuplicate - &oref, // pComObj - NULL, // ppIncomingIP - NULL, // pIncomingItfMT - false // bIncomingIPAddRefed - ); + // We no longer support the mapping from ITypeInfo to Type (i.e. MethodTable*). + // This was previously provided by IProvideClassinfo. If the type handle isn't + // set fallback to the opaque __ComObject type. + m_typeHandle = TypeHandle(g_pBaseCOMObject); } - GCPROTECT_END(); - - return oref; } -//-------------------------------------------------------------------------------- // VOID EnsureCOMInterfacesSupported(OBJECTREF oref, MethodTable* pClassMT) // Make sure the oref supports all the COM interfaces in the class VOID COMInterfaceMarshaler::EnsureCOMInterfacesSupported(OBJECTREF oref, MethodTable* pClassMT) diff --git a/src/coreclr/src/vm/cominterfacemarshaler.h b/src/coreclr/src/vm/cominterfacemarshaler.h index 38b206425444..d1b360255313 100644 --- a/src/coreclr/src/vm/cominterfacemarshaler.h +++ b/src/coreclr/src/vm/cominterfacemarshaler.h @@ -14,22 +14,6 @@ #error FEATURE_COMINTEROP is required for this file #endif // FEATURE_COMINTEROP -class ICOMInterfaceMarshalerCallback -{ -public : - // Callback to be called when we created a RCW and that RCW is inserted to cache - virtual void OnRCWCreated(RCW *pRCW) = 0; - - // Callback to be called when we got back a RCW from the cache - virtual void OnRCWCacheHit(RCW *pRCW) = 0; - - // Callback to be called to determine whether we should use this RCW - // Return true if ComInterfaceMarshaler should use this RCW - // Return false if ComInterfaceMarshaler should just skip this RCW and proceed - // to create a duplicate one instead - virtual bool ShouldUseThisRCW(RCW *pRCW) = 0; -}; - //-------------------------------------------------------------------------------- // class ComInterfaceMarshaler //-------------------------------------------------------------------------------- @@ -41,26 +25,13 @@ class COMInterfaceMarshaler VOID Init(IUnknown* pUnk, MethodTable* pClassMT, Thread *pThread, DWORD flags = 0); // see RCW::CreationFlags - // Sets a ICOMInterfaceMarshalerCallback pointer to be called when RCW is created or got back from cache - // Note that caller owns the lifetime of this callback object, and needs to make sure this callback is - // alive until the last time you call any function on COMInterfaceMarshaler - VOID SetCallback(ICOMInterfaceMarshalerCallback *pCallback) - { - LIMITED_METHOD_CONTRACT; - _ASSERTE(pCallback != NULL); - m_pCallback = pCallback; - } - - VOID InitializeObjectClass(IUnknown *pIncomingIP); - OBJECTREF FindOrCreateObjectRef(IUnknown **ppIncomingIP, MethodTable *pIncomingItfMT = NULL); OBJECTREF FindOrCreateObjectRef(IUnknown *pIncomingIP, MethodTable *pIncomingItfMT = NULL); - OBJECTREF WrapWithComObject(); - VOID InitializeExistingComObject(OBJECTREF *pComObj, IUnknown **ppIncomingIP); private: + VOID InitializeObjectClass(IUnknown *pIncomingIP); OBJECTREF FindOrCreateObjectRefInternal(IUnknown **ppIncomingIP, MethodTable *pIncomingItfMT, bool bIncomingIPAddRefed); VOID CreateObjectRef(BOOL fDuplicate, OBJECTREF *pComObj, IUnknown **ppIncomingIP, MethodTable *pIncomingItfMT, bool bIncomingIPAddRefed); static VOID EnsureCOMInterfacesSupported(OBJECTREF oref, MethodTable* pClassMT); @@ -74,8 +45,6 @@ class COMInterfaceMarshaler TypeHandle m_itfTypeHandle; // an interface supported by the object as returned from GetRuntimeClassName Thread* m_pThread; // Current thread - avoid calling GetThread multiple times DWORD m_flags; - - ICOMInterfaceMarshalerCallback *m_pCallback; // Callback to call when we created a RCW or got back RCW from cache }; diff --git a/src/coreclr/src/vm/common.h b/src/coreclr/src/vm/common.h index f01ec501bb67..6694e74d8b48 100644 --- a/src/coreclr/src/vm/common.h +++ b/src/coreclr/src/vm/common.h @@ -162,9 +162,6 @@ typedef DPTR(class ReJitManager) PTR_ReJitManager; typedef DPTR(struct ReJitInfo) PTR_ReJitInfo; typedef DPTR(struct SharedReJitInfo) PTR_SharedReJitInfo; typedef DPTR(class StringObject) PTR_StringObject; -#ifdef FEATURE_UTF8STRING -typedef DPTR(class Utf8StringObject) PTR_Utf8StringObject; -#endif // FEATURE_UTF8STRING typedef DPTR(class TypeHandle) PTR_TypeHandle; typedef VPTR(class VirtualCallStubManager) PTR_VirtualCallStubManager; typedef VPTR(class VirtualCallStubManagerManager) PTR_VirtualCallStubManagerManager; diff --git a/src/coreclr/src/vm/corelib.h b/src/coreclr/src/vm/corelib.h index 21c8a6c4332f..dbf514748420 100644 --- a/src/coreclr/src/vm/corelib.h +++ b/src/coreclr/src/vm/corelib.h @@ -318,10 +318,6 @@ DEFINE_CLASS(ENCODING, Text, Encoding) DEFINE_CLASS(RUNE, Text, Rune) -#ifdef FEATURE_UTF8STRING -DEFINE_CLASS(CHAR8, System, Char8) -#endif // FEATURE_UTF8STRING - DEFINE_CLASS(ENUM, System, Enum) DEFINE_CLASS(ENVIRONMENT, System, Environment) @@ -847,17 +843,6 @@ DEFINE_METHOD(STRING, WCSLEN, wcslen, DEFINE_METHOD(STRING, STRLEN, strlen, SM_PtrByte_RetInt) DEFINE_PROPERTY(STRING, LENGTH, Length, Int) -#ifdef FEATURE_UTF8STRING -DEFINE_CLASS(UTF8_STRING, System, Utf8String) -DEFINE_METHOD(UTF8_STRING, CTORF_READONLYSPANOFBYTE,Ctor, IM_ReadOnlySpanOfByte_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_READONLYSPANOFCHAR,Ctor, IM_ReadOnlySpanOfChar_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_BYTEARRAY_START_LEN,Ctor, IM_ArrByte_Int_Int_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_BYTEPTR, Ctor, IM_PtrByte_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_CHARARRAY_START_LEN,Ctor, IM_ArrChar_Int_Int_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_CHARPTR, Ctor, IM_PtrChar_RetUtf8Str) -DEFINE_METHOD(UTF8_STRING, CTORF_STRING, Ctor, IM_String_RetUtf8Str) -#endif // FEATURE_UTF8STRING - DEFINE_CLASS(STRING_BUILDER, Text, StringBuilder) DEFINE_PROPERTY(STRING_BUILDER, LENGTH, Length, Int) DEFINE_PROPERTY(STRING_BUILDER, CAPACITY, Capacity, Int) diff --git a/src/coreclr/src/vm/customattribute.cpp b/src/coreclr/src/vm/customattribute.cpp index 3dea5604587b..e0fd92872119 100644 --- a/src/coreclr/src/vm/customattribute.cpp +++ b/src/coreclr/src/vm/customattribute.cpp @@ -908,7 +908,6 @@ FCIMPL7(void, COMCustomAttribute::GetPropertyOrFieldData, ReflectModuleBaseObjec nullTH = th; } - // // get the string representing the field/property name *pName = ArgSlotToString(GetDataFromBlob( pCtorAssembly, SERIALIZATION_TYPE_STRING, nullTH, &pBlob, pBlobEnd, pModule, &bObjectCreated)); @@ -937,6 +936,7 @@ FCIMPL7(void, COMCustomAttribute::GetPropertyOrFieldData, ReflectModuleBaseObjec break; case SERIALIZATION_TYPE_SZARRAY: { + *value = NULL; int arraySize = (int)GetDataFromBlob(pCtorAssembly, SERIALIZATION_TYPE_I4, nullTH, &pBlob, pBlobEnd, pModule, &bObjectCreated); if (arraySize != -1) diff --git a/src/coreclr/src/vm/dllimport.cpp b/src/coreclr/src/vm/dllimport.cpp index 4a1f1a0b01ef..259af70a1e62 100644 --- a/src/coreclr/src/vm/dllimport.cpp +++ b/src/coreclr/src/vm/dllimport.cpp @@ -2537,7 +2537,7 @@ void PInvokeStaticSigInfo::PreInit(MethodDesc* pMD) } PInvokeStaticSigInfo::PInvokeStaticSigInfo( - MethodDesc* pMD, LPCUTF8 *pLibName, LPCUTF8 *pEntryPointName, ThrowOnError throwOnError) + MethodDesc* pMD, LPCUTF8 *pLibName, LPCUTF8 *pEntryPointName) { CONTRACTL { @@ -2549,8 +2549,7 @@ PInvokeStaticSigInfo::PInvokeStaticSigInfo( DllImportInit(pMD, pLibName, pEntryPointName); - if (throwOnError) - ReportErrors(); + ReportErrors(); } PInvokeStaticSigInfo::PInvokeStaticSigInfo(MethodDesc* pMD, ThrowOnError throwOnError) @@ -2654,7 +2653,7 @@ PInvokeStaticSigInfo::PInvokeStaticSigInfo(MethodDesc* pMD, ThrowOnError throwOn } PInvokeStaticSigInfo::PInvokeStaticSigInfo( - Signature sig, Module* pModule, ThrowOnError throwOnError) + Signature sig, Module* pModule) { CONTRACTL { @@ -2671,8 +2670,7 @@ PInvokeStaticSigInfo::PInvokeStaticSigInfo( SetIsStatic (!(MetaSig::GetCallingConvention(pModule, sig) & IMAGE_CEE_CS_CALLCONV_HASTHIS)); InitCallConv((CorPinvokeMap)0, FALSE); - if (throwOnError) - ReportErrors(); + ReportErrors(); } void PInvokeStaticSigInfo::DllImportInit(MethodDesc* pMD, LPCUTF8 *ppLibName, LPCUTF8 *ppEntryPointName) @@ -4293,9 +4291,9 @@ static void CreateNDirectStubAccessMetadata( } } -void NDirect::PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSigInfo* pSigInfo, BOOL throwOnError /*= TRUE*/) +void NDirect::PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSigInfo* pSigInfo) { - if (pNMD->IsSynchronized() && throwOnError) + if (pNMD->IsSynchronized()) COMPlusThrow(kTypeLoadException, IDS_EE_NOSYNCHRONIZED); WORD ndirectflags = 0; @@ -4303,8 +4301,7 @@ void NDirect::PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSi ndirectflags |= NDirectMethodDesc::kVarArgs; LPCUTF8 szLibName = NULL, szEntryPointName = NULL; - new (pSigInfo) PInvokeStaticSigInfo(pNMD, &szLibName, &szEntryPointName, - (throwOnError ? PInvokeStaticSigInfo::THROW_ON_ERROR : PInvokeStaticSigInfo::NO_THROW_ON_ERROR)); + new (pSigInfo) PInvokeStaticSigInfo(pNMD, &szLibName, &szEntryPointName); if (pSigInfo->GetCharSet() == nltAnsi) ndirectflags |= NDirectMethodDesc::kNativeAnsi; @@ -5249,7 +5246,7 @@ MethodDesc* NDirect::GetILStubMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticS MethodDesc* pStubMD = NULL; - if (!pNMD->IsVarArgs() || SF_IsForNumParamBytes(dwStubFlags)) + if (!pNMD->IsVarArgs()) { if (pNMD->IsClassConstructorTriggeredByILStub()) { @@ -5258,7 +5255,7 @@ MethodDesc* NDirect::GetILStubMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticS pStubMD = CreateCLRToNativeILStub( pSigInfo, - dwStubFlags & ~NDIRECTSTUB_FL_FOR_NUMPARAMBYTES, + dwStubFlags, pNMD); } @@ -5354,14 +5351,11 @@ PCODE NDirect::GetStubForILStub(NDirectMethodDesc* pNMD, MethodDesc** ppStubMD, if (NULL == *ppStubMD) { PInvokeStaticSigInfo sigInfo; - NDirect::PopulateNDirectMethodDesc(pNMD, &sigInfo, /* throwOnError = */ !SF_IsForNumParamBytes(dwStubFlags)); + NDirect::PopulateNDirectMethodDesc(pNMD, &sigInfo); *ppStubMD = NDirect::GetILStubMethodDesc(pNMD, &sigInfo, dwStubFlags); } - if (SF_IsForNumParamBytes(dwStubFlags)) - return NULL; - if (*ppStubMD) { pStub = JitILStub(*ppStubMD); diff --git a/src/coreclr/src/vm/dllimport.h b/src/coreclr/src/vm/dllimport.h index b24ab6e3e6c8..ba2b20d13b38 100644 --- a/src/coreclr/src/vm/dllimport.h +++ b/src/coreclr/src/vm/dllimport.h @@ -87,7 +87,7 @@ class NDirect _In_opt_ PCCOR_SIGNATURE pSig = NULL, _In_opt_ Module* pModule = NULL, _In_ bool unmanagedCallersOnlyRequiresMarshalling = true); - static void PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSigInfo* pSigInfo, BOOL throwOnError = TRUE); + static void PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSigInfo* pSigInfo); static MethodDesc* CreateCLRToNativeILStub( StubSigDesc* pSigDesc, @@ -161,7 +161,7 @@ enum NDirectStubFlags #endif // FEATURE_COMINTEROP // internal flags -- these won't ever show up in an NDirectStubHashBlob - NDIRECTSTUB_FL_FOR_NUMPARAMBYTES = 0x10000000, // do just enough to return the right value from Marshal.NumParamBytes + // unused = 0x10000000, #ifdef FEATURE_COMINTEROP NDIRECTSTUB_FL_COMLATEBOUND = 0x20000000, // we use a generic stub for late bound calls @@ -210,7 +210,6 @@ inline bool SF_IsNGENedStubForProfiling(DWORD dwStubFlags) { LIMITED_METHOD_CONT inline bool SF_IsDebuggableStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_GENERATEDEBUGGABLEIL)); } inline bool SF_IsCALLIStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_UNMANAGED_CALLI)); } inline bool SF_IsStubWithCctorTrigger (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_TRIGGERCCTOR)); } -inline bool SF_IsForNumParamBytes (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_FOR_NUMPARAMBYTES)); } inline bool SF_IsStructMarshalStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_STRUCT_MARSHAL)); } #ifdef FEATURE_ARRAYSTUB_AS_IL @@ -320,11 +319,11 @@ struct PInvokeStaticSigInfo public: PInvokeStaticSigInfo() { LIMITED_METHOD_CONTRACT; } - PInvokeStaticSigInfo(Signature sig, Module* pModule, ThrowOnError throwOnError = THROW_ON_ERROR); + PInvokeStaticSigInfo(Signature sig, Module* pModule); PInvokeStaticSigInfo(MethodDesc* pMdDelegate, ThrowOnError throwOnError = THROW_ON_ERROR); - PInvokeStaticSigInfo(MethodDesc* pMD, LPCUTF8 *pLibName, LPCUTF8 *pEntryPointName, ThrowOnError throwOnError = THROW_ON_ERROR); + PInvokeStaticSigInfo(MethodDesc* pMD, LPCUTF8 *pLibName, LPCUTF8 *pEntryPointName); public: void ReportErrors(); @@ -563,7 +562,6 @@ class NDirectStubLinker : public ILStubLinker #endif // DACCESS_COMPILE // This attempts to guess whether a target is an API call that uses SetLastError to communicate errors. -BOOL HeuristicDoesThisLooksLikeAnApiCall(LPBYTE pTarget); BOOL HeuristicDoesThisLookLikeAGetLastErrorCall(LPBYTE pTarget); DWORD STDMETHODCALLTYPE FalseGetLastError(); diff --git a/src/coreclr/src/vm/ecall.cpp b/src/coreclr/src/vm/ecall.cpp index a86d12c4b434..5daa657f33a4 100644 --- a/src/coreclr/src/vm/ecall.cpp +++ b/src/coreclr/src/vm/ecall.cpp @@ -84,30 +84,6 @@ static_assert_no_msg(ECallCtor_First + 8 == ECall::CtorSBytePtrStartLengthEncodi #define NumberOfStringConstructors 9 -#ifdef FEATURE_UTF8STRING -// METHOD__UTF8STRING__CTORF_XXX has to be in same order as ECall::Utf8StringCtorCharXxx -#define METHOD__UTF8STRING__CTORF_FIRST METHOD__UTF8_STRING__CTORF_READONLYSPANOFBYTE -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 0 == METHOD__UTF8_STRING__CTORF_READONLYSPANOFBYTE); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 1 == METHOD__UTF8_STRING__CTORF_READONLYSPANOFCHAR); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 2 == METHOD__UTF8_STRING__CTORF_BYTEARRAY_START_LEN); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 3 == METHOD__UTF8_STRING__CTORF_BYTEPTR); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 4 == METHOD__UTF8_STRING__CTORF_CHARARRAY_START_LEN); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 5 == METHOD__UTF8_STRING__CTORF_CHARPTR); -static_assert_no_msg(METHOD__UTF8STRING__CTORF_FIRST + 6 == METHOD__UTF8_STRING__CTORF_STRING); - -// ECall::Utf8StringCtorCharXxx has to be in same order as METHOD__UTF8STRING__CTORF_XXX -#define ECallUtf8String_Ctor_First ECall::Utf8StringCtorReadOnlySpanOfByteManaged -static_assert_no_msg(ECallUtf8String_Ctor_First + 0 == ECall::Utf8StringCtorReadOnlySpanOfByteManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 1 == ECall::Utf8StringCtorReadOnlySpanOfCharManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 2 == ECall::Utf8StringCtorByteArrayStartLengthManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 3 == ECall::Utf8StringCtorBytePtrManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 4 == ECall::Utf8StringCtorCharArrayStartLengthManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 5 == ECall::Utf8StringCtorCharPtrManaged); -static_assert_no_msg(ECallUtf8String_Ctor_First + 6 == ECall::Utf8StringCtorStringManaged); - -#define NumberOfUtf8StringConstructors 7 -#endif // FEATURE_UTF8STRING - void ECall::PopulateManagedStringConstructors() { STANDARD_VM_CONTRACT; @@ -126,19 +102,6 @@ void ECall::PopulateManagedStringConstructors() ECall::DynamicallyAssignFCallImpl(pDest, ECallCtor_First + i); } -#ifdef FEATURE_UTF8STRING - _ASSERTE(g_pUtf8StringClass != NULL); - for (int i = 0; i < NumberOfUtf8StringConstructors; i++) - { - MethodDesc* pMD = CoreLibBinder::GetMethod((BinderMethodID)(METHOD__UTF8STRING__CTORF_FIRST + i)); - _ASSERTE(pMD != NULL); - - PCODE pDest = pMD->GetMultiCallableAddrOfCode(); - - ECall::DynamicallyAssignFCallImpl(pDest, ECallUtf8String_Ctor_First + i); - } -#endif // FEATURE_UTF8STRING - INDEBUG(fInitialized = true); } diff --git a/src/coreclr/src/vm/ecall.h b/src/coreclr/src/vm/ecall.h index 19b875382870..f1fedf2cbeb4 100644 --- a/src/coreclr/src/vm/ecall.h +++ b/src/coreclr/src/vm/ecall.h @@ -118,21 +118,7 @@ class ECall DYNAMICALLY_ASSIGNED_FCALL_IMPL(CtorSBytePtrStartLengthEncodingManaged, NULL) \ DYNAMICALLY_ASSIGNED_FCALL_IMPL(InternalGetCurrentThread, NULL) \ -#define _DYNAMICALLY_ASSIGNED_FCALLS_UTF8STRING() \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(FastAllocateUtf8String, FramedAllocateUtf8String) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorReadOnlySpanOfByteManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorReadOnlySpanOfCharManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorByteArrayStartLengthManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorBytePtrManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorCharArrayStartLengthManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorCharPtrManaged, NULL) \ - DYNAMICALLY_ASSIGNED_FCALL_IMPL(Utf8StringCtorStringManaged, NULL) \ - -#ifdef FEATURE_UTF8STRING -#define DYNAMICALLY_ASSIGNED_FCALLS() _DYNAMICALLY_ASSIGNED_FCALLS_BASE() _DYNAMICALLY_ASSIGNED_FCALLS_UTF8STRING() -#else #define DYNAMICALLY_ASSIGNED_FCALLS() _DYNAMICALLY_ASSIGNED_FCALLS_BASE() -#endif // FEATURE_UTF8STRING enum { diff --git a/src/coreclr/src/vm/ecalllist.h b/src/coreclr/src/vm/ecalllist.h index d24d0dc3b2ad..e45decc9a7b5 100644 --- a/src/coreclr/src/vm/ecalllist.h +++ b/src/coreclr/src/vm/ecalllist.h @@ -111,19 +111,6 @@ FCFuncStart(gStringFuncs) FCFuncElement("Intern", AppDomainNative::GetOrInternString) FCFuncEnd() -#ifdef FEATURE_UTF8STRING -FCFuncStart(gUtf8StringFuncs) - FCDynamic("FastAllocate", CORINFO_INTRINSIC_Illegal, ECall::FastAllocateUtf8String) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ReadOnlySpanOfByte_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorReadOnlySpanOfByteManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ReadOnlySpanOfChar_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorReadOnlySpanOfCharManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ArrByte_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorByteArrayStartLengthManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrByte_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorBytePtrManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ArrChar_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorCharArrayStartLengthManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrChar_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorCharPtrManaged) - FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_Str_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::Utf8StringCtorStringManaged) -FCFuncEnd() -#endif // FEATURE_UTF8STRING - FCFuncStart(gValueTypeFuncs) FCFuncElement("CanCompareBits", ValueTypeHelper::CanCompareBits) FCFuncElement("FastEqualsCheck", ValueTypeHelper::FastEqualsCheck) @@ -203,7 +190,7 @@ FCFuncEnd() FCFuncStart(gCOMTypeHandleFuncs) FCFuncElement("CreateInstance", RuntimeTypeHandle::CreateInstance) - FCFuncElement("CreateInstanceForAnotherGenericParameter", RuntimeTypeHandle::CreateInstanceForGenericType) + QCFuncElement("CreateInstanceForAnotherGenericParameter", RuntimeTypeHandle::CreateInstanceForAnotherGenericParameter) QCFuncElement("GetGCHandle", RuntimeTypeHandle::GetGCHandle) QCFuncElement("FreeGCHandle", RuntimeTypeHandle::FreeGCHandle) @@ -786,7 +773,6 @@ FCFuncStart(gInteropMarshalFuncs) #ifdef FEATURE_COMINTEROP FCFuncElement("GetHRForException", MarshalNative::GetHRForException) - FCFuncElement("GetRawIUnknownForComObjectNoAddRef", MarshalNative::GetRawIUnknownForComObjectNoAddRef) FCFuncElement("IsComObject", MarshalNative::IsComObject) FCFuncElement("GetObjectForIUnknownNative", MarshalNative::GetObjectForIUnknownNative) FCFuncElement("GetUniqueObjectForIUnknownNative", MarshalNative::GetUniqueObjectForIUnknownNative) @@ -1064,8 +1050,8 @@ FCFuncStart(gPalKernel32Funcs) QCFuncElement("CreateMutexEx", CreateMutexExW) QCFuncElement("CreateSemaphoreEx", CreateSemaphoreExW) QCFuncElement("FormatMessage", FormatMessageW) - QCFuncElement("FreeEnvironmentStrings", FreeEnvironmentStringsW) - QCFuncElement("GetEnvironmentStrings", GetEnvironmentStringsW) + QCFuncElement("FreeEnvironmentStringsW", FreeEnvironmentStringsW) + QCFuncElement("GetEnvironmentStringsW", GetEnvironmentStringsW) QCFuncElement("GetEnvironmentVariable", GetEnvironmentVariableW) QCFuncElement("OpenEvent", OpenEventW) QCFuncElement("OpenMutex", OpenMutexW) @@ -1220,9 +1206,6 @@ FCClassElement("TypeLoadException", "System", gTypeLoadExceptionFuncs) FCClassElement("TypeNameParser", "System", gTypeNameParser) FCClassElement("TypedReference", "System", gTypedReferenceFuncs) FCClassElement("UnmanagedThreadPoolWorkItem", "System.Threading", gUnmanagedThreadPoolWorkItemFuncs) -#ifdef FEATURE_UTF8STRING -FCClassElement("Utf8String", "System", gUtf8StringFuncs) -#endif // FEATURE_UTF8STRING FCClassElement("ValueType", "System", gValueTypeFuncs) #ifdef FEATURE_COMINTEROP FCClassElement("Variant", "System", gVariantFuncs) diff --git a/src/coreclr/src/vm/gchelpers.cpp b/src/coreclr/src/vm/gchelpers.cpp index d08a74783920..028e17b020d9 100644 --- a/src/coreclr/src/vm/gchelpers.cpp +++ b/src/coreclr/src/vm/gchelpers.cpp @@ -869,55 +869,6 @@ STRINGREF AllocateString( DWORD cchStringLength ) return ObjectToSTRINGREF(orString); } -#ifdef FEATURE_UTF8STRING -UTF8STRINGREF AllocateUtf8String(DWORD cchStringLength) -{ - CONTRACTL{ - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; // returns an objref without pinning it => cooperative - } CONTRACTL_END; - -#ifdef _DEBUG - if (g_pConfig->ShouldInjectFault(INJECTFAULT_GCHEAP)) - { - char *a = new char; - delete a; - } -#endif - - // Limit the maximum string size to <2GB to mitigate risk of security issues caused by 32-bit integer - // overflows in buffer size calculations. - // - // 0x7FFFFFBF is derived from the const 0x3FFFFFDF in SlowAllocateString. - // Adding +1 (for null terminator) and multiplying by sizeof(WCHAR) means that - // SlowAllocateString allows a maximum of 0x7FFFFFC0 bytes to be used for the - // string data itself, with some additional buffer for object headers and other - // data. Since we don't have the sizeof(WCHAR) multiplication here, we only need - // -1 to account for the null terminator, leading to a max size of 0x7FFFFFBF. - if (cchStringLength > 0x7FFFFFBF) - ThrowOutOfMemory(); - - SIZE_T totalSize = PtrAlign(Utf8StringObject::GetSize(cchStringLength)); - _ASSERTE(totalSize > cchStringLength); - - SetTypeHandleOnThreadForAlloc(TypeHandle(g_pUtf8StringClass)); - - GC_ALLOC_FLAGS flags = GC_ALLOC_NO_FLAGS; - if (totalSize >= g_pConfig->GetGCLOHThreshold()) - flags |= GC_ALLOC_LARGE_OBJECT_HEAP; - - Utf8StringObject* orString = (Utf8StringObject*)Alloc(totalSize, flags); - - // Initialize Object - orString->SetMethodTable(g_pUtf8StringClass); - orString->SetLength(cchStringLength); - - PublishObjectAndNotify(orString, flags); - return ObjectToUTF8STRINGREF(orString); -} -#endif // FEATURE_UTF8STRING - #ifdef FEATURE_COMINTEROP_UNMANAGED_ACTIVATION // OBJECTREF AllocateComClassObject(ComClassFactory* pComClsFac) void AllocateComClassObject(ComClassFactory* pComClsFac, OBJECTREF* ppRefClass) diff --git a/src/coreclr/src/vm/gchelpers.h b/src/coreclr/src/vm/gchelpers.h index f9a9ac5320e2..794706c22267 100644 --- a/src/coreclr/src/vm/gchelpers.h +++ b/src/coreclr/src/vm/gchelpers.h @@ -36,10 +36,6 @@ OBJECTREF AllocateObjectArray(DWORD cElements, TypeHandle ElementType, BOOL bAll // Allocate a string STRINGREF AllocateString( DWORD cchStringLength ); -#ifdef FEATURE_UTF8STRING -UTF8STRINGREF AllocateUtf8String( DWORD cchStringLength ); -#endif // FEATURE_UTF8STRING - OBJECTREF DupArrayForCloning(BASEARRAYREF pRef); // The JIT requests the EE to specify an allocation helper to use at each new-site. diff --git a/src/coreclr/src/vm/interoputil.cpp b/src/coreclr/src/vm/interoputil.cpp index 43dda1cde5bf..90f11497866f 100644 --- a/src/coreclr/src/vm/interoputil.cpp +++ b/src/coreclr/src/vm/interoputil.cpp @@ -1331,31 +1331,10 @@ void CleanupSyncBlockComData(InteropSyncBlockInfo* pInteropInfo) #endif // FEATURE_COMWRAPPERS } -void ReleaseRCWsInCachesNoThrow(LPVOID pCtxCookie) -{ - CONTRACTL - { - DISABLED(NOTHROW); - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(CheckPointer(pCtxCookie, NULL_OK)); - } - CONTRACTL_END; - - EX_TRY - { - ReleaseRCWsInCaches(pCtxCookie); - } - EX_CATCH - { - } - EX_END_CATCH(SwallowAllExceptions); -} - //-------------------------------------------------------------------------------- // Helper to release all of the RCWs in the specified context across all caches. // If pCtxCookie is NULL, release all RCWs -void ReleaseRCWsInCaches(LPVOID pCtxCookie) +static void ReleaseRCWsInCaches(LPVOID pCtxCookie) { CONTRACTL { @@ -1389,6 +1368,27 @@ void ReleaseRCWsInCaches(LPVOID pCtxCookie) } } +void ReleaseRCWsInCachesNoThrow(LPVOID pCtxCookie) +{ + CONTRACTL + { + DISABLED(NOTHROW); + GC_TRIGGERS; + MODE_ANY; + PRECONDITION(CheckPointer(pCtxCookie, NULL_OK)); + } + CONTRACTL_END; + + EX_TRY + { + ReleaseRCWsInCaches(pCtxCookie); + } + EX_CATCH + { + } + EX_END_CATCH(SwallowAllExceptions); +} + //-------------------------------------------------------------------------------- // Marshalling Helpers //-------------------------------------------------------------------------------- @@ -1521,47 +1521,6 @@ HRESULT EnsureComStartedNoThrow(BOOL fCoInitCurrentThread) return hr; } -//-------------------------------------------------------------------------------- -// BOOL ExtendsComImport(MethodTable* pMT); -// check if the class is OR extends a COM Imported class -BOOL ExtendsComImport(MethodTable* pMT) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - PRECONDITION(CheckPointer(pMT)); - } - CONTRACTL_END; - - while (pMT != NULL && !pMT->IsComImport()) - { - pMT = pMT->GetParentMethodTable(); - } - return pMT != NULL; -} - -#ifdef FEATURE_COMINTEROP -//-------------------------------------------------------------------------------- -// Gets the CLSID from the specified Prog ID. - -HRESULT GetCLSIDFromProgID(__in_z WCHAR *strProgId, GUID *pGuid) -{ - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - MODE_PREEMPTIVE; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - return CLSIDFromProgID(strProgId, pGuid); -} -#endif // FEATURE_COMINTEROP - #include //-------------------------------------------------------------------------------- // AddRef helper, enables and disables GC during call-outs @@ -1876,45 +1835,6 @@ OBJECTREF AllocateComObject_ForManaged(MethodTable* pMT) } #endif // FEATURE_COMINTEROP_UNMANAGED_ACTIVATION -#ifdef FEATURE_COMINTEROP - -//--------------------------------------------------------------------------- -// get/load type for a given clsid -MethodTable* GetTypeForCLSID(REFCLSID rclsid) -{ - CONTRACT (MethodTable*) - { - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; - POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); - } - CONTRACT_END; - - // Not supported in .NET Core - requires typelib registration/generation - RETURN NULL; -} - - -//--------------------------------------------------------------------------- -// get/load a value class for a given guid -MethodTable* GetValueTypeForGUID(REFCLSID guid) -{ - CONTRACT (MethodTable*) - { - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; - POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); - } - CONTRACT_END; - - // Not supported in .NET Core - requires typelib registration/generation - RETURN NULL; -} - -#endif // FEATURE_COMINTEROP - #endif //#ifndef CROSSGEN_COMPILE //--------------------------------------------------------------------------- @@ -4344,66 +4264,6 @@ void UnmarshalObjectFromInterface(OBJECTREF *ppObjectDest, IUnknown **ppUnkSrc, } } -#ifdef FEATURE_COMINTEROP - -//-------------------------------------------------------------------------------- -// Check if the pUnk implements IProvideClassInfo and try to figure -// out the class from there -MethodTable* GetClassFromIProvideClassInfo(IUnknown* pUnk) -{ - CONTRACT (MethodTable*) - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(CheckPointer(pUnk)); - POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); - } - CONTRACT_END; - - MethodTable* pClassMT = NULL; - SafeComHolder pTypeInfo = NULL; - SafeComHolder pclsInfo = NULL; - - // Use IProvideClassInfo to detect the appropriate class to use for wrapping - HRESULT hr = SafeQueryInterface(pUnk, IID_IProvideClassInfo, (IUnknown **)&pclsInfo); - LogInteropQI(pUnk, IID_IProvideClassInfo, hr, "GetClassFromIProvideClassInfo: QIing for IProvideClassinfo"); - if (hr == S_OK && pclsInfo) - { - hr = E_FAIL; - - // Make sure the class info is not our own - if (!IsSimpleTearOff(pclsInfo)) - { - GCX_PREEMP(); - - hr = pclsInfo->GetClassInfo(&pTypeInfo); - } - - // If we succeded in retrieving the type information then keep going. - TYPEATTRHolder ptattr(pTypeInfo); - if (hr == S_OK && pTypeInfo) - { - { - GCX_PREEMP(); - hr = pTypeInfo->GetTypeAttr(&ptattr); - } - - // If we succeeded in retrieving the attributes and they represent - // a CoClass, then look up the class from the CLSID. - if (hr == S_OK && ptattr->typekind == TKIND_COCLASS) - { - GCX_ASSERT_COOP(); - pClassMT = GetTypeForCLSID(ptattr->guid); - } - } - } - - RETURN pClassMT; -} - -#endif // FEATURE_COMINTEROP - #endif //#ifndef CROSSGEN_COMPILE #endif // FEATURE_COMINTEROP diff --git a/src/coreclr/src/vm/interoputil.h b/src/coreclr/src/vm/interoputil.h index 9f51dfe699ea..c7209467b4a7 100644 --- a/src/coreclr/src/vm/interoputil.h +++ b/src/coreclr/src/vm/interoputil.h @@ -181,11 +181,6 @@ void CleanupSyncBlockComData(InteropSyncBlockInfo* pInteropInfo); // called by syncblock, during GC, do only minimal work void MinorCleanupSyncBlockComData(InteropSyncBlockInfo* pInteropInfo); -// Helper to release all of the RCWs in the specified context, across all caches. -// If context is null, release all RCWs, otherwise release RCWs created in the -// given context. -void ReleaseRCWsInCaches(LPVOID pCtxCookie); - // A wrapper that catches all exceptions - used in the OnThreadTerminate case. void ReleaseRCWsInCachesNoThrow(LPVOID pCtxCookie); @@ -262,15 +257,6 @@ BOOL ClassSupportsIClassX(MethodTable *pMT); OBJECTREF AllocateComObject_ForManaged(MethodTable* pMT); #endif // FEATURE_COMINTEROP_UNMANAGED_ACTIVATION -//--------------------------------------------------------------------------- - // get/load data for a given clsid -MethodTable* GetTypeForCLSID(REFCLSID rclsid); - - -//--------------------------------------------------------------------------- - // get/load a value class for a given guid -MethodTable* GetValueTypeForGUID(REFCLSID guid); - DefaultInterfaceType GetDefaultInterfaceForClassInternal(TypeHandle hndClass, TypeHandle *pHndDefClass); DefaultInterfaceType GetDefaultInterfaceForClassWrapper(TypeHandle hndClass, TypeHandle *pHndDefClass); @@ -398,26 +384,11 @@ VOID LogRCWDestroy(RCW* pWrap); HRESULT EnsureComStartedNoThrow(BOOL fCoInitCurrentThread = TRUE); VOID EnsureComStarted(BOOL fCoInitCurrentThread = TRUE); -//-------------------------------------------------------------------------------- -// check if the class is OR extends a COM Imported class -BOOL ExtendsComImport(MethodTable* pMT); - -//-------------------------------------------------------------------------------- -// Gets the CLSID from the specified Prog ID. -HRESULT GetCLSIDFromProgID(__in_z WCHAR *strProgId, GUID *pGuid); - -//-------------------------------------------------------------------------------- -// Check if the pUnk implements IProvideClassInfo and try to figure -// out the class from there -MethodTable* GetClassFromIProvideClassInfo(IUnknown* pUnk); - IUnknown* MarshalObjectToInterface(OBJECTREF* ppObject, MethodTable* pItfMT, MethodTable* pClassMT, DWORD dwFlags); void UnmarshalObjectFromInterface(OBJECTREF *ppObjectDest, IUnknown **ppUnkSrc, MethodTable *pItfMT, MethodTable *pClassMT, DWORD dwFlags); #define DEFINE_ASM_QUAL_TYPE_NAME(varname, typename, asmname) static const char varname##[] = { typename##", "##asmname## }; -class ICOMInterfaceMarshalerCallback; - #else // FEATURE_COMINTEROP inline HRESULT EnsureComStartedNoThrow() { diff --git a/src/coreclr/src/vm/jithelpers.cpp b/src/coreclr/src/vm/jithelpers.cpp index 0df65b9e6b8c..0ef036d815d8 100644 --- a/src/coreclr/src/vm/jithelpers.cpp +++ b/src/coreclr/src/vm/jithelpers.cpp @@ -55,6 +55,7 @@ #include "runtimehandles.h" #include "castcache.h" #include "onstackreplacement.h" +#include "pgo.h" //======================================================================== // @@ -2389,61 +2390,6 @@ HCIMPL1(StringObject*, AllocateString_MP_FastPortable, DWORD stringLength) } HCIMPLEND -#ifdef FEATURE_UTF8STRING -HCIMPL1(Utf8StringObject*, AllocateUtf8String_MP_FastPortable, DWORD stringLength) -{ - FCALL_CONTRACT; - - do - { - _ASSERTE(GCHeapUtilities::UseThreadAllocationContexts()); - - // Instead of doing elaborate overflow checks, we just limit the number of elements. This will avoid all overflow - // problems, as well as making sure big string objects are correctly allocated in the big object heap. - if (stringLength >= LARGE_OBJECT_SIZE - 256) - { - break; - } - - // This is typically the only call in the fast path. Making the call early seems to be better, as it allows the compiler - // to use volatile registers for intermediate values. This reduces the number of push/pop instructions and eliminates - // some reshuffling of intermediate values into nonvolatile registers around the call. - Thread *thread = GetThread(); - - SIZE_T totalSize = Utf8StringObject::GetSize(stringLength); - - // The method table's base size includes space for a terminating null character - _ASSERTE(totalSize >= g_pUtf8StringClass->GetBaseSize()); - _ASSERTE(totalSize - g_pUtf8StringClass->GetBaseSize() == stringLength); - - SIZE_T alignedTotalSize = ALIGN_UP(totalSize, DATA_ALIGNMENT); - _ASSERTE(alignedTotalSize >= totalSize); - totalSize = alignedTotalSize; - - gc_alloc_context *allocContext = thread->GetAllocContext(); - BYTE *allocPtr = allocContext->alloc_ptr; - _ASSERTE(allocPtr <= allocContext->alloc_limit); - if (totalSize > static_cast(allocContext->alloc_limit - allocPtr)) - { - break; - } - allocContext->alloc_ptr = allocPtr + totalSize; - - _ASSERTE(allocPtr != nullptr); - Utf8StringObject *stringObject = reinterpret_cast(allocPtr); - stringObject->SetMethodTable(g_pUtf8StringClass); - stringObject->SetLength(stringLength); - - return stringObject; - } while (false); - - // Tail call to the slow helper - ENDFORBIDGC(); - return HCCALL1(FramedAllocateUtf8String, stringLength); -} -HCIMPLEND -#endif // FEATURE_UTF8STRING - #include /*********************************************************************/ @@ -2482,22 +2428,6 @@ HCIMPL1(StringObject*, FramedAllocateString, DWORD stringLength) } HCIMPLEND -#ifdef FEATURE_UTF8STRING -HCIMPL1(Utf8StringObject*, FramedAllocateUtf8String, DWORD stringLength) -{ - FCALL_CONTRACT; - - UTF8STRINGREF result = NULL; - HELPER_METHOD_FRAME_BEGIN_RET_0(); // Set up a frame - - result = AllocateUtf8String(stringLength); - - HELPER_METHOD_FRAME_END(); - return((Utf8StringObject*) OBJECTREFToObject(result)); -} -HCIMPLEND -#endif // FEATURE_UTF8STRING - /*********************************************************************/ OBJECTHANDLE ConstructStringLiteral(CORINFO_MODULE_HANDLE scopeHnd, mdToken metaTok) { @@ -5304,6 +5234,75 @@ void JIT_Patchpoint(int* counter, int ilOffset) #endif // FEATURE_ON_STACK_REPLACEMENT +HCIMPL2(void, JIT_ClassProfile, Object *obj, void* tableAddress) +{ + FCALL_CONTRACT; + FC_GC_POLL_NOT_NEEDED(); + + OBJECTREF objRef = ObjectToOBJECTREF(obj); + VALIDATEOBJECTREF(objRef); + + ICorJitInfo::ClassProfile* const classProfile = (ICorJitInfo::ClassProfile*) tableAddress; + volatile unsigned* pCount = (volatile unsigned*) &classProfile->Count; + const unsigned count = *pCount++; + const unsigned S = ICorJitInfo::ClassProfile::SIZE; + const unsigned N = ICorJitInfo::ClassProfile::SAMPLE_INTERVAL; + _ASSERTE(N >= S); + + if (objRef == NULL) + { + return; + } + + CORINFO_CLASS_HANDLE clsHnd = (CORINFO_CLASS_HANDLE)objRef->GetMethodTable(); + +#ifdef _DEBUG + PgoManager::VerifyAddress(classProfile); + PgoManager::VerifyAddress(classProfile + 1); +#endif + + // If table is not yet full, just add entries in. + // + if (count < S) + { + classProfile->ClassTable[count] = clsHnd; + } + else + { + // generate a random number (xorshift32) + // + // intentionally simple so we can have multithreaded + // access w/o tearing state. + // + static volatile unsigned s_rng = 100; + + unsigned x = s_rng; + x ^= x << 13; + x ^= x >> 17; + x ^= x << 5; + s_rng = x; + + // N is the sampling window size, + // it should be larger than the table size. + // + // If we let N == count then we are building an entire + // run sample -- probability of update decreases over time. + // Would be a good strategy for an AOT profiler. + // + // But for TieredPGO we would prefer something that is more + // weighted to recent observations. + // + // For S=4, N=128, we'll sample (on average) every 32nd call. + // + if ((x % N) < S) + { + unsigned i = x % S; + classProfile->ClassTable[i] = clsHnd; + } + } +} +HCIMPLEND + //======================================================================== // // INTEROP HELPERS diff --git a/src/coreclr/src/vm/jitinterface.cpp b/src/coreclr/src/vm/jitinterface.cpp index b8274eb3344e..6515a798ba58 100644 --- a/src/coreclr/src/vm/jitinterface.cpp +++ b/src/coreclr/src/vm/jitinterface.cpp @@ -7399,9 +7399,6 @@ bool getILIntrinsicImplementationForRuntimeHelpers(MethodDesc * ftn, if (methodTable == CoreLibBinder::GetClass(CLASS__BOOLEAN) || methodTable == CoreLibBinder::GetClass(CLASS__BYTE) || methodTable == CoreLibBinder::GetClass(CLASS__SBYTE) -#ifdef FEATURE_UTF8STRING - || methodTable == CoreLibBinder::GetClass(CLASS__CHAR8) -#endif // FEATURE_UTF8STRING || methodTable == CoreLibBinder::GetClass(CLASS__CHAR) || methodTable == CoreLibBinder::GetClass(CLASS__INT16) || methodTable == CoreLibBinder::GetClass(CLASS__UINT16) @@ -11927,6 +11924,54 @@ HRESULT CEEJitInfo::getMethodBlockCounts ( return hr; } +CORINFO_CLASS_HANDLE CEEJitInfo::getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32 * pLikelihood, + UINT32 * pNumberOfClasses +) +{ + CONTRACTL { + THROWS; + GC_TRIGGERS; + MODE_PREEMPTIVE; + } CONTRACTL_END; + + CORINFO_CLASS_HANDLE result = NULL; + *pLikelihood = 0; + *pNumberOfClasses = 0; + + JIT_TO_EE_TRANSITION(); + +#ifdef FEATURE_PGO + + // Query the PGO manager's per call site class profile. + // + MethodDesc* pMD = (MethodDesc*)ftnHnd; + unsigned codeSize = 0; + if (pMD->IsDynamicMethod()) + { + unsigned stackSize, ehSize; + CorInfoOptions options; + DynamicResolver * pResolver = m_pMethodBeingCompiled->AsDynamicMethodDesc()->GetResolver(); + pResolver->GetCodeInfo(&codeSize, &stackSize, &options, &ehSize); + } + else if (pMD->HasILHeader()) + { + COR_ILMETHOD_DECODER decoder(pMD->GetILHeader()); + codeSize = decoder.GetCodeSize(); + } + + result = PgoManager::getLikelyClass(pMD, codeSize, ilOffset, pLikelihood, pNumberOfClasses); + +#endif + + EE_TO_JIT_TRANSITION(); + + return result; +} + void CEEJitInfo::allocMem ( ULONG hotCodeSize, /* IN */ ULONG coldCodeSize, /* IN */ @@ -12246,8 +12291,6 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr, CorJitResult ret = CORJIT_SKIPPED; // Note that CORJIT_SKIPPED is an error exit status code - comp->setJitFlags(jitFlags); - #ifdef FEATURE_STACK_SAMPLING static ConfigDWORD s_stackSamplingEnabled; bool samplingEnabled = (s_stackSamplingEnabled.val(CLRConfig::UNSUPPORTED_StackSamplingEnabled) != 0); @@ -12260,6 +12303,9 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr, #endif ) { + CORJIT_FLAGS altJitFlags = jitFlags; + altJitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT); + comp->setJitFlags(altJitFlags); ret = jitMgr->m_alternateJit->compileMethod( comp, info, CORJIT_FLAGS::CORJIT_FLAG_CALL_GETJITFLAGS, @@ -12283,6 +12329,7 @@ CorJitResult invokeCompileMethodHelper(EEJitManager *jitMgr, } } #endif // defined(ALLOW_SXS_JIT) && !defined(CROSSGEN_COMPILE) + comp->setJitFlags(jitFlags); #ifdef FEATURE_INTERPRETER static ConfigDWORD s_InterpreterFallback; @@ -12661,7 +12708,13 @@ CORJIT_FLAGS GetCompileFlags(MethodDesc * ftn, CORJIT_FLAGS flags, CORINFO_METHO #ifdef FEATURE_PGO - if (CLRConfig::GetConfigValue(CLRConfig::INTERNAL_WritePGOData) > 0) + // Instrument, if + // + // * We're writing pgo data and we're jitting at Tier0. + // * Tiered PGO is enabled and we're jitting at Tier0. + // + if ((CLRConfig::GetConfigValue(CLRConfig::INTERNAL_WritePGOData) > 0) + && flags.IsSet(CORJIT_FLAGS::CORJIT_FLAG_TIER0)) { flags.Set(CORJIT_FLAGS::CORJIT_FLAG_BBINSTR); } @@ -14160,6 +14213,17 @@ HRESULT CEEInfo::getMethodBlockCounts( UNREACHABLE_RET(); // only called on derived class. } +CORINFO_CLASS_HANDLE CEEInfo::getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfCases +) +{ + LIMITED_METHOD_CONTRACT; + UNREACHABLE_RET(); // only called on derived class. +} void CEEInfo::recordCallSite( ULONG instrOffset, /* IN */ diff --git a/src/coreclr/src/vm/jitinterface.h b/src/coreclr/src/vm/jitinterface.h index 0d2a720299a4..7518004464e7 100644 --- a/src/coreclr/src/vm/jitinterface.h +++ b/src/coreclr/src/vm/jitinterface.h @@ -203,11 +203,6 @@ extern FCDECL1(StringObject*, AllocateString_MP_FastPortable, DWORD stringLength extern FCDECL1(StringObject*, UnframedAllocateString, DWORD stringLength); extern FCDECL1(StringObject*, FramedAllocateString, DWORD stringLength); -#ifdef FEATURE_UTF8STRING -extern FCDECL1(Utf8StringObject*, AllocateUtf8String_MP_FastPortable, DWORD stringLength); -extern FCDECL1(Utf8StringObject*, FramedAllocateUtf8String, DWORD stringLength); -#endif // FEATURE_UTF8STRING - extern FCDECL2(Object*, JIT_NewArr1VC_MP_FastPortable, CORINFO_CLASS_HANDLE arrayMT, INT_PTR size); extern FCDECL2(Object*, JIT_NewArr1OBJ_MP_FastPortable, CORINFO_CLASS_HANDLE arrayMT, INT_PTR size); extern FCDECL2(Object*, JIT_NewArr1, CORINFO_CLASS_HANDLE arrayMT, INT_PTR size); @@ -1050,6 +1045,14 @@ class CEEInfo : public ICorJitInfo UINT32 * pNumRuns ); + CORINFO_CLASS_HANDLE getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32 * pLikelihood, + UINT32 * pNumberOfClasses + ); + void recordCallSite( ULONG instrOffset, /* IN */ CORINFO_SIG_INFO * callSig, /* IN */ @@ -1252,6 +1255,14 @@ class CEEJitInfo : public CEEInfo UINT32 * pNumRuns ); + CORINFO_CLASS_HANDLE getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32 * pLikelihood, + UINT32 * pNumberOfClasses + ); + void recordCallSite( ULONG instrOffset, /* IN */ CORINFO_SIG_INFO * callSig, /* IN */ diff --git a/src/coreclr/src/vm/jitinterfacegen.cpp b/src/coreclr/src/vm/jitinterfacegen.cpp index 661d68fa7d8d..68ab56aeb96e 100644 --- a/src/coreclr/src/vm/jitinterfacegen.cpp +++ b/src/coreclr/src/vm/jitinterfacegen.cpp @@ -79,9 +79,6 @@ void InitJITHelpers1() SetJitHelperFunction(CORINFO_HELP_NEWARR_1_OBJ, JIT_NewArr1OBJ_MP_FastPortable); ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateString_MP_FastPortable), ECall::FastAllocateString); -#ifdef FEATURE_UTF8STRING - ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateUtf8String_MP_FastPortable), ECall::FastAllocateUtf8String); -#endif // FEATURE_UTF8STRING #else // TARGET_UNIX // if (multi-proc || server GC) if (GCHeapUtilities::UseThreadAllocationContexts()) @@ -93,9 +90,6 @@ void InitJITHelpers1() SetJitHelperFunction(CORINFO_HELP_NEWARR_1_OBJ, JIT_NewArr1OBJ_MP_InlineGetThread); ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateStringFastMP_InlineGetThread), ECall::FastAllocateString); -#ifdef FEATURE_UTF8STRING - ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateUtf8String_MP_FastPortable), ECall::FastAllocateUtf8String); -#endif // FEATURE_UTF8STRING } else { @@ -110,9 +104,6 @@ void InitJITHelpers1() SetJitHelperFunction(CORINFO_HELP_NEWARR_1_OBJ, JIT_NewArr1OBJ_UP); ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateStringFastUP), ECall::FastAllocateString); -#ifdef FEATURE_UTF8STRING - ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateUtf8String_MP_FastPortable), ECall::FastAllocateUtf8String); -#endif // FEATURE_UTF8STRING } #endif // TARGET_UNIX } diff --git a/src/coreclr/src/vm/marshalnative.cpp b/src/coreclr/src/vm/marshalnative.cpp index 91f311b58e30..56d874c2ed78 100644 --- a/src/coreclr/src/vm/marshalnative.cpp +++ b/src/coreclr/src/vm/marshalnative.cpp @@ -37,64 +37,12 @@ #ifdef FEATURE_COMINTEROP #include "comcallablewrapper.h" -#include "cominterfacemarshaler.h" #include "commtmemberinfomap.h" #include "runtimecallablewrapper.h" #include "olevariant.h" #include "interoputil.h" -#include "stubhelpers.h" #endif // FEATURE_COMINTEROP -#ifdef FEATURE_COMINTEROP_APARTMENT_SUPPORT -#include "olecontexthelpers.h" -#endif // FEATURE_COMINTEROP_APARTMENT_SUPPORT - -// -// NumParamBytes -// Counts # of parameter bytes -INT32 QCALLTYPE MarshalNative::NumParamBytes(MethodDesc * pMD) -{ - QCALL_CONTRACT; - - // Arguments are check on managed side - PRECONDITION(pMD != NULL); - - INT32 cbParamBytes = 0; - - BEGIN_QCALL; - - if (!(pMD->IsNDirect())) - COMPlusThrow(kArgumentException, IDS_EE_NOTNDIRECT); - - // Read the unmanaged stack size from the stub MethodDesc. For vararg P/Invoke, - // this function returns size of the fixed portion of the stack. - // Note that the following code does not throw if the DllImport declaration is - // incorrect (such as a vararg method not marked as CallingConvention.Cdecl). - - MethodDesc * pStubMD = NULL; - - PCODE pTempStub = NULL; - pTempStub = GetStubForInteropMethod(pMD, NDIRECTSTUB_FL_FOR_NUMPARAMBYTES, &pStubMD); - _ASSERTE(pTempStub == NULL); - - _ASSERTE(pStubMD != NULL && pStubMD->IsILStub()); - - cbParamBytes = pStubMD->AsDynamicMethodDesc()->GetNativeStackArgSize(); - -#ifdef HOST_X86 - if (((NDirectMethodDesc *)pMD)->IsThisCall()) - { - // The size of 'this' is not included in native stack arg size. - cbParamBytes += sizeof(LPVOID); - } -#endif // HOST_X86 - - END_QCALL; - - return cbParamBytes; -} - - // Prelink // Does advance loading of an N/Direct library VOID QCALLTYPE MarshalNative::Prelink(MethodDesc * pMD) @@ -288,11 +236,6 @@ FCIMPL1(FC_BOOL_RET, MarshalNative::IsPinnable, Object* obj) if (obj->GetMethodTable() == g_pStringClass) FC_RETURN_BOOL(TRUE); -#ifdef FEATURE_UTF8STRING - if (obj->GetMethodTable() == g_pUtf8StringClass) - FC_RETURN_BOOL(TRUE); -#endif // FEATURE_UTF8STRING - if (obj->GetMethodTable()->IsArray()) { BASEARRAYREF asArray = (BASEARRAYREF)ObjectToOBJECTREF(obj); @@ -508,11 +451,6 @@ void ValidatePinnedObject(OBJECTREF obj) if (obj->GetMethodTable() == g_pStringClass) return; -#ifdef FEATURE_UTF8STRING - if (obj->GetMethodTable() == g_pUtf8StringClass) - return; -#endif // FEATURE_UTF8STRING - if (obj->GetMethodTable()->IsArray()) { BASEARRAYREF asArray = (BASEARRAYREF) obj; @@ -697,7 +635,7 @@ FCIMPLEND //==================================================================== // return the IUnknown* for an Object. //==================================================================== -FCIMPL2(IUnknown*, MarshalNative::GetIUnknownForObjectNative, Object* orefUNSAFE, CLR_BOOL fOnlyInContext) +FCIMPL1(IUnknown*, MarshalNative::GetIUnknownForObjectNative, Object* orefUNSAFE) { FCALL_CONTRACT; @@ -709,47 +647,7 @@ FCIMPL2(IUnknown*, MarshalNative::GetIUnknownForObjectNative, Object* orefUNSAFE // Ensure COM is started up. EnsureComStarted(); - if (fOnlyInContext && !IsObjectInContext(&oref)) - retVal = NULL; - else - retVal = GetComIPFromObjectRef(&oref, ComIpType_OuterUnknown, NULL); - - HELPER_METHOD_FRAME_END(); - return retVal; -} -FCIMPLEND - -//==================================================================== -// return the raw IUnknown* for a COM Object not related to current -// context. -// Does not AddRef the returned pointer -//==================================================================== -FCIMPL1(IUnknown*, MarshalNative::GetRawIUnknownForComObjectNoAddRef, Object* orefUNSAFE) -{ - FCALL_CONTRACT; - - IUnknown* retVal = NULL; - OBJECTREF oref = (OBJECTREF) orefUNSAFE; - HELPER_METHOD_FRAME_BEGIN_RET_1(oref); - - HRESULT hr = S_OK; - - if(!oref) - COMPlusThrowArgumentNull(W("o")); - - MethodTable* pMT = oref->GetMethodTable(); - PREFIX_ASSUME(pMT != NULL); - if(!pMT->IsComObjectType()) - COMPlusThrow(kArgumentException, IDS_EE_SRC_OBJ_NOT_COMOBJECT); - - // Ensure COM is started up. - EnsureComStarted(); - - RCWHolder pRCW(GetThread()); - pRCW.Init(oref); - - // Retrieve raw IUnknown * without AddRef for better performance - retVal = pRCW->GetRawIUnknown_NoAddRef(); + retVal = GetComIPFromObjectRef(&oref, ComIpType_OuterUnknown, NULL); HELPER_METHOD_FRAME_END(); return retVal; @@ -759,7 +657,7 @@ FCIMPLEND //==================================================================== // return the IDispatch* for an Object. //==================================================================== -FCIMPL2(IDispatch*, MarshalNative::GetIDispatchForObjectNative, Object* orefUNSAFE, CLR_BOOL fOnlyInContext) +FCIMPL1(IDispatch*, MarshalNative::GetIDispatchForObjectNative, Object* orefUNSAFE) { FCALL_CONTRACT; @@ -771,10 +669,7 @@ FCIMPL2(IDispatch*, MarshalNative::GetIDispatchForObjectNative, Object* orefUNSA // Ensure COM is started up. EnsureComStarted(); - if (fOnlyInContext && !IsObjectInContext(&oref)) - retVal = NULL; - else - retVal = (IDispatch*)GetComIPFromObjectRef(&oref, ComIpType_Dispatch, NULL); + retVal = (IDispatch*)GetComIPFromObjectRef(&oref, ComIpType_Dispatch, NULL); HELPER_METHOD_FRAME_END(); return retVal; @@ -785,7 +680,7 @@ FCIMPLEND // return the IUnknown* representing the interface for the Object // Object o should support Type T //==================================================================== -FCIMPL4(IUnknown*, MarshalNative::GetComInterfaceForObjectNative, Object* orefUNSAFE, ReflectClassBaseObject* refClassUNSAFE, CLR_BOOL fOnlyInContext, CLR_BOOL bEnableCustomizedQueryInterface) +FCIMPL3(IUnknown*, MarshalNative::GetComInterfaceForObjectNative, Object* orefUNSAFE, ReflectClassBaseObject* refClassUNSAFE, CLR_BOOL bEnableCustomizedQueryInterface) { FCALL_CONTRACT; @@ -820,10 +715,7 @@ FCIMPL4(IUnknown*, MarshalNative::GetComInterfaceForObjectNative, Object* orefUN if (!::IsTypeVisibleFromCom(th)) COMPlusThrowArgumentException(W("t"), W("Argument_TypeMustBeVisibleFromCom")); - if (fOnlyInContext && !IsObjectInContext(&oref)) - retVal = NULL; - else - retVal = GetComIPFromObjectRef(&oref, th.GetMethodTable(), bEnableCustomizedQueryInterface); + retVal = GetComIPFromObjectRef(&oref, th.GetMethodTable(), bEnableCustomizedQueryInterface); HELPER_METHOD_FRAME_END(); return retVal; @@ -880,28 +772,6 @@ FCIMPL1(Object*, MarshalNative::GetUniqueObjectForIUnknownNative, IUnknown* pUnk } FCIMPLEND -FCIMPL1(Object*, MarshalNative::GetUniqueObjectForIUnknownWithoutUnboxing, IUnknown* pUnk) -{ - FCALL_CONTRACT; - - OBJECTREF oref = NULL; - HELPER_METHOD_FRAME_BEGIN_RET_1(oref); - - HRESULT hr = S_OK; - - if(!pUnk) - COMPlusThrowArgumentNull(W("pUnk")); - - // Ensure COM is started up. - EnsureComStarted(); - - GetObjectRefFromComIP(&oref, pUnk, NULL, NULL, ObjFromComIP::UNIQUE_OBJECT); - - HELPER_METHOD_FRAME_END(); - return OBJECTREFToObject(oref); -} -FCIMPLEND - //==================================================================== // return an Object for IUnknown, using the Type T, // NOTE: @@ -1396,44 +1266,6 @@ FCIMPL1(int, MarshalNative::GetEndComSlot, ReflectClassBaseObject* tUNSAFE) } FCIMPLEND -//+---------------------------------------------------------------------------- -// -// Method: MarshalNative::WrapIUnknownWithComObject -// Synopsis: unmarshal the buffer and return IUnknown -// - -// -//+---------------------------------------------------------------------------- -FCIMPL1(Object*, MarshalNative::WrapIUnknownWithComObject, IUnknown* pUnk) -{ - CONTRACTL - { - FCALL_CHECK; - PRECONDITION(CheckPointer(pUnk, NULL_OK)); - } - CONTRACTL_END; - - OBJECTREF cref = NULL; - HELPER_METHOD_FRAME_BEGIN_RET_0(); - - if(pUnk == NULL) - COMPlusThrowArgumentNull(W("punk")); - - EnsureComStarted(); - - COMInterfaceMarshaler marshaler; - marshaler.Init(pUnk, g_pBaseCOMObject, GET_THREAD()); - - cref = marshaler.WrapWithComObject(); - - if (cref == NULL) - COMPlusThrowOM(); - - HELPER_METHOD_FRAME_END(); - return OBJECTREFToObject(cref); -} -FCIMPLEND - FCIMPL2(void, MarshalNative::ChangeWrapperHandleStrength, Object* orefUNSAFE, CLR_BOOL fIsWeak) { FCALL_CONTRACT; @@ -1512,43 +1344,6 @@ int MarshalNative::GetComSlotInfo(MethodTable *pMT, MethodTable **ppDefItfMT) } } -BOOL MarshalNative::IsObjectInContext(OBJECTREF *pObj) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_COOPERATIVE; - PRECONDITION(pObj != NULL); - } - CONTRACTL_END; - - SyncBlock* pBlock = (*pObj)->GetSyncBlock(); - - InteropSyncBlockInfo* pInteropInfo = pBlock->GetInteropInfo(); - - ComCallWrapper* pCCW = pInteropInfo->GetCCW(); - - if((pCCW) || (!pInteropInfo->RCWWasUsed())) - { - // We are dealing with a CCW. Since CCW's are agile, they are always in the - // correct context. - return TRUE; - } - else - { - RCWHolder pRCW(GetThread()); - pRCW.Init(pBlock); - - // We are dealing with an RCW, we need to check to see if the current - // context is the one it was first seen in. - LPVOID pCtxCookie = GetCurrentCtxCookie(); - _ASSERTE(pCtxCookie != NULL); - - return pCtxCookie == pRCW->GetWrapperCtxCookie(); - } -} - void QCALLTYPE MarshalNative::GetTypeFromCLSID(REFCLSID clsid, PCWSTR wszServer, QCall::ObjectHandleOnStack retType) { QCALL_CONTRACT; diff --git a/src/coreclr/src/vm/marshalnative.h b/src/coreclr/src/vm/marshalnative.h index aa2803fa5a50..fc92e26028a7 100644 --- a/src/coreclr/src/vm/marshalnative.h +++ b/src/coreclr/src/vm/marshalnative.h @@ -16,28 +16,9 @@ #define MAX_UTF8_CHAR_SIZE 3 -//!!! Must be kept in sync with ArrayWithOffset class layout. -struct ArrayWithOffsetData -{ - BASEARRAYREF m_Array; - INT32 m_cbOffset; - INT32 m_cbCount; -}; - - -#ifdef FEATURE_COMINTEROP -enum ComMemberType -{ - CMT_Method = 0, - CMT_PropGet = 1, - CMT_PropSet = 2 -}; -#endif // FEATURE_COMINTEROP - class MarshalNative { public: - static INT32 QCALLTYPE NumParamBytes(MethodDesc * pMD); static VOID QCALLTYPE Prelink(MethodDesc * pMD); //==================================================================== @@ -71,25 +52,18 @@ class MarshalNative //==================================================================== // return the IUnknown* for an Object //==================================================================== - static FCDECL2(IUnknown*, GetIUnknownForObjectNative, Object* orefUNSAFE, CLR_BOOL fOnlyInContext); - - //==================================================================== - // return the raw IUnknown* for a COM Object not related to current - // context - // Does not AddRef the returned pointer - //==================================================================== - static FCDECL1(IUnknown*, GetRawIUnknownForComObjectNoAddRef, Object* orefUNSAFE); + static FCDECL1(IUnknown*, GetIUnknownForObjectNative, Object* orefUNSAFE); //==================================================================== // return the IDispatch* for an Object //==================================================================== - static FCDECL2(IDispatch*, GetIDispatchForObjectNative, Object* orefUNSAFE, CLR_BOOL fOnlyInContext); + static FCDECL1(IDispatch*, GetIDispatchForObjectNative, Object* orefUNSAFE); //==================================================================== // return the IUnknown* representing the interface for the Object // Object o should support Type T //==================================================================== - static FCDECL4(IUnknown*, GetComInterfaceForObjectNative, Object* orefUNSAFE, ReflectClassBaseObject* refClassUNSAFE, CLR_BOOL fOnlyInContext, CLR_BOOL bEnableCustomizedQueryInterface); + static FCDECL3(IUnknown*, GetComInterfaceForObjectNative, Object* orefUNSAFE, ReflectClassBaseObject* refClassUNSAFE, CLR_BOOL bEnableCustomizedQueryInterface); //==================================================================== // return an Object for IUnknown @@ -101,11 +75,6 @@ class MarshalNative //==================================================================== static FCDECL1(Object*, GetUniqueObjectForIUnknownNative, IUnknown* pUnk); - //==================================================================== - // return a unique cacheless Object for IUnknown - //==================================================================== - static FCDECL1(Object*, GetUniqueObjectForIUnknownWithoutUnboxing, IUnknown* pUnk); - //==================================================================== // return an Object for IUnknown, using the Type T, // NOTE: @@ -164,8 +133,6 @@ class MarshalNative static FCDECL1(int, GetStartComSlot, ReflectClassBaseObject* tUNSAFE); static FCDECL1(int, GetEndComSlot, ReflectClassBaseObject* tUNSAFE); - static FCDECL1(Object*, WrapIUnknownWithComObject, IUnknown* pUnk); - static FCDECL2(void, ChangeWrapperHandleStrength, Object* orefUNSAFE, CLR_BOOL fIsWeak); //==================================================================== @@ -175,7 +142,6 @@ class MarshalNative private: static int GetComSlotInfo(MethodTable *pMT, MethodTable **ppDefItfMT); - static BOOL IsObjectInContext(OBJECTREF *pObj); #endif // FEATURE_COMINTEROP }; diff --git a/src/coreclr/src/vm/metasig.h b/src/coreclr/src/vm/metasig.h index 03b2e457271b..0714e0c50e20 100644 --- a/src/coreclr/src/vm/metasig.h +++ b/src/coreclr/src/vm/metasig.h @@ -414,16 +414,6 @@ DEFINE_METASIG(IM(Obj_Int_RetIntPtr, j i, I)) DEFINE_METASIG(IM(ArrByte_Int_Int_RetVoid, a(b) i i, v)) DEFINE_METASIG(IM(PtrByte_RetVoid, P(b), v)) -#ifdef FEATURE_UTF8STRING -DEFINE_METASIG_T(IM(ReadOnlySpanOfByte_RetUtf8Str, GI(g(READONLY_SPAN), 1, b), C(UTF8_STRING))) -DEFINE_METASIG_T(IM(ReadOnlySpanOfChar_RetUtf8Str, GI(g(READONLY_SPAN), 1, u), C(UTF8_STRING))) -DEFINE_METASIG_T(IM(ArrByte_Int_Int_RetUtf8Str, a(b) i i, C(UTF8_STRING))) -DEFINE_METASIG_T(IM(PtrByte_RetUtf8Str, P(b), C(UTF8_STRING))) -DEFINE_METASIG_T(IM(ArrChar_Int_Int_RetUtf8Str, a(u) i i, C(UTF8_STRING))) -DEFINE_METASIG_T(IM(PtrChar_RetUtf8Str, P(u), C(UTF8_STRING))) -DEFINE_METASIG_T(IM(String_RetUtf8Str, s, C(UTF8_STRING))) -#endif // FEATURE_UTF8STRING - DEFINE_METASIG(IM(Char_Char_RetStr, u u, s)) DEFINE_METASIG(IM(Char_Int_RetVoid, u i, v)) DEFINE_METASIG_T(SM(RetCultureInfo, _, C(CULTURE_INFO))) diff --git a/src/coreclr/src/vm/methodtablebuilder.cpp b/src/coreclr/src/vm/methodtablebuilder.cpp index ec07edc2b557..5e09e619b9e8 100644 --- a/src/coreclr/src/vm/methodtablebuilder.cpp +++ b/src/coreclr/src/vm/methodtablebuilder.cpp @@ -9770,19 +9770,6 @@ void MethodTableBuilder::CheckForSystemTypes() pMT->SetComponentSize(2); } -#ifdef FEATURE_UTF8STRING - else if (strcmp(name, g_Utf8StringName) == 0 && strcmp(nameSpace, g_SystemNS) == 0) - { - // Utf8Strings are not "normal" objects, so we need to mess with their method table a bit - // so that the GC can figure out how big each string is... - DWORD baseSize = Utf8StringObject::GetBaseSize(); - pMT->SetBaseSize(baseSize); // NULL character included - - GetHalfBakedClass()->SetBaseSizePadding(baseSize - bmtFP->NumInstanceFieldBytes); - - pMT->SetComponentSize(1); - } -#endif // FEATURE_UTF8STRING else if (strcmp(name, g_CriticalFinalizerObjectName) == 0 && strcmp(nameSpace, g_ConstrainedExecutionNS) == 0) { // To introduce a class with a critical finalizer, diff --git a/src/coreclr/src/vm/object.h b/src/coreclr/src/vm/object.h index 0604d6583401..9f6bdf8562ad 100644 --- a/src/coreclr/src/vm/object.h +++ b/src/coreclr/src/vm/object.h @@ -783,9 +783,6 @@ typedef DPTR(UPTRArray) PTR_UPTRArray; typedef DPTR(PTRArray) PTR_PTRArray; class StringObject; -#ifdef FEATURE_UTF8STRING -class Utf8StringObject; -#endif // FEATURE_UTF8STRING #ifdef USE_CHECKED_OBJECTREFS typedef REF BASEARRAYREF; @@ -804,9 +801,6 @@ typedef REF UPTRARRAYREF; typedef REF CHARARRAYREF; typedef REF PTRARRAYREF; // Warning: Use PtrArray only for single dimensional arrays, not multidim arrays. typedef REF STRINGREF; -#ifdef FEATURE_UTF8STRING -typedef REF UTF8STRINGREF; -#endif // FEATURE_UTF8STRING #else // USE_CHECKED_OBJECTREFS @@ -826,9 +820,6 @@ typedef PTR_UPTRArray UPTRARRAYREF; typedef PTR_CHARArray CHARARRAYREF; typedef PTR_PTRArray PTRARRAYREF; // Warning: Use PtrArray only for single dimensional arrays, not multidim arrays. typedef PTR_StringObject STRINGREF; -#ifdef FEATURE_UTF8STRING -typedef PTR_Utf8StringObject UTF8STRINGREF; -#endif // FEATURE_UTF8STRING #endif // USE_CHECKED_OBJECTREFS @@ -1067,56 +1058,6 @@ class ReflectClassBaseObject : public BaseObjectWithCachedData }; -#ifdef FEATURE_UTF8STRING -class Utf8StringObject : public Object -{ -#ifdef DACCESS_COMPILE - friend class ClrDataAccess; -#endif - -private: - DWORD m_StringLength; - BYTE m_FirstChar; - -public: - VOID SetLength(DWORD len) { LIMITED_METHOD_CONTRACT; _ASSERTE(len >= 0); m_StringLength = len; } - -protected: - Utf8StringObject() { LIMITED_METHOD_CONTRACT; } - ~Utf8StringObject() { LIMITED_METHOD_CONTRACT; } - -public: - - /*=================RefInterpretGetStringValuesDangerousForGC====================== - **N.B.: This perfoms no range checking and relies on the caller to have done this. - **Args: (IN)ref -- the Utf8String to be interpretted. - ** (OUT)chars -- a pointer to the characters in the buffer. - ** (OUT)length -- a pointer to the length of the buffer. - **Returns: void. - **Exceptions: None. - ==============================================================================*/ - // !!!! If you use this function, you have to be careful because chars is a pointer - // !!!! to the data buffer of ref. If GC happens after this call, you need to make - // !!!! sure that you have a pin handle on ref, or use GCPROTECT_BEGINPINNING on ref. - void RefInterpretGetStringValuesDangerousForGC(__deref_out_ecount(*length + 1) CHAR **chars, int *length) { - WRAPPER_NO_CONTRACT; - - _ASSERTE(GetGCSafeMethodTable() == g_pUtf8StringClass); - *length = GetStringLength(); - *chars = GetBuffer(); -#ifdef _DEBUG - EnableStressHeapHelper(); -#endif - } - - DWORD GetStringLength() { LIMITED_METHOD_DAC_CONTRACT; return( m_StringLength );} - CHAR* GetBuffer() { LIMITED_METHOD_CONTRACT; return (CHAR*)( dac_cast(this) + offsetof(Utf8StringObject, m_FirstChar) ); } - - static DWORD GetBaseSize(); - static SIZE_T GetSize(DWORD stringLength); -}; -#endif // FEATURE_UTF8STRING - // This is the Method version of the Reflection object. // A Method has adddition information. // m_pMD - A pointer to the actual MethodDesc of the method. diff --git a/src/coreclr/src/vm/object.inl b/src/coreclr/src/vm/object.inl index e82fdebfbeb5..e61f2eb443ba 100644 --- a/src/coreclr/src/vm/object.inl +++ b/src/coreclr/src/vm/object.inl @@ -60,22 +60,6 @@ __forceinline /*static*/ SIZE_T StringObject::GetSize(DWORD strLen) return GetBaseSize() + strLen * sizeof(WCHAR); } -#ifdef FEATURE_UTF8STRING -__forceinline /*static*/ DWORD Utf8StringObject::GetBaseSize() -{ - LIMITED_METHOD_DAC_CONTRACT; - - return OBJECT_BASESIZE + sizeof(DWORD) /* length */ + sizeof(BYTE) /* null terminator */; -} - -__forceinline /*static*/ SIZE_T Utf8StringObject::GetSize(DWORD strLen) -{ - LIMITED_METHOD_DAC_CONTRACT; - - return GetBaseSize() + strLen; -} -#endif // FEATURE_UTF8STRING - #ifdef DACCESS_COMPILE inline void Object::EnumMemoryRegions(void) diff --git a/src/coreclr/src/vm/olevariant.cpp b/src/coreclr/src/vm/olevariant.cpp index d4d256e01329..91d4105ef853 100644 --- a/src/coreclr/src/vm/olevariant.cpp +++ b/src/coreclr/src/vm/olevariant.cpp @@ -2604,29 +2604,9 @@ void OleVariant::MarshalRecordVariantOleToCom(VARIANT *pOleVariant, LPVOID pvRecord = V_RECORD(pOleVariant); if (pvRecord) { - // Go to the registry to find the value class associated - // with the record's guid. - GUID guid; - { - GCX_PREEMP(); - IfFailThrow(pRecInfo->GetGuid(&guid)); - } - MethodTable *pValueClass = GetValueTypeForGUID(guid); - if (!pValueClass) - COMPlusThrow(kArgumentException, IDS_EE_CANNOT_MAP_TO_MANAGED_VC); - - // Now that we have the value class, allocate an instance of the - // boxed value class and copy the contents of the record into it. - BoxedValueClass = AllocateObject(pValueClass); - - MethodDesc* pStructMarshalStub; - { - GCX_PREEMP(); - - pStructMarshalStub = NDirect::CreateStructMarshalILStub(pValueClass); - } - - MarshalStructViaILStub(pStructMarshalStub, BoxedValueClass->GetData(), pvRecord, StructMarshalStubs::MarshalOperation::Unmarshal); + // This value type should have been registered through + // a TLB. CoreCLR doesn't support dynamic type mapping. + COMPlusThrow(kArgumentException, IDS_EE_CANNOT_MAP_TO_MANAGED_VC); } pComVariant->SetObjRef(BoxedValueClass); @@ -5096,21 +5076,9 @@ TypeHandle OleVariant::GetElementTypeForRecordSafeArray(SAFEARRAY* pSafeArray) } CONTRACTL_END; - HRESULT hr = S_OK; - - GUID guid; - { - GCX_PREEMP(); - - SafeComHolder pRecInfo; - IfFailThrow(SafeArrayGetRecordInfo(pSafeArray, &pRecInfo)); - IfFailThrow(pRecInfo->GetGuid(&guid)); - } - MethodTable *pValueClass = GetValueTypeForGUID(guid); - if (!pValueClass) - COMPlusThrow(kArgumentException, IDS_EE_CANNOT_MAP_TO_MANAGED_VC); - - return TypeHandle(pValueClass); + // CoreCLR doesn't support dynamic type mapping. + COMPlusThrow(kArgumentException, IDS_EE_CANNOT_MAP_TO_MANAGED_VC); + return TypeHandle(); // Unreachable } #endif //FEATURE_COMINTEROP diff --git a/src/coreclr/src/vm/pgo.cpp b/src/coreclr/src/vm/pgo.cpp index 16d57f29d8cc..3b7ab178984e 100644 --- a/src/coreclr/src/vm/pgo.cpp +++ b/src/coreclr/src/vm/pgo.cpp @@ -8,11 +8,82 @@ #ifdef FEATURE_PGO ICorJitInfo::BlockCounts* PgoManager::s_PgoData; -unsigned PgoManager::s_PgoIndex; +unsigned volatile PgoManager::s_PgoIndex; const char* const PgoManager::s_FileHeaderString = "*** START PGO Data, max index = %u ***\n"; const char* const PgoManager::s_FileTrailerString = "*** END PGO Data ***\n"; const char* const PgoManager::s_MethodHeaderString = "@@@ token 0x%08X hash 0x%08X ilSize 0x%08X records 0x%08X index %u\n"; const char* const PgoManager::s_RecordString = "ilOffs %u count %u\n"; +const char* const PgoManager::s_ClassProfileHeader = "classProfile iloffs %u samples %u entries %u totalCount %u %s\n"; +const char* const PgoManager::s_ClassProfileEntry = "class %p (%s) count %u\n"; + +// Data item in class profile histogram +// +struct HistogramEntry +{ + // Class that was observed at runtime + CORINFO_CLASS_HANDLE m_mt; + // Number of observations in the table + unsigned m_count; +}; + +// Summarizes a ClassProfile table by forming a Histogram +// +struct Histogram +{ + Histogram(const ICorJitInfo::ClassProfile* classProfile); + + // Number of nonzero entries in the histogram + unsigned m_count; + // Sum of counts from all entries in the histogram + unsigned m_totalCount; + // Histogram entries, in no particular order. + // The first m_count of these will be valid. + HistogramEntry m_histogram[ICorJitInfo::ClassProfile::SIZE]; +}; + +Histogram::Histogram(const ICorJitInfo::ClassProfile* classProfile) +{ + m_count = 0; + m_totalCount = 0; + + for (unsigned k = 0; k < ICorJitInfo::ClassProfile::SIZE; k++) + { + CORINFO_CLASS_HANDLE currentEntry = classProfile->ClassTable[k]; + + if (currentEntry == NULL) + { + continue; + } + + m_totalCount++; + + bool found = false; + unsigned h = 0; + for(; h < m_count; h++) + { + if (m_histogram[h].m_mt == currentEntry) + { + m_histogram[h].m_count++; + found = true; + break; + } + } + + if (!found) + { + m_histogram[h].m_mt = currentEntry; + m_histogram[h].m_count = 1; + m_count++; + } + } + + // Zero the remainder + for (unsigned k = m_count; k < ICorJitInfo::ClassProfile::SIZE; k++) + { + m_histogram[k].m_mt = 0; + m_histogram[k].m_count = 0; + } +} void PgoManager::Initialize() { @@ -36,6 +107,12 @@ void PgoManager::Shutdown() WritePgoData(); } +void PgoManager::VerifyAddress(void* address) +{ + _ASSERTE(address > s_PgoData); + _ASSERTE(address <= s_PgoData + BUFFER_SIZE); +} + void PgoManager::WritePgoData() { if (CLRConfig::GetConfigValue(CLRConfig::INTERNAL_WritePGOData) == 0) @@ -47,7 +124,6 @@ void PgoManager::WritePgoData() { return; } - CLRConfigStringHolder fileName(CLRConfig::GetConfigValue(CLRConfig::INTERNAL_PGODataPath)); if (fileName == NULL) @@ -80,15 +156,79 @@ void PgoManager::WritePgoData() index += 2; - ICorJitInfo::BlockCounts* records = &s_PgoData[index]; - unsigned recordCount = header->recordCount - 2; - unsigned lastOffset = 0; - for (unsigned i = 0; i < recordCount; i++) + ICorJitInfo::BlockCounts* records = &s_PgoData[index]; + unsigned recordCount = header->recordCount - 2; + unsigned lastOffset = 0; + bool hasClassProfile = false; + unsigned i = 0; + + while (i < recordCount) { const unsigned thisOffset = records[i].ILOffset; - assert((thisOffset > lastOffset) || (lastOffset == 0)); + + + if ((thisOffset & ICorJitInfo::ClassProfile::CLASS_FLAG) != 0) + { + // remainder must be class probe data + hasClassProfile = true; + break; + } + lastOffset = thisOffset; fprintf(pgoDataFile, s_RecordString, records[i].ILOffset, records[i].ExecutionCount); + i++; + } + + if (hasClassProfile) + { + fflush(pgoDataFile); + + // Write out histogram of each probe's data. + // We currently don't expect to be able to read this back in. + // + while (i < recordCount) + { + // Should be enough room left for a class profile. + _ASSERTE(i + sizeof(ICorJitInfo::ClassProfile) / sizeof(ICorJitInfo::BlockCounts) <= recordCount); + + const ICorJitInfo::ClassProfile* classProfile = (ICorJitInfo::ClassProfile*)&s_PgoData[i + index]; + + // Form a histogram... + // + Histogram h(classProfile); + + // And display... + // + // Figure out if this is a virtual or interface probe. + // + const char* profileType = "virtual"; + + if ((classProfile->ILOffset & ICorJitInfo::ClassProfile::INTERFACE_FLAG) != 0) + { + profileType = "interface"; + } + + // "classProfile iloffs %u samples %u entries %u totalCount %u %s\n"; + // + fprintf(pgoDataFile, s_ClassProfileHeader, (classProfile->ILOffset & ICorJitInfo::ClassProfile::OFFSET_MASK), + classProfile->Count, h.m_count, h.m_totalCount, profileType); + + for (unsigned j = 0; j < h.m_count; j++) + { + CORINFO_CLASS_HANDLE clsHnd = h.m_histogram[j].m_mt; + const char* className = "n/a"; +#ifdef _DEBUG + TypeHandle typeHnd(clsHnd); + MethodTable* pMT = typeHnd.AsMethodTable(); + className = pMT->GetDebugClassName(); +#endif + fprintf(pgoDataFile, s_ClassProfileEntry, clsHnd, className, h.m_histogram[j].m_count); + } + + // Advance to next entry. + // + i += sizeof(ICorJitInfo::ClassProfile) / sizeof(ICorJitInfo::BlockCounts); + } } index += recordCount; @@ -179,7 +319,7 @@ void PgoManager::ReadPgoData() continue; } - assert(index == rIndex); + _ASSERTE(index == rIndex); methods++; // If there's not enough room left, bail @@ -218,8 +358,13 @@ void PgoManager::ReadPgoData() if (sscanf_s(buffer, s_RecordString, &s_PgoData[index].ILOffset, &s_PgoData[index].ExecutionCount) != 2) { - failed = true; - break; + // This might be class profile data; if so just skip it. + // + if (strstr(buffer, "class") != buffer) + { + failed = true; + break; + } } index++; @@ -342,6 +487,172 @@ HRESULT PgoManager::getMethodBlockCounts(MethodDesc* pMD, unsigned ilSize, UINT3 return E_NOTIMPL; } +// See if there is a class profile for this method at the indicated il Offset. +// If so, return the most frequently seen class, along with the likelihood that +// it was the class seen, and the total number of classes seen. +// +// Return NULL if there is no profile data to be found. +// +CORINFO_CLASS_HANDLE PgoManager::getLikelyClass(MethodDesc* pMD, unsigned ilSize, unsigned ilOffset, UINT32* pLikelihood, UINT32* pNumberOfClasses) +{ + *pLikelihood = 0; + *pNumberOfClasses = 0; + + // Bail if there's no profile data. + // + if (s_PgoData == NULL) + { + return NULL; + } + + // See if we can find profile data for this method in the profile buffer. + // + const unsigned maxIndex = s_PgoIndex; + const unsigned token = pMD->IsDynamicMethod() ? 0 : pMD->GetMemberDef(); + const unsigned hash = pMD->GetStableHash(); + + unsigned index = 0; + unsigned methodsChecked = 0; + + while (index < maxIndex) + { + // The first two "records" of each entry are actually header data + // to identify the method. + // + Header* const header = (Header*)&s_PgoData[index]; + + // Sanity check that header data looks reasonable. If not, just + // fail the lookup. + // + if ((header->recordCount < MIN_RECORD_COUNT) || (header->recordCount > MAX_RECORD_COUNT)) + { + break; + } + + // See if the header info matches the current method. + // + if ((header->token == token) && (header->hash == hash) && (header->ilSize == ilSize)) + { + // Yep, found data. See if there is a suitable class profile. + // + // This bit is currently somewhat hacky ... we scan the records, the count records come + // first and are in increasing IL offset order. Class profiles have inverted IL offsets + // so when we find an offset with high bit set, it's going to be an class profile. + // + unsigned countILOffset = 0; + unsigned j = 2; + + // Skip past all the count entries + // + while (j < header->recordCount) + { + if ((s_PgoData[index + j].ILOffset & ICorJitInfo::ClassProfile::CLASS_FLAG) != 0) + { + break; + } + + countILOffset = s_PgoData[index + j].ILOffset; + j++; + } + + // Now we're in the "class profile" portion of the slab for this method. + // Look for the one that has the right IL offset. + // + while (j < header->recordCount) + { + const ICorJitInfo::ClassProfile* const classProfile = (ICorJitInfo::ClassProfile*)&s_PgoData[index + j]; + + if ((classProfile->ILOffset & ICorJitInfo::ClassProfile::OFFSET_MASK) != ilOffset) + { + // Need to make sure this is even divisor + // + j += sizeof(ICorJitInfo::ClassProfile) / sizeof(ICorJitInfo::BlockCounts); + continue; + } + + // Form a histogram + // + Histogram h(classProfile); + + // Use histogram count as number of classes estimate + // + *pNumberOfClasses = h.m_count; + + // Report back what we've learned + // (perhaps, use count to augment likelihood?) + // + switch (h.m_count) + { + case 0: + { + return NULL; + } + break; + + case 1: + { + *pLikelihood = 100; + return h.m_histogram[0].m_mt; + } + break; + + case 2: + { + if (h.m_histogram[0].m_count >= h.m_histogram[1].m_count) + { + *pLikelihood = (100 * h.m_histogram[0].m_count) / h.m_totalCount; + return h.m_histogram[0].m_mt; + } + else + { + *pLikelihood = (100 * h.m_histogram[1].m_count) / h.m_totalCount; + return h.m_histogram[1].m_mt; + } + } + break; + + default: + { + // Find maximum entry and return it + // + unsigned maxIndex = 0; + unsigned maxCount = 0; + + for (unsigned m = 0; m < h.m_count; m++) + { + if (h.m_histogram[m].m_count > maxCount) + { + maxIndex = m; + maxCount = h.m_histogram[m].m_count; + } + } + + if (maxCount > 0) + { + *pLikelihood = (100 * maxCount) / h.m_totalCount; + return h.m_histogram[maxIndex].m_mt; + } + + return NULL; + } + break; + } + } + + // Failed to find a class profile entry + // + return NULL; + } + + index += header->recordCount; + methodsChecked++; + } + + // Failed to find any sort of profile data for this method + // + return NULL; +} + #else // Stub version for !FEATURE_PGO builds @@ -364,4 +675,11 @@ HRESULT PgoManager::getMethodBlockCounts(MethodDesc* pMD, unsigned ilSize, UINT3 return E_NOTIMPL; } +// Stub version for !FEATURE_PGO builds +// +CORINFO_CLASS_HANDLE PgoManager::getLikelyClass(MethodDesc* pMD, unsigned ilSize, unsigned ilOffset) +{ + return NULL; +} + #endif // FEATURE_PGO diff --git a/src/coreclr/src/vm/pgo.h b/src/coreclr/src/vm/pgo.h index c5fc5273236f..3ba4ab6ddb87 100644 --- a/src/coreclr/src/vm/pgo.h +++ b/src/coreclr/src/vm/pgo.h @@ -22,18 +22,26 @@ class PgoManager static HRESULT allocMethodBlockCounts(MethodDesc* pMD, UINT32 count, ICorJitInfo::BlockCounts** pBlockCounts, unsigned ilSize); - // Retreive the profile block count buffer for a method + // Retrieve the profile block count buffer for a method static HRESULT getMethodBlockCounts(MethodDesc* pMD, unsigned ilSize, UINT32* pCount, ICorJitInfo::BlockCounts** pBlockCounts, UINT32* pNumRuns); + // Retrieve the most likely class for a particular call + static CORINFO_CLASS_HANDLE getLikelyClass(MethodDesc* pMD, unsigned ilSize, unsigned ilOffset, UINT32* pLikelihood, UINT32* pNumberOfClasses); + + // Verify address in bounds + static void VerifyAddress(void* address); + #ifdef FEATURE_PGO private: enum { - // Number of ICorJitInfo::BlockCount records in the global slab - BUFFER_SIZE = 64 * 1024, + // Number of ICorJitInfo::BlockCount records in the global slab. + // Currently 4MB for a 64 bit system. + // + BUFFER_SIZE = 8 * 64 * 1024, MIN_RECORD_COUNT = 3, MAX_RECORD_COUNT = BUFFER_SIZE }; @@ -57,13 +65,15 @@ class PgoManager static ICorJitInfo::BlockCounts* s_PgoData; // Index of next free entry in the global slab - static unsigned s_PgoIndex; + static unsigned volatile s_PgoIndex; // Formatting strings for file input/output static const char* const s_FileHeaderString; static const char* const s_FileTrailerString; static const char* const s_MethodHeaderString; static const char* const s_RecordString; + static const char* const s_ClassProfileHeader; + static const char* const s_ClassProfileEntry; #endif // FEATURE_PGO }; diff --git a/src/coreclr/src/vm/reflectioninvocation.cpp b/src/coreclr/src/vm/reflectioninvocation.cpp index 0051a9345c89..22be44f4a2bc 100644 --- a/src/coreclr/src/vm/reflectioninvocation.cpp +++ b/src/coreclr/src/vm/reflectioninvocation.cpp @@ -515,30 +515,28 @@ FCIMPL6(Object*, RuntimeTypeHandle::CreateInstance, ReflectClassBaseObject* refT } FCIMPLEND -FCIMPL2(Object*, RuntimeTypeHandle::CreateInstanceForGenericType, ReflectClassBaseObject* pTypeUNSAFE, ReflectClassBaseObject* pParameterTypeUNSAFE) { - FCALL_CONTRACT; - - struct _gc - { - OBJECTREF rv; - REFLECTCLASSBASEREF refType; - REFLECTCLASSBASEREF refParameterType; - } gc; - - gc.rv = NULL; - gc.refType = (REFLECTCLASSBASEREF)ObjectToOBJECTREF(pTypeUNSAFE); - gc.refParameterType = (REFLECTCLASSBASEREF)ObjectToOBJECTREF(pParameterTypeUNSAFE); +void QCALLTYPE RuntimeTypeHandle::CreateInstanceForAnotherGenericParameter( + QCall::TypeHandle pTypeHandle, + TypeHandle* pInstArray, + INT32 cInstArray, + QCall::ObjectHandleOnStack pInstantiatedObject +) +{ + CONTRACTL{ + QCALL_CHECK; + PRECONDITION(!pTypeHandle.AsTypeHandle().IsNull()); + PRECONDITION(cInstArray >= 0); + PRECONDITION(cInstArray == 0 || pInstArray != NULL); + } + CONTRACTL_END; - MethodDesc* pMeth; - TypeHandle genericType = gc.refType->GetType(); + TypeHandle genericType = pTypeHandle.AsTypeHandle(); - TypeHandle parameterHandle = gc.refParameterType->GetType(); + BEGIN_QCALL; _ASSERTE (genericType.HasInstantiation()); - HELPER_METHOD_FRAME_BEGIN_RET_PROTECT(gc); - - TypeHandle instantiatedType = ((TypeHandle)genericType.GetCanonicalMethodTable()).Instantiate(Instantiation(¶meterHandle, 1)); + TypeHandle instantiatedType = ((TypeHandle)genericType.GetCanonicalMethodTable()).Instantiate(Instantiation(pInstArray, (DWORD)cInstArray)); // Get the type information associated with refThis MethodTable* pVMT = instantiatedType.GetMethodTable(); @@ -546,24 +544,24 @@ FCIMPL2(Object*, RuntimeTypeHandle::CreateInstanceForGenericType, ReflectClassBa _ASSERTE( !pVMT->IsAbstract() ||! instantiatedType.ContainsGenericVariables()); _ASSERTE(!pVMT->IsByRefLike() && pVMT->HasDefaultConstructor()); - pMeth = pVMT->GetDefaultConstructor(); - MethodDescCallSite ctor(pMeth); - // We've got the class, lets allocate it and call the constructor // Nullables don't take this path, if they do we need special logic to make an instance _ASSERTE(!Nullable::IsNullableType(instantiatedType)); - gc.rv = instantiatedType.GetMethodTable()->Allocate(); - ARG_SLOT arg = ObjToArgSlot(gc.rv); + { + GCX_COOP(); - // Call the method - TryCallMethod(&ctor, &arg, true); + OBJECTREF newObj = instantiatedType.GetMethodTable()->Allocate(); + GCPROTECT_BEGIN(newObj); + CallDefaultConstructor(newObj); + GCPROTECT_END(); - HELPER_METHOD_FRAME_END(); - return OBJECTREFToObject(gc.rv); + pInstantiatedObject.Set(newObj); + } + + END_QCALL; } -FCIMPLEND NOINLINE FC_BOOL_RET IsInstanceOfTypeHelper(OBJECTREF obj, REFLECTCLASSBASEREF refType) { @@ -2193,19 +2191,15 @@ FCIMPL1(Object*, ReflectionSerialization::GetUninitializedObject, ReflectClassBa TypeHandle type = objType->GetType(); - // Don't allow arrays, pointers, byrefs or function pointers. - if (type.IsTypeDesc() || type.IsArray()) + // Don't allow void, arrays, pointers, byrefs or function pointers. + if (type.IsTypeDesc() || type.IsArray() || type.GetSignatureCorElementType() == ELEMENT_TYPE_VOID) COMPlusThrow(kArgumentException, W("Argument_InvalidValue")); MethodTable *pMT = type.AsMethodTable(); PREFIX_ASSUME(pMT != NULL); //We don't allow unitialized Strings or Utf8Strings. - if (pMT == g_pStringClass -#ifdef FEATURE_UTF8STRING - || pMT == g_pUtf8StringClass -#endif // FEATURE_UTF8STRING - ) { + if (pMT == g_pStringClass) { COMPlusThrow(kArgumentException, W("Argument_NoUninitializedStrings")); } diff --git a/src/coreclr/src/vm/runtimecallablewrapper.cpp b/src/coreclr/src/vm/runtimecallablewrapper.cpp index f7a29f861ce4..ea49362752da 100644 --- a/src/coreclr/src/vm/runtimecallablewrapper.cpp +++ b/src/coreclr/src/vm/runtimecallablewrapper.cpp @@ -615,88 +615,6 @@ void ComClassFactory::Cleanup() delete this; } -//------------------------------------------------------------- -// Returns true if the first parameter of the CA's method ctor is a System.Type -static BOOL AttributeFirstParamIsSystemType(mdCustomAttribute tkAttribute, IMDInternalImport *pImport) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_ANY; - PRECONDITION(CheckPointer(pImport)); - } - CONTRACTL_END; - - mdToken ctorToken; - IfFailThrow(pImport->GetCustomAttributeProps(tkAttribute, &ctorToken)); - - LPCSTR ctorName; - PCCOR_SIGNATURE ctorSig; - ULONG cbCtorSig; - - if (TypeFromToken(ctorToken) == mdtMemberRef) - { - IfFailThrow(pImport->GetNameAndSigOfMemberRef(ctorToken, &ctorSig, &cbCtorSig, &ctorName)); - } - else if (TypeFromToken(ctorToken) == mdtMethodDef) - { - IfFailThrow(pImport->GetNameAndSigOfMethodDef(ctorToken, &ctorSig, &cbCtorSig, &ctorName)); - } - else - { - ThrowHR(COR_E_BADIMAGEFORMAT); - } - - SigParser sigParser(ctorSig, cbCtorSig); - - ULONG callingConvention; - IfFailThrow(sigParser.GetCallingConvInfo(&callingConvention)); - if (callingConvention != IMAGE_CEE_CS_CALLCONV_HASTHIS) - { - ThrowHR(COR_E_BADIMAGEFORMAT); - } - - ULONG cParameters; - IfFailThrow(sigParser.GetData(&cParameters)); - if (cParameters < 1) - { - return FALSE; - } - - BYTE returnElmentType; - IfFailThrow(sigParser.GetByte(&returnElmentType)); - if (returnElmentType != ELEMENT_TYPE_VOID) - { - ThrowHR(COR_E_BADIMAGEFORMAT); - } - - BYTE paramElementType; - IfFailThrow(sigParser.GetByte(¶mElementType)); - if (paramElementType != ELEMENT_TYPE_CLASS) - { - return FALSE; - } - - mdToken paramTypeToken; - IfFailThrow(sigParser.GetToken(¶mTypeToken)); - - if (TypeFromToken(paramTypeToken) != mdtTypeRef) - { - return FALSE; - } - - LPCSTR paramTypeNamespace; - LPCSTR paramTypeName; - IfFailThrow(pImport->GetNameOfTypeRef(paramTypeToken, ¶mTypeNamespace, ¶mTypeName)); - if (strcmp("System", paramTypeNamespace) != 0 || strcmp("Type", paramTypeName) != 0) - { - return FALSE; - } - - return TRUE; -} - #endif // FEATURE_COMINTEROP_UNMANAGED_ACTIVATION #ifndef CROSSGEN_COMPILE @@ -1491,53 +1409,6 @@ RCW* RCW::CreateRCWInternal(IUnknown *pUnk, DWORD dwSyncBlockIndex, DWORD flags, // Initialize wrapper pWrap->Initialize(pUnk, dwSyncBlockIndex, pClassMT); - // Check to see if this is a DCOM proxy - const bool checkForDCOMProxy = (flags & CF_DetectDCOMProxy); - - if (checkForDCOMProxy) - { - // If the object is a DCOM proxy... - SafeComHolderPreemp pRpcOptions = NULL; - GCPressureSize pressureSize = GCPressureSize_None; - HRESULT hr = pWrap->SafeQueryInterfaceRemoteAware(IID_IRpcOptions, (IUnknown**)&pRpcOptions); - LogInteropQI(pUnk, IID_IRpcOptions, hr, "QI for IRpcOptions"); - if (S_OK == hr) - { - ULONG_PTR dwValue = 0; - hr = pRpcOptions->Query(pUnk, COMBND_SERVER_LOCALITY, &dwValue); - - if (SUCCEEDED(hr)) - { - if (dwValue == SERVER_LOCALITY_MACHINE_LOCAL || dwValue == SERVER_LOCALITY_REMOTE) - { - pWrap->m_Flags.m_fIsDCOMProxy = 1; - } - - switch(dwValue) - { - case SERVER_LOCALITY_PROCESS_LOCAL: - pressureSize = GCPressureSize_ProcessLocal; - break; - case SERVER_LOCALITY_MACHINE_LOCAL: - pressureSize = GCPressureSize_MachineLocal; - break; - case SERVER_LOCALITY_REMOTE: - pressureSize = GCPressureSize_Remote; - break; - default: - pressureSize = GCPressureSize_None; - break; - } - } - } - - // ...add the appropriate amount of memory pressure to the GC. - if (pressureSize != GCPressureSize_None) - { - pWrap->AddMemoryPressure(pressureSize); - } - } - pUnkHolder.SuppressRelease(); RETURN pWrap; @@ -2243,26 +2114,6 @@ HRESULT RCW::SafeQueryInterfaceRemoteAware(REFIID iid, IUnknown** ppResUnk) #endif //#ifndef CROSSGEN_COMPILE -// Helper method to allow us to compare a MethodTable against a known method table -// from CoreLib. If the CoreLib type isn't loaded, we don't load it because we -// know that it can't be the MethodTable we're curious about. -static bool MethodTableHasSameTypeDefAsCoreLibClass(MethodTable* pMT, BinderClassID classId) -{ - CONTRACTL - { - GC_NOTRIGGER; - NOTHROW; - MODE_ANY; - } - CONTRACTL_END; - - MethodTable* pMT_CoreLibClass = CoreLibBinder::GetClassIfExist(classId); - if (pMT_CoreLibClass == NULL) - return false; - - return (pMT->HasSameTypeDefAs(pMT_CoreLibClass) != FALSE); -} - #ifndef CROSSGEN_COMPILE // Performs QI for the given interface, optionally instantiating it with the given generic args. HRESULT RCW::CallQueryInterface(MethodTable *pMT, Instantiation inst, IID *piid, IUnknown **ppUnk) diff --git a/src/coreclr/src/vm/runtimecallablewrapper.h b/src/coreclr/src/vm/runtimecallablewrapper.h index 3922eee80170..c225c9b235bd 100644 --- a/src/coreclr/src/vm/runtimecallablewrapper.h +++ b/src/coreclr/src/vm/runtimecallablewrapper.h @@ -95,7 +95,7 @@ struct RCW // unused = 0x04, CF_NeedUniqueObject = 0x08, // always create a new RCW/object even if we have one cached already // unused = 0x10, - CF_DetectDCOMProxy = 0x20, // attempt to determine if the RCW is for a DCOM proxy + // unused = 0x20, }; static CreationFlags CreationFlagsFromObjForComIPFlags(ObjFromComIP::flags flags); @@ -301,13 +301,6 @@ struct RCW return m_cbRefCount; } - void GetCachedInterfaceTypes(BOOL bIInspectableOnly, - SArray * rgItfTables) - { - LIMITED_METHOD_DAC_CONTRACT; - - } - void GetCachedInterfacePointers(BOOL bIInspectableOnly, SArray * rgItfPtrs) { @@ -382,15 +375,6 @@ struct RCW return (m_Flags.m_MarshalingType == MarshalingType_FreeThreaded) ; } - // - // Is this COM object a DCOM Proxy? (For WinRT the RCW must have been created with CF_DetectDCOMProxy) - // - bool IsDCOMProxy() - { - LIMITED_METHOD_DAC_CONTRACT; - return m_Flags.m_fIsDCOMProxy == 1; - } - // // This COM object implements INoMarshal? // @@ -584,8 +568,6 @@ struct RCW DWORD m_MarshalingType:2; // MarshalingBehavior of the COM object. DWORD m_Detached:1; // set if the RCW was found dead during GC - - DWORD m_fIsDCOMProxy:1; // Is the object a proxy to a remote process }; } m_Flags; diff --git a/src/coreclr/src/vm/runtimehandles.h b/src/coreclr/src/vm/runtimehandles.h index 4063fd972237..4c5e9469da3c 100644 --- a/src/coreclr/src/vm/runtimehandles.h +++ b/src/coreclr/src/vm/runtimehandles.h @@ -247,8 +247,8 @@ class RuntimeTypeHandle { static FCDECL1(MethodDesc *, GetFirstIntroducedMethod, ReflectClassBaseObject* pType); static FCDECL1(void, GetNextIntroducedMethod, MethodDesc **ppMethod); - static FCDECL2(Object*, CreateInstanceForGenericType, ReflectClassBaseObject* pType - , ReflectClassBaseObject* parameterType ); + static + void QCALLTYPE CreateInstanceForAnotherGenericParameter(QCall::TypeHandle pTypeHandle, TypeHandle *pInstArray, INT32 cInstArray, QCall::ObjectHandleOnStack pInstantiatedObject); static FCDECL1(IMDInternalImport*, GetMetadataImport, ReflectClassBaseObject * pModuleUNSAFE); diff --git a/src/coreclr/src/vm/stubhelpers.cpp b/src/coreclr/src/vm/stubhelpers.cpp index ea21bcbf4bc3..11f0af94b1ef 100644 --- a/src/coreclr/src/vm/stubhelpers.cpp +++ b/src/coreclr/src/vm/stubhelpers.cpp @@ -607,109 +607,6 @@ FCIMPL2(void, StubHelpers::ThrowInteropParamException, UINT resID, UINT paramIdx } FCIMPLEND -#ifdef FEATURE_COMINTEROP -class COMInterfaceMarshalerCallback : public ICOMInterfaceMarshalerCallback -{ -public : - COMInterfaceMarshalerCallback(Thread *pThread, LPVOID pCtxCookie) - { - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - MODE_ANY; - } - CONTRACTL_END; - - _ASSERTE(pThread != NULL); - _ASSERTE(pCtxCookie != NULL); - - m_bIsFreeThreaded = false; - m_pThread = pThread; - m_pCtxCookie = pCtxCookie; - - m_bIsDCOMProxy = false; - } - - virtual void OnRCWCreated(RCW *pRCW) - { - LIMITED_METHOD_CONTRACT; - - _ASSERTE(pRCW != NULL); - - if (pRCW->IsFreeThreaded()) - m_bIsFreeThreaded = true; - - if (pRCW->IsDCOMProxy()) - m_bIsDCOMProxy = true; - } - - // Return true if ComInterfaceMarshaler should use this RCW - // Return false if ComInterfaceMarshaler should just skip this RCW and proceed - // to create a duplicate one instead - virtual bool ShouldUseThisRCW(RCW *pRCW) - { - LIMITED_METHOD_CONTRACT; - - // Is this a free threaded RCW or a context-bound RCW created in the same context - if (pRCW->IsFreeThreaded() || - pRCW->GetWrapperCtxCookie() == m_pCtxCookie) - { - return true; - } - else - { - // - // Now we get back a WinRT factory RCW created in a different context. This means the - // factory is a singleton, and the returned IActivationFactory could be either one of - // the following: - // 1) A raw pointer, and it acts like a free threaded object - // 2) A proxy that is used across different contexts. It might maintain a list of contexts - // that it is marshaled to, and will fail to be called if it is not marshaled to this - // context yet. - // - // In this case, it is unsafe to use this RCW in this context and we should proceed - // to create a duplicated one instead. It might make sense to have a context-sensitive - // RCW cache but I don't think this case will be common enough to justify it - // - return false; - } - } - - virtual void OnRCWCacheHit(RCW *pRCW) - { - LIMITED_METHOD_CONTRACT; - - if (pRCW->IsFreeThreaded()) - m_bIsFreeThreaded = true; - - if (pRCW->IsDCOMProxy()) - m_bIsDCOMProxy = true; - } - - bool IsFreeThreaded() - { - LIMITED_METHOD_CONTRACT; - - return m_bIsFreeThreaded; - } - - bool IsDCOMProxy() - { - LIMITED_METHOD_CONTRACT; - - return m_bIsDCOMProxy; - } - -private : - Thread *m_pThread; // Current thread - LPVOID m_pCtxCookie; // Current context cookie - bool m_bIsFreeThreaded; // Whether we got back the RCW from a different context - bool m_bIsDCOMProxy; // Is this a proxy to an object in a different process -}; - -#endif - #ifdef PROFILING_SUPPORTED FCIMPL3(SIZE_T, StubHelpers::ProfilerBeginTransitionCallback, SIZE_T pSecretParam, Thread* pThread, Object* unsafe_pThis) { diff --git a/src/coreclr/src/vm/threadsuspend.cpp b/src/coreclr/src/vm/threadsuspend.cpp index 1b7ef6745a9c..89824f31eaa6 100644 --- a/src/coreclr/src/vm/threadsuspend.cpp +++ b/src/coreclr/src/vm/threadsuspend.cpp @@ -5943,16 +5943,7 @@ void ThreadSuspend::SuspendEE(SUSPEND_REASON reason) // that there is a thread which appears to be stopped at a gc // safe point, but which really is not. If that is the case, // back off and try again. - // - // When the debugger is synchronizing, trying to perform a GC could deadlock. The GC has the - // threadstore lock and synchronization cannot complete until the debugger can get the - // threadstore lock. However the GC can not complete until it sends the BeforeGarbageCollection - // event, and the event can not be sent until the debugger is synchronized. In order to break - // this deadlock cycle the GC must give up the threadstore lock, allow the debugger to synchronize, - // then try again. - // - || (CORDebuggerAttached() && - (g_pDebugInterface->ThreadsAtUnsafePlaces() || g_pDebugInterface->IsSynchronizing())) + || (CORDebuggerAttached() && g_pDebugInterface->ThreadsAtUnsafePlaces()) #endif // DEBUGGING_SUPPORTED ) { diff --git a/src/coreclr/src/vm/vars.cpp b/src/coreclr/src/vm/vars.cpp index b684583c7d97..152027b02032 100644 --- a/src/coreclr/src/vm/vars.cpp +++ b/src/coreclr/src/vm/vars.cpp @@ -59,9 +59,6 @@ GPTR_IMPL(MethodTable, g_pObjectClass); GPTR_IMPL(MethodTable, g_pRuntimeTypeClass); GPTR_IMPL(MethodTable, g_pCanonMethodTableClass); // System.__Canon GPTR_IMPL(MethodTable, g_pStringClass); -#ifdef FEATURE_UTF8STRING -GPTR_IMPL(MethodTable, g_pUtf8StringClass); -#endif // FEATURE_UTF8STRING GPTR_IMPL(MethodTable, g_pArrayClass); GPTR_IMPL(MethodTable, g_pSZArrayHelperClass); GPTR_IMPL(MethodTable, g_pNullableClass); diff --git a/src/coreclr/src/vm/vars.hpp b/src/coreclr/src/vm/vars.hpp index 3b85c93adc5e..88140bdc4863 100644 --- a/src/coreclr/src/vm/vars.hpp +++ b/src/coreclr/src/vm/vars.hpp @@ -73,9 +73,6 @@ class LoaderHeap; class IGCHeap; class Object; class StringObject; -#ifdef FEATURE_UTF8STRING -class Utf8StringObject; -#endif // FEATURE_UTF8STRING class ArrayClass; class MethodTable; class MethodDesc; @@ -309,10 +306,6 @@ class REF : public OBJECTREF #define OBJECTREFToObject(objref) ((objref).operator-> ()) #define ObjectToSTRINGREF(obj) (STRINGREF(obj)) #define STRINGREFToObject(objref) (*( (StringObject**) &(objref) )) -#ifdef FEATURE_UTF8STRING -#define ObjectToUTF8STRINGREF(obj) (UTF8STRINGREF(obj)) -#define UTF8STRINGREFToObject(objref) (*( (Utf8StringObject**) &(objref) )) -#endif // FEATURE_UTF8STRING #else // _DEBUG_IMPL @@ -323,10 +316,6 @@ class REF : public OBJECTREF #define OBJECTREFToObject(objref) ((PTR_Object) (objref)) #define ObjectToSTRINGREF(obj) ((PTR_StringObject) (obj)) #define STRINGREFToObject(objref) ((PTR_StringObject) (objref)) -#ifdef FEATURE_UTF8STRING -#define ObjectToUTF8STRINGREF(obj) ((PTR_Utf8StringObject) (obj)) -#define UTF8STRINGREFToObject(objref) ((PTR_Utf8StringObject) (objref)) -#endif // FEATURE_UTF8STRING #endif // _DEBUG_IMPL @@ -365,9 +354,6 @@ GPTR_DECL(MethodTable, g_pObjectClass); GPTR_DECL(MethodTable, g_pRuntimeTypeClass); GPTR_DECL(MethodTable, g_pCanonMethodTableClass); // System.__Canon GPTR_DECL(MethodTable, g_pStringClass); -#ifdef FEATURE_UTF8STRING -GPTR_DECL(MethodTable, g_pUtf8StringClass); -#endif // FEATURE_UTF8STRING GPTR_DECL(MethodTable, g_pArrayClass); GPTR_DECL(MethodTable, g_pSZArrayHelperClass); GPTR_DECL(MethodTable, g_pNullableClass); diff --git a/src/coreclr/src/zap/zapinfo.cpp b/src/coreclr/src/zap/zapinfo.cpp index c6eba2b1601b..036457ab673d 100644 --- a/src/coreclr/src/zap/zapinfo.cpp +++ b/src/coreclr/src/zap/zapinfo.cpp @@ -507,6 +507,7 @@ void ZapInfo::CompileMethod() // if (m_zapper->m_alternateJit) { + m_jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT); res = m_zapper->m_alternateJit->compileMethod( this, &m_currentMethodInfo, CORJIT_FLAGS::CORJIT_FLAG_CALL_GETJITFLAGS, @@ -520,6 +521,7 @@ void ZapInfo::CompileMethod() ResetForJitRetry(); } } + m_jitFlags.Clear(CORJIT_FLAGS::CORJIT_FLAG_ALT_JIT); #endif // ALLOW_SXS_JIT_NGEN @@ -1071,6 +1073,16 @@ HRESULT ZapInfo::getMethodBlockCounts ( return S_OK; } +CORINFO_CLASS_HANDLE ZapInfo::getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32* pLikelihood, + UINT32* pNumberOfClasses) +{ + return NULL; +} + void ZapInfo::allocMem( ULONG hotCodeSize, /* IN */ ULONG coldCodeSize, /* IN */ diff --git a/src/coreclr/src/zap/zapinfo.h b/src/coreclr/src/zap/zapinfo.h index 3a44d2e7c0b5..74a8c0eebf2c 100644 --- a/src/coreclr/src/zap/zapinfo.h +++ b/src/coreclr/src/zap/zapinfo.h @@ -313,6 +313,13 @@ class ZapInfo ICorJitInfo::BlockCounts ** pBlockCounts, UINT32 * pNumRuns); + CORINFO_CLASS_HANDLE getLikelyClass( + CORINFO_METHOD_HANDLE ftnHnd, + CORINFO_CLASS_HANDLE baseHnd, + UINT32 ilOffset, + UINT32 * pLikelihood, + UINT32 * pNumberOfClasses); + DWORD getJitFlags(CORJIT_FLAGS* jitFlags, DWORD sizeInBytes); bool runWithErrorTrap(void (*function)(void*), void* param); diff --git a/src/coreclr/src/zap/zapper.cpp b/src/coreclr/src/zap/zapper.cpp index 97b47cba71b7..a98fc6cc2934 100644 --- a/src/coreclr/src/zap/zapper.cpp +++ b/src/coreclr/src/zap/zapper.cpp @@ -580,11 +580,15 @@ void Zapper::InitEE(BOOL fForceDebug, BOOL fForceProfile, BOOL fForceInstrument) } #else - CorCompileRuntimeDlls ngenDllId; + LPCWSTR pwzJitName = nullptr; - ngenDllId = CROSSGEN_COMPILER_INFO; + // Try to obtain a name for the jit library from the env. variable + IfFailThrow(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_JitName, const_cast(&pwzJitName))); + if (pwzJitName == nullptr) + { + pwzJitName = CorCompileGetRuntimeDllName(CROSSGEN_COMPILER_INFO); + } - LPCWSTR pwzJitName = CorCompileGetRuntimeDllName(ngenDllId); LoadAndInitializeJITForNgen(pwzJitName, &m_hJitLib, &m_pJitCompiler); #endif // FEATURE_MERGE_JIT_AND_ENGINE diff --git a/src/installer/Directory.Build.props b/src/installer/Directory.Build.props index 319906aef654..15472af36dcb 100644 --- a/src/installer/Directory.Build.props +++ b/src/installer/Directory.Build.props @@ -57,29 +57,6 @@ $(DefineConstants),TRACE - - .exe - - - - $(HostRuntimeIdentifier.Remove($(HostRuntimeIdentifier.LastIndexOf('-'))))-$(TargetArchitecture) - - - - - win-$(TargetArchitecture) - osx-$(TargetArchitecture) - linux-$(TargetArchitecture) - freebsd-$(TargetArchitecture) - netbsd-$(TargetArchitecture) - illumos-$(TargetArchitecture) - solaris-$(TargetArchitecture) - ios-$(TargetArchitecture) - tvos-$(TargetArchitecture) - android-$(TargetArchitecture) - browser-$(TargetArchitecture) - - $(OutputRid) @@ -107,10 +84,6 @@ $(ArtifactsShippingPackagesDir) $(ArtifactsShippingPackagesDir) - - - $(IntermediateOutputRootPath)sharedFrameworkPublish/ - $(IntermediateOutputRootPath)sharedFrameworkPublish.symbols\ @@ -139,187 +112,6 @@ $(SharedHostInstallerStart)$(InstallerStartSuffix)- $(HostFxrInstallerStart)$(InstallerStartSuffix)- $(SharedFrameworkInstallerStart)$(InstallerStartSuffix)- - - - - - false - false - false - false - false - false - false - false - false - false - false - false - false - false - false - false - false - - - - - true - - - - - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - true - - - - - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - true - - - - - true - true - - - - - true - true - - - - - true - true - - - - - true - true - - - - - true - true - - - true - - true - - - - - - .zip - .tar.gz - .msi - .pkg - .deb - .rpm - .exe - $(InstallerExtension) - - - - - $(OutputRid) - osx.10.10-x64 - rhel.7-x64 @@ -329,22 +121,4 @@ --> true - - - lib - .so - .dll - .dylib - lib - .a - .lib - - - - .map - .ni.pdb - - - - diff --git a/src/installer/Directory.Build.targets b/src/installer/Directory.Build.targets index 7a859d808b22..dc2e7c7eed40 100644 --- a/src/installer/Directory.Build.targets +++ b/src/installer/Directory.Build.targets @@ -89,11 +89,6 @@ Runtime/$(SharedFrameworkNugetVersion)/ - - $(SharedFrameworkNugetVersion)-$(PackageTargetRid) - $(HostResolverVersion)-$(PackageTargetRid) - - $(HostVersion) 1 @@ -142,60 +137,6 @@ - - - $(CombinedInstallerStart)$(ProductMoniker)$(CombinedInstallerExtension) - $(CombinedInstallerStart)$(ProductMoniker)-engine.exe - - $(SharedHostInstallerStart)$(ProductMoniker)$(InstallerExtension) - $(HostFxrInstallerStart)$(HostResolverVersionMoniker)$(InstallerExtension) - $(SharedFrameworkInstallerStart)$(ProductMoniker)$(InstallerExtension) - $(DotnetRuntimeDependenciesPackageInstallerStart)$(ProductMoniker)$(InstallerExtension) - - dotnet-runtime-$(ProductMoniker)$(CompressedFileExtension) - dotnet-hostfxr-internal-$(PackageTargetRid).$(HostResolverVersion)$(CompressedFileExtension) - dotnet-nethost-$(AppHostVersion)-$(PackageTargetRid)$(CompressedFileExtension) - dotnet-crossgen2-$(ProductMoniker)$(CompressedFileExtension) - dotnet-runtime-internal-$(ProductMoniker)$(CompressedFileExtension) - dotnet-runtime-symbols-$(ProductMoniker)$(CompressedFileExtension) - - $(DotnetHostFxrString)$(ProductBandVersion) - $(HostFxrDebPkgName.ToLower()) - $(DotnetRuntimeString)$(ProductBandVersion) - $(SharedFxDebPkgName.ToLower()) - $(DotnetRuntimeDependenciesPackageString)$(ProductBandVersion) - $(RuntimeDependenciesDebPkgName.ToLower()) - - dotnet-hostfxr-$(ProductBandVersion) - $(HostFxrRpmPkgName.ToLower()) - dotnet-runtime-$(ProductBandVersion) - $(SharedFxRpmPkgName.ToLower()) - $(DotnetRuntimeDependenciesPackageString)$(ProductBandVersion) - $(RuntimeDependenciesRpmPkgName.ToLower()) - - - - $(AssetOutputPath)dotnet-targeting-pack-$(ProductMoniker)$(InstallerExtension) - $(AssetOutputPath)dotnet-apphost-pack-$(ProductMoniker)$(InstallerExtension) - 2.1 - $(NetStandardProductBandVersion).$(PatchVersion)$(ProductVersionSuffix)-$(PackageTargetRid) - $(AssetOutputPath)netstandard-targeting-pack-$(NetStandardProductMoniker)$(InstallerExtension) - - - - - $(SharedHostInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension) - $(HostFxrInstallerStart)$(HostResolverVersion)-$(TargetArchitecture)$(InstallerExtension) - $(SharedFrameworkInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension) - - - - - $(DotnetRuntimeDependenciesPackageInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension) - - - diff --git a/src/installer/corehost/cli/apphost/bundle_marker.cpp b/src/installer/corehost/cli/apphost/bundle_marker.cpp index ae796a44436e..aac23e5f3286 100644 --- a/src/installer/corehost/cli/apphost/bundle_marker.cpp +++ b/src/installer/corehost/cli/apphost/bundle_marker.cpp @@ -9,9 +9,8 @@ int64_t bundle_marker_t::header_offset() { // Contains the bundle_placeholder default value at compile time. - // If this is a single-file bundle, the last 8 bytes are replaced - // bundle-header replaced by "dotnet publish" with the offset - // where the bundle_header is located. + // If this is a single-file bundle, the first 8 bytes are replaced + // by "dotnet publish" with the offset where the bundle_header is located. static volatile uint8_t placeholder[] = { // 8 bytes represent the bundle header-offset diff --git a/src/installer/corehost/cli/hostmisc/pal.h b/src/installer/corehost/cli/hostmisc/pal.h index bf4785fb1a0d..cdbb42a1a8de 100644 --- a/src/installer/corehost/cli/hostmisc/pal.h +++ b/src/installer/corehost/cli/hostmisc/pal.h @@ -164,7 +164,6 @@ namespace pal inline const char_t* strerror(int errnum) { return ::_wcserror(errnum); } bool pal_utf8string(const string_t& str, std::vector* out); - bool utf8_palstring(const std::string& str, string_t* out); bool pal_clrstring(const string_t& str, std::vector* out); bool clr_palstring(const char* cstr, string_t* out); @@ -223,7 +222,6 @@ namespace pal inline const char_t* strerror(int errnum) { return ::strerror(errnum); } inline bool pal_utf8string(const string_t& str, std::vector* out) { out->assign(str.begin(), str.end()); out->push_back('\0'); return true; } - inline bool utf8_palstring(const std::string& str, string_t* out) { out->assign(str); return true; } inline bool pal_clrstring(const string_t& str, std::vector* out) { return pal_utf8string(str, out); } inline bool clr_palstring(const char* cstr, string_t* out) { out->assign(cstr); return true; } @@ -305,7 +303,6 @@ namespace pal bool get_default_bundle_extraction_base_dir(string_t& extraction_dir); int xtoi(const char_t* input); - bool unicode_palstring(const char16_t* str, pal::string_t* out); bool get_loaded_library(const char_t *library_name, const char *symbol_name, /*out*/ dll_t *dll, /*out*/ string_t *path); bool load_library(const string_t* path, dll_t* dll); diff --git a/src/installer/corehost/cli/hostmisc/pal.unix.cpp b/src/installer/corehost/cli/hostmisc/pal.unix.cpp index 6996618239eb..20774cb9e11f 100644 --- a/src/installer/corehost/cli/hostmisc/pal.unix.cpp +++ b/src/installer/corehost/cli/hostmisc/pal.unix.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include #include "config.h" @@ -266,16 +265,6 @@ int pal::xtoi(const char_t* input) return atoi(input); } -bool pal::unicode_palstring(const char16_t* str, pal::string_t* out) -{ - out->clear(); - - std::wstring_convert, char16_t> conversion; - out->assign(conversion.to_bytes(str)); - - return true; -} - bool pal::is_path_rooted(const pal::string_t& path) { return path.front() == '/'; diff --git a/src/installer/corehost/cli/hostmisc/pal.windows.cpp b/src/installer/corehost/cli/hostmisc/pal.windows.cpp index c1a62a4d74d1..7ddaab8c3506 100644 --- a/src/installer/corehost/cli/hostmisc/pal.windows.cpp +++ b/src/installer/corehost/cli/hostmisc/pal.windows.cpp @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -623,11 +622,6 @@ static bool wchar_convert_helper(DWORD code_page, const char* cstr, int len, pal return ::MultiByteToWideChar(code_page, 0, cstr, len, &(*out)[0], out->size()) != 0; } -bool pal::utf8_palstring(const std::string& str, pal::string_t* out) -{ - return wchar_convert_helper(CP_UTF8, &str[0], str.size(), out); -} - bool pal::pal_utf8string(const pal::string_t& str, std::vector* out) { out->clear(); @@ -652,12 +646,6 @@ bool pal::clr_palstring(const char* cstr, pal::string_t* out) return wchar_convert_helper(CP_UTF8, cstr, ::strlen(cstr), out); } -bool pal::unicode_palstring(const char16_t* str, pal::string_t* out) -{ - out->assign((const wchar_t *)str); - return true; -} - // Return if path is valid and file exists, return true and adjust path as appropriate. bool pal::realpath(string_t* path, bool skip_error_logging) { diff --git a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp index 502d3a1b4a66..48d7cd335dd9 100644 --- a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp +++ b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp @@ -23,18 +23,7 @@ namespace // This function is an API exported to the runtime via the BUNDLE_PROBE property. // This function used by the runtime to probe for bundled assemblies // This function assumes that the currently executing app is a single-file bundle. - // - // bundle_probe recieves its path argument as cha16_t* instead of pal::char_t*, because: - // * The host uses Unicode strings on Windows and UTF8 strings on Unix - // * The runtime uses Unicode strings on all platforms - // * Using a unicode encoded path presents a uniform interface to the runtime - // and minimizes the number if Unicode <-> UTF8 conversions necessary. - // - // The unicode char type is char16_t* instead of whcar_t*, because: - // * wchar_t is 16-bit encoding on Windows while it is 32-bit encoding on most Unix systems - // * The runtime uses 16-bit encoded unicode characters. - - bool STDMETHODCALLTYPE bundle_probe(const char16_t* path, int64_t* offset, int64_t* size) + bool STDMETHODCALLTYPE bundle_probe(const char* path, int64_t* offset, int64_t* size) { if (path == nullptr) { @@ -43,7 +32,7 @@ namespace pal::string_t file_path; - if (!pal::unicode_palstring(path, &file_path)) + if (!pal::clr_palstring(path, &file_path)) { trace::warning(_X("Failure probing contents of the application bundle.")); trace::warning(_X("Failed to convert path [%ls] to UTF8"), path); diff --git a/src/installer/corehost/corehost.cpp b/src/installer/corehost/corehost.cpp index 9ae142c4fe42..0064f8b6a2a9 100644 --- a/src/installer/corehost/corehost.cpp +++ b/src/installer/corehost/corehost.cpp @@ -53,8 +53,7 @@ bool is_exe_enabled_for_execution(pal::string_t* app_dll) static const char hi_part[] = EMBED_HASH_HI_PART_UTF8; static const char lo_part[] = EMBED_HASH_LO_PART_UTF8; - std::string binding(&embed[0]); - if (!pal::utf8_palstring(binding, app_dll)) + if (!pal::clr_palstring(embed, app_dll)) { trace::error(_X("The managed DLL bound to this executable could not be retrieved from the executable image.")); return false; @@ -65,6 +64,7 @@ bool is_exe_enabled_for_execution(pal::string_t* app_dll) size_t hi_len = (sizeof(hi_part) / sizeof(hi_part[0])) - 1; size_t lo_len = (sizeof(lo_part) / sizeof(lo_part[0])) - 1; + std::string binding(&embed[0]); if ((binding.size() >= (hi_len + lo_len)) && binding.compare(0, hi_len, &hi_part[0]) == 0 && binding.compare(hi_len, lo_len, &lo_part[0]) == 0) diff --git a/src/installer/managed/CommonManaged.props b/src/installer/managed/CommonManaged.props index c96859a92e4a..957ee4710e20 100644 --- a/src/installer/managed/CommonManaged.props +++ b/src/installer/managed/CommonManaged.props @@ -3,6 +3,7 @@ true + true $(MajorVersion).$(MinorVersion).$(PatchVersion) $(VersionPrefix) true diff --git a/src/installer/pkg/Directory.Build.props b/src/installer/pkg/Directory.Build.props index 9f4442493b67..e2ffe40718bd 100644 --- a/src/installer/pkg/Directory.Build.props +++ b/src/installer/pkg/Directory.Build.props @@ -6,11 +6,6 @@ $(BaseOutputRootPath)corehost - - - false - - $(RepoRoot)LICENSE.TXT $(RepoRoot)THIRD-PARTY-NOTICES.TXT @@ -28,45 +23,6 @@ true - - $(IntermediateOutputRootPath)packages/ - - $(MSBuildThisFileDirectory)packaging/rpm/templates/ - - - $(ArtifactsBinDir)dotnet-deb-tool\ - $(DebToolBinDir)$(Configuration)\$(NetCoreAppCurrent)\dotnet-deb-tool.dll - $(RepoRoot)tools-local/dotnet-deb-tool/ - - true - true - true - - true - true - true - - - true - - - $(OSPlatformConfig) - - diff --git a/src/installer/pkg/packaging/Directory.Build.props b/src/installer/pkg/packaging/Directory.Build.props deleted file mode 100644 index 61f4f4d515aa..000000000000 --- a/src/installer/pkg/packaging/Directory.Build.props +++ /dev/null @@ -1,20 +0,0 @@ - - - - - $(InstallerProjectRoot)pkg/packaging/ - - - $(BuildDistroIndependentInstallers) - $(BuildDistroIndependentInstallers) - - - $(IntermediateOutputRootPath)sharedHost/ - $(IntermediateOutputRootPath)hostFxr/ - $(IntermediateOutputRootPath)sharedFx/ - $(IntermediateOutputRootPath)combined-framework-host/ - $(IntermediateOutputRootPath)nethost/ - $(IntermediateOutputRootPath)crossgen2/ - - - diff --git a/src/installer/pkg/packaging/deb/dotnet-hostfxr-debian_config.json b/src/installer/pkg/packaging/deb/dotnet-hostfxr-debian_config.json deleted file mode 100644 index ba7090e7ebb7..000000000000 --- a/src/installer/pkg/packaging/deb/dotnet-hostfxr-debian_config.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "maintainer_name":".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - - "package_name": "%HOSTFXR_DEBIAN_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%HOSTFXR_BRAND_NAME% %HOSTFXR_NUGET_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%HOSTFXR_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "debian_dependencies":{ - "dotnet-host" : { - "package_version": "%SHARED_HOST_DEBIAN_VERSION%" - }, - "libc6":{}, - "libgcc1":{}, - "libstdc++6":{} - } -} diff --git a/src/installer/pkg/packaging/deb/dotnet-runtime-deps-debian_config.json b/src/installer/pkg/packaging/deb/dotnet-runtime-deps-debian_config.json deleted file mode 100644 index ee2554263cf8..000000000000 --- a/src/installer/pkg/packaging/deb/dotnet-runtime-deps-debian_config.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "maintainer_name":".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - - "package_name": "%RUNTIME_DEPS_DEBIAN_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_DEBIAN_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "debian_dependencies":{ - "libc6":{}, - "libgcc1":{}, - "libgssapi-krb5-2":{}, - "libstdc++6":{}, - "zlib1g":{}, - "%SSL_DEPENDENCY_LIST%" : {}, - "%LIBICU_DEPENDENCY_LIST%": {} - }, - - "debian_ignored_dependencies" : [ - "liblldb-3.5", - "liblldb-3.6" - ] -} diff --git a/src/installer/pkg/packaging/deb/dotnet-sharedframework-debian_config.json b/src/installer/pkg/packaging/deb/dotnet-sharedframework-debian_config.json deleted file mode 100644 index b2d78ab93be6..000000000000 --- a/src/installer/pkg/packaging/deb/dotnet-sharedframework-debian_config.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "maintainer_name":".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - - "package_name": "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%SHARED_FRAMEWORK_BRAND_NAME% %SHARED_FRAMEWORK_NUGET_NAME% %SHARED_FRAMEWORK_NUGET_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%SHARED_FRAMEWORK_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "debian_dependencies":{ - "%HOSTFXR_DEBIAN_PACKAGE_NAME%" : { - "package_version": "%HOSTFXR_NUGET_VERSION%" - }, - "%RUNTIME_DEPS_DEBIAN_PACKAGE_NAME%" : { - "package_version": "%RUNTIME_DEPS_VERSION%" - } - } -} diff --git a/src/installer/pkg/packaging/deb/dotnet-sharedhost-debian_config.json b/src/installer/pkg/packaging/deb/dotnet-sharedhost-debian_config.json deleted file mode 100644 index dde2c2e3ac9c..000000000000 --- a/src/installer/pkg/packaging/deb/dotnet-sharedhost-debian_config.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "maintainer_name":".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - - "package_name": "dotnet-host", - "install_root": "/usr/share/dotnet", - - "short_description": "%SHARED_HOST_BRAND_NAME%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%SHARED_HOST_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "debian_dependencies":{ - "libc6":{}, - "libgcc1":{}, - "libstdc++6":{} - }, - - "package_conflicts" : [ - "dotnet", - "dotnet-nightly" - ], - - "symlinks": { - "dotnet" : "/usr/bin/dotnet" - } -} diff --git a/src/installer/pkg/packaging/deb/package.props b/src/installer/pkg/packaging/deb/package.props deleted file mode 100644 index 6ba97aaf6803..000000000000 --- a/src/installer/pkg/packaging/deb/package.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - $(PackagingRoot)deb/ - dotnet-host - $(SharedHostDebPkgName.ToLower()) - - \ No newline at end of file diff --git a/src/installer/pkg/packaging/deb/package.targets b/src/installer/pkg/packaging/deb/package.targets deleted file mode 100644 index da9b8feffc32..000000000000 --- a/src/installer/pkg/packaging/deb/package.targets +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - debian_config.json - - - - - - - - - - - $(SharedHostDebPkgName) - $(HostPackageVersion) - $(SharedHostPublishRoot) - $(SharedHostInstallerFile) - dotnet-sharedhost-debian_config.json - $(debPackaginfConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(DebPackageName)/$(DebPackageVersion) - - - - $(debIntermediatesDir)/debianLayoutDirectory/ - $(debLayoutDirectory)$ - $(debLayoutDirectory)package_root - $(debLayoutDirectory)samples - $(debLayoutDirectory)docs - - - - - - - - - - - - - - - - - - - - - - - - - - $(SharedHostBrandName) - - - $(HostPackageRelease) - - - - - - - - - - - - - - - - - - - - - - $(HostFxrDebPkgName) - $(HostResolverPackageVersion) - $(HostFxrPublishRoot) - $(HostFxrInstallerFile) - dotnet-hostfxr-debian_config.json - $(debPackaginfConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(DebPackageName)/$(DebPackageVersion) - - - - $(debIntermediatesDir)/debianLayoutDirectory/ - $(debLayoutDirectory)$ - $(debLayoutDirectory)package_root - $(debLayoutDirectory)samples - $(debLayoutDirectory)docs - - - - - - - - - - - - - - - - - - - - - - - - $(HostFxrBrandName) - - - $(HostPackageVersion) - - - $(HostResolverPackageVersion) - - - $(DebPackageName) - - - $(HostResolverPackageRelease) - - - - - - - - - - - - - - - - - - - - - - - $(SharedFxDebPkgName) - $(RuntimePackageVersion) - $(SharedFrameworkPublishRoot) - $(SharedFrameworkInstallerFile) - dotnet-sharedframework-debian_config.json - $(debPackaginfConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(DebPackageName)/$(DebPackageVersion) - - - - $(debIntermediatesDir)/debianLayoutDirectory/ - $(debLayoutDirectory)$ - $(debLayoutDirectory)package_root - $(debLayoutDirectory)samples - $(debLayoutDirectory)docs - - - - - - - - - - - - - - - - - - - - - - - - $(HostFxrDebPkgName) - - - $(HostResolverPackageVersion) - - - $(SharedFxDebPkgName) - - - $(SharedFrameworkName) - - - $(RuntimePackageVersion) - - - $(SharedFrameworkBrandName) - - - $(RuntimeDependenciesDebPkgName) - - - $(RuntimeDepsDebPackageVersion) - - - $(RuntimePackageRelease) - - - - - - - - - - - - - - - - - - - - - - - $(RuntimeDependenciesDebPkgName) - $(RuntimeDepsDebPackageVersion) - $(DotnetRuntimeDependenciesPackageInstallerFile) - dotnet-runtime-deps-debian_config.json - $(debPackaginfConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(DebPackageName)/$(DebPackageVersion) - - - - $(debIntermediatesDir)/debianLayoutDirectory/ - $(debLayoutDirectory)$ - $(debLayoutDirectory)package_root - $(debLayoutDirectory)samples - $(debLayoutDirectory)docs - - - - - - - - - - - - - - - - - - - - $(RuntimeDependenciesDebPkgName) - - - $(RuntimeDepsDebPackageVersion) - - - $(RuntimeDepsDebPackageRelease) - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/packaging/installers.proj b/src/installer/pkg/packaging/installers.proj deleted file mode 100644 index a3494e48efae..000000000000 --- a/src/installer/pkg/packaging/installers.proj +++ /dev/null @@ -1,275 +0,0 @@ - - - - - true - - - - - - - GetInstallerLocations; - GenerateVersionBadge; - GenerateCompressedFiles; - GenerateInstallers; - GenerateProjectInstallers; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_InstallerProject Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" /> - <_InstallerProject Include="$(InstallerProjectRoot)pkg\projects\**\*.sfxproj" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_NetHostOutputDir>$(ArtifactsBinDir)$(InstallerSourceOSPlatformConfig)\corehost\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(MSBuildThisFileDirectory)version_badge.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GeneratePkgs; - GenerateDebs; - GenerateRpms; - - - - - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - - - - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/cs.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/de.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/en.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/es.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/fr.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/it.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ja.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ko.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/pl.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/pt-br.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/ru.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/tr.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hans.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/conclusion.html b/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/conclusion.html deleted file mode 100644 index a7031e4d8dcd..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/conclusion.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Congratulations! You've successfully installed .NET CLI! - - -
-

The installation was successful.

-

.NET CLI was successfully installed.

-

- Install dependencies -

-

- In order to be able to use .NET on OS X, you need to install OpenSSL version 1.0.1/1.0.2. - There are many ways to install/update your libssl. Using Homebrew is the easiest. - You can view the instructions here or if you're updating, on this page. -

-
- - diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/welcome.html b/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/welcome.html deleted file mode 100644 index 94cadedb4fb9..000000000000 --- a/src/installer/pkg/packaging/osx/hostfxr/resources/zh-hant.lproj/welcome.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Welcome to the .NET CLI installer. - - - -

- Microsoft .NET CLI -

-

- .NET is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform and is supported by Microsoft. We hope you enjoy using it! If you do, please consider joining the active community of developers that are contributing to the project on GitHub (https://github.com/dotnet/core). We happily accept issues and PRs. -

-

- This package contains all the tools you will need to start writing applications with .NET. It includes the several tools, including the C# compiler and the NuGet package manager, and a copy of .NET for both you and the tools to use. -

-
- - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/package.props b/src/installer/pkg/packaging/osx/package.props deleted file mode 100644 index 447ffe38c7ef..000000000000 --- a/src/installer/pkg/packaging/osx/package.props +++ /dev/null @@ -1,6 +0,0 @@ - - - - $(PackagingRoot)osx/ - - \ No newline at end of file diff --git a/src/installer/pkg/packaging/osx/package.targets b/src/installer/pkg/packaging/osx/package.targets deleted file mode 100644 index 722676fffc19..000000000000 --- a/src/installer/pkg/packaging/osx/package.targets +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - $(SharedFxComponentId) - $(SharedFrameworkPublishRoot) - - $(PackagesIntermediateDir)$(SharedFxComponentId).pkg - $(SharedFrameworkInstallerFile) - - - $(SharedHostComponentId) - $(SharedHostPublishRoot) - - $(PackagesIntermediateDir)$(SharedHostComponentId).pkg - $(SharedHostInstallerFile) - - - $(HostFxrComponentId) - $(HostFxrPublishRoot) - - $(PackagesIntermediateDir)$(HostFxrComponentId).pkg - $(HostFxrInstallerFile) - - - - - /usr/local/share/dotnet - --version $(SharedFrameworkNugetVersion) --install-location $(InstallLocation) - - - - - - - - - $(OSXScriptRoot)sharedframework/ - $(PackagesIntermediateDir)resources - $(CombinedInstallerFile) - shared-framework-distribution-template.xml - $(PackagesIntermediateDir)$(TemplateFile) - - - - - - - - - - - - - - conclusion.html - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/dotnetbackground.png b/src/installer/pkg/packaging/osx/sharedframework/resources/dotnetbackground.png deleted file mode 100644 index 16a6bf22ba78..000000000000 Binary files a/src/installer/pkg/packaging/osx/sharedframework/resources/dotnetbackground.png and /dev/null differ diff --git a/src/installer/pkg/packaging/osx/sharedframework/scripts/postinstall b/src/installer/pkg/packaging/osx/sharedframework/scripts/postinstall deleted file mode 100755 index 734abc33de6e..000000000000 --- a/src/installer/pkg/packaging/osx/sharedframework/scripts/postinstall +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# Licensed to the .NET Foundation under one or more agreements. -# The .NET Foundation licenses this file to you under the MIT license. -# - -PACKAGE=$1 -INSTALL_DESTINATION=$2 - -# A temporary fix for the permissions issue(s) -chmod -R 755 $INSTALL_DESTINATION/shared - -exit 0 diff --git a/src/installer/pkg/packaging/osx/sharedframework/shared-framework-distribution-template.xml b/src/installer/pkg/packaging/osx/sharedframework/shared-framework-distribution-template.xml deleted file mode 100644 index b910e9f83de2..000000000000 --- a/src/installer/pkg/packaging/osx/sharedframework/shared-framework-distribution-template.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - {SharedFxBrandName} (x64) - - - - - - - - - - - - - - - - - - - - - - - - {SharedFxComponentId}.pkg - {HostFxrComponentId}.pkg - {SharedHostComponentId}.pkg - diff --git a/src/installer/pkg/packaging/pack-managed.proj b/src/installer/pkg/packaging/pack-managed.proj deleted file mode 100644 index acefdfff86d1..000000000000 --- a/src/installer/pkg/packaging/pack-managed.proj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - $(NetCoreAppCurrent) - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/packaging/rpm/dotnet-hostfxr-rpm_config.json b/src/installer/pkg/packaging/rpm/dotnet-hostfxr-rpm_config.json deleted file mode 100644 index 2b2d08b4f29e..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-hostfxr-rpm_config.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%HOSTFXR_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - "install_doc": "/usr/share/doc/%HOSTFXR_RPM_PACKAGE_NAME%/", - - "short_description": "%HOSTFXR_BRAND_NAME% %HOSTFXR_NUGET_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line\napplications, microservices and modern websites. It is open source,\ncross-platform and is supported by Microsoft. We hope you enjoy using it!\nIf you do, please consider joining the active community of developers that are\ncontributing to the project on GitHub (https://github.com/dotnet/core).\nWe happily accept issues and PRs.", - "homepage": "https://github.com/dotnet/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%HOSTFXR_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies": [{ - "package_name": "dotnet-host", - "package_version": "%SHARED_HOST_RPM_VERSION%" - }], - - "directories" : [ - "/usr/share/dotnet/host", - "/usr/share/doc/%HOSTFXR_RPM_PACKAGE_NAME%" - ] -} \ No newline at end of file diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_centos.7-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_centos.7-x64.json deleted file mode 100644 index 2ab384b5923d..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_centos.7-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "openssl-libs", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5-libs", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_fedora.27-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_fedora.27-x64.json deleted file mode 100644 index fb1c925c7064..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_fedora.27-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "compat-openssl10", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5-libs", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_opensuse.42-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_opensuse.42-x64.json deleted file mode 100644 index 1c208459b79d..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_opensuse.42-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "libopenssl1_0_0", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_oraclelinux.7-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_oraclelinux.7-x64.json deleted file mode 100644 index 2ab384b5923d..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_oraclelinux.7-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "openssl-libs", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5-libs", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_rhel.7-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_rhel.7-x64.json deleted file mode 100644 index 2ab384b5923d..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_rhel.7-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "openssl-libs", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5-libs", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_sles.12-x64.json b/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_sles.12-x64.json deleted file mode 100644 index fc854bb6c957..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_sles.12-x64.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - - "short_description": "%RUNTIME_DEPS_RPM_PACKAGE_NAME% %RUNTIME_DEPS_VERSION%", - "long_description": ".NET is a development platform that you can use to build command-line applications, microservices and modern websites. This package installs all the system dependencies for .NET Runtime.", - "homepage": "https://dot.net/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%RUNTIME_DEPS_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2018 Microsoft", - "license": { - "type": "MIT", - "full_text": "Copyright (c) 2018 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies":[{ - "package_name": "libopenssl1_1", - "package_version": "" - }, - { - "package_name": "libicu", - "package_version": "" - }, - { - "package_name": "krb5", - "package_version": "" - }] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-sharedframework-rpm_config.json b/src/installer/pkg/packaging/rpm/dotnet-sharedframework-rpm_config.json deleted file mode 100644 index e41d25617c87..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-sharedframework-rpm_config.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "%SHARED_FRAMEWORK_RPM_PACKAGE_NAME%", - "install_root": "/usr/share/dotnet", - "install_doc": "/usr/share/doc/%SHARED_FRAMEWORK_RPM_PACKAGE_NAME%/", - - "short_description": "%SHARED_FRAMEWORK_BRAND_NAME% %SHARED_FRAMEWORK_NUGET_NAME%", - "long_description": ".NET is a development platform that you can use to build command-line\napplications, microservices and modern websites. It is open source,\ncross-platform and is supported by Microsoft. We hope you enjoy using it!\nIf you do, please consider joining the active community of developers that are\ncontributing to the project on GitHub (https://github.com/dotnet/core).\nWe happily accept issues and PRs.", - "homepage": "https://github.com/dotnet/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%SHARED_FRAMEWORK_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "rpm_dependencies": [{ - "package_name": "%HOSTFXR_RPM_PACKAGE_NAME%", - "package_version": "%HOSTFXR_NUGET_VERSION%" - }, - { - "package_name": "%RUNTIME_DEPS_RPM_PACKAGE_NAME%", - "package_version": "%RUNTIME_DEPS_VERSION%" - }], - - "directories" : [ - "/usr/share/dotnet/shared", - "/usr/share/doc/%SHARED_FRAMEWORK_RPM_PACKAGE_NAME%" - ] -} diff --git a/src/installer/pkg/packaging/rpm/dotnet-sharedhost-rpm_config.json b/src/installer/pkg/packaging/rpm/dotnet-sharedhost-rpm_config.json deleted file mode 100644 index e443287e6594..000000000000 --- a/src/installer/pkg/packaging/rpm/dotnet-sharedhost-rpm_config.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "maintainer_name": ".NET Team", - "maintainer_email": "dotnetpackages@dotnetfoundation.org", - "vendor": ".NET Foundation", - - "package_name": "dotnet-host", - "install_root": "/", - "install_doc": "/usr/share/doc/dotnet-host/", - "install_man": "/usr/share/man/man1", - - "short_description": "%SHARED_HOST_BRAND_NAME%", - "long_description": ".NET is a development platform that you can use to build command-line\napplications, microservices and modern websites. It is open source,\ncross-platform and is supported by Microsoft. We hope you enjoy using it!\nIf you do, please consider joining the active community of developers that are\ncontributing to the project on GitHub (https://github.com/dotnet/core).\nWe happily accept issues and PRs.", - "homepage": "https://github.com/dotnet/core", - - "release":{ - "package_version":"1.0.0.0", - "package_revision":"%SHARED_HOST_REVISION%", - "urgency" : "low", - "changelog_message" : "https://github.com/dotnet/core/tree/master/release-notes" - }, - - "control": { - "priority":"standard", - "section":"libs", - "architecture":"amd64" - }, - - "copyright": "2017 Microsoft", - "license": { - "type": "MIT and ASL 2.0 and BSD", - "full_text": "Copyright (c) 2017 Microsoft\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." - }, - - "package_conflicts" : [ - "dotnet", - "dotnet-nightly" - ], - - "directories" : [ - "/usr/share/dotnet", - "/usr/share/doc/dotnet-host" - ] -} diff --git a/src/installer/pkg/packaging/rpm/package.props b/src/installer/pkg/packaging/rpm/package.props deleted file mode 100644 index 90ab81b71917..000000000000 --- a/src/installer/pkg/packaging/rpm/package.props +++ /dev/null @@ -1,12 +0,0 @@ - - - - rpm_config.json - $(PackagingRoot)rpm/ - dotnet-host - $(SharedHostRpmPkgName.ToLower()) - - $(RpmTemplatesDir) - $(MSBuildThisFileDirectory)/scripts - - diff --git a/src/installer/pkg/packaging/rpm/package.targets b/src/installer/pkg/packaging/rpm/package.targets deleted file mode 100644 index 85cbbb5795fa..000000000000 --- a/src/installer/pkg/packaging/rpm/package.targets +++ /dev/null @@ -1,434 +0,0 @@ - - - - - - - - - - - - - - - - $(SharedHostRpmPkgName) - $(HostPackageVersion) - $(SharedHostPublishRoot) - $(SharedHostInstallerFile) - dotnet-sharedhost-rpm_config.json - $(rpmPackagingConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(RpmPackageName)/$(RpmPackageVersion) - usr/share/dotnet/ - - - - $(RpmIntermediatesDir)/rpmLayoutDirectory/ - $(rpmLayoutDirectory)package_root/ - $(rpmLayoutPackageRoot)$(UsrShareDotnetPath) - $(rpmLayoutPackageRoot)usr/bin/ - $(rpmLayoutDirectory)docs - $(rpmLayoutDirectory)templates - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(SharedHostBrandName) - - - $(HostPackageRelease) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(HostFxrRpmPkgName) - $(HostResolverPackageVersion) - $(HostFxrPublishRoot) - $(HostFxrInstallerFile) - dotnet-hostfxr-rpm_config.json - $(rpmPackagingConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(RpmPackageName)/$(RpmPackageVersion) - - - - $(RpmIntermediatesDir)/rpmLayoutDirectory/ - $(rpmLayoutDirectory)package_root - $(rpmLayoutDirectory)docs - $(rpmLayoutDirectory)templates - - - - - - - - - - - - - - - - - - - - - - - - - $(HostFxrBrandName) - - - $(HostPackageVersion) - - - $(HostResolverPackageVersion) - - - $(RpmPackageName) - - - $(HostResolverPackageRelease) - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(SharedFxRpmPkgName) - $(RuntimePackageVersion) - $(SharedFrameworkPublishRoot) - $(SharedFrameworkInstallerFile) - dotnet-sharedframework-rpm_config.json - $(rpmPackagingConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(RpmPackageName)/$(RpmPackageVersion) - - - - $(RpmIntermediatesDir)/rpmLayoutDirectory/ - $(rpmLayoutDirectory)package_root - $(rpmLayoutDirectory)docs - $(rpmLayoutDirectory)templates - - - - - - - - - - - - - - - - - - - - - - - - - $(HostFxrRpmPkgName) - - - $(HostResolverPackageVersion) - - - $(RuntimeDependenciesRpmPkgName) - - - $(RuntimeDepsRpmPackageVersion) - - - $(SharedFxRpmPkgName) - - - $(SharedFrameworkName) - - - $(RuntimePackageVersion) - - - $(SharedFrameworkBrandName) - - - $(RuntimePackageRelease) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rpmPackagingConfigPath=$(rpmPackagingConfigPath); - DotnetRuntimeDependenciesPackageInstallerFile=$(DotnetRuntimeDependenciesPackageInstallerFile); - OutputRid=$(OutputRid); - RuntimeDependenciesRpmPkgName=$(RuntimeDependenciesRpmPkgName); - RuntimeDepsRpmPackageVersion=$(RuntimeDepsRpmPackageVersion); - RuntimeDepsRpmPackageRelease=$(RuntimeDepsRpmPackageRelease); - TemplatesDir=$(TemplatesDir) - - dotnet-runtime-deps-rpm_config_ - - - - - - DepsRid=$(OutputRid);$(SharedProperties) - - - - - - - - - DepsRid=%(Rids.Identity);$(SharedProperties) - - - - - - - - - - $([System.String]::Copy('$(DotnetRuntimeDependenciesPackageInstallerFile)').Replace('$(OutputRid)', '$(DepsRid)')) - $(RuntimeDependenciesRpmPkgName) - $(RuntimeDepsRpmPackageVersion) - dotnet-runtime-deps-rpm_config_$(DepsRid).json - $(rpmPackagingConfigPath)$(ConfigJsonName) - $(PackagesIntermediateDir)$(RpmPackageName)/$(RpmPackageVersion) - - - - $(RpmIntermediatesDir)/rpmLayoutDirectory/ - $(RpmLayoutDirectory)package_root - $(RpmLayoutDirectory)docs - $(RpmLayoutDirectory)templates - - - - - - - - - - - - - - - - - - - - - - - - - - $(RpmPackageName) - - - $(RuntimeDepsRpmPackageVersion) - - - $(RuntimeDepsRpmPackageRelease) - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/packaging/rpm/templates/changelog b/src/installer/pkg/packaging/rpm/templates/changelog deleted file mode 100644 index e61dbc607cb8..000000000000 --- a/src/installer/pkg/packaging/rpm/templates/changelog +++ /dev/null @@ -1,2 +0,0 @@ -* {DATE} {MAINTAINER_NAME} <{MAINTAINER_EMAIL}> - {PACKAGE_VERSION}-{PACKAGE_REVISION} -- {CHANGELOG_MESSAGE} diff --git a/src/installer/pkg/packaging/rpm/templates/copyright b/src/installer/pkg/packaging/rpm/templates/copyright deleted file mode 100644 index a44f2cbd6516..000000000000 --- a/src/installer/pkg/packaging/rpm/templates/copyright +++ /dev/null @@ -1,8 +0,0 @@ -Comment: Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. - -Files: * -Copyright: {COPYRIGHT_TEXT} -License: {LICENSE_NAME} - -License: {LICENSE_NAME} - {LICENSE_TEXT} diff --git a/src/installer/pkg/packaging/snaps/dotnet-runtime-3.0/snap/snapcraft.yaml b/src/installer/pkg/packaging/snaps/dotnet-runtime-3.0/snap/snapcraft.yaml deleted file mode 100644 index 9276af3d01f0..000000000000 --- a/src/installer/pkg/packaging/snaps/dotnet-runtime-3.0/snap/snapcraft.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: dotnet-runtime-30 -base: core18 -version: 3.0.2 -summary: Cross-Platform .NET Core Runtime. -description: | - .NET Core runtimes and libraries which are optimized for running .NET Core apps in production. See https://dot.net/core. - .NET Core is a general purpose development platform maintained by Microsoft. - -grade: stable -confinement: strict - -apps: - dotnet: - command: dotnet - plugs: - - network - - network-bind - - removable-media - - home - -slots: - dotnet-runtime: - content: dotnet-runtime-30 - interface: content - read: [/] - -parts: - dotnet-runtime: - plugin: dump - source: https://download.visualstudio.microsoft.com/download/pr/7647815e-9c28-40a5-96ea-c6ac4ebe2020/c026b1e93a5d6750a7666d3fe36a87f5/dotnet-runtime-3.0.2-linux-x64.tar.gz - source-checksum: sha512/c8f0e4eb220fa896c4a803a8d9d0c704ae7b8383801a977036f3089b1d779159f5a2d9293dc11ff5f4f6c76febc6f70f6cfcdff0debd3243cad5eb635f853d45 - stage-packages: - - libicu60 - - libssl1.0.0 - - libcurl3 - - libgssapi-krb5-2 - - liblttng-ust0 - - libstdc++6 - - zlib1g - - libgcc1 - - lldb - - libunwind8 - - libtinfo5 - - libdb5.3 - - libc6 \ No newline at end of file diff --git a/src/installer/pkg/packaging/version_badge.svg b/src/installer/pkg/packaging/version_badge.svg deleted file mode 100644 index 956523b78df3..000000000000 --- a/src/installer/pkg/packaging/version_badge.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - version - version - ver_number - ver_number - - diff --git a/src/installer/pkg/packaging/vs-insertion-packages.proj b/src/installer/pkg/packaging/vs-insertion-packages.proj deleted file mode 100644 index fd69aea557f7..000000000000 --- a/src/installer/pkg/packaging/vs-insertion-packages.proj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - $(NetCoreAppCurrent) - - - - - - - - - - - - - diff --git a/src/installer/pkg/projects/Directory.Build.props b/src/installer/pkg/projects/Directory.Build.props index 9d6ae93d467c..d64e7f18c1f1 100644 --- a/src/installer/pkg/projects/Directory.Build.props +++ b/src/installer/pkg/projects/Directory.Build.props @@ -1,6 +1,5 @@ - AnyCPU @@ -46,22 +45,9 @@ true - - NetCore - VS.Redist.Common - - - + - - - - @@ -165,8 +151,10 @@ @(RestoreBuildRID) - $(PackageRID) + $(OutputRid) - + + + diff --git a/src/installer/pkg/projects/Directory.Build.targets b/src/installer/pkg/projects/Directory.Build.targets index 383e5549c36e..095938d03a4f 100644 --- a/src/installer/pkg/projects/Directory.Build.targets +++ b/src/installer/pkg/projects/Directory.Build.targets @@ -1,32 +1,13 @@ - - - - - - $(Version) - true - - - - true - - - @@ -38,16 +19,6 @@ - - .Mono - - - .Mono.LLVM - - - .Mono.LLVM.AOT - - - - - + + + + + - - + + + + runtimes/$(PackageTargetRuntime)/native + + + tools + + + + + + + - - - + - - - - - + + + + + + + true - true + true - + runtimes/$(PackageTargetRuntime)/native true @@ -213,163 +199,6 @@ - - - - - - - - - - - - <_PkgProjDependencyWithoutTFM Include="@(PkgProjDependency)" Condition="'%(PkgProjDependency.TargetFramework)' == '' AND '%(PkgProjDependency.TargetRuntime)' == '' AND '%(PkgProjDependency.DoNotExpand)' != 'true'" /> - <_AllPkgProjTFMs Include="%(PkgProjDependency.TargetFramework)" Condition="'%(PkgProjDependency.DependencyKind)' == 'Direct'" /> - - - - - %(_AllPkgProjTFMs.Identity) - - - - - - - - - - - - - - - $(BuildTargetPath)$(Id).props - $(BuildTargetPath)$(Id.Replace('.Internal', '')).PlatformManifest.txt - - - - - - - - - - - - - - <_propsFileTemplateFile Condition="'%(_depprojDataFile.PropsFile)' == 'true'">%(_depprojDataFile.Identity) - - - - <_runtimeDependencyItems>@(RuntimeDependency) - <_filledPropsFileContent>$([System.IO.File]::ReadAllText('$(_propsFileTemplateFile)') - .Replace("__PackageId__", "$(Id.Replace('.', '_'))") - .Replace("__PreferredPackages__", "$(Id);$(_runtimeDependencyItems)")) - - - <_filledPropsFile>$(IntermediateOutputPath)$(MSBuildProjectName).props - - - - - - - - - - - - - <_platformManifestFileTemplateFile Condition="'%(_depprojDataFile.PlatformManifestFile)' == 'true'">%(_depprojDataFile.Identity) - - - - <_runtimeDependencyItems>@(RuntimeDependency) - <_filledPlatformManifestFileContent>$([System.IO.File]::ReadAllText('$(_platformManifestFileTemplateFile)') - .Replace("__PackageId__", "$(Id)")) - - - <_filledPlatformManifestFile>$(IntermediateOutputPath)PlatformManifest.txt - - - - - - - - - - - - FrameworkList.xml - $(IntermediateOutputPath)$(FrameworkListFilename) - - - - - - - - - - - - - - - - $(FrameworkListTargetPath) - - - - - - - - - - - - - diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.pkgproj b/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.pkgproj index a363542fa625..eeedb0faea01 100644 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.pkgproj +++ b/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.pkgproj @@ -1,8 +1,32 @@ AppHostVersion - true - + + + + + + + + + + + + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.props b/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.props deleted file mode 100644 index 3f6f90f8cf47..000000000000 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetAppHost/Microsoft.NETCore.DotNetAppHost.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - runtimes/$(PackageTargetRuntime)/native - true - - - - diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/Microsoft.NETCore.DotNetHost.pkgproj b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/Microsoft.NETCore.DotNetHost.pkgproj index e8e11eb27314..a957392ccde4 100644 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/Microsoft.NETCore.DotNetHost.pkgproj +++ b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/Microsoft.NETCore.DotNetHost.pkgproj @@ -4,52 +4,10 @@ HostVersion dotnet-host - true - true - - - $(SharedHostBrandName) - sharedhost - Dotnet_CLI_SharedHost - SharedHost - - $(IntermediateOutputPath)publishRoot/ - - - - - - - - - - - - - - - - - - - - - - - - - + runtimes/$(PackageTargetRuntime)/native true diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.pkgproj b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.pkgproj index ccca328154d6..43d12c53b96d 100644 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.pkgproj +++ b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.pkgproj @@ -2,12 +2,17 @@ HostPolicyVersion - true - + + + + runtimes/$(PackageTargetRuntime)/native + true + + diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.props b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.props deleted file mode 100644 index 6b1b70b6c206..000000000000 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostPolicy/Microsoft.NETCore.DotNetHostPolicy.props +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - runtimes/$(PackageTargetRuntime)/native - true - - - - diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.pkgproj b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.pkgproj index bb16d54c5bce..a2d33da0e18b 100644 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.pkgproj +++ b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.pkgproj @@ -4,48 +4,18 @@ HostResolverVersion dotnet-hostfxr - true - true - - - $(HostFxrBrandName) - hostfxr - Dotnet_CLI_HostFxr - HostFXR - - $(IntermediateOutputPath)publishRoot/ - - - - - - - - - - - - - - - - + + + + runtimes/$(PackageTargetRuntime)/native + true + + diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.props b/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.props deleted file mode 100644 index 81d8d72da34c..000000000000 --- a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHostResolver/Microsoft.NETCore.DotNetHostResolver.props +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - runtimes/$(PackageTargetRuntime)/native - true - - - - diff --git a/src/installer/pkg/projects/descriptions.json b/src/installer/pkg/projects/descriptions.json index 4b4ae7f6d83b..b262318a3b3c 100644 --- a/src/installer/pkg/projects/descriptions.json +++ b/src/installer/pkg/projects/descriptions.json @@ -28,25 +28,5 @@ "Name": "Microsoft.NETCore.DotNetHost", "Description": "Provides an executable implementation of the Microsoft DotNet Framework and SDK launcher module", "CommonTypes": [ ] - }, - { - "Name": "Microsoft.NETCore", - "Description": "Provides a set of packages that can be used when building portable libraries on .NETCore based platforms.", - "CommonTypes": [ ] - }, - { - "Name": "Microsoft.NETCore.App", - "Description": "A set of .NET APIs that are included in the default .NET application model.", - "CommonTypes": [ ] - }, - { - "Name": "Microsoft.NETCore.App.Internal", - "Description": "Transport package for .NET App runtime assets.", - "CommonTypes": [ ] - }, - { - "Name": "Microsoft.NETCore.App.Ref", - "Description": "A set of .NET APIs that are included in the default .NET application model. Contains reference assemblies, documentation, and other design-time assets.", - "CommonTypes": [ ] } ] diff --git a/src/installer/pkg/projects/host-packages.proj b/src/installer/pkg/projects/host-packages.proj new file mode 100644 index 000000000000..705c3c92dcca --- /dev/null +++ b/src/installer/pkg/projects/host-packages.proj @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/projects/netcoreapp/Directory.Build.props b/src/installer/pkg/projects/netcoreapp/Directory.Build.props deleted file mode 100644 index 36885e8e8b63..000000000000 --- a/src/installer/pkg/projects/netcoreapp/Directory.Build.props +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - windows - Linux - OSX - iOS - tvOS - Android - Browser - FreeBSD - NetBSD - illumos - Solaris - $(CoreCLRTargetOS) - - - - dotnet - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Directory.Build.props b/src/installer/pkg/projects/netcoreapp/pkg/Directory.Build.props deleted file mode 100644 index 40e6a6f9e637..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/Directory.Build.props +++ /dev/null @@ -1,38 +0,0 @@ - - - true - - - - - - $(NetCoreAppCurrentBrandName) - $(NetCoreAppCurrentIdentifier) - $(NetCoreAppCurrentVersion) - $(SharedFrameworkName) - - - - - - - - - - - - - - - - - - - - - RuntimeIdentifier=$(PackageTargetRuntime) - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Crossgen2.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Crossgen2.pkgproj deleted file mode 100644 index 32a1ce3ac47d..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Crossgen2.pkgproj +++ /dev/null @@ -1,113 +0,0 @@ - - - - - crossgen2 - true - true - - - - - - $(ShortFrameworkName)-crossgen2-pack - $(Crossgen2PackBrandName) - Crossgen2Pack - - - - - $(MSBuildThisFileDirectory)crossgenRIDs.props - - - - - - - - - - - - - unix - win - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tools - - - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Host.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Host.pkgproj deleted file mode 100644 index 8daa78d3ec71..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Host.pkgproj +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - true - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Ref.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Ref.pkgproj deleted file mode 100644 index 450e84155921..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Ref.pkgproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - true - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj deleted file mode 100644 index 003e5b8c52b9..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - true - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/crossgenRIDs.props b/src/installer/pkg/projects/netcoreapp/pkg/crossgenRIDs.props deleted file mode 100644 index f10ef9947ce6..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/crossgenRIDs.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - - false - - - - $(OutputRid) - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Directory.Build.props b/src/installer/pkg/projects/netcoreapp/pkg/legacy/Directory.Build.props deleted file mode 100644 index 03473f6c66f5..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Directory.Build.props +++ /dev/null @@ -1,23 +0,0 @@ - - - - - true - build/$(NetCoreAppCurrent)/ - - false - - - - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.Internal.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.Internal.pkgproj deleted file mode 100644 index a46f80401902..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.Internal.pkgproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - - $(MSBuildThisFileDirectory)Microsoft.NETCore.App.pkgproj - true - - - - - - - false - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.pkgproj deleted file mode 100644 index 5636c4b32e44..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/legacy/Microsoft.NETCore.App.pkgproj +++ /dev/null @@ -1,34 +0,0 @@ - - - - - false - - true - - data/ - true - - - - - - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/pkg/workaround/Microsoft.NETCore.App.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/workaround/Microsoft.NETCore.App.pkgproj deleted file mode 100644 index d5ae432d189a..000000000000 --- a/src/installer/pkg/projects/netcoreapp/pkg/workaround/Microsoft.NETCore.App.pkgproj +++ /dev/null @@ -1,29 +0,0 @@ - - - - true - - - - - - - false - false - - - true - - false - - false - true - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.Bundle.bundleproj b/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.Bundle.bundleproj deleted file mode 100644 index b7c0b1338615..000000000000 --- a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.Bundle.bundleproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - .NET Core Shared Framework Bundle Installer - - - - - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj b/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj deleted file mode 100644 index e2905a88d370..000000000000 --- a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj +++ /dev/null @@ -1,86 +0,0 @@ - - - - - Microsoft.NETCore.App - $(SfxIdentity).Internal - - - $(SharedFrameworkPublishDir) - - true - - - true - true - - - false - - - - - - - - - - - - - - - $(SharedFrameworkInstallerFile) - - - - - - - - - - - - - - - - - - - - - - - - - - - $(RestoreSources);$(LibrariesShippingPackagesDir) - $(RestoreSources);$(LibrariesNonShippingPackagesDir) - - - - $(RestoreSources);$(LibrariesAllConfigShippingPackagesDir) - $(RestoreSources);$(LibrariesAllConfigNonShippingPackagesDir) - - diff --git a/src/installer/pkg/projects/netcoreapp/src/localnetcoreapp.override.targets b/src/installer/pkg/projects/netcoreapp/src/localnetcoreapp.override.targets deleted file mode 100644 index 47b1b703c424..000000000000 --- a/src/installer/pkg/projects/netcoreapp/src/localnetcoreapp.override.targets +++ /dev/null @@ -1,126 +0,0 @@ - - - - - <_diaSymReaderPackageDir>$(NuGetPackageRoot)microsoft.diasymreader.native/$(MicrosoftDiaSymReaderNativeVersion)/ - - - - <_crossHostArch>x86 - - - <_crossHostArch>x64 - - - <_crossHostArch>x64 - - - <_crossHostArch>x64 - - - <_crossDir Condition="'$(_crossHostArch)' != ''">/$(_crossHostArch)_$(TargetArchitecture) - - - - - - - <_diaSymReaderAssembly Include="$(_diaSymReaderPackageDir)**\Microsoft.DiaSymReader.Native.*.dll" /> - - - - <_runtimeDirectory>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'sharedFramework')) - <_crossGenPath>$([MSBuild]::NormalizePath('$(CoreCLRArtifactsPath)', '$(CoreCLRCrossTargetComponentDirName)', 'sharedFramework', 'crossgen$(ApplicationFileExtension)')) - - - - <_coreLibDirectory>$(CoreCLRArtifactsPath) - <_fxLibDirectory>$(LibrariesSharedFrameworkBinArtifactsPath) - - - - <_jitPath>$([MSBuild]::NormalizePath('$(CoreCLRArtifactsPath)', '$(CoreCLRCrossTargetComponentDirName)', 'sharedFramework', '$(LibraryFilePrefix)clrjit$(LibraryFileExtension)')) - - - - <_diaSymReaderToolDir>%(_diaSymReaderAssembly.RootDir)%(_diaSymReaderAssembly.Directory) - - - - - <_diaSymReaderToolDir>$(IntermediateOutputPath) - - - - - <_crossgenPlatformDirectories Include="%(_filesToCrossGen.RootDir)%(_filesToCrossGen.Directory)" /> - - <_crossgenPlatformDirectories Include="$(_runtimeDirectory)" /> - <_crossgenPlatformDirectories Include="$(_coreLibDirectory)" /> - <_crossgenPlatformDirectories Include="$(_fxLibDirectory)" /> - - - - - <_pathSeparatorEscaped>$([MSBuild]::Escape($([System.IO.Path]::PathSeparator.ToString()))) - <_crossgenPlatformAssemblies>@(_crossgenPlatformDirectories->'%(Identity)', '$(_pathSeparatorEscaped)') - - - - - - - - - true - - - - - runtimes/$(PackageRID)/lib/$(PackageTargetFramework) - runtimes/$(PackageRID)/native - - - - %(RidSpecificFilesToPackage.TargetPath)/%(RidSpecificFilesToPackage.DestinationSubDirectory) - - - - - - - - - - - ref/$(PackageTargetFramework) - - - - <_docFilesToPackage Include="%(FilesToPackage.RootDir)%(FilesToPackage.Directory)**\%(FilesToPackage.FileName).xml" /> - - - ref/$(PackageTargetFramework)/%(RecursiveDir) - - - - - - - - - - - diff --git a/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj b/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj deleted file mode 100644 index 79bf46786a4c..000000000000 --- a/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj +++ /dev/null @@ -1,115 +0,0 @@ - - - - Microsoft.NETCore.App - false - - - - - - - - - - - - - - - - - - - <_pastShimFiles Include="System.Globalization.Native.dylib" /> - <_pastShimFiles Include="System.Globalization.Native.so" /> - <_pastShimFiles Include="System.IO.Compression.Native.a" /> - <_pastShimFiles Include="System.IO.Compression.Native.dylib" /> - <_pastShimFiles Include="System.IO.Compression.Native.so" /> - <_pastShimFiles Include="System.Native.a" /> - <_pastShimFiles Include="System.Native.dylib" /> - <_pastShimFiles Include="System.Native.so" /> - <_pastShimFiles Include="System.Net.Http.Native.a" /> - <_pastShimFiles Include="System.Net.Http.Native.dylib" /> - <_pastShimFiles Include="System.Net.Http.Native.so" /> - <_pastShimFiles Include="System.Net.Security.Native.a" /> - <_pastShimFiles Include="System.Net.Security.Native.dylib" /> - <_pastShimFiles Include="System.Net.Security.Native.so" /> - <_pastShimFiles Include="System.Security.Cryptography.Native.Apple.a" /> - <_pastShimFiles Include="System.Security.Cryptography.Native.Apple.dylib" /> - <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.a" /> - <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.dylib" /> - <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.so" /> - - - - - - - - - - - - runtimes/$(PackageRID)/native - - - - tools - - - - runtimes/$(PackageRID)/native/cross - - - runtimes/$(PackageRID)/native/include/%(RecursiveDir) - - - - runtimes/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native - - - tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) - - - tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) - - - tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) - - - - - - - - - - - - - - - - - - - <_docFilesToPackage Include="$(ArtifactsBinDir)/docs/%(LibrariesRefAssemblies.FileName).xml" Condition="Exists('$(ArtifactsBinDir)/docs/%(LibrariesRefAssemblies.FileName).xml')"/> - - - - - - diff --git a/src/installer/pkg/projects/netcoreappRIDs.props b/src/installer/pkg/projects/netcoreappRIDs.props index 86a934d2b917..1382ff46b822 100644 --- a/src/installer/pkg/projects/netcoreappRIDs.props +++ b/src/installer/pkg/projects/netcoreappRIDs.props @@ -1,10 +1,6 @@ - - $(OutputRid) - - diff --git a/src/installer/pkg/sfx/Directory.Build.props b/src/installer/pkg/sfx/Directory.Build.props new file mode 100644 index 000000000000..6c4517eb7b5b --- /dev/null +++ b/src/installer/pkg/sfx/Directory.Build.props @@ -0,0 +1,23 @@ + + + true + + + + + $(NetCoreAppCurrent) + + + $(RepoRoot)THIRD-PARTY-NOTICES.TXT + + https://go.microsoft.com/fwlink/?LinkID=799417 + https://dot.net + Microsoft + 2.12 + $(RepoRoot)LICENSE.TXT + Microsoft .NET + true + true + + diff --git a/src/installer/pkg/sfx/Directory.Build.targets b/src/installer/pkg/sfx/Directory.Build.targets new file mode 100644 index 000000000000..0ea3761da20e --- /dev/null +++ b/src/installer/pkg/sfx/Directory.Build.targets @@ -0,0 +1,19 @@ + + + + + $(PackageId) + Internal implementation package not meant for direct consumption. Please do not reference directly. + When using NuGet 3.x, this package requires at least version 3.4. + + + + + $(RuntimeDisclaimer) %0A$(SourceRevisionId) %0A$(MinimumNuGet3VersionDescription) + $(RuntimeDisclaimer) %0A$(Description) %0A$(SourceRevisionId) %0A$(MinimumNuGet3VersionDescription) + + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props new file mode 100644 index 000000000000..e62594ed671d --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -0,0 +1,405 @@ + + + + + Microsoft.NETCore.App + .NET Runtime + true + + + + + + + + + + + + + + + + + + + + + + + + <_pastShimFiles Include="System.Globalization.Native.dylib" /> + <_pastShimFiles Include="System.Globalization.Native.so" /> + <_pastShimFiles Include="System.IO.Compression.Native.a" /> + <_pastShimFiles Include="System.IO.Compression.Native.dylib" /> + <_pastShimFiles Include="System.IO.Compression.Native.so" /> + <_pastShimFiles Include="System.Native.a" /> + <_pastShimFiles Include="System.Native.dylib" /> + <_pastShimFiles Include="System.Native.so" /> + <_pastShimFiles Include="System.Net.Http.Native.a" /> + <_pastShimFiles Include="System.Net.Http.Native.dylib" /> + <_pastShimFiles Include="System.Net.Http.Native.so" /> + <_pastShimFiles Include="System.Net.Security.Native.a" /> + <_pastShimFiles Include="System.Net.Security.Native.dylib" /> + <_pastShimFiles Include="System.Net.Security.Native.so" /> + <_pastShimFiles Include="System.Security.Cryptography.Native.Apple.a" /> + <_pastShimFiles Include="System.Security.Cryptography.Native.Apple.dylib" /> + <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.a" /> + <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.dylib" /> + <_pastShimFiles Include="System.Security.Cryptography.Native.OpenSsl.so" /> + + + + + true + 10.0.19041.1 + 14.12.25830.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_hostArch>$(TargetArchitecture) + <_longNameTargetArch>$(TargetArchitecture) + <_hostArch Condition="'$(_hostArch)' == 'x64'">amd64 + <_longNameTargetArch Condition="'$(_longNameTargetArch)' == 'x64'">amd64 + + + <_hostArch>x86 + + + <_hostArch>amd64 + + + <_hostArch>amd64 + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.targets b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.targets new file mode 100644 index 000000000000..9859603f7eb8 --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.targets @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Crossgen2.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Crossgen2.sfxproj new file mode 100644 index 000000000000..fee0cf0102be --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Crossgen2.sfxproj @@ -0,0 +1,110 @@ + + + + + + true + RuntimePack + Microsoft.NETCore.App.Crossgen2 + Microsoft.NETCore.App.Crossgen2.$(RuntimeIdentifier) + dotnet-crossgen2 + crossgen2 + linux-x64;linux-musl-x64;osx-x64;win-x64 + false + + AddRuntimeFilesToPackage; + AddFrameworkFilesToPackage + + true + + false + tools/ + true + + + + unix + win + $(TargetOSComponent)-$(TargetArchitecture) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_diaSymArch Condition="'$(_hostArch)' != ''">$(_hostArch) + <_diaSymReaderPath>$(PkgMicrosoft_DiaSymReader_Native)/runtimes/win/native/Microsoft.DiaSymReader.Native.$(_diaSymArch).dll + <_diaSymReaderPathIfExists Condition="Exists('$(_diaSymReaderPath)')">$(_diaSymReaderPath) + + + + + + + + + + + + <_crossTargetJit Include="@(CoreCLRCrossTargetFiles)" Condition="'%(FileName)' == '$(LibPrefix)clrjit' and '%(Extension)' == '$(LibSuffix)'" /> + <_clrjit Include="@(RuntimeFiles)" Condition="'%(FileName)' == '$(LibPrefix)clrjit' and '%(Extension)' == '$(LibSuffix)'" /> + <_crossTargetCrossgen Include="@(CoreCLRCrossTargetFiles)" Condition="'%(FileName)' == 'crossgen' and '%(Extension)' == '$(ExeSuffix)'" /> + <_crossgen Include="@(RuntimeFiles)" Condition="'%(FileName)' == 'crossgen' and '%(Extension)' == '$(ExeSuffix)'" /> + + + + + + + + + + + + + + + + <_PackagedFilesToPublish Include="@(_FilesToPackage)" Condition="'%(_FilesToPackage.PackOnly)' != 'true'" /> + + + + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj new file mode 100644 index 000000000000..eb264e1385fd --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj @@ -0,0 +1,66 @@ + + + + + true + AppHostPack + true + dotnet-apphost-pack + dotnet-apphost-pack + NetCore.AppHostPack + + + + + + + + + + + + + + + + + + + + + + + + + <_SymbolFiles Condition="'$(TargetOS)' == 'windows'" + Include="@(NativeRuntimeAsset->'%(RootDir)%(Directory)PDB/%(Filename).pdb')" + IsSymbolFile="true" + IsNative="true" /> + <_SymbolFiles Condition="'$(TargetOS)' != 'windows'" + Include="@(NativeRuntimeAsset->'%(RootDir)%(Directory)PDB/%(Filename)%(Extension)%(SymbolsSuffix)')" + IsSymbolFile="true" + IsNative="true" /> + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj new file mode 100644 index 000000000000..327ba6421fd6 --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj @@ -0,0 +1,19 @@ + + + + + TargetingPack + true + dotnet-targeting-pack + dotnet-targeting-pack + NetCore.TargetingPack + A set of .NET APIs that are included in the default .NET application model. Contains reference assemblies, documentation, and other design-time assets. + + + + + + + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj new file mode 100644 index 000000000000..2402d7fbe2ef --- /dev/null +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj @@ -0,0 +1,127 @@ + + + + + + RuntimePack + dotnet-runtime-internal + dotnet-runtime + dotnet-runtime-internal + true + dotnet-runtime-symbols + NetCore.SharedFramework + true + + AddRuntimeFilesToPackage; + AddFrameworkFilesToPackage + + true + false + + false + + true + true + The .NET Shared Framework + + + + Mono + + + Mono.LLVM + + + Mono.LLVM.AOT + + + $(SharedFrameworkName).Runtime.$(RuntimeSpecificFrameworkSuffix).$(RuntimeIdentifier) + + + + + + + + + + + + + + + + runtimes/$(RuntimeIdentifier)/native + + + + tools + + + + runtimes/$(RuntimeIdentifier)/native/cross + + + runtimes/$(RuntimeIdentifier)/native/include/%(RecursiveDir) + + + + runtimes/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native + + + tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) + + + tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) + + + tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture) + + + + + + + + + runtimes/$(RuntimeIdentifier)/native/%(LibrariesRuntimeFiles.NativeSubDirectory)%(RecursiveDir) + + + + + + <_diaSymArch Condition="'$(_hostArch)' != ''">$(_hostArch) + <_diaSymReaderPath>$(PkgMicrosoft_DiaSymReader_Native)/runtimes/win/native/Microsoft.DiaSymReader.Native.$(_diaSymArch).dll + <_diaSymReaderPathIfExists Condition="Exists('$(_diaSymReaderPath)')">$(_diaSymReaderPath) + + + + + + + + + + + + <_crossTargetJit Include="@(CoreCLRCrossTargetFiles)" Condition="'%(FileName)' == '$(LibPrefix)clrjit' and '%(Extension)' == '$(LibSuffix)'" /> + <_clrjit Include="@(RuntimeFiles)" Condition="'%(FileName)' == '$(LibPrefix)clrjit' and '%(Extension)' == '$(LibSuffix)'" /> + <_crossTargetCrossgen Include="@(CoreCLRCrossTargetFiles)" Condition="'%(FileName)' == 'crossgen' and '%(Extension)' == '$(ExeSuffix)'" /> + <_crossgen Include="@(RuntimeFiles)" Condition="'%(FileName)' == 'crossgen' and '%(Extension)' == '$(ExeSuffix)'" /> + + + + + + + + + diff --git a/src/installer/pkg/projects/netcoreapp/pkg/PackageOverrides.txt b/src/installer/pkg/sfx/Microsoft.NETCore.App/PackageOverrides.txt similarity index 100% rename from src/installer/pkg/projects/netcoreapp/pkg/PackageOverrides.txt rename to src/installer/pkg/sfx/Microsoft.NETCore.App/PackageOverrides.txt diff --git a/src/installer/pkg/sfx/bundle/Microsoft.NETCore.App.Bundle.bundleproj b/src/installer/pkg/sfx/bundle/Microsoft.NETCore.App.Bundle.bundleproj new file mode 100644 index 000000000000..9d3caba9e8ae --- /dev/null +++ b/src/installer/pkg/sfx/bundle/Microsoft.NETCore.App.Bundle.bundleproj @@ -0,0 +1,39 @@ + + + + + true + .NET Core Shared Framework Bundle Installer + $(MSBuildProjectDirectory) + dotnet-runtime + dotnet-runtime + win-x86;win-x64;win-arm64;osx-x64 + Runtime + $(MSBuildProjectDirectory)/shared-framework-distribution-template.xml + com.microsoft.dotnet.Microsoft.NETCore.App.$(ProductVersion).osx.x64 + osx_resources + + + + + + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/projects/netcoreapp/sfx/bundle.thm b/src/installer/pkg/sfx/bundle/bundle.thm similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/bundle.thm rename to src/installer/pkg/sfx/bundle/bundle.thm diff --git a/src/installer/pkg/projects/netcoreapp/sfx/bundle.wxl b/src/installer/pkg/sfx/bundle/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/bundle.wxl rename to src/installer/pkg/sfx/bundle/bundle.wxl diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/cs.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/cs.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/cs.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/cs.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/cs.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/cs.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/cs.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/de.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/de.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/de.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/de.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/de.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/de.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/de.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/de.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/de.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/de.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/de.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/de.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/hostfxr/resources/dotnetbackground.png b/src/installer/pkg/sfx/bundle/osx_resources/dotnetbackground.png similarity index 100% rename from src/installer/pkg/packaging/osx/hostfxr/resources/dotnetbackground.png rename to src/installer/pkg/sfx/bundle/osx_resources/dotnetbackground.png diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/en.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/en.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/en.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/en.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/en.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/en.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/en.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/en.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/en.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/en.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/en.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/en.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/es.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/es.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/es.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/es.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/es.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/es.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/es.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/es.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/es.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/es.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/es.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/es.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/fr.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/fr.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/fr.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/fr.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/fr.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/fr.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/fr.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/it.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/it.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/it.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/it.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/it.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/it.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/it.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/it.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/it.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/it.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/it.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/it.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/ja.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/ja.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/ja.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/ja.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/ja.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/ja.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/ja.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/ko.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/ko.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/ko.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/ko.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/ko.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/ko.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/ko.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/pl.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/pl.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/pl.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/pl.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/pl.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/pl.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/pl.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/pt-br.lproj/conclusion.html b/src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/conclusion.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/pt-br.lproj/conclusion.html rename to src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/conclusion.html diff --git a/src/installer/pkg/packaging/osx/resources/pt-br.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/pt-br.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/sharedframework/resources/pt-br.lproj/welcome.html b/src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/welcome.html similarity index 100% rename from src/installer/pkg/packaging/osx/sharedframework/resources/pt-br.lproj/welcome.html rename to src/installer/pkg/sfx/bundle/osx_resources/pt-br.lproj/welcome.html diff --git a/src/installer/pkg/packaging/osx/resources/ru.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/ru.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/ru.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/ru.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/resources/tr.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/tr.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/tr.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/tr.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/resources/zh-hans.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/zh-hans.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/zh-hans.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/zh-hans.lproj/eula.rtf diff --git a/src/installer/pkg/packaging/osx/resources/zh-hant.lproj/eula.rtf b/src/installer/pkg/sfx/bundle/osx_resources/zh-hant.lproj/eula.rtf similarity index 100% rename from src/installer/pkg/packaging/osx/resources/zh-hant.lproj/eula.rtf rename to src/installer/pkg/sfx/bundle/osx_resources/zh-hant.lproj/eula.rtf diff --git a/src/installer/pkg/sfx/bundle/shared-framework-distribution-template.xml b/src/installer/pkg/sfx/bundle/shared-framework-distribution-template.xml new file mode 100644 index 000000000000..2a1f0b8c7242 --- /dev/null +++ b/src/installer/pkg/sfx/bundle/shared-framework-distribution-template.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1028/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1028/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1028/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1028/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1029/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1029/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1029/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1029/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1031/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1031/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1031/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1031/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1033/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1033/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1033/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1033/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1036/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1036/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1036/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1036/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1040/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1040/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1040/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1040/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1041/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1041/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1041/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1041/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1042/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1042/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1042/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1042/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1045/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1045/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1045/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1045/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1046/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1046/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1046/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1046/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1049/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1049/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1049/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1049/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/1055/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/1055/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/1055/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/1055/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/2052/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/2052/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/2052/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/2052/bundle.wxl diff --git a/src/installer/pkg/projects/netcoreapp/sfx/theme/3082/bundle.wxl b/src/installer/pkg/sfx/bundle/theme/3082/bundle.wxl similarity index 100% rename from src/installer/pkg/projects/netcoreapp/sfx/theme/3082/bundle.wxl rename to src/installer/pkg/sfx/bundle/theme/3082/bundle.wxl diff --git a/src/installer/pkg/sfx/installers.proj b/src/installer/pkg/sfx/installers.proj new file mode 100644 index 000000000000..5e7d5908d7a5 --- /dev/null +++ b/src/installer/pkg/sfx/installers.proj @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/Directory.Build.targets b/src/installer/pkg/sfx/installers/Directory.Build.targets new file mode 100644 index 000000000000..d108af94975d --- /dev/null +++ b/src/installer/pkg/sfx/installers/Directory.Build.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-host.proj b/src/installer/pkg/sfx/installers/dotnet-host.proj new file mode 100644 index 000000000000..29f7a3d6e3e4 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-host.proj @@ -0,0 +1,64 @@ + + + true + true + dotnet-host + dotnet-host-internal + Host + NetCore.SharedHost + true + true + sharedhost + Dotnet_CLI_SharedHost + HostSrc + false + true + sharedhost + false + osx_scripts/host + The .NET Shared Host. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/sfx/installers/dotnet-hostfxr.proj b/src/installer/pkg/sfx/installers/dotnet-hostfxr.proj new file mode 100644 index 000000000000..9b06423171e2 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-hostfxr.proj @@ -0,0 +1,45 @@ + + + true + true + dotnet-hostfxr-internal + dotnet-hostfxr + dotnet-hostfxr-internal + Host FX Resolver + ToolPack + NetCore.HostFXR + true + hostfxr + Dotnet_CLI_HostFxr + HostFxrSrc + true + hostfxr + osx_scripts/hostfxr + The .NET HostFxr + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.props b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.props new file mode 100644 index 000000000000..a6ee5fb0c073 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.props @@ -0,0 +1,9 @@ + + + + + Runtime Dependencies + dotnet-runtime-deps + linux-$(TargetArchitecture) + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.targets b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.targets new file mode 100644 index 000000000000..946b64573765 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-centos.7.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-centos.7.proj new file mode 100644 index 000000000000..687887134c41 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-centos.7.proj @@ -0,0 +1,10 @@ + + + false + centos.7 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-debian.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-debian.proj new file mode 100644 index 000000000000..cbdc40bdb2f5 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-debian.proj @@ -0,0 +1,14 @@ + + + false + + + + + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-fedora.27.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-fedora.27.proj new file mode 100644 index 000000000000..044f9326b4b7 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-fedora.27.proj @@ -0,0 +1,10 @@ + + + false + fedora.27 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-opensuse.42.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-opensuse.42.proj new file mode 100644 index 000000000000..6453d117728d --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-opensuse.42.proj @@ -0,0 +1,10 @@ + + + false + opensuse.42 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-oraclelinux.7.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-oraclelinux.7.proj new file mode 100644 index 000000000000..76afbe1850cd --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-oraclelinux.7.proj @@ -0,0 +1,10 @@ + + + false + oraclelinux.7 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-rhel.7.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-rhel.7.proj new file mode 100644 index 000000000000..258b3696d7b6 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-rhel.7.proj @@ -0,0 +1,10 @@ + + + false + rhel.7 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-sles.12.proj b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-sles.12.proj new file mode 100644 index 000000000000..912692f5d7f2 --- /dev/null +++ b/src/installer/pkg/sfx/installers/dotnet-runtime-deps/dotnet-runtime-deps-sles.12.proj @@ -0,0 +1,10 @@ + + + false + sles.12 + + + + + + \ No newline at end of file diff --git a/src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/host.wxs b/src/installer/pkg/sfx/installers/host.wxs similarity index 100% rename from src/installer/pkg/projects/Microsoft.NETCore.DotNetHost/host.wxs rename to src/installer/pkg/sfx/installers/host.wxs diff --git a/src/installer/pkg/packaging/osx/sharedhost/scripts/postinstall b/src/installer/pkg/sfx/installers/osx_scripts/host/postinstall old mode 100755 new mode 100644 similarity index 87% rename from src/installer/pkg/packaging/osx/sharedhost/scripts/postinstall rename to src/installer/pkg/sfx/installers/osx_scripts/host/postinstall index 531cb93fd382..33d9db28f2fb --- a/src/installer/pkg/packaging/osx/sharedhost/scripts/postinstall +++ b/src/installer/pkg/sfx/installers/osx_scripts/host/postinstall @@ -2,6 +2,7 @@ # # Licensed to the .NET Foundation under one or more agreements. # The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. # PACKAGE=$1 diff --git a/src/installer/pkg/packaging/osx/hostfxr/scripts/postinstall b/src/installer/pkg/sfx/installers/osx_scripts/hostfxr/postinstall old mode 100755 new mode 100644 similarity index 85% rename from src/installer/pkg/packaging/osx/hostfxr/scripts/postinstall rename to src/installer/pkg/sfx/installers/osx_scripts/hostfxr/postinstall index 2d0ceb827869..b8c5e60b92d9 --- a/src/installer/pkg/packaging/osx/hostfxr/scripts/postinstall +++ b/src/installer/pkg/sfx/installers/osx_scripts/hostfxr/postinstall @@ -2,6 +2,7 @@ # # Licensed to the .NET Foundation under one or more agreements. # The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. # PACKAGE=$1 diff --git a/src/installer/publish/Directory.Build.targets b/src/installer/publish/Directory.Build.targets index 7c618f52986c..24576c885bc1 100644 --- a/src/installer/publish/Directory.Build.targets +++ b/src/installer/publish/Directory.Build.targets @@ -15,10 +15,16 @@ $(DownloadDirectory)IntermediateUnsignedArtifacts\Windows_x64\Shipping\a.nupkg --> + + + + @@ -26,7 +32,7 @@ + Exclude="@(DownloadedSymbolNupkgFile);@(DownloadedNupkgFile);@(DownloadedWixPdbFile)" /> + + + + + + + + true + + @@ -46,81 +56,19 @@ - - - - - - + - $(PackagesUrl) Manifest.xml $(ArtifactsLogDir)AssetManifest/$(AssetManifestFilename) $(ArtifactsObjDir)TempWorkingDir\$([System.Guid]::NewGuid())\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(PackagesUrl) - Manifest_Installers.xml - $(ArtifactsLogDir)AssetManifest/$(AssetManifestFilename) - - - $(ArtifactsObjDir)TempWorkingDir\$([System.Guid]::NewGuid())\ - + $(ProductionVersion) $(ProductVersion) - @@ -129,29 +77,43 @@ Lines="$(ProductVersionTxtContents)" Overwrite="true" Encoding="ASCII" /> - + + + + + $(InstallersRelativePath)%(Filename)%(Extension) + true $(InstallersRelativePath)%(Filename)%(Extension) Checksum + true $(InstallersRelativePath)productVersion.txt + true @@ -182,10 +143,8 @@ + PreparePublishToAzureBlobFeed"> diff --git a/src/installer/signing/Directory.Build.props b/src/installer/signing/Directory.Build.props deleted file mode 100644 index 7c45d0300be1..000000000000 --- a/src/installer/signing/Directory.Build.props +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - $(NetCoreAppCurrent) - - - true - - diff --git a/src/installer/signing/Directory.Build.targets b/src/installer/signing/Directory.Build.targets deleted file mode 100644 index 7d95c6c7b7f9..000000000000 --- a/src/installer/signing/Directory.Build.targets +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - $([System.DateTime]::UtcNow) - - - - - - - $([System.DateTime]::UtcNow.Subtract($([System.DateTime]::Parse('$(SignStartTime)')))) - - - - - - - - - - - diff --git a/src/installer/signing/SignBinaries.proj b/src/installer/signing/SignBinaries.proj deleted file mode 100644 index 8b1f6811f442..000000000000 --- a/src/installer/signing/SignBinaries.proj +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/installer/signing/SignBurnBundleFiles.proj b/src/installer/signing/SignBurnBundleFiles.proj deleted file mode 100644 index 55c7a8c5810d..000000000000 --- a/src/installer/signing/SignBurnBundleFiles.proj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/installer/signing/SignBurnEngineFiles.proj b/src/installer/signing/SignBurnEngineFiles.proj deleted file mode 100644 index 382eb202318f..000000000000 --- a/src/installer/signing/SignBurnEngineFiles.proj +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - diff --git a/src/installer/signing/SignFinalPackages.proj b/src/installer/signing/SignFinalPackages.proj deleted file mode 100644 index 35e3d8428b7c..000000000000 --- a/src/installer/signing/SignFinalPackages.proj +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/installer/signing/SignMsiFiles.proj b/src/installer/signing/SignMsiFiles.proj deleted file mode 100644 index 55dd18dca673..000000000000 --- a/src/installer/signing/SignMsiFiles.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/installer/signing/SignR2RBinaries.proj b/src/installer/signing/SignR2RBinaries.proj deleted file mode 100644 index f2f60ef725fa..000000000000 --- a/src/installer/signing/SignR2RBinaries.proj +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/installer/pkg/packaging/snaps/arm/dotnet-sdk-3.1/snap/snapcraft.yaml b/src/installer/snaps/arm/dotnet-sdk-3.1/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/arm/dotnet-sdk-3.1/snap/snapcraft.yaml rename to src/installer/snaps/arm/dotnet-sdk-3.1/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/arm/dotnet-sdk-5.0/snap/snapcraft.yaml b/src/installer/snaps/arm/dotnet-sdk-5.0/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/arm/dotnet-sdk-5.0/snap/snapcraft.yaml rename to src/installer/snaps/arm/dotnet-sdk-5.0/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/arm64/dotnet-sdk-5.0/snap/snapcraft.yaml b/src/installer/snaps/arm64/dotnet-sdk-5.0/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/arm64/dotnet-sdk-5.0/snap/snapcraft.yaml rename to src/installer/snaps/arm64/dotnet-sdk-5.0/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-runtime-2.1/snap/snapcraft.yaml b/src/installer/snaps/dotnet-runtime-2.1/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-runtime-2.1/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-runtime-2.1/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-runtime-3.1/snap/snapcraft.yaml b/src/installer/snaps/dotnet-runtime-3.1/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-runtime-3.1/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-runtime-3.1/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-runtime-5.0/snap/snapcraft.yaml b/src/installer/snaps/dotnet-runtime-5.0/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-runtime-5.0/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-runtime-5.0/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-sdk-2.1/snap/snapcraft.yaml b/src/installer/snaps/dotnet-sdk-2.1/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-sdk-2.1/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-sdk-2.1/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-sdk-3.1/snap/snapcraft.yaml b/src/installer/snaps/dotnet-sdk-3.1/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-sdk-3.1/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-sdk-3.1/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-sdk-5.0/snap/snapcraft.yaml b/src/installer/snaps/dotnet-sdk-5.0/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-sdk-5.0/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-sdk-5.0/snap/snapcraft.yaml diff --git a/src/installer/pkg/packaging/snaps/dotnet-sdk/dotnet-runtime b/src/installer/snaps/dotnet-sdk/dotnet-runtime old mode 100755 new mode 100644 similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-sdk/dotnet-runtime rename to src/installer/snaps/dotnet-sdk/dotnet-runtime diff --git a/src/installer/pkg/packaging/snaps/dotnet-sdk/snap/snapcraft.yaml b/src/installer/snaps/dotnet-sdk/snap/snapcraft.yaml similarity index 100% rename from src/installer/pkg/packaging/snaps/dotnet-sdk/snap/snapcraft.yaml rename to src/installer/snaps/dotnet-sdk/snap/snapcraft.yaml diff --git a/src/installer/tests/Assets/TestProjects/BundleProbeTester/Program.cs b/src/installer/tests/Assets/TestProjects/BundleProbeTester/Program.cs index 187e5d4c6fce..ac963679797c 100644 --- a/src/installer/tests/Assets/TestProjects/BundleProbeTester/Program.cs +++ b/src/installer/tests/Assets/TestProjects/BundleProbeTester/Program.cs @@ -13,7 +13,7 @@ public static class Program // The bundle-probe callback is only called from native code in the product // Therefore the type on this test is adjusted to circumvent the failure. [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate byte BundleProbeDelegate([MarshalAs(UnmanagedType.LPWStr)] string path, IntPtr size, IntPtr offset); + public delegate byte BundleProbeDelegate([MarshalAs(UnmanagedType.LPUTF8Str)] string path, IntPtr size, IntPtr offset); unsafe static bool Probe(BundleProbeDelegate bundleProbe, string path, bool isExpected) { diff --git a/src/installer/tests/Assets/TestProjects/Directory.Build.targets b/src/installer/tests/Assets/TestProjects/Directory.Build.targets index 71982e083164..f6350ac71558 100644 --- a/src/installer/tests/Assets/TestProjects/Directory.Build.targets +++ b/src/installer/tests/Assets/TestProjects/Directory.Build.targets @@ -2,16 +2,16 @@ - - - - + + + + diff --git a/src/installer/tests/Directory.Build.targets b/src/installer/tests/Directory.Build.targets index 7d93a0939983..7691ad32cee7 100644 --- a/src/installer/tests/Directory.Build.targets +++ b/src/installer/tests/Directory.Build.targets @@ -13,13 +13,9 @@ Set up the shared framework copy this set of tests should use. There's no known reason to have one per test project, but RepoDirectoriesProvider may need some tweaking to share. --> - - - - - + $([System.IO.Path]::DirectorySeparatorChar) - $([System.String]::Copy('$(TestsOutputDir)').Replace('/', '$(DirectorySeparatorChar)')) - $([System.String]::Copy('$(SystemPathTestsOutputDir)').Replace('\', '$(DirectorySeparatorChar)')) + $(TestsOutputDir.Replace('/', '$(DirectorySeparatorChar)')) + $(SystemPathTestsOutputDir.Replace('\', '$(DirectorySeparatorChar)')) $(NetCoreRoot) @@ -63,7 +59,7 @@ the same as the package's version. Fetch this directly from the project to avoid guesswork. --> @@ -102,27 +98,15 @@ --> - - - - - - - - $(HostRuntimeIdentifier) + $(PackageRID) $(MSBuildProjectName) $(ArtifactsDir)tests/$(Configuration)/ diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs index abcddd239481..40a8473c483f 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs @@ -105,7 +105,7 @@ public void GetHostFxrPath_DotNetRootParameter(bool explicitLoad, bool useAssemb [InlineData(false, true, false, true)] public void GetHostFxrPath_GlobalInstallation(bool explicitLoad, bool useAssemblyPath, bool useRegisteredLocation, bool isValid) { - // Overide the registry key for self-registered global installs. + // Override the registry key for self-registered global installs. // If using the registered location, set the install location value to the valid/invalid root. // If not using the registered location, do not set the value. When the value does not exist, // the product falls back to the default install location. diff --git a/src/installer/tests/HostActivation.Tests/RuntimeConfig.cs b/src/installer/tests/HostActivation.Tests/RuntimeConfig.cs index 6e810dc5d7cd..eaa95cb2dcce 100644 --- a/src/installer/tests/HostActivation.Tests/RuntimeConfig.cs +++ b/src/installer/tests/HostActivation.Tests/RuntimeConfig.cs @@ -276,7 +276,9 @@ public void Save() JObject configProperties = new JObject(); foreach (var property in _properties) { - configProperties.Add(property.Item1, property.Item2); + var tokenValue = (property.Item2 == "false" || property.Item2 == "true") ? + JToken.Parse(property.Item2) : property.Item2; + configProperties.Add(property.Item1, tokenValue); } runtimeOptions.Add("configProperties", configProperties); diff --git a/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs b/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs index a33195e54174..fd63e339ec05 100644 --- a/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs +++ b/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs @@ -156,48 +156,5 @@ public void Multiple_SharedFxLookup_Uber_Wins_Over_NetCoreApp_On_PatchRollForwar .And.HaveStdErrContaining(Path.Combine("7777.0.0", "System.Collections.Immutable.dll")) .And.NotHaveStdErrContaining(Path.Combine("9999.1.0", "System.Collections.Immutable.dll")); } - - [Fact] - public void CoreClrLookup_WithNoDirectorySeparatorInDeps() - { - var fixture = SharedFxLookupPortableAppFixture - .Copy(); - - var dotnet = fixture.BuiltDotnet; - var appDll = fixture.TestProject.AppDll; - - string runtimeConfig = Path.Combine(fixture.TestProject.OutputDirectory, "SharedFxLookupPortableApp.runtimeconfig.json"); - SharedFramework.SetRuntimeConfigJson(runtimeConfig, "9999.0.0", null); - - // Add versions in the exe folders - SharedFramework.AddAvailableSharedFxVersions(_builtSharedFxDir, _exeSharedFxBaseDir, "9999.0.0"); - string sharedFxPath = Path.Combine(_exeSharedFxBaseDir, "9999.0.0"); - string sharedFxDepsJsonPath = Path.Combine(sharedFxPath, "Microsoft.NETCore.App.deps.json"); - - // Modify the .deps.json for Microsoft.NETCore.App FX - JObject root = JObject.Parse(File.ReadAllText(sharedFxDepsJsonPath)); - IEnumerable netCoreAppNativeAssets = root["targets"] - .Children().Where(p => p.Name.Contains("/")) - .Children().Children().OfType().Where(p => p.Name.Contains("runtime") && p.Name.Contains("Microsoft.NETCore.App")) - .Values()["native"].Children().OfType(); - - // Change the coreclr.dll asset to specify only "coreclr.dll" as the relative path (no directories). - string coreClrLibraryName = RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("coreclr"); - JProperty coreClrProperty = netCoreAppNativeAssets.First(p => p.Name.Contains(coreClrLibraryName)); - JProperty newCoreClrProperty = new JProperty(coreClrProperty.Name.Substring(coreClrProperty.Name.LastIndexOf('/') + 1), coreClrProperty.Value); - coreClrProperty.Parent.Add(newCoreClrProperty); - coreClrProperty.Remove(); - - File.WriteAllText(sharedFxDepsJsonPath, root.ToString()); - - dotnet.Exec(appDll) - .WorkingDirectory(_currentWorkingDir) - .EnvironmentVariable("COREHOST_TRACE", "1") - .CaptureStdOut() - .CaptureStdErr() - .Execute() - .Should().Pass() - .And.HaveStdErrContaining($"CoreCLR path = '{Path.Combine(sharedFxPath, coreClrLibraryName)}'"); - } } } diff --git a/src/installer/tests/HostActivation.Tests/StartupHooks.cs b/src/installer/tests/HostActivation.Tests/StartupHooks.cs index 12d9e23fc84a..3acb8b665650 100644 --- a/src/installer/tests/HostActivation.Tests/StartupHooks.cs +++ b/src/installer/tests/HostActivation.Tests/StartupHooks.cs @@ -13,6 +13,7 @@ public class StartupHooks : IClassFixture { private SharedTestState sharedTestState; private string startupHookVarName = "DOTNET_STARTUP_HOOKS"; + private string startupHookSupport = "System.StartupHookProvider.IsSupported"; public StartupHooks(StartupHooks.SharedTestState fixture) { @@ -639,6 +640,32 @@ public void Muxer_activation_of_StartupHook_With_Assembly_Resolver() .And.ExitWith(2); } + [Fact] + public void Muxer_activation_of_StartupHook_With_IsSupported_False() + { + var fixture = sharedTestState.PortableAppFixture.Copy(); + var dotnet = fixture.BuiltDotnet; + var appDll = fixture.TestProject.AppDll; + + var startupHookFixture = sharedTestState.StartupHookFixture.Copy(); + var startupHookDll = startupHookFixture.TestProject.AppDll; + + RuntimeConfig.FromFile(fixture.TestProject.RuntimeConfigJson) + .WithProperty(startupHookSupport, "false") + .Save(); + + // Startup hooks are not executed when the StartupHookSupport + // feature switch is set to false. + dotnet.Exec(appDll) + .EnvironmentVariable(startupHookVarName, startupHookDll) + .CaptureStdOut() + .CaptureStdErr() + .Execute() + .Should().Pass() + .And.NotHaveStdOutContaining("Hello from startup hook!") + .And.HaveStdOutContaining("Hello World"); + } + public class SharedTestState : IDisposable { // Entry point projects diff --git a/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/NuGetArtifactTester.cs b/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/NuGetArtifactTester.cs index d5d1aa12a8af..4af9206f6b35 100644 --- a/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/NuGetArtifactTester.cs +++ b/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/NuGetArtifactTester.cs @@ -34,26 +34,12 @@ public class NuGetArtifactTester : IDisposable { id = id ?? project; - string nuspecPath = Path.Combine( - dirs.BaseArtifactsFolder, - "packages", - dirs.Configuration, - "specs", - $"{id}.nuspec"); - - if (!File.Exists(nuspecPath)) - { - return null; - } - - PackageIdentity builtIdentity = new NuspecReader(nuspecPath).GetIdentity(); - string nupkgPath = Path.Combine( dirs.BaseArtifactsFolder, "packages", dirs.Configuration, "Shipping", - $"{builtIdentity}.nupkg"); + $"{id}.{dirs.MicrosoftNETCoreAppVersion}.nupkg"); // If the nuspec exists, the nupkg should exist. Assert.True(File.Exists(nupkgPath)); @@ -106,10 +92,7 @@ public void IsRuntimePack() IsRuntimeSpecificPack(); HasOnlyTheseDataFiles( - "data/RuntimeList.xml", - "data/PlatformManifest.txt"); - - HasGoodPlatformManifest(); + "data/RuntimeList.xml"); ContainsFrameworkList("RuntimeList.xml"); } diff --git a/src/installer/tests/PrepareTestAssets/PrepareTestAssets.proj b/src/installer/tests/PrepareTestAssets/PrepareTestAssets.proj index 56ae5cbefef6..a93ca4447a0c 100644 --- a/src/installer/tests/PrepareTestAssets/PrepareTestAssets.proj +++ b/src/installer/tests/PrepareTestAssets/PrepareTestAssets.proj @@ -4,12 +4,10 @@ - - - - - - - - - - - diff --git a/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs b/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs index 52b10e3e50c8..507773773d30 100644 --- a/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs +++ b/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs @@ -78,7 +78,7 @@ public class RepoDirectoriesProvider Path.Combine(RepoRoot, ".packages"); CorehostPackages = corehostPackages ?? Path.Combine(Artifacts, "corehost"); - BuiltDotnet = builtDotnet ?? Path.Combine(BaseObjFolder, osPlatformConfig, "sharedFrameworkPublish"); + BuiltDotnet = builtDotnet ?? Path.Combine(GetTestContextVariable("TEST_ARTIFACTS"), "sharedFrameworkPublish"); } public string GetTestContextVariable(string name) diff --git a/src/libraries/Common/Common.Tests.sln b/src/libraries/Common/Common.Tests.sln index c1ef093cd7e7..e0c55f3d47db 100644 --- a/src/libraries/Common/Common.Tests.sln +++ b/src/libraries/Common/Common.Tests.sln @@ -1,43 +1,72 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.13 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Tests", "tests\Common.Tests.csproj", "{C72FD34C-539A-4447-9796-62A229571199}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Tests", "tests\Common.Tests.csproj", "{504E9212-C8FD-4147-8FB2-2A32AE1CD4EA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D5C979E6-ED08-4CF6-A5B2-E646481EC3A4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "tests\TestUtilities\TestUtilities.csproj", "{10215DC2-1255-4B60-B0AC-D8B09BCEA179}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "tests\TestUtilities\TestUtilities.csproj", "{FE339F8D-E1DA-4F5D-9990-B4E270E20F5E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities.Unicode", "tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{7AA91133-B0CB-4321-986B-323A7DED12C0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A0A180C4-8292-45EE-A4B9-0A359BC9C2FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{2141FEEA-0422-4319-B88D-DA15CBD77599}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3AAD1539-D958-4A4D-A563-F5B251BF3935}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{55D75024-D19D-4653-837A-D75DED03479C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{339EB701-0224-42BF-AC1A-2E39D52F9860}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CA3E0F1A-955A-458B-8F2B-C834E1106146}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C1469BA2-6053-4ADB-8856-0C674DD64397}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {504E9212-C8FD-4147-8FB2-2A32AE1CD4EA} = {339EB701-0224-42BF-AC1A-2E39D52F9860} + {10215DC2-1255-4B60-B0AC-D8B09BCEA179} = {339EB701-0224-42BF-AC1A-2E39D52F9860} + {782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A} = {CA3E0F1A-955A-458B-8F2B-C834E1106146} + {A0A180C4-8292-45EE-A4B9-0A359BC9C2FC} = {CA3E0F1A-955A-458B-8F2B-C834E1106146} + {3AAD1539-D958-4A4D-A563-F5B251BF3935} = {CA3E0F1A-955A-458B-8F2B-C834E1106146} + {55D75024-D19D-4653-837A-D75DED03479C} = {CA3E0F1A-955A-458B-8F2B-C834E1106146} + {2141FEEA-0422-4319-B88D-DA15CBD77599} = {C1469BA2-6053-4ADB-8856-0C674DD64397} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C72FD34C-539A-4447-9796-62A229571199}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C72FD34C-539A-4447-9796-62A229571199}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C72FD34C-539A-4447-9796-62A229571199}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C72FD34C-539A-4447-9796-62A229571199}.Release|Any CPU.Build.0 = Release|Any CPU - {FE339F8D-E1DA-4F5D-9990-B4E270E20F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FE339F8D-E1DA-4F5D-9990-B4E270E20F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FE339F8D-E1DA-4F5D-9990-B4E270E20F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FE339F8D-E1DA-4F5D-9990-B4E270E20F5E}.Release|Any CPU.Build.0 = Release|Any CPU - {7AA91133-B0CB-4321-986B-323A7DED12C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AA91133-B0CB-4321-986B-323A7DED12C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AA91133-B0CB-4321-986B-323A7DED12C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AA91133-B0CB-4321-986B-323A7DED12C0}.Release|Any CPU.Build.0 = Release|Any CPU + {504E9212-C8FD-4147-8FB2-2A32AE1CD4EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {504E9212-C8FD-4147-8FB2-2A32AE1CD4EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {504E9212-C8FD-4147-8FB2-2A32AE1CD4EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {504E9212-C8FD-4147-8FB2-2A32AE1CD4EA}.Release|Any CPU.Build.0 = Release|Any CPU + {10215DC2-1255-4B60-B0AC-D8B09BCEA179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10215DC2-1255-4B60-B0AC-D8B09BCEA179}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10215DC2-1255-4B60-B0AC-D8B09BCEA179}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10215DC2-1255-4B60-B0AC-D8B09BCEA179}.Release|Any CPU.Build.0 = Release|Any CPU + {782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {782D1DD8-81D0-400A-98FA-BC9FD9C6EC6A}.Release|Any CPU.Build.0 = Release|Any CPU + {A0A180C4-8292-45EE-A4B9-0A359BC9C2FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0A180C4-8292-45EE-A4B9-0A359BC9C2FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0A180C4-8292-45EE-A4B9-0A359BC9C2FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0A180C4-8292-45EE-A4B9-0A359BC9C2FC}.Release|Any CPU.Build.0 = Release|Any CPU + {2141FEEA-0422-4319-B88D-DA15CBD77599}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2141FEEA-0422-4319-B88D-DA15CBD77599}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2141FEEA-0422-4319-B88D-DA15CBD77599}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2141FEEA-0422-4319-B88D-DA15CBD77599}.Release|Any CPU.Build.0 = Release|Any CPU + {3AAD1539-D958-4A4D-A563-F5B251BF3935}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AAD1539-D958-4A4D-A563-F5B251BF3935}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AAD1539-D958-4A4D-A563-F5B251BF3935}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AAD1539-D958-4A4D-A563-F5B251BF3935}.Release|Any CPU.Build.0 = Release|Any CPU + {55D75024-D19D-4653-837A-D75DED03479C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55D75024-D19D-4653-837A-D75DED03479C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55D75024-D19D-4653-837A-D75DED03479C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55D75024-D19D-4653-837A-D75DED03479C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5E554AE7-CBC2-4C34-9FEA-1A6250CE5D3F} - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {FE339F8D-E1DA-4F5D-9990-B4E270E20F5E} = {D5C979E6-ED08-4CF6-A5B2-E646481EC3A4} - {7AA91133-B0CB-4321-986B-323A7DED12C0} = {D5C979E6-ED08-4CF6-A5B2-E646481EC3A4} + SolutionGuid = {4543E82B-8616-438A-B58B-EE47079D6956} EndGlobalSection EndGlobal diff --git a/src/libraries/Common/src/Extensions/ActivatorUtilities/ActivatorUtilities.cs b/src/libraries/Common/src/Extensions/ActivatorUtilities/ActivatorUtilities.cs index 574fd893feba..1300db816487 100644 --- a/src/libraries/Common/src/Extensions/ActivatorUtilities/ActivatorUtilities.cs +++ b/src/libraries/Common/src/Extensions/ActivatorUtilities/ActivatorUtilities.cs @@ -50,7 +50,7 @@ static class ActivatorUtilities ConstructorMatcher bestMatcher = default; - if (!instanceType.GetTypeInfo().IsAbstract) + if (!instanceType.IsAbstract) { foreach (ConstructorInfo? constructor in instanceType.GetConstructors()) { @@ -323,7 +323,7 @@ private static bool TryCreateParameterMap(ParameterInfo[] constructorParameters, for (int i = 0; i < argumentTypes.Length; i++) { bool foundMatch = false; - TypeInfo? givenParameter = argumentTypes[i].GetTypeInfo(); + Type? givenParameter = argumentTypes[i]; for (int j = 0; j < constructorParameters.Length; j++) { @@ -333,7 +333,7 @@ private static bool TryCreateParameterMap(ParameterInfo[] constructorParameters, continue; } - if (constructorParameters[j].ParameterType.GetTypeInfo().IsAssignableFrom(givenParameter)) + if (constructorParameters[j].ParameterType.IsAssignableFrom(givenParameter)) { foundMatch = true; parameterMap[j] = i; @@ -369,13 +369,13 @@ public int Match(object[] givenParameters) int applyExactLength = 0; for (int givenIndex = 0; givenIndex != givenParameters.Length; givenIndex++) { - TypeInfo? givenType = givenParameters[givenIndex]?.GetType().GetTypeInfo(); + Type? givenType = givenParameters[givenIndex]?.GetType(); bool givenMatched = false; for (int applyIndex = applyIndexStart; givenMatched == false && applyIndex != _parameters.Length; ++applyIndex) { if (_parameterValues[applyIndex] == null && - _parameters[applyIndex].ParameterType.GetTypeInfo().IsAssignableFrom(givenType)) + _parameters[applyIndex].ParameterType.IsAssignableFrom(givenType)) { givenMatched = true; _parameterValues[applyIndex] = givenParameters[givenIndex]; diff --git a/src/libraries/Common/src/Extensions/Logging/NullExternalScopeProvider.cs b/src/libraries/Common/src/Extensions/Logging/NullExternalScopeProvider.cs index 17936083a934..791ecc87152c 100644 --- a/src/libraries/Common/src/Extensions/Logging/NullExternalScopeProvider.cs +++ b/src/libraries/Common/src/Extensions/Logging/NullExternalScopeProvider.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +#nullable enable + using System; namespace Microsoft.Extensions.Logging @@ -20,12 +22,12 @@ private NullExternalScopeProvider() public static IExternalScopeProvider Instance { get; } = new NullExternalScopeProvider(); /// - void IExternalScopeProvider.ForEachScope(Action callback, TState state) + void IExternalScopeProvider.ForEachScope(Action callback, TState state) { } /// - IDisposable IExternalScopeProvider.Push(object state) + IDisposable IExternalScopeProvider.Push(object? state) { return NullScope.Instance; } diff --git a/src/libraries/Common/src/Extensions/TypeNameHelper/TypeNameHelper.cs b/src/libraries/Common/src/Extensions/TypeNameHelper/TypeNameHelper.cs index 66d767c3fdf8..1377491df5cf 100644 --- a/src/libraries/Common/src/Extensions/TypeNameHelper/TypeNameHelper.cs +++ b/src/libraries/Common/src/Extensions/TypeNameHelper/TypeNameHelper.cs @@ -1,9 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +#nullable enable + using System; using System.Text; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; namespace Microsoft.Extensions.Internal { @@ -31,7 +34,8 @@ internal static class TypeNameHelper { typeof(ushort), "ushort" } }; - public static string GetTypeDisplayName(object item, bool fullName = true) + [return: NotNullIfNotNull("item")] + public static string? GetTypeDisplayName(object? item, bool fullName = true) { return item == null ? null : GetTypeDisplayName(item.GetType(), fullName); } @@ -63,7 +67,7 @@ private static void ProcessType(StringBuilder builder, Type type, in DisplayName { ProcessArrayType(builder, type, options); } - else if (_builtInTypeNames.TryGetValue(type, out string builtInName)) + else if (_builtInTypeNames.TryGetValue(type, out string? builtInName)) { builder.Append(builtInName); } @@ -76,7 +80,7 @@ private static void ProcessType(StringBuilder builder, Type type, in DisplayName } else { - string name = options.FullName ? type.FullName : type.Name; + string name = options.FullName ? type.FullName! : type.Name; builder.Append(name); if (options.NestedTypeDelimiter != DefaultNestedTypeDelimiter) @@ -91,7 +95,7 @@ private static void ProcessArrayType(StringBuilder builder, Type type, in Displa Type innerType = type; while (innerType.IsArray) { - innerType = innerType.GetElementType(); + innerType = innerType.GetElementType()!; } ProcessType(builder, innerType, options); @@ -101,7 +105,7 @@ private static void ProcessArrayType(StringBuilder builder, Type type, in Displa builder.Append('['); builder.Append(',', type.GetArrayRank() - 1); builder.Append(']'); - type = type.GetElementType(); + type = type.GetElementType()!; } } @@ -110,14 +114,14 @@ private static void ProcessGenericType(StringBuilder builder, Type type, Type[] int offset = 0; if (type.IsNested) { - offset = type.DeclaringType.GetGenericArguments().Length; + offset = type.DeclaringType!.GetGenericArguments().Length; } if (options.FullName) { if (type.IsNested) { - ProcessGenericType(builder, type.DeclaringType, genericArguments, offset, options); + ProcessGenericType(builder, type.DeclaringType!, genericArguments, offset, options); builder.Append(options.NestedTypeDelimiter); } else if (!string.IsNullOrEmpty(type.Namespace)) diff --git a/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs b/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs index e89baaa8ee2e..aecb5be18bc6 100644 --- a/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs +++ b/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs @@ -156,7 +156,7 @@ private int PadBlock(ReadOnlySpan block, Span destination) // // xx 00 00 00 00 00 00 00 case PaddingMode.Zeros: - if (padBytes == InputBlockSize) + if (padBytes == PaddingSizeBytes) { padBytes = 0; } diff --git a/src/libraries/Common/src/Interop/SunOS/procfs/Interop.ProcFsStat.TryReadProcessStatusInfo.cs b/src/libraries/Common/src/Interop/SunOS/procfs/Interop.ProcFsStat.TryReadProcessStatusInfo.cs new file mode 100644 index 000000000000..032186eb6a7e --- /dev/null +++ b/src/libraries/Common/src/Interop/SunOS/procfs/Interop.ProcFsStat.TryReadProcessStatusInfo.cs @@ -0,0 +1,36 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class procfs + { + /// + /// Attempts to get status info for the specified process ID. + /// + /// PID of the process to read status info for. + /// The pointer to processStatus instance. + /// + /// true if the process status was read; otherwise, false. + /// + [DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_ReadProcessStatusInfo", SetLastError = true)] + private static extern unsafe bool TryReadProcessStatusInfo(int pid, ProcessStatusInfo* processStatus); + + internal struct ProcessStatusInfo + { + internal nuint ResidentSetSize; + // add more fields when needed. + } + + internal static unsafe bool TryReadProcessStatusInfo(int pid, out ProcessStatusInfo statusInfo) + { + statusInfo = default; + fixed (ProcessStatusInfo* pStatusInfo = &statusInfo) + { + return TryReadProcessStatusInfo(pid, pStatusInfo); + } + } + } +} diff --git a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.CreateProcessWithLogon.cs b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.CreateProcessWithLogon.cs index 61e28bd616d5..da3f4c6cd5c4 100644 --- a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.CreateProcessWithLogon.cs +++ b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.CreateProcessWithLogon.cs @@ -12,18 +12,16 @@ internal partial class Interop internal partial class Advapi32 { [DllImport(Libraries.Advapi32, CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true, BestFitMapping = false, EntryPoint = "CreateProcessWithLogonW")] - internal static extern bool CreateProcessWithLogonW( + internal static extern unsafe bool CreateProcessWithLogonW( string userName, string domain, IntPtr password, LogonFlags logonFlags, string? appName, -#pragma warning disable CA1838 // reasonable use of StringBuilder to build up a command line - [In] StringBuilder cmdLine, -#pragma warning restore CA1838 + char* cmdLine, int creationFlags, IntPtr environmentBlock, - string lpCurrentDirectory, + string? lpCurrentDirectory, ref Interop.Kernel32.STARTUPINFO lpStartupInfo, ref Interop.Kernel32.PROCESS_INFORMATION lpProcessInformation); diff --git a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.OpenProcessToken.cs b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.OpenProcessToken.cs index 2fd2afbe08cc..7e8e225ebbb9 100644 --- a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.OpenProcessToken.cs +++ b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.OpenProcessToken.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Win32.SafeHandles; +using System; using System.Runtime.InteropServices; internal partial class Interop @@ -9,6 +10,6 @@ internal partial class Interop internal partial class Advapi32 { [DllImport(Libraries.Advapi32, CharSet = CharSet.Unicode, SetLastError = true)] - internal static extern bool OpenProcessToken(SafeProcessHandle ProcessHandle, int DesiredAccess, out SafeTokenHandle TokenHandle); + internal static extern bool OpenProcessToken(IntPtr ProcessHandle, int DesiredAccess, out SafeTokenHandle TokenHandle); } } diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.CreateProcess.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.CreateProcess.cs index 95a17f1b5624..2961693d56e9 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.CreateProcess.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.CreateProcess.cs @@ -13,17 +13,15 @@ internal partial class Interop internal partial class Kernel32 { [DllImport(Libraries.Kernel32, CharSet = CharSet.Unicode, SetLastError = true, BestFitMapping = false, EntryPoint = "CreateProcessW")] - internal static extern bool CreateProcess( + internal static extern unsafe bool CreateProcess( string? lpApplicationName, -#pragma warning disable CA1838 // reasonable use of StringBuilder to build up a command line - [In] StringBuilder lpCommandLine, -#pragma warning restore CA1838 + char* lpCommandLine, ref SECURITY_ATTRIBUTES procSecAttrs, ref SECURITY_ATTRIBUTES threadSecAttrs, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, - string lpCurrentDirectory, + string? lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation ); diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeAccessTokenHandle.cs similarity index 90% rename from src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle.cs rename to src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeAccessTokenHandle.cs index 9233ed61517b..fff392dedad4 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeAccessTokenHandle.cs @@ -9,7 +9,7 @@ internal static partial class Interop { internal static partial class Kernel32 { - [DllImport(Interop.Libraries.Kernel32, SetLastError = true)] + [DllImport(Libraries.Kernel32, SetLastError = true)] internal static extern bool DuplicateHandle( IntPtr hSourceProcessHandle, IntPtr hSourceHandle, diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeFileHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeFileHandle.cs new file mode 100644 index 000000000000..fb542316a243 --- /dev/null +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeFileHandle.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Win32.SafeHandles; +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class Kernel32 + { + [DllImport(Libraries.Kernel32, SetLastError = true)] + internal static extern bool DuplicateHandle( + IntPtr hSourceProcessHandle, + SafeHandle hSourceHandle, + IntPtr hTargetProcess, + out SafeFileHandle targetHandle, + int dwDesiredAccess, + bool bInheritHandle, + int dwOptions + ); + } +} diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_IntPtr.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafePipeHandle.cs similarity index 71% rename from src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_IntPtr.cs rename to src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafePipeHandle.cs index 19a596f6d980..96726abc91fd 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_IntPtr.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafePipeHandle.cs @@ -5,20 +5,18 @@ using System; using System.Runtime.InteropServices; -internal partial class Interop +internal static partial class Interop { - internal partial class Kernel32 + internal static partial class Kernel32 { [DllImport(Libraries.Kernel32, SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool DuplicateHandle( IntPtr hSourceProcessHandle, - SafePipeHandle hSourceHandle, + SafeHandle hSourceHandle, IntPtr hTargetProcessHandle, out SafePipeHandle lpTargetHandle, uint dwDesiredAccess, - [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, + bool bInheritHandle, uint dwOptions); - } } diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeProcessHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeProcessHandle.cs deleted file mode 100644 index 7bf1c06ef731..000000000000 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeProcessHandle.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Win32.SafeHandles; -using System; -using System.Runtime.InteropServices; - -internal partial class Interop -{ - internal partial class Kernel32 - { - [DllImport(Libraries.Kernel32, SetLastError = true, BestFitMapping = false)] - internal static extern bool DuplicateHandle( - SafeProcessHandle hSourceProcessHandle, - SafeHandle hSourceHandle, - SafeProcessHandle hTargetProcess, - out SafeFileHandle targetHandle, - int dwDesiredAccess, - bool bInheritHandle, - int dwOptions - ); - - [DllImport(Libraries.Kernel32, SetLastError = true, BestFitMapping = false)] - internal static extern bool DuplicateHandle( - SafeProcessHandle hSourceProcessHandle, - SafeHandle hSourceHandle, - SafeProcessHandle hTargetProcess, - out SafeWaitHandle targetHandle, - int dwDesiredAccess, - bool bInheritHandle, - int dwOptions - ); - - } -} diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeWaitHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeWaitHandle.cs new file mode 100644 index 000000000000..5749d82479f8 --- /dev/null +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.DuplicateHandle_SafeWaitHandle.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Win32.SafeHandles; +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class Kernel32 + { + [DllImport(Libraries.Kernel32, SetLastError = true)] + internal static extern bool DuplicateHandle( + IntPtr hSourceProcessHandle, + SafeHandle hSourceHandle, + IntPtr hTargetProcess, + out SafeWaitHandle targetHandle, + int dwDesiredAccess, + bool bInheritHandle, + int dwOptions + ); + } +} diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.FreeEnvironmentStrings.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.FreeEnvironmentStrings.cs index f9765e66d4d0..5af20c071ca1 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.FreeEnvironmentStrings.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.FreeEnvironmentStrings.cs @@ -7,7 +7,7 @@ internal static partial class Interop { internal static partial class Kernel32 { - [DllImport(Libraries.Kernel32, EntryPoint = "FreeEnvironmentStringsW", SetLastError = true, CharSet = CharSet.Unicode, BestFitMapping = false, ExactSpelling = true)] - internal static extern unsafe bool FreeEnvironmentStrings(char* lpszEnvironmentBlock); + [DllImport(Libraries.Kernel32, ExactSpelling = true)] + internal static extern unsafe BOOL FreeEnvironmentStringsW(char* lpszEnvironmentBlock); } } diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess_IntPtr.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess.cs similarity index 100% rename from src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess_IntPtr.cs rename to src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess.cs diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess_SafeProcessHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess_SafeProcessHandle.cs deleted file mode 100644 index 36cb3da28c41..000000000000 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetCurrentProcess_SafeProcessHandle.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Win32.SafeHandles; -using System.Runtime.InteropServices; - -internal partial class Interop -{ - internal partial class Kernel32 - { - [DllImport(Libraries.Kernel32, SetLastError = true)] - internal static extern SafeProcessHandle GetCurrentProcess(); - } -} diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetEnvironmentStrings.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetEnvironmentStrings.cs index 4fcdbe0c2e76..55452013da02 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetEnvironmentStrings.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.GetEnvironmentStrings.cs @@ -7,7 +7,7 @@ internal static partial class Interop { internal static partial class Kernel32 { - [DllImport(Libraries.Kernel32, EntryPoint = "GetEnvironmentStringsW", SetLastError = true, CharSet = CharSet.Unicode, BestFitMapping = false, ExactSpelling = true)] - internal static extern unsafe char* GetEnvironmentStrings(); + [DllImport(Libraries.Kernel32, ExactSpelling = true)] + internal static extern unsafe char* GetEnvironmentStringsW(); } } diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.ProcessWaitHandle.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.ProcessWaitHandle.cs index d6f0827735f7..134e366855ca 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.ProcessWaitHandle.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.ProcessWaitHandle.cs @@ -3,6 +3,7 @@ #nullable enable using Microsoft.Win32.SafeHandles; +using System; using System.Runtime.InteropServices; using System.Threading; @@ -14,20 +15,21 @@ internal sealed class ProcessWaitHandle : WaitHandle { internal ProcessWaitHandle(SafeProcessHandle processHandle) { - SafeWaitHandle? waitHandle; - SafeProcessHandle currentProcHandle = Interop.Kernel32.GetCurrentProcess(); - bool succeeded = Interop.Kernel32.DuplicateHandle( + IntPtr currentProcHandle = GetCurrentProcess(); + bool succeeded = DuplicateHandle( currentProcHandle, processHandle, currentProcHandle, - out waitHandle, + out SafeWaitHandle waitHandle, 0, false, - Interop.Kernel32.HandleOptions.DUPLICATE_SAME_ACCESS); + HandleOptions.DUPLICATE_SAME_ACCESS); if (!succeeded) { - Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); + int error = Marshal.GetHRForLastWin32Error(); + waitHandle.Dispose(); + Marshal.ThrowExceptionForHR(error); } this.SetSafeWaitHandle(waitHandle); diff --git a/src/libraries/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs b/src/libraries/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs index 43d9d051b9ea..d99bd95f4ddb 100644 --- a/src/libraries/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs +++ b/src/libraries/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs @@ -118,7 +118,7 @@ public static unsafe SafeFreeCredentials AcquireCredentialsHandle(ISSPIInterface if (errorCode != 0) { - if (NetEventSource.IsEnabled) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(AcquireCredentialsHandle), $"0x{errorCode:X}")); + if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(AcquireCredentialsHandle), $"0x{errorCode:X}")); throw new Win32Exception(errorCode); } diff --git a/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs b/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs index b69d62803b3a..76539c89247c 100644 --- a/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs +++ b/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs @@ -307,7 +307,7 @@ public new IntPtr DangerousGetHandle() ref outCredential._handle, out timeStamp); - if (NetEventSource.IsEnabled) NetEventSource.Verbose(null, $"{nameof(Interop.SspiCli.AcquireCredentialsHandleW)} returns 0x{errorCode:x}, handle = {outCredential}"); + if (NetEventSource.Log.IsEnabled()) NetEventSource.Verbose(null, $"{nameof(Interop.SspiCli.AcquireCredentialsHandleW)} returns 0x{errorCode:x}, handle = {outCredential}"); if (errorCode != 0) { diff --git a/src/libraries/Common/src/Interop/Windows/WinHttp/Interop.winhttp_types.cs b/src/libraries/Common/src/Interop/Windows/WinHttp/Interop.winhttp_types.cs index 0ab94178f5d5..aac3f8091a91 100644 --- a/src/libraries/Common/src/Interop/Windows/WinHttp/Interop.winhttp_types.cs +++ b/src/libraries/Common/src/Interop/Windows/WinHttp/Interop.winhttp_types.cs @@ -164,6 +164,8 @@ internal partial class WinHttp public const uint WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE = 122; public const uint WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE = 123; + public const uint WINHTTP_OPTION_TCP_KEEPALIVE = 152; + public enum WINHTTP_WEB_SOCKET_BUFFER_TYPE { WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE = 0, @@ -276,6 +278,15 @@ public struct WINHTTP_ASYNC_RESULT public uint dwError; } + + [StructLayout(LayoutKind.Sequential)] + public struct tcp_keepalive + { + public uint onoff; + public uint keepalivetime; + public uint keepaliveinterval; + } + public const uint API_RECEIVE_RESPONSE = 1; public const uint API_QUERY_DATA_AVAILABLE = 2; public const uint API_READ_DATA = 3; diff --git a/src/libraries/Common/src/System/IO/ReadOnlyMemoryStream.cs b/src/libraries/Common/src/System/IO/ReadOnlyMemoryStream.cs index 87b1531daa45..5e2ecc2cf50b 100644 --- a/src/libraries/Common/src/System/IO/ReadOnlyMemoryStream.cs +++ b/src/libraries/Common/src/System/IO/ReadOnlyMemoryStream.cs @@ -9,25 +9,47 @@ namespace System.IO /// Provides a for the contents of a . internal sealed class ReadOnlyMemoryStream : Stream { - private readonly ReadOnlyMemory _content; + private ReadOnlyMemory _content; private int _position; + private bool _isOpen; public ReadOnlyMemoryStream(ReadOnlyMemory content) { _content = content; + _isOpen = true; } - public override bool CanRead => true; - public override bool CanSeek => true; + public override bool CanRead => _isOpen; + public override bool CanSeek => _isOpen; public override bool CanWrite => false; - public override long Length => _content.Length; + private void EnsureNotClosed() + { + if (!_isOpen) + { + throw new ObjectDisposedException(null, SR.ObjectDisposed_StreamClosed); + } + } + + public override long Length + { + get + { + EnsureNotClosed(); + return _content.Length; + } + } public override long Position { - get => _position; + get + { + EnsureNotClosed(); + return _position; + } set { + EnsureNotClosed(); if (value < 0 || value > int.MaxValue) { throw new ArgumentOutOfRangeException(nameof(value)); @@ -38,6 +60,8 @@ public override long Position public override long Seek(long offset, SeekOrigin origin) { + EnsureNotClosed(); + long pos = origin == SeekOrigin.Begin ? offset : origin == SeekOrigin.Current ? _position + offset : @@ -59,6 +83,8 @@ public override long Seek(long offset, SeekOrigin origin) public override int ReadByte() { + EnsureNotClosed(); + ReadOnlySpan s = _content.Span; return _position < s.Length ? s[_position++] : -1; } @@ -66,11 +92,17 @@ public override int ReadByte() public override int Read(byte[] buffer, int offset, int count) { ValidateBufferArguments(buffer, offset, count); - return Read(new Span(buffer, offset, count)); + return ReadBuffer(new Span(buffer, offset, count)); } - public override int Read(Span buffer) +#if !NETFRAMEWORK && !NETSTANDARD2_0 + public override int Read(Span buffer) => ReadBuffer(buffer); +#endif + + private int ReadBuffer(Span buffer) { + EnsureNotClosed(); + int remaining = _content.Length - _position; if (remaining <= 0 || buffer.Length == 0) @@ -94,25 +126,36 @@ public override int Read(Span buffer) public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) { ValidateBufferArguments(buffer, offset, count); + EnsureNotClosed(); return cancellationToken.IsCancellationRequested ? Task.FromCanceled(cancellationToken) : - Task.FromResult(Read(new Span(buffer, offset, count))); + Task.FromResult(ReadBuffer(new Span(buffer, offset, count))); } - public override ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default(CancellationToken)) => - cancellationToken.IsCancellationRequested ? +#if !NETFRAMEWORK && !NETSTANDARD2_0 + public override ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default(CancellationToken)) + { + EnsureNotClosed(); + return cancellationToken.IsCancellationRequested ? ValueTask.FromCanceled(cancellationToken) : - new ValueTask(Read(buffer.Span)); + new ValueTask(ReadBuffer(buffer.Span)); + } +#endif public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state) => TaskToApm.Begin(ReadAsync(buffer, offset, count), callback, state); - public override int EndRead(IAsyncResult asyncResult) => - TaskToApm.End(asyncResult); + public override int EndRead(IAsyncResult asyncResult) + { + EnsureNotClosed(); + return TaskToApm.End(asyncResult); + } +#if !NETFRAMEWORK && !NETSTANDARD2_0 public override void CopyTo(Stream destination, int bufferSize) { ValidateCopyToArguments(destination, bufferSize); + EnsureNotClosed(); if (_content.Length > _position) { destination.Write(_content.Span.Slice(_position)); @@ -122,10 +165,12 @@ public override void CopyTo(Stream destination, int bufferSize) public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken) { ValidateCopyToArguments(destination, bufferSize); + EnsureNotClosed(); return _content.Length > _position ? destination.WriteAsync(_content.Slice(_position), cancellationToken).AsTask() : Task.CompletedTask; } +#endif public override void Flush() { } @@ -134,5 +179,32 @@ public override Task CopyToAsync(Stream destination, int bufferSize, Cancellatio public override void SetLength(long value) => throw new NotSupportedException(); public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException(); + + protected override void Dispose(bool disposing) + { + _isOpen = false; + _content = default; + base.Dispose(disposing); + } + +#if NETFRAMEWORK || NETSTANDARD2_0 + private static void ValidateBufferArguments(byte[] buffer, int offset, int count) + { + if (buffer is null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), SR.ArgumentOutOfRange_NeedNonNegNum); + } + + if ((uint)count > buffer.Length - offset) + { + throw new ArgumentOutOfRangeException(nameof(count), SR.Argument_InvalidOffLen); + } + } +#endif } } diff --git a/src/libraries/Common/src/System/Marvin.cs b/src/libraries/Common/src/System/Marvin.cs index 35bd8e2ea045..b36e2a66c3f3 100644 --- a/src/libraries/Common/src/System/Marvin.cs +++ b/src/libraries/Common/src/System/Marvin.cs @@ -24,49 +24,54 @@ public static int ComputeHash32(ReadOnlySpan data, ulong seed) /// /// Computes a 64-hash using the Marvin algorithm. /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static long ComputeHash(ReadOnlySpan data, ulong seed) + => ComputeHash(ref MemoryMarshal.GetReference(data), (uint)data.Length, p0: (uint)seed, p1: (uint)(seed >> 32)); + + private static unsafe long ComputeHash(ref byte rBuffer, nuint cbBuffer, uint p0, uint p1) { - uint p0 = (uint)seed; - uint p1 = (uint)(seed >> 32); + nuint currentOffset = 0; - if (data.Length >= sizeof(uint)) + fixed (byte* pbBuffer = &rBuffer) { - ReadOnlySpan uData = MemoryMarshal.Cast(data); + // Consume as many 4-byte chunks as possible. - for (int i = 0; i < uData.Length; i++) + if (cbBuffer >= 4) { - p0 += uData[i]; - Block(ref p0, ref p1); + nuint stopOffset = cbBuffer & ~(nuint)3; + do + { + p0 += Unsafe.ReadUnaligned(pbBuffer + currentOffset); + currentOffset += 4; + Block(ref p0, ref p1); + } while (currentOffset < stopOffset); } - // byteOffset = data.Length - data.Length % 4 - // is equivalent to clearing last 2 bits of length - // Using it directly gives a perf hit for short strings making it at least 5% or more slower. - int byteOffset = data.Length & (~3); - data = data.Slice(byteOffset); - } + // Fewer than 4 bytes remain; drain remaining bytes. - switch (data.Length) - { - case 0: - p0 += 0x80u; - break; + Debug.Assert(cbBuffer - currentOffset < 4, "Should have 0 - 3 bytes remaining."); + switch ((int)cbBuffer & 3) + { + case 0: + p0 += 0x80u; + break; - case 1: - p0 += 0x8000u | data[0]; - break; + case 1: + p0 += 0x8000u | pbBuffer[currentOffset]; + break; - case 2: - p0 += 0x800000u | MemoryMarshal.Cast(data)[0]; - break; + case 2: + p0 += 0x800000u | Unsafe.ReadUnaligned(pbBuffer + currentOffset); + break; - case 3: - p0 += 0x80000000u | (((uint)data[2]) << 16) | (uint)(MemoryMarshal.Cast(data)[0]); - break; + case 3: + p0 += 0x80000000u | Unsafe.ReadUnaligned(pbBuffer + currentOffset) | ((uint)pbBuffer[currentOffset + 2] << 16); + break; - default: - Debug.Fail("Should not get here."); - break; + default: + Debug.Fail("Should not get here."); + break; + } } Block(ref p0, ref p1); diff --git a/src/libraries/Common/src/System/Net/Http/aspnetcore/NetEventSource.Common.cs b/src/libraries/Common/src/System/Net/Http/aspnetcore/NetEventSource.Common.cs index 174ad40e273d..6905c66e6dbf 100644 --- a/src/libraries/Common/src/System/Net/Http/aspnetcore/NetEventSource.Common.cs +++ b/src/libraries/Common/src/System/Net/Http/aspnetcore/NetEventSource.Common.cs @@ -95,7 +95,7 @@ public static void Enter(object? thisOrContextObject, FormattableString? formatt { DebugValidateArg(thisOrContextObject); DebugValidateArg(formattableString); - if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + if (Log.IsEnabled()) Log.Enter(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); } /// Logs entrance to a method. @@ -107,7 +107,7 @@ public static void Enter(object? thisOrContextObject, object arg0, [CallerMember { DebugValidateArg(thisOrContextObject); DebugValidateArg(arg0); - if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)})"); + if (Log.IsEnabled()) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)})"); } /// Logs entrance to a method. @@ -121,7 +121,7 @@ public static void Enter(object? thisOrContextObject, object arg0, object arg1, DebugValidateArg(thisOrContextObject); DebugValidateArg(arg0); DebugValidateArg(arg1); - if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)})"); + if (Log.IsEnabled()) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)})"); } /// Logs entrance to a method. @@ -137,7 +137,7 @@ public static void Enter(object? thisOrContextObject, object arg0, object arg1, DebugValidateArg(arg0); DebugValidateArg(arg1); DebugValidateArg(arg2); - if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)}, {Format(arg2)})"); + if (Log.IsEnabled()) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)}, {Format(arg2)})"); } [Event(EnterEventId, Level = EventLevel.Informational, Keywords = Keywords.EnterExit)] @@ -155,7 +155,7 @@ public static void Exit(object? thisOrContextObject, FormattableString? formatta { DebugValidateArg(thisOrContextObject); DebugValidateArg(formattableString); - if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + if (Log.IsEnabled()) Log.Exit(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); } /// Logs exit from a method. @@ -167,7 +167,7 @@ public static void Exit(object? thisOrContextObject, object arg0, [CallerMemberN { DebugValidateArg(thisOrContextObject); DebugValidateArg(arg0); - if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, Format(arg0).ToString()); + if (Log.IsEnabled()) Log.Exit(IdOf(thisOrContextObject), memberName, Format(arg0).ToString()); } /// Logs exit from a method. @@ -181,7 +181,7 @@ public static void Exit(object? thisOrContextObject, object arg0, object arg1, [ DebugValidateArg(thisOrContextObject); DebugValidateArg(arg0); DebugValidateArg(arg1); - if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, $"{Format(arg0)}, {Format(arg1)}"); + if (Log.IsEnabled()) Log.Exit(IdOf(thisOrContextObject), memberName, $"{Format(arg0)}, {Format(arg1)}"); } [Event(ExitEventId, Level = EventLevel.Informational, Keywords = Keywords.EnterExit)] @@ -199,7 +199,7 @@ public static void Info(object? thisOrContextObject, FormattableString? formatta { DebugValidateArg(thisOrContextObject); DebugValidateArg(formattableString); - if (IsEnabled) Log.Info(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + if (Log.IsEnabled()) Log.Info(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); } /// Logs an information message. @@ -211,7 +211,7 @@ public static void Info(object? thisOrContextObject, object? message, [CallerMem { DebugValidateArg(thisOrContextObject); DebugValidateArg(message); - if (IsEnabled) Log.Info(IdOf(thisOrContextObject), memberName, Format(message).ToString()); + if (Log.IsEnabled()) Log.Info(IdOf(thisOrContextObject), memberName, Format(message).ToString()); } [Event(InfoEventId, Level = EventLevel.Informational, Keywords = Keywords.Default)] @@ -229,7 +229,7 @@ public static void Error(object? thisOrContextObject, FormattableString formatta { DebugValidateArg(thisOrContextObject); DebugValidateArg(formattableString); - if (IsEnabled) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(formattableString)); + if (Log.IsEnabled()) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(formattableString)); } /// Logs an error message. @@ -241,7 +241,7 @@ public static void Error(object? thisOrContextObject, object message, [CallerMem { DebugValidateArg(thisOrContextObject); DebugValidateArg(message); - if (IsEnabled) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(message).ToString()); + if (Log.IsEnabled()) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(message).ToString()); } [Event(ErrorEventId, Level = EventLevel.Error, Keywords = Keywords.Default)] @@ -269,7 +269,7 @@ public static void DumpBuffer(object? thisOrContextObject, byte[] buffer, [Calle [NonEvent] public static void DumpBuffer(object? thisOrContextObject, byte[] buffer, int offset, int count, [CallerMemberName] string? memberName = null) { - if (IsEnabled && offset >= 0 && offset <= buffer.Length - count) + if (Log.IsEnabled() && offset >= 0 && offset <= buffer.Length - count) { count = Math.Min(count, MaxDumpSize); @@ -295,7 +295,7 @@ public static unsafe void DumpBuffer(object? thisOrContextObject, IntPtr bufferP Debug.Assert(bufferPtr != IntPtr.Zero); Debug.Assert(count >= 0); - if (IsEnabled) + if (Log.IsEnabled()) { var buffer = new byte[Math.Min(count, MaxDumpSize)]; fixed (byte* targetPtr = buffer) @@ -321,7 +321,7 @@ public static void Associate(object first, object second, [CallerMemberName] str { DebugValidateArg(first); DebugValidateArg(second); - if (IsEnabled) Log.Associate(IdOf(first), memberName, IdOf(first), IdOf(second)); + if (Log.IsEnabled()) Log.Associate(IdOf(first), memberName, IdOf(first), IdOf(second)); } /// Logs a relationship between two objects. @@ -335,7 +335,7 @@ public static void Associate(object? thisOrContextObject, object first, object s DebugValidateArg(thisOrContextObject); DebugValidateArg(first); DebugValidateArg(second); - if (IsEnabled) Log.Associate(IdOf(thisOrContextObject), memberName, IdOf(first), IdOf(second)); + if (Log.IsEnabled()) Log.Associate(IdOf(thisOrContextObject), memberName, IdOf(first), IdOf(second)); } [Event(AssociateEventId, Level = EventLevel.Informational, Keywords = Keywords.Default, Message = "[{2}]<-->[{3}]")] @@ -348,7 +348,7 @@ public static void Associate(object? thisOrContextObject, object first, object s [Conditional("DEBUG_NETEVENTSOURCE_MISUSE")] private static void DebugValidateArg(object? arg) { - if (!IsEnabled) + if (!Log.IsEnabled()) { Debug.Assert(!(arg is ValueType), $"Should not be passing value type {arg?.GetType()} to logging without IsEnabled check"); Debug.Assert(!(arg is FormattableString), $"Should not be formatting FormattableString \"{arg}\" if tracing isn't enabled"); @@ -358,12 +358,9 @@ private static void DebugValidateArg(object? arg) [Conditional("DEBUG_NETEVENTSOURCE_MISUSE")] private static void DebugValidateArg(FormattableString? arg) { - Debug.Assert(IsEnabled || arg == null, $"Should not be formatting FormattableString \"{arg}\" if tracing isn't enabled"); + Debug.Assert(Log.IsEnabled() || arg == null, $"Should not be formatting FormattableString \"{arg}\" if tracing isn't enabled"); } - public static new bool IsEnabled => - Log.IsEnabled(); - [NonEvent] public static string IdOf(object? value) => value != null ? value.GetType().Name + "#" + GetHashCode(value) : NullInstance; diff --git a/src/libraries/Common/src/System/Net/Http/aspnetcore/SR.resx b/src/libraries/Common/src/System/Net/Http/aspnetcore/SR.resx index c6c8b9bd5b25..9c5ece61a779 100644 --- a/src/libraries/Common/src/System/Net/Http/aspnetcore/SR.resx +++ b/src/libraries/Common/src/System/Net/Http/aspnetcore/SR.resx @@ -160,7 +160,7 @@ Connection aborted by peer ({0}). - QUIC is not supported on this platform. See http://aka.ms/dotnetquic + QUIC is not supported on this platform. See https://aka.ms/dotnetquic Operation aborted. diff --git a/src/libraries/Common/src/System/Net/WebSockets/ManagedWebSocket.cs b/src/libraries/Common/src/System/Net/WebSockets/ManagedWebSocket.cs index 7ed7a1599406..cffafdd0c41a 100644 --- a/src/libraries/Common/src/System/Net/WebSockets/ManagedWebSocket.cs +++ b/src/libraries/Common/src/System/Net/WebSockets/ManagedWebSocket.cs @@ -7,6 +7,7 @@ using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Security.Cryptography; using System.Text; using System.Threading; @@ -23,6 +24,7 @@ namespace System.Net.WebSockets /// a send operation while another is in progress or a receive operation while another is in progress will /// result in an exception. /// + [UnsupportedOSPlatform("browser")] internal sealed partial class ManagedWebSocket : WebSocket { /// Creates a from a connected to a websocket endpoint. diff --git a/src/libraries/Common/src/System/Runtime/InteropServices/ComEventsMethod.cs b/src/libraries/Common/src/System/Runtime/InteropServices/ComEventsMethod.cs index 22281c58e316..766c120d5160 100644 --- a/src/libraries/Common/src/System/Runtime/InteropServices/ComEventsMethod.cs +++ b/src/libraries/Common/src/System/Runtime/InteropServices/ComEventsMethod.cs @@ -38,7 +38,7 @@ public DelegateWrapper(Delegate d, bool wrapArgs) public Delegate Delegate { get; set; } - public bool WrapArgs { get; private set; } + public bool WrapArgs { get; } public object? Invoke(object[] args) { diff --git a/src/libraries/Common/src/System/Security/Cryptography/Pkcs12Kdf.cs b/src/libraries/Common/src/System/Security/Cryptography/Pkcs12Kdf.cs index 0b8841f0fcac..7c9241a51833 100644 --- a/src/libraries/Common/src/System/Security/Cryptography/Pkcs12Kdf.cs +++ b/src/libraries/Common/src/System/Security/Cryptography/Pkcs12Kdf.cs @@ -14,17 +14,16 @@ internal static class Pkcs12Kdf private const byte IvId = 2; private const byte MacKeyId = 3; - // This is a dictionary representation of the table in - // https://tools.ietf.org/html/rfc7292#appendix-B.2 - private static readonly Dictionary> s_uvLookup = - new Dictionary> - { - { HashAlgorithmName.MD5, Tuple.Create(128, 512) }, - { HashAlgorithmName.SHA1, Tuple.Create(160, 512) }, - { HashAlgorithmName.SHA256, Tuple.Create(256, 512) }, - { HashAlgorithmName.SHA384, Tuple.Create(384, 1024) }, - { HashAlgorithmName.SHA512, Tuple.Create(512, 1024) }, - }; + // This is based on the table in https://tools.ietf.org/html/rfc7292#appendix-B.2. + // It is small enough that it's cheaper to just use an array and linear search rather than dictionary lookup. + private static readonly (HashAlgorithmName, int, int)[] s_uvLookup = new[] + { + (HashAlgorithmName.MD5, 128, 512), + (HashAlgorithmName.SHA1, 160, 512), + (HashAlgorithmName.SHA256, 256, 512), + (HashAlgorithmName.SHA384, 384, 1024), + (HashAlgorithmName.SHA512, 512, 1024), + }; internal static void DeriveCipherKey( ReadOnlySpan password, @@ -85,12 +84,21 @@ internal static class Pkcs12Kdf // https://tools.ietf.org/html/rfc7292#appendix-B.2 Debug.Assert(iterationCount >= 1); - if (!s_uvLookup.TryGetValue(hashAlgorithm, out Tuple? uv)) + int u = -1, v = -1; + foreach ((HashAlgorithmName, int, int) huv in s_uvLookup) { - throw new CryptographicException(SR.Cryptography_UnknownHashAlgorithm, hashAlgorithm.Name); + if (huv.Item1 == hashAlgorithm) + { + u = huv.Item2; + v = huv.Item3; + break; + } } - (int u, int v) = uv; + if (u == -1) + { + throw new CryptographicException(SR.Cryptography_UnknownHashAlgorithm, hashAlgorithm.Name); + } Debug.Assert(v <= 1024); diff --git a/src/libraries/Common/src/System/Threading/Tasks/ForceAsyncAwaiter.cs b/src/libraries/Common/src/System/Threading/Tasks/ForceAsyncAwaiter.cs deleted file mode 100644 index 9b5d88f5b993..000000000000 --- a/src/libraries/Common/src/System/Threading/Tasks/ForceAsyncAwaiter.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.CompilerServices; - -namespace System.Threading.Tasks -{ - internal static partial class TaskAwaiters - { - /// - /// Returns an awaitable/awaiter that will ensure the continuation is executed - /// asynchronously on the thread pool, even if the task is already completed - /// by the time the await occurs. Effectively, it is equivalent to awaiting - /// with ConfigureAwait(false) and then queuing the continuation with Task.Run, - /// but it avoids the extra hop if the continuation already executed asynchronously. - /// - public static ForceAsyncAwaiter ForceAsync(this Task task) - { - return new ForceAsyncAwaiter(task); - } - } - - internal readonly struct ForceAsyncAwaiter : ICriticalNotifyCompletion - { - private readonly Task _task; - - internal ForceAsyncAwaiter(Task task) { _task = task; } - - public ForceAsyncAwaiter GetAwaiter() { return this; } - - public bool IsCompleted { get { return false; } } // the purpose of this type is to always force a continuation - - public void GetResult() { _task.GetAwaiter().GetResult(); } - - public void OnCompleted(Action action) - { - _task.ConfigureAwait(false).GetAwaiter().OnCompleted(action); - } - - public void UnsafeOnCompleted(Action action) - { - _task.ConfigureAwait(false).GetAwaiter().UnsafeOnCompleted(action); - } - } -} diff --git a/src/libraries/Common/tests/Resources/Strings.resx b/src/libraries/Common/tests/Resources/Strings.resx index 06f60192abaf..a8749adc38fa 100644 --- a/src/libraries/Common/tests/Resources/Strings.resx +++ b/src/libraries/Common/tests/Resources/Strings.resx @@ -199,7 +199,7 @@ Connection aborted by peer ({0}). - QUIC is not supported on this platform. See http://aka.ms/dotnetquic + QUIC is not supported on this platform. See https://aka.ms/dotnetquic Operation aborted. diff --git a/src/libraries/Common/tests/StaticTestGenerator/Directory.Build.targets b/src/libraries/Common/tests/StaticTestGenerator/Directory.Build.targets deleted file mode 100644 index 41245684e205..000000000000 --- a/src/libraries/Common/tests/StaticTestGenerator/Directory.Build.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/libraries/Common/tests/StaticTestGenerator/StaticTestGenerator.csproj b/src/libraries/Common/tests/StaticTestGenerator/StaticTestGenerator.csproj index 80026b950a5e..b4107546efdd 100644 --- a/src/libraries/Common/tests/StaticTestGenerator/StaticTestGenerator.csproj +++ b/src/libraries/Common/tests/StaticTestGenerator/StaticTestGenerator.csproj @@ -8,8 +8,7 @@ true enable - - + false diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs index 8883d60e003e..d3fbeb7628d0 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs @@ -127,17 +127,17 @@ public static void DecryptKnownCFB128_192() { byte[] encryptedBytes = new byte[] { - 0x7C, 0xC6, 0xEE, 0xD8, 0xED, 0xB5, 0x3F, 0x8A, - 0x90, 0x95, 0x12, 0xD2, 0xBC, 0x9A, 0x96, 0x1E, - 0x4E, 0xC4, 0xD1, 0x15, 0xA4, 0x7F, 0x32, 0xA4, - 0xD1, 0xFD, 0x8E, 0x02, 0x45, 0xE8, 0x93, 0x3C, - 0x3C, 0x91, 0x3F, 0xA4, 0x7F, 0x99, 0xF7, 0x3A, - 0x53, 0x0C, 0x0B, 0xFD, 0x01, 0xC5, 0xBD, 0x76, - 0xB7, 0xCF, 0x2B, 0x52, 0x34, 0xB1, 0xA6, 0xA4, - 0x29, 0x2F, 0x7D, 0x1C, 0x97, 0x3A, 0xE2, 0x75, - 0x3E, 0xEB, 0xFC, 0xB7, 0xBB, 0x7A, 0xC0, 0x66, - 0x34, 0x25, 0xCF, 0x2D, 0xE2, 0x7E, 0x23, 0x06, - 0x10, 0xFE, 0xEA, 0xB3, 0x0F, 0x1D, 0x2C, 0xDD, + 0x7C, 0xC6, 0xEE, 0xD8, 0xED, 0xB5, 0x3F, 0x8A, + 0x90, 0x95, 0x12, 0xD2, 0xBC, 0x9A, 0x96, 0x1E, + 0x4E, 0xC4, 0xD1, 0x15, 0xA4, 0x7F, 0x32, 0xA4, + 0xD1, 0xFD, 0x8E, 0x02, 0x45, 0xE8, 0x93, 0x3C, + 0x3C, 0x91, 0x3F, 0xA4, 0x7F, 0x99, 0xF7, 0x3A, + 0x53, 0x0C, 0x0B, 0xFD, 0x01, 0xC5, 0xBD, 0x76, + 0xB7, 0xCF, 0x2B, 0x52, 0x34, 0xB1, 0xA6, 0xA4, + 0x29, 0x2F, 0x7D, 0x1C, 0x97, 0x3A, 0xE2, 0x75, + 0x3E, 0xEB, 0xFC, 0xB7, 0xBB, 0x7A, 0xC0, 0x66, + 0x34, 0x25, 0xCF, 0x2D, 0xE2, 0x7E, 0x23, 0x06, + 0x10, 0xFE, 0xEA, 0xB3, 0x0F, 0x1D, 0x2C, 0xDD, 0x72, 0x64, 0x51, 0x78, 0x1D, 0x75, 0xD2, 0x17 }; @@ -149,17 +149,17 @@ public static void DecryptKnownCFB128_128() { byte[] encryptedBytes = new byte[] { - 0x5B, 0x63, 0x3D, 0x1C, 0x0C, 0x8E, 0xD4, 0xF4, - 0xE5, 0x5F, 0xA0, 0xAF, 0x2F, 0xF5, 0xAE, 0x59, - 0xB9, 0xC4, 0xFA, 0x02, 0x11, 0x37, 0xEB, 0x38, - 0x5B, 0x2F, 0x1D, 0xF5, 0x03, 0xD1, 0xFD, 0x85, - 0x4B, 0xAA, 0x4F, 0x29, 0x94, 0x09, 0x31, 0x4C, - 0x4D, 0xD6, 0x99, 0xE3, 0x4D, 0xC4, 0x3A, 0x40, - 0x97, 0x58, 0xA5, 0x26, 0x80, 0xA8, 0xCA, 0xFA, - 0x6D, 0x19, 0x3B, 0x6B, 0x6F, 0x75, 0x76, 0x83, - 0x90, 0x31, 0x07, 0x86, 0x35, 0xD6, 0xAB, 0xB4, - 0x65, 0x07, 0x0A, 0x0A, 0xA3, 0x7A, 0xD7, 0x16, - 0xE2, 0xC5, 0x3B, 0xE0, 0x42, 0x5F, 0xFA, 0xEF, + 0x5B, 0x63, 0x3D, 0x1C, 0x0C, 0x8E, 0xD4, 0xF4, + 0xE5, 0x5F, 0xA0, 0xAF, 0x2F, 0xF5, 0xAE, 0x59, + 0xB9, 0xC4, 0xFA, 0x02, 0x11, 0x37, 0xEB, 0x38, + 0x5B, 0x2F, 0x1D, 0xF5, 0x03, 0xD1, 0xFD, 0x85, + 0x4B, 0xAA, 0x4F, 0x29, 0x94, 0x09, 0x31, 0x4C, + 0x4D, 0xD6, 0x99, 0xE3, 0x4D, 0xC4, 0x3A, 0x40, + 0x97, 0x58, 0xA5, 0x26, 0x80, 0xA8, 0xCA, 0xFA, + 0x6D, 0x19, 0x3B, 0x6B, 0x6F, 0x75, 0x76, 0x83, + 0x90, 0x31, 0x07, 0x86, 0x35, 0xD6, 0xAB, 0xB4, + 0x65, 0x07, 0x0A, 0x0A, 0xA3, 0x7A, 0xD7, 0x16, + 0xE2, 0xC5, 0x3B, 0xE0, 0x42, 0x5F, 0xFA, 0xEF, 0xE1, 0x2E, 0x40, 0x84, 0x36, 0x66, 0xB1, 0xBA }; @@ -655,7 +655,7 @@ public static void VerifyKnownTransform_CFB128_128_NoPadding_4_Fails() feedbackSize: 128) ); } - + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] public static void VerifyKnownTransform_CFB128_128_PKCS7_4() { @@ -682,15 +682,17 @@ public static void VerifyKnownTransform_CFB8_128_PKCS7_4() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_128_NoPadding_0_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_128_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT128.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "c57d699d89df7cfbef71c080a6b10ac3".HexToByteArray(), iv: "fcb2bc4c006b87483978796a2ae2c42e".HexToByteArray(), plainBytes: ("61" + "000000000000000000000000000000").HexToByteArray(), @@ -698,15 +700,17 @@ public static void VerifyKnownTransform_CFB8_128_NoPadding_0_Extended() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_128_NoPadding_9_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_128_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT128.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "3a6f9159263fa6cef2a075caface5817".HexToByteArray(), iv: "0fc23662b7dbf73827f0c7de321ca36e".HexToByteArray(), plainBytes: ("87efeb8d559ed3367728" + "000000000000").HexToByteArray(), @@ -714,15 +718,17 @@ public static void VerifyKnownTransform_CFB8_128_NoPadding_9_Extended() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_192_NoPadding_0_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_192_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT192.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "32a1b0e3da368db563d7316b9779d3327e53d9a6d287ed97".HexToByteArray(), iv: "3dd0e7e21f09d5842f3a699da9b57346".HexToByteArray(), plainBytes: ("54" + "000000000000000000000000000000").HexToByteArray(), @@ -730,15 +736,17 @@ public static void VerifyKnownTransform_CFB8_192_NoPadding_0_Extended() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_192_NoPadding_9_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_192_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT192.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "537e7bf661fd4024a024613f15b13690f7d0c847c1e18965".HexToByteArray(), iv: "3a81f9d9d3c155b0caad5d73349476fc".HexToByteArray(), plainBytes: ("d3d8b9b984adc24237ee" + "000000000000").HexToByteArray(), @@ -746,15 +754,17 @@ public static void VerifyKnownTransform_CFB8_192_NoPadding_9_Extended() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_256_NoPadding_0_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_256_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT256.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "34e8091cee09f1bd3ebf1e8f05f51bfbd4899ef2ae006a3a0f7875052cdd46c8".HexToByteArray(), iv: "43eb4dcc4b04a80216a20e4a09a7abb5".HexToByteArray(), plainBytes: ("f9" + "000000000000000000000000000000").HexToByteArray(), @@ -762,15 +772,17 @@ public static void VerifyKnownTransform_CFB8_256_NoPadding_0_Extended() feedbackSize: 8); } - [Fact] - public static void VerifyKnownTransform_CFB8_256_NoPadding_9_Extended() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_256_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT256.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "ebbb4566b5e182e0f072466b0b311df38f9175bc0213a5530bce2ec4d74f400d".HexToByteArray(), iv: "0956a48e01002c9e16376d6e308dbad1".HexToByteArray(), plainBytes: ("b0fe25ac8d3d28a2f471" + "000000000000").HexToByteArray(), @@ -927,18 +939,28 @@ public static void VerifyKnownTransform_CFB128_256_NoPadding_1_Extended() feedbackSize: 128); } - [Fact] - public static void AesZeroPad() + [Theory] + [InlineData(CipherMode.CBC)] + [InlineData(CipherMode.CFB)] + public static void AesZeroPad(CipherMode cipherMode) { + if (cipherMode == CipherMode.CFB && PlatformDetection.IsWindows7) + { + // Windows 7 does not support CFB128. + return; + } + byte[] decryptedBytes; byte[] expectedAnswer; using (Aes aes = AesFactory.Create()) { + aes.Mode = cipherMode; aes.Padding = PaddingMode.Zeros; + aes.FeedbackSize = 128; - int blockBytes = aes.BlockSize / 8; - int missingBytes = blockBytes - (s_multiBlockBytes.Length % blockBytes); + int alignBytes = aes.BlockSize / 8; // Feedback size is same as block size, both are 128 bits + int missingBytes = alignBytes - (s_multiBlockBytes.Length % alignBytes); // Zero-padding doesn't have enough information to remove the trailing zeroes. // Therefore we expect the answer of ZeroPad(s_multiBlockBytes). @@ -1049,7 +1071,7 @@ private static void RandomKeyRoundtrip(Aes aes) { aes.Mode = mode; aes.Key = key; - + if (feedbackSize.HasValue) { aes.FeedbackSize = feedbackSize.Value; diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs index de5e5641a467..82b076821f46 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs @@ -254,14 +254,16 @@ public static void EncryptWithLargeOutputBuffer(bool blockAlignedOutput) } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_0() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_0(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=0 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fb978a0b6dc2c467".HexToByteArray(), iv: "8b97579ea5ac300f".HexToByteArray(), plainBytes: "80".HexToByteArray(), @@ -270,14 +272,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_0() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_1() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_1(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=1 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "9b04c86dd31a8a58".HexToByteArray(), iv: "52cd77d49fc72347".HexToByteArray(), plainBytes: "2fef".HexToByteArray(), @@ -286,14 +290,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_1() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_2() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_2(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=2 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fbb667e340586b5b".HexToByteArray(), iv: "459e8b8736715791".HexToByteArray(), plainBytes: "061704".HexToByteArray(), @@ -365,14 +371,16 @@ public static void DecryptorReuse_LeadsToSameResults(CipherMode cipherMode, int } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_3() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_3(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=3 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "4a575d02515d40b0".HexToByteArray(), iv: "ab27e9f02affa532".HexToByteArray(), plainBytes: "55f75b95".HexToByteArray(), @@ -397,14 +405,16 @@ public static void VerifyKnownTransform_CFB8_PKCS7_3() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_4() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_4(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=4 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "91a834855e6bab31".HexToByteArray(), iv: "7838aaad4e64640b".HexToByteArray(), plainBytes: "c3851c0ab4".HexToByteArray(), @@ -413,14 +423,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_4() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_5() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_5(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=5 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "04d923abd9291c3e".HexToByteArray(), iv: "191f8794944e601c".HexToByteArray(), plainBytes: "6fe8f67d2af1".HexToByteArray(), @@ -429,14 +441,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_5() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_6() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_6(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=6 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "a7799e7f5dfe54ce".HexToByteArray(), iv: "370184c749d04a20".HexToByteArray(), plainBytes: "2b4228b769795b".HexToByteArray(), @@ -445,14 +459,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_6() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_7() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_7(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=7 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "6bfe3d3df8c1e0d3".HexToByteArray(), iv: "51e4c5c29e858da6".HexToByteArray(), plainBytes: "4cb3554fd0b9ec82".HexToByteArray(), @@ -461,14 +477,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_7() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_8() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_8(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=8 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "e0264aec13e63db9".HexToByteArray(), iv: "bd8795dba79930d6".HexToByteArray(), plainBytes: "79068e2943f02914af".HexToByteArray(), @@ -477,14 +495,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_8() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_9() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_9(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=9 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "7ca28938ba6bec1f".HexToByteArray(), iv: "953896586e49d38f".HexToByteArray(), plainBytes: "2ea956d4a211db6859b7".HexToByteArray(), diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs index ffdd4842f39a..e46e8a2514f0 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs @@ -42,13 +42,15 @@ public static void TripleDESInvalidKeySizes() } } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_0() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_0(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=0 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fb978a0b6dc2c467e3cb52329de95161fb978a0b6dc2c467".HexToByteArray(), iv: "8b97579ea5ac300f".HexToByteArray(), plainBytes: "80".HexToByteArray(), @@ -57,13 +59,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_0() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_1() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_1(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=1 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "9b04c86dd31a8a589876101549d6e0109b04c86dd31a8a58".HexToByteArray(), iv: "52cd77d49fc72347".HexToByteArray(), plainBytes: "2fef".HexToByteArray(), @@ -72,13 +76,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_1() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_2() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_2(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=2 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fbb667e340586b5b5ef7c87049b93257fbb667e340586b5b".HexToByteArray(), iv: "459e8b8736715791".HexToByteArray(), plainBytes: "061704".HexToByteArray(), @@ -117,13 +123,15 @@ public static void VerifyKnownTransform_CFB64_PKCS7_2() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_3() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_3(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=3 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "4a575d02515d40b0a40d830bd9b315134a575d02515d40b0".HexToByteArray(), iv: "ab27e9f02affa532".HexToByteArray(), plainBytes: "55f75b95".HexToByteArray(), @@ -132,13 +140,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_3() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_4() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_4(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=4 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "91a834855e6bab31c7fd6be657ceb9ec91a834855e6bab31".HexToByteArray(), iv: "7838aaad4e64640b".HexToByteArray(), plainBytes: "c3851c0ab4".HexToByteArray(), @@ -147,13 +157,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_4() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_5() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_5(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=5 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "04d923abd9291c3e4954a8b52fdabcc804d923abd9291c3e".HexToByteArray(), iv: "191f8794944e601c".HexToByteArray(), plainBytes: "6fe8f67d2af1".HexToByteArray(), @@ -162,13 +174,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_5() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_6() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_6(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=6 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "a7799e7f5dfe54ce13376401e96de075a7799e7f5dfe54ce".HexToByteArray(), iv: "370184c749d04a20".HexToByteArray(), plainBytes: "2b4228b769795b".HexToByteArray(), @@ -177,13 +191,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_6() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_7() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_7(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=7 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "6bfe3d3df8c1e0d34ffe0dbf854c940e6bfe3d3df8c1e0d3".HexToByteArray(), iv: "51e4c5c29e858da6".HexToByteArray(), plainBytes: "4cb3554fd0b9ec82".HexToByteArray(), @@ -192,13 +208,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_7() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_8() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_8(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=8 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "e0264aec13e63db991f8c120c4b9b6dae0264aec13e63db9".HexToByteArray(), iv: "bd8795dba79930d6".HexToByteArray(), plainBytes: "79068e2943f02914af".HexToByteArray(), @@ -207,13 +225,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_8() ); } - [Fact] - public static void VerifyKnownTransform_CFB8_NoPadding_9() + [Theory] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_9(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=9 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "7ca28938ba6bec1ffec78f7cd69761947ca28938ba6bec1f".HexToByteArray(), iv: "953896586e49d38f".HexToByteArray(), plainBytes: "2ea956d4a211db6859b7".HexToByteArray(), diff --git a/src/libraries/Common/tests/System/Security/Cryptography/X509Certificates/RevocationResponder.cs b/src/libraries/Common/tests/System/Security/Cryptography/X509Certificates/RevocationResponder.cs index b590321d6a1d..67b5ad4a2a45 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/X509Certificates/RevocationResponder.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/X509Certificates/RevocationResponder.cs @@ -90,7 +90,10 @@ internal void HandleRequest() if (context != null) { - HandleRequest(context); + ThreadPool.QueueUserWorkItem( + state => HandleRequest(state), + context, + true); } } @@ -108,7 +111,10 @@ internal async Task HandleRequestAsync() if (context != null) { - HandleRequest(context); + ThreadPool.QueueUserWorkItem( + state => HandleRequest(state), + context, + true); } } @@ -375,14 +381,14 @@ private static void Trace(string trace) Console.WriteLine(trace); } } + } - internal enum DelayedActionsFlag : byte - { - None = 0, - Ocsp = 0b1, - Crl = 0b10, - Aia = 0b100, - All = 0b11111111 - } + public enum DelayedActionsFlag : byte + { + None = 0, + Ocsp = 0b1, + Crl = 0b10, + Aia = 0b100, + All = 0b11111111 } } diff --git a/src/libraries/Common/tests/TestUtilities/System/AdminHelpers.cs b/src/libraries/Common/tests/TestUtilities/System/AdminHelpers.cs index e60459e69434..67c9a0067eed 100644 --- a/src/libraries/Common/tests/TestUtilities/System/AdminHelpers.cs +++ b/src/libraries/Common/tests/TestUtilities/System/AdminHelpers.cs @@ -40,9 +40,8 @@ public static unsafe bool IsProcessElevated() return(userId == 0); } - IntPtr processHandle = Interop.Kernel32.GetCurrentProcess(); SafeAccessTokenHandle token; - if (!Interop.Advapi32.OpenProcessToken(processHandle, TokenAccessLevels.Read, out token)) + if (!Interop.Advapi32.OpenProcessToken(Interop.Kernel32.GetCurrentProcess(), TokenAccessLevels.Read, out token)) { throw new Win32Exception(Marshal.GetLastWin32Error(), "Open process token failed"); } diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs index 80f824eb2dbd..d3922536a5d3 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs @@ -164,7 +164,7 @@ private static DistroInfo GetDistroInfo() // What we want is major release as minor releases should be compatible. result.VersionId = ToVersion(RuntimeInformation.OSDescription.Split()[1].Split('.')[0]); } - else if (IsIllumos) + else if (Isillumos) { // examples: // on OmniOS @@ -195,7 +195,8 @@ private static DistroInfo GetDistroInfo() // example: // SunOS 5.11 11.3 result.Id = "Solaris"; - result.VersionId = ToVersion(RuntimeInformation.OSDescription.Split(' ')[2]); // e.g. 11.3 + // we only need the major version; 11 + result.VersionId = ToVersion(RuntimeInformation.OSDescription.Split(' ')[2].Split('.')[0]); // e.g. 11 } else if (File.Exists("/etc/os-release")) { diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs index 313e6194e4ef..b4520cc67484 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs @@ -28,7 +28,7 @@ public static partial class PlatformDetection public static bool IsNetBSD => RuntimeInformation.IsOSPlatform(OSPlatform.Create("NETBSD")); public static bool IsiOS => RuntimeInformation.IsOSPlatform(OSPlatform.Create("IOS")); public static bool IstvOS => RuntimeInformation.IsOSPlatform(OSPlatform.Create("TVOS")); - public static bool IsIllumos => RuntimeInformation.IsOSPlatform(OSPlatform.Create("ILLUMOS")); + public static bool Isillumos => RuntimeInformation.IsOSPlatform(OSPlatform.Create("ILLUMOS")); public static bool IsSolaris => RuntimeInformation.IsOSPlatform(OSPlatform.Create("SOLARIS")); public static bool IsBrowser => RuntimeInformation.IsOSPlatform(OSPlatform.Create("BROWSER")); public static bool IsNotBrowser => !IsBrowser; @@ -77,6 +77,7 @@ public static bool IsDrawingSupported } public static bool IsInContainer => GetIsInContainer(); + public static bool SupportsComInterop => IsWindows && IsNotMonoRuntime; // matches definitions in clr.featuredefines.props public static bool SupportsSsl3 => GetSsl3Support(); public static bool SupportsSsl2 => IsWindows && !PlatformDetection.IsWindows10Version1607OrGreater; @@ -124,7 +125,7 @@ public static bool IsNonZeroLowerBoundArraySupported // Windows - Schannel supports alpn from win8.1/2012 R2 and higher. // Linux - OpenSsl supports alpn from openssl 1.0.2 and higher. // OSX - SecureTransport doesn't expose alpn APIs. TODO https://github.com/dotnet/runtime/issues/27727 - public static bool IsOpenSslSupported => IsLinux || IsFreeBSD || IsIllumos || IsSolaris; + public static bool IsOpenSslSupported => IsLinux || IsFreeBSD || Isillumos || IsSolaris; public static bool SupportsAlpn => (IsWindows && !IsWindows7) || (IsOpenSslSupported && diff --git a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj index 594319551177..6e5f45f4860f 100644 --- a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj +++ b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj @@ -35,8 +35,8 @@ - + CopyTo_CopiesAllDataFromRightPosition_Success_MemberData() @@ -1073,7 +1073,7 @@ public virtual async Task Write_Read_Success(ReadWriteMode mode) for (int i = 0; i < Copies; i++) { int bytesRead = await ReadAllAsync(mode, stream, actual, 0, actual.Length); - Assert.Equal(expected, actual); + AssertExtensions.Equal(expected, actual); Array.Clear(actual, 0, actual.Length); } } @@ -1686,7 +1686,7 @@ public virtual async Task ReadWriteByte_Success() readerBytes[i] = (byte)r; } - Assert.Equal(writerBytes, readerBytes); + AssertExtensions.Equal(writerBytes, readerBytes); await writes; @@ -1760,7 +1760,7 @@ public virtual async Task ReadWrite_Success(ReadWriteMode mode, int writeSize, b } Assert.Equal(readerBytes.Length, n); - Assert.Equal(writerBytes, readerBytes); + AssertExtensions.Equal(writerBytes, readerBytes); await writes; @@ -2367,7 +2367,7 @@ public virtual async Task CopyToAsync_AllDataCopied(int byteCount, bool useAsync writeable.Dispose(); await copyTask; - Assert.Equal(dataToCopy, results.ToArray()); + AssertExtensions.Equal(dataToCopy, results.ToArray()); } [OuterLoop("May take several seconds")] diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index b48551a1fba5..9d600a0efd95 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -1,6 +1,7 @@ true + true @@ -19,24 +20,9 @@ $(RepositoryEngineeringDir)LicenseHeader.txt - - $(HostRuntimeIdentifier.Remove($(HostRuntimeIdentifier.LastIndexOf('-')))) - - - $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant) - arm - arm64 - wasm - x64 - x64 - - - $(TargetOS.ToLowerInvariant()) - Debug $([System.Text.RegularExpressions.Regex]::Replace('$(TargetFramework)', '(-[^;]+)', '')) @@ -84,67 +70,15 @@ $(IsSourceProject) $(IsSourceProject) + true $(RepositoryEngineeringDir)DefaultGenApiDocIds.txt,$(RepositoryEngineeringDir)ApiCompatExcludeAttributes.txt - - - - <_runtimeOSVersionIndex>$(RuntimeOS.IndexOfAny(".-0123456789")) - <_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' != '-1'">$(RuntimeOS.SubString(0, $(_runtimeOSVersionIndex))) - <_portableOS>linux - <_portableOS Condition="'$(RuntimeOS)' == 'linux-musl'">linux-musl - <_portableOS Condition="'$(_runtimeOSFamily)' == 'win' or '$(TargetOS)' == 'windows'">win - <_portableOS Condition="'$(_runtimeOSFamily)' == 'osx'">osx - <_portableOS Condition="'$(_runtimeOSFamily)' == 'FreeBSD'">freebsd - <_portableOS Condition="'$(_runtimeOSFamily)' == 'illumos'">illumos - <_portableOS Condition="'$(_runtimeOSFamily)' == 'Solaris'">solaris - <_portableOS Condition="'$(RuntimeOS)' == 'Browser'">browser - <_portableOS Condition="'$(RuntimeOS)' == 'ios'">ios - <_portableOS Condition="'$(RuntimeOS)' == 'tvos'">tvos - <_portableOS Condition="'$(RuntimeOS)' == 'android'">android - - <_runtimeOS>$(RuntimeOS) - <_runtimeOS Condition="'$(_runtimeOS)' == 'tizen.4.0.0'">linux - <_runtimeOS Condition="'$(_runtimeOS)' == 'tizen.5.0.0'">linux - <_runtimeOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) - $(_runtimeOS)-x64 - $(_runtimeOS)-$(HostArch) - - linux-x64 - - - <_buildingInOSX>$([MSBuild]::IsOSPlatform('OSX')) - win-x64 - osx-x64 - linux-x64 - - - win-x64 - osx-x64 - linux-x64 - - - osx-x64 - $(ToolRuntimeRID) - - - <_portableOS Condition="'$(TargetOS)' == 'Unix' and '$(_runtimeOSFamily)' != 'osx' and '$(_runtimeOSFamily)' != 'FreeBSD' and '$(_runtimeOS)' != 'linux-musl' and '$(_runtimeOSFamily)' != 'illumos' and '$(_runtimeOSFamily)' != 'Solaris'">linux - - - <_portableOS Condition="'$(TargetOS)' == 'Unix' and '$(_runtimeOSFamily)' != 'osx' and '$(_runtimeOSFamily)' != 'FreeBSD' and '$(_runtimeOS)' != 'linux-musl' and '$(_runtimeOSFamily)' != 'illumos' and '$(_runtimeOSFamily)' != 'Solaris'">linux - - <_packageRID /> - <_packageRID Condition="'$(PortableBuild)' == 'true'">$(_portableOS)-$(TargetArchitecture) - $(_packageRID) - $(RuntimeOS)-$(TargetArchitecture) - - true @@ -299,9 +233,9 @@ true - + - --interpreter + --interpreter diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 16edbbd34756..79ecbbd12250 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -124,6 +124,7 @@ + diff --git a/src/libraries/Microsoft.Bcl.AsyncInterfaces/Microsoft.Bcl.AsyncInterfaces.sln b/src/libraries/Microsoft.Bcl.AsyncInterfaces/Microsoft.Bcl.AsyncInterfaces.sln index 1f6586d8aa79..028529bdefd3 100644 --- a/src/libraries/Microsoft.Bcl.AsyncInterfaces/Microsoft.Bcl.AsyncInterfaces.sln +++ b/src/libraries/Microsoft.Bcl.AsyncInterfaces/Microsoft.Bcl.AsyncInterfaces.sln @@ -1,51 +1,86 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30120.7 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "src\Microsoft.Bcl.AsyncInterfaces.csproj", "{E6C08D1F-5DAC-470E-809D-42DBFAA56DD4}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CAEE0409-CCC3-4EA6-AB54-177FD305D42D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8FA3CF3F-DF33-4DC4-A261-4642AB786838}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0C330C14-95F7-4AD3-9BD0-8AAB6E3013D8}" - ProjectSection(SolutionItems) = preProject - ref\Microsoft.Bcl.AsyncInterfaces.csproj = ref\Microsoft.Bcl.AsyncInterfaces.csproj - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "src\Microsoft.Bcl.AsyncInterfaces.csproj", "{4D4BED71-8904-4A74-88CD-63D002CCACD0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces.Tests", "tests\Microsoft.Bcl.AsyncInterfaces.Tests.csproj", "{857B2747-4D8E-4A0C-9C38-521F690ED28E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces.Tests", "tests\Microsoft.Bcl.AsyncInterfaces.Tests.csproj", "{51D9518A-464D-4257-9567-3BDCFF24F3EE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{78938ED3-0E8A-451A-A508-0E724E471B91}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{95680D66-EE1B-4389-A84D-0C49AF570732}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0D1C7DCB-970D-4099-AC9F-A01E75923EC6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{AF838F1D-5C1C-472B-B31C-9A3B7507BB4B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{001573F8-5364-4087-B716-28993E03FFF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{14998387-412C-4723-B5CD-EEEB2B51DDC1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9B9A11F1-B6F4-496F-BA6B-583EA63C9E43}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EE764B31-3F63-43C7-917B-41D9515D072C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {CAEE0409-CCC3-4EA6-AB54-177FD305D42D} = {14998387-412C-4723-B5CD-EEEB2B51DDC1} + {51D9518A-464D-4257-9567-3BDCFF24F3EE} = {14998387-412C-4723-B5CD-EEEB2B51DDC1} + {73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE} = {9B9A11F1-B6F4-496F-BA6B-583EA63C9E43} + {0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C} = {9B9A11F1-B6F4-496F-BA6B-583EA63C9E43} + {0D1C7DCB-970D-4099-AC9F-A01E75923EC6} = {9B9A11F1-B6F4-496F-BA6B-583EA63C9E43} + {001573F8-5364-4087-B716-28993E03FFF6} = {9B9A11F1-B6F4-496F-BA6B-583EA63C9E43} + {E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C} = {9B9A11F1-B6F4-496F-BA6B-583EA63C9E43} + {4D4BED71-8904-4A74-88CD-63D002CCACD0} = {EE764B31-3F63-43C7-917B-41D9515D072C} + {AF838F1D-5C1C-472B-B31C-9A3B7507BB4B} = {EE764B31-3F63-43C7-917B-41D9515D072C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E6C08D1F-5DAC-470E-809D-42DBFAA56DD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6C08D1F-5DAC-470E-809D-42DBFAA56DD4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6C08D1F-5DAC-470E-809D-42DBFAA56DD4}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {E6C08D1F-5DAC-470E-809D-42DBFAA56DD4}.Release|Any CPU.Build.0 = Debug|Any CPU - {857B2747-4D8E-4A0C-9C38-521F690ED28E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {857B2747-4D8E-4A0C-9C38-521F690ED28E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {857B2747-4D8E-4A0C-9C38-521F690ED28E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {857B2747-4D8E-4A0C-9C38-521F690ED28E}.Release|Any CPU.Build.0 = Release|Any CPU - {95680D66-EE1B-4389-A84D-0C49AF570732}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95680D66-EE1B-4389-A84D-0C49AF570732}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95680D66-EE1B-4389-A84D-0C49AF570732}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95680D66-EE1B-4389-A84D-0C49AF570732}.Release|Any CPU.Build.0 = Release|Any CPU + {CAEE0409-CCC3-4EA6-AB54-177FD305D42D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAEE0409-CCC3-4EA6-AB54-177FD305D42D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAEE0409-CCC3-4EA6-AB54-177FD305D42D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAEE0409-CCC3-4EA6-AB54-177FD305D42D}.Release|Any CPU.Build.0 = Release|Any CPU + {73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73E7C25C-AEBC-4F4F-B8D1-0CC49D5B92DE}.Release|Any CPU.Build.0 = Release|Any CPU + {4D4BED71-8904-4A74-88CD-63D002CCACD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D4BED71-8904-4A74-88CD-63D002CCACD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D4BED71-8904-4A74-88CD-63D002CCACD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D4BED71-8904-4A74-88CD-63D002CCACD0}.Release|Any CPU.Build.0 = Release|Any CPU + {51D9518A-464D-4257-9567-3BDCFF24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51D9518A-464D-4257-9567-3BDCFF24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51D9518A-464D-4257-9567-3BDCFF24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51D9518A-464D-4257-9567-3BDCFF24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU + {0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CC7688E-1DBE-4966-B1EB-2D6D29C23B8C}.Release|Any CPU.Build.0 = Release|Any CPU + {0D1C7DCB-970D-4099-AC9F-A01E75923EC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D1C7DCB-970D-4099-AC9F-A01E75923EC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D1C7DCB-970D-4099-AC9F-A01E75923EC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D1C7DCB-970D-4099-AC9F-A01E75923EC6}.Release|Any CPU.Build.0 = Release|Any CPU + {AF838F1D-5C1C-472B-B31C-9A3B7507BB4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF838F1D-5C1C-472B-B31C-9A3B7507BB4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF838F1D-5C1C-472B-B31C-9A3B7507BB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF838F1D-5C1C-472B-B31C-9A3B7507BB4B}.Release|Any CPU.Build.0 = Release|Any CPU + {001573F8-5364-4087-B716-28993E03FFF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {001573F8-5364-4087-B716-28993E03FFF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {001573F8-5364-4087-B716-28993E03FFF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {001573F8-5364-4087-B716-28993E03FFF6}.Release|Any CPU.Build.0 = Release|Any CPU + {E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E28342C8-A4CB-4282-9F3B-FE9FE8A0D94C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E6C08D1F-5DAC-470E-809D-42DBFAA56DD4} = {8FA3CF3F-DF33-4DC4-A261-4642AB786838} - {857B2747-4D8E-4A0C-9C38-521F690ED28E} = {78938ED3-0E8A-451A-A508-0E724E471B91} - {95680D66-EE1B-4389-A84D-0C49AF570732} = {78938ED3-0E8A-451A-A508-0E724E471B91} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {48FA418B-CCC2-4EBD-9CDA-F31C72AC9B05} + SolutionGuid = {A835CEDB-E9E2-49EE-8499-BD7FDD984E53} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.CSharp/Microsoft.CSharp.sln b/src/libraries/Microsoft.CSharp/Microsoft.CSharp.sln index 26f057e5cd93..88895ed747a7 100644 --- a/src/libraries/Microsoft.CSharp/Microsoft.CSharp.sln +++ b/src/libraries/Microsoft.CSharp/Microsoft.CSharp.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp.Tests", "tests\Microsoft.CSharp.Tests.csproj", "{82B54697-0251-47A1-8546-FC507D0F3B08}" - ProjectSection(ProjectDependencies) = postProject - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8} = {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A18337A4-46D6-470C-A995-CA70E5311F19}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp", "src\Microsoft.CSharp.csproj", "{149D7DFE-2FAC-4A38-89AD-E24CE63AACB8}" - ProjectSection(ProjectDependencies) = postProject - {1427906B-FF3D-422A-8278-F2B7E89DE12A} = {1427906B-FF3D-422A-8278-F2B7E89DE12A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp", "ref\Microsoft.CSharp.csproj", "{BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp", "ref\Microsoft.CSharp.csproj", "{1427906B-FF3D-422A-8278-F2B7E89DE12A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp", "src\Microsoft.CSharp.csproj", "{78073F44-8382-473D-8B24-90D54B57129E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CSharp.Tests", "tests\Microsoft.CSharp.Tests.csproj", "{7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{792ECA46-1495-4F60-B25F-CDCFEADD4921}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9DA2C0A8-13C0-4F65-85AC-29AB97A039EB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4853B3B6-3F48-43CA-B750-5B870EE4A96F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DD0869E8-3AE5-43AA-AD9C-1E26859D9D49}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{FCFD5BF1-38A7-49C7-B11A-3F09299AB404}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{61C71A34-6887-4DD2-B80A-F71C73C92880}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{187751D8-DFDF-4BFB-AB05-FECC69A2DDE3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D1FEE79B-397C-464C-BF9F-1F8FC6471101}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A18337A4-46D6-470C-A995-CA70E5311F19} = {187751D8-DFDF-4BFB-AB05-FECC69A2DDE3} + {7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA} = {187751D8-DFDF-4BFB-AB05-FECC69A2DDE3} + {BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A} = {B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66} + {792ECA46-1495-4F60-B25F-CDCFEADD4921} = {B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66} + {9DA2C0A8-13C0-4F65-85AC-29AB97A039EB} = {B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66} + {FCFD5BF1-38A7-49C7-B11A-3F09299AB404} = {B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66} + {61C71A34-6887-4DD2-B80A-F71C73C92880} = {B0AC27E4-0FEF-4FBA-B0F9-5DBCCA763A66} + {78073F44-8382-473D-8B24-90D54B57129E} = {D1FEE79B-397C-464C-BF9F-1F8FC6471101} + {DD0869E8-3AE5-43AA-AD9C-1E26859D9D49} = {D1FEE79B-397C-464C-BF9F-1F8FC6471101} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {82B54697-0251-47A1-8546-FC507D0F3B08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82B54697-0251-47A1-8546-FC507D0F3B08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82B54697-0251-47A1-8546-FC507D0F3B08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82B54697-0251-47A1-8546-FC507D0F3B08}.Release|Any CPU.Build.0 = Release|Any CPU - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8}.Release|Any CPU.Build.0 = Release|Any CPU - {1427906B-FF3D-422A-8278-F2B7E89DE12A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1427906B-FF3D-422A-8278-F2B7E89DE12A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1427906B-FF3D-422A-8278-F2B7E89DE12A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1427906B-FF3D-422A-8278-F2B7E89DE12A}.Release|Any CPU.Build.0 = Release|Any CPU - {4853B3B6-3F48-43CA-B750-5B870EE4A96F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4853B3B6-3F48-43CA-B750-5B870EE4A96F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4853B3B6-3F48-43CA-B750-5B870EE4A96F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4853B3B6-3F48-43CA-B750-5B870EE4A96F}.Release|Any CPU.Build.0 = Release|Any CPU + {A18337A4-46D6-470C-A995-CA70E5311F19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A18337A4-46D6-470C-A995-CA70E5311F19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A18337A4-46D6-470C-A995-CA70E5311F19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A18337A4-46D6-470C-A995-CA70E5311F19}.Release|Any CPU.Build.0 = Release|Any CPU + {BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF947490-D7AE-46E1-B4E0-D8A6D1EA8E5A}.Release|Any CPU.Build.0 = Release|Any CPU + {78073F44-8382-473D-8B24-90D54B57129E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78073F44-8382-473D-8B24-90D54B57129E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78073F44-8382-473D-8B24-90D54B57129E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78073F44-8382-473D-8B24-90D54B57129E}.Release|Any CPU.Build.0 = Release|Any CPU + {7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AEDFF97-79E2-441E-8B3F-5C8EC9C1E8FA}.Release|Any CPU.Build.0 = Release|Any CPU + {792ECA46-1495-4F60-B25F-CDCFEADD4921}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {792ECA46-1495-4F60-B25F-CDCFEADD4921}.Debug|Any CPU.Build.0 = Debug|Any CPU + {792ECA46-1495-4F60-B25F-CDCFEADD4921}.Release|Any CPU.ActiveCfg = Release|Any CPU + {792ECA46-1495-4F60-B25F-CDCFEADD4921}.Release|Any CPU.Build.0 = Release|Any CPU + {9DA2C0A8-13C0-4F65-85AC-29AB97A039EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DA2C0A8-13C0-4F65-85AC-29AB97A039EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DA2C0A8-13C0-4F65-85AC-29AB97A039EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DA2C0A8-13C0-4F65-85AC-29AB97A039EB}.Release|Any CPU.Build.0 = Release|Any CPU + {DD0869E8-3AE5-43AA-AD9C-1E26859D9D49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD0869E8-3AE5-43AA-AD9C-1E26859D9D49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD0869E8-3AE5-43AA-AD9C-1E26859D9D49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD0869E8-3AE5-43AA-AD9C-1E26859D9D49}.Release|Any CPU.Build.0 = Release|Any CPU + {FCFD5BF1-38A7-49C7-B11A-3F09299AB404}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCFD5BF1-38A7-49C7-B11A-3F09299AB404}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCFD5BF1-38A7-49C7-B11A-3F09299AB404}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCFD5BF1-38A7-49C7-B11A-3F09299AB404}.Release|Any CPU.Build.0 = Release|Any CPU + {61C71A34-6887-4DD2-B80A-F71C73C92880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61C71A34-6887-4DD2-B80A-F71C73C92880}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61C71A34-6887-4DD2-B80A-F71C73C92880}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61C71A34-6887-4DD2-B80A-F71C73C92880}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {82B54697-0251-47A1-8546-FC507D0F3B08} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {149D7DFE-2FAC-4A38-89AD-E24CE63AACB8} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {1427906B-FF3D-422A-8278-F2B7E89DE12A} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {4853B3B6-3F48-43CA-B750-5B870EE4A96F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {89BC0057-5CFB-4B4B-B255-A5EDB54CFEAE} + SolutionGuid = {A1ECF510-F5DB-4E7F-853E-DD3C0CE04C12} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs index b4314c6c6c59..dd25a30c4dbc 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs @@ -30,7 +30,7 @@ public void PopulateSymbolTableWithName(Type callingType, ArgumentObject[] argum string ICSharpBinder.Name => "Invoke"; - Type[] ICSharpInvokeOrInvokeMemberBinder.TypeArguments => Array.Empty(); + Type[] ICSharpInvokeOrInvokeMemberBinder.TypeArguments => Type.EmptyTypes; CSharpCallFlags ICSharpInvokeOrInvokeMemberBinder.Flags => _flags; diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeConstructorBinder.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeConstructorBinder.cs index 3f991ba9d839..f4c1d1cacc91 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeConstructorBinder.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeConstructorBinder.cs @@ -29,7 +29,7 @@ public void PopulateSymbolTableWithName(Type callingType, ArgumentObject[] argum public bool StaticCall => true; - public Type[] TypeArguments => Array.Empty(); + public Type[] TypeArguments => Type.EmptyTypes; public string Name => ".ctor"; diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComEventSinksContainer.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComEventSinksContainer.cs index 2b9a068b3cc1..98a4d21ce2af 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComEventSinksContainer.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComEventSinksContainer.cs @@ -23,7 +23,7 @@ private ComEventSinksContainer() public static ComEventSinksContainer FromRuntimeCallableWrapper(object rcw, bool createIfNotFound) { object data = Marshal.GetComObjectData(rcw, s_comObjectEventSinksKey); - if (data != null || createIfNotFound == false) + if (data != null || !createIfNotFound) { return (ComEventSinksContainer)data; } diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComMethodDesc.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComMethodDesc.cs index 5a700071697e..5b3a749a20a9 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComMethodDesc.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComMethodDesc.cs @@ -31,7 +31,6 @@ internal ComMethodDesc(string name, int dispId, INVOKEKIND invkind) internal ComMethodDesc(ITypeInfo typeInfo, FUNCDESC funcDesc) : this(funcDesc.memid) { - _invokeKind = funcDesc.invkind; string[] rgNames = new string[1 + funcDesc.cParams]; diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComTypeDesc.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComTypeDesc.cs index 0abdd7e0d87a..bbe139319aad 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComTypeDesc.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/ComTypeDesc.cs @@ -25,7 +25,6 @@ internal ComTypeDesc(ITypeInfo typeInfo, ComTypeLibDesc typeLibDesc) TypeLib = typeLibDesc; } - internal static ComTypeDesc FromITypeInfo(ITypeInfo typeInfo, TYPEATTR typeAttr) { switch (typeAttr.typekind) diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/IDispatchComObject.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/IDispatchComObject.cs index 4ce86951f1aa..6a7a29764b8a 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/IDispatchComObject.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/IDispatchComObject.cs @@ -73,7 +73,6 @@ namespace Microsoft.CSharp.RuntimeBinder.ComInterop /// just find and invoke the multicast delegate corresponding to the invoked /// dispid. /// - internal sealed class IDispatchComObject : ComObject, IDynamicMetaObjectProvider { private ComTypeDesc _comTypeDesc; @@ -450,7 +449,7 @@ private static void ScanSourceInterface(ComTypes.ITypeInfo sourceTypeInfo, ref D // adding new events and putting them on new interfaces while keeping the // old interfaces around. This may cause name collisioning which we are // resolving by keeping only the first event with the same name. - if (events.ContainsKey(name) == false) + if (!events.ContainsKey(name)) { ComEventDesc eventDesc = new ComEventDesc { diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/UnknownArgBuilder.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/UnknownArgBuilder.cs index dfe0f46bf34f..a587e20cc391 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/UnknownArgBuilder.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/UnknownArgBuilder.cs @@ -48,7 +48,6 @@ internal override Expression MarshalToRef(Expression parameter) ); } - internal override Expression UnmarshalFromRef(Expression value) { // value == IntPtr.Zero ? null : Marshal.GetObjectForIUnknown(value); diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/VarEnumSelector.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/VarEnumSelector.cs index d8318cd176b6..435e94f96fa7 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/VarEnumSelector.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/ComInterop/VarEnumSelector.cs @@ -187,7 +187,6 @@ private static void CheckForAmbiguousMatch(Type argumentType, List comp typeNames += typeName; } - throw Error.AmbiguousConversion(argumentType.Name, typeNames); } diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinderExtensions.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinderExtensions.cs index c2e01a3e58d6..1323e2c24bb2 100644 --- a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinderExtensions.cs +++ b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinderExtensions.cs @@ -276,7 +276,7 @@ private static bool IsTypeParameterEquivalentToTypeInst(this Type typeParam, Typ } // See if MetadataToken property is available. - PropertyInfo property = memberInfo.GetProperty("MetadataToken", typeof(int), Array.Empty()); + PropertyInfo property = memberInfo.GetProperty("MetadataToken", typeof(int), Type.EmptyTypes); if (property is not null && property.CanRead) { diff --git a/src/libraries/Microsoft.CSharp/tests/IntegerBinaryOperationTests.cs b/src/libraries/Microsoft.CSharp/tests/IntegerBinaryOperationTests.cs index 8888f6ce0672..fe21b494228a 100644 --- a/src/libraries/Microsoft.CSharp/tests/IntegerBinaryOperationTests.cs +++ b/src/libraries/Microsoft.CSharp/tests/IntegerBinaryOperationTests.cs @@ -498,6 +498,7 @@ public void RuntimeExpression(object x, object y, ExpressionType type, object re [MemberData(nameof(UInt64TestNotEquals))] [MemberData(nameof(UInt64TestSubtractions))] [ActiveIssue("https://github.com/dotnet/runtime/issues/26798", TargetFrameworkMonikers.NetFramework)] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/42719", RuntimeConfiguration.Checked)] public void ConstantExpressions(object x, object y, ExpressionType type, object result, bool shouldSucceedChecked) { var callsite = GetBinaryOperationCallSite(type, false, true, true); diff --git a/src/libraries/Microsoft.Diagnostics.Tracing.EventSource.Redist/Microsoft.Diagnostics.Tracing.EventSource.Redist.sln b/src/libraries/Microsoft.Diagnostics.Tracing.EventSource.Redist/Microsoft.Diagnostics.Tracing.EventSource.Redist.sln index 09a459746e59..f89e868051db 100644 --- a/src/libraries/Microsoft.Diagnostics.Tracing.EventSource.Redist/Microsoft.Diagnostics.Tracing.EventSource.Redist.sln +++ b/src/libraries/Microsoft.Diagnostics.Tracing.EventSource.Redist/Microsoft.Diagnostics.Tracing.EventSource.Redist.sln @@ -1,48 +1,79 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Diagnostics.Tracing.EventSource.Redist.Tests", "tests\Microsoft.Diagnostics.Tracing.EventSource.Redist.Tests.csproj", "{0657A043-0AEE-445E-9BE4-0B3A9D80318F}" - ProjectSection(ProjectDependencies) = postProject - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F} = {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D71CB9DA-6691-4A1A-80CA-45736E4B9272}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Diagnostics.Tracing.EventSource.Redist", "src\Microsoft.Diagnostics.Tracing.EventSource.Redist.csproj", "{0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Diagnostics.Tracing.EventSource", "src\Microsoft.Diagnostics.Tracing.EventSource.Redist.csproj", "{D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Diagnostics.Tracing.EventSource.Redist.Tests", "tests\Microsoft.Diagnostics.Tracing.EventSource.Redist.Tests.csproj", "{B25DF443-E116-4D44-B2AB-6D4333F59F32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{8BBCAD19-4705-4C75-82CC-0FAE523FB211}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B83AFCDC-F6A3-4216-8098-8F163179D131}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{94318389-1E44-44D5-8584-ACE54E8AFAB7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BEF8A648-9F38-4473-AE1D-EE4AB0B7531E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CC0D5221-6570-4C5C-9D12-41206483A43F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B2BCBE3E-44F8-4B26-87C3-88A027A842AE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{19E613A0-82F5-41B6-B36F-CB711E7AD8E6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{35EA36E3-099D-4EFC-80E6-0F7B4753111D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4959A1AD-6529-40BE-AADF-D49EF7923256}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D71CB9DA-6691-4A1A-80CA-45736E4B9272} = {19E613A0-82F5-41B6-B36F-CB711E7AD8E6} + {B25DF443-E116-4D44-B2AB-6D4333F59F32} = {19E613A0-82F5-41B6-B36F-CB711E7AD8E6} + {D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F} = {35EA36E3-099D-4EFC-80E6-0F7B4753111D} + {BEF8A648-9F38-4473-AE1D-EE4AB0B7531E} = {35EA36E3-099D-4EFC-80E6-0F7B4753111D} + {8BBCAD19-4705-4C75-82CC-0FAE523FB211} = {4959A1AD-6529-40BE-AADF-D49EF7923256} + {94318389-1E44-44D5-8584-ACE54E8AFAB7} = {4959A1AD-6529-40BE-AADF-D49EF7923256} + {CC0D5221-6570-4C5C-9D12-41206483A43F} = {4959A1AD-6529-40BE-AADF-D49EF7923256} + {B2BCBE3E-44F8-4B26-87C3-88A027A842AE} = {4959A1AD-6529-40BE-AADF-D49EF7923256} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0657A043-0AEE-445E-9BE4-0B3A9D80318F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0657A043-0AEE-445E-9BE4-0B3A9D80318F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0657A043-0AEE-445E-9BE4-0B3A9D80318F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0657A043-0AEE-445E-9BE4-0B3A9D80318F}.Release|Any CPU.Build.0 = Release|Any CPU - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F}.Release|Any CPU.Build.0 = Release|Any CPU - {B83AFCDC-F6A3-4216-8098-8F163179D131}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B83AFCDC-F6A3-4216-8098-8F163179D131}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B83AFCDC-F6A3-4216-8098-8F163179D131}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B83AFCDC-F6A3-4216-8098-8F163179D131}.Release|Any CPU.Build.0 = Release|Any CPU + {D71CB9DA-6691-4A1A-80CA-45736E4B9272}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D71CB9DA-6691-4A1A-80CA-45736E4B9272}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D71CB9DA-6691-4A1A-80CA-45736E4B9272}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D71CB9DA-6691-4A1A-80CA-45736E4B9272}.Release|Any CPU.Build.0 = Release|Any CPU + {D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7BDDDA5-180A-4CA8-864B-F9FC4E046D4F}.Release|Any CPU.Build.0 = Release|Any CPU + {B25DF443-E116-4D44-B2AB-6D4333F59F32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B25DF443-E116-4D44-B2AB-6D4333F59F32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B25DF443-E116-4D44-B2AB-6D4333F59F32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B25DF443-E116-4D44-B2AB-6D4333F59F32}.Release|Any CPU.Build.0 = Release|Any CPU + {8BBCAD19-4705-4C75-82CC-0FAE523FB211}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BBCAD19-4705-4C75-82CC-0FAE523FB211}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BBCAD19-4705-4C75-82CC-0FAE523FB211}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BBCAD19-4705-4C75-82CC-0FAE523FB211}.Release|Any CPU.Build.0 = Release|Any CPU + {94318389-1E44-44D5-8584-ACE54E8AFAB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94318389-1E44-44D5-8584-ACE54E8AFAB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94318389-1E44-44D5-8584-ACE54E8AFAB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94318389-1E44-44D5-8584-ACE54E8AFAB7}.Release|Any CPU.Build.0 = Release|Any CPU + {BEF8A648-9F38-4473-AE1D-EE4AB0B7531E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEF8A648-9F38-4473-AE1D-EE4AB0B7531E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEF8A648-9F38-4473-AE1D-EE4AB0B7531E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEF8A648-9F38-4473-AE1D-EE4AB0B7531E}.Release|Any CPU.Build.0 = Release|Any CPU + {CC0D5221-6570-4C5C-9D12-41206483A43F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC0D5221-6570-4C5C-9D12-41206483A43F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC0D5221-6570-4C5C-9D12-41206483A43F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC0D5221-6570-4C5C-9D12-41206483A43F}.Release|Any CPU.Build.0 = Release|Any CPU + {B2BCBE3E-44F8-4B26-87C3-88A027A842AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2BCBE3E-44F8-4B26-87C3-88A027A842AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2BCBE3E-44F8-4B26-87C3-88A027A842AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2BCBE3E-44F8-4B26-87C3-88A027A842AE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0657A043-0AEE-445E-9BE4-0B3A9D80318F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0CAF38F5-C7E7-46F2-8F39-C5D57492FF7F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B83AFCDC-F6A3-4216-8098-8F163179D131} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {53827F58-3CA5-4CEF-9176-70DD35463C1E} + SolutionGuid = {8CAF340C-E3EF-4DF0-998D-A17DE2C72207} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Caching.Abstractions/Microsoft.Extensions.Caching.Abstractions.sln b/src/libraries/Microsoft.Extensions.Caching.Abstractions/Microsoft.Extensions.Caching.Abstractions.sln index 7c8767aa2a77..2a78e9192292 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Abstractions/Microsoft.Extensions.Caching.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.Caching.Abstractions/Microsoft.Extensions.Caching.Abstractions.sln @@ -1,39 +1,63 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F74D9835-34F2-4D54-8E2C-CD07313A6896}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "ref\Microsoft.Extensions.Caching.Abstractions.csproj", "{E206E7BE-3269-4E6E-BF22-0E20B687E90C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6BADF50B-9459-42E2-A4BD-800952EE390C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "src\Microsoft.Extensions.Caching.Abstractions.csproj", "{5904EB23-3221-4992-A1F9-70F8B5478DF2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "ref\Microsoft.Extensions.Caching.Abstractions.csproj", "{64ADA6B3-7B32-46E5-B4F4-F2935C59709A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "src\Microsoft.Extensions.Caching.Abstractions.csproj", "{8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{9556B0C4-098C-45E3-A7EB-1A219B7F941C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{470D5AB0-A04A-46EE-8444-9247D000958E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{8C891B23-07C9-4261-9DB2-C8EAE91A0EA0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6B5CCFF6-9D90-4AE4-B2A4-30A98F7255A2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B393CE17-F554-4F59-8487-BF67A646AF32}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E206E7BE-3269-4E6E-BF22-0E20B687E90C} = {6B5CCFF6-9D90-4AE4-B2A4-30A98F7255A2} + {3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90} = {6B5CCFF6-9D90-4AE4-B2A4-30A98F7255A2} + {470D5AB0-A04A-46EE-8444-9247D000958E} = {6B5CCFF6-9D90-4AE4-B2A4-30A98F7255A2} + {5904EB23-3221-4992-A1F9-70F8B5478DF2} = {B393CE17-F554-4F59-8487-BF67A646AF32} + {9556B0C4-098C-45E3-A7EB-1A219B7F941C} = {B393CE17-F554-4F59-8487-BF67A646AF32} + {8C891B23-07C9-4261-9DB2-C8EAE91A0EA0} = {B393CE17-F554-4F59-8487-BF67A646AF32} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64ADA6B3-7B32-46E5-B4F4-F2935C59709A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64ADA6B3-7B32-46E5-B4F4-F2935C59709A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64ADA6B3-7B32-46E5-B4F4-F2935C59709A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64ADA6B3-7B32-46E5-B4F4-F2935C59709A}.Release|Any CPU.Build.0 = Release|Any CPU - {8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE}.Release|Any CPU.Build.0 = Release|Any CPU + {E206E7BE-3269-4E6E-BF22-0E20B687E90C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E206E7BE-3269-4E6E-BF22-0E20B687E90C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E206E7BE-3269-4E6E-BF22-0E20B687E90C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E206E7BE-3269-4E6E-BF22-0E20B687E90C}.Release|Any CPU.Build.0 = Release|Any CPU + {5904EB23-3221-4992-A1F9-70F8B5478DF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5904EB23-3221-4992-A1F9-70F8B5478DF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5904EB23-3221-4992-A1F9-70F8B5478DF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5904EB23-3221-4992-A1F9-70F8B5478DF2}.Release|Any CPU.Build.0 = Release|Any CPU + {3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CE7A561-5A2F-4AF3-8CC2-8148BC5CCE90}.Release|Any CPU.Build.0 = Release|Any CPU + {9556B0C4-098C-45E3-A7EB-1A219B7F941C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9556B0C4-098C-45E3-A7EB-1A219B7F941C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9556B0C4-098C-45E3-A7EB-1A219B7F941C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9556B0C4-098C-45E3-A7EB-1A219B7F941C}.Release|Any CPU.Build.0 = Release|Any CPU + {470D5AB0-A04A-46EE-8444-9247D000958E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {470D5AB0-A04A-46EE-8444-9247D000958E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {470D5AB0-A04A-46EE-8444-9247D000958E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {470D5AB0-A04A-46EE-8444-9247D000958E}.Release|Any CPU.Build.0 = Release|Any CPU + {8C891B23-07C9-4261-9DB2-C8EAE91A0EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C891B23-07C9-4261-9DB2-C8EAE91A0EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C891B23-07C9-4261-9DB2-C8EAE91A0EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C891B23-07C9-4261-9DB2-C8EAE91A0EA0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {64ADA6B3-7B32-46E5-B4F4-F2935C59709A} = {F74D9835-34F2-4D54-8E2C-CD07313A6896} - {8C6A8725-9C47-4AB1-9C79-E1A55DAF03EE} = {6BADF50B-9459-42E2-A4BD-800952EE390C} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {69A7E42A-FE3F-4115-92A5-CAE19C240525} + SolutionGuid = {68BF65EA-B5BA-44C6-8463-45BA1F186520} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/Microsoft.Extensions.Caching.Memory.sln b/src/libraries/Microsoft.Extensions.Caching.Memory/Microsoft.Extensions.Caching.Memory.sln index 91e6ed986197..9239f6776e59 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/Microsoft.Extensions.Caching.Memory.sln +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/Microsoft.Extensions.Caching.Memory.sln @@ -1,55 +1,184 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{20ACD179-AFDD-456A-9D27-5F4B036BA5AB}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{02F50816-753B-4542-BDB9-80B6AD32D31F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{950759B3-269E-4768-9107-4D1C3B0F9DC8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A56177C8-32A9-4C5A-9AE8-312F209B3F32}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{21CD6C35-65E2-414A-B9A1-22A0DD57977A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory", "ref\Microsoft.Extensions.Caching.Memory.csproj", "{CB26F7AD-3279-4BBB-B33A-485CBF2B0787}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "..\Microsoft.Extensions.Caching.Abstractions\ref\Microsoft.Extensions.Caching.Abstractions.csproj", "{7521082D-62A8-4B62-A6D0-E6A94B2BC8EC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory", "src\Microsoft.Extensions.Caching.Memory.csproj", "{802F8E4B-C890-4312-B8A1-BF0201C7F949}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Abstractions", "..\Microsoft.Extensions.Caching.Abstractions\src\Microsoft.Extensions.Caching.Abstractions.csproj", "{AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory.Tests", "tests\Microsoft.Extensions.Caching.Memory.Tests.csproj", "{DE244209-5EC7-47DD-8EC9-7B634DFDA1B7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory", "ref\Microsoft.Extensions.Caching.Memory.csproj", "{BE9DB8BC-43B1-47A5-B232-FCAAE9D03251}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9BE95529-D00D-4D03-82F1-103891E17F28}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory", "src\Microsoft.Extensions.Caching.Memory.csproj", "{CD3D6F5B-0500-4035-A60A-592A2E231011}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Caching.Memory.Tests", "tests\Microsoft.Extensions.Caching.Memory.Tests.csproj", "{19E7C366-8F61-4E7A-8C31-02FDDB26665A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{9F0655E7-42FE-4AE0-A351-5624C73A35AC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{4A6F459B-FBFE-44D9-9F52-944302D6D027}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{78971B06-2519-45B7-B761-C8A30C168EBE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{C76753D0-F564-45E9-AA60-A846EFE0A414}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{5A9310B4-82AB-46F8-83C1-72D21A6A761F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{FCF170AC-100A-4EEE-849E-497A299EDE3F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{667107A7-2CC7-4506-A6A6-223BB86290E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{19883A68-1293-46AE-98FD-8C559D414EFD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B6D30918-C1B7-4225-A809-E13A5817DE22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{81715711-5517-422C-B746-6F98FE1245AE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{87F9233C-1DB8-4216-B31A-EBCBAC4C9B8D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CB38DFD9-956F-4999-A866-C348FF706C28}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{10E82325-75BE-4338-9288-BA4319D1502F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A} = {87F9233C-1DB8-4216-B31A-EBCBAC4C9B8D} + {19E7C366-8F61-4E7A-8C31-02FDDB26665A} = {87F9233C-1DB8-4216-B31A-EBCBAC4C9B8D} + {950759B3-269E-4768-9107-4D1C3B0F9DC8} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {7521082D-62A8-4B62-A6D0-E6A94B2BC8EC} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {BE9DB8BC-43B1-47A5-B232-FCAAE9D03251} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {9F0655E7-42FE-4AE0-A351-5624C73A35AC} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {4A6F459B-FBFE-44D9-9F52-944302D6D027} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {FCF170AC-100A-4EEE-849E-497A299EDE3F} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {667107A7-2CC7-4506-A6A6-223BB86290E7} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {19883A68-1293-46AE-98FD-8C559D414EFD} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {81715711-5517-422C-B746-6F98FE1245AE} = {CB38DFD9-956F-4999-A866-C348FF706C28} + {21CD6C35-65E2-414A-B9A1-22A0DD57977A} = {10E82325-75BE-4338-9288-BA4319D1502F} + {AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9} = {10E82325-75BE-4338-9288-BA4319D1502F} + {CD3D6F5B-0500-4035-A60A-592A2E231011} = {10E82325-75BE-4338-9288-BA4319D1502F} + {9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0} = {10E82325-75BE-4338-9288-BA4319D1502F} + {78971B06-2519-45B7-B761-C8A30C168EBE} = {10E82325-75BE-4338-9288-BA4319D1502F} + {C76753D0-F564-45E9-AA60-A846EFE0A414} = {10E82325-75BE-4338-9288-BA4319D1502F} + {5A9310B4-82AB-46F8-83C1-72D21A6A761F} = {10E82325-75BE-4338-9288-BA4319D1502F} + {DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B} = {10E82325-75BE-4338-9288-BA4319D1502F} + {B6D30918-C1B7-4225-A809-E13A5817DE22} = {10E82325-75BE-4338-9288-BA4319D1502F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB26F7AD-3279-4BBB-B33A-485CBF2B0787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB26F7AD-3279-4BBB-B33A-485CBF2B0787}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB26F7AD-3279-4BBB-B33A-485CBF2B0787}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB26F7AD-3279-4BBB-B33A-485CBF2B0787}.Release|Any CPU.Build.0 = Release|Any CPU - {802F8E4B-C890-4312-B8A1-BF0201C7F949}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {802F8E4B-C890-4312-B8A1-BF0201C7F949}.Debug|Any CPU.Build.0 = Debug|Any CPU - {802F8E4B-C890-4312-B8A1-BF0201C7F949}.Release|Any CPU.ActiveCfg = Release|Any CPU - {802F8E4B-C890-4312-B8A1-BF0201C7F949}.Release|Any CPU.Build.0 = Release|Any CPU - {DE244209-5EC7-47DD-8EC9-7B634DFDA1B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE244209-5EC7-47DD-8EC9-7B634DFDA1B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE244209-5EC7-47DD-8EC9-7B634DFDA1B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE244209-5EC7-47DD-8EC9-7B634DFDA1B7}.Release|Any CPU.Build.0 = Release|Any CPU - {9BE95529-D00D-4D03-82F1-103891E17F28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9BE95529-D00D-4D03-82F1-103891E17F28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9BE95529-D00D-4D03-82F1-103891E17F28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9BE95529-D00D-4D03-82F1-103891E17F28}.Release|Any CPU.Build.0 = Release|Any CPU + {5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F5BF50A-689F-4A94-8EA5-26C8ADF1DA9A}.Release|Any CPU.Build.0 = Release|Any CPU + {950759B3-269E-4768-9107-4D1C3B0F9DC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {950759B3-269E-4768-9107-4D1C3B0F9DC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {950759B3-269E-4768-9107-4D1C3B0F9DC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {950759B3-269E-4768-9107-4D1C3B0F9DC8}.Release|Any CPU.Build.0 = Release|Any CPU + {21CD6C35-65E2-414A-B9A1-22A0DD57977A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21CD6C35-65E2-414A-B9A1-22A0DD57977A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21CD6C35-65E2-414A-B9A1-22A0DD57977A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21CD6C35-65E2-414A-B9A1-22A0DD57977A}.Release|Any CPU.Build.0 = Release|Any CPU + {7521082D-62A8-4B62-A6D0-E6A94B2BC8EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7521082D-62A8-4B62-A6D0-E6A94B2BC8EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7521082D-62A8-4B62-A6D0-E6A94B2BC8EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7521082D-62A8-4B62-A6D0-E6A94B2BC8EC}.Release|Any CPU.Build.0 = Release|Any CPU + {AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA9524B1-37B3-4A6D-B2D5-A6A2C910E1A9}.Release|Any CPU.Build.0 = Release|Any CPU + {BE9DB8BC-43B1-47A5-B232-FCAAE9D03251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE9DB8BC-43B1-47A5-B232-FCAAE9D03251}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE9DB8BC-43B1-47A5-B232-FCAAE9D03251}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE9DB8BC-43B1-47A5-B232-FCAAE9D03251}.Release|Any CPU.Build.0 = Release|Any CPU + {CD3D6F5B-0500-4035-A60A-592A2E231011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD3D6F5B-0500-4035-A60A-592A2E231011}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD3D6F5B-0500-4035-A60A-592A2E231011}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD3D6F5B-0500-4035-A60A-592A2E231011}.Release|Any CPU.Build.0 = Release|Any CPU + {19E7C366-8F61-4E7A-8C31-02FDDB26665A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E7C366-8F61-4E7A-8C31-02FDDB26665A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E7C366-8F61-4E7A-8C31-02FDDB26665A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E7C366-8F61-4E7A-8C31-02FDDB26665A}.Release|Any CPU.Build.0 = Release|Any CPU + {9F0655E7-42FE-4AE0-A351-5624C73A35AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F0655E7-42FE-4AE0-A351-5624C73A35AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F0655E7-42FE-4AE0-A351-5624C73A35AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F0655E7-42FE-4AE0-A351-5624C73A35AC}.Release|Any CPU.Build.0 = Release|Any CPU + {9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A8C0B86-1CA3-4FFE-86FC-9EF0A733BEC0}.Release|Any CPU.Build.0 = Release|Any CPU + {4A6F459B-FBFE-44D9-9F52-944302D6D027}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A6F459B-FBFE-44D9-9F52-944302D6D027}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A6F459B-FBFE-44D9-9F52-944302D6D027}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A6F459B-FBFE-44D9-9F52-944302D6D027}.Release|Any CPU.Build.0 = Release|Any CPU + {78971B06-2519-45B7-B761-C8A30C168EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78971B06-2519-45B7-B761-C8A30C168EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78971B06-2519-45B7-B761-C8A30C168EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78971B06-2519-45B7-B761-C8A30C168EBE}.Release|Any CPU.Build.0 = Release|Any CPU + {BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDC4E2D9-627A-4DE2-BF31-A95351C1CB7C}.Release|Any CPU.Build.0 = Release|Any CPU + {C76753D0-F564-45E9-AA60-A846EFE0A414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C76753D0-F564-45E9-AA60-A846EFE0A414}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C76753D0-F564-45E9-AA60-A846EFE0A414}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C76753D0-F564-45E9-AA60-A846EFE0A414}.Release|Any CPU.Build.0 = Release|Any CPU + {1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1958AE1D-55EA-4550-BE58-0AFDBB2EDB8A}.Release|Any CPU.Build.0 = Release|Any CPU + {5A9310B4-82AB-46F8-83C1-72D21A6A761F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A9310B4-82AB-46F8-83C1-72D21A6A761F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A9310B4-82AB-46F8-83C1-72D21A6A761F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A9310B4-82AB-46F8-83C1-72D21A6A761F}.Release|Any CPU.Build.0 = Release|Any CPU + {FCF170AC-100A-4EEE-849E-497A299EDE3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCF170AC-100A-4EEE-849E-497A299EDE3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCF170AC-100A-4EEE-849E-497A299EDE3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCF170AC-100A-4EEE-849E-497A299EDE3F}.Release|Any CPU.Build.0 = Release|Any CPU + {DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA43AA92-35BA-4B84-BAA2-C3BB56C8BB3B}.Release|Any CPU.Build.0 = Release|Any CPU + {667107A7-2CC7-4506-A6A6-223BB86290E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {667107A7-2CC7-4506-A6A6-223BB86290E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {667107A7-2CC7-4506-A6A6-223BB86290E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {667107A7-2CC7-4506-A6A6-223BB86290E7}.Release|Any CPU.Build.0 = Release|Any CPU + {19883A68-1293-46AE-98FD-8C559D414EFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19883A68-1293-46AE-98FD-8C559D414EFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19883A68-1293-46AE-98FD-8C559D414EFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19883A68-1293-46AE-98FD-8C559D414EFD}.Release|Any CPU.Build.0 = Release|Any CPU + {B6D30918-C1B7-4225-A809-E13A5817DE22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6D30918-C1B7-4225-A809-E13A5817DE22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6D30918-C1B7-4225-A809-E13A5817DE22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6D30918-C1B7-4225-A809-E13A5817DE22}.Release|Any CPU.Build.0 = Release|Any CPU + {A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3DAEDEB-BEB5-4E93-9F34-0DCA5813F971}.Release|Any CPU.Build.0 = Release|Any CPU + {81715711-5517-422C-B746-6F98FE1245AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81715711-5517-422C-B746-6F98FE1245AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81715711-5517-422C-B746-6F98FE1245AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81715711-5517-422C-B746-6F98FE1245AE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CB26F7AD-3279-4BBB-B33A-485CBF2B0787} = {20ACD179-AFDD-456A-9D27-5F4B036BA5AB} - {802F8E4B-C890-4312-B8A1-BF0201C7F949} = {02F50816-753B-4542-BDB9-80B6AD32D31F} - {DE244209-5EC7-47DD-8EC9-7B634DFDA1B7} = {A56177C8-32A9-4C5A-9AE8-312F209B3F32} - {9BE95529-D00D-4D03-82F1-103891E17F28} = {A56177C8-32A9-4C5A-9AE8-312F209B3F32} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {67FE26A1-86FB-4A0F-83E4-3CD98E58DF2E} + SolutionGuid = {38ED157C-646E-43DD-B8B0-562DD5715E27} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs index a3d22ca18e2d..83de60b556ab 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Linq; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Internal; @@ -230,44 +230,45 @@ private void SetEntry(CacheEntry entry) } } - StartScanForExpiredItems(utcNow); + StartScanForExpiredItemsIfNeeded(utcNow); } /// public bool TryGetValue(object key, out object result) { ValidateCacheKey(key); - CheckDisposed(); - result = null; DateTimeOffset utcNow = _options.Clock.UtcNow; - bool found = false; if (_entries.TryGetValue(key, out CacheEntry entry)) { // Check if expired due to expiration tokens, timers, etc. and if so, remove it. // Allow a stale Replaced value to be returned due to concurrent calls to SetExpired during SetEntry. - if (entry.CheckExpired(utcNow) && entry.EvictionReason != EvictionReason.Replaced) - { - // TODO: For efficiency queue this up for batch removal - RemoveEntry(entry); - } - else + if (!entry.CheckExpired(utcNow) || entry.EvictionReason == EvictionReason.Replaced) { - found = true; entry.LastAccessed = utcNow; result = entry.Value; // When this entry is retrieved in the scope of creating another entry, // that entry needs a copy of these expiration tokens. entry.PropagateOptions(CacheEntryHelper.Current); + + StartScanForExpiredItemsIfNeeded(utcNow); + + return true; + } + else + { + // TODO: For efficiency queue this up for batch removal + RemoveEntry(entry); } } - StartScanForExpiredItems(utcNow); + StartScanForExpiredItemsIfNeeded(utcNow); - return found; + result = null; + return false; } /// @@ -287,7 +288,7 @@ public void Remove(object key) entry.InvokeEvictionCallbacks(); } - StartScanForExpiredItems(); + StartScanForExpiredItemsIfNeeded(_options.Clock.UtcNow); } private void RemoveEntry(CacheEntry entry) @@ -306,18 +307,22 @@ private void EntryExpired(CacheEntry entry) { // TODO: For efficiency consider processing these expirations in batches. RemoveEntry(entry); - StartScanForExpiredItems(); + StartScanForExpiredItemsIfNeeded(_options.Clock.UtcNow); } // Called by multiple actions to see how long it's been since we last checked for expired items. // If sufficient time has elapsed then a scan is initiated on a background task. - private void StartScanForExpiredItems(DateTimeOffset? utcNow = null) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void StartScanForExpiredItemsIfNeeded(DateTimeOffset utcNow) { - // Since fetching time is expensive, minimize it in the hot paths - DateTimeOffset now = utcNow ?? _options.Clock.UtcNow; - if (_options.ExpirationScanFrequency < now - _lastExpirationScan) + if (_options.ExpirationScanFrequency < utcNow - _lastExpirationScan) { - _lastExpirationScan = now; + ScheduleTask(utcNow); + } + + void ScheduleTask(DateTimeOffset utcNow) + { + _lastExpirationScan = utcNow; Task.Factory.StartNew(state => ScanForExpiredItems((MemoryCache)state), this, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); } @@ -325,7 +330,7 @@ private void StartScanForExpiredItems(DateTimeOffset? utcNow = null) private static void ScanForExpiredItems(MemoryCache cache) { - DateTimeOffset now = cache._options.Clock.UtcNow; + DateTimeOffset now = cache._lastExpirationScan = cache._options.Clock.UtcNow; foreach (CacheEntry entry in cache._entries.Values) { if (entry.CheckExpired(now)) @@ -445,35 +450,36 @@ private void Compact(long removalSizeTarget, Func computeEntry { RemoveEntry(entry); } - } - /// Policy: - /// 1. Least recently used objects. - /// ?. Items with the soonest absolute expiration. - /// ?. Items with the soonest sliding expiration. - /// ?. Larger objects - estimated by object graph size, inaccurate. - private void ExpirePriorityBucket(ref long removedSize, long removalSizeTarget, Func computeEntrySize, List entriesToRemove, List priorityEntries) - { - // Do we meet our quota by just removing expired entries? - if (removalSizeTarget <= removedSize) + // Policy: + // 1. Least recently used objects. + // ?. Items with the soonest absolute expiration. + // ?. Items with the soonest sliding expiration. + // ?. Larger objects - estimated by object graph size, inaccurate. + static void ExpirePriorityBucket(ref long removedSize, long removalSizeTarget, Func computeEntrySize, List entriesToRemove, List priorityEntries) { - // No-op, we've met quota - return; - } - - // Expire enough entries to reach our goal - // TODO: Refine policy + // Do we meet our quota by just removing expired entries? + if (removalSizeTarget <= removedSize) + { + // No-op, we've met quota + return; + } - // LRU - foreach (CacheEntry entry in priorityEntries.OrderBy(entry => entry.LastAccessed)) - { - entry.SetExpired(EvictionReason.Capacity); - entriesToRemove.Add(entry); - removedSize += computeEntrySize(entry); + // Expire enough entries to reach our goal + // TODO: Refine policy - if (removalSizeTarget <= removedSize) + // LRU + priorityEntries.Sort((e1, e2) => e1.LastAccessed.CompareTo(e2.LastAccessed)); + foreach (CacheEntry entry in priorityEntries) { - break; + entry.SetExpired(EvictionReason.Capacity); + entriesToRemove.Add(entry); + removedSize += computeEntrySize(entry); + + if (removalSizeTarget <= removedSize) + { + break; + } } } } @@ -500,16 +506,20 @@ private void CheckDisposed() { if (_disposed) { - throw new ObjectDisposedException(typeof(MemoryCache).FullName); + Throw(); } + + static void Throw() => throw new ObjectDisposedException(typeof(MemoryCache).FullName); } private static void ValidateCacheKey(object key) { if (key == null) { - throw new ArgumentNullException(nameof(key)); + Throw(); } + + static void Throw() => throw new ArgumentNullException(nameof(key)); } } } diff --git a/src/libraries/Microsoft.Extensions.Configuration.Abstractions/Microsoft.Extensions.Configuration.Abstractions.sln b/src/libraries/Microsoft.Extensions.Configuration.Abstractions/Microsoft.Extensions.Configuration.Abstractions.sln index 3a0cd7ec9fcb..9671f7b7c885 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Abstractions/Microsoft.Extensions.Configuration.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.Abstractions/Microsoft.Extensions.Configuration.Abstractions.sln @@ -1,39 +1,63 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{483CC058-D1EA-4243-9342-101A5D68CE52}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{9F7A72E7-041E-47C8-ABD7-C5EF028AFECF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F6D3FD68-6B5D-44C2-A74C-3B98AEB5C2C6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{CAA4A23C-2C58-4C93-87BA-CCC87260F20A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{B0857D51-B043-4C7D-8112-1B639C1B1DA6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{711119F1-7759-49B9-8B66-EF72F4163729}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{600D61CB-E996-44CC-A64C-9EC10601EF64}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{EEE9E1A2-8512-4154-8B5D-532244B896CD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{63E86A57-8F84-435E-8D03-5464070A276F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{D097AD3E-419C-4209-A7D0-52A53A16CED6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E15C1590-2232-4D14-9C2B-A6BC185708CA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0F1346AA-E583-4F60-97AE-AA27886116EE}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {9F7A72E7-041E-47C8-ABD7-C5EF028AFECF} = {E15C1590-2232-4D14-9C2B-A6BC185708CA} + {711119F1-7759-49B9-8B66-EF72F4163729} = {E15C1590-2232-4D14-9C2B-A6BC185708CA} + {63E86A57-8F84-435E-8D03-5464070A276F} = {E15C1590-2232-4D14-9C2B-A6BC185708CA} + {CAA4A23C-2C58-4C93-87BA-CCC87260F20A} = {0F1346AA-E583-4F60-97AE-AA27886116EE} + {EEE9E1A2-8512-4154-8B5D-532244B896CD} = {0F1346AA-E583-4F60-97AE-AA27886116EE} + {D097AD3E-419C-4209-A7D0-52A53A16CED6} = {0F1346AA-E583-4F60-97AE-AA27886116EE} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B0857D51-B043-4C7D-8112-1B639C1B1DA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0857D51-B043-4C7D-8112-1B639C1B1DA6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0857D51-B043-4C7D-8112-1B639C1B1DA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0857D51-B043-4C7D-8112-1B639C1B1DA6}.Release|Any CPU.Build.0 = Release|Any CPU - {600D61CB-E996-44CC-A64C-9EC10601EF64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {600D61CB-E996-44CC-A64C-9EC10601EF64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {600D61CB-E996-44CC-A64C-9EC10601EF64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {600D61CB-E996-44CC-A64C-9EC10601EF64}.Release|Any CPU.Build.0 = Release|Any CPU + {9F7A72E7-041E-47C8-ABD7-C5EF028AFECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F7A72E7-041E-47C8-ABD7-C5EF028AFECF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F7A72E7-041E-47C8-ABD7-C5EF028AFECF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F7A72E7-041E-47C8-ABD7-C5EF028AFECF}.Release|Any CPU.Build.0 = Release|Any CPU + {CAA4A23C-2C58-4C93-87BA-CCC87260F20A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAA4A23C-2C58-4C93-87BA-CCC87260F20A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAA4A23C-2C58-4C93-87BA-CCC87260F20A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAA4A23C-2C58-4C93-87BA-CCC87260F20A}.Release|Any CPU.Build.0 = Release|Any CPU + {711119F1-7759-49B9-8B66-EF72F4163729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {711119F1-7759-49B9-8B66-EF72F4163729}.Debug|Any CPU.Build.0 = Debug|Any CPU + {711119F1-7759-49B9-8B66-EF72F4163729}.Release|Any CPU.ActiveCfg = Release|Any CPU + {711119F1-7759-49B9-8B66-EF72F4163729}.Release|Any CPU.Build.0 = Release|Any CPU + {EEE9E1A2-8512-4154-8B5D-532244B896CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEE9E1A2-8512-4154-8B5D-532244B896CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEE9E1A2-8512-4154-8B5D-532244B896CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEE9E1A2-8512-4154-8B5D-532244B896CD}.Release|Any CPU.Build.0 = Release|Any CPU + {63E86A57-8F84-435E-8D03-5464070A276F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63E86A57-8F84-435E-8D03-5464070A276F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63E86A57-8F84-435E-8D03-5464070A276F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63E86A57-8F84-435E-8D03-5464070A276F}.Release|Any CPU.Build.0 = Release|Any CPU + {D097AD3E-419C-4209-A7D0-52A53A16CED6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D097AD3E-419C-4209-A7D0-52A53A16CED6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D097AD3E-419C-4209-A7D0-52A53A16CED6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D097AD3E-419C-4209-A7D0-52A53A16CED6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B0857D51-B043-4C7D-8112-1B639C1B1DA6} = {483CC058-D1EA-4243-9342-101A5D68CE52} - {600D61CB-E996-44CC-A64C-9EC10601EF64} = {F6D3FD68-6B5D-44C2-A74C-3B98AEB5C2C6} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {05338E37-3D76-4069-803C-402FF29AD024} + SolutionGuid = {35095991-4720-4061-A85F-72B39261D8C0} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.Binder/Microsoft.Extensions.Configuration.Binder.sln b/src/libraries/Microsoft.Extensions.Configuration.Binder/Microsoft.Extensions.Configuration.Binder.sln index a25d7b83e497..408c2b9efc7b 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Binder/Microsoft.Extensions.Configuration.Binder.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.Binder/Microsoft.Extensions.Configuration.Binder.sln @@ -1,55 +1,142 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{19975C7D-D7E2-4551-84BF-8522B6FC30C3}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5FB89358-3575-45AA-ACFE-EF3598B9AB7E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CC762868-69E6-47E7-912C-FFF27A07C5F3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{CB09105A-F475-4A91-8836-434FA175F4F9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9CAA4208-C432-49B4-8661-4DDE821EF154}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{958E5946-FD21-4167-B471-8CEC2CB8D75D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "ref\Microsoft.Extensions.Configuration.Binder.csproj", "{C6976CEC-09C6-430E-8576-B0AFE6BAD263}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "ref\Microsoft.Extensions.Configuration.Binder.csproj", "{F05212B2-FD66-4E8E-AEA0-FAC06A0D6808}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "src\Microsoft.Extensions.Configuration.Binder.csproj", "{220E2B81-5D96-4999-A3CA-D9F681B3C8F4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "src\Microsoft.Extensions.Configuration.Binder.csproj", "{8C7443D8-864A-4DAE-8835-108580C289F5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder.Tests", "tests\Microsoft.Extensions.Configuration.Binder.Tests.csproj", "{6AAC9F65-3F45-41B0-991F-530F652E53AD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder.Tests", "tests\Microsoft.Extensions.Configuration.Binder.Tests.csproj", "{FD4C7C59-55A7-42C8-9B75-43728FAFDD84}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{39D99379-E744-4295-9CA8-B5C6DE286EA0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{5177A566-05AF-4DF0-93CC-D2876F7E6EBB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{42DAD2C1-0FD4-442E-B218-9CDACE6EEB01}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{091844B8-A79E-4DF4-9A73-B2F01968E982}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{9B21B87F-084B-411B-A513-C22B5B961BF3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{A590DC78-8238-47C6-B35C-921642717326}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8D6A2F57-CCA3-4845-9569-29560465B6AC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9E2A4D82-0CBF-4908-8801-11B1C209EB23}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{77449CF5-849D-4525-AECA-5A4D4E730BC9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{578CAB10-C89F-494C-A5F4-514CDD29945D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{09D0E545-ECD4-461C-A34E-3DD8A5E8D0F3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{05C5425E-6DB2-4F5E-912F-70B236E80509}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{46033392-C607-4795-9838-6CF810C5E382}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5FB89358-3575-45AA-ACFE-EF3598B9AB7E} = {09D0E545-ECD4-461C-A34E-3DD8A5E8D0F3} + {FD4C7C59-55A7-42C8-9B75-43728FAFDD84} = {09D0E545-ECD4-461C-A34E-3DD8A5E8D0F3} + {CB09105A-F475-4A91-8836-434FA175F4F9} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {F05212B2-FD66-4E8E-AEA0-FAC06A0D6808} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {39D99379-E744-4295-9CA8-B5C6DE286EA0} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {42DAD2C1-0FD4-442E-B218-9CDACE6EEB01} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {A590DC78-8238-47C6-B35C-921642717326} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {8D6A2F57-CCA3-4845-9569-29560465B6AC} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {77449CF5-849D-4525-AECA-5A4D4E730BC9} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {578CAB10-C89F-494C-A5F4-514CDD29945D} = {05C5425E-6DB2-4F5E-912F-70B236E80509} + {958E5946-FD21-4167-B471-8CEC2CB8D75D} = {46033392-C607-4795-9838-6CF810C5E382} + {8C7443D8-864A-4DAE-8835-108580C289F5} = {46033392-C607-4795-9838-6CF810C5E382} + {5177A566-05AF-4DF0-93CC-D2876F7E6EBB} = {46033392-C607-4795-9838-6CF810C5E382} + {091844B8-A79E-4DF4-9A73-B2F01968E982} = {46033392-C607-4795-9838-6CF810C5E382} + {9B21B87F-084B-411B-A513-C22B5B961BF3} = {46033392-C607-4795-9838-6CF810C5E382} + {9E2A4D82-0CBF-4908-8801-11B1C209EB23} = {46033392-C607-4795-9838-6CF810C5E382} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C6976CEC-09C6-430E-8576-B0AFE6BAD263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6976CEC-09C6-430E-8576-B0AFE6BAD263}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6976CEC-09C6-430E-8576-B0AFE6BAD263}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6976CEC-09C6-430E-8576-B0AFE6BAD263}.Release|Any CPU.Build.0 = Release|Any CPU - {220E2B81-5D96-4999-A3CA-D9F681B3C8F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {220E2B81-5D96-4999-A3CA-D9F681B3C8F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {220E2B81-5D96-4999-A3CA-D9F681B3C8F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {220E2B81-5D96-4999-A3CA-D9F681B3C8F4}.Release|Any CPU.Build.0 = Release|Any CPU - {6AAC9F65-3F45-41B0-991F-530F652E53AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AAC9F65-3F45-41B0-991F-530F652E53AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AAC9F65-3F45-41B0-991F-530F652E53AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AAC9F65-3F45-41B0-991F-530F652E53AD}.Release|Any CPU.Build.0 = Release|Any CPU - {69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83}.Release|Any CPU.Build.0 = Release|Any CPU + {5FB89358-3575-45AA-ACFE-EF3598B9AB7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FB89358-3575-45AA-ACFE-EF3598B9AB7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FB89358-3575-45AA-ACFE-EF3598B9AB7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FB89358-3575-45AA-ACFE-EF3598B9AB7E}.Release|Any CPU.Build.0 = Release|Any CPU + {CB09105A-F475-4A91-8836-434FA175F4F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB09105A-F475-4A91-8836-434FA175F4F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB09105A-F475-4A91-8836-434FA175F4F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB09105A-F475-4A91-8836-434FA175F4F9}.Release|Any CPU.Build.0 = Release|Any CPU + {958E5946-FD21-4167-B471-8CEC2CB8D75D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {958E5946-FD21-4167-B471-8CEC2CB8D75D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {958E5946-FD21-4167-B471-8CEC2CB8D75D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {958E5946-FD21-4167-B471-8CEC2CB8D75D}.Release|Any CPU.Build.0 = Release|Any CPU + {F05212B2-FD66-4E8E-AEA0-FAC06A0D6808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F05212B2-FD66-4E8E-AEA0-FAC06A0D6808}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F05212B2-FD66-4E8E-AEA0-FAC06A0D6808}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F05212B2-FD66-4E8E-AEA0-FAC06A0D6808}.Release|Any CPU.Build.0 = Release|Any CPU + {8C7443D8-864A-4DAE-8835-108580C289F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C7443D8-864A-4DAE-8835-108580C289F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C7443D8-864A-4DAE-8835-108580C289F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C7443D8-864A-4DAE-8835-108580C289F5}.Release|Any CPU.Build.0 = Release|Any CPU + {FD4C7C59-55A7-42C8-9B75-43728FAFDD84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD4C7C59-55A7-42C8-9B75-43728FAFDD84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD4C7C59-55A7-42C8-9B75-43728FAFDD84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD4C7C59-55A7-42C8-9B75-43728FAFDD84}.Release|Any CPU.Build.0 = Release|Any CPU + {39D99379-E744-4295-9CA8-B5C6DE286EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39D99379-E744-4295-9CA8-B5C6DE286EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39D99379-E744-4295-9CA8-B5C6DE286EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39D99379-E744-4295-9CA8-B5C6DE286EA0}.Release|Any CPU.Build.0 = Release|Any CPU + {5177A566-05AF-4DF0-93CC-D2876F7E6EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5177A566-05AF-4DF0-93CC-D2876F7E6EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5177A566-05AF-4DF0-93CC-D2876F7E6EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5177A566-05AF-4DF0-93CC-D2876F7E6EBB}.Release|Any CPU.Build.0 = Release|Any CPU + {42DAD2C1-0FD4-442E-B218-9CDACE6EEB01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42DAD2C1-0FD4-442E-B218-9CDACE6EEB01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42DAD2C1-0FD4-442E-B218-9CDACE6EEB01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42DAD2C1-0FD4-442E-B218-9CDACE6EEB01}.Release|Any CPU.Build.0 = Release|Any CPU + {091844B8-A79E-4DF4-9A73-B2F01968E982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {091844B8-A79E-4DF4-9A73-B2F01968E982}.Debug|Any CPU.Build.0 = Debug|Any CPU + {091844B8-A79E-4DF4-9A73-B2F01968E982}.Release|Any CPU.ActiveCfg = Release|Any CPU + {091844B8-A79E-4DF4-9A73-B2F01968E982}.Release|Any CPU.Build.0 = Release|Any CPU + {3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C288A6A-17C9-40A9-A1AA-E0FC3927DFE3}.Release|Any CPU.Build.0 = Release|Any CPU + {9B21B87F-084B-411B-A513-C22B5B961BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B21B87F-084B-411B-A513-C22B5B961BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B21B87F-084B-411B-A513-C22B5B961BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B21B87F-084B-411B-A513-C22B5B961BF3}.Release|Any CPU.Build.0 = Release|Any CPU + {A590DC78-8238-47C6-B35C-921642717326}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A590DC78-8238-47C6-B35C-921642717326}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A590DC78-8238-47C6-B35C-921642717326}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A590DC78-8238-47C6-B35C-921642717326}.Release|Any CPU.Build.0 = Release|Any CPU + {8D6A2F57-CCA3-4845-9569-29560465B6AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D6A2F57-CCA3-4845-9569-29560465B6AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D6A2F57-CCA3-4845-9569-29560465B6AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D6A2F57-CCA3-4845-9569-29560465B6AC}.Release|Any CPU.Build.0 = Release|Any CPU + {9E2A4D82-0CBF-4908-8801-11B1C209EB23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E2A4D82-0CBF-4908-8801-11B1C209EB23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E2A4D82-0CBF-4908-8801-11B1C209EB23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E2A4D82-0CBF-4908-8801-11B1C209EB23}.Release|Any CPU.Build.0 = Release|Any CPU + {77449CF5-849D-4525-AECA-5A4D4E730BC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77449CF5-849D-4525-AECA-5A4D4E730BC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77449CF5-849D-4525-AECA-5A4D4E730BC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77449CF5-849D-4525-AECA-5A4D4E730BC9}.Release|Any CPU.Build.0 = Release|Any CPU + {578CAB10-C89F-494C-A5F4-514CDD29945D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {578CAB10-C89F-494C-A5F4-514CDD29945D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {578CAB10-C89F-494C-A5F4-514CDD29945D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {578CAB10-C89F-494C-A5F4-514CDD29945D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C6976CEC-09C6-430E-8576-B0AFE6BAD263} = {19975C7D-D7E2-4551-84BF-8522B6FC30C3} - {220E2B81-5D96-4999-A3CA-D9F681B3C8F4} = {CC762868-69E6-47E7-912C-FFF27A07C5F3} - {6AAC9F65-3F45-41B0-991F-530F652E53AD} = {9CAA4208-C432-49B4-8661-4DDE821EF154} - {69C2ABE2-DBFD-4E7E-A9F2-87D74BB83D83} = {9CAA4208-C432-49B4-8661-4DDE821EF154} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4B5E9104-9917-47A2-B17C-D420E6A13467} + SolutionGuid = {A97DC4BF-32F0-46E8-B91C-84D1E7F2A27E} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.Binder/src/ConfigurationBinder.cs b/src/libraries/Microsoft.Extensions.Configuration.Binder/src/ConfigurationBinder.cs index 171a8dfa69de..4d2e5cf4889a 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Binder/src/ConfigurationBinder.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Binder/src/ConfigurationBinder.cs @@ -14,6 +14,8 @@ namespace Microsoft.Extensions.Configuration /// public static class ConfigurationBinder { + private const BindingFlags DeclaredOnlyLookup = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + /// /// Attempts to bind the configuration instance to a new instance of type T. /// If this configuration section has a value, that will be used. @@ -179,7 +181,7 @@ private static void BindNonScalar(this IConfiguration configuration, object inst { if (instance != null) { - foreach (PropertyInfo property in GetAllProperties(instance.GetType().GetTypeInfo())) + foreach (PropertyInfo property in GetAllProperties(instance.GetType())) { BindProperty(property, instance, configuration, options); } @@ -214,20 +216,18 @@ private static void BindProperty(PropertyInfo property, object instance, IConfig } } - private static object BindToCollection(TypeInfo typeInfo, IConfiguration config, BinderOptions options) + private static object BindToCollection(Type type, IConfiguration config, BinderOptions options) { - Type type = typeof(List<>).MakeGenericType(typeInfo.GenericTypeArguments[0]); - object instance = Activator.CreateInstance(type); - BindCollection(instance, type, config, options); + Type genericType = typeof(List<>).MakeGenericType(type.GenericTypeArguments[0]); + object instance = Activator.CreateInstance(genericType); + BindCollection(instance, genericType, config, options); return instance; } // Try to create an array/dictionary instance to back various collection interfaces private static object AttemptBindToCollectionInterfaces(Type type, IConfiguration config, BinderOptions options) { - TypeInfo typeInfo = type.GetTypeInfo(); - - if (!typeInfo.IsInterface) + if (!type.IsInterface) { return null; } @@ -236,13 +236,13 @@ private static object AttemptBindToCollectionInterfaces(Type type, IConfiguratio if (collectionInterface != null) { // IEnumerable is guaranteed to have exactly one parameter - return BindToCollection(typeInfo, config, options); + return BindToCollection(type, config, options); } collectionInterface = FindOpenGenericInterface(typeof(IReadOnlyDictionary<,>), type); if (collectionInterface != null) { - Type dictionaryType = typeof(Dictionary<,>).MakeGenericType(typeInfo.GenericTypeArguments[0], typeInfo.GenericTypeArguments[1]); + Type dictionaryType = typeof(Dictionary<,>).MakeGenericType(type.GenericTypeArguments[0], type.GenericTypeArguments[1]); object instance = Activator.CreateInstance(dictionaryType); BindDictionary(instance, dictionaryType, config, options); return instance; @@ -251,7 +251,7 @@ private static object AttemptBindToCollectionInterfaces(Type type, IConfiguratio collectionInterface = FindOpenGenericInterface(typeof(IDictionary<,>), type); if (collectionInterface != null) { - object instance = Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(typeInfo.GenericTypeArguments[0], typeInfo.GenericTypeArguments[1])); + object instance = Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(type.GenericTypeArguments[0], type.GenericTypeArguments[1])); BindDictionary(instance, collectionInterface, config, options); return instance; } @@ -260,21 +260,21 @@ private static object AttemptBindToCollectionInterfaces(Type type, IConfiguratio if (collectionInterface != null) { // IReadOnlyCollection is guaranteed to have exactly one parameter - return BindToCollection(typeInfo, config, options); + return BindToCollection(type, config, options); } collectionInterface = FindOpenGenericInterface(typeof(ICollection<>), type); if (collectionInterface != null) { // ICollection is guaranteed to have exactly one parameter - return BindToCollection(typeInfo, config, options); + return BindToCollection(type, config, options); } collectionInterface = FindOpenGenericInterface(typeof(IEnumerable<>), type); if (collectionInterface != null) { // IEnumerable is guaranteed to have exactly one parameter - return BindToCollection(typeInfo, config, options); + return BindToCollection(type, config, options); } return null; @@ -349,26 +349,24 @@ private static object BindInstance(Type type, object instance, IConfiguration co private static object CreateInstance(Type type) { - TypeInfo typeInfo = type.GetTypeInfo(); - - if (typeInfo.IsInterface || typeInfo.IsAbstract) + if (type.IsInterface || type.IsAbstract) { throw new InvalidOperationException(SR.Format(SR.Error_CannotActivateAbstractOrInterface, type)); } if (type.IsArray) { - if (typeInfo.GetArrayRank() > 1) + if (type.GetArrayRank() > 1) { throw new InvalidOperationException(SR.Format(SR.Error_UnsupportedMultidimensionalArray, type)); } - return Array.CreateInstance(typeInfo.GetElementType(), 0); + return Array.CreateInstance(type.GetElementType(), 0); } - if (!typeInfo.IsValueType) + if (!type.IsValueType) { - bool hasDefaultConstructor = typeInfo.DeclaredConstructors.Any(ctor => ctor.IsPublic && ctor.GetParameters().Length == 0); + bool hasDefaultConstructor = type.GetConstructors(DeclaredOnlyLookup).Any(ctor => ctor.IsPublic && ctor.GetParameters().Length == 0); if (!hasDefaultConstructor) { throw new InvalidOperationException(SR.Format(SR.Error_MissingParameterlessConstructor, type)); @@ -387,12 +385,10 @@ private static object CreateInstance(Type type) private static void BindDictionary(object dictionary, Type dictionaryType, IConfiguration config, BinderOptions options) { - TypeInfo typeInfo = dictionaryType.GetTypeInfo(); - // IDictionary is guaranteed to have exactly two parameters - Type keyType = typeInfo.GenericTypeArguments[0]; - Type valueType = typeInfo.GenericTypeArguments[1]; - bool keyTypeIsEnum = keyType.GetTypeInfo().IsEnum; + Type keyType = dictionaryType.GenericTypeArguments[0]; + Type valueType = dictionaryType.GenericTypeArguments[1]; + bool keyTypeIsEnum = keyType.IsEnum; if (keyType != typeof(string) && !keyTypeIsEnum) { @@ -400,7 +396,7 @@ private static void BindDictionary(object dictionary, Type dictionaryType, IConf return; } - PropertyInfo setter = typeInfo.GetDeclaredProperty("Item"); + PropertyInfo setter = dictionaryType.GetProperty("Item", DeclaredOnlyLookup); foreach (IConfigurationSection child in config.GetChildren()) { object item = BindInstance( @@ -426,11 +422,9 @@ private static void BindDictionary(object dictionary, Type dictionaryType, IConf private static void BindCollection(object collection, Type collectionType, IConfiguration config, BinderOptions options) { - TypeInfo typeInfo = collectionType.GetTypeInfo(); - // ICollection is guaranteed to have exactly one parameter - Type itemType = typeInfo.GenericTypeArguments[0]; - MethodInfo addMethod = typeInfo.GetDeclaredMethod("Add"); + Type itemType = collectionType.GenericTypeArguments[0]; + MethodInfo addMethod = collectionType.GetMethod("Add", DeclaredOnlyLookup); foreach (IConfigurationSection section in config.GetChildren()) { @@ -497,7 +491,7 @@ private static bool TryConvertValue(Type type, string value, string path, out ob return true; } - if (type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) { if (string.IsNullOrEmpty(value)) { @@ -550,17 +544,16 @@ private static object ConvertValue(Type type, string value, string path) private static Type FindOpenGenericInterface(Type expected, Type actual) { - TypeInfo actualTypeInfo = actual.GetTypeInfo(); - if (actualTypeInfo.IsGenericType && + if (actual.IsGenericType && actual.GetGenericTypeDefinition() == expected) { return actual; } - IEnumerable interfaces = actualTypeInfo.ImplementedInterfaces; + Type[] interfaces = actual.GetInterfaces(); foreach (Type interfaceType in interfaces) { - if (interfaceType.GetTypeInfo().IsGenericType && + if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition() == expected) { return interfaceType; @@ -569,16 +562,16 @@ private static Type FindOpenGenericInterface(Type expected, Type actual) return null; } - private static IEnumerable GetAllProperties(TypeInfo type) + private static IEnumerable GetAllProperties(Type type) { var allProperties = new List(); do { - allProperties.AddRange(type.DeclaredProperties); - type = type.BaseType.GetTypeInfo(); + allProperties.AddRange(type.GetProperties(DeclaredOnlyLookup)); + type = type.BaseType; } - while (type != typeof(object).GetTypeInfo()); + while (type != typeof(object)); return allProperties; } diff --git a/src/libraries/Microsoft.Extensions.Configuration.CommandLine/Microsoft.Extensions.Configuration.CommandLine.sln b/src/libraries/Microsoft.Extensions.Configuration.CommandLine/Microsoft.Extensions.Configuration.CommandLine.sln index 3bbfcc0dfcf0..c8312e76feda 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.CommandLine/Microsoft.Extensions.Configuration.CommandLine.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.CommandLine/Microsoft.Extensions.Configuration.CommandLine.sln @@ -1,55 +1,156 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BDE47CA9-FA28-4B80-97AD-C1ADA07E109F}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C93CA38A-6881-4A73-B1C8-033474857135}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1E7E6E50-5748-4E9A-A36D-5DFF485957A3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{119684C3-F2BF-440E-A832-1ACA0D007F58}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9361978B-A180-4DC2-AD57-82D7B94964CD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{3752E6AE-0EBD-4A82-9FCF-375A39F99F0F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "ref\Microsoft.Extensions.Configuration.CommandLine.csproj", "{657CD674-B225-4D8B-BFF0-41F4B0203FB5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "src\Microsoft.Extensions.Configuration.CommandLine.csproj", "{D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{4BB9602E-5233-4399-A4B5-D4E8AD38741B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine.Tests", "tests\Microsoft.Extensions.Configuration.CommandLine.Tests.csproj", "{2A8DAEB6-95DE-47F1-88E0-42675279FD87}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "ref\Microsoft.Extensions.Configuration.CommandLine.csproj", "{52D93DFA-9CC9-4C5B-9A37-46391B04E61F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{84B6A2DB-2E4B-49B7-98B0-B4032A04585C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "src\Microsoft.Extensions.Configuration.CommandLine.csproj", "{76656E96-A647-4098-934D-8F752A3F2FD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine.Tests", "tests\Microsoft.Extensions.Configuration.CommandLine.Tests.csproj", "{3BFDB74F-44FE-4521-86A7-AB52FB261AA6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{15B92D3C-B29E-488B-90FC-324167935409}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{9EF3E081-1D2F-40CC-B2B1-C7F05E261C21}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{40653EBF-E569-4F85-843D-FFABBB70CFC8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{27EB8901-D9CB-4814-8565-8D2CE564F2C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{384EE35D-2668-42B6-8615-6BD6C4AA5273}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{DD7282C4-85F7-4C0F-9E43-1EC487A5FD20}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{140853AE-EDA5-4914-951A-8323918A9A11}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3746E645-BFCF-4EF1-88E1-CF0D27805608}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{2DC76A30-E31B-42C2-AA6B-F022FFA49BAD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{4907F731-1D47-46A8-9FBD-7AD0457BE47F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{FAF83B4D-6CF1-4824-998D-D9BFCC226DB3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6EB9B342-A077-4E6B-B021-FB01A9CC02C4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{734D4174-F73E-46A0-B379-BB9FDD25C0FB}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C93CA38A-6881-4A73-B1C8-033474857135} = {FAF83B4D-6CF1-4824-998D-D9BFCC226DB3} + {3BFDB74F-44FE-4521-86A7-AB52FB261AA6} = {FAF83B4D-6CF1-4824-998D-D9BFCC226DB3} + {119684C3-F2BF-440E-A832-1ACA0D007F58} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {52D93DFA-9CC9-4C5B-9A37-46391B04E61F} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {15B92D3C-B29E-488B-90FC-324167935409} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {40653EBF-E569-4F85-843D-FFABBB70CFC8} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {384EE35D-2668-42B6-8615-6BD6C4AA5273} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {140853AE-EDA5-4914-951A-8323918A9A11} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {3746E645-BFCF-4EF1-88E1-CF0D27805608} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {2DC76A30-E31B-42C2-AA6B-F022FFA49BAD} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {4907F731-1D47-46A8-9FBD-7AD0457BE47F} = {6EB9B342-A077-4E6B-B021-FB01A9CC02C4} + {3752E6AE-0EBD-4A82-9FCF-375A39F99F0F} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {4BB9602E-5233-4399-A4B5-D4E8AD38741B} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {76656E96-A647-4098-934D-8F752A3F2FD6} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {9EF3E081-1D2F-40CC-B2B1-C7F05E261C21} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {27EB8901-D9CB-4814-8565-8D2CE564F2C8} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {DD7282C4-85F7-4C0F-9E43-1EC487A5FD20} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + {B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A} = {734D4174-F73E-46A0-B379-BB9FDD25C0FB} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {657CD674-B225-4D8B-BFF0-41F4B0203FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {657CD674-B225-4D8B-BFF0-41F4B0203FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {657CD674-B225-4D8B-BFF0-41F4B0203FB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {657CD674-B225-4D8B-BFF0-41F4B0203FB5}.Release|Any CPU.Build.0 = Release|Any CPU - {D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9}.Release|Any CPU.Build.0 = Release|Any CPU - {2A8DAEB6-95DE-47F1-88E0-42675279FD87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A8DAEB6-95DE-47F1-88E0-42675279FD87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A8DAEB6-95DE-47F1-88E0-42675279FD87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A8DAEB6-95DE-47F1-88E0-42675279FD87}.Release|Any CPU.Build.0 = Release|Any CPU - {84B6A2DB-2E4B-49B7-98B0-B4032A04585C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {84B6A2DB-2E4B-49B7-98B0-B4032A04585C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {84B6A2DB-2E4B-49B7-98B0-B4032A04585C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {84B6A2DB-2E4B-49B7-98B0-B4032A04585C}.Release|Any CPU.Build.0 = Release|Any CPU + {C93CA38A-6881-4A73-B1C8-033474857135}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C93CA38A-6881-4A73-B1C8-033474857135}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C93CA38A-6881-4A73-B1C8-033474857135}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C93CA38A-6881-4A73-B1C8-033474857135}.Release|Any CPU.Build.0 = Release|Any CPU + {119684C3-F2BF-440E-A832-1ACA0D007F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {119684C3-F2BF-440E-A832-1ACA0D007F58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {119684C3-F2BF-440E-A832-1ACA0D007F58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {119684C3-F2BF-440E-A832-1ACA0D007F58}.Release|Any CPU.Build.0 = Release|Any CPU + {3752E6AE-0EBD-4A82-9FCF-375A39F99F0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3752E6AE-0EBD-4A82-9FCF-375A39F99F0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3752E6AE-0EBD-4A82-9FCF-375A39F99F0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3752E6AE-0EBD-4A82-9FCF-375A39F99F0F}.Release|Any CPU.Build.0 = Release|Any CPU + {42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42A9FDD2-A38C-4F44-A91A-9E2C5D6C97FF}.Release|Any CPU.Build.0 = Release|Any CPU + {4BB9602E-5233-4399-A4B5-D4E8AD38741B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BB9602E-5233-4399-A4B5-D4E8AD38741B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BB9602E-5233-4399-A4B5-D4E8AD38741B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BB9602E-5233-4399-A4B5-D4E8AD38741B}.Release|Any CPU.Build.0 = Release|Any CPU + {52D93DFA-9CC9-4C5B-9A37-46391B04E61F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52D93DFA-9CC9-4C5B-9A37-46391B04E61F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52D93DFA-9CC9-4C5B-9A37-46391B04E61F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52D93DFA-9CC9-4C5B-9A37-46391B04E61F}.Release|Any CPU.Build.0 = Release|Any CPU + {76656E96-A647-4098-934D-8F752A3F2FD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76656E96-A647-4098-934D-8F752A3F2FD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76656E96-A647-4098-934D-8F752A3F2FD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76656E96-A647-4098-934D-8F752A3F2FD6}.Release|Any CPU.Build.0 = Release|Any CPU + {3BFDB74F-44FE-4521-86A7-AB52FB261AA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BFDB74F-44FE-4521-86A7-AB52FB261AA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BFDB74F-44FE-4521-86A7-AB52FB261AA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BFDB74F-44FE-4521-86A7-AB52FB261AA6}.Release|Any CPU.Build.0 = Release|Any CPU + {15B92D3C-B29E-488B-90FC-324167935409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15B92D3C-B29E-488B-90FC-324167935409}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15B92D3C-B29E-488B-90FC-324167935409}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15B92D3C-B29E-488B-90FC-324167935409}.Release|Any CPU.Build.0 = Release|Any CPU + {9EF3E081-1D2F-40CC-B2B1-C7F05E261C21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EF3E081-1D2F-40CC-B2B1-C7F05E261C21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EF3E081-1D2F-40CC-B2B1-C7F05E261C21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EF3E081-1D2F-40CC-B2B1-C7F05E261C21}.Release|Any CPU.Build.0 = Release|Any CPU + {40653EBF-E569-4F85-843D-FFABBB70CFC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40653EBF-E569-4F85-843D-FFABBB70CFC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40653EBF-E569-4F85-843D-FFABBB70CFC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40653EBF-E569-4F85-843D-FFABBB70CFC8}.Release|Any CPU.Build.0 = Release|Any CPU + {27EB8901-D9CB-4814-8565-8D2CE564F2C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27EB8901-D9CB-4814-8565-8D2CE564F2C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27EB8901-D9CB-4814-8565-8D2CE564F2C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27EB8901-D9CB-4814-8565-8D2CE564F2C8}.Release|Any CPU.Build.0 = Release|Any CPU + {384EE35D-2668-42B6-8615-6BD6C4AA5273}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {384EE35D-2668-42B6-8615-6BD6C4AA5273}.Debug|Any CPU.Build.0 = Debug|Any CPU + {384EE35D-2668-42B6-8615-6BD6C4AA5273}.Release|Any CPU.ActiveCfg = Release|Any CPU + {384EE35D-2668-42B6-8615-6BD6C4AA5273}.Release|Any CPU.Build.0 = Release|Any CPU + {DD7282C4-85F7-4C0F-9E43-1EC487A5FD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD7282C4-85F7-4C0F-9E43-1EC487A5FD20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD7282C4-85F7-4C0F-9E43-1EC487A5FD20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD7282C4-85F7-4C0F-9E43-1EC487A5FD20}.Release|Any CPU.Build.0 = Release|Any CPU + {140853AE-EDA5-4914-951A-8323918A9A11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {140853AE-EDA5-4914-951A-8323918A9A11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {140853AE-EDA5-4914-951A-8323918A9A11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {140853AE-EDA5-4914-951A-8323918A9A11}.Release|Any CPU.Build.0 = Release|Any CPU + {3746E645-BFCF-4EF1-88E1-CF0D27805608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3746E645-BFCF-4EF1-88E1-CF0D27805608}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3746E645-BFCF-4EF1-88E1-CF0D27805608}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3746E645-BFCF-4EF1-88E1-CF0D27805608}.Release|Any CPU.Build.0 = Release|Any CPU + {B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B80D92B7-1A9E-4E1E-A56A-D6B940D8B81A}.Release|Any CPU.Build.0 = Release|Any CPU + {2DC76A30-E31B-42C2-AA6B-F022FFA49BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DC76A30-E31B-42C2-AA6B-F022FFA49BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DC76A30-E31B-42C2-AA6B-F022FFA49BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DC76A30-E31B-42C2-AA6B-F022FFA49BAD}.Release|Any CPU.Build.0 = Release|Any CPU + {4907F731-1D47-46A8-9FBD-7AD0457BE47F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4907F731-1D47-46A8-9FBD-7AD0457BE47F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4907F731-1D47-46A8-9FBD-7AD0457BE47F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4907F731-1D47-46A8-9FBD-7AD0457BE47F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {657CD674-B225-4D8B-BFF0-41F4B0203FB5} = {BDE47CA9-FA28-4B80-97AD-C1ADA07E109F} - {D5F9AD72-D55D-4110-8FB4-9340A1DDE7B9} = {1E7E6E50-5748-4E9A-A36D-5DFF485957A3} - {2A8DAEB6-95DE-47F1-88E0-42675279FD87} = {9361978B-A180-4DC2-AD57-82D7B94964CD} - {84B6A2DB-2E4B-49B7-98B0-B4032A04585C} = {9361978B-A180-4DC2-AD57-82D7B94964CD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1ACDC382-2E7D-462F-8373-7D106D8A0244} + SolutionGuid = {B21C5DA8-5B94-485F-913D-CDF943AFCAD6} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/Microsoft.Extensions.Configuration.EnvironmentVariables.sln b/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/Microsoft.Extensions.Configuration.EnvironmentVariables.sln index 8e717be4d37f..5435ae5ee08a 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/Microsoft.Extensions.Configuration.EnvironmentVariables.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/Microsoft.Extensions.Configuration.EnvironmentVariables.sln @@ -1,55 +1,156 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D35C3BB9-F9D1-409E-968F-D73563B3FC36}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{82C89D4E-F7EB-45D4-AC9F-BB952B620767}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{6D6D00B2-16CB-4DB9-ABC6-50729E23682D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BB7360F9-FD16-4E3A-9FE9-9870B97A49BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{44801F6B-40D0-4640-A749-3F5E6203CF94}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "ref\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{E36A657C-4A6E-4C47-9D1E-51D32C00C52D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{8B80B611-3EA2-45E1-9148-98F5D3C98390}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "src\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{598A83F4-1A18-4814-BC48-E536FA378004}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{64E40C62-4177-4F27-8C5C-C876E38103A6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables.Tests", "tests\Microsoft.Extensions.Configuration.EnvironmentVariables.Tests.csproj", "{3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "ref\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{F5FC3D96-3279-4707-8C6B-CE553D8BE72E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "src\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables.Tests", "tests\Microsoft.Extensions.Configuration.EnvironmentVariables.Tests.csproj", "{F617884E-D411-4286-A620-53E25C538373}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{B0677DDD-392C-4E79-9A80-ACCDCC5302F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{618DB5A3-A158-4F25-9A81-9F35909506E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{114BFD58-B1E4-49C0-A176-268710DD898A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{3D1CF09A-2A49-4F79-89F3-C04EC00FFC32}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{70AE0C61-0BCA-4D93-BD42-514A83E4D7FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{73CB2C25-1A22-479C-9FC0-CE65BFE272DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{627594A7-2545-4CDA-8B91-890D3CB46E3A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{595B9904-FEEB-429A-BF89-F46081047BCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{171519BA-C402-43A8-9F72-A943B5275E6F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{260EA755-D57B-4157-893D-7AAAFEF2C790}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B938CAC2-76E4-4689-8AED-5E5250A1FD1B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{E725D521-0348-4EAD-9A34-05546835FF2F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{36AE97D2-7B56-4666-9670-258177CCA836}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5C6CA1D7-6839-41C1-819D-E8764284CD18}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD} = {E725D521-0348-4EAD-9A34-05546835FF2F} + {F617884E-D411-4286-A620-53E25C538373} = {E725D521-0348-4EAD-9A34-05546835FF2F} + {6D6D00B2-16CB-4DB9-ABC6-50729E23682D} = {36AE97D2-7B56-4666-9670-258177CCA836} + {8B80B611-3EA2-45E1-9148-98F5D3C98390} = {36AE97D2-7B56-4666-9670-258177CCA836} + {F5FC3D96-3279-4707-8C6B-CE553D8BE72E} = {36AE97D2-7B56-4666-9670-258177CCA836} + {B0677DDD-392C-4E79-9A80-ACCDCC5302F1} = {36AE97D2-7B56-4666-9670-258177CCA836} + {114BFD58-B1E4-49C0-A176-268710DD898A} = {36AE97D2-7B56-4666-9670-258177CCA836} + {70AE0C61-0BCA-4D93-BD42-514A83E4D7FF} = {36AE97D2-7B56-4666-9670-258177CCA836} + {627594A7-2545-4CDA-8B91-890D3CB46E3A} = {36AE97D2-7B56-4666-9670-258177CCA836} + {595B9904-FEEB-429A-BF89-F46081047BCA} = {36AE97D2-7B56-4666-9670-258177CCA836} + {260EA755-D57B-4157-893D-7AAAFEF2C790} = {36AE97D2-7B56-4666-9670-258177CCA836} + {B938CAC2-76E4-4689-8AED-5E5250A1FD1B} = {36AE97D2-7B56-4666-9670-258177CCA836} + {44801F6B-40D0-4640-A749-3F5E6203CF94} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {64E40C62-4177-4F27-8C5C-C876E38103A6} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {618DB5A3-A158-4F25-9A81-9F35909506E6} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {3D1CF09A-2A49-4F79-89F3-C04EC00FFC32} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {73CB2C25-1A22-479C-9FC0-CE65BFE272DB} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + {171519BA-C402-43A8-9F72-A943B5275E6F} = {5C6CA1D7-6839-41C1-819D-E8764284CD18} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E36A657C-4A6E-4C47-9D1E-51D32C00C52D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E36A657C-4A6E-4C47-9D1E-51D32C00C52D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E36A657C-4A6E-4C47-9D1E-51D32C00C52D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E36A657C-4A6E-4C47-9D1E-51D32C00C52D}.Release|Any CPU.Build.0 = Release|Any CPU - {598A83F4-1A18-4814-BC48-E536FA378004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {598A83F4-1A18-4814-BC48-E536FA378004}.Debug|Any CPU.Build.0 = Debug|Any CPU - {598A83F4-1A18-4814-BC48-E536FA378004}.Release|Any CPU.ActiveCfg = Release|Any CPU - {598A83F4-1A18-4814-BC48-E536FA378004}.Release|Any CPU.Build.0 = Release|Any CPU - {3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93}.Release|Any CPU.Build.0 = Release|Any CPU - {8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52}.Release|Any CPU.Build.0 = Release|Any CPU + {328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {328F0E28-A9B5-4E90-9AD8-7D5AC9C025DD}.Release|Any CPU.Build.0 = Release|Any CPU + {6D6D00B2-16CB-4DB9-ABC6-50729E23682D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D6D00B2-16CB-4DB9-ABC6-50729E23682D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D6D00B2-16CB-4DB9-ABC6-50729E23682D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D6D00B2-16CB-4DB9-ABC6-50729E23682D}.Release|Any CPU.Build.0 = Release|Any CPU + {44801F6B-40D0-4640-A749-3F5E6203CF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44801F6B-40D0-4640-A749-3F5E6203CF94}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44801F6B-40D0-4640-A749-3F5E6203CF94}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44801F6B-40D0-4640-A749-3F5E6203CF94}.Release|Any CPU.Build.0 = Release|Any CPU + {8B80B611-3EA2-45E1-9148-98F5D3C98390}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B80B611-3EA2-45E1-9148-98F5D3C98390}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B80B611-3EA2-45E1-9148-98F5D3C98390}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B80B611-3EA2-45E1-9148-98F5D3C98390}.Release|Any CPU.Build.0 = Release|Any CPU + {64E40C62-4177-4F27-8C5C-C876E38103A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E40C62-4177-4F27-8C5C-C876E38103A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E40C62-4177-4F27-8C5C-C876E38103A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E40C62-4177-4F27-8C5C-C876E38103A6}.Release|Any CPU.Build.0 = Release|Any CPU + {F5FC3D96-3279-4707-8C6B-CE553D8BE72E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5FC3D96-3279-4707-8C6B-CE553D8BE72E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5FC3D96-3279-4707-8C6B-CE553D8BE72E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5FC3D96-3279-4707-8C6B-CE553D8BE72E}.Release|Any CPU.Build.0 = Release|Any CPU + {EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBEBE22F-F8AF-4976-B8B8-0A0A1C4065B1}.Release|Any CPU.Build.0 = Release|Any CPU + {F617884E-D411-4286-A620-53E25C538373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F617884E-D411-4286-A620-53E25C538373}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F617884E-D411-4286-A620-53E25C538373}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F617884E-D411-4286-A620-53E25C538373}.Release|Any CPU.Build.0 = Release|Any CPU + {B0677DDD-392C-4E79-9A80-ACCDCC5302F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0677DDD-392C-4E79-9A80-ACCDCC5302F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0677DDD-392C-4E79-9A80-ACCDCC5302F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0677DDD-392C-4E79-9A80-ACCDCC5302F1}.Release|Any CPU.Build.0 = Release|Any CPU + {618DB5A3-A158-4F25-9A81-9F35909506E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {618DB5A3-A158-4F25-9A81-9F35909506E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {618DB5A3-A158-4F25-9A81-9F35909506E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {618DB5A3-A158-4F25-9A81-9F35909506E6}.Release|Any CPU.Build.0 = Release|Any CPU + {114BFD58-B1E4-49C0-A176-268710DD898A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {114BFD58-B1E4-49C0-A176-268710DD898A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {114BFD58-B1E4-49C0-A176-268710DD898A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {114BFD58-B1E4-49C0-A176-268710DD898A}.Release|Any CPU.Build.0 = Release|Any CPU + {3D1CF09A-2A49-4F79-89F3-C04EC00FFC32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D1CF09A-2A49-4F79-89F3-C04EC00FFC32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D1CF09A-2A49-4F79-89F3-C04EC00FFC32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D1CF09A-2A49-4F79-89F3-C04EC00FFC32}.Release|Any CPU.Build.0 = Release|Any CPU + {70AE0C61-0BCA-4D93-BD42-514A83E4D7FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70AE0C61-0BCA-4D93-BD42-514A83E4D7FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70AE0C61-0BCA-4D93-BD42-514A83E4D7FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70AE0C61-0BCA-4D93-BD42-514A83E4D7FF}.Release|Any CPU.Build.0 = Release|Any CPU + {73CB2C25-1A22-479C-9FC0-CE65BFE272DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73CB2C25-1A22-479C-9FC0-CE65BFE272DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73CB2C25-1A22-479C-9FC0-CE65BFE272DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73CB2C25-1A22-479C-9FC0-CE65BFE272DB}.Release|Any CPU.Build.0 = Release|Any CPU + {627594A7-2545-4CDA-8B91-890D3CB46E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {627594A7-2545-4CDA-8B91-890D3CB46E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {627594A7-2545-4CDA-8B91-890D3CB46E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {627594A7-2545-4CDA-8B91-890D3CB46E3A}.Release|Any CPU.Build.0 = Release|Any CPU + {595B9904-FEEB-429A-BF89-F46081047BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {595B9904-FEEB-429A-BF89-F46081047BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {595B9904-FEEB-429A-BF89-F46081047BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {595B9904-FEEB-429A-BF89-F46081047BCA}.Release|Any CPU.Build.0 = Release|Any CPU + {171519BA-C402-43A8-9F72-A943B5275E6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {171519BA-C402-43A8-9F72-A943B5275E6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {171519BA-C402-43A8-9F72-A943B5275E6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {171519BA-C402-43A8-9F72-A943B5275E6F}.Release|Any CPU.Build.0 = Release|Any CPU + {260EA755-D57B-4157-893D-7AAAFEF2C790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {260EA755-D57B-4157-893D-7AAAFEF2C790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {260EA755-D57B-4157-893D-7AAAFEF2C790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {260EA755-D57B-4157-893D-7AAAFEF2C790}.Release|Any CPU.Build.0 = Release|Any CPU + {B938CAC2-76E4-4689-8AED-5E5250A1FD1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B938CAC2-76E4-4689-8AED-5E5250A1FD1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B938CAC2-76E4-4689-8AED-5E5250A1FD1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B938CAC2-76E4-4689-8AED-5E5250A1FD1B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E36A657C-4A6E-4C47-9D1E-51D32C00C52D} = {D35C3BB9-F9D1-409E-968F-D73563B3FC36} - {598A83F4-1A18-4814-BC48-E536FA378004} = {82C89D4E-F7EB-45D4-AC9F-BB952B620767} - {3BEF9DD3-9E82-49B6-A06E-1A899ED2FD93} = {BB7360F9-FD16-4E3A-9FE9-9870B97A49BB} - {8EDC3CC7-BF43-43F4-ABE0-FFEB7D68FE52} = {BB7360F9-FD16-4E3A-9FE9-9870B97A49BB} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {BF2C57DF-CD27-4C93-A689-19A72E6FC5B4} + SolutionGuid = {FD52C33A-D95E-4E76-B817-12A125C4418A} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/src/EnvironmentVariablesConfigurationProvider.cs b/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/src/EnvironmentVariablesConfigurationProvider.cs index 604e544a8ba4..1860699f3bd9 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/src/EnvironmentVariablesConfigurationProvider.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.EnvironmentVariables/src/EnvironmentVariablesConfigurationProvider.cs @@ -4,7 +4,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; namespace Microsoft.Extensions.Configuration.EnvironmentVariables { @@ -18,101 +17,83 @@ public class EnvironmentVariablesConfigurationProvider : ConfigurationProvider private const string SqlServerPrefix = "SQLCONNSTR_"; private const string CustomPrefix = "CUSTOMCONNSTR_"; - private const string ConnStrKeyFormat = "ConnectionStrings:{0}"; - private const string ProviderKeyFormat = "ConnectionStrings:{0}_ProviderName"; - private readonly string _prefix; /// /// Initializes a new instance. /// - public EnvironmentVariablesConfigurationProvider() : this(string.Empty) - { } + public EnvironmentVariablesConfigurationProvider() => + _prefix = string.Empty; /// /// Initializes a new instance with the specified prefix. /// /// A prefix used to filter the environment variables. - public EnvironmentVariablesConfigurationProvider(string prefix) - { + public EnvironmentVariablesConfigurationProvider(string prefix) => _prefix = prefix ?? string.Empty; - } /// /// Loads the environment variables. /// - public override void Load() - { + public override void Load() => Load(Environment.GetEnvironmentVariables()); - } internal void Load(IDictionary envVariables) { var data = new Dictionary(StringComparer.OrdinalIgnoreCase); - IEnumerable filteredEnvVariables = envVariables - .Cast() - .SelectMany(AzureEnvToAppEnv) - .Where(entry => ((string)entry.Key).StartsWith(_prefix, StringComparison.OrdinalIgnoreCase)); - - foreach (DictionaryEntry envVariable in filteredEnvVariables) + foreach (DictionaryEntry entry in envVariables) { - string key = ((string)envVariable.Key).Substring(_prefix.Length); - data[key] = (string)envVariable.Value; + string key = (string)entry.Key; + string provider = null; + string prefix; + + if (key.StartsWith(MySqlServerPrefix, StringComparison.OrdinalIgnoreCase)) + { + prefix = MySqlServerPrefix; + provider = "MySql.Data.MySqlClient"; + } + else if (key.StartsWith(SqlAzureServerPrefix, StringComparison.OrdinalIgnoreCase)) + { + prefix = SqlAzureServerPrefix; + provider = "System.Data.SqlClient"; + } + else if (key.StartsWith(SqlServerPrefix, StringComparison.OrdinalIgnoreCase)) + { + prefix = SqlServerPrefix; + provider = "System.Data.SqlClient"; + } + else if (key.StartsWith(CustomPrefix, StringComparison.OrdinalIgnoreCase)) + { + prefix = CustomPrefix; + } + else + { + AddIfPrefixed(data, NormalizeKey(key), (string)entry.Value); + continue; + } + + // Add the key-value pair for connection string, and optionally provider name + key = NormalizeKey(key.Substring(prefix.Length)); + AddIfPrefixed(data, $"ConnectionStrings:{key}", (string)entry.Value); + if (provider != null) + { + AddIfPrefixed(data, $"ConnectionStrings:{key}_ProviderName", provider); + } } Data = data; } - private static string NormalizeKey(string key) + private void AddIfPrefixed(Dictionary data, string key, string value) { - return key.Replace("__", ConfigurationPath.KeyDelimiter); - } - - private static IEnumerable AzureEnvToAppEnv(DictionaryEntry entry) - { - string key = (string)entry.Key; - string prefix = string.Empty; - string provider = string.Empty; - - if (key.StartsWith(MySqlServerPrefix, StringComparison.OrdinalIgnoreCase)) - { - prefix = MySqlServerPrefix; - provider = "MySql.Data.MySqlClient"; - } - else if (key.StartsWith(SqlAzureServerPrefix, StringComparison.OrdinalIgnoreCase)) + if (key.StartsWith(_prefix, StringComparison.OrdinalIgnoreCase)) { - prefix = SqlAzureServerPrefix; - provider = "System.Data.SqlClient"; - } - else if (key.StartsWith(SqlServerPrefix, StringComparison.OrdinalIgnoreCase)) - { - prefix = SqlServerPrefix; - provider = "System.Data.SqlClient"; - } - else if (key.StartsWith(CustomPrefix, StringComparison.OrdinalIgnoreCase)) - { - prefix = CustomPrefix; - } - else - { - entry.Key = NormalizeKey(key); - yield return entry; - yield break; - } - - // Return the key-value pair for connection string - yield return new DictionaryEntry( - string.Format(ConnStrKeyFormat, NormalizeKey(key.Substring(prefix.Length))), - entry.Value); - - if (!string.IsNullOrEmpty(provider)) - { - // Return the key-value pair for provider name - yield return new DictionaryEntry( - string.Format(ProviderKeyFormat, NormalizeKey(key.Substring(prefix.Length))), - provider); + key = key.Substring(_prefix.Length); + data[key] = value; } } + + private static string NormalizeKey(string key) => key.Replace("__", ConfigurationPath.KeyDelimiter); } } diff --git a/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/Microsoft.Extensions.Configuration.FileExtensions.sln b/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/Microsoft.Extensions.Configuration.FileExtensions.sln index 3149273d17c7..01ac3cb3a82d 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/Microsoft.Extensions.Configuration.FileExtensions.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/Microsoft.Extensions.Configuration.FileExtensions.sln @@ -1,55 +1,170 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{368FB595-071C-445D-A56B-88781300D2B7}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{565961C5-FF76-474B-9662-206BA630BF70}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3C64296E-E07A-41E3-BE26-AF909F556B1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{55489DCB-3CD4-40CD-81A8-00945029C8E2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C31D33A1-28EE-4C1E-A859-5D8154527838}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{4C97A79C-D5A5-4091-9A3A-3426BD7FF277}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{AEC76790-0008-4755-A097-77E52F7EE38C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{B9A42BBD-0B29-45A1-9482-61A0D683FEA7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{B1C9D55F-73E4-425F-ACCE-05E286CCF93B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions.Tests", "tests\Microsoft.Extensions.Configuration.FileExtensions.Tests.csproj", "{50FBFD93-356A-4439-97A3-592A066D23A8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions.Tests", "tests\Microsoft.Extensions.Configuration.FileExtensions.Tests.csproj", "{3D3F1D99-FE2E-4910-9906-9DF36A415981}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8D869833-69B7-4C0B-A13B-D3073EE2D912}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{95EB26AA-E1DA-4E31-BB37-6C1F50F4B023}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{5A242B96-3C69-456B-B4EA-969E6EE91C5C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{EC8DDB1C-B124-4070-9202-13A665C2FF29}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{FC52A2D5-BBDA-4E30-8AC8-373991137059}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{8370539D-02B1-4D8E-B44B-0E845AED1B8E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{D49BC1CE-AE45-47D1-A662-9F4C0300930D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{A024CB01-C41F-4F2C-87B1-5E3B3D2979A3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{7E4BF22A-B413-40E4-88C9-6579502B17F9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{96F56B6D-B82D-433A-95CB-A35179529934}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1F671DF9-9390-4A15-93B6-AD483D8E9559}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F292F90B-FB0A-4EE5-8F8A-3CF24E22F914}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{3E459CAE-C23F-4467-9845-F35943928C41}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{4183C46E-330D-4B03-A430-7F472EAE4C3B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{046A290C-5C55-4E2B-BA4D-6FB4AABF95CB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{40ACF4DB-FFCD-48F2-BEE0-121EC41B7C72}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{059E3B0D-10D1-4E99-8B4A-2024F0AFBD55}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B012E0D0-D34D-4948-84E4-131F93B25BA5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {565961C5-FF76-474B-9662-206BA630BF70} = {40ACF4DB-FFCD-48F2-BEE0-121EC41B7C72} + {3D3F1D99-FE2E-4910-9906-9DF36A415981} = {40ACF4DB-FFCD-48F2-BEE0-121EC41B7C72} + {55489DCB-3CD4-40CD-81A8-00945029C8E2} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {B9A42BBD-0B29-45A1-9482-61A0D683FEA7} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {95EB26AA-E1DA-4E31-BB37-6C1F50F4B023} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {EC8DDB1C-B124-4070-9202-13A665C2FF29} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {8370539D-02B1-4D8E-B44B-0E845AED1B8E} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {A024CB01-C41F-4F2C-87B1-5E3B3D2979A3} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {1F671DF9-9390-4A15-93B6-AD483D8E9559} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {F292F90B-FB0A-4EE5-8F8A-3CF24E22F914} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {4183C46E-330D-4B03-A430-7F472EAE4C3B} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {046A290C-5C55-4E2B-BA4D-6FB4AABF95CB} = {059E3B0D-10D1-4E99-8B4A-2024F0AFBD55} + {4C97A79C-D5A5-4091-9A3A-3426BD7FF277} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {B1C9D55F-73E4-425F-ACCE-05E286CCF93B} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {5A242B96-3C69-456B-B4EA-969E6EE91C5C} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {FC52A2D5-BBDA-4E30-8AC8-373991137059} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {D49BC1CE-AE45-47D1-A662-9F4C0300930D} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {7E4BF22A-B413-40E4-88C9-6579502B17F9} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {96F56B6D-B82D-433A-95CB-A35179529934} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + {3E459CAE-C23F-4467-9845-F35943928C41} = {B012E0D0-D34D-4948-84E4-131F93B25BA5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AEC76790-0008-4755-A097-77E52F7EE38C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AEC76790-0008-4755-A097-77E52F7EE38C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AEC76790-0008-4755-A097-77E52F7EE38C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AEC76790-0008-4755-A097-77E52F7EE38C}.Release|Any CPU.Build.0 = Release|Any CPU - {1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC}.Release|Any CPU.Build.0 = Release|Any CPU - {50FBFD93-356A-4439-97A3-592A066D23A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50FBFD93-356A-4439-97A3-592A066D23A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50FBFD93-356A-4439-97A3-592A066D23A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50FBFD93-356A-4439-97A3-592A066D23A8}.Release|Any CPU.Build.0 = Release|Any CPU - {8D869833-69B7-4C0B-A13B-D3073EE2D912}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D869833-69B7-4C0B-A13B-D3073EE2D912}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D869833-69B7-4C0B-A13B-D3073EE2D912}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D869833-69B7-4C0B-A13B-D3073EE2D912}.Release|Any CPU.Build.0 = Release|Any CPU + {565961C5-FF76-474B-9662-206BA630BF70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {565961C5-FF76-474B-9662-206BA630BF70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {565961C5-FF76-474B-9662-206BA630BF70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {565961C5-FF76-474B-9662-206BA630BF70}.Release|Any CPU.Build.0 = Release|Any CPU + {55489DCB-3CD4-40CD-81A8-00945029C8E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55489DCB-3CD4-40CD-81A8-00945029C8E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55489DCB-3CD4-40CD-81A8-00945029C8E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55489DCB-3CD4-40CD-81A8-00945029C8E2}.Release|Any CPU.Build.0 = Release|Any CPU + {4C97A79C-D5A5-4091-9A3A-3426BD7FF277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C97A79C-D5A5-4091-9A3A-3426BD7FF277}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C97A79C-D5A5-4091-9A3A-3426BD7FF277}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C97A79C-D5A5-4091-9A3A-3426BD7FF277}.Release|Any CPU.Build.0 = Release|Any CPU + {B9A42BBD-0B29-45A1-9482-61A0D683FEA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9A42BBD-0B29-45A1-9482-61A0D683FEA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9A42BBD-0B29-45A1-9482-61A0D683FEA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9A42BBD-0B29-45A1-9482-61A0D683FEA7}.Release|Any CPU.Build.0 = Release|Any CPU + {B1C9D55F-73E4-425F-ACCE-05E286CCF93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1C9D55F-73E4-425F-ACCE-05E286CCF93B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1C9D55F-73E4-425F-ACCE-05E286CCF93B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1C9D55F-73E4-425F-ACCE-05E286CCF93B}.Release|Any CPU.Build.0 = Release|Any CPU + {3D3F1D99-FE2E-4910-9906-9DF36A415981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D3F1D99-FE2E-4910-9906-9DF36A415981}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D3F1D99-FE2E-4910-9906-9DF36A415981}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D3F1D99-FE2E-4910-9906-9DF36A415981}.Release|Any CPU.Build.0 = Release|Any CPU + {95EB26AA-E1DA-4E31-BB37-6C1F50F4B023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95EB26AA-E1DA-4E31-BB37-6C1F50F4B023}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95EB26AA-E1DA-4E31-BB37-6C1F50F4B023}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95EB26AA-E1DA-4E31-BB37-6C1F50F4B023}.Release|Any CPU.Build.0 = Release|Any CPU + {5A242B96-3C69-456B-B4EA-969E6EE91C5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A242B96-3C69-456B-B4EA-969E6EE91C5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A242B96-3C69-456B-B4EA-969E6EE91C5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A242B96-3C69-456B-B4EA-969E6EE91C5C}.Release|Any CPU.Build.0 = Release|Any CPU + {EC8DDB1C-B124-4070-9202-13A665C2FF29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC8DDB1C-B124-4070-9202-13A665C2FF29}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC8DDB1C-B124-4070-9202-13A665C2FF29}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC8DDB1C-B124-4070-9202-13A665C2FF29}.Release|Any CPU.Build.0 = Release|Any CPU + {FC52A2D5-BBDA-4E30-8AC8-373991137059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC52A2D5-BBDA-4E30-8AC8-373991137059}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC52A2D5-BBDA-4E30-8AC8-373991137059}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC52A2D5-BBDA-4E30-8AC8-373991137059}.Release|Any CPU.Build.0 = Release|Any CPU + {8370539D-02B1-4D8E-B44B-0E845AED1B8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8370539D-02B1-4D8E-B44B-0E845AED1B8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8370539D-02B1-4D8E-B44B-0E845AED1B8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8370539D-02B1-4D8E-B44B-0E845AED1B8E}.Release|Any CPU.Build.0 = Release|Any CPU + {D49BC1CE-AE45-47D1-A662-9F4C0300930D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D49BC1CE-AE45-47D1-A662-9F4C0300930D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D49BC1CE-AE45-47D1-A662-9F4C0300930D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D49BC1CE-AE45-47D1-A662-9F4C0300930D}.Release|Any CPU.Build.0 = Release|Any CPU + {A024CB01-C41F-4F2C-87B1-5E3B3D2979A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A024CB01-C41F-4F2C-87B1-5E3B3D2979A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A024CB01-C41F-4F2C-87B1-5E3B3D2979A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A024CB01-C41F-4F2C-87B1-5E3B3D2979A3}.Release|Any CPU.Build.0 = Release|Any CPU + {7E4BF22A-B413-40E4-88C9-6579502B17F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E4BF22A-B413-40E4-88C9-6579502B17F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E4BF22A-B413-40E4-88C9-6579502B17F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E4BF22A-B413-40E4-88C9-6579502B17F9}.Release|Any CPU.Build.0 = Release|Any CPU + {F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5E5E0E3-F2FF-405B-AD0D-7D92C6F85F4B}.Release|Any CPU.Build.0 = Release|Any CPU + {96F56B6D-B82D-433A-95CB-A35179529934}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96F56B6D-B82D-433A-95CB-A35179529934}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96F56B6D-B82D-433A-95CB-A35179529934}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96F56B6D-B82D-433A-95CB-A35179529934}.Release|Any CPU.Build.0 = Release|Any CPU + {1F671DF9-9390-4A15-93B6-AD483D8E9559}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F671DF9-9390-4A15-93B6-AD483D8E9559}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F671DF9-9390-4A15-93B6-AD483D8E9559}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F671DF9-9390-4A15-93B6-AD483D8E9559}.Release|Any CPU.Build.0 = Release|Any CPU + {F292F90B-FB0A-4EE5-8F8A-3CF24E22F914}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F292F90B-FB0A-4EE5-8F8A-3CF24E22F914}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F292F90B-FB0A-4EE5-8F8A-3CF24E22F914}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F292F90B-FB0A-4EE5-8F8A-3CF24E22F914}.Release|Any CPU.Build.0 = Release|Any CPU + {3E459CAE-C23F-4467-9845-F35943928C41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E459CAE-C23F-4467-9845-F35943928C41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E459CAE-C23F-4467-9845-F35943928C41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E459CAE-C23F-4467-9845-F35943928C41}.Release|Any CPU.Build.0 = Release|Any CPU + {4183C46E-330D-4B03-A430-7F472EAE4C3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4183C46E-330D-4B03-A430-7F472EAE4C3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4183C46E-330D-4B03-A430-7F472EAE4C3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4183C46E-330D-4B03-A430-7F472EAE4C3B}.Release|Any CPU.Build.0 = Release|Any CPU + {046A290C-5C55-4E2B-BA4D-6FB4AABF95CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {046A290C-5C55-4E2B-BA4D-6FB4AABF95CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {046A290C-5C55-4E2B-BA4D-6FB4AABF95CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {046A290C-5C55-4E2B-BA4D-6FB4AABF95CB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {AEC76790-0008-4755-A097-77E52F7EE38C} = {368FB595-071C-445D-A56B-88781300D2B7} - {1A6B0717-13B3-4F15-AD71-5BE3FEE0F9DC} = {3C64296E-E07A-41E3-BE26-AF909F556B1B} - {50FBFD93-356A-4439-97A3-592A066D23A8} = {C31D33A1-28EE-4C1E-A859-5D8154527838} - {8D869833-69B7-4C0B-A13B-D3073EE2D912} = {C31D33A1-28EE-4C1E-A859-5D8154527838} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DB6ECFE5-FAD1-4F02-A143-0A39A506ED11} + SolutionGuid = {9E1D104F-EEB9-457A-9942-83E43C869D8C} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.Ini/Microsoft.Extensions.Configuration.Ini.sln b/src/libraries/Microsoft.Extensions.Configuration.Ini/Microsoft.Extensions.Configuration.Ini.sln index a615fdf6906f..7d561d55db0a 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Ini/Microsoft.Extensions.Configuration.Ini.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.Ini/Microsoft.Extensions.Configuration.Ini.sln @@ -1,55 +1,198 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8EF05751-E815-46ED-A495-4F38C40AF8DB}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{34CD290F-ED23-4066-97D3-3D37E8658E1D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{480E7F63-E37F-4971-953E-1F4FAA8A667C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2474302E-ABBF-4B9C-832F-1C3DF82C4769}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{98B116B8-2D6A-4AC1-925E-FA5E1F09247E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "ref\Microsoft.Extensions.Configuration.Ini.csproj", "{7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "src\Microsoft.Extensions.Configuration.Ini.csproj", "{B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{8A6B8D35-1C22-46AB-8C68-F31656337762}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini.Tests", "tests\Microsoft.Extensions.Configuration.Ini.Tests.csproj", "{85280091-78E2-4558-B6AB-F30B4F92BCF7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{7C8B43D4-493B-4FB1-9E9D-9D3476252CE8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1271138D-3837-4315-A3B4-E085DCD61FBC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{D3A401F7-2C54-45C4-BFF1-45269B2FA1EF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "ref\Microsoft.Extensions.Configuration.Ini.csproj", "{BC1A82AA-4860-413B-B6B5-7748A2D2BEC4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "src\Microsoft.Extensions.Configuration.Ini.csproj", "{7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini.Tests", "tests\Microsoft.Extensions.Configuration.Ini.Tests.csproj", "{506EB478-5BD7-4AFC-BA42-A6DA14C112A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{111A3628-305F-4360-BCB9-E295072864E2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{A4C1F4E8-66C1-4344-BCD8-E69DD6A35975}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{742411BC-34E4-45ED-A9C4-D7C507B062D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{0A1E4D1C-A369-42D5-B852-6B1876DE8D8B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{B2CEF482-0EBB-42EC-A37B-786492049E78}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{92259CBF-FAC1-40F1-987E-DBF7631977EC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{6260945D-105D-47CC-B256-D62BF3CA9448}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{B46B056A-EFA3-4AF7-9CE3-B62EDEABE286}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{3FAB6852-68A1-4317-B972-6B8088AB6DCF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E70CC1DE-58F1-40BE-A784-1128D99DEA5E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9882F79B-592C-4E76-BDF4-50C030F67F0E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F241C7D3-E80F-4C69-8418-4501DB1331B8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{B71D0BB4-70EA-40B0-A964-833B63EC8A52}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{39CB6083-CA32-4DD5-B805-ED43C45CD998}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7D6F7151-EA44-4448-9D53-CF446FE75991}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CE2EC44C-19EC-4D3C-8AE8-03208863C3A4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{38B033CD-0F62-4BC3-A1A2-1A026891DC5E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E} = {7D6F7151-EA44-4448-9D53-CF446FE75991} + {506EB478-5BD7-4AFC-BA42-A6DA14C112A8} = {7D6F7151-EA44-4448-9D53-CF446FE75991} + {480E7F63-E37F-4971-953E-1F4FAA8A667C} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {7C8B43D4-493B-4FB1-9E9D-9D3476252CE8} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {BC1A82AA-4860-413B-B6B5-7748A2D2BEC4} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {111A3628-305F-4360-BCB9-E295072864E2} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {742411BC-34E4-45ED-A9C4-D7C507B062D9} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {B2CEF482-0EBB-42EC-A37B-786492049E78} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {6260945D-105D-47CC-B256-D62BF3CA9448} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {B46B056A-EFA3-4AF7-9CE3-B62EDEABE286} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {E70CC1DE-58F1-40BE-A784-1128D99DEA5E} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {9882F79B-592C-4E76-BDF4-50C030F67F0E} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {B71D0BB4-70EA-40B0-A964-833B63EC8A52} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {39CB6083-CA32-4DD5-B805-ED43C45CD998} = {CE2EC44C-19EC-4D3C-8AE8-03208863C3A4} + {98B116B8-2D6A-4AC1-925E-FA5E1F09247E} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {8A6B8D35-1C22-46AB-8C68-F31656337762} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {D3A401F7-2C54-45C4-BFF1-45269B2FA1EF} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {A4C1F4E8-66C1-4344-BCD8-E69DD6A35975} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {0A1E4D1C-A369-42D5-B852-6B1876DE8D8B} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {92259CBF-FAC1-40F1-987E-DBF7631977EC} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {3FAB6852-68A1-4317-B972-6B8088AB6DCF} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + {F241C7D3-E80F-4C69-8418-4501DB1331B8} = {38B033CD-0F62-4BC3-A1A2-1A026891DC5E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE}.Release|Any CPU.Build.0 = Release|Any CPU - {B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784}.Release|Any CPU.Build.0 = Release|Any CPU - {85280091-78E2-4558-B6AB-F30B4F92BCF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85280091-78E2-4558-B6AB-F30B4F92BCF7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85280091-78E2-4558-B6AB-F30B4F92BCF7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85280091-78E2-4558-B6AB-F30B4F92BCF7}.Release|Any CPU.Build.0 = Release|Any CPU - {1271138D-3837-4315-A3B4-E085DCD61FBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1271138D-3837-4315-A3B4-E085DCD61FBC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1271138D-3837-4315-A3B4-E085DCD61FBC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1271138D-3837-4315-A3B4-E085DCD61FBC}.Release|Any CPU.Build.0 = Release|Any CPU + {7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DE12855-FAEE-4AAC-A4A7-EC6308F47B4E}.Release|Any CPU.Build.0 = Release|Any CPU + {480E7F63-E37F-4971-953E-1F4FAA8A667C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {480E7F63-E37F-4971-953E-1F4FAA8A667C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {480E7F63-E37F-4971-953E-1F4FAA8A667C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {480E7F63-E37F-4971-953E-1F4FAA8A667C}.Release|Any CPU.Build.0 = Release|Any CPU + {98B116B8-2D6A-4AC1-925E-FA5E1F09247E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98B116B8-2D6A-4AC1-925E-FA5E1F09247E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98B116B8-2D6A-4AC1-925E-FA5E1F09247E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98B116B8-2D6A-4AC1-925E-FA5E1F09247E}.Release|Any CPU.Build.0 = Release|Any CPU + {A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7E67FF3-ED3E-4CB8-B1D9-5F98C443E763}.Release|Any CPU.Build.0 = Release|Any CPU + {8A6B8D35-1C22-46AB-8C68-F31656337762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A6B8D35-1C22-46AB-8C68-F31656337762}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A6B8D35-1C22-46AB-8C68-F31656337762}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A6B8D35-1C22-46AB-8C68-F31656337762}.Release|Any CPU.Build.0 = Release|Any CPU + {7C8B43D4-493B-4FB1-9E9D-9D3476252CE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C8B43D4-493B-4FB1-9E9D-9D3476252CE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C8B43D4-493B-4FB1-9E9D-9D3476252CE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C8B43D4-493B-4FB1-9E9D-9D3476252CE8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3A401F7-2C54-45C4-BFF1-45269B2FA1EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3A401F7-2C54-45C4-BFF1-45269B2FA1EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3A401F7-2C54-45C4-BFF1-45269B2FA1EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3A401F7-2C54-45C4-BFF1-45269B2FA1EF}.Release|Any CPU.Build.0 = Release|Any CPU + {BC1A82AA-4860-413B-B6B5-7748A2D2BEC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC1A82AA-4860-413B-B6B5-7748A2D2BEC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC1A82AA-4860-413B-B6B5-7748A2D2BEC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC1A82AA-4860-413B-B6B5-7748A2D2BEC4}.Release|Any CPU.Build.0 = Release|Any CPU + {7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DA324A1-FA9F-4B8A-B8C3-7F6707D77B52}.Release|Any CPU.Build.0 = Release|Any CPU + {506EB478-5BD7-4AFC-BA42-A6DA14C112A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {506EB478-5BD7-4AFC-BA42-A6DA14C112A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {506EB478-5BD7-4AFC-BA42-A6DA14C112A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {506EB478-5BD7-4AFC-BA42-A6DA14C112A8}.Release|Any CPU.Build.0 = Release|Any CPU + {111A3628-305F-4360-BCB9-E295072864E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {111A3628-305F-4360-BCB9-E295072864E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {111A3628-305F-4360-BCB9-E295072864E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {111A3628-305F-4360-BCB9-E295072864E2}.Release|Any CPU.Build.0 = Release|Any CPU + {A4C1F4E8-66C1-4344-BCD8-E69DD6A35975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4C1F4E8-66C1-4344-BCD8-E69DD6A35975}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4C1F4E8-66C1-4344-BCD8-E69DD6A35975}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4C1F4E8-66C1-4344-BCD8-E69DD6A35975}.Release|Any CPU.Build.0 = Release|Any CPU + {742411BC-34E4-45ED-A9C4-D7C507B062D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {742411BC-34E4-45ED-A9C4-D7C507B062D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {742411BC-34E4-45ED-A9C4-D7C507B062D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {742411BC-34E4-45ED-A9C4-D7C507B062D9}.Release|Any CPU.Build.0 = Release|Any CPU + {0A1E4D1C-A369-42D5-B852-6B1876DE8D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A1E4D1C-A369-42D5-B852-6B1876DE8D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A1E4D1C-A369-42D5-B852-6B1876DE8D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A1E4D1C-A369-42D5-B852-6B1876DE8D8B}.Release|Any CPU.Build.0 = Release|Any CPU + {B2CEF482-0EBB-42EC-A37B-786492049E78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2CEF482-0EBB-42EC-A37B-786492049E78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2CEF482-0EBB-42EC-A37B-786492049E78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2CEF482-0EBB-42EC-A37B-786492049E78}.Release|Any CPU.Build.0 = Release|Any CPU + {92259CBF-FAC1-40F1-987E-DBF7631977EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92259CBF-FAC1-40F1-987E-DBF7631977EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92259CBF-FAC1-40F1-987E-DBF7631977EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92259CBF-FAC1-40F1-987E-DBF7631977EC}.Release|Any CPU.Build.0 = Release|Any CPU + {6260945D-105D-47CC-B256-D62BF3CA9448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6260945D-105D-47CC-B256-D62BF3CA9448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6260945D-105D-47CC-B256-D62BF3CA9448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6260945D-105D-47CC-B256-D62BF3CA9448}.Release|Any CPU.Build.0 = Release|Any CPU + {F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3FA11C3-612D-4F2B-9A2B-5D3FDCF1C077}.Release|Any CPU.Build.0 = Release|Any CPU + {B46B056A-EFA3-4AF7-9CE3-B62EDEABE286}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B46B056A-EFA3-4AF7-9CE3-B62EDEABE286}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B46B056A-EFA3-4AF7-9CE3-B62EDEABE286}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B46B056A-EFA3-4AF7-9CE3-B62EDEABE286}.Release|Any CPU.Build.0 = Release|Any CPU + {3FAB6852-68A1-4317-B972-6B8088AB6DCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FAB6852-68A1-4317-B972-6B8088AB6DCF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FAB6852-68A1-4317-B972-6B8088AB6DCF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FAB6852-68A1-4317-B972-6B8088AB6DCF}.Release|Any CPU.Build.0 = Release|Any CPU + {E70CC1DE-58F1-40BE-A784-1128D99DEA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E70CC1DE-58F1-40BE-A784-1128D99DEA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E70CC1DE-58F1-40BE-A784-1128D99DEA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E70CC1DE-58F1-40BE-A784-1128D99DEA5E}.Release|Any CPU.Build.0 = Release|Any CPU + {9882F79B-592C-4E76-BDF4-50C030F67F0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9882F79B-592C-4E76-BDF4-50C030F67F0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9882F79B-592C-4E76-BDF4-50C030F67F0E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9882F79B-592C-4E76-BDF4-50C030F67F0E}.Release|Any CPU.Build.0 = Release|Any CPU + {F241C7D3-E80F-4C69-8418-4501DB1331B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F241C7D3-E80F-4C69-8418-4501DB1331B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F241C7D3-E80F-4C69-8418-4501DB1331B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F241C7D3-E80F-4C69-8418-4501DB1331B8}.Release|Any CPU.Build.0 = Release|Any CPU + {B71D0BB4-70EA-40B0-A964-833B63EC8A52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B71D0BB4-70EA-40B0-A964-833B63EC8A52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B71D0BB4-70EA-40B0-A964-833B63EC8A52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B71D0BB4-70EA-40B0-A964-833B63EC8A52}.Release|Any CPU.Build.0 = Release|Any CPU + {39CB6083-CA32-4DD5-B805-ED43C45CD998}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39CB6083-CA32-4DD5-B805-ED43C45CD998}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39CB6083-CA32-4DD5-B805-ED43C45CD998}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39CB6083-CA32-4DD5-B805-ED43C45CD998}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7E5EF3B6-FF5A-4536-9A3C-4A9288F69ABE} = {8EF05751-E815-46ED-A495-4F38C40AF8DB} - {B5665E0B-EF8D-4A3F-9CDC-FCD1B0F4A784} = {34CD290F-ED23-4066-97D3-3D37E8658E1D} - {85280091-78E2-4558-B6AB-F30B4F92BCF7} = {2474302E-ABBF-4B9C-832F-1C3DF82C4769} - {1271138D-3837-4315-A3B4-E085DCD61FBC} = {2474302E-ABBF-4B9C-832F-1C3DF82C4769} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E4A50DE9-C0E3-44CC-A3DD-45A49DFFDCD3} + SolutionGuid = {4D8FAA33-E9C8-48FB-ADBF-5AE1D87E9B2C} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/Microsoft.Extensions.Configuration.Json.sln b/src/libraries/Microsoft.Extensions.Configuration.Json/Microsoft.Extensions.Configuration.Json.sln index 1dd77a63d69d..efe53b0656c6 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/Microsoft.Extensions.Configuration.Json.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/Microsoft.Extensions.Configuration.Json.sln @@ -1,55 +1,226 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DDBAD8C5-F7BE-4EB7-9B1F-AD8CAE548DB3}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8163E80F-4982-4BC2-A0AA-FF1284E62964}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{78219FF4-C28B-4EA4-B0F9-B5467296A267}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "ref\Microsoft.Extensions.Configuration.Json.csproj", "{39B9BECA-B7EA-426A-B1DF-91C1318AA1EB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{68210977-E10C-4BC3-B235-31B6E2AF9830}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "src\Microsoft.Extensions.Configuration.Json.csproj", "{1B86310E-A8A9-497B-BA92-BB9E273DC1CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{5374E4B3-FFA0-47E3-9400-C086E6C236CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EFA97506-2078-4F34-9491-9C300446FA64}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{B5018015-F6E7-404B-99C5-980FF8298832}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json.Tests", "tests\Microsoft.Extensions.Configuration.Json.Tests.csproj", "{328889E2-78ED-4774-83FB-188BABA34FB9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{0D650281-5B86-4A2C-9D09-41BD3846B072}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{14C31A82-8817-44FF-A28B-9B05797FDC4C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{01CEF916-5FF9-4566-A507-08FD019E04F9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{4DD667F9-B4EB-47DE-B5FF-6B30442AE921}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{405D047F-59EB-47FA-A32D-FA4F5B97D5D6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "ref\Microsoft.Extensions.Configuration.Json.csproj", "{A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "src\Microsoft.Extensions.Configuration.Json.csproj", "{6D8F8AC7-027F-4DB9-9299-4F3873310B8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json.Tests", "tests\Microsoft.Extensions.Configuration.Json.Tests.csproj", "{9F495CC2-5325-4F18-831C-8DEFB2F89206}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{7D798B08-E806-4D50-A103-4F8F0F78770D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{263497F5-8AAC-4E15-97EC-4871E1E9606F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{9355C322-9769-418B-9B00-09EF8E96D263}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{B059E91C-DA44-46BB-BD06-D208258ED8E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{9B6760CA-AC54-4549-9EA1-823BDF841BCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{6A80D098-69EC-45FE-A064-4CBDFA44BA43}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{4C29E3A6-45F5-4747-B471-A48EFDF88247}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{FE50757B-7862-49D2-812E-1646F6FE0070}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{F468EC97-5E8E-46F3-87A2-D2DEE53B4605}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{B1723D4C-15E3-4A39-8976-C3E1740E5F00}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{791342A3-DA08-4775-8CC6-236D8769A805}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{B9E03474-32B9-4D49-BF6F-2F17DAE8D699}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{7517D0A0-5596-48B7-96EF-CB24DAD72675}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A5591BC5-7A1C-4FBA-8C38-D46D3664D713}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{76EF09ED-019E-4A1B-BFF5-509E8AA691AD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{BD19B1E7-CAFF-4009-874A-760D5A466E28}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{A49023C8-173A-4B8F-84B3-2FF37FE8344A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{46055324-336F-4046-ADF9-1DFCA282C10F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{34884E6F-5C79-4F3C-9D96-6118E099FE6D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3D3EE813-3F89-425D-B092-7B992662C45B}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38} = {46055324-336F-4046-ADF9-1DFCA282C10F} + {9F495CC2-5325-4F18-831C-8DEFB2F89206} = {46055324-336F-4046-ADF9-1DFCA282C10F} + {78219FF4-C28B-4EA4-B0F9-B5467296A267} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {5374E4B3-FFA0-47E3-9400-C086E6C236CD} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {0D650281-5B86-4A2C-9D09-41BD3846B072} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {4DD667F9-B4EB-47DE-B5FF-6B30442AE921} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {7D798B08-E806-4D50-A103-4F8F0F78770D} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {9355C322-9769-418B-9B00-09EF8E96D263} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {9B6760CA-AC54-4549-9EA1-823BDF841BCA} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {4C29E3A6-45F5-4747-B471-A48EFDF88247} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {F468EC97-5E8E-46F3-87A2-D2DEE53B4605} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {791342A3-DA08-4775-8CC6-236D8769A805} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {B9E03474-32B9-4D49-BF6F-2F17DAE8D699} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {A5591BC5-7A1C-4FBA-8C38-D46D3664D713} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {76EF09ED-019E-4A1B-BFF5-509E8AA691AD} = {34884E6F-5C79-4F3C-9D96-6118E099FE6D} + {68210977-E10C-4BC3-B235-31B6E2AF9830} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {B5018015-F6E7-404B-99C5-980FF8298832} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {01CEF916-5FF9-4566-A507-08FD019E04F9} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {405D047F-59EB-47FA-A32D-FA4F5B97D5D6} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {6D8F8AC7-027F-4DB9-9299-4F3873310B8F} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {263497F5-8AAC-4E15-97EC-4871E1E9606F} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {B059E91C-DA44-46BB-BD06-D208258ED8E7} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {6A80D098-69EC-45FE-A064-4CBDFA44BA43} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {FE50757B-7862-49D2-812E-1646F6FE0070} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {B1723D4C-15E3-4A39-8976-C3E1740E5F00} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {7517D0A0-5596-48B7-96EF-CB24DAD72675} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {BD19B1E7-CAFF-4009-874A-760D5A466E28} = {3D3EE813-3F89-425D-B092-7B992662C45B} + {A49023C8-173A-4B8F-84B3-2FF37FE8344A} = {3D3EE813-3F89-425D-B092-7B992662C45B} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {39B9BECA-B7EA-426A-B1DF-91C1318AA1EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39B9BECA-B7EA-426A-B1DF-91C1318AA1EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39B9BECA-B7EA-426A-B1DF-91C1318AA1EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39B9BECA-B7EA-426A-B1DF-91C1318AA1EB}.Release|Any CPU.Build.0 = Release|Any CPU - {1B86310E-A8A9-497B-BA92-BB9E273DC1CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B86310E-A8A9-497B-BA92-BB9E273DC1CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1B86310E-A8A9-497B-BA92-BB9E273DC1CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B86310E-A8A9-497B-BA92-BB9E273DC1CE}.Release|Any CPU.Build.0 = Release|Any CPU - {328889E2-78ED-4774-83FB-188BABA34FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {328889E2-78ED-4774-83FB-188BABA34FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {328889E2-78ED-4774-83FB-188BABA34FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {328889E2-78ED-4774-83FB-188BABA34FB9}.Release|Any CPU.Build.0 = Release|Any CPU - {14C31A82-8817-44FF-A28B-9B05797FDC4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14C31A82-8817-44FF-A28B-9B05797FDC4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14C31A82-8817-44FF-A28B-9B05797FDC4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14C31A82-8817-44FF-A28B-9B05797FDC4C}.Release|Any CPU.Build.0 = Release|Any CPU + {C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5D6F2B2-670F-42F8-98CB-B37CAC2E5D38}.Release|Any CPU.Build.0 = Release|Any CPU + {78219FF4-C28B-4EA4-B0F9-B5467296A267}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78219FF4-C28B-4EA4-B0F9-B5467296A267}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78219FF4-C28B-4EA4-B0F9-B5467296A267}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78219FF4-C28B-4EA4-B0F9-B5467296A267}.Release|Any CPU.Build.0 = Release|Any CPU + {68210977-E10C-4BC3-B235-31B6E2AF9830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68210977-E10C-4BC3-B235-31B6E2AF9830}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68210977-E10C-4BC3-B235-31B6E2AF9830}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68210977-E10C-4BC3-B235-31B6E2AF9830}.Release|Any CPU.Build.0 = Release|Any CPU + {5374E4B3-FFA0-47E3-9400-C086E6C236CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5374E4B3-FFA0-47E3-9400-C086E6C236CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5374E4B3-FFA0-47E3-9400-C086E6C236CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5374E4B3-FFA0-47E3-9400-C086E6C236CD}.Release|Any CPU.Build.0 = Release|Any CPU + {B5018015-F6E7-404B-99C5-980FF8298832}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5018015-F6E7-404B-99C5-980FF8298832}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5018015-F6E7-404B-99C5-980FF8298832}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5018015-F6E7-404B-99C5-980FF8298832}.Release|Any CPU.Build.0 = Release|Any CPU + {0D650281-5B86-4A2C-9D09-41BD3846B072}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D650281-5B86-4A2C-9D09-41BD3846B072}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D650281-5B86-4A2C-9D09-41BD3846B072}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D650281-5B86-4A2C-9D09-41BD3846B072}.Release|Any CPU.Build.0 = Release|Any CPU + {01CEF916-5FF9-4566-A507-08FD019E04F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01CEF916-5FF9-4566-A507-08FD019E04F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01CEF916-5FF9-4566-A507-08FD019E04F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01CEF916-5FF9-4566-A507-08FD019E04F9}.Release|Any CPU.Build.0 = Release|Any CPU + {4DD667F9-B4EB-47DE-B5FF-6B30442AE921}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DD667F9-B4EB-47DE-B5FF-6B30442AE921}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DD667F9-B4EB-47DE-B5FF-6B30442AE921}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DD667F9-B4EB-47DE-B5FF-6B30442AE921}.Release|Any CPU.Build.0 = Release|Any CPU + {405D047F-59EB-47FA-A32D-FA4F5B97D5D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {405D047F-59EB-47FA-A32D-FA4F5B97D5D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {405D047F-59EB-47FA-A32D-FA4F5B97D5D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {405D047F-59EB-47FA-A32D-FA4F5B97D5D6}.Release|Any CPU.Build.0 = Release|Any CPU + {A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5E0AF8B-CB84-4C4D-8C08-768D7057CF4D}.Release|Any CPU.Build.0 = Release|Any CPU + {6D8F8AC7-027F-4DB9-9299-4F3873310B8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D8F8AC7-027F-4DB9-9299-4F3873310B8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D8F8AC7-027F-4DB9-9299-4F3873310B8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D8F8AC7-027F-4DB9-9299-4F3873310B8F}.Release|Any CPU.Build.0 = Release|Any CPU + {9F495CC2-5325-4F18-831C-8DEFB2F89206}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F495CC2-5325-4F18-831C-8DEFB2F89206}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F495CC2-5325-4F18-831C-8DEFB2F89206}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F495CC2-5325-4F18-831C-8DEFB2F89206}.Release|Any CPU.Build.0 = Release|Any CPU + {7D798B08-E806-4D50-A103-4F8F0F78770D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D798B08-E806-4D50-A103-4F8F0F78770D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D798B08-E806-4D50-A103-4F8F0F78770D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D798B08-E806-4D50-A103-4F8F0F78770D}.Release|Any CPU.Build.0 = Release|Any CPU + {263497F5-8AAC-4E15-97EC-4871E1E9606F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {263497F5-8AAC-4E15-97EC-4871E1E9606F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {263497F5-8AAC-4E15-97EC-4871E1E9606F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {263497F5-8AAC-4E15-97EC-4871E1E9606F}.Release|Any CPU.Build.0 = Release|Any CPU + {9355C322-9769-418B-9B00-09EF8E96D263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9355C322-9769-418B-9B00-09EF8E96D263}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9355C322-9769-418B-9B00-09EF8E96D263}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9355C322-9769-418B-9B00-09EF8E96D263}.Release|Any CPU.Build.0 = Release|Any CPU + {B059E91C-DA44-46BB-BD06-D208258ED8E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B059E91C-DA44-46BB-BD06-D208258ED8E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B059E91C-DA44-46BB-BD06-D208258ED8E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B059E91C-DA44-46BB-BD06-D208258ED8E7}.Release|Any CPU.Build.0 = Release|Any CPU + {9B6760CA-AC54-4549-9EA1-823BDF841BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B6760CA-AC54-4549-9EA1-823BDF841BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B6760CA-AC54-4549-9EA1-823BDF841BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B6760CA-AC54-4549-9EA1-823BDF841BCA}.Release|Any CPU.Build.0 = Release|Any CPU + {6A80D098-69EC-45FE-A064-4CBDFA44BA43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A80D098-69EC-45FE-A064-4CBDFA44BA43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A80D098-69EC-45FE-A064-4CBDFA44BA43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A80D098-69EC-45FE-A064-4CBDFA44BA43}.Release|Any CPU.Build.0 = Release|Any CPU + {4C29E3A6-45F5-4747-B471-A48EFDF88247}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C29E3A6-45F5-4747-B471-A48EFDF88247}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C29E3A6-45F5-4747-B471-A48EFDF88247}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C29E3A6-45F5-4747-B471-A48EFDF88247}.Release|Any CPU.Build.0 = Release|Any CPU + {FE50757B-7862-49D2-812E-1646F6FE0070}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE50757B-7862-49D2-812E-1646F6FE0070}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE50757B-7862-49D2-812E-1646F6FE0070}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE50757B-7862-49D2-812E-1646F6FE0070}.Release|Any CPU.Build.0 = Release|Any CPU + {F468EC97-5E8E-46F3-87A2-D2DEE53B4605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F468EC97-5E8E-46F3-87A2-D2DEE53B4605}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F468EC97-5E8E-46F3-87A2-D2DEE53B4605}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F468EC97-5E8E-46F3-87A2-D2DEE53B4605}.Release|Any CPU.Build.0 = Release|Any CPU + {B1723D4C-15E3-4A39-8976-C3E1740E5F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1723D4C-15E3-4A39-8976-C3E1740E5F00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1723D4C-15E3-4A39-8976-C3E1740E5F00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1723D4C-15E3-4A39-8976-C3E1740E5F00}.Release|Any CPU.Build.0 = Release|Any CPU + {791342A3-DA08-4775-8CC6-236D8769A805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {791342A3-DA08-4775-8CC6-236D8769A805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {791342A3-DA08-4775-8CC6-236D8769A805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {791342A3-DA08-4775-8CC6-236D8769A805}.Release|Any CPU.Build.0 = Release|Any CPU + {B9E03474-32B9-4D49-BF6F-2F17DAE8D699}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9E03474-32B9-4D49-BF6F-2F17DAE8D699}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9E03474-32B9-4D49-BF6F-2F17DAE8D699}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9E03474-32B9-4D49-BF6F-2F17DAE8D699}.Release|Any CPU.Build.0 = Release|Any CPU + {7517D0A0-5596-48B7-96EF-CB24DAD72675}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7517D0A0-5596-48B7-96EF-CB24DAD72675}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7517D0A0-5596-48B7-96EF-CB24DAD72675}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7517D0A0-5596-48B7-96EF-CB24DAD72675}.Release|Any CPU.Build.0 = Release|Any CPU + {A5591BC5-7A1C-4FBA-8C38-D46D3664D713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5591BC5-7A1C-4FBA-8C38-D46D3664D713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5591BC5-7A1C-4FBA-8C38-D46D3664D713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5591BC5-7A1C-4FBA-8C38-D46D3664D713}.Release|Any CPU.Build.0 = Release|Any CPU + {76EF09ED-019E-4A1B-BFF5-509E8AA691AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76EF09ED-019E-4A1B-BFF5-509E8AA691AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76EF09ED-019E-4A1B-BFF5-509E8AA691AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76EF09ED-019E-4A1B-BFF5-509E8AA691AD}.Release|Any CPU.Build.0 = Release|Any CPU + {BD19B1E7-CAFF-4009-874A-760D5A466E28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD19B1E7-CAFF-4009-874A-760D5A466E28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD19B1E7-CAFF-4009-874A-760D5A466E28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD19B1E7-CAFF-4009-874A-760D5A466E28}.Release|Any CPU.Build.0 = Release|Any CPU + {A49023C8-173A-4B8F-84B3-2FF37FE8344A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A49023C8-173A-4B8F-84B3-2FF37FE8344A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A49023C8-173A-4B8F-84B3-2FF37FE8344A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A49023C8-173A-4B8F-84B3-2FF37FE8344A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {39B9BECA-B7EA-426A-B1DF-91C1318AA1EB} = {DDBAD8C5-F7BE-4EB7-9B1F-AD8CAE548DB3} - {1B86310E-A8A9-497B-BA92-BB9E273DC1CE} = {8163E80F-4982-4BC2-A0AA-FF1284E62964} - {328889E2-78ED-4774-83FB-188BABA34FB9} = {EFA97506-2078-4F34-9491-9C300446FA64} - {14C31A82-8817-44FF-A28B-9B05797FDC4C} = {EFA97506-2078-4F34-9491-9C300446FA64} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6208DEC0-032F-495E-853B-A725B4DD1F45} + SolutionGuid = {2D9A0B20-A56C-4FBA-805A-DAAA97615597} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs index 17d8ea4a60f5..d8cdbc4438ad 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs @@ -3,27 +3,24 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; -using System.Linq; using System.Text.Json; namespace Microsoft.Extensions.Configuration.Json { - internal class JsonConfigurationFileParser + internal sealed class JsonConfigurationFileParser { private JsonConfigurationFileParser() { } - private readonly IDictionary _data = new SortedDictionary(StringComparer.OrdinalIgnoreCase); - private readonly Stack _context = new Stack(); - private string _currentPath; + private readonly SortedDictionary _data = new SortedDictionary(StringComparer.OrdinalIgnoreCase); + private readonly Stack _paths = new Stack(); public static IDictionary Parse(Stream input) => new JsonConfigurationFileParser().ParseStream(input); private IDictionary ParseStream(Stream input) { - _data.Clear(); - var jsonDocumentOptions = new JsonDocumentOptions { CommentHandling = JsonCommentHandling.Skip, @@ -55,22 +52,26 @@ private void VisitElement(JsonElement element) ExitContext(); } - if (isEmpty && _currentPath != null) + if (isEmpty && _paths.Count > 0) { - _data[_currentPath] = null; + _data[_paths.Peek()] = null; } } private void VisitValue(JsonElement value) { - switch (value.ValueKind) { + Debug.Assert(_paths.Count > 0); + + switch (value.ValueKind) + { case JsonValueKind.Object: VisitElement(value); break; case JsonValueKind.Array: int index = 0; - foreach (JsonElement arrayElement in value.EnumerateArray()) { + foreach (JsonElement arrayElement in value.EnumerateArray()) + { EnterContext(index.ToString()); VisitValue(arrayElement); ExitContext(); @@ -83,7 +84,7 @@ private void VisitValue(JsonElement value) case JsonValueKind.True: case JsonValueKind.False: case JsonValueKind.Null: - string key = _currentPath; + string key = _paths.Peek(); if (_data.ContainsKey(key)) { throw new FormatException(SR.Format(SR.Error_KeyIsDuplicated, key)); @@ -96,16 +97,11 @@ private void VisitValue(JsonElement value) } } - private void EnterContext(string context) - { - _context.Push(context); - _currentPath = ConfigurationPath.Combine(_context.Reverse()); - } + private void EnterContext(string context) => + _paths.Push(_paths.Count > 0 ? + _paths.Peek() + ConfigurationPath.KeyDelimiter + context : + context); - private void ExitContext() - { - _context.Pop(); - _currentPath = ConfigurationPath.Combine(_context.Reverse()); - } + private void ExitContext() => _paths.Pop(); } } diff --git a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/Microsoft.Extensions.Configuration.UserSecrets.sln b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/Microsoft.Extensions.Configuration.UserSecrets.sln index be4f140f892a..70e83c27bbb1 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/Microsoft.Extensions.Configuration.UserSecrets.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/Microsoft.Extensions.Configuration.UserSecrets.sln @@ -1,55 +1,226 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{AF104F7B-B3E9-4EE4-84CE-4F56D9F8FCFE}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0E83BD1A-DB95-4DC8-82C0-D380761B4285}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C09E450E-9666-4062-86CE-FD85407A5DEA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{A12F26F8-8161-4E9E-B55E-53A72BDE57BB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "src\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{54B89407-FCD9-4B1A-8F83-04585D437443}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{14AACC29-CD5B-4A3D-A2FB-9EEE2D42E683}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{925D218A-9DE4-4237-814B-BE68CC0D35E9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets.Tests", "tests\Microsoft.Extensions.Configuration.UserSecrets.Tests.csproj", "{3AEBC02F-98FB-409A-B387-C6B119A8411A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{DC24B0F6-C434-470F-9AAE-0C4CA59BF591}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "ref\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{B900DBCF-CCCC-4774-935A-356D924220D3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{32B3C48F-3691-496D-AE05-6E6D20B1D0BA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\ref\Microsoft.Extensions.Configuration.Json.csproj", "{08D7C8C6-53E5-42F7-9967-0F8173F56DC1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\src\Microsoft.Extensions.Configuration.Json.csproj", "{7A05EA4C-E84C-4498-AEF3-964DB25A8348}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "ref\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{E43F6FC6-A51D-473C-A942-7636CE5794DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "src\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{5B82C8CD-9F71-40D9-AF7D-F186EF57CB67}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets.Tests", "tests\Microsoft.Extensions.Configuration.UserSecrets.Tests.csproj", "{B1445194-8B98-467C-BC04-979E7D1B5942}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{C27ADB5F-A9DA-4D28-882C-B3C3D19156F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{26891E23-5E9D-4A36-996B-B41FEA3C0162}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{254B732C-0743-4493-80A2-BD92745A7C0C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{52E22D6B-87AB-4499-AE22-C834925456E9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{F5120F23-273D-4B52-A599-BBED17A48A08}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{CB0A5C33-5CDF-441D-8166-459437381CDD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{EA96A79C-A11A-46ED-8123-BF0EE908EA40}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{AFB63B04-4583-45CD-BA20-C7FC005AE81A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{EA38DF6E-D08D-4404-AE10-026C0856834C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{BD85452C-1434-40FF-8A2C-36BF135A22FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D3E66079-637E-4E62-8938-BFAA3D651D4E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{96003091-9E9D-42D5-85A6-C2DFBD9DD847}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{1EF04395-4D84-43F1-BD99-7F6D6C3D70BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F100A583-97C7-4662-BCF9-DC47F2E1459E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{72BACB89-0753-4439-B845-9348E9F2FA48}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{1555B38A-E9CB-4734-AAB1-59CFB833A06D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{82700778-D9AD-4B9D-8A1C-CDC1A19E4D54}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D9A8ACDF-4630-44C9-815F-25B5834F7A12}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DC695A2D-AB92-4FEB-B731-0D32EF004431}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B7108E25-336B-49CD-A387-37B037B8D026}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0E83BD1A-DB95-4DC8-82C0-D380761B4285} = {D9A8ACDF-4630-44C9-815F-25B5834F7A12} + {B1445194-8B98-467C-BC04-979E7D1B5942} = {D9A8ACDF-4630-44C9-815F-25B5834F7A12} + {A12F26F8-8161-4E9E-B55E-53A72BDE57BB} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {925D218A-9DE4-4237-814B-BE68CC0D35E9} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {32B3C48F-3691-496D-AE05-6E6D20B1D0BA} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {08D7C8C6-53E5-42F7-9967-0F8173F56DC1} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {E43F6FC6-A51D-473C-A942-7636CE5794DB} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {C27ADB5F-A9DA-4D28-882C-B3C3D19156F1} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {254B732C-0743-4493-80A2-BD92745A7C0C} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {F5120F23-273D-4B52-A599-BBED17A48A08} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {EA96A79C-A11A-46ED-8123-BF0EE908EA40} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {EA38DF6E-D08D-4404-AE10-026C0856834C} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {D3E66079-637E-4E62-8938-BFAA3D651D4E} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {96003091-9E9D-42D5-85A6-C2DFBD9DD847} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {F100A583-97C7-4662-BCF9-DC47F2E1459E} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {72BACB89-0753-4439-B845-9348E9F2FA48} = {DC695A2D-AB92-4FEB-B731-0D32EF004431} + {54B89407-FCD9-4B1A-8F83-04585D437443} = {B7108E25-336B-49CD-A387-37B037B8D026} + {DC24B0F6-C434-470F-9AAE-0C4CA59BF591} = {B7108E25-336B-49CD-A387-37B037B8D026} + {F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9} = {B7108E25-336B-49CD-A387-37B037B8D026} + {7A05EA4C-E84C-4498-AEF3-964DB25A8348} = {B7108E25-336B-49CD-A387-37B037B8D026} + {5B82C8CD-9F71-40D9-AF7D-F186EF57CB67} = {B7108E25-336B-49CD-A387-37B037B8D026} + {26891E23-5E9D-4A36-996B-B41FEA3C0162} = {B7108E25-336B-49CD-A387-37B037B8D026} + {52E22D6B-87AB-4499-AE22-C834925456E9} = {B7108E25-336B-49CD-A387-37B037B8D026} + {CB0A5C33-5CDF-441D-8166-459437381CDD} = {B7108E25-336B-49CD-A387-37B037B8D026} + {AFB63B04-4583-45CD-BA20-C7FC005AE81A} = {B7108E25-336B-49CD-A387-37B037B8D026} + {BD85452C-1434-40FF-8A2C-36BF135A22FE} = {B7108E25-336B-49CD-A387-37B037B8D026} + {1EF04395-4D84-43F1-BD99-7F6D6C3D70BB} = {B7108E25-336B-49CD-A387-37B037B8D026} + {1555B38A-E9CB-4734-AAB1-59CFB833A06D} = {B7108E25-336B-49CD-A387-37B037B8D026} + {82700778-D9AD-4B9D-8A1C-CDC1A19E4D54} = {B7108E25-336B-49CD-A387-37B037B8D026} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D}.Release|Any CPU.Build.0 = Release|Any CPU - {3AEBC02F-98FB-409A-B387-C6B119A8411A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3AEBC02F-98FB-409A-B387-C6B119A8411A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3AEBC02F-98FB-409A-B387-C6B119A8411A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3AEBC02F-98FB-409A-B387-C6B119A8411A}.Release|Any CPU.Build.0 = Release|Any CPU - {B900DBCF-CCCC-4774-935A-356D924220D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B900DBCF-CCCC-4774-935A-356D924220D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B900DBCF-CCCC-4774-935A-356D924220D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B900DBCF-CCCC-4774-935A-356D924220D3}.Release|Any CPU.Build.0 = Release|Any CPU - {2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2}.Release|Any CPU.Build.0 = Release|Any CPU + {0E83BD1A-DB95-4DC8-82C0-D380761B4285}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E83BD1A-DB95-4DC8-82C0-D380761B4285}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E83BD1A-DB95-4DC8-82C0-D380761B4285}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E83BD1A-DB95-4DC8-82C0-D380761B4285}.Release|Any CPU.Build.0 = Release|Any CPU + {A12F26F8-8161-4E9E-B55E-53A72BDE57BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A12F26F8-8161-4E9E-B55E-53A72BDE57BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A12F26F8-8161-4E9E-B55E-53A72BDE57BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A12F26F8-8161-4E9E-B55E-53A72BDE57BB}.Release|Any CPU.Build.0 = Release|Any CPU + {54B89407-FCD9-4B1A-8F83-04585D437443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54B89407-FCD9-4B1A-8F83-04585D437443}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54B89407-FCD9-4B1A-8F83-04585D437443}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54B89407-FCD9-4B1A-8F83-04585D437443}.Release|Any CPU.Build.0 = Release|Any CPU + {925D218A-9DE4-4237-814B-BE68CC0D35E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {925D218A-9DE4-4237-814B-BE68CC0D35E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {925D218A-9DE4-4237-814B-BE68CC0D35E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {925D218A-9DE4-4237-814B-BE68CC0D35E9}.Release|Any CPU.Build.0 = Release|Any CPU + {DC24B0F6-C434-470F-9AAE-0C4CA59BF591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC24B0F6-C434-470F-9AAE-0C4CA59BF591}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC24B0F6-C434-470F-9AAE-0C4CA59BF591}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC24B0F6-C434-470F-9AAE-0C4CA59BF591}.Release|Any CPU.Build.0 = Release|Any CPU + {32B3C48F-3691-496D-AE05-6E6D20B1D0BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32B3C48F-3691-496D-AE05-6E6D20B1D0BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32B3C48F-3691-496D-AE05-6E6D20B1D0BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32B3C48F-3691-496D-AE05-6E6D20B1D0BA}.Release|Any CPU.Build.0 = Release|Any CPU + {F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F002EEB1-D338-451C-BB2D-A4B9BA9CD5A9}.Release|Any CPU.Build.0 = Release|Any CPU + {08D7C8C6-53E5-42F7-9967-0F8173F56DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08D7C8C6-53E5-42F7-9967-0F8173F56DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08D7C8C6-53E5-42F7-9967-0F8173F56DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08D7C8C6-53E5-42F7-9967-0F8173F56DC1}.Release|Any CPU.Build.0 = Release|Any CPU + {7A05EA4C-E84C-4498-AEF3-964DB25A8348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A05EA4C-E84C-4498-AEF3-964DB25A8348}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A05EA4C-E84C-4498-AEF3-964DB25A8348}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A05EA4C-E84C-4498-AEF3-964DB25A8348}.Release|Any CPU.Build.0 = Release|Any CPU + {E43F6FC6-A51D-473C-A942-7636CE5794DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E43F6FC6-A51D-473C-A942-7636CE5794DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E43F6FC6-A51D-473C-A942-7636CE5794DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E43F6FC6-A51D-473C-A942-7636CE5794DB}.Release|Any CPU.Build.0 = Release|Any CPU + {5B82C8CD-9F71-40D9-AF7D-F186EF57CB67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B82C8CD-9F71-40D9-AF7D-F186EF57CB67}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B82C8CD-9F71-40D9-AF7D-F186EF57CB67}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B82C8CD-9F71-40D9-AF7D-F186EF57CB67}.Release|Any CPU.Build.0 = Release|Any CPU + {B1445194-8B98-467C-BC04-979E7D1B5942}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1445194-8B98-467C-BC04-979E7D1B5942}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1445194-8B98-467C-BC04-979E7D1B5942}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1445194-8B98-467C-BC04-979E7D1B5942}.Release|Any CPU.Build.0 = Release|Any CPU + {C27ADB5F-A9DA-4D28-882C-B3C3D19156F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C27ADB5F-A9DA-4D28-882C-B3C3D19156F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C27ADB5F-A9DA-4D28-882C-B3C3D19156F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C27ADB5F-A9DA-4D28-882C-B3C3D19156F1}.Release|Any CPU.Build.0 = Release|Any CPU + {26891E23-5E9D-4A36-996B-B41FEA3C0162}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26891E23-5E9D-4A36-996B-B41FEA3C0162}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26891E23-5E9D-4A36-996B-B41FEA3C0162}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26891E23-5E9D-4A36-996B-B41FEA3C0162}.Release|Any CPU.Build.0 = Release|Any CPU + {254B732C-0743-4493-80A2-BD92745A7C0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {254B732C-0743-4493-80A2-BD92745A7C0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {254B732C-0743-4493-80A2-BD92745A7C0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {254B732C-0743-4493-80A2-BD92745A7C0C}.Release|Any CPU.Build.0 = Release|Any CPU + {52E22D6B-87AB-4499-AE22-C834925456E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52E22D6B-87AB-4499-AE22-C834925456E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52E22D6B-87AB-4499-AE22-C834925456E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52E22D6B-87AB-4499-AE22-C834925456E9}.Release|Any CPU.Build.0 = Release|Any CPU + {F5120F23-273D-4B52-A599-BBED17A48A08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5120F23-273D-4B52-A599-BBED17A48A08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5120F23-273D-4B52-A599-BBED17A48A08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5120F23-273D-4B52-A599-BBED17A48A08}.Release|Any CPU.Build.0 = Release|Any CPU + {CB0A5C33-5CDF-441D-8166-459437381CDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB0A5C33-5CDF-441D-8166-459437381CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB0A5C33-5CDF-441D-8166-459437381CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB0A5C33-5CDF-441D-8166-459437381CDD}.Release|Any CPU.Build.0 = Release|Any CPU + {EA96A79C-A11A-46ED-8123-BF0EE908EA40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA96A79C-A11A-46ED-8123-BF0EE908EA40}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA96A79C-A11A-46ED-8123-BF0EE908EA40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA96A79C-A11A-46ED-8123-BF0EE908EA40}.Release|Any CPU.Build.0 = Release|Any CPU + {AFB63B04-4583-45CD-BA20-C7FC005AE81A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFB63B04-4583-45CD-BA20-C7FC005AE81A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFB63B04-4583-45CD-BA20-C7FC005AE81A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFB63B04-4583-45CD-BA20-C7FC005AE81A}.Release|Any CPU.Build.0 = Release|Any CPU + {EA38DF6E-D08D-4404-AE10-026C0856834C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA38DF6E-D08D-4404-AE10-026C0856834C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA38DF6E-D08D-4404-AE10-026C0856834C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA38DF6E-D08D-4404-AE10-026C0856834C}.Release|Any CPU.Build.0 = Release|Any CPU + {BD85452C-1434-40FF-8A2C-36BF135A22FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD85452C-1434-40FF-8A2C-36BF135A22FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD85452C-1434-40FF-8A2C-36BF135A22FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD85452C-1434-40FF-8A2C-36BF135A22FE}.Release|Any CPU.Build.0 = Release|Any CPU + {D3E66079-637E-4E62-8938-BFAA3D651D4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3E66079-637E-4E62-8938-BFAA3D651D4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3E66079-637E-4E62-8938-BFAA3D651D4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3E66079-637E-4E62-8938-BFAA3D651D4E}.Release|Any CPU.Build.0 = Release|Any CPU + {96003091-9E9D-42D5-85A6-C2DFBD9DD847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96003091-9E9D-42D5-85A6-C2DFBD9DD847}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96003091-9E9D-42D5-85A6-C2DFBD9DD847}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96003091-9E9D-42D5-85A6-C2DFBD9DD847}.Release|Any CPU.Build.0 = Release|Any CPU + {1EF04395-4D84-43F1-BD99-7F6D6C3D70BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EF04395-4D84-43F1-BD99-7F6D6C3D70BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EF04395-4D84-43F1-BD99-7F6D6C3D70BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EF04395-4D84-43F1-BD99-7F6D6C3D70BB}.Release|Any CPU.Build.0 = Release|Any CPU + {F100A583-97C7-4662-BCF9-DC47F2E1459E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F100A583-97C7-4662-BCF9-DC47F2E1459E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F100A583-97C7-4662-BCF9-DC47F2E1459E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F100A583-97C7-4662-BCF9-DC47F2E1459E}.Release|Any CPU.Build.0 = Release|Any CPU + {72BACB89-0753-4439-B845-9348E9F2FA48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72BACB89-0753-4439-B845-9348E9F2FA48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72BACB89-0753-4439-B845-9348E9F2FA48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72BACB89-0753-4439-B845-9348E9F2FA48}.Release|Any CPU.Build.0 = Release|Any CPU + {1555B38A-E9CB-4734-AAB1-59CFB833A06D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1555B38A-E9CB-4734-AAB1-59CFB833A06D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1555B38A-E9CB-4734-AAB1-59CFB833A06D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1555B38A-E9CB-4734-AAB1-59CFB833A06D}.Release|Any CPU.Build.0 = Release|Any CPU + {82700778-D9AD-4B9D-8A1C-CDC1A19E4D54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82700778-D9AD-4B9D-8A1C-CDC1A19E4D54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82700778-D9AD-4B9D-8A1C-CDC1A19E4D54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82700778-D9AD-4B9D-8A1C-CDC1A19E4D54}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F26BD9D3-D2B9-41BF-8A4C-A7DE13F66F9D} = {C09E450E-9666-4062-86CE-FD85407A5DEA} - {3AEBC02F-98FB-409A-B387-C6B119A8411A} = {14AACC29-CD5B-4A3D-A2FB-9EEE2D42E683} - {B900DBCF-CCCC-4774-935A-356D924220D3} = {AF104F7B-B3E9-4EE4-84CE-4F56D9F8FCFE} - {2C4CCAA8-BC71-44A6-B58B-113A6CF0A4A2} = {14AACC29-CD5B-4A3D-A2FB-9EEE2D42E683} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {907BC82F-9820-431B-B62F-3695F3B0BE65} + SolutionGuid = {E7F79175-49DD-42AD-833B-AE64950FE3D2} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/src/UserSecretsConfigurationExtensions.cs b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/src/UserSecretsConfigurationExtensions.cs index 0da3963fe2aa..86139faf9b02 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/src/UserSecretsConfigurationExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/src/UserSecretsConfigurationExtensions.cs @@ -29,7 +29,7 @@ public static class UserSecretsConfigurationExtensions /// The configuration builder. public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder configuration) where T : class - => configuration.AddUserSecrets(typeof(T).GetTypeInfo().Assembly, optional: false, reloadOnChange: false); + => configuration.AddUserSecrets(typeof(T).Assembly, optional: false, reloadOnChange: false); /// /// @@ -47,7 +47,7 @@ public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder /// The configuration builder. public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder configuration, bool optional) where T : class - => configuration.AddUserSecrets(typeof(T).GetTypeInfo().Assembly, optional, reloadOnChange: false); + => configuration.AddUserSecrets(typeof(T).Assembly, optional, reloadOnChange: false); /// /// @@ -66,7 +66,7 @@ public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder /// The configuration builder. public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder configuration, bool optional, bool reloadOnChange) where T : class - => configuration.AddUserSecrets(typeof(T).GetTypeInfo().Assembly, optional, reloadOnChange); + => configuration.AddUserSecrets(typeof(T).Assembly, optional, reloadOnChange); /// /// @@ -131,7 +131,7 @@ public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder co UserSecretsIdAttribute attribute = assembly.GetCustomAttribute(); if (attribute != null) { - return AddUserSecrets(configuration, attribute.UserSecretsId, reloadOnChange); + return AddUserSecretsInternal(configuration, attribute.UserSecretsId, optional, reloadOnChange); } if (!optional) @@ -169,6 +169,9 @@ public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder co /// Whether the configuration should be reloaded if the file changes. /// The configuration builder. public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder configuration, string userSecretsId, bool reloadOnChange) + => AddUserSecretsInternal(configuration, userSecretsId, true, reloadOnChange); + + private static IConfigurationBuilder AddUserSecretsInternal(IConfigurationBuilder configuration, string userSecretsId, bool optional, bool reloadOnChange) { if (configuration == null) { @@ -180,16 +183,16 @@ public static IConfigurationBuilder AddUserSecrets(this IConfigurationBuilder co throw new ArgumentNullException(nameof(userSecretsId)); } - return AddSecretsFile(configuration, PathHelper.GetSecretsPathFromSecretsId(userSecretsId), reloadOnChange); + return AddSecretsFile(configuration, PathHelper.GetSecretsPathFromSecretsId(userSecretsId), optional, reloadOnChange); } - private static IConfigurationBuilder AddSecretsFile(IConfigurationBuilder configuration, string secretPath, bool reloadOnChange) + private static IConfigurationBuilder AddSecretsFile(IConfigurationBuilder configuration, string secretPath, bool optional, bool reloadOnChange) { string directoryPath = Path.GetDirectoryName(secretPath); PhysicalFileProvider fileProvider = Directory.Exists(directoryPath) ? new PhysicalFileProvider(directoryPath) : null; - return configuration.AddJsonFile(fileProvider, PathHelper.SecretsFileName, optional: true, reloadOnChange); + return configuration.AddJsonFile(fileProvider, PathHelper.SecretsFileName, optional, reloadOnChange); } } } diff --git a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/tests/ConfigurationExtensionTest.cs b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/tests/ConfigurationExtensionTest.cs index 6f59604a79e1..7859e9f01f5f 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/tests/ConfigurationExtensionTest.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.UserSecrets/tests/ConfigurationExtensionTest.cs @@ -60,7 +60,7 @@ public void AddUserSecrets_FindsAssemblyAttribute() SetSecret(TestSecretsId, configKey, randValue); var config = new ConfigurationBuilder() - .AddUserSecrets(typeof(ConfigurationExtensionTest).GetTypeInfo().Assembly) + .AddUserSecrets(typeof(ConfigurationExtensionTest).Assembly) .Build(); Assert.Equal(randValue, config[configKey]); @@ -86,12 +86,12 @@ public void AddUserSecrets_ThrowsIfAssemblyAttributeFromType() { var ex = Assert.Throws(() => new ConfigurationBuilder().AddUserSecrets()); - Assert.Equal(SR.Format(SR.Error_Missing_UserSecretsIdAttribute, typeof(string).GetTypeInfo().Assembly.GetName().Name), + Assert.Equal(SR.Format(SR.Error_Missing_UserSecretsIdAttribute, typeof(string).Assembly.GetName().Name), ex.Message); ex = Assert.Throws(() => new ConfigurationBuilder().AddUserSecrets(typeof(JObject).Assembly)); - Assert.Equal(SR.Format(SR.Error_Missing_UserSecretsIdAttribute, typeof(JObject).GetTypeInfo().Assembly.GetName().Name), + Assert.Equal(SR.Format(SR.Error_Missing_UserSecretsIdAttribute, typeof(JObject).Assembly.GetName().Name), ex.Message); } @@ -107,6 +107,19 @@ public void AddUserSecrets_DoesNotThrowsIfOptional() Assert.Empty(config.AsEnumerable()); } + [Fact] + public void AddUserSecrets_DoesThrowsIfNotOptionalAndSecretDoesNotExist() + { + var secretId = Assembly.GetExecutingAssembly().GetName().Name; + var secretPath = PathHelper.GetSecretsPathFromSecretsId(secretId); + if (File.Exists(secretPath)) + { + File.Delete(secretPath); + } + + Assert.Throws(() => new ConfigurationBuilder().AddUserSecrets(Assembly.GetExecutingAssembly(), false).Build()); + } + [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/34580", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] public void AddUserSecrets_With_SecretsId_Passed_Explicitly() diff --git a/src/libraries/Microsoft.Extensions.Configuration.Xml/Microsoft.Extensions.Configuration.Xml.sln b/src/libraries/Microsoft.Extensions.Configuration.Xml/Microsoft.Extensions.Configuration.Xml.sln index 4faa3916b83a..9e53feaf15e6 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Xml/Microsoft.Extensions.Configuration.Xml.sln +++ b/src/libraries/Microsoft.Extensions.Configuration.Xml/Microsoft.Extensions.Configuration.Xml.sln @@ -1,55 +1,261 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E2D8A805-CD9B-401A-B59D-7595D52C7F58}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8AF3BFFC-9727-4E21-8E91-11501C9F97E4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EE6F53E0-F044-4384-A640-AE848CDBC57E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{B1E05D83-5479-43B7-B25C-D8243FE6B89F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "ref\Microsoft.Extensions.Configuration.Xml.csproj", "{01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{9C73A2E3-B370-4B24-ACB0-0C3A9069250D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "src\Microsoft.Extensions.Configuration.Xml.csproj", "{E802E1BC-E55F-4604-A8B9-124E8D197D55}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{81370E0B-BC7E-4F49-BCF1-49E0F67F75F4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B601F02A-9852-4652-B10B-EFB3919A2BC1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{21E44CA2-5355-4092-9EF7-A94520EBDD40}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml.Tests", "tests\Microsoft.Extensions.Configuration.Xml.Tests.csproj", "{607DD5BC-423D-4F97-87DE-C99A61B610C9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{CA8D3F2F-410D-4E32-B104-12929767D1A8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{24086C77-1DEE-44BE-9FC2-DE00CC9BE021}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{EFC0C2A3-1F51-4299-BE43-78284F6AC670}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "ref\Microsoft.Extensions.Configuration.Xml.csproj", "{A9B02E45-3372-48F4-8761-46F916400B6E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "src\Microsoft.Extensions.Configuration.Xml.csproj", "{5CB1D123-853E-4FE7-9484-AAAD7330897C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml.Tests", "tests\Microsoft.Extensions.Configuration.Xml.Tests.csproj", "{B05F7183-70C1-4C10-9FFE-66301E0B076B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{1999A9E7-2C0F-4C1D-8656-6FA5B0F32469}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{EEA5C768-9A81-4BDC-A9DD-30A2591D63FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{564B50A2-16A3-4AE9-ABE0-F1582F3E97C6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{600CBFCA-5F97-47EE-8AE9-B6262E1A764B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{03A8EBF2-F912-480F-99E1-34A9A33DD525}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{981358A2-F5ED-45CE-B037-446BB0F4E859}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{6824AD93-4154-4710-A018-81DA1FA98C40}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{4039B868-612D-420F-BC25-481660475CA8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{26C61EB7-2798-4314-B750-8CD2837D4216}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1B0E1204-F3BF-4410-BAA1-256DC40EE47B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{1AE88632-F602-4B2F-A269-A7631A361FA7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{78F4F9EE-7E1D-41B5-B55A-850C1282EA99}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5B866430-6F0B-49F1-8294-7B07F766797A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{04F0A4D7-E743-4EFF-9FBD-604309FD075A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{A383D45E-58AC-4FC2-AB1E-0BF8666C8623}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "..\System.Security.Cryptography.Xml\ref\System.Security.Cryptography.Xml.csproj", "{A3C9F01C-6D4D-413B-BADE-A8B9046F985F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "..\System.Security.Cryptography.Xml\src\System.Security.Cryptography.Xml.csproj", "{8CBDDA63-8388-42AF-934E-7C60832A9B1C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{00C86D9C-1A45-49C7-91E6-24BBBF8950CB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{B25AD126-F78D-45CC-AD06-6F1E03D570DA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{74732589-C551-4DEF-B56C-B489400D9951}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{D80C2723-C720-4CDF-8DCF-0338799E9121}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{00DA7CF9-86B4-4991-B760-CB3AAB31EED0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{C77305BE-823E-487F-825E-9C26E0674CC6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3732BEA1-D7F7-4F49-A0F8-2317280E104A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9B998EDD-24C1-4B8E-87F3-6148ED458015}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6236136E-39F1-41AB-BB7A-0A6169D77730}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8AF3BFFC-9727-4E21-8E91-11501C9F97E4} = {3732BEA1-D7F7-4F49-A0F8-2317280E104A} + {B05F7183-70C1-4C10-9FFE-66301E0B076B} = {3732BEA1-D7F7-4F49-A0F8-2317280E104A} + {B1E05D83-5479-43B7-B25C-D8243FE6B89F} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {81370E0B-BC7E-4F49-BCF1-49E0F67F75F4} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {CA8D3F2F-410D-4E32-B104-12929767D1A8} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {A9B02E45-3372-48F4-8761-46F916400B6E} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {EEA5C768-9A81-4BDC-A9DD-30A2591D63FE} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {600CBFCA-5F97-47EE-8AE9-B6262E1A764B} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {981358A2-F5ED-45CE-B037-446BB0F4E859} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {4039B868-612D-420F-BC25-481660475CA8} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {1B0E1204-F3BF-4410-BAA1-256DC40EE47B} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {1AE88632-F602-4B2F-A269-A7631A361FA7} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {78F4F9EE-7E1D-41B5-B55A-850C1282EA99} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {04F0A4D7-E743-4EFF-9FBD-604309FD075A} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {A3C9F01C-6D4D-413B-BADE-A8B9046F985F} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {00C86D9C-1A45-49C7-91E6-24BBBF8950CB} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {74732589-C551-4DEF-B56C-B489400D9951} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {00DA7CF9-86B4-4991-B760-CB3AAB31EED0} = {9B998EDD-24C1-4B8E-87F3-6148ED458015} + {9C73A2E3-B370-4B24-ACB0-0C3A9069250D} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {21E44CA2-5355-4092-9EF7-A94520EBDD40} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {EFC0C2A3-1F51-4299-BE43-78284F6AC670} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {5CB1D123-853E-4FE7-9484-AAAD7330897C} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {1999A9E7-2C0F-4C1D-8656-6FA5B0F32469} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {564B50A2-16A3-4AE9-ABE0-F1582F3E97C6} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {03A8EBF2-F912-480F-99E1-34A9A33DD525} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {6824AD93-4154-4710-A018-81DA1FA98C40} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {26C61EB7-2798-4314-B750-8CD2837D4216} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {5B866430-6F0B-49F1-8294-7B07F766797A} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {A383D45E-58AC-4FC2-AB1E-0BF8666C8623} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {8CBDDA63-8388-42AF-934E-7C60832A9B1C} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {B25AD126-F78D-45CC-AD06-6F1E03D570DA} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {D80C2723-C720-4CDF-8DCF-0338799E9121} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + {C77305BE-823E-487F-825E-9C26E0674CC6} = {6236136E-39F1-41AB-BB7A-0A6169D77730} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22}.Release|Any CPU.Build.0 = Release|Any CPU - {E802E1BC-E55F-4604-A8B9-124E8D197D55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E802E1BC-E55F-4604-A8B9-124E8D197D55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E802E1BC-E55F-4604-A8B9-124E8D197D55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E802E1BC-E55F-4604-A8B9-124E8D197D55}.Release|Any CPU.Build.0 = Release|Any CPU - {607DD5BC-423D-4F97-87DE-C99A61B610C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {607DD5BC-423D-4F97-87DE-C99A61B610C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {607DD5BC-423D-4F97-87DE-C99A61B610C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {607DD5BC-423D-4F97-87DE-C99A61B610C9}.Release|Any CPU.Build.0 = Release|Any CPU - {24086C77-1DEE-44BE-9FC2-DE00CC9BE021}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {24086C77-1DEE-44BE-9FC2-DE00CC9BE021}.Debug|Any CPU.Build.0 = Debug|Any CPU - {24086C77-1DEE-44BE-9FC2-DE00CC9BE021}.Release|Any CPU.ActiveCfg = Release|Any CPU - {24086C77-1DEE-44BE-9FC2-DE00CC9BE021}.Release|Any CPU.Build.0 = Release|Any CPU + {8AF3BFFC-9727-4E21-8E91-11501C9F97E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AF3BFFC-9727-4E21-8E91-11501C9F97E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AF3BFFC-9727-4E21-8E91-11501C9F97E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AF3BFFC-9727-4E21-8E91-11501C9F97E4}.Release|Any CPU.Build.0 = Release|Any CPU + {B1E05D83-5479-43B7-B25C-D8243FE6B89F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1E05D83-5479-43B7-B25C-D8243FE6B89F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1E05D83-5479-43B7-B25C-D8243FE6B89F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1E05D83-5479-43B7-B25C-D8243FE6B89F}.Release|Any CPU.Build.0 = Release|Any CPU + {9C73A2E3-B370-4B24-ACB0-0C3A9069250D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C73A2E3-B370-4B24-ACB0-0C3A9069250D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C73A2E3-B370-4B24-ACB0-0C3A9069250D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C73A2E3-B370-4B24-ACB0-0C3A9069250D}.Release|Any CPU.Build.0 = Release|Any CPU + {81370E0B-BC7E-4F49-BCF1-49E0F67F75F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81370E0B-BC7E-4F49-BCF1-49E0F67F75F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81370E0B-BC7E-4F49-BCF1-49E0F67F75F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81370E0B-BC7E-4F49-BCF1-49E0F67F75F4}.Release|Any CPU.Build.0 = Release|Any CPU + {21E44CA2-5355-4092-9EF7-A94520EBDD40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21E44CA2-5355-4092-9EF7-A94520EBDD40}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21E44CA2-5355-4092-9EF7-A94520EBDD40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21E44CA2-5355-4092-9EF7-A94520EBDD40}.Release|Any CPU.Build.0 = Release|Any CPU + {CA8D3F2F-410D-4E32-B104-12929767D1A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA8D3F2F-410D-4E32-B104-12929767D1A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA8D3F2F-410D-4E32-B104-12929767D1A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA8D3F2F-410D-4E32-B104-12929767D1A8}.Release|Any CPU.Build.0 = Release|Any CPU + {EFC0C2A3-1F51-4299-BE43-78284F6AC670}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFC0C2A3-1F51-4299-BE43-78284F6AC670}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFC0C2A3-1F51-4299-BE43-78284F6AC670}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFC0C2A3-1F51-4299-BE43-78284F6AC670}.Release|Any CPU.Build.0 = Release|Any CPU + {A9B02E45-3372-48F4-8761-46F916400B6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9B02E45-3372-48F4-8761-46F916400B6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9B02E45-3372-48F4-8761-46F916400B6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9B02E45-3372-48F4-8761-46F916400B6E}.Release|Any CPU.Build.0 = Release|Any CPU + {5CB1D123-853E-4FE7-9484-AAAD7330897C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5CB1D123-853E-4FE7-9484-AAAD7330897C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5CB1D123-853E-4FE7-9484-AAAD7330897C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5CB1D123-853E-4FE7-9484-AAAD7330897C}.Release|Any CPU.Build.0 = Release|Any CPU + {B05F7183-70C1-4C10-9FFE-66301E0B076B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B05F7183-70C1-4C10-9FFE-66301E0B076B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B05F7183-70C1-4C10-9FFE-66301E0B076B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B05F7183-70C1-4C10-9FFE-66301E0B076B}.Release|Any CPU.Build.0 = Release|Any CPU + {5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BF7DAFC-8D2A-43A2-82F9-4BD0E3A62126}.Release|Any CPU.Build.0 = Release|Any CPU + {1999A9E7-2C0F-4C1D-8656-6FA5B0F32469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1999A9E7-2C0F-4C1D-8656-6FA5B0F32469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1999A9E7-2C0F-4C1D-8656-6FA5B0F32469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1999A9E7-2C0F-4C1D-8656-6FA5B0F32469}.Release|Any CPU.Build.0 = Release|Any CPU + {EEA5C768-9A81-4BDC-A9DD-30A2591D63FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEA5C768-9A81-4BDC-A9DD-30A2591D63FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEA5C768-9A81-4BDC-A9DD-30A2591D63FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEA5C768-9A81-4BDC-A9DD-30A2591D63FE}.Release|Any CPU.Build.0 = Release|Any CPU + {564B50A2-16A3-4AE9-ABE0-F1582F3E97C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {564B50A2-16A3-4AE9-ABE0-F1582F3E97C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {564B50A2-16A3-4AE9-ABE0-F1582F3E97C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {564B50A2-16A3-4AE9-ABE0-F1582F3E97C6}.Release|Any CPU.Build.0 = Release|Any CPU + {600CBFCA-5F97-47EE-8AE9-B6262E1A764B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {600CBFCA-5F97-47EE-8AE9-B6262E1A764B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {600CBFCA-5F97-47EE-8AE9-B6262E1A764B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {600CBFCA-5F97-47EE-8AE9-B6262E1A764B}.Release|Any CPU.Build.0 = Release|Any CPU + {03A8EBF2-F912-480F-99E1-34A9A33DD525}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03A8EBF2-F912-480F-99E1-34A9A33DD525}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03A8EBF2-F912-480F-99E1-34A9A33DD525}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03A8EBF2-F912-480F-99E1-34A9A33DD525}.Release|Any CPU.Build.0 = Release|Any CPU + {981358A2-F5ED-45CE-B037-446BB0F4E859}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {981358A2-F5ED-45CE-B037-446BB0F4E859}.Debug|Any CPU.Build.0 = Debug|Any CPU + {981358A2-F5ED-45CE-B037-446BB0F4E859}.Release|Any CPU.ActiveCfg = Release|Any CPU + {981358A2-F5ED-45CE-B037-446BB0F4E859}.Release|Any CPU.Build.0 = Release|Any CPU + {6824AD93-4154-4710-A018-81DA1FA98C40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6824AD93-4154-4710-A018-81DA1FA98C40}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6824AD93-4154-4710-A018-81DA1FA98C40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6824AD93-4154-4710-A018-81DA1FA98C40}.Release|Any CPU.Build.0 = Release|Any CPU + {4039B868-612D-420F-BC25-481660475CA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4039B868-612D-420F-BC25-481660475CA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4039B868-612D-420F-BC25-481660475CA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4039B868-612D-420F-BC25-481660475CA8}.Release|Any CPU.Build.0 = Release|Any CPU + {26C61EB7-2798-4314-B750-8CD2837D4216}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26C61EB7-2798-4314-B750-8CD2837D4216}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26C61EB7-2798-4314-B750-8CD2837D4216}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26C61EB7-2798-4314-B750-8CD2837D4216}.Release|Any CPU.Build.0 = Release|Any CPU + {1B0E1204-F3BF-4410-BAA1-256DC40EE47B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B0E1204-F3BF-4410-BAA1-256DC40EE47B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B0E1204-F3BF-4410-BAA1-256DC40EE47B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B0E1204-F3BF-4410-BAA1-256DC40EE47B}.Release|Any CPU.Build.0 = Release|Any CPU + {1AE88632-F602-4B2F-A269-A7631A361FA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AE88632-F602-4B2F-A269-A7631A361FA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AE88632-F602-4B2F-A269-A7631A361FA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AE88632-F602-4B2F-A269-A7631A361FA7}.Release|Any CPU.Build.0 = Release|Any CPU + {78F4F9EE-7E1D-41B5-B55A-850C1282EA99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78F4F9EE-7E1D-41B5-B55A-850C1282EA99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78F4F9EE-7E1D-41B5-B55A-850C1282EA99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78F4F9EE-7E1D-41B5-B55A-850C1282EA99}.Release|Any CPU.Build.0 = Release|Any CPU + {5B866430-6F0B-49F1-8294-7B07F766797A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B866430-6F0B-49F1-8294-7B07F766797A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B866430-6F0B-49F1-8294-7B07F766797A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B866430-6F0B-49F1-8294-7B07F766797A}.Release|Any CPU.Build.0 = Release|Any CPU + {04F0A4D7-E743-4EFF-9FBD-604309FD075A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04F0A4D7-E743-4EFF-9FBD-604309FD075A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04F0A4D7-E743-4EFF-9FBD-604309FD075A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04F0A4D7-E743-4EFF-9FBD-604309FD075A}.Release|Any CPU.Build.0 = Release|Any CPU + {A383D45E-58AC-4FC2-AB1E-0BF8666C8623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A383D45E-58AC-4FC2-AB1E-0BF8666C8623}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A383D45E-58AC-4FC2-AB1E-0BF8666C8623}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A383D45E-58AC-4FC2-AB1E-0BF8666C8623}.Release|Any CPU.Build.0 = Release|Any CPU + {A3C9F01C-6D4D-413B-BADE-A8B9046F985F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3C9F01C-6D4D-413B-BADE-A8B9046F985F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3C9F01C-6D4D-413B-BADE-A8B9046F985F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3C9F01C-6D4D-413B-BADE-A8B9046F985F}.Release|Any CPU.Build.0 = Release|Any CPU + {8CBDDA63-8388-42AF-934E-7C60832A9B1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CBDDA63-8388-42AF-934E-7C60832A9B1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CBDDA63-8388-42AF-934E-7C60832A9B1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CBDDA63-8388-42AF-934E-7C60832A9B1C}.Release|Any CPU.Build.0 = Release|Any CPU + {00C86D9C-1A45-49C7-91E6-24BBBF8950CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00C86D9C-1A45-49C7-91E6-24BBBF8950CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00C86D9C-1A45-49C7-91E6-24BBBF8950CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00C86D9C-1A45-49C7-91E6-24BBBF8950CB}.Release|Any CPU.Build.0 = Release|Any CPU + {B25AD126-F78D-45CC-AD06-6F1E03D570DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B25AD126-F78D-45CC-AD06-6F1E03D570DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B25AD126-F78D-45CC-AD06-6F1E03D570DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B25AD126-F78D-45CC-AD06-6F1E03D570DA}.Release|Any CPU.Build.0 = Release|Any CPU + {74732589-C551-4DEF-B56C-B489400D9951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74732589-C551-4DEF-B56C-B489400D9951}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74732589-C551-4DEF-B56C-B489400D9951}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74732589-C551-4DEF-B56C-B489400D9951}.Release|Any CPU.Build.0 = Release|Any CPU + {D80C2723-C720-4CDF-8DCF-0338799E9121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D80C2723-C720-4CDF-8DCF-0338799E9121}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D80C2723-C720-4CDF-8DCF-0338799E9121}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D80C2723-C720-4CDF-8DCF-0338799E9121}.Release|Any CPU.Build.0 = Release|Any CPU + {00DA7CF9-86B4-4991-B760-CB3AAB31EED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00DA7CF9-86B4-4991-B760-CB3AAB31EED0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00DA7CF9-86B4-4991-B760-CB3AAB31EED0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00DA7CF9-86B4-4991-B760-CB3AAB31EED0}.Release|Any CPU.Build.0 = Release|Any CPU + {C77305BE-823E-487F-825E-9C26E0674CC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C77305BE-823E-487F-825E-9C26E0674CC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C77305BE-823E-487F-825E-9C26E0674CC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C77305BE-823E-487F-825E-9C26E0674CC6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {01FFE706-A7B1-4ED5-8CE7-80F7E76BAA22} = {E2D8A805-CD9B-401A-B59D-7595D52C7F58} - {E802E1BC-E55F-4604-A8B9-124E8D197D55} = {EE6F53E0-F044-4384-A640-AE848CDBC57E} - {607DD5BC-423D-4F97-87DE-C99A61B610C9} = {B601F02A-9852-4652-B10B-EFB3919A2BC1} - {24086C77-1DEE-44BE-9FC2-DE00CC9BE021} = {B601F02A-9852-4652-B10B-EFB3919A2BC1} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {52BB33A4-0192-4938-AFEF-8712C028449E} + SolutionGuid = {830494DE-07B3-4C63-9D74-4A123677D469} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration/Microsoft.Extensions.Configuration.sln b/src/libraries/Microsoft.Extensions.Configuration/Microsoft.Extensions.Configuration.sln index 8f9477764eff..81e3ccdd6b8e 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/Microsoft.Extensions.Configuration.sln +++ b/src/libraries/Microsoft.Extensions.Configuration/Microsoft.Extensions.Configuration.sln @@ -1,65 +1,366 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{C5F14D7C-F4F1-4428-9067-B13C831DF521}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6B148547-AC7D-45DC-A059-064D72A6E501}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{928FE2B9-8D33-49F6-BEE1-70E7C641B476}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{32CE4366-07A8-4874-9A12-46D5430A2203}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4ADA9C07-0B5F-4D6C-BC93-C4072C9C3FF5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{CDC60461-56B7-4941-AD08-90228BD450CE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "ref\Microsoft.Extensions.Configuration.csproj", "{C5DB9130-1A0B-4817-83EF-92230089D29A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{8C395040-9876-47BE-A2EE-4485A6815F89}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "src\Microsoft.Extensions.Configuration.csproj", "{0B090AAC-BD29-4348-8805-5D025453B3AD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{9AF25AFA-6E25-4CA1-AD4F-FF77FD771714}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{D2F146C5-E638-46CC-9BEC-200427ED75EB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{D4008AFA-F81B-4879-A059-438355A77754}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Functional.Tests", "tests\FunctionalTests\Microsoft.Extensions.Configuration.Functional.Tests.csproj", "{6B9E1F2C-EA59-4E80-9876-C86139A5229F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Tests", "tests\Microsoft.Extensions.Configuration.Tests.csproj", "{5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "..\Microsoft.Extensions.Configuration.CommandLine\ref\Microsoft.Extensions.Configuration.CommandLine.csproj", "{EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{36C9E152-A874-4A9C-8AF8-96F58C7630FD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "..\Microsoft.Extensions.Configuration.CommandLine\src\Microsoft.Extensions.Configuration.CommandLine.csproj", "{6242406A-B80A-43EA-A589-F3C665F23662}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "..\Microsoft.Extensions.Configuration.EnvironmentVariables\ref\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{8F29D582-1B4F-4213-B268-CDC3A8945D38}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "..\Microsoft.Extensions.Configuration.EnvironmentVariables\src\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{ACFDD440-9823-4590-98FA-5C3E0832330D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{C3335B42-0CBE-4351-8365-50013C7E8596}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{EC87683C-72A1-47BA-B1FE-CBA0D7664896}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "..\Microsoft.Extensions.Configuration.Ini\ref\Microsoft.Extensions.Configuration.Ini.csproj", "{F1389CD4-AA69-4BEB-A1B8-FC609931D780}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Ini", "..\Microsoft.Extensions.Configuration.Ini\src\Microsoft.Extensions.Configuration.Ini.csproj", "{E62E55D1-C18C-43BF-8E61-1AFADC46E7E2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\ref\Microsoft.Extensions.Configuration.Json.csproj", "{592CD515-9398-47AA-987A-99278C4253EC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\src\Microsoft.Extensions.Configuration.Json.csproj", "{2CC46F81-A2A5-4B5D-93A9-0596F33D4301}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "..\Microsoft.Extensions.Configuration.UserSecrets\ref\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{E5C36621-D034-46F9-B8FE-14007EAEEF55}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "..\Microsoft.Extensions.Configuration.UserSecrets\src\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{8F234107-D9B1-4678-A5FA-FDBBDC85204A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "..\Microsoft.Extensions.Configuration.Xml\ref\Microsoft.Extensions.Configuration.Xml.csproj", "{17930AA2-597B-4BB3-8156-720AFB469720}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Xml", "..\Microsoft.Extensions.Configuration.Xml\src\Microsoft.Extensions.Configuration.Xml.csproj", "{3468613D-25D9-43DE-9A43-42E4E070E6F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "ref\Microsoft.Extensions.Configuration.csproj", "{F40120E8-831C-4BC8-B012-997464CEA782}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "src\Microsoft.Extensions.Configuration.csproj", "{67E83D85-6D5D-446E-90D7-9A8DCB7959D1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Functional.Tests", "tests\FunctionalTests\Microsoft.Extensions.Configuration.Functional.Tests.csproj", "{E971240B-FAB5-4C6D-8742-3E22C17913EA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Tests", "tests\Microsoft.Extensions.Configuration.Tests.csproj", "{A786592E-9550-4091-9697-FDCD6FFFDA88}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{5B95C1F6-D554-4E4A-8DD1-744662F41987}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{9B33CC5B-8010-4D4E-B39D-B6805A16C7E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{53E4909F-FC0B-4727-A73D-686C5115E8C9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{42C10152-F747-443F-9AC1-5738CB62EA6C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{F4B7B95E-F732-474A-BED7-782AD2F4A1A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{8F65DFBB-9196-4E69-879A-C99C641B3E49}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{EC8DB110-890E-4388-97FC-0E25D98BC6F4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{165EBE5E-E512-4E7E-8C2D-1F4297483D3E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0E133FD2-E1E7-4FF7-A498-C787A48E1B8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{C53F8E4E-442C-48BF-9B6F-3E7381C0FD74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{5D0D6749-312A-4400-89D8-A7252D9A879B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{75A03875-DC97-42AE-9EFE-78DC736B8BD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F128A6B5-C1B3-452C-A66B-0138E895B1E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{30CE3F5F-5BF3-4801-B518-CED10B9E8B5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "..\System.Security.Cryptography.Xml\ref\System.Security.Cryptography.Xml.csproj", "{F74DB3B7-243F-447D-AE39-672348F661A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "..\System.Security.Cryptography.Xml\src\System.Security.Cryptography.Xml.csproj", "{BAA953EF-6529-4F2C-8F89-C76A05258677}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{E2181F3B-BDC4-4373-9DA8-F3B50159C65E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{6CCBE9AB-E620-4616-9B80-1F9D3E722B87}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{5307B272-8693-40A9-9AFE-E82AC7EFECC6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{A2E0A4AC-91AA-4F94-81B6-31146BB40F25}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{23F4102D-67BD-4865-BB19-195C47945733}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{41234DB5-1F3A-4E4A-8BD9-4A277C249666}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{6CDFD705-28EC-4D58-A2F9-715A3B06661B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{7CFEB13D-63D5-42A7-868C-CE1D0049EAF0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EA311EEF-3495-4D07-93F3-15A69C8CCEFB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9291622A-D376-4926-8DD8-3C3A11979FF5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0615D217-A0F8-4114-8769-050E7C040B60}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {6B148547-AC7D-45DC-A059-064D72A6E501} = {EA311EEF-3495-4D07-93F3-15A69C8CCEFB} + {E971240B-FAB5-4C6D-8742-3E22C17913EA} = {EA311EEF-3495-4D07-93F3-15A69C8CCEFB} + {A786592E-9550-4091-9697-FDCD6FFFDA88} = {EA311EEF-3495-4D07-93F3-15A69C8CCEFB} + {32CE4366-07A8-4874-9A12-46D5430A2203} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {8C395040-9876-47BE-A2EE-4485A6815F89} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {D4008AFA-F81B-4879-A059-438355A77754} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {8F29D582-1B4F-4213-B268-CDC3A8945D38} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {C3335B42-0CBE-4351-8365-50013C7E8596} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {F1389CD4-AA69-4BEB-A1B8-FC609931D780} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {592CD515-9398-47AA-987A-99278C4253EC} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {E5C36621-D034-46F9-B8FE-14007EAEEF55} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {17930AA2-597B-4BB3-8156-720AFB469720} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {F40120E8-831C-4BC8-B012-997464CEA782} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {5B95C1F6-D554-4E4A-8DD1-744662F41987} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {53E4909F-FC0B-4727-A73D-686C5115E8C9} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {F4B7B95E-F732-474A-BED7-782AD2F4A1A4} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {EC8DB110-890E-4388-97FC-0E25D98BC6F4} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {0E133FD2-E1E7-4FF7-A498-C787A48E1B8D} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {C53F8E4E-442C-48BF-9B6F-3E7381C0FD74} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {5D0D6749-312A-4400-89D8-A7252D9A879B} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {F128A6B5-C1B3-452C-A66B-0138E895B1E6} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {F74DB3B7-243F-447D-AE39-672348F661A1} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {E2181F3B-BDC4-4373-9DA8-F3B50159C65E} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {5307B272-8693-40A9-9AFE-E82AC7EFECC6} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {6CDFD705-28EC-4D58-A2F9-715A3B06661B} = {9291622A-D376-4926-8DD8-3C3A11979FF5} + {CDC60461-56B7-4941-AD08-90228BD450CE} = {0615D217-A0F8-4114-8769-050E7C040B60} + {9AF25AFA-6E25-4CA1-AD4F-FF77FD771714} = {0615D217-A0F8-4114-8769-050E7C040B60} + {71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1} = {0615D217-A0F8-4114-8769-050E7C040B60} + {6242406A-B80A-43EA-A589-F3C665F23662} = {0615D217-A0F8-4114-8769-050E7C040B60} + {ACFDD440-9823-4590-98FA-5C3E0832330D} = {0615D217-A0F8-4114-8769-050E7C040B60} + {EC87683C-72A1-47BA-B1FE-CBA0D7664896} = {0615D217-A0F8-4114-8769-050E7C040B60} + {E62E55D1-C18C-43BF-8E61-1AFADC46E7E2} = {0615D217-A0F8-4114-8769-050E7C040B60} + {2CC46F81-A2A5-4B5D-93A9-0596F33D4301} = {0615D217-A0F8-4114-8769-050E7C040B60} + {8F234107-D9B1-4678-A5FA-FDBBDC85204A} = {0615D217-A0F8-4114-8769-050E7C040B60} + {3468613D-25D9-43DE-9A43-42E4E070E6F6} = {0615D217-A0F8-4114-8769-050E7C040B60} + {67E83D85-6D5D-446E-90D7-9A8DCB7959D1} = {0615D217-A0F8-4114-8769-050E7C040B60} + {9B33CC5B-8010-4D4E-B39D-B6805A16C7E1} = {0615D217-A0F8-4114-8769-050E7C040B60} + {42C10152-F747-443F-9AC1-5738CB62EA6C} = {0615D217-A0F8-4114-8769-050E7C040B60} + {8F65DFBB-9196-4E69-879A-C99C641B3E49} = {0615D217-A0F8-4114-8769-050E7C040B60} + {165EBE5E-E512-4E7E-8C2D-1F4297483D3E} = {0615D217-A0F8-4114-8769-050E7C040B60} + {75A03875-DC97-42AE-9EFE-78DC736B8BD6} = {0615D217-A0F8-4114-8769-050E7C040B60} + {30CE3F5F-5BF3-4801-B518-CED10B9E8B5B} = {0615D217-A0F8-4114-8769-050E7C040B60} + {BAA953EF-6529-4F2C-8F89-C76A05258677} = {0615D217-A0F8-4114-8769-050E7C040B60} + {6CCBE9AB-E620-4616-9B80-1F9D3E722B87} = {0615D217-A0F8-4114-8769-050E7C040B60} + {A2E0A4AC-91AA-4F94-81B6-31146BB40F25} = {0615D217-A0F8-4114-8769-050E7C040B60} + {23F4102D-67BD-4865-BB19-195C47945733} = {0615D217-A0F8-4114-8769-050E7C040B60} + {41234DB5-1F3A-4E4A-8BD9-4A277C249666} = {0615D217-A0F8-4114-8769-050E7C040B60} + {7CFEB13D-63D5-42A7-868C-CE1D0049EAF0} = {0615D217-A0F8-4114-8769-050E7C040B60} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C5DB9130-1A0B-4817-83EF-92230089D29A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5DB9130-1A0B-4817-83EF-92230089D29A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5DB9130-1A0B-4817-83EF-92230089D29A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5DB9130-1A0B-4817-83EF-92230089D29A}.Release|Any CPU.Build.0 = Release|Any CPU - {0B090AAC-BD29-4348-8805-5D025453B3AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B090AAC-BD29-4348-8805-5D025453B3AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B090AAC-BD29-4348-8805-5D025453B3AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B090AAC-BD29-4348-8805-5D025453B3AD}.Release|Any CPU.Build.0 = Release|Any CPU - {6B9E1F2C-EA59-4E80-9876-C86139A5229F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B9E1F2C-EA59-4E80-9876-C86139A5229F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B9E1F2C-EA59-4E80-9876-C86139A5229F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B9E1F2C-EA59-4E80-9876-C86139A5229F}.Release|Any CPU.Build.0 = Release|Any CPU - {5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6}.Release|Any CPU.Build.0 = Release|Any CPU - {36C9E152-A874-4A9C-8AF8-96F58C7630FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36C9E152-A874-4A9C-8AF8-96F58C7630FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36C9E152-A874-4A9C-8AF8-96F58C7630FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36C9E152-A874-4A9C-8AF8-96F58C7630FD}.Release|Any CPU.Build.0 = Release|Any CPU + {6B148547-AC7D-45DC-A059-064D72A6E501}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B148547-AC7D-45DC-A059-064D72A6E501}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B148547-AC7D-45DC-A059-064D72A6E501}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B148547-AC7D-45DC-A059-064D72A6E501}.Release|Any CPU.Build.0 = Release|Any CPU + {32CE4366-07A8-4874-9A12-46D5430A2203}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32CE4366-07A8-4874-9A12-46D5430A2203}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32CE4366-07A8-4874-9A12-46D5430A2203}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32CE4366-07A8-4874-9A12-46D5430A2203}.Release|Any CPU.Build.0 = Release|Any CPU + {CDC60461-56B7-4941-AD08-90228BD450CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDC60461-56B7-4941-AD08-90228BD450CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDC60461-56B7-4941-AD08-90228BD450CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDC60461-56B7-4941-AD08-90228BD450CE}.Release|Any CPU.Build.0 = Release|Any CPU + {8C395040-9876-47BE-A2EE-4485A6815F89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C395040-9876-47BE-A2EE-4485A6815F89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C395040-9876-47BE-A2EE-4485A6815F89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C395040-9876-47BE-A2EE-4485A6815F89}.Release|Any CPU.Build.0 = Release|Any CPU + {9AF25AFA-6E25-4CA1-AD4F-FF77FD771714}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AF25AFA-6E25-4CA1-AD4F-FF77FD771714}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AF25AFA-6E25-4CA1-AD4F-FF77FD771714}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AF25AFA-6E25-4CA1-AD4F-FF77FD771714}.Release|Any CPU.Build.0 = Release|Any CPU + {D4008AFA-F81B-4879-A059-438355A77754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4008AFA-F81B-4879-A059-438355A77754}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4008AFA-F81B-4879-A059-438355A77754}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4008AFA-F81B-4879-A059-438355A77754}.Release|Any CPU.Build.0 = Release|Any CPU + {71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71F50A26-C4A8-4142-B0FD-E5D9EFEF34A1}.Release|Any CPU.Build.0 = Release|Any CPU + {EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB9E0AFD-4B8E-495F-A23E-1C51F9A57E95}.Release|Any CPU.Build.0 = Release|Any CPU + {6242406A-B80A-43EA-A589-F3C665F23662}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6242406A-B80A-43EA-A589-F3C665F23662}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6242406A-B80A-43EA-A589-F3C665F23662}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6242406A-B80A-43EA-A589-F3C665F23662}.Release|Any CPU.Build.0 = Release|Any CPU + {8F29D582-1B4F-4213-B268-CDC3A8945D38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F29D582-1B4F-4213-B268-CDC3A8945D38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F29D582-1B4F-4213-B268-CDC3A8945D38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F29D582-1B4F-4213-B268-CDC3A8945D38}.Release|Any CPU.Build.0 = Release|Any CPU + {ACFDD440-9823-4590-98FA-5C3E0832330D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACFDD440-9823-4590-98FA-5C3E0832330D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACFDD440-9823-4590-98FA-5C3E0832330D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACFDD440-9823-4590-98FA-5C3E0832330D}.Release|Any CPU.Build.0 = Release|Any CPU + {C3335B42-0CBE-4351-8365-50013C7E8596}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3335B42-0CBE-4351-8365-50013C7E8596}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3335B42-0CBE-4351-8365-50013C7E8596}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3335B42-0CBE-4351-8365-50013C7E8596}.Release|Any CPU.Build.0 = Release|Any CPU + {EC87683C-72A1-47BA-B1FE-CBA0D7664896}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC87683C-72A1-47BA-B1FE-CBA0D7664896}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC87683C-72A1-47BA-B1FE-CBA0D7664896}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC87683C-72A1-47BA-B1FE-CBA0D7664896}.Release|Any CPU.Build.0 = Release|Any CPU + {F1389CD4-AA69-4BEB-A1B8-FC609931D780}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1389CD4-AA69-4BEB-A1B8-FC609931D780}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1389CD4-AA69-4BEB-A1B8-FC609931D780}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1389CD4-AA69-4BEB-A1B8-FC609931D780}.Release|Any CPU.Build.0 = Release|Any CPU + {E62E55D1-C18C-43BF-8E61-1AFADC46E7E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E62E55D1-C18C-43BF-8E61-1AFADC46E7E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E62E55D1-C18C-43BF-8E61-1AFADC46E7E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E62E55D1-C18C-43BF-8E61-1AFADC46E7E2}.Release|Any CPU.Build.0 = Release|Any CPU + {592CD515-9398-47AA-987A-99278C4253EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {592CD515-9398-47AA-987A-99278C4253EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {592CD515-9398-47AA-987A-99278C4253EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {592CD515-9398-47AA-987A-99278C4253EC}.Release|Any CPU.Build.0 = Release|Any CPU + {2CC46F81-A2A5-4B5D-93A9-0596F33D4301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2CC46F81-A2A5-4B5D-93A9-0596F33D4301}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2CC46F81-A2A5-4B5D-93A9-0596F33D4301}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2CC46F81-A2A5-4B5D-93A9-0596F33D4301}.Release|Any CPU.Build.0 = Release|Any CPU + {E5C36621-D034-46F9-B8FE-14007EAEEF55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5C36621-D034-46F9-B8FE-14007EAEEF55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5C36621-D034-46F9-B8FE-14007EAEEF55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5C36621-D034-46F9-B8FE-14007EAEEF55}.Release|Any CPU.Build.0 = Release|Any CPU + {8F234107-D9B1-4678-A5FA-FDBBDC85204A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F234107-D9B1-4678-A5FA-FDBBDC85204A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F234107-D9B1-4678-A5FA-FDBBDC85204A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F234107-D9B1-4678-A5FA-FDBBDC85204A}.Release|Any CPU.Build.0 = Release|Any CPU + {17930AA2-597B-4BB3-8156-720AFB469720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17930AA2-597B-4BB3-8156-720AFB469720}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17930AA2-597B-4BB3-8156-720AFB469720}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17930AA2-597B-4BB3-8156-720AFB469720}.Release|Any CPU.Build.0 = Release|Any CPU + {3468613D-25D9-43DE-9A43-42E4E070E6F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3468613D-25D9-43DE-9A43-42E4E070E6F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3468613D-25D9-43DE-9A43-42E4E070E6F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3468613D-25D9-43DE-9A43-42E4E070E6F6}.Release|Any CPU.Build.0 = Release|Any CPU + {F40120E8-831C-4BC8-B012-997464CEA782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F40120E8-831C-4BC8-B012-997464CEA782}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F40120E8-831C-4BC8-B012-997464CEA782}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F40120E8-831C-4BC8-B012-997464CEA782}.Release|Any CPU.Build.0 = Release|Any CPU + {67E83D85-6D5D-446E-90D7-9A8DCB7959D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67E83D85-6D5D-446E-90D7-9A8DCB7959D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67E83D85-6D5D-446E-90D7-9A8DCB7959D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67E83D85-6D5D-446E-90D7-9A8DCB7959D1}.Release|Any CPU.Build.0 = Release|Any CPU + {E971240B-FAB5-4C6D-8742-3E22C17913EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E971240B-FAB5-4C6D-8742-3E22C17913EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E971240B-FAB5-4C6D-8742-3E22C17913EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E971240B-FAB5-4C6D-8742-3E22C17913EA}.Release|Any CPU.Build.0 = Release|Any CPU + {A786592E-9550-4091-9697-FDCD6FFFDA88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A786592E-9550-4091-9697-FDCD6FFFDA88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A786592E-9550-4091-9697-FDCD6FFFDA88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A786592E-9550-4091-9697-FDCD6FFFDA88}.Release|Any CPU.Build.0 = Release|Any CPU + {5B95C1F6-D554-4E4A-8DD1-744662F41987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B95C1F6-D554-4E4A-8DD1-744662F41987}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B95C1F6-D554-4E4A-8DD1-744662F41987}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B95C1F6-D554-4E4A-8DD1-744662F41987}.Release|Any CPU.Build.0 = Release|Any CPU + {9B33CC5B-8010-4D4E-B39D-B6805A16C7E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B33CC5B-8010-4D4E-B39D-B6805A16C7E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B33CC5B-8010-4D4E-B39D-B6805A16C7E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B33CC5B-8010-4D4E-B39D-B6805A16C7E1}.Release|Any CPU.Build.0 = Release|Any CPU + {53E4909F-FC0B-4727-A73D-686C5115E8C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53E4909F-FC0B-4727-A73D-686C5115E8C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53E4909F-FC0B-4727-A73D-686C5115E8C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53E4909F-FC0B-4727-A73D-686C5115E8C9}.Release|Any CPU.Build.0 = Release|Any CPU + {42C10152-F747-443F-9AC1-5738CB62EA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42C10152-F747-443F-9AC1-5738CB62EA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42C10152-F747-443F-9AC1-5738CB62EA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42C10152-F747-443F-9AC1-5738CB62EA6C}.Release|Any CPU.Build.0 = Release|Any CPU + {F4B7B95E-F732-474A-BED7-782AD2F4A1A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4B7B95E-F732-474A-BED7-782AD2F4A1A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4B7B95E-F732-474A-BED7-782AD2F4A1A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4B7B95E-F732-474A-BED7-782AD2F4A1A4}.Release|Any CPU.Build.0 = Release|Any CPU + {8F65DFBB-9196-4E69-879A-C99C641B3E49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F65DFBB-9196-4E69-879A-C99C641B3E49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F65DFBB-9196-4E69-879A-C99C641B3E49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F65DFBB-9196-4E69-879A-C99C641B3E49}.Release|Any CPU.Build.0 = Release|Any CPU + {EC8DB110-890E-4388-97FC-0E25D98BC6F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC8DB110-890E-4388-97FC-0E25D98BC6F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC8DB110-890E-4388-97FC-0E25D98BC6F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC8DB110-890E-4388-97FC-0E25D98BC6F4}.Release|Any CPU.Build.0 = Release|Any CPU + {165EBE5E-E512-4E7E-8C2D-1F4297483D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {165EBE5E-E512-4E7E-8C2D-1F4297483D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {165EBE5E-E512-4E7E-8C2D-1F4297483D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {165EBE5E-E512-4E7E-8C2D-1F4297483D3E}.Release|Any CPU.Build.0 = Release|Any CPU + {0E133FD2-E1E7-4FF7-A498-C787A48E1B8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E133FD2-E1E7-4FF7-A498-C787A48E1B8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E133FD2-E1E7-4FF7-A498-C787A48E1B8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E133FD2-E1E7-4FF7-A498-C787A48E1B8D}.Release|Any CPU.Build.0 = Release|Any CPU + {C53F8E4E-442C-48BF-9B6F-3E7381C0FD74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C53F8E4E-442C-48BF-9B6F-3E7381C0FD74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C53F8E4E-442C-48BF-9B6F-3E7381C0FD74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C53F8E4E-442C-48BF-9B6F-3E7381C0FD74}.Release|Any CPU.Build.0 = Release|Any CPU + {5D0D6749-312A-4400-89D8-A7252D9A879B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D0D6749-312A-4400-89D8-A7252D9A879B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D0D6749-312A-4400-89D8-A7252D9A879B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D0D6749-312A-4400-89D8-A7252D9A879B}.Release|Any CPU.Build.0 = Release|Any CPU + {75A03875-DC97-42AE-9EFE-78DC736B8BD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75A03875-DC97-42AE-9EFE-78DC736B8BD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75A03875-DC97-42AE-9EFE-78DC736B8BD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75A03875-DC97-42AE-9EFE-78DC736B8BD6}.Release|Any CPU.Build.0 = Release|Any CPU + {F128A6B5-C1B3-452C-A66B-0138E895B1E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F128A6B5-C1B3-452C-A66B-0138E895B1E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F128A6B5-C1B3-452C-A66B-0138E895B1E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F128A6B5-C1B3-452C-A66B-0138E895B1E6}.Release|Any CPU.Build.0 = Release|Any CPU + {30CE3F5F-5BF3-4801-B518-CED10B9E8B5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30CE3F5F-5BF3-4801-B518-CED10B9E8B5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30CE3F5F-5BF3-4801-B518-CED10B9E8B5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30CE3F5F-5BF3-4801-B518-CED10B9E8B5B}.Release|Any CPU.Build.0 = Release|Any CPU + {F74DB3B7-243F-447D-AE39-672348F661A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F74DB3B7-243F-447D-AE39-672348F661A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F74DB3B7-243F-447D-AE39-672348F661A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F74DB3B7-243F-447D-AE39-672348F661A1}.Release|Any CPU.Build.0 = Release|Any CPU + {BAA953EF-6529-4F2C-8F89-C76A05258677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAA953EF-6529-4F2C-8F89-C76A05258677}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAA953EF-6529-4F2C-8F89-C76A05258677}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAA953EF-6529-4F2C-8F89-C76A05258677}.Release|Any CPU.Build.0 = Release|Any CPU + {E2181F3B-BDC4-4373-9DA8-F3B50159C65E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2181F3B-BDC4-4373-9DA8-F3B50159C65E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2181F3B-BDC4-4373-9DA8-F3B50159C65E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2181F3B-BDC4-4373-9DA8-F3B50159C65E}.Release|Any CPU.Build.0 = Release|Any CPU + {6CCBE9AB-E620-4616-9B80-1F9D3E722B87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CCBE9AB-E620-4616-9B80-1F9D3E722B87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CCBE9AB-E620-4616-9B80-1F9D3E722B87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CCBE9AB-E620-4616-9B80-1F9D3E722B87}.Release|Any CPU.Build.0 = Release|Any CPU + {5307B272-8693-40A9-9AFE-E82AC7EFECC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5307B272-8693-40A9-9AFE-E82AC7EFECC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5307B272-8693-40A9-9AFE-E82AC7EFECC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5307B272-8693-40A9-9AFE-E82AC7EFECC6}.Release|Any CPU.Build.0 = Release|Any CPU + {A2E0A4AC-91AA-4F94-81B6-31146BB40F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2E0A4AC-91AA-4F94-81B6-31146BB40F25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2E0A4AC-91AA-4F94-81B6-31146BB40F25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2E0A4AC-91AA-4F94-81B6-31146BB40F25}.Release|Any CPU.Build.0 = Release|Any CPU + {23F4102D-67BD-4865-BB19-195C47945733}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23F4102D-67BD-4865-BB19-195C47945733}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23F4102D-67BD-4865-BB19-195C47945733}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23F4102D-67BD-4865-BB19-195C47945733}.Release|Any CPU.Build.0 = Release|Any CPU + {41234DB5-1F3A-4E4A-8BD9-4A277C249666}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41234DB5-1F3A-4E4A-8BD9-4A277C249666}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41234DB5-1F3A-4E4A-8BD9-4A277C249666}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41234DB5-1F3A-4E4A-8BD9-4A277C249666}.Release|Any CPU.Build.0 = Release|Any CPU + {6CDFD705-28EC-4D58-A2F9-715A3B06661B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CDFD705-28EC-4D58-A2F9-715A3B06661B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CDFD705-28EC-4D58-A2F9-715A3B06661B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CDFD705-28EC-4D58-A2F9-715A3B06661B}.Release|Any CPU.Build.0 = Release|Any CPU + {7CFEB13D-63D5-42A7-868C-CE1D0049EAF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CFEB13D-63D5-42A7-868C-CE1D0049EAF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CFEB13D-63D5-42A7-868C-CE1D0049EAF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CFEB13D-63D5-42A7-868C-CE1D0049EAF0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C5DB9130-1A0B-4817-83EF-92230089D29A} = {C5F14D7C-F4F1-4428-9067-B13C831DF521} - {0B090AAC-BD29-4348-8805-5D025453B3AD} = {928FE2B9-8D33-49F6-BEE1-70E7C641B476} - {D2F146C5-E638-46CC-9BEC-200427ED75EB} = {4ADA9C07-0B5F-4D6C-BC93-C4072C9C3FF5} - {6B9E1F2C-EA59-4E80-9876-C86139A5229F} = {D2F146C5-E638-46CC-9BEC-200427ED75EB} - {5FE6F8FC-B97B-49D2-824C-FFDA1D4546E6} = {4ADA9C07-0B5F-4D6C-BC93-C4072C9C3FF5} - {36C9E152-A874-4A9C-8AF8-96F58C7630FD} = {4ADA9C07-0B5F-4D6C-BC93-C4072C9C3FF5} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C5AF08F4-34A5-42B8-A7BD-A03DA5D0C7BC} + SolutionGuid = {81EEF2A5-6387-4CC4-B7CD-908EEA4E5C79} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ChainedConfigurationProvider.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ChainedConfigurationProvider.cs index 44605958a6fa..a240f3da8e7d 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ChainedConfigurationProvider.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ChainedConfigurationProvider.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Linq; using Microsoft.Extensions.Primitives; namespace Microsoft.Extensions.Configuration @@ -78,11 +77,14 @@ public bool TryGet(string key, out string value) string parentPath) { IConfiguration section = parentPath == null ? _config : _config.GetSection(parentPath); - IEnumerable children = section.GetChildren(); var keys = new List(); - keys.AddRange(children.Select(c => c.Key)); - return keys.Concat(earlierKeys) - .OrderBy(k => k, ConfigurationKeyComparer.Instance); + foreach (IConfigurationSection child in section.GetChildren()) + { + keys.Add(child.Key); + } + keys.AddRange(earlierKeys); + keys.Sort(ConfigurationKeyComparer.Comparison); + return keys; } /// diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationKeyComparer.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationKeyComparer.cs index b0abce12d36c..b5dc31fdffe7 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationKeyComparer.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationKeyComparer.cs @@ -18,6 +18,9 @@ public class ConfigurationKeyComparer : IComparer /// public static ConfigurationKeyComparer Instance { get; } = new ConfigurationKeyComparer(); + /// A comparer delegate with the default instance. + internal static Comparison Comparison { get; } = Instance.Compare; + /// /// Compares two strings. /// diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationProvider.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationProvider.cs index 15927fedce25..e337bd314833 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationProvider.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationProvider.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; -using System.Linq; +using System.Diagnostics; using System.Threading; using Microsoft.Extensions.Primitives; @@ -62,13 +62,35 @@ public virtual void Load() IEnumerable earlierKeys, string parentPath) { - string prefix = parentPath == null ? string.Empty : parentPath + ConfigurationPath.KeyDelimiter; + var results = new List(); - return Data - .Where(kv => kv.Key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) - .Select(kv => Segment(kv.Key, prefix.Length)) - .Concat(earlierKeys) - .OrderBy(k => k, ConfigurationKeyComparer.Instance); + if (parentPath is null) + { + foreach (KeyValuePair kv in Data) + { + results.Add(Segment(kv.Key, 0)); + } + } + else + { + Debug.Assert(ConfigurationPath.KeyDelimiter == ":"); + + foreach (KeyValuePair kv in Data) + { + if (kv.Key.Length > parentPath.Length && + kv.Key.StartsWith(parentPath, StringComparison.OrdinalIgnoreCase) && + kv.Key[parentPath.Length] == ':') + { + results.Add(Segment(kv.Key, parentPath.Length + 1)); + } + } + } + + results.AddRange(earlierKeys); + + results.Sort(ConfigurationKeyComparer.Comparison); + + return results; } private static string Segment(string key, int prefixLength) diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationRoot.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationRoot.cs index bff21d5eb068..455efdb4176b 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationRoot.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationRoot.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Threading; using Microsoft.Extensions.Primitives; @@ -66,7 +65,7 @@ public ConfigurationRoot(IList providers) } set { - if (!_providers.Any()) + if (_providers.Count == 0) { throw new InvalidOperationException(SR.Error_NoSources); } diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/Microsoft.Extensions.DependencyInjection.Abstractions.sln b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/Microsoft.Extensions.DependencyInjection.Abstractions.sln index 68c25466c8af..56ba13c4f74a 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/Microsoft.Extensions.DependencyInjection.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/Microsoft.Extensions.DependencyInjection.Abstractions.sln @@ -1,39 +1,35 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7F380E4E-6BB4-4129-87F2-6D64023BEDCB}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{B8B63EFF-64D9-49AB-ACE9-6182DADC7574}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BDDF294D-5DFD-431D-9C1D-081958287CB6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{E3F4D946-70AF-4CCB-86A5-65237DB78D9C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{C4483ADE-FDF5-414E-AD3F-07CBA3E49796}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{70BFBB37-F99C-42FB-BD53-D0E024183B82}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4CA6208B-2009-4B31-B500-641F85F0AA5E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B8B63EFF-64D9-49AB-ACE9-6182DADC7574} = {C4483ADE-FDF5-414E-AD3F-07CBA3E49796} + {D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF} = {4CA6208B-2009-4B31-B500-641F85F0AA5E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E3F4D946-70AF-4CCB-86A5-65237DB78D9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E3F4D946-70AF-4CCB-86A5-65237DB78D9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E3F4D946-70AF-4CCB-86A5-65237DB78D9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E3F4D946-70AF-4CCB-86A5-65237DB78D9C}.Release|Any CPU.Build.0 = Release|Any CPU - {70BFBB37-F99C-42FB-BD53-D0E024183B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70BFBB37-F99C-42FB-BD53-D0E024183B82}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70BFBB37-F99C-42FB-BD53-D0E024183B82}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70BFBB37-F99C-42FB-BD53-D0E024183B82}.Release|Any CPU.Build.0 = Release|Any CPU + {B8B63EFF-64D9-49AB-ACE9-6182DADC7574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8B63EFF-64D9-49AB-ACE9-6182DADC7574}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8B63EFF-64D9-49AB-ACE9-6182DADC7574}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8B63EFF-64D9-49AB-ACE9-6182DADC7574}.Release|Any CPU.Build.0 = Release|Any CPU + {D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1AEAA98-0D46-4E23-8644-6BD5EBCE32AF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E3F4D946-70AF-4CCB-86A5-65237DB78D9C} = {7F380E4E-6BB4-4129-87F2-6D64023BEDCB} - {70BFBB37-F99C-42FB-BD53-D0E024183B82} = {BDDF294D-5DFD-431D-9C1D-081958287CB6} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {31580E98-9F5C-4AE2-B29A-639789B7135C} + SolutionGuid = {BD3A79CE-CF84-4543-99E4-D39D56E8DAEF} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/Extensions/ServiceCollectionDescriptorExtensions.cs b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/Extensions/ServiceCollectionDescriptorExtensions.cs index b1d8704fe0cb..e4cfae88c17e 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/Extensions/ServiceCollectionDescriptorExtensions.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/Extensions/ServiceCollectionDescriptorExtensions.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; namespace Microsoft.Extensions.DependencyInjection.Extensions { @@ -85,10 +84,17 @@ public static class ServiceCollectionDescriptorExtensions throw new ArgumentNullException(nameof(descriptor)); } - if (!collection.Any(d => d.ServiceType == descriptor.ServiceType)) + int count = collection.Count; + for (int i = 0; i < count; i++) { - collection.Add(descriptor); + if (collection[i].ServiceType == descriptor.ServiceType) + { + // Already added + return; + } } + + collection.Add(descriptor); } /// @@ -608,12 +614,19 @@ public static void TryAddSingleton(this IServiceCollection collection, nameof(descriptor)); } - if (!services.Any(d => - d.ServiceType == descriptor.ServiceType && - d.GetImplementationType() == implementationType)) + int count = services.Count; + for (int i = 0; i < count; i++) { - services.Add(descriptor); + ServiceDescriptor service = services[i]; + if (service.ServiceType == descriptor.ServiceType && + service.GetImplementationType() == implementationType) + { + // Already added + return; + } } + + services.Add(descriptor); } /// @@ -674,10 +687,15 @@ public static void TryAddSingleton(this IServiceCollection collection, throw new ArgumentNullException(nameof(descriptor)); } - ServiceDescriptor? registeredServiceDescriptor = collection.FirstOrDefault(s => s.ServiceType == descriptor.ServiceType); - if (registeredServiceDescriptor != null) + // Remove existing + int count = collection.Count; + for (int i = 0; i < count; i++) { - collection.Remove(registeredServiceDescriptor); + if (collection[i].ServiceType == descriptor.ServiceType) + { + collection.RemoveAt(i); + break; + } } collection.Add(descriptor); diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/Microsoft.Extensions.DependencyInjection.sln b/src/libraries/Microsoft.Extensions.DependencyInjection/Microsoft.Extensions.DependencyInjection.sln index b7273ab06c8c..2a399d5f8110 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/Microsoft.Extensions.DependencyInjection.sln +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/Microsoft.Extensions.DependencyInjection.sln @@ -1,62 +1,121 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BF719C68-E106-47F7-AD0D-F996739BA266}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{30201F60-A891-4C3F-A1A6-DDDD1C8525E3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{91EEAE13-DEB6-435F-B80B-83102F3A7F33}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{047FD3F2-B3A0-4639-B4F0-40D29E61725D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{615C17D7-1F66-4409-A982-73C31C517388}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{3068B34E-D975-4C11-B2F2-F10790051F2E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "ref\Microsoft.Extensions.DependencyInjection.csproj", "{D4F906D8-961A-41CA-A859-A336F3CB9DD3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{6D90C067-5CCD-4443-81A5-B9C385011F68}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "src\Microsoft.Extensions.DependencyInjection.csproj", "{0BD0C911-A456-40DA-B5B7-D51887777BF9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{9CD9F9EB-379C-44C1-9016-33DFEC821C76}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Tests", "tests\DI.Tests\Microsoft.Extensions.DependencyInjection.Tests.csproj", "{85D59394-C2FA-42D0-B04A-B1F8E244E619}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "ref\Microsoft.Extensions.DependencyInjection.csproj", "{66E6ADF5-200F-41F3-9CA4-858EF69D2A61}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{62FF9AD2-6603-4F9C-AB56-FCACEE3B6723}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "src\Microsoft.Extensions.DependencyInjection.csproj", "{C5ECD02C-FA5A-4B56-9CA2-47AD8989714A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests", "tests\DI.External.Tests\Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj", "{01D2CC74-63FC-4091-B278-8BD264C325E3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests", "tests\DI.External.Tests\Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj", "{F11DD75C-122C-4B98-9EED-F71551F9562A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Tests", "tests\DI.Tests\Microsoft.Extensions.DependencyInjection.Tests.csproj", "{1EE6CA66-6585-459D-8889-666D4C2D4C27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FE84DBDF-2275-4B14-8B08-A59A64E573BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{77D74FC2-FCB5-474B-AB77-2BD0354CEB29}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BA9F4FC9-6312-4E3D-BC54-300444064F6A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C720B37D-E4D9-4B8C-B993-71F5C9C5A381}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F109FFD1-2A08-4114-9FC5-A119229B4983}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {30201F60-A891-4C3F-A1A6-DDDD1C8525E3} = {C720B37D-E4D9-4B8C-B993-71F5C9C5A381} + {F11DD75C-122C-4B98-9EED-F71551F9562A} = {C720B37D-E4D9-4B8C-B993-71F5C9C5A381} + {1EE6CA66-6585-459D-8889-666D4C2D4C27} = {C720B37D-E4D9-4B8C-B993-71F5C9C5A381} + {047FD3F2-B3A0-4639-B4F0-40D29E61725D} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {6D90C067-5CCD-4443-81A5-B9C385011F68} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {66E6ADF5-200F-41F3-9CA4-858EF69D2A61} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {FE84DBDF-2275-4B14-8B08-A59A64E573BA} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {BA9F4FC9-6312-4E3D-BC54-300444064F6A} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2} = {3C9BFC55-DE9A-42C0-A843-2F7D703EEB7D} + {3068B34E-D975-4C11-B2F2-F10790051F2E} = {F109FFD1-2A08-4114-9FC5-A119229B4983} + {9CD9F9EB-379C-44C1-9016-33DFEC821C76} = {F109FFD1-2A08-4114-9FC5-A119229B4983} + {C5ECD02C-FA5A-4B56-9CA2-47AD8989714A} = {F109FFD1-2A08-4114-9FC5-A119229B4983} + {77D74FC2-FCB5-474B-AB77-2BD0354CEB29} = {F109FFD1-2A08-4114-9FC5-A119229B4983} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D4F906D8-961A-41CA-A859-A336F3CB9DD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4F906D8-961A-41CA-A859-A336F3CB9DD3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4F906D8-961A-41CA-A859-A336F3CB9DD3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4F906D8-961A-41CA-A859-A336F3CB9DD3}.Release|Any CPU.Build.0 = Release|Any CPU - {0BD0C911-A456-40DA-B5B7-D51887777BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BD0C911-A456-40DA-B5B7-D51887777BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BD0C911-A456-40DA-B5B7-D51887777BF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BD0C911-A456-40DA-B5B7-D51887777BF9}.Release|Any CPU.Build.0 = Release|Any CPU - {85D59394-C2FA-42D0-B04A-B1F8E244E619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85D59394-C2FA-42D0-B04A-B1F8E244E619}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85D59394-C2FA-42D0-B04A-B1F8E244E619}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85D59394-C2FA-42D0-B04A-B1F8E244E619}.Release|Any CPU.Build.0 = Release|Any CPU - {62FF9AD2-6603-4F9C-AB56-FCACEE3B6723}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62FF9AD2-6603-4F9C-AB56-FCACEE3B6723}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62FF9AD2-6603-4F9C-AB56-FCACEE3B6723}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62FF9AD2-6603-4F9C-AB56-FCACEE3B6723}.Release|Any CPU.Build.0 = Release|Any CPU - {01D2CC74-63FC-4091-B278-8BD264C325E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01D2CC74-63FC-4091-B278-8BD264C325E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01D2CC74-63FC-4091-B278-8BD264C325E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01D2CC74-63FC-4091-B278-8BD264C325E3}.Release|Any CPU.Build.0 = Release|Any CPU + {30201F60-A891-4C3F-A1A6-DDDD1C8525E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30201F60-A891-4C3F-A1A6-DDDD1C8525E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30201F60-A891-4C3F-A1A6-DDDD1C8525E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30201F60-A891-4C3F-A1A6-DDDD1C8525E3}.Release|Any CPU.Build.0 = Release|Any CPU + {047FD3F2-B3A0-4639-B4F0-40D29E61725D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {047FD3F2-B3A0-4639-B4F0-40D29E61725D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {047FD3F2-B3A0-4639-B4F0-40D29E61725D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {047FD3F2-B3A0-4639-B4F0-40D29E61725D}.Release|Any CPU.Build.0 = Release|Any CPU + {3068B34E-D975-4C11-B2F2-F10790051F2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3068B34E-D975-4C11-B2F2-F10790051F2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3068B34E-D975-4C11-B2F2-F10790051F2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3068B34E-D975-4C11-B2F2-F10790051F2E}.Release|Any CPU.Build.0 = Release|Any CPU + {6D90C067-5CCD-4443-81A5-B9C385011F68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D90C067-5CCD-4443-81A5-B9C385011F68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D90C067-5CCD-4443-81A5-B9C385011F68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D90C067-5CCD-4443-81A5-B9C385011F68}.Release|Any CPU.Build.0 = Release|Any CPU + {9CD9F9EB-379C-44C1-9016-33DFEC821C76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CD9F9EB-379C-44C1-9016-33DFEC821C76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CD9F9EB-379C-44C1-9016-33DFEC821C76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CD9F9EB-379C-44C1-9016-33DFEC821C76}.Release|Any CPU.Build.0 = Release|Any CPU + {66E6ADF5-200F-41F3-9CA4-858EF69D2A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66E6ADF5-200F-41F3-9CA4-858EF69D2A61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66E6ADF5-200F-41F3-9CA4-858EF69D2A61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66E6ADF5-200F-41F3-9CA4-858EF69D2A61}.Release|Any CPU.Build.0 = Release|Any CPU + {C5ECD02C-FA5A-4B56-9CA2-47AD8989714A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5ECD02C-FA5A-4B56-9CA2-47AD8989714A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5ECD02C-FA5A-4B56-9CA2-47AD8989714A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5ECD02C-FA5A-4B56-9CA2-47AD8989714A}.Release|Any CPU.Build.0 = Release|Any CPU + {F11DD75C-122C-4B98-9EED-F71551F9562A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F11DD75C-122C-4B98-9EED-F71551F9562A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F11DD75C-122C-4B98-9EED-F71551F9562A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F11DD75C-122C-4B98-9EED-F71551F9562A}.Release|Any CPU.Build.0 = Release|Any CPU + {1EE6CA66-6585-459D-8889-666D4C2D4C27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EE6CA66-6585-459D-8889-666D4C2D4C27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EE6CA66-6585-459D-8889-666D4C2D4C27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EE6CA66-6585-459D-8889-666D4C2D4C27}.Release|Any CPU.Build.0 = Release|Any CPU + {FE84DBDF-2275-4B14-8B08-A59A64E573BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE84DBDF-2275-4B14-8B08-A59A64E573BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE84DBDF-2275-4B14-8B08-A59A64E573BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE84DBDF-2275-4B14-8B08-A59A64E573BA}.Release|Any CPU.Build.0 = Release|Any CPU + {7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AA95B73-BE27-4E8C-AD7C-2E0F62B4E6BD}.Release|Any CPU.Build.0 = Release|Any CPU + {77D74FC2-FCB5-474B-AB77-2BD0354CEB29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77D74FC2-FCB5-474B-AB77-2BD0354CEB29}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77D74FC2-FCB5-474B-AB77-2BD0354CEB29}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77D74FC2-FCB5-474B-AB77-2BD0354CEB29}.Release|Any CPU.Build.0 = Release|Any CPU + {BA9F4FC9-6312-4E3D-BC54-300444064F6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA9F4FC9-6312-4E3D-BC54-300444064F6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA9F4FC9-6312-4E3D-BC54-300444064F6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA9F4FC9-6312-4E3D-BC54-300444064F6A}.Release|Any CPU.Build.0 = Release|Any CPU + {B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7FC8A33-9FB0-4E58-B3EC-06F4B95BF6D2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {D4F906D8-961A-41CA-A859-A336F3CB9DD3} = {91EEAE13-DEB6-435F-B80B-83102F3A7F33} - {0BD0C911-A456-40DA-B5B7-D51887777BF9} = {BF719C68-E106-47F7-AD0D-F996739BA266} - {85D59394-C2FA-42D0-B04A-B1F8E244E619} = {615C17D7-1F66-4409-A982-73C31C517388} - {62FF9AD2-6603-4F9C-AB56-FCACEE3B6723} = {615C17D7-1F66-4409-A982-73C31C517388} - {01D2CC74-63FC-4091-B278-8BD264C325E3} = {615C17D7-1F66-4409-A982-73C31C517388} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {91C254CC-F9EE-4916-8A19-F816C708AE3C} + SolutionGuid = {68A7BDA7-8093-433C-BF7A-8A6A7560BD02} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/Microsoft.Extensions.DependencyInjection.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection/src/Microsoft.Extensions.DependencyInjection.csproj index 412c9bef97e4..58552c053317 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/Microsoft.Extensions.DependencyInjection.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/Microsoft.Extensions.DependencyInjection.csproj @@ -4,6 +4,7 @@ $(NetCoreAppCurrent);net461;netstandard2.0;netstandard2.1 False + Annotations diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs index f3b919212255..a73b14a5ab72 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs @@ -15,7 +15,7 @@ namespace Microsoft.Extensions.DependencyInjection.ServiceLookup internal class CallSiteFactory { private const int DefaultSlot = 0; - private readonly List _descriptors; + private readonly ServiceDescriptor[] _descriptors; private readonly ConcurrentDictionary _callSiteCache = new ConcurrentDictionary(); private readonly Dictionary _descriptorLookup = new Dictionary(); @@ -24,7 +24,7 @@ internal class CallSiteFactory public CallSiteFactory(IEnumerable descriptors) { _stackGuard = new StackGuard(); - _descriptors = descriptors.ToList(); + _descriptors = descriptors.ToArray(); Populate(); } @@ -32,19 +32,19 @@ private void Populate() { foreach (ServiceDescriptor descriptor in _descriptors) { - TypeInfo serviceTypeInfo = descriptor.ServiceType.GetTypeInfo(); - if (serviceTypeInfo.IsGenericTypeDefinition) + Type serviceType = descriptor.ServiceType; + if (serviceType.IsGenericTypeDefinition) { - TypeInfo implementationTypeInfo = descriptor.ImplementationType?.GetTypeInfo(); + Type implementationType = descriptor.ImplementationType; - if (implementationTypeInfo == null || !implementationTypeInfo.IsGenericTypeDefinition) + if (implementationType == null || !implementationType.IsGenericTypeDefinition) { throw new ArgumentException( SR.Format(SR.OpenGenericServiceRequiresOpenGenericImplementation, descriptor.ServiceType), "descriptors"); } - if (implementationTypeInfo.IsAbstract || implementationTypeInfo.IsInterface) + if (implementationType.IsAbstract || implementationType.IsInterface) { throw new ArgumentException( SR.Format(SR.TypeCannotBeActivated, descriptor.ImplementationType, descriptor.ServiceType)); @@ -53,11 +53,11 @@ private void Populate() else if (descriptor.ImplementationInstance == null && descriptor.ImplementationFactory == null) { Debug.Assert(descriptor.ImplementationType != null); - TypeInfo implementationTypeInfo = descriptor.ImplementationType.GetTypeInfo(); + Type implementationType = descriptor.ImplementationType; - if (implementationTypeInfo.IsGenericTypeDefinition || - implementationTypeInfo.IsAbstract || - implementationTypeInfo.IsInterface) + if (implementationType.IsGenericTypeDefinition || + implementationType.IsAbstract || + implementationType.IsInterface) { throw new ArgumentException( SR.Format(SR.TypeCannotBeActivated, descriptor.ImplementationType, descriptor.ServiceType)); @@ -70,10 +70,9 @@ private void Populate() } } - internal ServiceCallSite GetCallSite(Type serviceType, CallSiteChain callSiteChain) - { - return _callSiteCache.GetOrAdd(serviceType, type => CreateCallSite(type, callSiteChain)); - } + internal ServiceCallSite GetCallSite(Type serviceType, CallSiteChain callSiteChain) => + _callSiteCache.TryGetValue(serviceType, out ServiceCallSite site) ? site : + CreateCallSite(serviceType, callSiteChain); internal ServiceCallSite GetCallSite(ServiceDescriptor serviceDescriptor, CallSiteChain callSiteChain) { @@ -161,7 +160,7 @@ private ServiceCallSite TryCreateEnumerable(Type serviceType, CallSiteChain call { int slot = 0; // We are going in reverse so the last service in descriptor list gets slot 0 - for (int i = _descriptors.Count - 1; i >= 0; i--) + for (int i = _descriptors.Length - 1; i >= 0; i--) { ServiceDescriptor descriptor = _descriptors[i]; ServiceCallSite callSite = TryCreateExact(descriptor, itemType, callSiteChain, slot) ?? diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs index acc1d967f738..bd09485c617f 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs @@ -7,10 +7,12 @@ namespace Microsoft.Extensions.DependencyInjection.ServiceLookup { internal class ConstantCallSite : ServiceCallSite { + private readonly Type _serviceType; internal object DefaultValue { get; } public ConstantCallSite(Type serviceType, object defaultValue): base(ResultCache.None) { + _serviceType = serviceType ?? throw new ArgumentNullException(nameof(serviceType)); if (defaultValue != null && !serviceType.IsInstanceOfType(defaultValue)) { throw new ArgumentException(SR.Format(SR.ConstantCantBeConvertedToServiceType, defaultValue.GetType(), serviceType)); @@ -19,8 +21,8 @@ public ConstantCallSite(Type serviceType, object defaultValue): base(ResultCache DefaultValue = defaultValue; } - public override Type ServiceType => DefaultValue.GetType(); - public override Type ImplementationType => DefaultValue.GetType(); + public override Type ServiceType => DefaultValue?.GetType() ?? _serviceType; + public override Type ImplementationType => DefaultValue?.GetType() ?? _serviceType; public override CallSiteKind Kind { get; } = CallSiteKind.Constant; } } diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/Expressions/ExpressionResolverBuilder.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/Expressions/ExpressionResolverBuilder.cs index 1453db212279..e73710776e6b 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/Expressions/ExpressionResolverBuilder.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/Expressions/ExpressionResolverBuilder.cs @@ -193,7 +193,7 @@ protected override Expression VisitConstructor(ConstructorCallSite callSite, obj private static Expression Convert(Expression expression, Type type, bool forceValueTypeConversion = false) { // Don't convert if the expression is already assignable - if (type.GetTypeInfo().IsAssignableFrom(expression.Type.GetTypeInfo()) + if (type.IsAssignableFrom(expression.Type) && (!expression.Type.GetTypeInfo().IsValueType || !forceValueTypeConversion)) { return expression; diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ILEmit/ILEmitResolverBuilder.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ILEmit/ILEmitResolverBuilder.cs index e053565832f9..41370e45aeef 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ILEmit/ILEmitResolverBuilder.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ILEmit/ILEmitResolverBuilder.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Linq; using System.Reflection; using System.Reflection.Emit; @@ -19,7 +18,7 @@ internal sealed class ILEmitResolverBuilder : CallSiteVisitor(); + + var provider = descriptors.BuildServiceProvider(mode); + ServiceF instance = ActivatorUtilities.CreateInstance(provider); + + Assert.NotNull(instance); + } + + private interface IServiceG + { + } + + private class ServiceG + { + public ServiceG(IServiceG service = null) { } + } + + private class ServiceF + { + public ServiceF(ServiceG service) { } + } + private class ServiceD { public ServiceD(IEnumerable services) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs index 5c6853e1b1c1..8094dde9364b 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs @@ -12,6 +12,7 @@ namespace Microsoft.Extensions.DependencyInjection.Tests public class ServiceProviderCompilationTest { [Theory] + [InlineData(ServiceProviderMode.Default, typeof(I999))] [InlineData(ServiceProviderMode.Dynamic, typeof(I999))] [InlineData(ServiceProviderMode.Runtime, typeof(I999))] [InlineData(ServiceProviderMode.ILEmit, typeof(I999))] diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/TrimmingTests/ActivatorUtilitiesTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/TrimmingTests/ActivatorUtilitiesTests.cs index 2a3e22724e26..f62dd89545af 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/TrimmingTests/ActivatorUtilitiesTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/TrimmingTests/ActivatorUtilitiesTests.cs @@ -10,7 +10,7 @@ static int Main(string[] args) { ServiceProvider provider = new ServiceCollection().BuildServiceProvider(); - ObjectFactory factory = ActivatorUtilities.CreateFactory(typeof(ServiceA), Array.Empty()); + ObjectFactory factory = ActivatorUtilities.CreateFactory(typeof(ServiceA), Type.EmptyTypes); ServiceA serviceA = factory(provider, null) as ServiceA; ServiceB serviceB = ActivatorUtilities.CreateInstance(provider, typeof(ServiceB)) as ServiceB; ServiceC serviceC = ActivatorUtilities.CreateInstance(provider); diff --git a/src/libraries/Microsoft.Extensions.DependencyModel/Microsoft.Extensions.DependencyModel.sln b/src/libraries/Microsoft.Extensions.DependencyModel/Microsoft.Extensions.DependencyModel.sln index 64a261669117..629260433791 100644 --- a/src/libraries/Microsoft.Extensions.DependencyModel/Microsoft.Extensions.DependencyModel.sln +++ b/src/libraries/Microsoft.Extensions.DependencyModel/Microsoft.Extensions.DependencyModel.sln @@ -1,96 +1,121 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29920.165 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel", "src\Microsoft.Extensions.DependencyModel.csproj", "{5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E5B6A94F-615E-4DAF-8110-E5A776BB8296}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel", "ref\Microsoft.Extensions.DependencyModel.csproj", "{9EACDD3F-3833-4E71-954A-847989D634AB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{696D69C9-C5F6-405E-A8B5-5375D08BBADC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel.Tests", "tests\Microsoft.Extensions.DependencyModel.Tests.csproj", "{E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{2AED2951-7724-4EFC-8E16-6DF877C6B4A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{48E09E46-BD12-4B7E-9D10-3FEC7F9AE9B4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel", "ref\Microsoft.Extensions.DependencyModel.csproj", "{6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{47B5CCF6-E349-42D1-B3C2-900EFF594C8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel", "src\Microsoft.Extensions.DependencyModel.csproj", "{5C580568-6072-4F27-B5C6-FA04556E3B98}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A05AC200-A15B-430E-A4BD-522C570DDCB3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyModel.Tests", "tests\Microsoft.Extensions.DependencyModel.Tests.csproj", "{F5E89C81-2D78-4F86-ABD2-7D983F46EB58}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pkg", "pkg", "{8C081484-2645-46B8-B33E-DC3D883B27F1}" - ProjectSection(SolutionItems) = preProject - pkg\Microsoft.Extensions.DependencyModel.pkgproj = pkg\Microsoft.Extensions.DependencyModel.pkgproj - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nonentrypointassembly", "tests\nonentrypointassembly\nonentrypointassembly.csproj", "{5351C410-530D-4724-A8E6-430831E7332B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4FF50F50-C230-4C48-9DB1-080441BF7349}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B9B2CCC3-6F39-4EA9-9566-165413A7E0CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F38E2965-8DBB-4795-89AF-C0109EB23574}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{4A28B457-D950-486B-B59B-A4C977A733B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{42A46E81-16D3-463A-8DD9-EDA284246142}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{3D6318B9-0324-4C10-9033-9C938C2DECCC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{7902A0CA-E94D-4C96-A112-455A1E5E2390}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{FA7201FE-097D-4197-BDEC-329986814D8D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6CDD0F3A-28C1-487C-958D-284E94B14D7F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7443F4C1-08AA-4C3C-9543-DB736B27D1E2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6FBA8695-5140-46A6-BFD1-236C6588B6CC}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E5B6A94F-615E-4DAF-8110-E5A776BB8296} = {6CDD0F3A-28C1-487C-958D-284E94B14D7F} + {F5E89C81-2D78-4F86-ABD2-7D983F46EB58} = {6CDD0F3A-28C1-487C-958D-284E94B14D7F} + {5351C410-530D-4724-A8E6-430831E7332B} = {6CDD0F3A-28C1-487C-958D-284E94B14D7F} + {696D69C9-C5F6-405E-A8B5-5375D08BBADC} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {B9B2CCC3-6F39-4EA9-9566-165413A7E0CC} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {F38E2965-8DBB-4795-89AF-C0109EB23574} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {42A46E81-16D3-463A-8DD9-EDA284246142} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {3D6318B9-0324-4C10-9033-9C938C2DECCC} = {7443F4C1-08AA-4C3C-9543-DB736B27D1E2} + {2AED2951-7724-4EFC-8E16-6DF877C6B4A6} = {6FBA8695-5140-46A6-BFD1-236C6588B6CC} + {5C580568-6072-4F27-B5C6-FA04556E3B98} = {6FBA8695-5140-46A6-BFD1-236C6588B6CC} + {4A28B457-D950-486B-B59B-A4C977A733B1} = {6FBA8695-5140-46A6-BFD1-236C6588B6CC} + {7902A0CA-E94D-4C96-A112-455A1E5E2390} = {6FBA8695-5140-46A6-BFD1-236C6588B6CC} + {FA7201FE-097D-4197-BDEC-329986814D8D} = {6FBA8695-5140-46A6-BFD1-236C6588B6CC} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|x64.ActiveCfg = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|x64.Build.0 = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|x86.ActiveCfg = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Debug|x86.Build.0 = Debug|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|Any CPU.Build.0 = Release|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|x64.ActiveCfg = Release|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|x64.Build.0 = Release|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|x86.ActiveCfg = Release|Any CPU - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1}.Release|x86.Build.0 = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|x64.ActiveCfg = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|x64.Build.0 = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|x86.ActiveCfg = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Debug|x86.Build.0 = Debug|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|Any CPU.Build.0 = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|x64.ActiveCfg = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|x64.Build.0 = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|x86.ActiveCfg = Release|Any CPU - {9EACDD3F-3833-4E71-954A-847989D634AB}.Release|x86.Build.0 = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|x64.ActiveCfg = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|x64.Build.0 = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|x86.ActiveCfg = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Debug|x86.Build.0 = Debug|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|Any CPU.Build.0 = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|x64.ActiveCfg = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|x64.Build.0 = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|x86.ActiveCfg = Release|Any CPU - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C}.Release|x86.Build.0 = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|x64.ActiveCfg = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|x64.Build.0 = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|x86.ActiveCfg = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Debug|x86.Build.0 = Debug|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|Any CPU.Build.0 = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|x64.ActiveCfg = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|x64.Build.0 = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|x86.ActiveCfg = Release|Any CPU - {4FF50F50-C230-4C48-9DB1-080441BF7349}.Release|x86.Build.0 = Release|Any CPU + {E5B6A94F-615E-4DAF-8110-E5A776BB8296}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5B6A94F-615E-4DAF-8110-E5A776BB8296}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5B6A94F-615E-4DAF-8110-E5A776BB8296}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5B6A94F-615E-4DAF-8110-E5A776BB8296}.Release|Any CPU.Build.0 = Release|Any CPU + {696D69C9-C5F6-405E-A8B5-5375D08BBADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {696D69C9-C5F6-405E-A8B5-5375D08BBADC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {696D69C9-C5F6-405E-A8B5-5375D08BBADC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {696D69C9-C5F6-405E-A8B5-5375D08BBADC}.Release|Any CPU.Build.0 = Release|Any CPU + {2AED2951-7724-4EFC-8E16-6DF877C6B4A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2AED2951-7724-4EFC-8E16-6DF877C6B4A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2AED2951-7724-4EFC-8E16-6DF877C6B4A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2AED2951-7724-4EFC-8E16-6DF877C6B4A6}.Release|Any CPU.Build.0 = Release|Any CPU + {6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D9C22DB-C4E3-483E-AF78-C1DCE6ED8DD6}.Release|Any CPU.Build.0 = Release|Any CPU + {5C580568-6072-4F27-B5C6-FA04556E3B98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C580568-6072-4F27-B5C6-FA04556E3B98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C580568-6072-4F27-B5C6-FA04556E3B98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C580568-6072-4F27-B5C6-FA04556E3B98}.Release|Any CPU.Build.0 = Release|Any CPU + {F5E89C81-2D78-4F86-ABD2-7D983F46EB58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5E89C81-2D78-4F86-ABD2-7D983F46EB58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5E89C81-2D78-4F86-ABD2-7D983F46EB58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5E89C81-2D78-4F86-ABD2-7D983F46EB58}.Release|Any CPU.Build.0 = Release|Any CPU + {5351C410-530D-4724-A8E6-430831E7332B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5351C410-530D-4724-A8E6-430831E7332B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5351C410-530D-4724-A8E6-430831E7332B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5351C410-530D-4724-A8E6-430831E7332B}.Release|Any CPU.Build.0 = Release|Any CPU + {B9B2CCC3-6F39-4EA9-9566-165413A7E0CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9B2CCC3-6F39-4EA9-9566-165413A7E0CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9B2CCC3-6F39-4EA9-9566-165413A7E0CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9B2CCC3-6F39-4EA9-9566-165413A7E0CC}.Release|Any CPU.Build.0 = Release|Any CPU + {F38E2965-8DBB-4795-89AF-C0109EB23574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F38E2965-8DBB-4795-89AF-C0109EB23574}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F38E2965-8DBB-4795-89AF-C0109EB23574}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F38E2965-8DBB-4795-89AF-C0109EB23574}.Release|Any CPU.Build.0 = Release|Any CPU + {4A28B457-D950-486B-B59B-A4C977A733B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A28B457-D950-486B-B59B-A4C977A733B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A28B457-D950-486B-B59B-A4C977A733B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A28B457-D950-486B-B59B-A4C977A733B1}.Release|Any CPU.Build.0 = Release|Any CPU + {42A46E81-16D3-463A-8DD9-EDA284246142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42A46E81-16D3-463A-8DD9-EDA284246142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42A46E81-16D3-463A-8DD9-EDA284246142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42A46E81-16D3-463A-8DD9-EDA284246142}.Release|Any CPU.Build.0 = Release|Any CPU + {3D6318B9-0324-4C10-9033-9C938C2DECCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D6318B9-0324-4C10-9033-9C938C2DECCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D6318B9-0324-4C10-9033-9C938C2DECCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D6318B9-0324-4C10-9033-9C938C2DECCC}.Release|Any CPU.Build.0 = Release|Any CPU + {7902A0CA-E94D-4C96-A112-455A1E5E2390}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7902A0CA-E94D-4C96-A112-455A1E5E2390}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7902A0CA-E94D-4C96-A112-455A1E5E2390}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7902A0CA-E94D-4C96-A112-455A1E5E2390}.Release|Any CPU.Build.0 = Release|Any CPU + {FA7201FE-097D-4197-BDEC-329986814D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA7201FE-097D-4197-BDEC-329986814D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA7201FE-097D-4197-BDEC-329986814D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA7201FE-097D-4197-BDEC-329986814D8D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5E0AA1BE-28A2-4D25-A10A-E13EBDABE8A1} = {47B5CCF6-E349-42D1-B3C2-900EFF594C8A} - {9EACDD3F-3833-4E71-954A-847989D634AB} = {48E09E46-BD12-4B7E-9D10-3FEC7F9AE9B4} - {E0DEC773-1FE9-49B0-9562-1E245FE2DA5C} = {A05AC200-A15B-430E-A4BD-522C570DDCB3} - {4FF50F50-C230-4C48-9DB1-080441BF7349} = {A05AC200-A15B-430E-A4BD-522C570DDCB3} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {56AA6766-64A9-4715-BC6B-4A24EF6AF7F9} + SolutionGuid = {810D114A-26F4-4151-9EFE-29A7F1BF62AA} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.DependencyModel/src/CollectionExtensions.cs b/src/libraries/Microsoft.Extensions.DependencyModel/src/CollectionExtensions.cs index a3ad8264a754..9804f4a85ae8 100644 --- a/src/libraries/Microsoft.Extensions.DependencyModel/src/CollectionExtensions.cs +++ b/src/libraries/Microsoft.Extensions.DependencyModel/src/CollectionExtensions.cs @@ -9,6 +9,7 @@ namespace System.Collections.Generic public static class CollectionExtensions { public static RuntimeAssetGroup GetDefaultGroup(this IEnumerable self) => GetGroup(self, string.Empty); + public static RuntimeAssetGroup GetRuntimeGroup(this IEnumerable self, string runtime) { if (string.IsNullOrEmpty(runtime)) @@ -35,9 +36,16 @@ public static IEnumerable GetRuntimeAssets(this IEnumerable GetAssets(IEnumerable groups, string runtime) { - return groups - .Where(a => string.Equals(a.Runtime, runtime, StringComparison.Ordinal)) - .SelectMany(a => a.AssetPaths); + foreach (RuntimeAssetGroup group in groups) + { + if (group.Runtime == runtime) + { + foreach (string path in group.AssetPaths) + { + yield return path; + } + } + } } public static IEnumerable GetDefaultRuntimeFileAssets(this IEnumerable self) => GetRuntimeFiles(self, string.Empty); @@ -52,9 +60,16 @@ public static IEnumerable GetRuntimeFileAssets(this IEnumerable GetRuntimeFiles(IEnumerable groups, string runtime) { - return groups - .Where(a => string.Equals(a.Runtime, runtime, StringComparison.Ordinal)) - .SelectMany(a => a.RuntimeFiles); + foreach (RuntimeAssetGroup group in groups) + { + if (group.Runtime == runtime) + { + foreach (RuntimeFile file in group.RuntimeFiles) + { + yield return file; + } + } + } } } } diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Abstractions/Microsoft.Extensions.FileProviders.Abstractions.sln b/src/libraries/Microsoft.Extensions.FileProviders.Abstractions/Microsoft.Extensions.FileProviders.Abstractions.sln index 5269452955f2..bf7c46021aea 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Abstractions/Microsoft.Extensions.FileProviders.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.FileProviders.Abstractions/Microsoft.Extensions.FileProviders.Abstractions.sln @@ -1,39 +1,63 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{5A85C3DC-D0CF-4A03-9071-0C6C29B63856}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{D2B5E003-2790-43C3-93BD-923E874A4B85}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F39ECBD1-A0AC-4195-BCA9-2B8789853CDE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{DD99D42D-60FD-45D8-9F55-BE3AE38626D0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{494E2DDD-4224-49E0-A747-26F948EBACFA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{F985DC40-F983-4464-B866-3BD17EE3B6B1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{E9266982-7205-46C8-B457-CCF450959793}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{31FFC3D4-26EA-4261-81B1-380A4E5C4A6B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{28E2BB23-2533-4909-8DA6-911AC3D7224B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{39D21DF7-2E75-44F1-9A58-B07DC2580700}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D2B5E003-2790-43C3-93BD-923E874A4B85} = {28E2BB23-2533-4909-8DA6-911AC3D7224B} + {F985DC40-F983-4464-B866-3BD17EE3B6B1} = {28E2BB23-2533-4909-8DA6-911AC3D7224B} + {AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A} = {28E2BB23-2533-4909-8DA6-911AC3D7224B} + {DD99D42D-60FD-45D8-9F55-BE3AE38626D0} = {39D21DF7-2E75-44F1-9A58-B07DC2580700} + {E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE} = {39D21DF7-2E75-44F1-9A58-B07DC2580700} + {31FFC3D4-26EA-4261-81B1-380A4E5C4A6B} = {39D21DF7-2E75-44F1-9A58-B07DC2580700} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {494E2DDD-4224-49E0-A747-26F948EBACFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {494E2DDD-4224-49E0-A747-26F948EBACFA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {494E2DDD-4224-49E0-A747-26F948EBACFA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {494E2DDD-4224-49E0-A747-26F948EBACFA}.Release|Any CPU.Build.0 = Release|Any CPU - {E9266982-7205-46C8-B457-CCF450959793}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9266982-7205-46C8-B457-CCF450959793}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9266982-7205-46C8-B457-CCF450959793}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9266982-7205-46C8-B457-CCF450959793}.Release|Any CPU.Build.0 = Release|Any CPU + {D2B5E003-2790-43C3-93BD-923E874A4B85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2B5E003-2790-43C3-93BD-923E874A4B85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2B5E003-2790-43C3-93BD-923E874A4B85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2B5E003-2790-43C3-93BD-923E874A4B85}.Release|Any CPU.Build.0 = Release|Any CPU + {DD99D42D-60FD-45D8-9F55-BE3AE38626D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD99D42D-60FD-45D8-9F55-BE3AE38626D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD99D42D-60FD-45D8-9F55-BE3AE38626D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD99D42D-60FD-45D8-9F55-BE3AE38626D0}.Release|Any CPU.Build.0 = Release|Any CPU + {F985DC40-F983-4464-B866-3BD17EE3B6B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F985DC40-F983-4464-B866-3BD17EE3B6B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F985DC40-F983-4464-B866-3BD17EE3B6B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F985DC40-F983-4464-B866-3BD17EE3B6B1}.Release|Any CPU.Build.0 = Release|Any CPU + {E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7FEEB55-F4A7-4677-AFD5-7DE90A4897AE}.Release|Any CPU.Build.0 = Release|Any CPU + {AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA01DAC4-CE5D-43AD-9FC3-F8DBE5F1952A}.Release|Any CPU.Build.0 = Release|Any CPU + {31FFC3D4-26EA-4261-81B1-380A4E5C4A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31FFC3D4-26EA-4261-81B1-380A4E5C4A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31FFC3D4-26EA-4261-81B1-380A4E5C4A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31FFC3D4-26EA-4261-81B1-380A4E5C4A6B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {494E2DDD-4224-49E0-A747-26F948EBACFA} = {5A85C3DC-D0CF-4A03-9071-0C6C29B63856} - {E9266982-7205-46C8-B457-CCF450959793} = {F39ECBD1-A0AC-4195-BCA9-2B8789853CDE} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {99152235-4454-4EC0-9FE4-C332E192CA51} + SolutionGuid = {ADEB1F74-B672-4B9F-A221-7A548028621F} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Composite/Microsoft.Extensions.FileProviders.Composite.sln b/src/libraries/Microsoft.Extensions.FileProviders.Composite/Microsoft.Extensions.FileProviders.Composite.sln index d4a33ffc4c58..3e4c24e391e2 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Composite/Microsoft.Extensions.FileProviders.Composite.sln +++ b/src/libraries/Microsoft.Extensions.FileProviders.Composite/Microsoft.Extensions.FileProviders.Composite.sln @@ -1,55 +1,114 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B269123A-BA35-48E3-84CA-A2DC821D20B4}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{38BD2606-E0D9-4016-A422-02062CE206A1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{286582BD-078C-4705-BB1F-8AC3D8C35DCE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{0AF0AB89-EB1B-449B-B96C-1120B4261D47}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{17B68FB8-5750-412A-BE2F-0958142CB101}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{4A904B1E-5710-4D31-A734-33C734C9D989}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite", "ref\Microsoft.Extensions.FileProviders.Composite.csproj", "{3AD7B949-DC7D-46E9-9781-47F631D11E79}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite", "ref\Microsoft.Extensions.FileProviders.Composite.csproj", "{BEB0AB80-D91D-4C29-B07A-9C2673DA4E29}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite", "src\Microsoft.Extensions.FileProviders.Composite.csproj", "{F9BB5B79-96EE-4255-A458-88E896E2FB5B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite", "src\Microsoft.Extensions.FileProviders.Composite.csproj", "{7A8F66B3-8D37-4D83-B54F-0955EC11F675}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite.Tests", "tests\Microsoft.Extensions.FileProviders.Composite.Tests.csproj", "{20A287F1-DC01-4569-851B-A54016B54618}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Composite.Tests", "tests\Microsoft.Extensions.FileProviders.Composite.Tests.csproj", "{69D9DAD7-0683-49B2-99E5-FBEBE5803C02}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DBBD82F2-6CC9-4FE1-B020-2F71E652104E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{22E22108-1ED0-4295-8CCC-2BBBAFA3DF78}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{78990065-E5F9-46C6-9388-E709261249D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{ABD00CF3-0D7E-42A1-B685-4127238C1534}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F79164E2-EC00-4A9C-995D-64E9BCD6645B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1205C9A5-117C-4119-965F-AE60C4874D0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{8894F669-048B-46C7-AB5D-4B274E42EF6F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{99C62D43-9258-412B-AFB6-3D2DD92AF8F7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{11C6D5C0-7934-4F47-A800-60BBAAA16033}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {38BD2606-E0D9-4016-A422-02062CE206A1} = {99C62D43-9258-412B-AFB6-3D2DD92AF8F7} + {69D9DAD7-0683-49B2-99E5-FBEBE5803C02} = {99C62D43-9258-412B-AFB6-3D2DD92AF8F7} + {0AF0AB89-EB1B-449B-B96C-1120B4261D47} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {BEB0AB80-D91D-4C29-B07A-9C2673DA4E29} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {22E22108-1ED0-4295-8CCC-2BBBAFA3DF78} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {78990065-E5F9-46C6-9388-E709261249D2} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {ABD00CF3-0D7E-42A1-B685-4127238C1534} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {1205C9A5-117C-4119-965F-AE60C4874D0B} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {8894F669-048B-46C7-AB5D-4B274E42EF6F} = {CF86CB89-9D65-41F9-BE4F-8BAB15D4A81E} + {4A904B1E-5710-4D31-A734-33C734C9D989} = {11C6D5C0-7934-4F47-A800-60BBAAA16033} + {7A8F66B3-8D37-4D83-B54F-0955EC11F675} = {11C6D5C0-7934-4F47-A800-60BBAAA16033} + {FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3} = {11C6D5C0-7934-4F47-A800-60BBAAA16033} + {F79164E2-EC00-4A9C-995D-64E9BCD6645B} = {11C6D5C0-7934-4F47-A800-60BBAAA16033} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AD7B949-DC7D-46E9-9781-47F631D11E79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3AD7B949-DC7D-46E9-9781-47F631D11E79}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3AD7B949-DC7D-46E9-9781-47F631D11E79}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3AD7B949-DC7D-46E9-9781-47F631D11E79}.Release|Any CPU.Build.0 = Release|Any CPU - {F9BB5B79-96EE-4255-A458-88E896E2FB5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9BB5B79-96EE-4255-A458-88E896E2FB5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9BB5B79-96EE-4255-A458-88E896E2FB5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9BB5B79-96EE-4255-A458-88E896E2FB5B}.Release|Any CPU.Build.0 = Release|Any CPU - {20A287F1-DC01-4569-851B-A54016B54618}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20A287F1-DC01-4569-851B-A54016B54618}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20A287F1-DC01-4569-851B-A54016B54618}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20A287F1-DC01-4569-851B-A54016B54618}.Release|Any CPU.Build.0 = Release|Any CPU - {DBBD82F2-6CC9-4FE1-B020-2F71E652104E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBBD82F2-6CC9-4FE1-B020-2F71E652104E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBBD82F2-6CC9-4FE1-B020-2F71E652104E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DBBD82F2-6CC9-4FE1-B020-2F71E652104E}.Release|Any CPU.Build.0 = Release|Any CPU + {38BD2606-E0D9-4016-A422-02062CE206A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38BD2606-E0D9-4016-A422-02062CE206A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38BD2606-E0D9-4016-A422-02062CE206A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38BD2606-E0D9-4016-A422-02062CE206A1}.Release|Any CPU.Build.0 = Release|Any CPU + {0AF0AB89-EB1B-449B-B96C-1120B4261D47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AF0AB89-EB1B-449B-B96C-1120B4261D47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AF0AB89-EB1B-449B-B96C-1120B4261D47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AF0AB89-EB1B-449B-B96C-1120B4261D47}.Release|Any CPU.Build.0 = Release|Any CPU + {4A904B1E-5710-4D31-A734-33C734C9D989}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A904B1E-5710-4D31-A734-33C734C9D989}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A904B1E-5710-4D31-A734-33C734C9D989}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A904B1E-5710-4D31-A734-33C734C9D989}.Release|Any CPU.Build.0 = Release|Any CPU + {BEB0AB80-D91D-4C29-B07A-9C2673DA4E29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEB0AB80-D91D-4C29-B07A-9C2673DA4E29}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEB0AB80-D91D-4C29-B07A-9C2673DA4E29}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEB0AB80-D91D-4C29-B07A-9C2673DA4E29}.Release|Any CPU.Build.0 = Release|Any CPU + {7A8F66B3-8D37-4D83-B54F-0955EC11F675}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A8F66B3-8D37-4D83-B54F-0955EC11F675}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A8F66B3-8D37-4D83-B54F-0955EC11F675}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A8F66B3-8D37-4D83-B54F-0955EC11F675}.Release|Any CPU.Build.0 = Release|Any CPU + {69D9DAD7-0683-49B2-99E5-FBEBE5803C02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69D9DAD7-0683-49B2-99E5-FBEBE5803C02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69D9DAD7-0683-49B2-99E5-FBEBE5803C02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69D9DAD7-0683-49B2-99E5-FBEBE5803C02}.Release|Any CPU.Build.0 = Release|Any CPU + {22E22108-1ED0-4295-8CCC-2BBBAFA3DF78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22E22108-1ED0-4295-8CCC-2BBBAFA3DF78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22E22108-1ED0-4295-8CCC-2BBBAFA3DF78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22E22108-1ED0-4295-8CCC-2BBBAFA3DF78}.Release|Any CPU.Build.0 = Release|Any CPU + {FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC76C7E7-C2C3-43D0-99AE-C77E8402FBE3}.Release|Any CPU.Build.0 = Release|Any CPU + {78990065-E5F9-46C6-9388-E709261249D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78990065-E5F9-46C6-9388-E709261249D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78990065-E5F9-46C6-9388-E709261249D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78990065-E5F9-46C6-9388-E709261249D2}.Release|Any CPU.Build.0 = Release|Any CPU + {ABD00CF3-0D7E-42A1-B685-4127238C1534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABD00CF3-0D7E-42A1-B685-4127238C1534}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABD00CF3-0D7E-42A1-B685-4127238C1534}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABD00CF3-0D7E-42A1-B685-4127238C1534}.Release|Any CPU.Build.0 = Release|Any CPU + {F79164E2-EC00-4A9C-995D-64E9BCD6645B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F79164E2-EC00-4A9C-995D-64E9BCD6645B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F79164E2-EC00-4A9C-995D-64E9BCD6645B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F79164E2-EC00-4A9C-995D-64E9BCD6645B}.Release|Any CPU.Build.0 = Release|Any CPU + {1205C9A5-117C-4119-965F-AE60C4874D0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1205C9A5-117C-4119-965F-AE60C4874D0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1205C9A5-117C-4119-965F-AE60C4874D0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1205C9A5-117C-4119-965F-AE60C4874D0B}.Release|Any CPU.Build.0 = Release|Any CPU + {8894F669-048B-46C7-AB5D-4B274E42EF6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8894F669-048B-46C7-AB5D-4B274E42EF6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8894F669-048B-46C7-AB5D-4B274E42EF6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8894F669-048B-46C7-AB5D-4B274E42EF6F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3AD7B949-DC7D-46E9-9781-47F631D11E79} = {B269123A-BA35-48E3-84CA-A2DC821D20B4} - {F9BB5B79-96EE-4255-A458-88E896E2FB5B} = {286582BD-078C-4705-BB1F-8AC3D8C35DCE} - {20A287F1-DC01-4569-851B-A54016B54618} = {17B68FB8-5750-412A-BE2F-0958142CB101} - {DBBD82F2-6CC9-4FE1-B020-2F71E652104E} = {17B68FB8-5750-412A-BE2F-0958142CB101} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1B4A0C76-E4FA-4FEC-A04D-F71987BB8830} + SolutionGuid = {2C4F880D-DD85-46A9-881C-94C75D87D8A9} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Physical/Microsoft.Extensions.FileProviders.Physical.sln b/src/libraries/Microsoft.Extensions.FileProviders.Physical/Microsoft.Extensions.FileProviders.Physical.sln index 1c6e0abf9d64..abe5b371c003 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Physical/Microsoft.Extensions.FileProviders.Physical.sln +++ b/src/libraries/Microsoft.Extensions.FileProviders.Physical/Microsoft.Extensions.FileProviders.Physical.sln @@ -1,55 +1,128 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{40FA757C-F51D-4AA8-8C3C-C203A1B555EF}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5F693912-195A-4F0E-920C-0C27D23AFDB7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E7A3F7C8-9DD2-47DD-80C7-D35F99CB6354}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{5EACA25A-C547-4F4F-A6C3-8D972A419928}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{785DABFE-84C2-41F8-BC8A-6FA59830FBE5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{907217D6-8690-4213-AD96-BA67A47499BF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{70816D5C-D75E-4D71-9869-9DAB8FFB9527}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{BBF27B04-4E1A-482C-93BE-8F887773055A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "src\Microsoft.Extensions.FileProviders.Physical.csproj", "{22648DDF-2A47-4754-B024-059AC14A8937}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "src\Microsoft.Extensions.FileProviders.Physical.csproj", "{55A66A71-A400-4A36-9A19-9F8B549647D7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical.Tests", "tests\Microsoft.Extensions.FileProviders.Physical.Tests.csproj", "{060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical.Tests", "tests\Microsoft.Extensions.FileProviders.Physical.Tests.csproj", "{63048457-9BE1-4C54-8581-ADF6F6D3D271}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6BFBACB5-01F5-4767-AE92-F211C9CA71FC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{85AC9873-8EE8-411C-A2B0-EBB910F9AB9A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{DBE052B4-23A7-4F40-BFFE-9604E39AAACF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{AB2263E5-4509-4A94-BA1F-76451502DC6D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{C55245FA-CAA6-43F7-917C-602E97BC8D52}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0BE2B76F-6237-4A38-953F-11717E757891}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{54BEF25B-96F5-464D-BAD5-11E49854D244}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{AD097226-D10B-4423-BED6-49C3FF58A658}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CE9C3977-A043-451B-97BB-C33496C458C8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{234D9C02-1797-4A0B-B396-FB960B09C095}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{AFD6947A-A0BE-4F4A-84E4-121E1692E90B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5CFE2A6-320A-4D38-881B-03A1B4404FC0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5F693912-195A-4F0E-920C-0C27D23AFDB7} = {234D9C02-1797-4A0B-B396-FB960B09C095} + {63048457-9BE1-4C54-8581-ADF6F6D3D271} = {234D9C02-1797-4A0B-B396-FB960B09C095} + {5EACA25A-C547-4F4F-A6C3-8D972A419928} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {BBF27B04-4E1A-482C-93BE-8F887773055A} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {85AC9873-8EE8-411C-A2B0-EBB910F9AB9A} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {AB2263E5-4509-4A94-BA1F-76451502DC6D} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {0BE2B76F-6237-4A38-953F-11717E757891} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {54BEF25B-96F5-464D-BAD5-11E49854D244} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {CE9C3977-A043-451B-97BB-C33496C458C8} = {AFD6947A-A0BE-4F4A-84E4-121E1692E90B} + {907217D6-8690-4213-AD96-BA67A47499BF} = {B5CFE2A6-320A-4D38-881B-03A1B4404FC0} + {55A66A71-A400-4A36-9A19-9F8B549647D7} = {B5CFE2A6-320A-4D38-881B-03A1B4404FC0} + {DBE052B4-23A7-4F40-BFFE-9604E39AAACF} = {B5CFE2A6-320A-4D38-881B-03A1B4404FC0} + {C55245FA-CAA6-43F7-917C-602E97BC8D52} = {B5CFE2A6-320A-4D38-881B-03A1B4404FC0} + {AD097226-D10B-4423-BED6-49C3FF58A658} = {B5CFE2A6-320A-4D38-881B-03A1B4404FC0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {70816D5C-D75E-4D71-9869-9DAB8FFB9527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70816D5C-D75E-4D71-9869-9DAB8FFB9527}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70816D5C-D75E-4D71-9869-9DAB8FFB9527}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70816D5C-D75E-4D71-9869-9DAB8FFB9527}.Release|Any CPU.Build.0 = Release|Any CPU - {22648DDF-2A47-4754-B024-059AC14A8937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {22648DDF-2A47-4754-B024-059AC14A8937}.Debug|Any CPU.Build.0 = Debug|Any CPU - {22648DDF-2A47-4754-B024-059AC14A8937}.Release|Any CPU.ActiveCfg = Release|Any CPU - {22648DDF-2A47-4754-B024-059AC14A8937}.Release|Any CPU.Build.0 = Release|Any CPU - {060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3}.Release|Any CPU.Build.0 = Release|Any CPU - {6BFBACB5-01F5-4767-AE92-F211C9CA71FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6BFBACB5-01F5-4767-AE92-F211C9CA71FC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6BFBACB5-01F5-4767-AE92-F211C9CA71FC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6BFBACB5-01F5-4767-AE92-F211C9CA71FC}.Release|Any CPU.Build.0 = Release|Any CPU + {5F693912-195A-4F0E-920C-0C27D23AFDB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F693912-195A-4F0E-920C-0C27D23AFDB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F693912-195A-4F0E-920C-0C27D23AFDB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F693912-195A-4F0E-920C-0C27D23AFDB7}.Release|Any CPU.Build.0 = Release|Any CPU + {5EACA25A-C547-4F4F-A6C3-8D972A419928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EACA25A-C547-4F4F-A6C3-8D972A419928}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EACA25A-C547-4F4F-A6C3-8D972A419928}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EACA25A-C547-4F4F-A6C3-8D972A419928}.Release|Any CPU.Build.0 = Release|Any CPU + {907217D6-8690-4213-AD96-BA67A47499BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {907217D6-8690-4213-AD96-BA67A47499BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {907217D6-8690-4213-AD96-BA67A47499BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {907217D6-8690-4213-AD96-BA67A47499BF}.Release|Any CPU.Build.0 = Release|Any CPU + {BBF27B04-4E1A-482C-93BE-8F887773055A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBF27B04-4E1A-482C-93BE-8F887773055A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBF27B04-4E1A-482C-93BE-8F887773055A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBF27B04-4E1A-482C-93BE-8F887773055A}.Release|Any CPU.Build.0 = Release|Any CPU + {55A66A71-A400-4A36-9A19-9F8B549647D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55A66A71-A400-4A36-9A19-9F8B549647D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55A66A71-A400-4A36-9A19-9F8B549647D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55A66A71-A400-4A36-9A19-9F8B549647D7}.Release|Any CPU.Build.0 = Release|Any CPU + {63048457-9BE1-4C54-8581-ADF6F6D3D271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63048457-9BE1-4C54-8581-ADF6F6D3D271}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63048457-9BE1-4C54-8581-ADF6F6D3D271}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63048457-9BE1-4C54-8581-ADF6F6D3D271}.Release|Any CPU.Build.0 = Release|Any CPU + {85AC9873-8EE8-411C-A2B0-EBB910F9AB9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85AC9873-8EE8-411C-A2B0-EBB910F9AB9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85AC9873-8EE8-411C-A2B0-EBB910F9AB9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85AC9873-8EE8-411C-A2B0-EBB910F9AB9A}.Release|Any CPU.Build.0 = Release|Any CPU + {DBE052B4-23A7-4F40-BFFE-9604E39AAACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBE052B4-23A7-4F40-BFFE-9604E39AAACF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBE052B4-23A7-4F40-BFFE-9604E39AAACF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBE052B4-23A7-4F40-BFFE-9604E39AAACF}.Release|Any CPU.Build.0 = Release|Any CPU + {AB2263E5-4509-4A94-BA1F-76451502DC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB2263E5-4509-4A94-BA1F-76451502DC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB2263E5-4509-4A94-BA1F-76451502DC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB2263E5-4509-4A94-BA1F-76451502DC6D}.Release|Any CPU.Build.0 = Release|Any CPU + {C55245FA-CAA6-43F7-917C-602E97BC8D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C55245FA-CAA6-43F7-917C-602E97BC8D52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C55245FA-CAA6-43F7-917C-602E97BC8D52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C55245FA-CAA6-43F7-917C-602E97BC8D52}.Release|Any CPU.Build.0 = Release|Any CPU + {0BE2B76F-6237-4A38-953F-11717E757891}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BE2B76F-6237-4A38-953F-11717E757891}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BE2B76F-6237-4A38-953F-11717E757891}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BE2B76F-6237-4A38-953F-11717E757891}.Release|Any CPU.Build.0 = Release|Any CPU + {54BEF25B-96F5-464D-BAD5-11E49854D244}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54BEF25B-96F5-464D-BAD5-11E49854D244}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54BEF25B-96F5-464D-BAD5-11E49854D244}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54BEF25B-96F5-464D-BAD5-11E49854D244}.Release|Any CPU.Build.0 = Release|Any CPU + {AD097226-D10B-4423-BED6-49C3FF58A658}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD097226-D10B-4423-BED6-49C3FF58A658}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD097226-D10B-4423-BED6-49C3FF58A658}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD097226-D10B-4423-BED6-49C3FF58A658}.Release|Any CPU.Build.0 = Release|Any CPU + {67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67799EB0-2D37-4EA3-A33D-C2CB3B48FFE0}.Release|Any CPU.Build.0 = Release|Any CPU + {CE9C3977-A043-451B-97BB-C33496C458C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE9C3977-A043-451B-97BB-C33496C458C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE9C3977-A043-451B-97BB-C33496C458C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE9C3977-A043-451B-97BB-C33496C458C8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {70816D5C-D75E-4D71-9869-9DAB8FFB9527} = {40FA757C-F51D-4AA8-8C3C-C203A1B555EF} - {22648DDF-2A47-4754-B024-059AC14A8937} = {E7A3F7C8-9DD2-47DD-80C7-D35F99CB6354} - {060CD42A-BFEF-4F86-BFA1-6BDF4A64F3F3} = {785DABFE-84C2-41F8-BC8A-6FA59830FBE5} - {6BFBACB5-01F5-4767-AE92-F211C9CA71FC} = {785DABFE-84C2-41F8-BC8A-6FA59830FBE5} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {775376C7-9426-4CD9-88C4-70726CDAA954} + SolutionGuid = {4B425DE1-F167-465F-97A1-FA1E8C63DFB8} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFileProvider.cs b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFileProvider.cs index ea06ffb247e8..9ac30856c56a 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFileProvider.cs +++ b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFileProvider.cs @@ -159,7 +159,10 @@ internal PhysicalFilesWatcher FileWatcher internal PhysicalFilesWatcher CreateFileWatcher() { string root = PathUtils.EnsureTrailingSlash(Path.GetFullPath(Root)); - return new PhysicalFilesWatcher(root, new FileSystemWatcher(root), UsePollingFileWatcher, _filters) + + // When both UsePollingFileWatcher & UseActivePolling are set, we won't use a FileSystemWatcher. + FileSystemWatcher watcher = UsePollingFileWatcher && UseActivePolling ? null : new FileSystemWatcher(root); + return new PhysicalFilesWatcher(root, watcher, UsePollingFileWatcher, _filters) { UseActivePolling = UseActivePolling, }; diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFilesWatcher.cs b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFilesWatcher.cs index b819c83cdb70..f9f122313535 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFilesWatcher.cs +++ b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFilesWatcher.cs @@ -79,14 +79,23 @@ public class PhysicalFilesWatcher : IDisposable bool pollForChanges, ExclusionFilters filters) { + if (fileSystemWatcher == null && !pollForChanges) + { + throw new ArgumentNullException(nameof(fileSystemWatcher), SR.Error_FileSystemWatcherRequiredWithoutPolling); + } + _root = root; - _fileWatcher = fileSystemWatcher; - _fileWatcher.IncludeSubdirectories = true; - _fileWatcher.Created += OnChanged; - _fileWatcher.Changed += OnChanged; - _fileWatcher.Renamed += OnRenamed; - _fileWatcher.Deleted += OnChanged; - _fileWatcher.Error += OnError; + + if (fileSystemWatcher != null) + { + _fileWatcher = fileSystemWatcher; + _fileWatcher.IncludeSubdirectories = true; + _fileWatcher.Created += OnChanged; + _fileWatcher.Changed += OnChanged; + _fileWatcher.Renamed += OnRenamed; + _fileWatcher.Deleted += OnChanged; + _fileWatcher.Error += OnError; + } PollForChanges = pollForChanges; _filters = filters; @@ -361,27 +370,33 @@ private void ReportChangeForMatchedEntries(string path) private void TryDisableFileSystemWatcher() { - lock (_fileWatcherLock) + if (_fileWatcher != null) { - if (_filePathTokenLookup.IsEmpty && - _wildcardTokenLookup.IsEmpty && - _fileWatcher.EnableRaisingEvents) + lock (_fileWatcherLock) { - // Perf: Turn off the file monitoring if no files to monitor. - _fileWatcher.EnableRaisingEvents = false; + if (_filePathTokenLookup.IsEmpty && + _wildcardTokenLookup.IsEmpty && + _fileWatcher.EnableRaisingEvents) + { + // Perf: Turn off the file monitoring if no files to monitor. + _fileWatcher.EnableRaisingEvents = false; + } } } } private void TryEnableFileSystemWatcher() { - lock (_fileWatcherLock) + if (_fileWatcher != null) { - if ((!_filePathTokenLookup.IsEmpty || !_wildcardTokenLookup.IsEmpty) && - !_fileWatcher.EnableRaisingEvents) + lock (_fileWatcherLock) { - // Perf: Turn off the file monitoring if no files to monitor. - _fileWatcher.EnableRaisingEvents = true; + if ((!_filePathTokenLookup.IsEmpty || !_wildcardTokenLookup.IsEmpty) && + !_fileWatcher.EnableRaisingEvents) + { + // Perf: Turn off the file monitoring if no files to monitor. + _fileWatcher.EnableRaisingEvents = true; + } } } } diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Resources/Strings.resx b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Resources/Strings.resx new file mode 100644 index 000000000000..061407cc73ac --- /dev/null +++ b/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Resources/Strings.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The fileSystemWatcher parameter must be non-null when pollForChanges is false. + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.FileProviders.Physical/tests/PhysicalFileProviderTests.cs b/src/libraries/Microsoft.Extensions.FileProviders.Physical/tests/PhysicalFileProviderTests.cs index 0d9fb9577845..75115f360210 100644 --- a/src/libraries/Microsoft.Extensions.FileProviders.Physical/tests/PhysicalFileProviderTests.cs +++ b/src/libraries/Microsoft.Extensions.FileProviders.Physical/tests/PhysicalFileProviderTests.cs @@ -2,9 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; +using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.FileProviders.Internal; using Microsoft.Extensions.FileProviders.Physical; @@ -16,6 +18,7 @@ namespace Microsoft.Extensions.FileProviders public class PhysicalFileProviderTests { private const int WaitTimeForTokenToFire = 500; + private const int WaitTimeForTokenCallback = 10000; [Fact] public void GetFileInfoReturnsNotFoundFileInfoForNullPath() @@ -87,6 +90,54 @@ public void GetFileInfoReturnsNotFoundFileInfoForIllegalPathWithLeadingSlashes_U GetFileInfoReturnsNotFoundFileInfoForIllegalPathWithLeadingSlashes(path); } + [Fact] + [PlatformSpecific(TestPlatforms.Linux)] + public void PollingFileProviderShouldntConsumeINotifyInstances() + { + List disposables = new List(); + using (var root = new DisposableFileSystem()) + { + string maxInstancesFile = "/proc/sys/fs/inotify/max_user_instances"; + Assert.True(File.Exists(maxInstancesFile)); + int maxInstances = int.Parse(File.ReadAllText(maxInstancesFile)); + + // choose an arbitrary number that exceeds max + int instances = maxInstances + 16; + + AutoResetEvent are = new AutoResetEvent(false); + + var oldPollingInterval = PhysicalFilesWatcher.DefaultPollingInterval; + try + { + PhysicalFilesWatcher.DefaultPollingInterval = TimeSpan.FromMilliseconds(WaitTimeForTokenToFire); + for (int i = 0; i < instances; i++) + { + PhysicalFileProvider pfp = new PhysicalFileProvider(root.RootPath) + { + UsePollingFileWatcher = true, + UseActivePolling = true + }; + disposables.Add(pfp); + disposables.Add(pfp.Watch("*").RegisterChangeCallback(_ => are.Set(), null)); + } + + // trigger an event + root.CreateFile("test.txt"); + + // wait for at least one event. + Assert.True(are.WaitOne(WaitTimeForTokenCallback)); + } + finally + { + PhysicalFilesWatcher.DefaultPollingInterval = oldPollingInterval; + foreach (var disposable in disposables) + { + disposable.Dispose(); + } + } + } + } + private void GetFileInfoReturnsNotFoundFileInfoForIllegalPathWithLeadingSlashes(string path) { using (var provider = new PhysicalFileProvider(Path.GetTempPath())) @@ -1479,5 +1530,30 @@ public void CreateFileWatcher_CreatesWatcherWithPollingAndActiveFlags() Assert.True(fileWatcher.UseActivePolling); } } + + [Theory] + [InlineData(false)] + [InlineData(true)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/34580", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + public async Task CanDeleteWatchedDirectory(bool useActivePolling) + { + using (var root = new DisposableFileSystem()) + using (var provider = new PhysicalFileProvider(root.RootPath)) + { + var fileName = Path.GetRandomFileName(); + PollingFileChangeToken.PollingInterval = TimeSpan.FromMilliseconds(10); + + provider.UsePollingFileWatcher = true; // We must use polling due to https://github.com/dotnet/runtime/issues/44484 + provider.UseActivePolling = useActivePolling; + + root.CreateFile(fileName); + var token = provider.Watch(fileName); + Directory.Delete(root.RootPath, true); + + await Task.Delay(WaitTimeForTokenToFire).ConfigureAwait(false); + + Assert.True(token.HasChanged); + } + } } } diff --git a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/Microsoft.Extensions.FileSystemGlobbing.sln b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/Microsoft.Extensions.FileSystemGlobbing.sln index 2e49a08654fa..9e7617d720a3 100644 --- a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/Microsoft.Extensions.FileSystemGlobbing.sln +++ b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/Microsoft.Extensions.FileSystemGlobbing.sln @@ -1,54 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{A9547748-8B4F-450E-B0E3-CD9A1A80B319}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing.Tests", "tests\Microsoft.Extensions.FileSystemGlobbing.Tests.csproj", "{5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing.Tests", "tests\Microsoft.Extensions.FileSystemGlobbing.Tests.csproj", "{79B284F9-326E-4FEB-9A32-EA72A31B4B60}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{58A26DC9-8A10-4F32-927C-D6E2A1B99E1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{4BDF1437-D88A-4E3E-9C32-8B4D34129B37}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{49CB4AB9-5D76-481D-9FFA-458C9AC394EF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{81FA9ECC-2671-4077-8F6F-2F8538917512}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2CCD7884-930F-420F-B559-3EB1EB9AF754}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{965074B0-3EC8-426A-B944-EF60C78DC6BD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{0206FF1D-8036-4228-81CC-81B9602BF11F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{5158D9CE-B5AF-404D-8F87-DB575FA59148}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{24FACEAC-26F6-4570-8AB3-0C1081D0FFB1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{26034E74-B1B3-4B68-A217-0E4D47DD6E55}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{86A9B48A-2A11-4AF5-B383-5A5F6DB7EAE8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2} = {24FACEAC-26F6-4570-8AB3-0C1081D0FFB1} + {79B284F9-326E-4FEB-9A32-EA72A31B4B60} = {24FACEAC-26F6-4570-8AB3-0C1081D0FFB1} + {ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55} = {26034E74-B1B3-4B68-A217-0E4D47DD6E55} + {4BDF1437-D88A-4E3E-9C32-8B4D34129B37} = {26034E74-B1B3-4B68-A217-0E4D47DD6E55} + {81FA9ECC-2671-4077-8F6F-2F8538917512} = {26034E74-B1B3-4B68-A217-0E4D47DD6E55} + {0206FF1D-8036-4228-81CC-81B9602BF11F} = {26034E74-B1B3-4B68-A217-0E4D47DD6E55} + {5158D9CE-B5AF-404D-8F87-DB575FA59148} = {26034E74-B1B3-4B68-A217-0E4D47DD6E55} + {A9547748-8B4F-450E-B0E3-CD9A1A80B319} = {86A9B48A-2A11-4AF5-B383-5A5F6DB7EAE8} + {965074B0-3EC8-426A-B944-EF60C78DC6BD} = {86A9B48A-2A11-4AF5-B383-5A5F6DB7EAE8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1}.Release|Any CPU.Build.0 = Release|Any CPU - {58A26DC9-8A10-4F32-927C-D6E2A1B99E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58A26DC9-8A10-4F32-927C-D6E2A1B99E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58A26DC9-8A10-4F32-927C-D6E2A1B99E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58A26DC9-8A10-4F32-927C-D6E2A1B99E1B}.Release|Any CPU.Build.0 = Release|Any CPU - {49CB4AB9-5D76-481D-9FFA-458C9AC394EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49CB4AB9-5D76-481D-9FFA-458C9AC394EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49CB4AB9-5D76-481D-9FFA-458C9AC394EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49CB4AB9-5D76-481D-9FFA-458C9AC394EF}.Release|Any CPU.Build.0 = Release|Any CPU - {2CCD7884-930F-420F-B559-3EB1EB9AF754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CCD7884-930F-420F-B559-3EB1EB9AF754}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2CCD7884-930F-420F-B559-3EB1EB9AF754}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2CCD7884-930F-420F-B559-3EB1EB9AF754}.Release|Any CPU.Build.0 = Release|Any CPU + {C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C76E62F8-C898-4A2A-8D5C-EEE1D4505DF2}.Release|Any CPU.Build.0 = Release|Any CPU + {ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECFF7A87-0D5F-4EA1-9FED-1126A51B5D55}.Release|Any CPU.Build.0 = Release|Any CPU + {A9547748-8B4F-450E-B0E3-CD9A1A80B319}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9547748-8B4F-450E-B0E3-CD9A1A80B319}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9547748-8B4F-450E-B0E3-CD9A1A80B319}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9547748-8B4F-450E-B0E3-CD9A1A80B319}.Release|Any CPU.Build.0 = Release|Any CPU + {79B284F9-326E-4FEB-9A32-EA72A31B4B60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79B284F9-326E-4FEB-9A32-EA72A31B4B60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79B284F9-326E-4FEB-9A32-EA72A31B4B60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79B284F9-326E-4FEB-9A32-EA72A31B4B60}.Release|Any CPU.Build.0 = Release|Any CPU + {4BDF1437-D88A-4E3E-9C32-8B4D34129B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BDF1437-D88A-4E3E-9C32-8B4D34129B37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BDF1437-D88A-4E3E-9C32-8B4D34129B37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BDF1437-D88A-4E3E-9C32-8B4D34129B37}.Release|Any CPU.Build.0 = Release|Any CPU + {81FA9ECC-2671-4077-8F6F-2F8538917512}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81FA9ECC-2671-4077-8F6F-2F8538917512}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81FA9ECC-2671-4077-8F6F-2F8538917512}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81FA9ECC-2671-4077-8F6F-2F8538917512}.Release|Any CPU.Build.0 = Release|Any CPU + {965074B0-3EC8-426A-B944-EF60C78DC6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {965074B0-3EC8-426A-B944-EF60C78DC6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {965074B0-3EC8-426A-B944-EF60C78DC6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {965074B0-3EC8-426A-B944-EF60C78DC6BD}.Release|Any CPU.Build.0 = Release|Any CPU + {0206FF1D-8036-4228-81CC-81B9602BF11F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0206FF1D-8036-4228-81CC-81B9602BF11F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0206FF1D-8036-4228-81CC-81B9602BF11F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0206FF1D-8036-4228-81CC-81B9602BF11F}.Release|Any CPU.Build.0 = Release|Any CPU + {5158D9CE-B5AF-404D-8F87-DB575FA59148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5158D9CE-B5AF-404D-8F87-DB575FA59148}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5158D9CE-B5AF-404D-8F87-DB575FA59148}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5158D9CE-B5AF-404D-8F87-DB575FA59148}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5E9F6F6C-6B42-42FC-A2C0-2D63B01351F1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {58A26DC9-8A10-4F32-927C-D6E2A1B99E1B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {49CB4AB9-5D76-481D-9FFA-458C9AC394EF} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {2CCD7884-930F-420F-B559-3EB1EB9AF754} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {904B2FDB-F1D7-4CE0-B0CD-FFDF8C51FDF8} + SolutionGuid = {4FA3B475-4D82-4A80-8625-D5C98B8FF794} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoWrapper.cs b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoWrapper.cs index 26ee196cbc12..06bab743495c 100644 --- a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoWrapper.cs +++ b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoWrapper.cs @@ -35,7 +35,17 @@ public override IEnumerable EnumerateFileSystemInfos() { if (_directoryInfo.Exists) { - foreach (FileSystemInfo fileSystemInfo in _directoryInfo.EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly)) + IEnumerable fileSystemInfos; + try + { + fileSystemInfos = _directoryInfo.EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly); + } + catch (DirectoryNotFoundException) + { + yield break; + } + + foreach (FileSystemInfo fileSystemInfo in fileSystemInfos) { var directoryInfo = fileSystemInfo as DirectoryInfo; if (directoryInfo != null) diff --git a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/tests/TestUtility/FileSystemOperationRecorder.cs b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/tests/TestUtility/FileSystemOperationRecorder.cs index c3c7781d5c77..cef2ebba1c6c 100644 --- a/src/libraries/Microsoft.Extensions.FileSystemGlobbing/tests/TestUtility/FileSystemOperationRecorder.cs +++ b/src/libraries/Microsoft.Extensions.FileSystemGlobbing/tests/TestUtility/FileSystemOperationRecorder.cs @@ -8,6 +8,8 @@ namespace Microsoft.Extensions.FileSystemGlobbing.Tests.TestUtility { internal class FileSystemOperationRecorder { + private const BindingFlags DeclaredOnlyLookup = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + public IList> Records = new List>(); public void Add(string action, object values) @@ -17,7 +19,7 @@ public void Add(string action, object values) {"action", action } }; - foreach (var p in values.GetType().GetTypeInfo().DeclaredProperties) + foreach (var p in values.GetType().GetProperties(DeclaredOnlyLookup)) { record[p.Name] = p.GetValue(values); } diff --git a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs index f70dc1a72b14..bb095c34ec1f 100644 --- a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs +++ b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs @@ -8,6 +8,8 @@ namespace Microsoft.Extensions.Hosting { internal class HostFactoryResolver { + private const BindingFlags DeclaredOnlyLookup = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + public static readonly string BuildWebHost = nameof(BuildWebHost); public static readonly string CreateWebHostBuilder = nameof(CreateWebHostBuilder); public static readonly string CreateHostBuilder = nameof(CreateHostBuilder); @@ -35,7 +37,7 @@ internal class HostFactoryResolver return null; } - var factory = programType.GetTypeInfo().GetDeclaredMethod(name); + var factory = programType.GetMethod(name, DeclaredOnlyLookup); if (!IsFactory(factory)) { return null; @@ -105,7 +107,7 @@ private static IServiceProvider GetServiceProvider(object host) return null; } var hostType = host.GetType(); - var servicesProperty = hostType.GetTypeInfo().GetDeclaredProperty("Services"); + var servicesProperty = hostType.GetProperty("Services", DeclaredOnlyLookup); return (IServiceProvider)servicesProperty.GetValue(host); } } diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/Microsoft.Extensions.Hosting.Abstractions.sln b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/Microsoft.Extensions.Hosting.Abstractions.sln index b00052a93019..b83f628b5790 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/Microsoft.Extensions.Hosting.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/Microsoft.Extensions.Hosting.Abstractions.sln @@ -1,39 +1,126 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2F161FD0-DA88-4BA3-A48E-2879C7734558}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{D1DAA13A-B302-46AB-965A-7610EE55F588}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1BF911EE-2F22-42E1-86B7-7280A2F59A8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{E9CC25E1-367A-41E4-A710-5C5AB7475F40}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "ref\Microsoft.Extensions.Hosting.Abstractions.csproj", "{85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{47F05662-AD13-4955-A205-0FCE6913FDDB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "src\Microsoft.Extensions.Hosting.Abstractions.csproj", "{62BE2C90-52F4-491F-9872-8A25CBA5C421}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{7F238E01-3021-4F87-B463-A4AB5B91F753}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{963867EB-DEAF-487E-A3E8-71AE9379AD53}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{60641184-B841-4F48-A917-76618114916A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{08064208-D005-4C34-B152-D03C7D173D60}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{17917EA7-19F2-4CC0-AD52-B04AA4D254F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "ref\Microsoft.Extensions.Hosting.Abstractions.csproj", "{7CCF5CE0-3840-4AA1-810F-138D001F2486}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "src\Microsoft.Extensions.Hosting.Abstractions.csproj", "{664450C6-102A-435A-875B-3445B3332E90}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{C4FD2984-3E22-47AF-8584-FF908D9D3E43}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{99CF7377-8E77-4EDB-B04F-E546ACCCE84D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{A7370C94-090B-4F79-A964-8029481D60FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{AF34ED02-1B95-41DE-A693-800E2770C5FA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{56FC08B2-891F-42C3-8593-C01C447EB5CB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{FC1D54EA-7DFF-4346-801B-1D269A3176E5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{100E6D7E-E8D6-4BD1-8C47-35471D13DBBA}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D1DAA13A-B302-46AB-965A-7610EE55F588} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {47F05662-AD13-4955-A205-0FCE6913FDDB} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {963867EB-DEAF-487E-A3E8-71AE9379AD53} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {08064208-D005-4C34-B152-D03C7D173D60} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {7CCF5CE0-3840-4AA1-810F-138D001F2486} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {C4FD2984-3E22-47AF-8584-FF908D9D3E43} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {99CF7377-8E77-4EDB-B04F-E546ACCCE84D} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {AF34ED02-1B95-41DE-A693-800E2770C5FA} = {FC1D54EA-7DFF-4346-801B-1D269A3176E5} + {E9CC25E1-367A-41E4-A710-5C5AB7475F40} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {7F238E01-3021-4F87-B463-A4AB5B91F753} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {60641184-B841-4F48-A917-76618114916A} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {17917EA7-19F2-4CC0-AD52-B04AA4D254F8} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {664450C6-102A-435A-875B-3445B3332E90} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {A7370C94-090B-4F79-A964-8029481D60FC} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + {56FC08B2-891F-42C3-8593-C01C447EB5CB} = {100E6D7E-E8D6-4BD1-8C47-35471D13DBBA} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8}.Release|Any CPU.Build.0 = Release|Any CPU - {62BE2C90-52F4-491F-9872-8A25CBA5C421}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62BE2C90-52F4-491F-9872-8A25CBA5C421}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62BE2C90-52F4-491F-9872-8A25CBA5C421}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62BE2C90-52F4-491F-9872-8A25CBA5C421}.Release|Any CPU.Build.0 = Release|Any CPU + {D1DAA13A-B302-46AB-965A-7610EE55F588}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1DAA13A-B302-46AB-965A-7610EE55F588}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1DAA13A-B302-46AB-965A-7610EE55F588}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1DAA13A-B302-46AB-965A-7610EE55F588}.Release|Any CPU.Build.0 = Release|Any CPU + {E9CC25E1-367A-41E4-A710-5C5AB7475F40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9CC25E1-367A-41E4-A710-5C5AB7475F40}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9CC25E1-367A-41E4-A710-5C5AB7475F40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9CC25E1-367A-41E4-A710-5C5AB7475F40}.Release|Any CPU.Build.0 = Release|Any CPU + {47F05662-AD13-4955-A205-0FCE6913FDDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47F05662-AD13-4955-A205-0FCE6913FDDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47F05662-AD13-4955-A205-0FCE6913FDDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47F05662-AD13-4955-A205-0FCE6913FDDB}.Release|Any CPU.Build.0 = Release|Any CPU + {7F238E01-3021-4F87-B463-A4AB5B91F753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F238E01-3021-4F87-B463-A4AB5B91F753}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F238E01-3021-4F87-B463-A4AB5B91F753}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F238E01-3021-4F87-B463-A4AB5B91F753}.Release|Any CPU.Build.0 = Release|Any CPU + {963867EB-DEAF-487E-A3E8-71AE9379AD53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {963867EB-DEAF-487E-A3E8-71AE9379AD53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {963867EB-DEAF-487E-A3E8-71AE9379AD53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {963867EB-DEAF-487E-A3E8-71AE9379AD53}.Release|Any CPU.Build.0 = Release|Any CPU + {60641184-B841-4F48-A917-76618114916A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60641184-B841-4F48-A917-76618114916A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60641184-B841-4F48-A917-76618114916A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60641184-B841-4F48-A917-76618114916A}.Release|Any CPU.Build.0 = Release|Any CPU + {08064208-D005-4C34-B152-D03C7D173D60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08064208-D005-4C34-B152-D03C7D173D60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08064208-D005-4C34-B152-D03C7D173D60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08064208-D005-4C34-B152-D03C7D173D60}.Release|Any CPU.Build.0 = Release|Any CPU + {17917EA7-19F2-4CC0-AD52-B04AA4D254F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17917EA7-19F2-4CC0-AD52-B04AA4D254F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17917EA7-19F2-4CC0-AD52-B04AA4D254F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17917EA7-19F2-4CC0-AD52-B04AA4D254F8}.Release|Any CPU.Build.0 = Release|Any CPU + {7CCF5CE0-3840-4AA1-810F-138D001F2486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CCF5CE0-3840-4AA1-810F-138D001F2486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CCF5CE0-3840-4AA1-810F-138D001F2486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CCF5CE0-3840-4AA1-810F-138D001F2486}.Release|Any CPU.Build.0 = Release|Any CPU + {664450C6-102A-435A-875B-3445B3332E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {664450C6-102A-435A-875B-3445B3332E90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {664450C6-102A-435A-875B-3445B3332E90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {664450C6-102A-435A-875B-3445B3332E90}.Release|Any CPU.Build.0 = Release|Any CPU + {C4FD2984-3E22-47AF-8584-FF908D9D3E43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4FD2984-3E22-47AF-8584-FF908D9D3E43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4FD2984-3E22-47AF-8584-FF908D9D3E43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4FD2984-3E22-47AF-8584-FF908D9D3E43}.Release|Any CPU.Build.0 = Release|Any CPU + {99CF7377-8E77-4EDB-B04F-E546ACCCE84D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99CF7377-8E77-4EDB-B04F-E546ACCCE84D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99CF7377-8E77-4EDB-B04F-E546ACCCE84D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99CF7377-8E77-4EDB-B04F-E546ACCCE84D}.Release|Any CPU.Build.0 = Release|Any CPU + {A7370C94-090B-4F79-A964-8029481D60FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7370C94-090B-4F79-A964-8029481D60FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7370C94-090B-4F79-A964-8029481D60FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7370C94-090B-4F79-A964-8029481D60FC}.Release|Any CPU.Build.0 = Release|Any CPU + {AF34ED02-1B95-41DE-A693-800E2770C5FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF34ED02-1B95-41DE-A693-800E2770C5FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF34ED02-1B95-41DE-A693-800E2770C5FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF34ED02-1B95-41DE-A693-800E2770C5FA}.Release|Any CPU.Build.0 = Release|Any CPU + {56FC08B2-891F-42C3-8593-C01C447EB5CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56FC08B2-891F-42C3-8593-C01C447EB5CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56FC08B2-891F-42C3-8593-C01C447EB5CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56FC08B2-891F-42C3-8593-C01C447EB5CB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {85AB8AEB-9E14-4A4F-95B5-62AEFB8E67F8} = {2F161FD0-DA88-4BA3-A48E-2879C7734558} - {62BE2C90-52F4-491F-9872-8A25CBA5C421} = {1BF911EE-2F22-42E1-86B7-7280A2F59A8A} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3B7C5F78-F344-432F-8847-720BBC8A2658} + SolutionGuid = {7897D6F2-D18F-4ABB-9698-593AE45059C5} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Hosting/Microsoft.Extensions.Hosting.sln b/src/libraries/Microsoft.Extensions.Hosting/Microsoft.Extensions.Hosting.sln index 5d081f8c4659..c5c2c74b0165 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/Microsoft.Extensions.Hosting.sln +++ b/src/libraries/Microsoft.Extensions.Hosting/Microsoft.Extensions.Hosting.sln @@ -1,92 +1,562 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{23DF8E80-C5C7-4D64-B0D4-F4D33A9646A1}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{BCAE2699-A994-48FE-B9B0-5580D267BD2E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2BCD92F1-BA65-4145-A650-8BADD26EE5D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{47ACDB6F-34CB-478D-9E43-F3662EE5838D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{635786A7-1A3B-46BB-9367-DE57F7032900}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{C24E4188-27CB-4E00-A5F0-62AE23D536EE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting", "ref\Microsoft.Extensions.Hosting.csproj", "{4A22EFFF-5422-4D05-9194-C06EADE60E0B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{EDAC3418-1D4E-4216-9371-0A36EA1E13FE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting", "src\Microsoft.Extensions.Hosting.csproj", "{50FED4CD-4338-431A-B058-21255B49A4B9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{020874FC-11A2-4FC7-8929-527462F8819A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestApp", "TestApp", "{6FB3A6E1-7322-4CBC-A44E-5993FC2085C1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{670AB88D-85C9-4674-A652-C27488ED73F9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.TestApp", "tests\TestApp\Microsoft.Extensions.Hosting.TestApp.csproj", "{8985343B-73BD-4513-B98A-BC7F4CE63F88}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{3411D565-223A-44B5-864C-E30F826001B4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{EB3CB906-BAB0-4A90-BE2F-BBFE47B036C3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "..\Microsoft.Extensions.Configuration.CommandLine\ref\Microsoft.Extensions.Configuration.CommandLine.csproj", "{4AB3E652-6709-4011-AC2F-C379A0415BAC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{FE4AAEDA-1D08-4C9A-B61C-8A7156000E43}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.CommandLine", "..\Microsoft.Extensions.Configuration.CommandLine\src\Microsoft.Extensions.Configuration.CommandLine.csproj", "{ECA6E734-3908-45B4-9DFA-FDDA49AD620D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Unit.Tests", "tests\UnitTests\Microsoft.Extensions.Hosting.Unit.Tests.csproj", "{4E52FAB8-83A4-4F81-AFED-072BF13D0F46}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "..\Microsoft.Extensions.Configuration.EnvironmentVariables\ref\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{3D657A5A-C7DF-4817-864F-944755DCE6DF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Functional.Tests", "tests\FunctionalTests\Microsoft.Extensions.Hosting.Functional.Tests.csproj", "{49ED668A-7FCB-455B-B3B4-26C004172531}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.EnvironmentVariables", "..\Microsoft.Extensions.Configuration.EnvironmentVariables\src\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj", "{0C041643-1217-466B-AF2E-1E44C7B117B1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{602F282E-2829-4C7D-B960-A8D31F326E9F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{BD938E1D-6FC8-4D46-B103-B4D35761CEA2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "..\Microsoft.Extensions.Hosting.Abstractions\ref\Microsoft.Extensions.Hosting.Abstractions.csproj", "{BAD57E10-C310-4BED-A4BF-7B02B1AC35BC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{6DB8DE55-5419-48EA-B4CD-2880E00409FB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "..\Microsoft.Extensions.Hosting.Abstractions\src\Microsoft.Extensions.Hosting.Abstractions.csproj", "{0468E166-54DE-4DB7-A2DF-42214A39C392}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\ref\Microsoft.Extensions.Configuration.Json.csproj", "{1C07ECD0-F69E-4E35-9C68-E4063B5D97EC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\src\Microsoft.Extensions.Configuration.Json.csproj", "{0A738527-821F-4089-B64E-3C0F4714DC78}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "..\Microsoft.Extensions.Configuration.UserSecrets\ref\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{37A36947-2652-4AFD-BCF8-AAFD4D4D2827}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.UserSecrets", "..\Microsoft.Extensions.Configuration.UserSecrets\src\Microsoft.Extensions.Configuration.UserSecrets.csproj", "{EA9E6747-867B-4312-94B3-624EEB1C7A7A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{13BC7AAA-7831-4500-9D28-A93FA4CA3C74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{EB889E78-AE59-4D41-AC29-8BC4D58BCE16}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{135F551E-ACB8-4073-ABB5-A1FA558455DE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{5532E155-E423-4FFD-B009-80B4281D36BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{24220AD7-03ED-427A-BFC8-114C475EAD0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{0A021166-613C-430C-8460-50F1E0DF7AD8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{1E3D564C-A79E-4E28-8E13-626EE7780831}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{E4157F2E-F11D-48C6-A146-B4D12D9211F7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{9C06E60B-2D45-4284-B7C8-7AE6D8194CE0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "..\Microsoft.Extensions.Hosting.Abstractions\ref\Microsoft.Extensions.Hosting.Abstractions.csproj", "{2F25C0DB-E010-4802-8030-C88E2D09D3B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Abstractions", "..\Microsoft.Extensions.Hosting.Abstractions\src\Microsoft.Extensions.Hosting.Abstractions.csproj", "{973CE6DA-B55D-4E55-88D5-53BE69D44410}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting", "ref\Microsoft.Extensions.Hosting.csproj", "{0D7771CB-B3D1-4FF4-A523-40BFD3B12A84}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting", "src\Microsoft.Extensions.Hosting.csproj", "{F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Functional.Tests", "tests\FunctionalTests\Microsoft.Extensions.Hosting.Functional.Tests.csproj", "{2A882DCC-96C1-4EDF-A7F0-B526EC81533F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.TestApp", "tests\TestApp\Microsoft.Extensions.Hosting.TestApp.csproj", "{495208B7-31BB-4802-A769-CEE4917BDF75}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Hosting.Unit.Tests", "tests\UnitTests\Microsoft.Extensions.Hosting.Unit.Tests.csproj", "{33C3D8F0-297F-4471-92B0-F4E8717F10E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{42E1BF94-6FE0-4017-9702-55913BD95EDE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{8845E6FF-94B2-4994-A8F4-DF30844A2168}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\ref\Microsoft.Extensions.Logging.Configuration.csproj", "{15AD68F8-6C58-41A3-99B3-558C42A6E7A5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\src\Microsoft.Extensions.Logging.Configuration.csproj", "{99C8FB58-8718-4E76-AEFA-3C42F2F729B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "..\Microsoft.Extensions.Logging.Console\ref\Microsoft.Extensions.Logging.Console.csproj", "{28C9D427-83BA-46A6-BEF5-6994A07F2258}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "..\Microsoft.Extensions.Logging.Console\src\Microsoft.Extensions.Logging.Console.csproj", "{F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "..\Microsoft.Extensions.Logging.Debug\ref\Microsoft.Extensions.Logging.Debug.csproj", "{098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "..\Microsoft.Extensions.Logging.Debug\src\Microsoft.Extensions.Logging.Debug.csproj", "{B729474D-0E96-4296-B317-450EE24F6B48}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "..\Microsoft.Extensions.Logging.EventLog\ref\Microsoft.Extensions.Logging.EventLog.csproj", "{9ADBD2EE-D390-490C-BBEA-F844FE6F371E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "..\Microsoft.Extensions.Logging.EventLog\src\Microsoft.Extensions.Logging.EventLog.csproj", "{2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "..\Microsoft.Extensions.Logging.EventSource\ref\Microsoft.Extensions.Logging.EventSource.csproj", "{465AE1C4-84DD-4864-916A-74D89DC3BBBC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "..\Microsoft.Extensions.Logging.EventSource\src\Microsoft.Extensions.Logging.EventSource.csproj", "{D466E363-F930-4D26-AE55-0256182961DD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{D69326FC-CD05-4690-91C0-1537A80ACBFF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{518D4AE0-FBFF-493A-A2DF-8ACBA842AE19}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{0AEAD15B-CD38-4462-A36C-655ED8D0CBD1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{DD121F9F-3548-4247-8E10-FB584FC0827C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{25C5119A-AAFB-4C74-9E12-F747CA4D80E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{45235656-E284-4682-BE70-9A284FD73243}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{D975AE29-0CA2-43FC-90A0-B266DF7D4C2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0C6A47C7-7405-4D77-83E1-BC08A88B687B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{DFF6CFBA-1F4A-4063-AD4C-C11E959DB004}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{0BC9E4F4-5C34-4B90-80AB-2933992D99A6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\ref\System.Diagnostics.EventLog.csproj", "{34ECA788-A105-411B-AE8B-17B7CC1D703D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\src\System.Diagnostics.EventLog.csproj", "{4ED9C0A9-C1EF-47ED-99F8-74B7411C971B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{EB6CB1A4-1D66-49B8-9914-BA12B47C909F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{30979D28-B876-4F1B-A68A-562989414F8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{1E322AE1-E7C1-438B-805E-63436D3DEA7E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{40F921D6-E86F-4C7B-895D-9B7E96FBC00D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{FEC2349C-D18C-40B0-BA21-2111E383E972}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{94F2567E-9746-4A82-804A-C999D33A286A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EF1D64A4-6253-460A-B479-73388F98FFF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{6A7F6CF5-1085-4F07-AB0E-00F25E407599}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{B41AA17B-5129-41CC-8EA4-250B80BABF87}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{0813853E-8C78-429A-B01A-3FB2EF1898F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{C58E2CF3-F8AA-47C1-8A49-65B91252F2AA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{5AAA0A78-071A-465C-A98C-CFFAAD013A32}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{31B28F7B-070E-40AB-BCAA-E8B9A32EF1A6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F384323D-F81E-44FA-A56B-38714905FA81}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{10235C29-9434-4A37-969D-83F09076D8EC}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {BCAE2699-A994-48FE-B9B0-5580D267BD2E} = {31B28F7B-070E-40AB-BCAA-E8B9A32EF1A6} + {2A882DCC-96C1-4EDF-A7F0-B526EC81533F} = {31B28F7B-070E-40AB-BCAA-E8B9A32EF1A6} + {495208B7-31BB-4802-A769-CEE4917BDF75} = {31B28F7B-070E-40AB-BCAA-E8B9A32EF1A6} + {33C3D8F0-297F-4471-92B0-F4E8717F10E3} = {31B28F7B-070E-40AB-BCAA-E8B9A32EF1A6} + {47ACDB6F-34CB-478D-9E43-F3662EE5838D} = {F384323D-F81E-44FA-A56B-38714905FA81} + {EDAC3418-1D4E-4216-9371-0A36EA1E13FE} = {F384323D-F81E-44FA-A56B-38714905FA81} + {670AB88D-85C9-4674-A652-C27488ED73F9} = {F384323D-F81E-44FA-A56B-38714905FA81} + {4AB3E652-6709-4011-AC2F-C379A0415BAC} = {F384323D-F81E-44FA-A56B-38714905FA81} + {3D657A5A-C7DF-4817-864F-944755DCE6DF} = {F384323D-F81E-44FA-A56B-38714905FA81} + {BD938E1D-6FC8-4D46-B103-B4D35761CEA2} = {F384323D-F81E-44FA-A56B-38714905FA81} + {1C07ECD0-F69E-4E35-9C68-E4063B5D97EC} = {F384323D-F81E-44FA-A56B-38714905FA81} + {37A36947-2652-4AFD-BCF8-AAFD4D4D2827} = {F384323D-F81E-44FA-A56B-38714905FA81} + {13BC7AAA-7831-4500-9D28-A93FA4CA3C74} = {F384323D-F81E-44FA-A56B-38714905FA81} + {135F551E-ACB8-4073-ABB5-A1FA558455DE} = {F384323D-F81E-44FA-A56B-38714905FA81} + {5532E155-E423-4FFD-B009-80B4281D36BA} = {F384323D-F81E-44FA-A56B-38714905FA81} + {24220AD7-03ED-427A-BFC8-114C475EAD0F} = {F384323D-F81E-44FA-A56B-38714905FA81} + {376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F} = {F384323D-F81E-44FA-A56B-38714905FA81} + {E4157F2E-F11D-48C6-A146-B4D12D9211F7} = {F384323D-F81E-44FA-A56B-38714905FA81} + {2F25C0DB-E010-4802-8030-C88E2D09D3B0} = {F384323D-F81E-44FA-A56B-38714905FA81} + {0D7771CB-B3D1-4FF4-A523-40BFD3B12A84} = {F384323D-F81E-44FA-A56B-38714905FA81} + {42E1BF94-6FE0-4017-9702-55913BD95EDE} = {F384323D-F81E-44FA-A56B-38714905FA81} + {15AD68F8-6C58-41A3-99B3-558C42A6E7A5} = {F384323D-F81E-44FA-A56B-38714905FA81} + {28C9D427-83BA-46A6-BEF5-6994A07F2258} = {F384323D-F81E-44FA-A56B-38714905FA81} + {098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B} = {F384323D-F81E-44FA-A56B-38714905FA81} + {9ADBD2EE-D390-490C-BBEA-F844FE6F371E} = {F384323D-F81E-44FA-A56B-38714905FA81} + {465AE1C4-84DD-4864-916A-74D89DC3BBBC} = {F384323D-F81E-44FA-A56B-38714905FA81} + {D69326FC-CD05-4690-91C0-1537A80ACBFF} = {F384323D-F81E-44FA-A56B-38714905FA81} + {014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E} = {F384323D-F81E-44FA-A56B-38714905FA81} + {DD121F9F-3548-4247-8E10-FB584FC0827C} = {F384323D-F81E-44FA-A56B-38714905FA81} + {45235656-E284-4682-BE70-9A284FD73243} = {F384323D-F81E-44FA-A56B-38714905FA81} + {0C6A47C7-7405-4D77-83E1-BC08A88B687B} = {F384323D-F81E-44FA-A56B-38714905FA81} + {34ECA788-A105-411B-AE8B-17B7CC1D703D} = {F384323D-F81E-44FA-A56B-38714905FA81} + {EB6CB1A4-1D66-49B8-9914-BA12B47C909F} = {F384323D-F81E-44FA-A56B-38714905FA81} + {30979D28-B876-4F1B-A68A-562989414F8F} = {F384323D-F81E-44FA-A56B-38714905FA81} + {4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8} = {F384323D-F81E-44FA-A56B-38714905FA81} + {40F921D6-E86F-4C7B-895D-9B7E96FBC00D} = {F384323D-F81E-44FA-A56B-38714905FA81} + {FEC2349C-D18C-40B0-BA21-2111E383E972} = {F384323D-F81E-44FA-A56B-38714905FA81} + {EF1D64A4-6253-460A-B479-73388F98FFF9} = {F384323D-F81E-44FA-A56B-38714905FA81} + {C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519} = {F384323D-F81E-44FA-A56B-38714905FA81} + {C24E4188-27CB-4E00-A5F0-62AE23D536EE} = {10235C29-9434-4A37-969D-83F09076D8EC} + {020874FC-11A2-4FC7-8929-527462F8819A} = {10235C29-9434-4A37-969D-83F09076D8EC} + {3411D565-223A-44B5-864C-E30F826001B4} = {10235C29-9434-4A37-969D-83F09076D8EC} + {ECA6E734-3908-45B4-9DFA-FDDA49AD620D} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0C041643-1217-466B-AF2E-1E44C7B117B1} = {10235C29-9434-4A37-969D-83F09076D8EC} + {6DB8DE55-5419-48EA-B4CD-2880E00409FB} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0A738527-821F-4089-B64E-3C0F4714DC78} = {10235C29-9434-4A37-969D-83F09076D8EC} + {EA9E6747-867B-4312-94B3-624EEB1C7A7A} = {10235C29-9434-4A37-969D-83F09076D8EC} + {EB889E78-AE59-4D41-AC29-8BC4D58BCE16} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7} = {10235C29-9434-4A37-969D-83F09076D8EC} + {6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0A021166-613C-430C-8460-50F1E0DF7AD8} = {10235C29-9434-4A37-969D-83F09076D8EC} + {1E3D564C-A79E-4E28-8E13-626EE7780831} = {10235C29-9434-4A37-969D-83F09076D8EC} + {9C06E60B-2D45-4284-B7C8-7AE6D8194CE0} = {10235C29-9434-4A37-969D-83F09076D8EC} + {973CE6DA-B55D-4E55-88D5-53BE69D44410} = {10235C29-9434-4A37-969D-83F09076D8EC} + {F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D} = {10235C29-9434-4A37-969D-83F09076D8EC} + {8845E6FF-94B2-4994-A8F4-DF30844A2168} = {10235C29-9434-4A37-969D-83F09076D8EC} + {99C8FB58-8718-4E76-AEFA-3C42F2F729B1} = {10235C29-9434-4A37-969D-83F09076D8EC} + {F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9} = {10235C29-9434-4A37-969D-83F09076D8EC} + {B729474D-0E96-4296-B317-450EE24F6B48} = {10235C29-9434-4A37-969D-83F09076D8EC} + {2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295} = {10235C29-9434-4A37-969D-83F09076D8EC} + {D466E363-F930-4D26-AE55-0256182961DD} = {10235C29-9434-4A37-969D-83F09076D8EC} + {518D4AE0-FBFF-493A-A2DF-8ACBA842AE19} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0AEAD15B-CD38-4462-A36C-655ED8D0CBD1} = {10235C29-9434-4A37-969D-83F09076D8EC} + {25C5119A-AAFB-4C74-9E12-F747CA4D80E7} = {10235C29-9434-4A37-969D-83F09076D8EC} + {D975AE29-0CA2-43FC-90A0-B266DF7D4C2A} = {10235C29-9434-4A37-969D-83F09076D8EC} + {DFF6CFBA-1F4A-4063-AD4C-C11E959DB004} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0BC9E4F4-5C34-4B90-80AB-2933992D99A6} = {10235C29-9434-4A37-969D-83F09076D8EC} + {4ED9C0A9-C1EF-47ED-99F8-74B7411C971B} = {10235C29-9434-4A37-969D-83F09076D8EC} + {1E322AE1-E7C1-438B-805E-63436D3DEA7E} = {10235C29-9434-4A37-969D-83F09076D8EC} + {A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D} = {10235C29-9434-4A37-969D-83F09076D8EC} + {827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC} = {10235C29-9434-4A37-969D-83F09076D8EC} + {94F2567E-9746-4A82-804A-C999D33A286A} = {10235C29-9434-4A37-969D-83F09076D8EC} + {6A7F6CF5-1085-4F07-AB0E-00F25E407599} = {10235C29-9434-4A37-969D-83F09076D8EC} + {B41AA17B-5129-41CC-8EA4-250B80BABF87} = {10235C29-9434-4A37-969D-83F09076D8EC} + {0813853E-8C78-429A-B01A-3FB2EF1898F8} = {10235C29-9434-4A37-969D-83F09076D8EC} + {C58E2CF3-F8AA-47C1-8A49-65B91252F2AA} = {10235C29-9434-4A37-969D-83F09076D8EC} + {5AAA0A78-071A-465C-A98C-CFFAAD013A32} = {10235C29-9434-4A37-969D-83F09076D8EC} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4A22EFFF-5422-4D05-9194-C06EADE60E0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A22EFFF-5422-4D05-9194-C06EADE60E0B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A22EFFF-5422-4D05-9194-C06EADE60E0B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A22EFFF-5422-4D05-9194-C06EADE60E0B}.Release|Any CPU.Build.0 = Release|Any CPU - {50FED4CD-4338-431A-B058-21255B49A4B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50FED4CD-4338-431A-B058-21255B49A4B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50FED4CD-4338-431A-B058-21255B49A4B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50FED4CD-4338-431A-B058-21255B49A4B9}.Release|Any CPU.Build.0 = Release|Any CPU - {8985343B-73BD-4513-B98A-BC7F4CE63F88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8985343B-73BD-4513-B98A-BC7F4CE63F88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8985343B-73BD-4513-B98A-BC7F4CE63F88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8985343B-73BD-4513-B98A-BC7F4CE63F88}.Release|Any CPU.Build.0 = Release|Any CPU - {4E52FAB8-83A4-4F81-AFED-072BF13D0F46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E52FAB8-83A4-4F81-AFED-072BF13D0F46}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E52FAB8-83A4-4F81-AFED-072BF13D0F46}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E52FAB8-83A4-4F81-AFED-072BF13D0F46}.Release|Any CPU.Build.0 = Release|Any CPU - {49ED668A-7FCB-455B-B3B4-26C004172531}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49ED668A-7FCB-455B-B3B4-26C004172531}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49ED668A-7FCB-455B-B3B4-26C004172531}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49ED668A-7FCB-455B-B3B4-26C004172531}.Release|Any CPU.Build.0 = Release|Any CPU - {602F282E-2829-4C7D-B960-A8D31F326E9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {602F282E-2829-4C7D-B960-A8D31F326E9F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {602F282E-2829-4C7D-B960-A8D31F326E9F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {602F282E-2829-4C7D-B960-A8D31F326E9F}.Release|Any CPU.Build.0 = Release|Any CPU - {BAD57E10-C310-4BED-A4BF-7B02B1AC35BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAD57E10-C310-4BED-A4BF-7B02B1AC35BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAD57E10-C310-4BED-A4BF-7B02B1AC35BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAD57E10-C310-4BED-A4BF-7B02B1AC35BC}.Release|Any CPU.Build.0 = Release|Any CPU - {0468E166-54DE-4DB7-A2DF-42214A39C392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0468E166-54DE-4DB7-A2DF-42214A39C392}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0468E166-54DE-4DB7-A2DF-42214A39C392}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0468E166-54DE-4DB7-A2DF-42214A39C392}.Release|Any CPU.Build.0 = Release|Any CPU + {BCAE2699-A994-48FE-B9B0-5580D267BD2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCAE2699-A994-48FE-B9B0-5580D267BD2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCAE2699-A994-48FE-B9B0-5580D267BD2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCAE2699-A994-48FE-B9B0-5580D267BD2E}.Release|Any CPU.Build.0 = Release|Any CPU + {47ACDB6F-34CB-478D-9E43-F3662EE5838D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47ACDB6F-34CB-478D-9E43-F3662EE5838D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47ACDB6F-34CB-478D-9E43-F3662EE5838D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47ACDB6F-34CB-478D-9E43-F3662EE5838D}.Release|Any CPU.Build.0 = Release|Any CPU + {C24E4188-27CB-4E00-A5F0-62AE23D536EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C24E4188-27CB-4E00-A5F0-62AE23D536EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C24E4188-27CB-4E00-A5F0-62AE23D536EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C24E4188-27CB-4E00-A5F0-62AE23D536EE}.Release|Any CPU.Build.0 = Release|Any CPU + {EDAC3418-1D4E-4216-9371-0A36EA1E13FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDAC3418-1D4E-4216-9371-0A36EA1E13FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDAC3418-1D4E-4216-9371-0A36EA1E13FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDAC3418-1D4E-4216-9371-0A36EA1E13FE}.Release|Any CPU.Build.0 = Release|Any CPU + {020874FC-11A2-4FC7-8929-527462F8819A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {020874FC-11A2-4FC7-8929-527462F8819A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {020874FC-11A2-4FC7-8929-527462F8819A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {020874FC-11A2-4FC7-8929-527462F8819A}.Release|Any CPU.Build.0 = Release|Any CPU + {670AB88D-85C9-4674-A652-C27488ED73F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {670AB88D-85C9-4674-A652-C27488ED73F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {670AB88D-85C9-4674-A652-C27488ED73F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {670AB88D-85C9-4674-A652-C27488ED73F9}.Release|Any CPU.Build.0 = Release|Any CPU + {3411D565-223A-44B5-864C-E30F826001B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3411D565-223A-44B5-864C-E30F826001B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3411D565-223A-44B5-864C-E30F826001B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3411D565-223A-44B5-864C-E30F826001B4}.Release|Any CPU.Build.0 = Release|Any CPU + {4AB3E652-6709-4011-AC2F-C379A0415BAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AB3E652-6709-4011-AC2F-C379A0415BAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AB3E652-6709-4011-AC2F-C379A0415BAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4AB3E652-6709-4011-AC2F-C379A0415BAC}.Release|Any CPU.Build.0 = Release|Any CPU + {ECA6E734-3908-45B4-9DFA-FDDA49AD620D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECA6E734-3908-45B4-9DFA-FDDA49AD620D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECA6E734-3908-45B4-9DFA-FDDA49AD620D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECA6E734-3908-45B4-9DFA-FDDA49AD620D}.Release|Any CPU.Build.0 = Release|Any CPU + {3D657A5A-C7DF-4817-864F-944755DCE6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D657A5A-C7DF-4817-864F-944755DCE6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D657A5A-C7DF-4817-864F-944755DCE6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D657A5A-C7DF-4817-864F-944755DCE6DF}.Release|Any CPU.Build.0 = Release|Any CPU + {0C041643-1217-466B-AF2E-1E44C7B117B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C041643-1217-466B-AF2E-1E44C7B117B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C041643-1217-466B-AF2E-1E44C7B117B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C041643-1217-466B-AF2E-1E44C7B117B1}.Release|Any CPU.Build.0 = Release|Any CPU + {BD938E1D-6FC8-4D46-B103-B4D35761CEA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD938E1D-6FC8-4D46-B103-B4D35761CEA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD938E1D-6FC8-4D46-B103-B4D35761CEA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD938E1D-6FC8-4D46-B103-B4D35761CEA2}.Release|Any CPU.Build.0 = Release|Any CPU + {6DB8DE55-5419-48EA-B4CD-2880E00409FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6DB8DE55-5419-48EA-B4CD-2880E00409FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6DB8DE55-5419-48EA-B4CD-2880E00409FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6DB8DE55-5419-48EA-B4CD-2880E00409FB}.Release|Any CPU.Build.0 = Release|Any CPU + {1C07ECD0-F69E-4E35-9C68-E4063B5D97EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C07ECD0-F69E-4E35-9C68-E4063B5D97EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C07ECD0-F69E-4E35-9C68-E4063B5D97EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C07ECD0-F69E-4E35-9C68-E4063B5D97EC}.Release|Any CPU.Build.0 = Release|Any CPU + {0A738527-821F-4089-B64E-3C0F4714DC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A738527-821F-4089-B64E-3C0F4714DC78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A738527-821F-4089-B64E-3C0F4714DC78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A738527-821F-4089-B64E-3C0F4714DC78}.Release|Any CPU.Build.0 = Release|Any CPU + {37A36947-2652-4AFD-BCF8-AAFD4D4D2827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37A36947-2652-4AFD-BCF8-AAFD4D4D2827}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37A36947-2652-4AFD-BCF8-AAFD4D4D2827}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37A36947-2652-4AFD-BCF8-AAFD4D4D2827}.Release|Any CPU.Build.0 = Release|Any CPU + {EA9E6747-867B-4312-94B3-624EEB1C7A7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA9E6747-867B-4312-94B3-624EEB1C7A7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA9E6747-867B-4312-94B3-624EEB1C7A7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA9E6747-867B-4312-94B3-624EEB1C7A7A}.Release|Any CPU.Build.0 = Release|Any CPU + {13BC7AAA-7831-4500-9D28-A93FA4CA3C74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13BC7AAA-7831-4500-9D28-A93FA4CA3C74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13BC7AAA-7831-4500-9D28-A93FA4CA3C74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13BC7AAA-7831-4500-9D28-A93FA4CA3C74}.Release|Any CPU.Build.0 = Release|Any CPU + {EB889E78-AE59-4D41-AC29-8BC4D58BCE16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB889E78-AE59-4D41-AC29-8BC4D58BCE16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB889E78-AE59-4D41-AC29-8BC4D58BCE16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB889E78-AE59-4D41-AC29-8BC4D58BCE16}.Release|Any CPU.Build.0 = Release|Any CPU + {135F551E-ACB8-4073-ABB5-A1FA558455DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {135F551E-ACB8-4073-ABB5-A1FA558455DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {135F551E-ACB8-4073-ABB5-A1FA558455DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {135F551E-ACB8-4073-ABB5-A1FA558455DE}.Release|Any CPU.Build.0 = Release|Any CPU + {0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EEA7382-25A8-4FB0-AE9A-4ECDF2FF6FB7}.Release|Any CPU.Build.0 = Release|Any CPU + {5532E155-E423-4FFD-B009-80B4281D36BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5532E155-E423-4FFD-B009-80B4281D36BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5532E155-E423-4FFD-B009-80B4281D36BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5532E155-E423-4FFD-B009-80B4281D36BA}.Release|Any CPU.Build.0 = Release|Any CPU + {6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C6DDBF6-AAF3-4A2A-8CB1-C7A630B7C49F}.Release|Any CPU.Build.0 = Release|Any CPU + {24220AD7-03ED-427A-BFC8-114C475EAD0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24220AD7-03ED-427A-BFC8-114C475EAD0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24220AD7-03ED-427A-BFC8-114C475EAD0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24220AD7-03ED-427A-BFC8-114C475EAD0F}.Release|Any CPU.Build.0 = Release|Any CPU + {0A021166-613C-430C-8460-50F1E0DF7AD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A021166-613C-430C-8460-50F1E0DF7AD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A021166-613C-430C-8460-50F1E0DF7AD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A021166-613C-430C-8460-50F1E0DF7AD8}.Release|Any CPU.Build.0 = Release|Any CPU + {376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {376BB9D1-6C3E-4BB1-B13A-F0750D2BE01F}.Release|Any CPU.Build.0 = Release|Any CPU + {1E3D564C-A79E-4E28-8E13-626EE7780831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E3D564C-A79E-4E28-8E13-626EE7780831}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E3D564C-A79E-4E28-8E13-626EE7780831}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E3D564C-A79E-4E28-8E13-626EE7780831}.Release|Any CPU.Build.0 = Release|Any CPU + {E4157F2E-F11D-48C6-A146-B4D12D9211F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4157F2E-F11D-48C6-A146-B4D12D9211F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4157F2E-F11D-48C6-A146-B4D12D9211F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4157F2E-F11D-48C6-A146-B4D12D9211F7}.Release|Any CPU.Build.0 = Release|Any CPU + {9C06E60B-2D45-4284-B7C8-7AE6D8194CE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C06E60B-2D45-4284-B7C8-7AE6D8194CE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C06E60B-2D45-4284-B7C8-7AE6D8194CE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C06E60B-2D45-4284-B7C8-7AE6D8194CE0}.Release|Any CPU.Build.0 = Release|Any CPU + {2F25C0DB-E010-4802-8030-C88E2D09D3B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F25C0DB-E010-4802-8030-C88E2D09D3B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F25C0DB-E010-4802-8030-C88E2D09D3B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F25C0DB-E010-4802-8030-C88E2D09D3B0}.Release|Any CPU.Build.0 = Release|Any CPU + {973CE6DA-B55D-4E55-88D5-53BE69D44410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {973CE6DA-B55D-4E55-88D5-53BE69D44410}.Debug|Any CPU.Build.0 = Debug|Any CPU + {973CE6DA-B55D-4E55-88D5-53BE69D44410}.Release|Any CPU.ActiveCfg = Release|Any CPU + {973CE6DA-B55D-4E55-88D5-53BE69D44410}.Release|Any CPU.Build.0 = Release|Any CPU + {0D7771CB-B3D1-4FF4-A523-40BFD3B12A84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D7771CB-B3D1-4FF4-A523-40BFD3B12A84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D7771CB-B3D1-4FF4-A523-40BFD3B12A84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D7771CB-B3D1-4FF4-A523-40BFD3B12A84}.Release|Any CPU.Build.0 = Release|Any CPU + {F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5CF1FC4-8F56-49BD-BFC2-5AD42AE6302D}.Release|Any CPU.Build.0 = Release|Any CPU + {2A882DCC-96C1-4EDF-A7F0-B526EC81533F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A882DCC-96C1-4EDF-A7F0-B526EC81533F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A882DCC-96C1-4EDF-A7F0-B526EC81533F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A882DCC-96C1-4EDF-A7F0-B526EC81533F}.Release|Any CPU.Build.0 = Release|Any CPU + {495208B7-31BB-4802-A769-CEE4917BDF75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {495208B7-31BB-4802-A769-CEE4917BDF75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {495208B7-31BB-4802-A769-CEE4917BDF75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {495208B7-31BB-4802-A769-CEE4917BDF75}.Release|Any CPU.Build.0 = Release|Any CPU + {33C3D8F0-297F-4471-92B0-F4E8717F10E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33C3D8F0-297F-4471-92B0-F4E8717F10E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33C3D8F0-297F-4471-92B0-F4E8717F10E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33C3D8F0-297F-4471-92B0-F4E8717F10E3}.Release|Any CPU.Build.0 = Release|Any CPU + {42E1BF94-6FE0-4017-9702-55913BD95EDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42E1BF94-6FE0-4017-9702-55913BD95EDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42E1BF94-6FE0-4017-9702-55913BD95EDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42E1BF94-6FE0-4017-9702-55913BD95EDE}.Release|Any CPU.Build.0 = Release|Any CPU + {8845E6FF-94B2-4994-A8F4-DF30844A2168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8845E6FF-94B2-4994-A8F4-DF30844A2168}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8845E6FF-94B2-4994-A8F4-DF30844A2168}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8845E6FF-94B2-4994-A8F4-DF30844A2168}.Release|Any CPU.Build.0 = Release|Any CPU + {15AD68F8-6C58-41A3-99B3-558C42A6E7A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15AD68F8-6C58-41A3-99B3-558C42A6E7A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15AD68F8-6C58-41A3-99B3-558C42A6E7A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15AD68F8-6C58-41A3-99B3-558C42A6E7A5}.Release|Any CPU.Build.0 = Release|Any CPU + {99C8FB58-8718-4E76-AEFA-3C42F2F729B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99C8FB58-8718-4E76-AEFA-3C42F2F729B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99C8FB58-8718-4E76-AEFA-3C42F2F729B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99C8FB58-8718-4E76-AEFA-3C42F2F729B1}.Release|Any CPU.Build.0 = Release|Any CPU + {28C9D427-83BA-46A6-BEF5-6994A07F2258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28C9D427-83BA-46A6-BEF5-6994A07F2258}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28C9D427-83BA-46A6-BEF5-6994A07F2258}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28C9D427-83BA-46A6-BEF5-6994A07F2258}.Release|Any CPU.Build.0 = Release|Any CPU + {F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3230087-28E2-4ADF-A7D1-D48C5D9CFFE9}.Release|Any CPU.Build.0 = Release|Any CPU + {098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {098CEEE6-91D3-4A7C-A5D5-6BB329BB2B7B}.Release|Any CPU.Build.0 = Release|Any CPU + {B729474D-0E96-4296-B317-450EE24F6B48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B729474D-0E96-4296-B317-450EE24F6B48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B729474D-0E96-4296-B317-450EE24F6B48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B729474D-0E96-4296-B317-450EE24F6B48}.Release|Any CPU.Build.0 = Release|Any CPU + {9ADBD2EE-D390-490C-BBEA-F844FE6F371E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ADBD2EE-D390-490C-BBEA-F844FE6F371E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ADBD2EE-D390-490C-BBEA-F844FE6F371E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ADBD2EE-D390-490C-BBEA-F844FE6F371E}.Release|Any CPU.Build.0 = Release|Any CPU + {2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D4DBF5A-3BF4-4846-89F2-6FCDB80BF295}.Release|Any CPU.Build.0 = Release|Any CPU + {465AE1C4-84DD-4864-916A-74D89DC3BBBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {465AE1C4-84DD-4864-916A-74D89DC3BBBC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {465AE1C4-84DD-4864-916A-74D89DC3BBBC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {465AE1C4-84DD-4864-916A-74D89DC3BBBC}.Release|Any CPU.Build.0 = Release|Any CPU + {D466E363-F930-4D26-AE55-0256182961DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D466E363-F930-4D26-AE55-0256182961DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D466E363-F930-4D26-AE55-0256182961DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D466E363-F930-4D26-AE55-0256182961DD}.Release|Any CPU.Build.0 = Release|Any CPU + {D69326FC-CD05-4690-91C0-1537A80ACBFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D69326FC-CD05-4690-91C0-1537A80ACBFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D69326FC-CD05-4690-91C0-1537A80ACBFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D69326FC-CD05-4690-91C0-1537A80ACBFF}.Release|Any CPU.Build.0 = Release|Any CPU + {518D4AE0-FBFF-493A-A2DF-8ACBA842AE19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {518D4AE0-FBFF-493A-A2DF-8ACBA842AE19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {518D4AE0-FBFF-493A-A2DF-8ACBA842AE19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {518D4AE0-FBFF-493A-A2DF-8ACBA842AE19}.Release|Any CPU.Build.0 = Release|Any CPU + {014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {014EE6B4-BE08-4E50-9EBD-0D7A0CB7A76E}.Release|Any CPU.Build.0 = Release|Any CPU + {0AEAD15B-CD38-4462-A36C-655ED8D0CBD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AEAD15B-CD38-4462-A36C-655ED8D0CBD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AEAD15B-CD38-4462-A36C-655ED8D0CBD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AEAD15B-CD38-4462-A36C-655ED8D0CBD1}.Release|Any CPU.Build.0 = Release|Any CPU + {DD121F9F-3548-4247-8E10-FB584FC0827C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD121F9F-3548-4247-8E10-FB584FC0827C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD121F9F-3548-4247-8E10-FB584FC0827C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD121F9F-3548-4247-8E10-FB584FC0827C}.Release|Any CPU.Build.0 = Release|Any CPU + {25C5119A-AAFB-4C74-9E12-F747CA4D80E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25C5119A-AAFB-4C74-9E12-F747CA4D80E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25C5119A-AAFB-4C74-9E12-F747CA4D80E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25C5119A-AAFB-4C74-9E12-F747CA4D80E7}.Release|Any CPU.Build.0 = Release|Any CPU + {45235656-E284-4682-BE70-9A284FD73243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45235656-E284-4682-BE70-9A284FD73243}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45235656-E284-4682-BE70-9A284FD73243}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45235656-E284-4682-BE70-9A284FD73243}.Release|Any CPU.Build.0 = Release|Any CPU + {D975AE29-0CA2-43FC-90A0-B266DF7D4C2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D975AE29-0CA2-43FC-90A0-B266DF7D4C2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D975AE29-0CA2-43FC-90A0-B266DF7D4C2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D975AE29-0CA2-43FC-90A0-B266DF7D4C2A}.Release|Any CPU.Build.0 = Release|Any CPU + {0C6A47C7-7405-4D77-83E1-BC08A88B687B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C6A47C7-7405-4D77-83E1-BC08A88B687B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C6A47C7-7405-4D77-83E1-BC08A88B687B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C6A47C7-7405-4D77-83E1-BC08A88B687B}.Release|Any CPU.Build.0 = Release|Any CPU + {DFF6CFBA-1F4A-4063-AD4C-C11E959DB004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFF6CFBA-1F4A-4063-AD4C-C11E959DB004}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFF6CFBA-1F4A-4063-AD4C-C11E959DB004}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFF6CFBA-1F4A-4063-AD4C-C11E959DB004}.Release|Any CPU.Build.0 = Release|Any CPU + {0BC9E4F4-5C34-4B90-80AB-2933992D99A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BC9E4F4-5C34-4B90-80AB-2933992D99A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BC9E4F4-5C34-4B90-80AB-2933992D99A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BC9E4F4-5C34-4B90-80AB-2933992D99A6}.Release|Any CPU.Build.0 = Release|Any CPU + {34ECA788-A105-411B-AE8B-17B7CC1D703D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34ECA788-A105-411B-AE8B-17B7CC1D703D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34ECA788-A105-411B-AE8B-17B7CC1D703D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34ECA788-A105-411B-AE8B-17B7CC1D703D}.Release|Any CPU.Build.0 = Release|Any CPU + {4ED9C0A9-C1EF-47ED-99F8-74B7411C971B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4ED9C0A9-C1EF-47ED-99F8-74B7411C971B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4ED9C0A9-C1EF-47ED-99F8-74B7411C971B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4ED9C0A9-C1EF-47ED-99F8-74B7411C971B}.Release|Any CPU.Build.0 = Release|Any CPU + {EB6CB1A4-1D66-49B8-9914-BA12B47C909F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB6CB1A4-1D66-49B8-9914-BA12B47C909F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB6CB1A4-1D66-49B8-9914-BA12B47C909F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB6CB1A4-1D66-49B8-9914-BA12B47C909F}.Release|Any CPU.Build.0 = Release|Any CPU + {30979D28-B876-4F1B-A68A-562989414F8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30979D28-B876-4F1B-A68A-562989414F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30979D28-B876-4F1B-A68A-562989414F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30979D28-B876-4F1B-A68A-562989414F8F}.Release|Any CPU.Build.0 = Release|Any CPU + {1E322AE1-E7C1-438B-805E-63436D3DEA7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E322AE1-E7C1-438B-805E-63436D3DEA7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E322AE1-E7C1-438B-805E-63436D3DEA7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E322AE1-E7C1-438B-805E-63436D3DEA7E}.Release|Any CPU.Build.0 = Release|Any CPU + {4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C4B6E2E-C9AD-4100-AC3F-3D6C4BBA04F8}.Release|Any CPU.Build.0 = Release|Any CPU + {A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9EFBE7D-6AE1-4F05-B9C5-2586835ADC4D}.Release|Any CPU.Build.0 = Release|Any CPU + {40F921D6-E86F-4C7B-895D-9B7E96FBC00D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40F921D6-E86F-4C7B-895D-9B7E96FBC00D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40F921D6-E86F-4C7B-895D-9B7E96FBC00D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40F921D6-E86F-4C7B-895D-9B7E96FBC00D}.Release|Any CPU.Build.0 = Release|Any CPU + {827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {827FBB8F-C569-4AC7-82FD-9EC2AE3AF7CC}.Release|Any CPU.Build.0 = Release|Any CPU + {FEC2349C-D18C-40B0-BA21-2111E383E972}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEC2349C-D18C-40B0-BA21-2111E383E972}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEC2349C-D18C-40B0-BA21-2111E383E972}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEC2349C-D18C-40B0-BA21-2111E383E972}.Release|Any CPU.Build.0 = Release|Any CPU + {94F2567E-9746-4A82-804A-C999D33A286A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94F2567E-9746-4A82-804A-C999D33A286A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94F2567E-9746-4A82-804A-C999D33A286A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94F2567E-9746-4A82-804A-C999D33A286A}.Release|Any CPU.Build.0 = Release|Any CPU + {EF1D64A4-6253-460A-B479-73388F98FFF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF1D64A4-6253-460A-B479-73388F98FFF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF1D64A4-6253-460A-B479-73388F98FFF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF1D64A4-6253-460A-B479-73388F98FFF9}.Release|Any CPU.Build.0 = Release|Any CPU + {6A7F6CF5-1085-4F07-AB0E-00F25E407599}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A7F6CF5-1085-4F07-AB0E-00F25E407599}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A7F6CF5-1085-4F07-AB0E-00F25E407599}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A7F6CF5-1085-4F07-AB0E-00F25E407599}.Release|Any CPU.Build.0 = Release|Any CPU + {B41AA17B-5129-41CC-8EA4-250B80BABF87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B41AA17B-5129-41CC-8EA4-250B80BABF87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B41AA17B-5129-41CC-8EA4-250B80BABF87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B41AA17B-5129-41CC-8EA4-250B80BABF87}.Release|Any CPU.Build.0 = Release|Any CPU + {0813853E-8C78-429A-B01A-3FB2EF1898F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0813853E-8C78-429A-B01A-3FB2EF1898F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0813853E-8C78-429A-B01A-3FB2EF1898F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0813853E-8C78-429A-B01A-3FB2EF1898F8}.Release|Any CPU.Build.0 = Release|Any CPU + {C58E2CF3-F8AA-47C1-8A49-65B91252F2AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C58E2CF3-F8AA-47C1-8A49-65B91252F2AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C58E2CF3-F8AA-47C1-8A49-65B91252F2AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C58E2CF3-F8AA-47C1-8A49-65B91252F2AA}.Release|Any CPU.Build.0 = Release|Any CPU + {C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C827FFA2-1AE3-47A7-9CF2-F3F56B2D8519}.Release|Any CPU.Build.0 = Release|Any CPU + {5AAA0A78-071A-465C-A98C-CFFAAD013A32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AAA0A78-071A-465C-A98C-CFFAAD013A32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AAA0A78-071A-465C-A98C-CFFAAD013A32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AAA0A78-071A-465C-A98C-CFFAAD013A32}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4A22EFFF-5422-4D05-9194-C06EADE60E0B} = {23DF8E80-C5C7-4D64-B0D4-F4D33A9646A1} - {50FED4CD-4338-431A-B058-21255B49A4B9} = {2BCD92F1-BA65-4145-A650-8BADD26EE5D9} - {6FB3A6E1-7322-4CBC-A44E-5993FC2085C1} = {635786A7-1A3B-46BB-9367-DE57F7032900} - {8985343B-73BD-4513-B98A-BC7F4CE63F88} = {6FB3A6E1-7322-4CBC-A44E-5993FC2085C1} - {EB3CB906-BAB0-4A90-BE2F-BBFE47B036C3} = {635786A7-1A3B-46BB-9367-DE57F7032900} - {FE4AAEDA-1D08-4C9A-B61C-8A7156000E43} = {635786A7-1A3B-46BB-9367-DE57F7032900} - {4E52FAB8-83A4-4F81-AFED-072BF13D0F46} = {FE4AAEDA-1D08-4C9A-B61C-8A7156000E43} - {49ED668A-7FCB-455B-B3B4-26C004172531} = {EB3CB906-BAB0-4A90-BE2F-BBFE47B036C3} - {602F282E-2829-4C7D-B960-A8D31F326E9F} = {635786A7-1A3B-46BB-9367-DE57F7032900} - {BAD57E10-C310-4BED-A4BF-7B02B1AC35BC} = {23DF8E80-C5C7-4D64-B0D4-F4D33A9646A1} - {0468E166-54DE-4DB7-A2DF-42214A39C392} = {2BCD92F1-BA65-4145-A650-8BADD26EE5D9} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {137EEE14-A353-4DA8-98CB-214FD8EBAF33} + SolutionGuid = {971198CC-ACB9-4718-9024-42A87E02E503} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Internal/HostTests.cs b/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Internal/HostTests.cs index 6ea731c39f8a..f7ce5afc57ca 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Internal/HostTests.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Internal/HostTests.cs @@ -1227,6 +1227,7 @@ public void ThrowExceptionForCustomImplementationOfIHostApplicationLifetime() public async Task BackgroundServiceAsyncExceptionGetsLogged() { using TestEventListener listener = new TestEventListener(); + var backgroundDelayTaskSource = new TaskCompletionSource(); using IHost host = CreateBuilder() .ConfigureLogging(logging => @@ -1235,10 +1236,12 @@ public async Task BackgroundServiceAsyncExceptionGetsLogged() }) .ConfigureServices((hostContext, services) => { - services.AddHostedService(); + services.AddHostedService(sp => new AsyncThrowingService(backgroundDelayTaskSource.Task)); }) .Start(); + backgroundDelayTaskSource.SetResult(true); + // give the background service 1 minute to log the failure TimeSpan timeout = TimeSpan.FromMinutes(1); Stopwatch sw = Stopwatch.StartNew(); @@ -1370,9 +1373,16 @@ public ValueTask DisposeAsync() private class AsyncThrowingService : BackgroundService { + private readonly Task _executeDelayTask; + + public AsyncThrowingService(Task executeDelayTask) + { + _executeDelayTask = executeDelayTask; + } + protected override async Task ExecuteAsync(CancellationToken stoppingToken) { - await Task.Delay(1); + await _executeDelayTask; throw new Exception("Background Exception"); } diff --git a/src/libraries/Microsoft.Extensions.Http/Microsoft.Extensions.Http.sln b/src/libraries/Microsoft.Extensions.Http/Microsoft.Extensions.Http.sln index ab21d6dff380..a8ef0f833c41 100644 --- a/src/libraries/Microsoft.Extensions.Http/Microsoft.Extensions.Http.sln +++ b/src/libraries/Microsoft.Extensions.Http/Microsoft.Extensions.Http.sln @@ -1,55 +1,191 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B51DC955-13A6-41ED-A6C7-DDAB98911513}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DE515C8F-654E-4434-8F3F-014ECD86369D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0517D0EB-1ED7-420A-A7D7-9A167C102ED2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{7110AF00-8902-4693-8697-64B89F6ADFEB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9DE482AA-076A-4EB1-821F-EE2A4A230B4A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{8E552A7E-0C8C-49C2-8988-19469A732E26}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http", "ref\Microsoft.Extensions.Http.csproj", "{183E40F1-33A4-461D-AADF-4CF59FB93CCA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{35FEC7D0-BA1A-49B3-B183-309CC182E60B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http", "src\Microsoft.Extensions.Http.csproj", "{A50C941B-09D7-4AB4-85AF-D02E6F96885A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{92E18BB1-B630-4B03-9B05-47F31D1BF94A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http.Tests", "tests\Microsoft.Extensions.Http.Tests\Microsoft.Extensions.Http.Tests.csproj", "{7DADD323-891C-4EA7-8906-6BC4009FA083}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{B792E72A-0513-4359-B754-D0372610DDCE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http", "ref\Microsoft.Extensions.Http.csproj", "{D4D155B6-2A90-4ECD-97F9-A288F7979375}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http", "src\Microsoft.Extensions.Http.csproj", "{1236A517-6B61-4A62-9495-1C945EDA4D12}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Http.Tests", "tests\Microsoft.Extensions.Http.Tests\Microsoft.Extensions.Http.Tests.csproj", "{58A1E42E-5DA1-452A-B39C-A1819171970A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{85615392-9242-4CAF-A0FE-A439FF615462}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{40143A60-7177-4173-90D4-2891584748CA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{65079F8F-0653-4474-B105-551A9B6F102B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{BECC7A6E-1438-4EAC-B34B-276DEF463769}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{A12B92C6-071A-4C61-8934-371DBB240873}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{DE012146-4D34-44CC-8701-53C42F2943D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{68B501BC-5281-4BC8-B631-C34013E4505E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{88CA5129-7287-4652-9119-C3EEA75971C1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{44EE40EE-2AD9-45D9-A939-A893FA76390C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E3660206-4E55-4A6A-AF4A-17EAB1BEDF50}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1A4A16B7-A970-476B-A54F-23461FFC5B38}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{06FAB5C7-57CC-45F5-B675-FC7C5C256014}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{04B2029E-33BE-43AF-AF1D-AB8B81A8A833}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{60A324C1-717E-40D5-8E84-A63C506461CC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{817C94A2-D8C6-493D-AC04-07875EA5FAD2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {DE515C8F-654E-4434-8F3F-014ECD86369D} = {04B2029E-33BE-43AF-AF1D-AB8B81A8A833} + {58A1E42E-5DA1-452A-B39C-A1819171970A} = {04B2029E-33BE-43AF-AF1D-AB8B81A8A833} + {7110AF00-8902-4693-8697-64B89F6ADFEB} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {35FEC7D0-BA1A-49B3-B183-309CC182E60B} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {D4D155B6-2A90-4ECD-97F9-A288F7979375} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {85615392-9242-4CAF-A0FE-A439FF615462} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {40143A60-7177-4173-90D4-2891584748CA} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {BECC7A6E-1438-4EAC-B34B-276DEF463769} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {DE012146-4D34-44CC-8701-53C42F2943D2} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {88CA5129-7287-4652-9119-C3EEA75971C1} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {44EE40EE-2AD9-45D9-A939-A893FA76390C} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {1A4A16B7-A970-476B-A54F-23461FFC5B38} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {06FAB5C7-57CC-45F5-B675-FC7C5C256014} = {60A324C1-717E-40D5-8E84-A63C506461CC} + {8E552A7E-0C8C-49C2-8988-19469A732E26} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {B792E72A-0513-4359-B754-D0372610DDCE} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {1236A517-6B61-4A62-9495-1C945EDA4D12} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {65079F8F-0653-4474-B105-551A9B6F102B} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {A12B92C6-071A-4C61-8934-371DBB240873} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {68B501BC-5281-4BC8-B631-C34013E4505E} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + {E3660206-4E55-4A6A-AF4A-17EAB1BEDF50} = {817C94A2-D8C6-493D-AC04-07875EA5FAD2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {183E40F1-33A4-461D-AADF-4CF59FB93CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {183E40F1-33A4-461D-AADF-4CF59FB93CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {183E40F1-33A4-461D-AADF-4CF59FB93CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {183E40F1-33A4-461D-AADF-4CF59FB93CCA}.Release|Any CPU.Build.0 = Release|Any CPU - {A50C941B-09D7-4AB4-85AF-D02E6F96885A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A50C941B-09D7-4AB4-85AF-D02E6F96885A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A50C941B-09D7-4AB4-85AF-D02E6F96885A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A50C941B-09D7-4AB4-85AF-D02E6F96885A}.Release|Any CPU.Build.0 = Release|Any CPU - {92E18BB1-B630-4B03-9B05-47F31D1BF94A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {92E18BB1-B630-4B03-9B05-47F31D1BF94A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92E18BB1-B630-4B03-9B05-47F31D1BF94A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {92E18BB1-B630-4B03-9B05-47F31D1BF94A}.Release|Any CPU.Build.0 = Release|Any CPU - {7DADD323-891C-4EA7-8906-6BC4009FA083}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7DADD323-891C-4EA7-8906-6BC4009FA083}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7DADD323-891C-4EA7-8906-6BC4009FA083}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7DADD323-891C-4EA7-8906-6BC4009FA083}.Release|Any CPU.Build.0 = Release|Any CPU + {DE515C8F-654E-4434-8F3F-014ECD86369D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE515C8F-654E-4434-8F3F-014ECD86369D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE515C8F-654E-4434-8F3F-014ECD86369D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE515C8F-654E-4434-8F3F-014ECD86369D}.Release|Any CPU.Build.0 = Release|Any CPU + {7110AF00-8902-4693-8697-64B89F6ADFEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7110AF00-8902-4693-8697-64B89F6ADFEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7110AF00-8902-4693-8697-64B89F6ADFEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7110AF00-8902-4693-8697-64B89F6ADFEB}.Release|Any CPU.Build.0 = Release|Any CPU + {8E552A7E-0C8C-49C2-8988-19469A732E26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E552A7E-0C8C-49C2-8988-19469A732E26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E552A7E-0C8C-49C2-8988-19469A732E26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E552A7E-0C8C-49C2-8988-19469A732E26}.Release|Any CPU.Build.0 = Release|Any CPU + {35FEC7D0-BA1A-49B3-B183-309CC182E60B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35FEC7D0-BA1A-49B3-B183-309CC182E60B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35FEC7D0-BA1A-49B3-B183-309CC182E60B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35FEC7D0-BA1A-49B3-B183-309CC182E60B}.Release|Any CPU.Build.0 = Release|Any CPU + {A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0EBE0C7-F63B-477C-BDE5-6B57AB9DB540}.Release|Any CPU.Build.0 = Release|Any CPU + {E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E004A4D8-CDC5-40F7-A6CD-94DA232F6B1B}.Release|Any CPU.Build.0 = Release|Any CPU + {B792E72A-0513-4359-B754-D0372610DDCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B792E72A-0513-4359-B754-D0372610DDCE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B792E72A-0513-4359-B754-D0372610DDCE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B792E72A-0513-4359-B754-D0372610DDCE}.Release|Any CPU.Build.0 = Release|Any CPU + {D4D155B6-2A90-4ECD-97F9-A288F7979375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4D155B6-2A90-4ECD-97F9-A288F7979375}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4D155B6-2A90-4ECD-97F9-A288F7979375}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4D155B6-2A90-4ECD-97F9-A288F7979375}.Release|Any CPU.Build.0 = Release|Any CPU + {1236A517-6B61-4A62-9495-1C945EDA4D12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1236A517-6B61-4A62-9495-1C945EDA4D12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1236A517-6B61-4A62-9495-1C945EDA4D12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1236A517-6B61-4A62-9495-1C945EDA4D12}.Release|Any CPU.Build.0 = Release|Any CPU + {58A1E42E-5DA1-452A-B39C-A1819171970A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58A1E42E-5DA1-452A-B39C-A1819171970A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58A1E42E-5DA1-452A-B39C-A1819171970A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58A1E42E-5DA1-452A-B39C-A1819171970A}.Release|Any CPU.Build.0 = Release|Any CPU + {85615392-9242-4CAF-A0FE-A439FF615462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85615392-9242-4CAF-A0FE-A439FF615462}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85615392-9242-4CAF-A0FE-A439FF615462}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85615392-9242-4CAF-A0FE-A439FF615462}.Release|Any CPU.Build.0 = Release|Any CPU + {BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAFF07C7-1F5F-4706-B7D7-9D5D309CBFE2}.Release|Any CPU.Build.0 = Release|Any CPU + {40143A60-7177-4173-90D4-2891584748CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40143A60-7177-4173-90D4-2891584748CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40143A60-7177-4173-90D4-2891584748CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40143A60-7177-4173-90D4-2891584748CA}.Release|Any CPU.Build.0 = Release|Any CPU + {65079F8F-0653-4474-B105-551A9B6F102B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65079F8F-0653-4474-B105-551A9B6F102B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65079F8F-0653-4474-B105-551A9B6F102B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65079F8F-0653-4474-B105-551A9B6F102B}.Release|Any CPU.Build.0 = Release|Any CPU + {BECC7A6E-1438-4EAC-B34B-276DEF463769}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BECC7A6E-1438-4EAC-B34B-276DEF463769}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BECC7A6E-1438-4EAC-B34B-276DEF463769}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BECC7A6E-1438-4EAC-B34B-276DEF463769}.Release|Any CPU.Build.0 = Release|Any CPU + {A12B92C6-071A-4C61-8934-371DBB240873}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A12B92C6-071A-4C61-8934-371DBB240873}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A12B92C6-071A-4C61-8934-371DBB240873}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A12B92C6-071A-4C61-8934-371DBB240873}.Release|Any CPU.Build.0 = Release|Any CPU + {DE012146-4D34-44CC-8701-53C42F2943D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE012146-4D34-44CC-8701-53C42F2943D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE012146-4D34-44CC-8701-53C42F2943D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE012146-4D34-44CC-8701-53C42F2943D2}.Release|Any CPU.Build.0 = Release|Any CPU + {68B501BC-5281-4BC8-B631-C34013E4505E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68B501BC-5281-4BC8-B631-C34013E4505E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68B501BC-5281-4BC8-B631-C34013E4505E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68B501BC-5281-4BC8-B631-C34013E4505E}.Release|Any CPU.Build.0 = Release|Any CPU + {88CA5129-7287-4652-9119-C3EEA75971C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88CA5129-7287-4652-9119-C3EEA75971C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88CA5129-7287-4652-9119-C3EEA75971C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88CA5129-7287-4652-9119-C3EEA75971C1}.Release|Any CPU.Build.0 = Release|Any CPU + {1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A02FCFD-12D4-4F46-8AD4-8C052E7BF0F8}.Release|Any CPU.Build.0 = Release|Any CPU + {44EE40EE-2AD9-45D9-A939-A893FA76390C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44EE40EE-2AD9-45D9-A939-A893FA76390C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44EE40EE-2AD9-45D9-A939-A893FA76390C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44EE40EE-2AD9-45D9-A939-A893FA76390C}.Release|Any CPU.Build.0 = Release|Any CPU + {E3660206-4E55-4A6A-AF4A-17EAB1BEDF50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3660206-4E55-4A6A-AF4A-17EAB1BEDF50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3660206-4E55-4A6A-AF4A-17EAB1BEDF50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3660206-4E55-4A6A-AF4A-17EAB1BEDF50}.Release|Any CPU.Build.0 = Release|Any CPU + {1A4A16B7-A970-476B-A54F-23461FFC5B38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A4A16B7-A970-476B-A54F-23461FFC5B38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A4A16B7-A970-476B-A54F-23461FFC5B38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A4A16B7-A970-476B-A54F-23461FFC5B38}.Release|Any CPU.Build.0 = Release|Any CPU + {06FAB5C7-57CC-45F5-B675-FC7C5C256014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06FAB5C7-57CC-45F5-B675-FC7C5C256014}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06FAB5C7-57CC-45F5-B675-FC7C5C256014}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06FAB5C7-57CC-45F5-B675-FC7C5C256014}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {183E40F1-33A4-461D-AADF-4CF59FB93CCA} = {B51DC955-13A6-41ED-A6C7-DDAB98911513} - {A50C941B-09D7-4AB4-85AF-D02E6F96885A} = {0517D0EB-1ED7-420A-A7D7-9A167C102ED2} - {92E18BB1-B630-4B03-9B05-47F31D1BF94A} = {9DE482AA-076A-4EB1-821F-EE2A4A230B4A} - {7DADD323-891C-4EA7-8906-6BC4009FA083} = {9DE482AA-076A-4EB1-821F-EE2A4A230B4A} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F300086C-E02A-417C-8659-59AA5139E68A} + SolutionGuid = {02FCA09C-178B-4DE0-98E0-BCCDEBA97903} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Http/src/Microsoft.Extensions.Http.csproj b/src/libraries/Microsoft.Extensions.Http/src/Microsoft.Extensions.Http.csproj index 6de909a45f7e..f8382783997e 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/Microsoft.Extensions.Http.csproj +++ b/src/libraries/Microsoft.Extensions.Http/src/Microsoft.Extensions.Http.csproj @@ -3,6 +3,7 @@ netstandard2.0;net461 true + Annotations diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/Microsoft.Extensions.Logging.Abstractions.sln b/src/libraries/Microsoft.Extensions.Logging.Abstractions/Microsoft.Extensions.Logging.Abstractions.sln index b9be9c02d513..9f7305a2feee 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/Microsoft.Extensions.Logging.Abstractions.sln +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/Microsoft.Extensions.Logging.Abstractions.sln @@ -1,39 +1,35 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4F0BFA72-3D51-4A89-B8CB-121D867664F4}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{7F536552-0E2A-4642-B7CF-863727C2F9CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2C721B0D-E0F7-46B1-911B-170BFC0D56B3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "src\Microsoft.Extensions.Logging.Abstractions.csproj", "{75C579F7-F20B-41F1-8CAF-641DE7ADA4EE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{2AF3A1AF-69F1-439D-8427-15F59E4A2FA0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4104D1B0-7B6B-4CE5-97EF-528A5066414D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "src\Microsoft.Extensions.Logging.Abstractions.csproj", "{C9F985F5-E1DB-43CD-956F-C0307E46D853}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{50551F84-7929-4F93-9082-B4AE3EDA6B42}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7F536552-0E2A-4642-B7CF-863727C2F9CD} = {4104D1B0-7B6B-4CE5-97EF-528A5066414D} + {75C579F7-F20B-41F1-8CAF-641DE7ADA4EE} = {50551F84-7929-4F93-9082-B4AE3EDA6B42} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2AF3A1AF-69F1-439D-8427-15F59E4A2FA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2AF3A1AF-69F1-439D-8427-15F59E4A2FA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2AF3A1AF-69F1-439D-8427-15F59E4A2FA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2AF3A1AF-69F1-439D-8427-15F59E4A2FA0}.Release|Any CPU.Build.0 = Release|Any CPU - {C9F985F5-E1DB-43CD-956F-C0307E46D853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9F985F5-E1DB-43CD-956F-C0307E46D853}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9F985F5-E1DB-43CD-956F-C0307E46D853}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9F985F5-E1DB-43CD-956F-C0307E46D853}.Release|Any CPU.Build.0 = Release|Any CPU + {7F536552-0E2A-4642-B7CF-863727C2F9CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F536552-0E2A-4642-B7CF-863727C2F9CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F536552-0E2A-4642-B7CF-863727C2F9CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F536552-0E2A-4642-B7CF-863727C2F9CD}.Release|Any CPU.Build.0 = Release|Any CPU + {75C579F7-F20B-41F1-8CAF-641DE7ADA4EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75C579F7-F20B-41F1-8CAF-641DE7ADA4EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75C579F7-F20B-41F1-8CAF-641DE7ADA4EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75C579F7-F20B-41F1-8CAF-641DE7ADA4EE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2AF3A1AF-69F1-439D-8427-15F59E4A2FA0} = {4F0BFA72-3D51-4A89-B8CB-121D867664F4} - {C9F985F5-E1DB-43CD-956F-C0307E46D853} = {2C721B0D-E0F7-46B1-911B-170BFC0D56B3} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0EB01B8F-46D5-4B2E-B3E7-25F1D2D6D62D} + SolutionGuid = {450DA749-CBDC-4BDC-950F-8A491CF59D49} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs index 6c492ac9bd9c..e2d403bc7b38 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs @@ -10,11 +10,11 @@ namespace Microsoft.Extensions.Logging { private readonly object _dummy; private readonly int _dummyPrimitive; - public EventId(int id, string name = null) { throw null; } + public EventId(int id, string? name = null) { throw null; } public int Id { get { throw null; } } - public string Name { get { throw null; } } + public string? Name { get { throw null; } } public bool Equals(Microsoft.Extensions.Logging.EventId other) { throw null; } - public override bool Equals(object obj) { throw null; } + public override bool Equals(object? obj) { throw null; } public override int GetHashCode() { throw null; } public static bool operator ==(Microsoft.Extensions.Logging.EventId left, Microsoft.Extensions.Logging.EventId right) { throw null; } public static implicit operator Microsoft.Extensions.Logging.EventId (int i) { throw null; } @@ -23,14 +23,14 @@ namespace Microsoft.Extensions.Logging } public partial interface IExternalScopeProvider { - void ForEachScope(System.Action callback, TState state); - System.IDisposable Push(object state); + void ForEachScope(System.Action callback, TState state); + System.IDisposable Push(object? state); } public partial interface ILogger { System.IDisposable BeginScope(TState state); bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel); - void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter); + void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter); } public partial interface ILoggerFactory : System.IDisposable { @@ -50,41 +50,41 @@ public partial interface ISupportExternalScope } public static partial class LoggerExtensions { - public static System.IDisposable BeginScope(this Microsoft.Extensions.Logging.ILogger logger, string messageFormat, params object[] args) { throw null; } - public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, System.Exception exception, string message, params object[] args) { } - public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, string message, params object[] args) { } - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } - public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) { } - public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) { } - public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) { } - public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) { } + public static System.IDisposable BeginScope(this Microsoft.Extensions.Logging.ILogger logger, string messageFormat, params object?[] args) { throw null; } + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, System.Exception? exception, string? message, params object?[] args) { } + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, string? message, params object?[] args) { } + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } + public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception? exception, string? message, params object?[] args) { } + public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string? message, params object?[] args) { } + public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, System.Exception? exception, string? message, params object?[] args) { } + public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, string? message, params object?[] args) { } } public partial class LoggerExternalScopeProvider : Microsoft.Extensions.Logging.IExternalScopeProvider { public LoggerExternalScopeProvider() { } - public void ForEachScope(System.Action callback, TState state) { } - public System.IDisposable Push(object state) { throw null; } + public void ForEachScope(System.Action callback, TState state) { } + public System.IDisposable Push(object? state) { throw null; } } public static partial class LoggerFactoryExtensions { @@ -93,7 +93,7 @@ public static partial class LoggerFactoryExtensions } public static partial class LoggerMessage { - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } public static System.Func DefineScope(string formatString) { throw null; } public static System.Func DefineScope(string formatString) { throw null; } public static System.Func DefineScope(string formatString) { throw null; } @@ -101,12 +101,12 @@ public static partial class LoggerMessage public static System.Func DefineScope(string formatString) { throw null; } public static System.Func DefineScope(string formatString) { throw null; } public static System.Func DefineScope(string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } - public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } + public static System.Action Define(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, string formatString) { throw null; } } public partial class Logger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger { @@ -133,11 +133,11 @@ namespace Microsoft.Extensions.Logging.Abstractions private readonly TState _State_k__BackingField; private readonly object _dummy; private readonly int _dummyPrimitive; - public LogEntry(Microsoft.Extensions.Logging.LogLevel logLevel, string category, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) { throw null; } + public LogEntry(Microsoft.Extensions.Logging.LogLevel logLevel, string category, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { throw null; } public string Category { get { throw null; } } public Microsoft.Extensions.Logging.EventId EventId { get { throw null; } } - public System.Exception Exception { get { throw null; } } - public System.Func Formatter { get { throw null; } } + public System.Exception? Exception { get { throw null; } } + public System.Func? Formatter { get { throw null; } } public Microsoft.Extensions.Logging.LogLevel LogLevel { get { throw null; } } public TState State { get { throw null; } } } @@ -147,7 +147,7 @@ public partial class NullLogger : Microsoft.Extensions.Logging.ILogger public static Microsoft.Extensions.Logging.Abstractions.NullLogger Instance { get { throw null; } } public System.IDisposable BeginScope(TState state) { throw null; } public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) { } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } } public partial class NullLoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable { @@ -170,6 +170,6 @@ public partial class NullLogger : Microsoft.Extensions.Logging.ILogger, Micro public NullLogger() { } public System.IDisposable BeginScope(TState state) { throw null; } public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) { } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/EventId.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/EventId.cs index 5c7d7de2b9d3..7e031c5ec5f6 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/EventId.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/EventId.cs @@ -44,7 +44,7 @@ namespace Microsoft.Extensions.Logging /// /// The numeric identifier for this event. /// The name of this event. - public EventId(int id, string name = null) + public EventId(int id, string? name = null) { Id = id; Name = name; @@ -58,7 +58,7 @@ public EventId(int id, string name = null) /// /// Gets the name of this event. /// - public string Name { get; } + public string? Name { get; } /// public override string ToString() @@ -77,7 +77,7 @@ public bool Equals(EventId other) } /// - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is null) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/FormattedLogValues.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/FormattedLogValues.cs index ad0bde9b6fb9..4ee37937aa51 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/FormattedLogValues.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/FormattedLogValues.cs @@ -10,23 +10,23 @@ namespace Microsoft.Extensions.Logging { /// - /// LogValues to enable formatting options supported by . + /// LogValues to enable formatting options supported by . /// This also enables using {NamedformatItem} in the format string. /// - internal readonly struct FormattedLogValues : IReadOnlyList> + internal readonly struct FormattedLogValues : IReadOnlyList> { internal const int MaxCachedFormatters = 1024; private const string NullFormat = "[null]"; private static int _count; private static ConcurrentDictionary _formatters = new ConcurrentDictionary(); - private readonly LogValuesFormatter _formatter; - private readonly object[] _values; + private readonly LogValuesFormatter? _formatter; + private readonly object?[]? _values; private readonly string _originalMessage; // for testing purposes - internal LogValuesFormatter Formatter => _formatter; + internal LogValuesFormatter? Formatter => _formatter; - public FormattedLogValues(string format, params object[] values) + public FormattedLogValues(string? format, params object?[]? values) { if (values != null && values.Length != 0 && format != null) { @@ -55,7 +55,7 @@ public FormattedLogValues(string format, params object[] values) _values = values; } - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { @@ -66,10 +66,10 @@ public FormattedLogValues(string format, params object[] values) if (index == Count - 1) { - return new KeyValuePair ("{OriginalFormat}", _originalMessage); + return new KeyValuePair ("{OriginalFormat}", _originalMessage); } - return _formatter.GetValue(_values, index); + return _formatter!.GetValue(_values!, index); } } @@ -86,7 +86,7 @@ public int Count } } - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/IExternalScopeProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/IExternalScopeProvider.cs index 85e8d9cf29a8..20855aa043c0 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/IExternalScopeProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/IExternalScopeProvider.cs @@ -17,13 +17,13 @@ public interface IExternalScopeProvider /// The callback to be executed for every scope object /// The state object to be passed into the callback /// The type of state to accept. - void ForEachScope(Action callback, TState state); + void ForEachScope(Action callback, TState state); /// /// Adds scope object to the list /// /// The scope object /// The token that removes scope on dispose. - IDisposable Push(object state); + IDisposable Push(object? state); } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/ILogger.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/ILogger.cs index d7164852b483..15c702582764 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/ILogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/ILogger.cs @@ -20,7 +20,7 @@ public interface ILogger /// The exception related to this entry. /// Function to create a message of the and . /// The type of the object to be written. - void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter); + void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter); /// /// Checks if the given is enabled. diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogEntry.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogEntry.cs index e0cab847a156..cebd054da91b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogEntry.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogEntry.cs @@ -19,7 +19,7 @@ namespace Microsoft.Extensions.Logging.Abstractions /// The state for which log is being written. /// The log exception. /// The formatter. - public LogEntry(LogLevel logLevel, string category, EventId eventId, TState state, Exception exception, Func formatter) + public LogEntry(LogLevel logLevel, string category, EventId eventId, TState state, Exception? exception, Func formatter) { LogLevel = logLevel; Category = category; @@ -52,11 +52,11 @@ public LogEntry(LogLevel logLevel, string category, EventId eventId, TState stat /// /// Gets the log exception /// - public Exception Exception { get; } + public Exception? Exception { get; } /// /// Gets the formatter /// - public Func Formatter { get; } + public Func? Formatter { get; } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogValuesFormatter.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogValuesFormatter.cs index c6322199d6fd..f9565145d666 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogValuesFormatter.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LogValuesFormatter.cs @@ -20,6 +20,10 @@ internal class LogValuesFormatter private readonly string _format; private readonly List _valueNames = new List(); + // NOTE: If this assembly ever builds for netcoreapp, the below code should change to: + // - Be annotated as [SkipLocalsInit] to avoid zero'ing the stackalloc'd char span + // - Format _valueNames.Count directly into a span + public LogValuesFormatter(string format) { if (format == null) @@ -29,18 +33,25 @@ public LogValuesFormatter(string format) OriginalFormat = format; - var sb = new StringBuilder(); + var vsb = new ValueStringBuilder(stackalloc char[256]); int scanIndex = 0; int endIndex = format.Length; while (scanIndex < endIndex) { int openBraceIndex = FindBraceIndex(format, '{', scanIndex, endIndex); + if (scanIndex == 0 && openBraceIndex == endIndex) + { + // No holes found. + _format = format; + return; + } + int closeBraceIndex = FindBraceIndex(format, '}', openBraceIndex, endIndex); if (closeBraceIndex == endIndex) { - sb.Append(format, scanIndex, endIndex - scanIndex); + vsb.Append(format.AsSpan(scanIndex, endIndex - scanIndex)); scanIndex = endIndex; } else @@ -48,16 +59,16 @@ public LogValuesFormatter(string format) // Format item syntax : { index[,alignment][ :formatString] }. int formatDelimiterIndex = FindIndexOfAny(format, FormatDelimiters, openBraceIndex, closeBraceIndex); - sb.Append(format, scanIndex, openBraceIndex - scanIndex + 1); - sb.Append(_valueNames.Count.ToString(CultureInfo.InvariantCulture)); + vsb.Append(format.AsSpan(scanIndex, openBraceIndex - scanIndex + 1)); + vsb.Append(_valueNames.Count.ToString()); _valueNames.Add(format.Substring(openBraceIndex + 1, formatDelimiterIndex - openBraceIndex - 1)); - sb.Append(format, formatDelimiterIndex, closeBraceIndex - formatDelimiterIndex + 1); + vsb.Append(format.AsSpan(formatDelimiterIndex, closeBraceIndex - formatDelimiterIndex + 1)); scanIndex = closeBraceIndex + 1; } } - _format = sb.ToString(); + _format = vsb.ToString(); } public string OriginalFormat { get; private set; } @@ -117,7 +128,7 @@ private static int FindIndexOfAny(string format, char[] chars, int startIndex, i return findIndex == -1 ? endIndex : findIndex; } - public string Format(object[] values) + public string Format(object?[]? values) { if (values != null) { @@ -135,22 +146,22 @@ internal string Format() return _format; } - internal string Format(object arg0) + internal string Format(object? arg0) { return string.Format(CultureInfo.InvariantCulture, _format, FormatArgument(arg0)); } - internal string Format(object arg0, object arg1) + internal string Format(object? arg0, object? arg1) { return string.Format(CultureInfo.InvariantCulture, _format, FormatArgument(arg0), FormatArgument(arg1)); } - internal string Format(object arg0, object arg1, object arg2) + internal string Format(object? arg0, object? arg1, object? arg2) { return string.Format(CultureInfo.InvariantCulture, _format, FormatArgument(arg0), FormatArgument(arg1), FormatArgument(arg2)); } - public KeyValuePair GetValue(object[] values, int index) + public KeyValuePair GetValue(object?[] values, int index) { if (index < 0 || index > _valueNames.Count) { @@ -159,25 +170,25 @@ internal string Format(object arg0, object arg1, object arg2) if (_valueNames.Count > index) { - return new KeyValuePair(_valueNames[index], values[index]); + return new KeyValuePair(_valueNames[index], values[index]); } - return new KeyValuePair("{OriginalFormat}", OriginalFormat); + return new KeyValuePair("{OriginalFormat}", OriginalFormat); } - public IEnumerable> GetValues(object[] values) + public IEnumerable> GetValues(object[] values) { - var valueArray = new KeyValuePair[values.Length + 1]; + var valueArray = new KeyValuePair[values.Length + 1]; for (int index = 0; index != _valueNames.Count; ++index) { - valueArray[index] = new KeyValuePair(_valueNames[index], values[index]); + valueArray[index] = new KeyValuePair(_valueNames[index], values[index]); } - valueArray[valueArray.Length - 1] = new KeyValuePair("{OriginalFormat}", OriginalFormat); + valueArray[valueArray.Length - 1] = new KeyValuePair("{OriginalFormat}", OriginalFormat); return valueArray; } - private object FormatArgument(object value) + private object FormatArgument(object? value) { if (value == null) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs index 6f742843a549..4ef6c371e2b9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs @@ -10,7 +10,7 @@ namespace Microsoft.Extensions.Logging /// public static class LoggerExtensions { - private static readonly Func _messageFormatter = MessageFormatter; + private static readonly Func _messageFormatter = MessageFormatter; //------------------------------------------DEBUG------------------------------------------// @@ -23,7 +23,7 @@ public static class LoggerExtensions /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogDebug(0, exception, "Error while processing request from {Address}", address) - public static void LogDebug(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogDebug(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Debug, eventId, exception, message, args); } @@ -36,7 +36,7 @@ public static void LogDebug(this ILogger logger, EventId eventId, Exception exce /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogDebug(0, "Processing request from {Address}", address) - public static void LogDebug(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogDebug(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Debug, eventId, message, args); } @@ -49,7 +49,7 @@ public static void LogDebug(this ILogger logger, EventId eventId, string message /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogDebug(exception, "Error while processing request from {Address}", address) - public static void LogDebug(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogDebug(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Debug, exception, message, args); } @@ -61,7 +61,7 @@ public static void LogDebug(this ILogger logger, Exception exception, string mes /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogDebug("Processing request from {Address}", address) - public static void LogDebug(this ILogger logger, string message, params object[] args) + public static void LogDebug(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Debug, message, args); } @@ -77,7 +77,7 @@ public static void LogDebug(this ILogger logger, string message, params object[] /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogTrace(0, exception, "Error while processing request from {Address}", address) - public static void LogTrace(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogTrace(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Trace, eventId, exception, message, args); } @@ -90,7 +90,7 @@ public static void LogTrace(this ILogger logger, EventId eventId, Exception exce /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogTrace(0, "Processing request from {Address}", address) - public static void LogTrace(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogTrace(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Trace, eventId, message, args); } @@ -103,7 +103,7 @@ public static void LogTrace(this ILogger logger, EventId eventId, string message /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogTrace(exception, "Error while processing request from {Address}", address) - public static void LogTrace(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogTrace(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Trace, exception, message, args); } @@ -115,7 +115,7 @@ public static void LogTrace(this ILogger logger, Exception exception, string mes /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogTrace("Processing request from {Address}", address) - public static void LogTrace(this ILogger logger, string message, params object[] args) + public static void LogTrace(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Trace, message, args); } @@ -131,7 +131,7 @@ public static void LogTrace(this ILogger logger, string message, params object[] /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogInformation(0, exception, "Error while processing request from {Address}", address) - public static void LogInformation(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogInformation(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Information, eventId, exception, message, args); } @@ -144,7 +144,7 @@ public static void LogInformation(this ILogger logger, EventId eventId, Exceptio /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogInformation(0, "Processing request from {Address}", address) - public static void LogInformation(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogInformation(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Information, eventId, message, args); } @@ -157,7 +157,7 @@ public static void LogInformation(this ILogger logger, EventId eventId, string m /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogInformation(exception, "Error while processing request from {Address}", address) - public static void LogInformation(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogInformation(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Information, exception, message, args); } @@ -169,7 +169,7 @@ public static void LogInformation(this ILogger logger, Exception exception, stri /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogInformation("Processing request from {Address}", address) - public static void LogInformation(this ILogger logger, string message, params object[] args) + public static void LogInformation(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Information, message, args); } @@ -185,7 +185,7 @@ public static void LogInformation(this ILogger logger, string message, params ob /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogWarning(0, exception, "Error while processing request from {Address}", address) - public static void LogWarning(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogWarning(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Warning, eventId, exception, message, args); } @@ -198,7 +198,7 @@ public static void LogWarning(this ILogger logger, EventId eventId, Exception ex /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogWarning(0, "Processing request from {Address}", address) - public static void LogWarning(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogWarning(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Warning, eventId, message, args); } @@ -211,7 +211,7 @@ public static void LogWarning(this ILogger logger, EventId eventId, string messa /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogWarning(exception, "Error while processing request from {Address}", address) - public static void LogWarning(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogWarning(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Warning, exception, message, args); } @@ -223,7 +223,7 @@ public static void LogWarning(this ILogger logger, Exception exception, string m /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogWarning("Processing request from {Address}", address) - public static void LogWarning(this ILogger logger, string message, params object[] args) + public static void LogWarning(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Warning, message, args); } @@ -239,7 +239,7 @@ public static void LogWarning(this ILogger logger, string message, params object /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogError(0, exception, "Error while processing request from {Address}", address) - public static void LogError(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogError(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Error, eventId, exception, message, args); } @@ -252,7 +252,7 @@ public static void LogError(this ILogger logger, EventId eventId, Exception exce /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogError(0, "Processing request from {Address}", address) - public static void LogError(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogError(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Error, eventId, message, args); } @@ -265,7 +265,7 @@ public static void LogError(this ILogger logger, EventId eventId, string message /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogError(exception, "Error while processing request from {Address}", address) - public static void LogError(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogError(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Error, exception, message, args); } @@ -277,7 +277,7 @@ public static void LogError(this ILogger logger, Exception exception, string mes /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogError("Processing request from {Address}", address) - public static void LogError(this ILogger logger, string message, params object[] args) + public static void LogError(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Error, message, args); } @@ -293,7 +293,7 @@ public static void LogError(this ILogger logger, string message, params object[] /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogCritical(0, exception, "Error while processing request from {Address}", address) - public static void LogCritical(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args) + public static void LogCritical(this ILogger logger, EventId eventId, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Critical, eventId, exception, message, args); } @@ -306,7 +306,7 @@ public static void LogCritical(this ILogger logger, EventId eventId, Exception e /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogCritical(0, "Processing request from {Address}", address) - public static void LogCritical(this ILogger logger, EventId eventId, string message, params object[] args) + public static void LogCritical(this ILogger logger, EventId eventId, string? message, params object?[] args) { logger.Log(LogLevel.Critical, eventId, message, args); } @@ -319,7 +319,7 @@ public static void LogCritical(this ILogger logger, EventId eventId, string mess /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogCritical(exception, "Error while processing request from {Address}", address) - public static void LogCritical(this ILogger logger, Exception exception, string message, params object[] args) + public static void LogCritical(this ILogger logger, Exception? exception, string? message, params object?[] args) { logger.Log(LogLevel.Critical, exception, message, args); } @@ -331,7 +331,7 @@ public static void LogCritical(this ILogger logger, Exception exception, string /// Format string of the log message in message template format. Example: "User {User} logged in from {Address}" /// An object array that contains zero or more objects to format. /// logger.LogCritical("Processing request from {Address}", address) - public static void LogCritical(this ILogger logger, string message, params object[] args) + public static void LogCritical(this ILogger logger, string? message, params object?[] args) { logger.Log(LogLevel.Critical, message, args); } @@ -343,7 +343,7 @@ public static void LogCritical(this ILogger logger, string message, params objec /// Entry will be written on this level. /// Format string of the log message. /// An object array that contains zero or more objects to format. - public static void Log(this ILogger logger, LogLevel logLevel, string message, params object[] args) + public static void Log(this ILogger logger, LogLevel logLevel, string? message, params object?[] args) { logger.Log(logLevel, 0, null, message, args); } @@ -356,7 +356,7 @@ public static void Log(this ILogger logger, LogLevel logLevel, string message, p /// The event id associated with the log. /// Format string of the log message. /// An object array that contains zero or more objects to format. - public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, string message, params object[] args) + public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, string? message, params object?[] args) { logger.Log(logLevel, eventId, null, message, args); } @@ -369,7 +369,7 @@ public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, /// The exception to log. /// Format string of the log message. /// An object array that contains zero or more objects to format. - public static void Log(this ILogger logger, LogLevel logLevel, Exception exception, string message, params object[] args) + public static void Log(this ILogger logger, LogLevel logLevel, Exception? exception, string? message, params object?[] args) { logger.Log(logLevel, 0, exception, message, args); } @@ -383,7 +383,7 @@ public static void Log(this ILogger logger, LogLevel logLevel, Exception excepti /// The exception to log. /// Format string of the log message. /// An object array that contains zero or more objects to format. - public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, Exception exception, string message, params object[] args) + public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, Exception? exception, string? message, params object?[] args) { if (logger == null) { @@ -410,7 +410,7 @@ public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, public static IDisposable BeginScope( this ILogger logger, string messageFormat, - params object[] args) + params object?[] args) { if (logger == null) { @@ -422,7 +422,7 @@ public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, //------------------------------------------HELPERS------------------------------------------// - private static string MessageFormatter(FormattedLogValues state, Exception error) + private static string MessageFormatter(FormattedLogValues state, Exception? error) { return state.ToString(); } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExternalScopeProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExternalScopeProvider.cs index bd6980a963b1..0afed527c11b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExternalScopeProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExternalScopeProvider.cs @@ -11,7 +11,7 @@ namespace Microsoft.Extensions.Logging /// public class LoggerExternalScopeProvider : IExternalScopeProvider { - private readonly AsyncLocal _currentScope = new AsyncLocal(); + private readonly AsyncLocal _currentScope = new AsyncLocal(); /// /// Creates a new . @@ -20,9 +20,9 @@ public LoggerExternalScopeProvider() { } /// - public void ForEachScope(Action callback, TState state) + public void ForEachScope(Action callback, TState state) { - void Report(Scope current) + void Report(Scope? current) { if (current == null) { @@ -35,9 +35,9 @@ void Report(Scope current) } /// - public IDisposable Push(object state) + public IDisposable Push(object? state) { - Scope parent = _currentScope.Value; + Scope? parent = _currentScope.Value; var newScope = new Scope(this, state, parent); _currentScope.Value = newScope; @@ -49,18 +49,18 @@ private class Scope : IDisposable private readonly LoggerExternalScopeProvider _provider; private bool _isDisposed; - internal Scope(LoggerExternalScopeProvider provider, object state, Scope parent) + internal Scope(LoggerExternalScopeProvider provider, object? state, Scope? parent) { _provider = provider; State = state; Parent = parent; } - public Scope Parent { get; } + public Scope? Parent { get; } - public object State { get; } + public object? State { get; } - public override string ToString() + public override string? ToString() { return State?.ToString(); } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerMessage.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerMessage.cs index 27c7b5b75031..2d9fa977ee72 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerMessage.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerMessage.cs @@ -127,7 +127,7 @@ public static class LoggerMessage /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 0); @@ -148,11 +148,11 @@ public static class LoggerMessage /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 1); - void Log(ILogger logger, T1 arg1, Exception exception) + void Log(ILogger logger, T1 arg1, Exception? exception) { logger.Log(logLevel, eventId, new LogValues(formatter, arg1), exception, LogValues.Callback); } @@ -175,11 +175,11 @@ void Log(ILogger logger, T1 arg1, Exception exception) /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 2); - void Log(ILogger logger, T1 arg1, T2 arg2, Exception exception) + void Log(ILogger logger, T1 arg1, T2 arg2, Exception? exception) { logger.Log(logLevel, eventId, new LogValues(formatter, arg1, arg2), exception, LogValues.Callback); } @@ -203,11 +203,11 @@ void Log(ILogger logger, T1 arg1, T2 arg2, Exception exception) /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 3); - void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, Exception exception) + void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, Exception? exception) { logger.Log(logLevel, eventId, new LogValues(formatter, arg1, arg2, arg3), exception, LogValues.Callback); } @@ -232,11 +232,11 @@ void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, Exception exception) /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 4); - void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, T4 arg4, Exception exception) + void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, T4 arg4, Exception? exception) { logger.Log(logLevel, eventId, new LogValues(formatter, arg1, arg2, arg3, arg4), exception, LogValues.Callback); } @@ -262,7 +262,7 @@ void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, T4 arg4, Exception exception /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 5); @@ -288,7 +288,7 @@ void Log(ILogger logger, T1 arg1, T2 arg2, T3 arg3, T4 arg4, Exception exception /// The event id /// The named format string /// A delegate which when invoked creates a log message. - public static Action Define(LogLevel logLevel, EventId eventId, string formatString) + public static Action Define(LogLevel logLevel, EventId eventId, string formatString) { LogValuesFormatter formatter = CreateLogValuesFormatter(formatString, expectedNamedParameterCount: 6); @@ -315,9 +315,9 @@ private static LogValuesFormatter CreateLogValuesFormatter(string formatString, return logValuesFormatter; } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func Callback = (state, exception) => state.ToString(); + public static readonly Func Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; @@ -326,13 +326,13 @@ public LogValues(LogValuesFormatter formatter) _formatter = formatter; } - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { if (index == 0) { - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); } throw new IndexOutOfRangeException(nameof(index)); } @@ -340,7 +340,7 @@ public LogValues(LogValuesFormatter formatter) public int Count => 1; - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { yield return this[0]; } @@ -353,9 +353,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -366,16 +366,16 @@ public LogValues(LogValuesFormatter formatter, T0 value0) _value0 = value0; } - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -384,7 +384,7 @@ public LogValues(LogValuesFormatter formatter, T0 value0) public int Count => 2; - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { @@ -401,9 +401,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -416,18 +416,18 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1) _value1 = value1; } - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair(_formatter.ValueNames[1], _value1); + return new KeyValuePair(_formatter.ValueNames[1], _value1); case 2: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -436,7 +436,7 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1) public int Count => 3; - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { @@ -452,9 +452,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -463,20 +463,20 @@ IEnumerator IEnumerable.GetEnumerator() public int Count => 4; - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair(_formatter.ValueNames[1], _value1); + return new KeyValuePair(_formatter.ValueNames[1], _value1); case 2: - return new KeyValuePair(_formatter.ValueNames[2], _value2); + return new KeyValuePair(_formatter.ValueNames[2], _value2); case 3: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -493,7 +493,7 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1, T2 value2) public override string ToString() => _formatter.Format(_value0, _value1, _value2); - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { @@ -507,9 +507,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -519,22 +519,22 @@ IEnumerator IEnumerable.GetEnumerator() public int Count => 5; - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair(_formatter.ValueNames[1], _value1); + return new KeyValuePair(_formatter.ValueNames[1], _value1); case 2: - return new KeyValuePair(_formatter.ValueNames[2], _value2); + return new KeyValuePair(_formatter.ValueNames[2], _value2); case 3: - return new KeyValuePair(_formatter.ValueNames[3], _value3); + return new KeyValuePair(_formatter.ValueNames[3], _value3); case 4: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -550,11 +550,11 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1, T2 value2, _value3 = value3; } - private object[] ToArray() => new object[] { _value0, _value1, _value2, _value3 }; + private object?[] ToArray() => new object?[] { _value0, _value1, _value2, _value3 }; public override string ToString() => _formatter.Format(ToArray()); - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { @@ -568,9 +568,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -581,24 +581,24 @@ IEnumerator IEnumerable.GetEnumerator() public int Count => 6; - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair(_formatter.ValueNames[1], _value1); + return new KeyValuePair(_formatter.ValueNames[1], _value1); case 2: - return new KeyValuePair(_formatter.ValueNames[2], _value2); + return new KeyValuePair(_formatter.ValueNames[2], _value2); case 3: - return new KeyValuePair(_formatter.ValueNames[3], _value3); + return new KeyValuePair(_formatter.ValueNames[3], _value3); case 4: - return new KeyValuePair(_formatter.ValueNames[4], _value4); + return new KeyValuePair(_formatter.ValueNames[4], _value4); case 5: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -615,11 +615,11 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1, T2 value2, _value4 = value4; } - private object[] ToArray() => new object[] { _value0, _value1, _value2, _value3, _value4 }; + private object?[] ToArray() => new object?[] { _value0, _value1, _value2, _value3, _value4 }; public override string ToString() => _formatter.Format(ToArray()); - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { @@ -633,9 +633,9 @@ IEnumerator IEnumerable.GetEnumerator() } } - private readonly struct LogValues : IReadOnlyList> + private readonly struct LogValues : IReadOnlyList> { - public static readonly Func, Exception, string> Callback = (state, exception) => state.ToString(); + public static readonly Func, Exception?, string> Callback = (state, exception) => state.ToString(); private readonly LogValuesFormatter _formatter; private readonly T0 _value0; @@ -647,26 +647,26 @@ IEnumerator IEnumerable.GetEnumerator() public int Count => 7; - public KeyValuePair this[int index] + public KeyValuePair this[int index] { get { switch (index) { case 0: - return new KeyValuePair(_formatter.ValueNames[0], _value0); + return new KeyValuePair(_formatter.ValueNames[0], _value0); case 1: - return new KeyValuePair(_formatter.ValueNames[1], _value1); + return new KeyValuePair(_formatter.ValueNames[1], _value1); case 2: - return new KeyValuePair(_formatter.ValueNames[2], _value2); + return new KeyValuePair(_formatter.ValueNames[2], _value2); case 3: - return new KeyValuePair(_formatter.ValueNames[3], _value3); + return new KeyValuePair(_formatter.ValueNames[3], _value3); case 4: - return new KeyValuePair(_formatter.ValueNames[4], _value4); + return new KeyValuePair(_formatter.ValueNames[4], _value4); case 5: - return new KeyValuePair(_formatter.ValueNames[5], _value5); + return new KeyValuePair(_formatter.ValueNames[5], _value5); case 6: - return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); + return new KeyValuePair("{OriginalFormat}", _formatter.OriginalFormat); default: throw new IndexOutOfRangeException(nameof(index)); } @@ -684,11 +684,11 @@ public LogValues(LogValuesFormatter formatter, T0 value0, T1 value1, T2 value2, _value5 = value5; } - private object[] ToArray() => new object[] { _value0, _value1, _value2, _value3, _value4, _value5 }; + private object?[] ToArray() => new object?[] { _value0, _value1, _value2, _value3, _value4, _value5 }; public override string ToString() => _formatter.Format(ToArray()); - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { for (int i = 0; i < Count; ++i) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerT.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerT.cs index 59f2f043cd18..bea9a8bdeff7 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerT.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerT.cs @@ -42,7 +42,7 @@ bool ILogger.IsEnabled(LogLevel logLevel) } /// - void ILogger.Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) + void ILogger.Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) { _logger.Log(logLevel, eventId, state, exception, formatter); } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj index 26c5d1f3329d..f110d08801ab 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj @@ -1,8 +1,13 @@ - netstandard2.0;net461 + $(NetCoreAppCurrent);netstandard2.0;net461 + true true + true + + false + enable @@ -12,6 +17,13 @@ Link="Common\src\Extensions\Logging\NullExternalScopeProvider.cs" /> + + + + + + diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLogger.cs index f8bdacdc112d..694ba8de9b1f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLogger.cs @@ -32,7 +32,7 @@ public bool IsEnabled(LogLevel logLevel) } /// - public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) + public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) { } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLoggerT.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLoggerT.cs index 8e3a118575f3..1d228a33669f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLoggerT.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/NullLoggerT.cs @@ -30,8 +30,8 @@ public IDisposable BeginScope(TState state) LogLevel logLevel, EventId eventId, TState state, - Exception exception, - Func formatter) + Exception? exception, + Func formatter) { } diff --git a/src/libraries/Microsoft.Extensions.Logging.Configuration/Microsoft.Extensions.Logging.Configuration.sln b/src/libraries/Microsoft.Extensions.Logging.Configuration/Microsoft.Extensions.Logging.Configuration.sln index aa501df6051b..e9db604514ed 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Configuration/Microsoft.Extensions.Logging.Configuration.sln +++ b/src/libraries/Microsoft.Extensions.Logging.Configuration/Microsoft.Extensions.Logging.Configuration.sln @@ -1,39 +1,210 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BBEAECE0-0015-4048-9781-D8833A961DD7}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{5C771533-F8F4-47A0-9E3C-614F87A72744}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2E07E3F9-36C0-4367-94CF-CF1F8FDB2523}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{CD09F265-2818-40E4-8732-C41DE48A4EF7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "ref\Microsoft.Extensions.Logging.Configuration.csproj", "{EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{CC5ACC22-9AD1-49DF-8F84-64AF0D71006C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "src\Microsoft.Extensions.Logging.Configuration.csproj", "{AECBB8DB-22C3-45D1-95DF-DC4A7377D85D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{1717DDEF-8917-4382-B5DC-073B2F2F4361}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{02F90254-A566-440D-9B98-A31A8A1A4D5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{20D72006-BAEF-4604-A9DC-2864FED9DF9A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{71755B81-EF5C-4C36-A278-60D69ECCC158}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{D9979978-4230-427D-88F6-455F1D59FE96}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{36176FF1-8C33-494D-A496-1D7E0DCFCD86}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{788150B7-B822-4466-A1DC-C875449DE449}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{E7035B72-0180-437E-A696-1F0CD8921279}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "ref\Microsoft.Extensions.Logging.Configuration.csproj", "{8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "src\Microsoft.Extensions.Logging.Configuration.csproj", "{B3829B05-AA4A-4A0D-B076-D0C3031C9D33}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{91D63569-CA51-4362-B4FC-9BD66302373F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{BBCC241D-0980-4735-8187-229D37ADC0E5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{D482622B-7B40-4311-977F-11C09B98BA4F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{4467B594-D9A5-432C-A1CC-07F9C9CED010}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{93C7964F-6A2F-48C7-A3EA-322401532E8C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{5645B3B9-A523-4C61-8417-4EE0C90380AB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{531F1DAF-B4DE-4240-B7BE-E206330E3792}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{B077F55F-E15A-4B91-A1EB-8178B8313908}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3CFBDC1C-B621-4921-9AEF-3891B2B644C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{907BD280-43B8-41A1-A306-8B903993DCE4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CCE34638-0797-4E01-A39A-E8C79681D52D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5C771533-F8F4-47A0-9E3C-614F87A72744} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {CC5ACC22-9AD1-49DF-8F84-64AF0D71006C} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {02F90254-A566-440D-9B98-A31A8A1A4D5B} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {20D72006-BAEF-4604-A9DC-2864FED9DF9A} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {D9979978-4230-427D-88F6-455F1D59FE96} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {91D63569-CA51-4362-B4FC-9BD66302373F} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {D482622B-7B40-4311-977F-11C09B98BA4F} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {5645B3B9-A523-4C61-8417-4EE0C90380AB} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {3CFBDC1C-B621-4921-9AEF-3891B2B644C5} = {CCE34638-0797-4E01-A39A-E8C79681D52D} + {CD09F265-2818-40E4-8732-C41DE48A4EF7} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {1717DDEF-8917-4382-B5DC-073B2F2F4361} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {71755B81-EF5C-4C36-A278-60D69ECCC158} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {36176FF1-8C33-494D-A496-1D7E0DCFCD86} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {788150B7-B822-4466-A1DC-C875449DE449} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {E7035B72-0180-437E-A696-1F0CD8921279} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {B3829B05-AA4A-4A0D-B076-D0C3031C9D33} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {BBCC241D-0980-4735-8187-229D37ADC0E5} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {4467B594-D9A5-432C-A1CC-07F9C9CED010} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {93C7964F-6A2F-48C7-A3EA-322401532E8C} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {531F1DAF-B4DE-4240-B7BE-E206330E3792} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {B077F55F-E15A-4B91-A1EB-8178B8313908} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + {907BD280-43B8-41A1-A306-8B903993DCE4} = {C4ADC43B-84E9-4BB0-8ED0-22ED2E1EB967} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3}.Release|Any CPU.Build.0 = Release|Any CPU - {AECBB8DB-22C3-45D1-95DF-DC4A7377D85D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AECBB8DB-22C3-45D1-95DF-DC4A7377D85D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AECBB8DB-22C3-45D1-95DF-DC4A7377D85D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AECBB8DB-22C3-45D1-95DF-DC4A7377D85D}.Release|Any CPU.Build.0 = Release|Any CPU + {5C771533-F8F4-47A0-9E3C-614F87A72744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C771533-F8F4-47A0-9E3C-614F87A72744}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C771533-F8F4-47A0-9E3C-614F87A72744}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C771533-F8F4-47A0-9E3C-614F87A72744}.Release|Any CPU.Build.0 = Release|Any CPU + {CD09F265-2818-40E4-8732-C41DE48A4EF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD09F265-2818-40E4-8732-C41DE48A4EF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD09F265-2818-40E4-8732-C41DE48A4EF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD09F265-2818-40E4-8732-C41DE48A4EF7}.Release|Any CPU.Build.0 = Release|Any CPU + {CC5ACC22-9AD1-49DF-8F84-64AF0D71006C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC5ACC22-9AD1-49DF-8F84-64AF0D71006C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC5ACC22-9AD1-49DF-8F84-64AF0D71006C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC5ACC22-9AD1-49DF-8F84-64AF0D71006C}.Release|Any CPU.Build.0 = Release|Any CPU + {1717DDEF-8917-4382-B5DC-073B2F2F4361}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1717DDEF-8917-4382-B5DC-073B2F2F4361}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1717DDEF-8917-4382-B5DC-073B2F2F4361}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1717DDEF-8917-4382-B5DC-073B2F2F4361}.Release|Any CPU.Build.0 = Release|Any CPU + {02F90254-A566-440D-9B98-A31A8A1A4D5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02F90254-A566-440D-9B98-A31A8A1A4D5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02F90254-A566-440D-9B98-A31A8A1A4D5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02F90254-A566-440D-9B98-A31A8A1A4D5B}.Release|Any CPU.Build.0 = Release|Any CPU + {1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C7B2B47-D3C6-4B9E-B9B5-0B222ACD9097}.Release|Any CPU.Build.0 = Release|Any CPU + {20D72006-BAEF-4604-A9DC-2864FED9DF9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20D72006-BAEF-4604-A9DC-2864FED9DF9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20D72006-BAEF-4604-A9DC-2864FED9DF9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20D72006-BAEF-4604-A9DC-2864FED9DF9A}.Release|Any CPU.Build.0 = Release|Any CPU + {71755B81-EF5C-4C36-A278-60D69ECCC158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71755B81-EF5C-4C36-A278-60D69ECCC158}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71755B81-EF5C-4C36-A278-60D69ECCC158}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71755B81-EF5C-4C36-A278-60D69ECCC158}.Release|Any CPU.Build.0 = Release|Any CPU + {D9979978-4230-427D-88F6-455F1D59FE96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9979978-4230-427D-88F6-455F1D59FE96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9979978-4230-427D-88F6-455F1D59FE96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9979978-4230-427D-88F6-455F1D59FE96}.Release|Any CPU.Build.0 = Release|Any CPU + {36176FF1-8C33-494D-A496-1D7E0DCFCD86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36176FF1-8C33-494D-A496-1D7E0DCFCD86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36176FF1-8C33-494D-A496-1D7E0DCFCD86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36176FF1-8C33-494D-A496-1D7E0DCFCD86}.Release|Any CPU.Build.0 = Release|Any CPU + {C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C7CD6C8B-ACAA-489C-9FD2-6F44DF62EA33}.Release|Any CPU.Build.0 = Release|Any CPU + {788150B7-B822-4466-A1DC-C875449DE449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {788150B7-B822-4466-A1DC-C875449DE449}.Debug|Any CPU.Build.0 = Debug|Any CPU + {788150B7-B822-4466-A1DC-C875449DE449}.Release|Any CPU.ActiveCfg = Release|Any CPU + {788150B7-B822-4466-A1DC-C875449DE449}.Release|Any CPU.Build.0 = Release|Any CPU + {C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4F75024-EA9D-46C5-B2D9-CAE8FC5EFF38}.Release|Any CPU.Build.0 = Release|Any CPU + {E7035B72-0180-437E-A696-1F0CD8921279}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7035B72-0180-437E-A696-1F0CD8921279}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7035B72-0180-437E-A696-1F0CD8921279}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7035B72-0180-437E-A696-1F0CD8921279}.Release|Any CPU.Build.0 = Release|Any CPU + {8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E3D96C3-D5AC-47E0-A3C5-1FF26E0A8780}.Release|Any CPU.Build.0 = Release|Any CPU + {B3829B05-AA4A-4A0D-B076-D0C3031C9D33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3829B05-AA4A-4A0D-B076-D0C3031C9D33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3829B05-AA4A-4A0D-B076-D0C3031C9D33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3829B05-AA4A-4A0D-B076-D0C3031C9D33}.Release|Any CPU.Build.0 = Release|Any CPU + {91D63569-CA51-4362-B4FC-9BD66302373F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91D63569-CA51-4362-B4FC-9BD66302373F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91D63569-CA51-4362-B4FC-9BD66302373F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91D63569-CA51-4362-B4FC-9BD66302373F}.Release|Any CPU.Build.0 = Release|Any CPU + {BBCC241D-0980-4735-8187-229D37ADC0E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBCC241D-0980-4735-8187-229D37ADC0E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBCC241D-0980-4735-8187-229D37ADC0E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBCC241D-0980-4735-8187-229D37ADC0E5}.Release|Any CPU.Build.0 = Release|Any CPU + {D482622B-7B40-4311-977F-11C09B98BA4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D482622B-7B40-4311-977F-11C09B98BA4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D482622B-7B40-4311-977F-11C09B98BA4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D482622B-7B40-4311-977F-11C09B98BA4F}.Release|Any CPU.Build.0 = Release|Any CPU + {4467B594-D9A5-432C-A1CC-07F9C9CED010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4467B594-D9A5-432C-A1CC-07F9C9CED010}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4467B594-D9A5-432C-A1CC-07F9C9CED010}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4467B594-D9A5-432C-A1CC-07F9C9CED010}.Release|Any CPU.Build.0 = Release|Any CPU + {8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B2D67D3-9D41-45F0-9CDB-EFC9944C98AA}.Release|Any CPU.Build.0 = Release|Any CPU + {93C7964F-6A2F-48C7-A3EA-322401532E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93C7964F-6A2F-48C7-A3EA-322401532E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93C7964F-6A2F-48C7-A3EA-322401532E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93C7964F-6A2F-48C7-A3EA-322401532E8C}.Release|Any CPU.Build.0 = Release|Any CPU + {5645B3B9-A523-4C61-8417-4EE0C90380AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5645B3B9-A523-4C61-8417-4EE0C90380AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5645B3B9-A523-4C61-8417-4EE0C90380AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5645B3B9-A523-4C61-8417-4EE0C90380AB}.Release|Any CPU.Build.0 = Release|Any CPU + {531F1DAF-B4DE-4240-B7BE-E206330E3792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {531F1DAF-B4DE-4240-B7BE-E206330E3792}.Debug|Any CPU.Build.0 = Debug|Any CPU + {531F1DAF-B4DE-4240-B7BE-E206330E3792}.Release|Any CPU.ActiveCfg = Release|Any CPU + {531F1DAF-B4DE-4240-B7BE-E206330E3792}.Release|Any CPU.Build.0 = Release|Any CPU + {B077F55F-E15A-4B91-A1EB-8178B8313908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B077F55F-E15A-4B91-A1EB-8178B8313908}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B077F55F-E15A-4B91-A1EB-8178B8313908}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B077F55F-E15A-4B91-A1EB-8178B8313908}.Release|Any CPU.Build.0 = Release|Any CPU + {3CFBDC1C-B621-4921-9AEF-3891B2B644C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CFBDC1C-B621-4921-9AEF-3891B2B644C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CFBDC1C-B621-4921-9AEF-3891B2B644C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CFBDC1C-B621-4921-9AEF-3891B2B644C5}.Release|Any CPU.Build.0 = Release|Any CPU + {907BD280-43B8-41A1-A306-8B903993DCE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {907BD280-43B8-41A1-A306-8B903993DCE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {907BD280-43B8-41A1-A306-8B903993DCE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {907BD280-43B8-41A1-A306-8B903993DCE4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EFF8FFA2-FF9A-49F5-84D7-5B367EFC77D3} = {BBEAECE0-0015-4048-9781-D8833A961DD7} - {AECBB8DB-22C3-45D1-95DF-DC4A7377D85D} = {2E07E3F9-36C0-4367-94CF-CF1F8FDB2523} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6878BDEB-B00F-44C9-87D2-DB01C89597D1} + SolutionGuid = {E5154479-615B-4978-AE5A-A7DE55907E36} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/Microsoft.Extensions.Logging.Console.sln b/src/libraries/Microsoft.Extensions.Logging.Console/Microsoft.Extensions.Logging.Console.sln index 24a098f8e6b3..d92081d2b5bc 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/Microsoft.Extensions.Logging.Console.sln +++ b/src/libraries/Microsoft.Extensions.Logging.Console/Microsoft.Extensions.Logging.Console.sln @@ -1,48 +1,275 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A12B6049-11A7-4E2B-857B-620B917B4A46}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B60701F7-43B3-4A85-B808-5FF9C1865898}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A1F1D16A-5787-45E5-AF85-617702C216C6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{60720C98-E619-40A6-9536-BC47AD0A056A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "ref\Microsoft.Extensions.Logging.Console.csproj", "{6D191D5A-572C-4BFA-B73B-C24AF80E8016}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{0A49D42B-0C4D-46E0-ABBC-AE8600CDC472}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "src\Microsoft.Extensions.Logging.Console.csproj", "{CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{A3F1A3F6-86BC-4F38-B603-31BBA0A022B7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{56A299FB-3733-4AF5-AE10-66AB73D6FC13}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{ED51A791-65BB-4F8B-B76C-769D0663D4A7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console.Tests", "tests\Microsoft.Extensions.Logging.Console.Tests\Microsoft.Extensions.Logging.Console.Tests.csproj", "{A2CFB82A-F553-44CD-8765-97409380EED9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{2299110F-60C7-4812-A15B-B74A14FFBFA7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{EF05AB17-527F-40BC-B4D1-AAE510267F4E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{4840FDAC-4B45-4F52-99B9-CC5727CB06D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{1F272F82-E9D1-454A-8E3C-6BEAF02219D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{66A0FD4D-535B-4A59-B39F-8BFAE35072BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{2E4D0EB0-E34B-4D47-A7F1-E35C696066E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{6A02D298-6899-4DD0-BFF4-40702BC30BCD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\ref\Microsoft.Extensions.Logging.Configuration.csproj", "{1B33EC41-F711-4111-8818-FEEBC9A0BD8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\src\Microsoft.Extensions.Logging.Configuration.csproj", "{E09FB553-28C4-4C1C-8E86-CFAB3374A656}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "ref\Microsoft.Extensions.Logging.Console.csproj", "{87E4E376-68A8-4867-9E83-CBD16D8B99B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "src\Microsoft.Extensions.Logging.Console.csproj", "{974792E2-0311-446A-BABF-18B3A8DDDEC5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console.Tests", "tests\Microsoft.Extensions.Logging.Console.Tests\Microsoft.Extensions.Logging.Console.Tests.csproj", "{6A1C4B05-982A-4BD9-957F-E77992C54EBA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{D62C0D69-0322-4621-8D9E-AF4D30D6BD22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{27525A8A-61B3-4FDB-B096-36E977A6BE0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{8AA8114D-BC87-45E3-8C6D-1618C48D5741}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{D3E483FC-DF73-4CD8-AFAA-1DA752F49304}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{AC6EFD37-CF1C-4893-B2BA-41826794F711}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{6316940A-1032-4A41-8D2E-4A9E08B612F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{D1A26695-26BD-45CE-BB18-F5CC75801992}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{3C9A4019-6151-4D27-BCA5-3EBAA0C71B39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{5DCD1587-CC45-4105-8FFE-E4A43C60DA8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0FB1C55D-62A0-4537-93F8-294761B37CFB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{EB05EC17-2C21-47EC-A39D-90ABBA053318}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{09219B29-EEE6-4B14-B474-C014C0047E99}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{14D45314-A07C-4F62-80BD-C44A9D270636}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{C9F3D8F9-8646-432E-82FC-2E4E8411CFFE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{03B2FE3F-A8E5-4486-B47B-816A95EF7372}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A0F9E582-8B29-4F77-9B86-51795BE1DAF2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{41050E05-8EAF-455A-B310-F2DBA39E8C6D}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B60701F7-43B3-4A85-B808-5FF9C1865898} = {03B2FE3F-A8E5-4486-B47B-816A95EF7372} + {6A1C4B05-982A-4BD9-957F-E77992C54EBA} = {03B2FE3F-A8E5-4486-B47B-816A95EF7372} + {60720C98-E619-40A6-9536-BC47AD0A056A} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {A3F1A3F6-86BC-4F38-B603-31BBA0A022B7} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {2299110F-60C7-4812-A15B-B74A14FFBFA7} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {4840FDAC-4B45-4F52-99B9-CC5727CB06D3} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {66A0FD4D-535B-4A59-B39F-8BFAE35072BC} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {1B33EC41-F711-4111-8818-FEEBC9A0BD8D} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {87E4E376-68A8-4867-9E83-CBD16D8B99B7} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {D62C0D69-0322-4621-8D9E-AF4D30D6BD22} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {8AA8114D-BC87-45E3-8C6D-1618C48D5741} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {AC6EFD37-CF1C-4893-B2BA-41826794F711} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {D1A26695-26BD-45CE-BB18-F5CC75801992} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {0FB1C55D-62A0-4537-93F8-294761B37CFB} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {09219B29-EEE6-4B14-B474-C014C0047E99} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {14D45314-A07C-4F62-80BD-C44A9D270636} = {A0F9E582-8B29-4F77-9B86-51795BE1DAF2} + {0A49D42B-0C4D-46E0-ABBC-AE8600CDC472} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {ED51A791-65BB-4F8B-B76C-769D0663D4A7} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {EF05AB17-527F-40BC-B4D1-AAE510267F4E} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {1F272F82-E9D1-454A-8E3C-6BEAF02219D4} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {2E4D0EB0-E34B-4D47-A7F1-E35C696066E8} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {6A02D298-6899-4DD0-BFF4-40702BC30BCD} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {E09FB553-28C4-4C1C-8E86-CFAB3374A656} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {974792E2-0311-446A-BABF-18B3A8DDDEC5} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {27525A8A-61B3-4FDB-B096-36E977A6BE0F} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {D3E483FC-DF73-4CD8-AFAA-1DA752F49304} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {6316940A-1032-4A41-8D2E-4A9E08B612F6} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {3C9A4019-6151-4D27-BCA5-3EBAA0C71B39} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {5DCD1587-CC45-4105-8FFE-E4A43C60DA8D} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {EB05EC17-2C21-47EC-A39D-90ABBA053318} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + {C9F3D8F9-8646-432E-82FC-2E4E8411CFFE} = {41050E05-8EAF-455A-B310-F2DBA39E8C6D} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6D191D5A-572C-4BFA-B73B-C24AF80E8016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D191D5A-572C-4BFA-B73B-C24AF80E8016}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D191D5A-572C-4BFA-B73B-C24AF80E8016}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D191D5A-572C-4BFA-B73B-C24AF80E8016}.Release|Any CPU.Build.0 = Release|Any CPU - {CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974}.Release|Any CPU.Build.0 = Release|Any CPU - {A2CFB82A-F553-44CD-8765-97409380EED9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2CFB82A-F553-44CD-8765-97409380EED9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2CFB82A-F553-44CD-8765-97409380EED9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2CFB82A-F553-44CD-8765-97409380EED9}.Release|Any CPU.Build.0 = Release|Any CPU + {B60701F7-43B3-4A85-B808-5FF9C1865898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B60701F7-43B3-4A85-B808-5FF9C1865898}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B60701F7-43B3-4A85-B808-5FF9C1865898}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B60701F7-43B3-4A85-B808-5FF9C1865898}.Release|Any CPU.Build.0 = Release|Any CPU + {60720C98-E619-40A6-9536-BC47AD0A056A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60720C98-E619-40A6-9536-BC47AD0A056A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60720C98-E619-40A6-9536-BC47AD0A056A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60720C98-E619-40A6-9536-BC47AD0A056A}.Release|Any CPU.Build.0 = Release|Any CPU + {0A49D42B-0C4D-46E0-ABBC-AE8600CDC472}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A49D42B-0C4D-46E0-ABBC-AE8600CDC472}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A49D42B-0C4D-46E0-ABBC-AE8600CDC472}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A49D42B-0C4D-46E0-ABBC-AE8600CDC472}.Release|Any CPU.Build.0 = Release|Any CPU + {A3F1A3F6-86BC-4F38-B603-31BBA0A022B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3F1A3F6-86BC-4F38-B603-31BBA0A022B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3F1A3F6-86BC-4F38-B603-31BBA0A022B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3F1A3F6-86BC-4F38-B603-31BBA0A022B7}.Release|Any CPU.Build.0 = Release|Any CPU + {ED51A791-65BB-4F8B-B76C-769D0663D4A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED51A791-65BB-4F8B-B76C-769D0663D4A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED51A791-65BB-4F8B-B76C-769D0663D4A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED51A791-65BB-4F8B-B76C-769D0663D4A7}.Release|Any CPU.Build.0 = Release|Any CPU + {EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEA45BA9-D38F-41CD-BE5E-9283FBFC27D3}.Release|Any CPU.Build.0 = Release|Any CPU + {F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3F1AF4B-963B-4DCC-80AF-11DFEB652D8D}.Release|Any CPU.Build.0 = Release|Any CPU + {2299110F-60C7-4812-A15B-B74A14FFBFA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2299110F-60C7-4812-A15B-B74A14FFBFA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2299110F-60C7-4812-A15B-B74A14FFBFA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2299110F-60C7-4812-A15B-B74A14FFBFA7}.Release|Any CPU.Build.0 = Release|Any CPU + {EF05AB17-527F-40BC-B4D1-AAE510267F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF05AB17-527F-40BC-B4D1-AAE510267F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF05AB17-527F-40BC-B4D1-AAE510267F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF05AB17-527F-40BC-B4D1-AAE510267F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {4840FDAC-4B45-4F52-99B9-CC5727CB06D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4840FDAC-4B45-4F52-99B9-CC5727CB06D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4840FDAC-4B45-4F52-99B9-CC5727CB06D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4840FDAC-4B45-4F52-99B9-CC5727CB06D3}.Release|Any CPU.Build.0 = Release|Any CPU + {1F272F82-E9D1-454A-8E3C-6BEAF02219D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F272F82-E9D1-454A-8E3C-6BEAF02219D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F272F82-E9D1-454A-8E3C-6BEAF02219D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F272F82-E9D1-454A-8E3C-6BEAF02219D4}.Release|Any CPU.Build.0 = Release|Any CPU + {66A0FD4D-535B-4A59-B39F-8BFAE35072BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66A0FD4D-535B-4A59-B39F-8BFAE35072BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66A0FD4D-535B-4A59-B39F-8BFAE35072BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66A0FD4D-535B-4A59-B39F-8BFAE35072BC}.Release|Any CPU.Build.0 = Release|Any CPU + {2E4D0EB0-E34B-4D47-A7F1-E35C696066E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E4D0EB0-E34B-4D47-A7F1-E35C696066E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E4D0EB0-E34B-4D47-A7F1-E35C696066E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E4D0EB0-E34B-4D47-A7F1-E35C696066E8}.Release|Any CPU.Build.0 = Release|Any CPU + {9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BCECFDA-BF6E-4BD8-BFE2-A25C61F57874}.Release|Any CPU.Build.0 = Release|Any CPU + {6A02D298-6899-4DD0-BFF4-40702BC30BCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A02D298-6899-4DD0-BFF4-40702BC30BCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A02D298-6899-4DD0-BFF4-40702BC30BCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A02D298-6899-4DD0-BFF4-40702BC30BCD}.Release|Any CPU.Build.0 = Release|Any CPU + {1B33EC41-F711-4111-8818-FEEBC9A0BD8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B33EC41-F711-4111-8818-FEEBC9A0BD8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B33EC41-F711-4111-8818-FEEBC9A0BD8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B33EC41-F711-4111-8818-FEEBC9A0BD8D}.Release|Any CPU.Build.0 = Release|Any CPU + {E09FB553-28C4-4C1C-8E86-CFAB3374A656}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E09FB553-28C4-4C1C-8E86-CFAB3374A656}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E09FB553-28C4-4C1C-8E86-CFAB3374A656}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E09FB553-28C4-4C1C-8E86-CFAB3374A656}.Release|Any CPU.Build.0 = Release|Any CPU + {87E4E376-68A8-4867-9E83-CBD16D8B99B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E4E376-68A8-4867-9E83-CBD16D8B99B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E4E376-68A8-4867-9E83-CBD16D8B99B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E4E376-68A8-4867-9E83-CBD16D8B99B7}.Release|Any CPU.Build.0 = Release|Any CPU + {974792E2-0311-446A-BABF-18B3A8DDDEC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {974792E2-0311-446A-BABF-18B3A8DDDEC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {974792E2-0311-446A-BABF-18B3A8DDDEC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {974792E2-0311-446A-BABF-18B3A8DDDEC5}.Release|Any CPU.Build.0 = Release|Any CPU + {6A1C4B05-982A-4BD9-957F-E77992C54EBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A1C4B05-982A-4BD9-957F-E77992C54EBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A1C4B05-982A-4BD9-957F-E77992C54EBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A1C4B05-982A-4BD9-957F-E77992C54EBA}.Release|Any CPU.Build.0 = Release|Any CPU + {D62C0D69-0322-4621-8D9E-AF4D30D6BD22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D62C0D69-0322-4621-8D9E-AF4D30D6BD22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D62C0D69-0322-4621-8D9E-AF4D30D6BD22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D62C0D69-0322-4621-8D9E-AF4D30D6BD22}.Release|Any CPU.Build.0 = Release|Any CPU + {27525A8A-61B3-4FDB-B096-36E977A6BE0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27525A8A-61B3-4FDB-B096-36E977A6BE0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27525A8A-61B3-4FDB-B096-36E977A6BE0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27525A8A-61B3-4FDB-B096-36E977A6BE0F}.Release|Any CPU.Build.0 = Release|Any CPU + {8AA8114D-BC87-45E3-8C6D-1618C48D5741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AA8114D-BC87-45E3-8C6D-1618C48D5741}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AA8114D-BC87-45E3-8C6D-1618C48D5741}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AA8114D-BC87-45E3-8C6D-1618C48D5741}.Release|Any CPU.Build.0 = Release|Any CPU + {D3E483FC-DF73-4CD8-AFAA-1DA752F49304}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3E483FC-DF73-4CD8-AFAA-1DA752F49304}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3E483FC-DF73-4CD8-AFAA-1DA752F49304}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3E483FC-DF73-4CD8-AFAA-1DA752F49304}.Release|Any CPU.Build.0 = Release|Any CPU + {AC6EFD37-CF1C-4893-B2BA-41826794F711}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC6EFD37-CF1C-4893-B2BA-41826794F711}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC6EFD37-CF1C-4893-B2BA-41826794F711}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC6EFD37-CF1C-4893-B2BA-41826794F711}.Release|Any CPU.Build.0 = Release|Any CPU + {6316940A-1032-4A41-8D2E-4A9E08B612F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6316940A-1032-4A41-8D2E-4A9E08B612F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6316940A-1032-4A41-8D2E-4A9E08B612F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6316940A-1032-4A41-8D2E-4A9E08B612F6}.Release|Any CPU.Build.0 = Release|Any CPU + {D1A26695-26BD-45CE-BB18-F5CC75801992}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1A26695-26BD-45CE-BB18-F5CC75801992}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1A26695-26BD-45CE-BB18-F5CC75801992}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1A26695-26BD-45CE-BB18-F5CC75801992}.Release|Any CPU.Build.0 = Release|Any CPU + {3C9A4019-6151-4D27-BCA5-3EBAA0C71B39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C9A4019-6151-4D27-BCA5-3EBAA0C71B39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C9A4019-6151-4D27-BCA5-3EBAA0C71B39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C9A4019-6151-4D27-BCA5-3EBAA0C71B39}.Release|Any CPU.Build.0 = Release|Any CPU + {88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88B25E7E-3FF5-41C2-AAE8-BBADB8FA8446}.Release|Any CPU.Build.0 = Release|Any CPU + {5DCD1587-CC45-4105-8FFE-E4A43C60DA8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DCD1587-CC45-4105-8FFE-E4A43C60DA8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DCD1587-CC45-4105-8FFE-E4A43C60DA8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DCD1587-CC45-4105-8FFE-E4A43C60DA8D}.Release|Any CPU.Build.0 = Release|Any CPU + {0FB1C55D-62A0-4537-93F8-294761B37CFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FB1C55D-62A0-4537-93F8-294761B37CFB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FB1C55D-62A0-4537-93F8-294761B37CFB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FB1C55D-62A0-4537-93F8-294761B37CFB}.Release|Any CPU.Build.0 = Release|Any CPU + {EB05EC17-2C21-47EC-A39D-90ABBA053318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB05EC17-2C21-47EC-A39D-90ABBA053318}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB05EC17-2C21-47EC-A39D-90ABBA053318}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB05EC17-2C21-47EC-A39D-90ABBA053318}.Release|Any CPU.Build.0 = Release|Any CPU + {09219B29-EEE6-4B14-B474-C014C0047E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09219B29-EEE6-4B14-B474-C014C0047E99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09219B29-EEE6-4B14-B474-C014C0047E99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09219B29-EEE6-4B14-B474-C014C0047E99}.Release|Any CPU.Build.0 = Release|Any CPU + {14D45314-A07C-4F62-80BD-C44A9D270636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14D45314-A07C-4F62-80BD-C44A9D270636}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14D45314-A07C-4F62-80BD-C44A9D270636}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14D45314-A07C-4F62-80BD-C44A9D270636}.Release|Any CPU.Build.0 = Release|Any CPU + {BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF5E5B5A-AC50-4FF1-AADB-0DFC1AA8E429}.Release|Any CPU.Build.0 = Release|Any CPU + {C9F3D8F9-8646-432E-82FC-2E4E8411CFFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9F3D8F9-8646-432E-82FC-2E4E8411CFFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9F3D8F9-8646-432E-82FC-2E4E8411CFFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9F3D8F9-8646-432E-82FC-2E4E8411CFFE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6D191D5A-572C-4BFA-B73B-C24AF80E8016} = {A12B6049-11A7-4E2B-857B-620B917B4A46} - {CDEDF61A-4D74-4EAA-B31E-AF5CAAA7B974} = {A1F1D16A-5787-45E5-AF85-617702C216C6} - {A2CFB82A-F553-44CD-8765-97409380EED9} = {56A299FB-3733-4AF5-AE10-66AB73D6FC13} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E75E4D9D-8919-409F-8FF1-67DD9C346EA7} + SolutionGuid = {C1591684-381C-4761-A20A-4B7FA24E5557} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 80e365a65753..4cca93a0012a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -6,6 +6,7 @@ namespace Microsoft.Extensions.Logging { + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static partial class ConsoleLoggerExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } @@ -63,6 +64,7 @@ public partial class ConsoleLoggerOptions [System.ObsoleteAttribute("ConsoleLoggerOptions.UseUtcTimestamp has been deprecated. Please use ConsoleFormatterOptions.UseUtcTimestamp instead.", false)] public bool UseUtcTimestamp { get { throw null; } set { } } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [Microsoft.Extensions.Logging.ProviderAliasAttribute("Console")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj index 048eb0459608..41c181ec7a7d 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj @@ -1,6 +1,7 @@ netstandard2.0;net461 + true diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs index 9f42ec630293..6a4473289b28 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs @@ -3,9 +3,11 @@ using System; using System.IO; +using System.Runtime.Versioning; namespace Microsoft.Extensions.Logging.Console { + [UnsupportedOSPlatform("browser")] internal class AnsiParsingLogConsole : IConsole { private readonly TextWriter _textWriter; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs index 1d544f322810..daa903da318b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs @@ -3,10 +3,12 @@ using System; using System.IO; +using System.Runtime.Versioning; using Microsoft.Extensions.Logging.Abstractions; namespace Microsoft.Extensions.Logging.Console { + [UnsupportedOSPlatform("browser")] internal class ConsoleLogger : ILogger { private readonly string _name; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs index 8cd8a594e359..9d12ac5e111f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs @@ -3,6 +3,7 @@ using System; using System.Diagnostics.CodeAnalysis; +using System.Runtime.Versioning; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -12,6 +13,7 @@ namespace Microsoft.Extensions.Logging { + [UnsupportedOSPlatform("browser")] public static class ConsoleLoggerExtensions { /// @@ -154,6 +156,7 @@ internal static ILoggingBuilder AddConsoleWithFormatter(this ILoggingB } } + [UnsupportedOSPlatform("browser")] internal class ConsoleLoggerFormatterConfigureOptions : ConfigureFromConfigurationOptions where TOptions : ConsoleFormatterOptions where TFormatter : ConsoleFormatter @@ -164,6 +167,7 @@ internal class ConsoleLoggerFormatterConfigureOptions : Co } } + [UnsupportedOSPlatform("browser")] internal class ConsoleLoggerFormatterOptionsChangeTokenSource : ConfigurationChangeTokenSource where TOptions : ConsoleFormatterOptions where TFormatter : ConsoleFormatter diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProcessor.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProcessor.cs index 83a49c20d4c8..c79ccac72f9f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProcessor.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProcessor.cs @@ -3,10 +3,12 @@ using System; using System.Collections.Concurrent; +using System.Runtime.Versioning; using System.Threading; namespace Microsoft.Extensions.Logging.Console { + [UnsupportedOSPlatform("browser")] internal class ConsoleLoggerProcessor : IDisposable { private const int _maxQueuedMessages = 1024; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index d5a22520a1e2..fd995f7cd6b9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -4,8 +4,8 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Linq; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using Microsoft.Extensions.Options; namespace Microsoft.Extensions.Logging.Console @@ -13,6 +13,7 @@ namespace Microsoft.Extensions.Logging.Console /// /// A provider of instances. /// + [UnsupportedOSPlatform("browser")] [ProviderAlias("Console")] public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope { @@ -29,7 +30,7 @@ public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope /// /// The options to create instances with. public ConsoleLoggerProvider(IOptionsMonitor options) - : this(options, Enumerable.Empty()) { } + : this(options, Array.Empty()) { } /// /// Creates an instance of . @@ -76,23 +77,26 @@ private static bool DoesConsoleSupportAnsi() private void SetFormatters(IEnumerable formatters = null) { - _formatters = new ConcurrentDictionary(StringComparer.OrdinalIgnoreCase); - if (formatters == null || !formatters.Any()) - { - var defaultMonitor = new FormatterOptionsMonitor(new SimpleConsoleFormatterOptions()); - var systemdMonitor = new FormatterOptionsMonitor(new ConsoleFormatterOptions()); - var jsonMonitor = new FormatterOptionsMonitor(new JsonConsoleFormatterOptions()); - _formatters.GetOrAdd(ConsoleFormatterNames.Simple, formatterName => new SimpleConsoleFormatter(defaultMonitor)); - _formatters.GetOrAdd(ConsoleFormatterNames.Systemd, formatterName => new SystemdConsoleFormatter(systemdMonitor)); - _formatters.GetOrAdd(ConsoleFormatterNames.Json, formatterName => new JsonConsoleFormatter(jsonMonitor)); - } - else + var cd = new ConcurrentDictionary(StringComparer.OrdinalIgnoreCase); + + bool added = false; + if (formatters != null) { foreach (ConsoleFormatter formatter in formatters) { - _formatters.GetOrAdd(formatter.Name, formatterName => formatter); + cd.TryAdd(formatter.Name, formatter); + added = true; } } + + if (!added) + { + cd.TryAdd(ConsoleFormatterNames.Simple, new SimpleConsoleFormatter(new FormatterOptionsMonitor(new SimpleConsoleFormatterOptions()))); + cd.TryAdd(ConsoleFormatterNames.Systemd, new SystemdConsoleFormatter(new FormatterOptionsMonitor(new ConsoleFormatterOptions()))); + cd.TryAdd(ConsoleFormatterNames.Json, new JsonConsoleFormatter(new FormatterOptionsMonitor(new JsonConsoleFormatterOptions()))); + } + + _formatters = cd; } // warning: ReloadLoggerOptions can be called before the ctor completed,... before registering all of the state used in this method need to be initialized @@ -135,7 +139,7 @@ public ILogger CreateLogger(string name) { UpdateFormatterOptions(logFormatter, _options.CurrentValue); } -#pragma warning disable CS0618 +#pragma warning restore CS0618 } return _loggers.GetOrAdd(name, loggerName => new ConsoleLogger(name, _messageQueue) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatter.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatter.cs index 41cd6e32336f..c08038c5df9a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatter.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatter.cs @@ -2,16 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Buffers; using System.Collections.Generic; using System.Globalization; using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using System.Text.Json; -using System.Text.Json.Serialization; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj index 1e8e0f43fa4b..ef573cddb9a3 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj @@ -1,4 +1,4 @@ - + $(NetCoreAppCurrent);netcoreapp3.0;netstandard2.0;net461 @@ -8,6 +8,7 @@ $(DefineConstants);NO_SUPPRESS_GC_TRANSITION false + true diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatter.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatter.cs index bc702ca0438a..1c790a45e730 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatter.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatter.cs @@ -3,10 +3,6 @@ using System; using System.IO; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; @@ -78,7 +74,19 @@ private void CreateDefaultLogMessage(TextWriter textWriter, in LogEntry< // Request received // category and event id - textWriter.Write(LoglevelPadding + logEntry.Category + '[' + eventId + "]"); + textWriter.Write(LoglevelPadding); + textWriter.Write(logEntry.Category); + textWriter.Write('['); + +#if NETCOREAPP + Span span = stackalloc char[10]; + if (eventId.TryFormat(span, out int charsWritten)) + textWriter.Write(span.Slice(0, charsWritten)); + else +#endif + textWriter.Write(eventId.ToString()); + + textWriter.Write(']'); if (!singleLine) { textWriter.Write(Environment.NewLine); @@ -177,7 +185,8 @@ private void WriteScopeInformation(TextWriter textWriter, IExternalScopeProvider if (paddingNeeded) { paddingNeeded = false; - state.Write(_messagePadding + "=> "); + state.Write(_messagePadding); + state.Write("=> "); } else { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/Microsoft.Extensions.Logging.Debug.sln b/src/libraries/Microsoft.Extensions.Logging.Debug/Microsoft.Extensions.Logging.Debug.sln index 8de47f7c600c..a8d1f8bcebf9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/Microsoft.Extensions.Logging.Debug.sln +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/Microsoft.Extensions.Logging.Debug.sln @@ -1,39 +1,154 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3B9F38A7-3FCA-4C21-8435-9B6658F6B339}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{E3D3AF4B-1494-4272-8B7F-23385704E49A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{378A459F-A677-4FC6-B8B4-6858044FD56D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{544BBE63-3650-42E0-AD83-B613907BE753}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "ref\Microsoft.Extensions.Logging.Debug.csproj", "{467F595B-D8C7-419D-9D8A-46424481D895}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "src\Microsoft.Extensions.Logging.Debug.csproj", "{4649154D-6F09-4A6B-AB25-6FDB2A847BC2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{5B4734D0-7CF9-4F4B-B27A-FAED72A81C71}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{BB19DE2F-5A32-4769-8CB5-80E59C500229}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{850FBE78-DE29-480D-B4EE-6D260B0341B4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{16E075F3-372C-4A98-BDAF-FF615B8A9855}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{3DDCFBB7-A438-46BB-9094-A1A39060DD2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "ref\Microsoft.Extensions.Logging.Debug.csproj", "{7EAFD932-A183-488B-8688-531568CEE5B2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "src\Microsoft.Extensions.Logging.Debug.csproj", "{81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{7DC15EBB-2614-473D-9B46-D764F8E1613C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{7B89700F-897A-4CE8-B789-C9F915631845}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{B39EB467-7C81-482C-A1EA-D6B183E43DE9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{6BDC5518-F6BA-4506-B9E6-505EDEEE340F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{AD197619-E574-41FD-A70F-FDE7C750E6DF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{DACACFDC-C2ED-41A9-B2D4-2898FC4A938F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{A3AE4326-5EB6-454C-8276-93B1E5FA5A84}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C839B756-1681-4DFD-A73E-9EFB91C3495D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{668A1DC6-089D-4ABA-A32B-E1F85EAD1790}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{976505DE-70B0-464C-8D38-954C6C70085E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DAFB0E3C-1706-4268-8798-8FDF97CF0966}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E3D3AF4B-1494-4272-8B7F-23385704E49A} = {976505DE-70B0-464C-8D38-954C6C70085E} + {47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4} = {976505DE-70B0-464C-8D38-954C6C70085E} + {BB19DE2F-5A32-4769-8CB5-80E59C500229} = {976505DE-70B0-464C-8D38-954C6C70085E} + {16E075F3-372C-4A98-BDAF-FF615B8A9855} = {976505DE-70B0-464C-8D38-954C6C70085E} + {7EAFD932-A183-488B-8688-531568CEE5B2} = {976505DE-70B0-464C-8D38-954C6C70085E} + {7DC15EBB-2614-473D-9B46-D764F8E1613C} = {976505DE-70B0-464C-8D38-954C6C70085E} + {B39EB467-7C81-482C-A1EA-D6B183E43DE9} = {976505DE-70B0-464C-8D38-954C6C70085E} + {AD197619-E574-41FD-A70F-FDE7C750E6DF} = {976505DE-70B0-464C-8D38-954C6C70085E} + {C839B756-1681-4DFD-A73E-9EFB91C3495D} = {976505DE-70B0-464C-8D38-954C6C70085E} + {544BBE63-3650-42E0-AD83-B613907BE753} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {5B4734D0-7CF9-4F4B-B27A-FAED72A81C71} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {850FBE78-DE29-480D-B4EE-6D260B0341B4} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {3DDCFBB7-A438-46BB-9094-A1A39060DD2A} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {7B89700F-897A-4CE8-B789-C9F915631845} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {6BDC5518-F6BA-4506-B9E6-505EDEEE340F} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {DACACFDC-C2ED-41A9-B2D4-2898FC4A938F} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {A3AE4326-5EB6-454C-8276-93B1E5FA5A84} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + {668A1DC6-089D-4ABA-A32B-E1F85EAD1790} = {DAFB0E3C-1706-4268-8798-8FDF97CF0966} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {467F595B-D8C7-419D-9D8A-46424481D895}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {467F595B-D8C7-419D-9D8A-46424481D895}.Debug|Any CPU.Build.0 = Debug|Any CPU - {467F595B-D8C7-419D-9D8A-46424481D895}.Release|Any CPU.ActiveCfg = Release|Any CPU - {467F595B-D8C7-419D-9D8A-46424481D895}.Release|Any CPU.Build.0 = Release|Any CPU - {4649154D-6F09-4A6B-AB25-6FDB2A847BC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4649154D-6F09-4A6B-AB25-6FDB2A847BC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4649154D-6F09-4A6B-AB25-6FDB2A847BC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4649154D-6F09-4A6B-AB25-6FDB2A847BC2}.Release|Any CPU.Build.0 = Release|Any CPU + {E3D3AF4B-1494-4272-8B7F-23385704E49A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3D3AF4B-1494-4272-8B7F-23385704E49A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3D3AF4B-1494-4272-8B7F-23385704E49A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3D3AF4B-1494-4272-8B7F-23385704E49A}.Release|Any CPU.Build.0 = Release|Any CPU + {544BBE63-3650-42E0-AD83-B613907BE753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {544BBE63-3650-42E0-AD83-B613907BE753}.Debug|Any CPU.Build.0 = Debug|Any CPU + {544BBE63-3650-42E0-AD83-B613907BE753}.Release|Any CPU.ActiveCfg = Release|Any CPU + {544BBE63-3650-42E0-AD83-B613907BE753}.Release|Any CPU.Build.0 = Release|Any CPU + {47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47DEB52C-BDB2-4B4F-9CE0-D5D75D16BED4}.Release|Any CPU.Build.0 = Release|Any CPU + {5B4734D0-7CF9-4F4B-B27A-FAED72A81C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B4734D0-7CF9-4F4B-B27A-FAED72A81C71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B4734D0-7CF9-4F4B-B27A-FAED72A81C71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B4734D0-7CF9-4F4B-B27A-FAED72A81C71}.Release|Any CPU.Build.0 = Release|Any CPU + {BB19DE2F-5A32-4769-8CB5-80E59C500229}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB19DE2F-5A32-4769-8CB5-80E59C500229}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB19DE2F-5A32-4769-8CB5-80E59C500229}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB19DE2F-5A32-4769-8CB5-80E59C500229}.Release|Any CPU.Build.0 = Release|Any CPU + {850FBE78-DE29-480D-B4EE-6D260B0341B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {850FBE78-DE29-480D-B4EE-6D260B0341B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {850FBE78-DE29-480D-B4EE-6D260B0341B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {850FBE78-DE29-480D-B4EE-6D260B0341B4}.Release|Any CPU.Build.0 = Release|Any CPU + {16E075F3-372C-4A98-BDAF-FF615B8A9855}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16E075F3-372C-4A98-BDAF-FF615B8A9855}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16E075F3-372C-4A98-BDAF-FF615B8A9855}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16E075F3-372C-4A98-BDAF-FF615B8A9855}.Release|Any CPU.Build.0 = Release|Any CPU + {3DDCFBB7-A438-46BB-9094-A1A39060DD2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DDCFBB7-A438-46BB-9094-A1A39060DD2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DDCFBB7-A438-46BB-9094-A1A39060DD2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DDCFBB7-A438-46BB-9094-A1A39060DD2A}.Release|Any CPU.Build.0 = Release|Any CPU + {7EAFD932-A183-488B-8688-531568CEE5B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EAFD932-A183-488B-8688-531568CEE5B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EAFD932-A183-488B-8688-531568CEE5B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EAFD932-A183-488B-8688-531568CEE5B2}.Release|Any CPU.Build.0 = Release|Any CPU + {81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81AB6F03-2FF8-4F0F-AB21-B80A6C345DC1}.Release|Any CPU.Build.0 = Release|Any CPU + {7DC15EBB-2614-473D-9B46-D764F8E1613C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DC15EBB-2614-473D-9B46-D764F8E1613C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DC15EBB-2614-473D-9B46-D764F8E1613C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DC15EBB-2614-473D-9B46-D764F8E1613C}.Release|Any CPU.Build.0 = Release|Any CPU + {7B89700F-897A-4CE8-B789-C9F915631845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B89700F-897A-4CE8-B789-C9F915631845}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B89700F-897A-4CE8-B789-C9F915631845}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B89700F-897A-4CE8-B789-C9F915631845}.Release|Any CPU.Build.0 = Release|Any CPU + {B39EB467-7C81-482C-A1EA-D6B183E43DE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B39EB467-7C81-482C-A1EA-D6B183E43DE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B39EB467-7C81-482C-A1EA-D6B183E43DE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B39EB467-7C81-482C-A1EA-D6B183E43DE9}.Release|Any CPU.Build.0 = Release|Any CPU + {6BDC5518-F6BA-4506-B9E6-505EDEEE340F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BDC5518-F6BA-4506-B9E6-505EDEEE340F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BDC5518-F6BA-4506-B9E6-505EDEEE340F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BDC5518-F6BA-4506-B9E6-505EDEEE340F}.Release|Any CPU.Build.0 = Release|Any CPU + {AD197619-E574-41FD-A70F-FDE7C750E6DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD197619-E574-41FD-A70F-FDE7C750E6DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD197619-E574-41FD-A70F-FDE7C750E6DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD197619-E574-41FD-A70F-FDE7C750E6DF}.Release|Any CPU.Build.0 = Release|Any CPU + {DACACFDC-C2ED-41A9-B2D4-2898FC4A938F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DACACFDC-C2ED-41A9-B2D4-2898FC4A938F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DACACFDC-C2ED-41A9-B2D4-2898FC4A938F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DACACFDC-C2ED-41A9-B2D4-2898FC4A938F}.Release|Any CPU.Build.0 = Release|Any CPU + {A3AE4326-5EB6-454C-8276-93B1E5FA5A84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3AE4326-5EB6-454C-8276-93B1E5FA5A84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3AE4326-5EB6-454C-8276-93B1E5FA5A84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3AE4326-5EB6-454C-8276-93B1E5FA5A84}.Release|Any CPU.Build.0 = Release|Any CPU + {C839B756-1681-4DFD-A73E-9EFB91C3495D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C839B756-1681-4DFD-A73E-9EFB91C3495D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C839B756-1681-4DFD-A73E-9EFB91C3495D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C839B756-1681-4DFD-A73E-9EFB91C3495D}.Release|Any CPU.Build.0 = Release|Any CPU + {668A1DC6-089D-4ABA-A32B-E1F85EAD1790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {668A1DC6-089D-4ABA-A32B-E1F85EAD1790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {668A1DC6-089D-4ABA-A32B-E1F85EAD1790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {668A1DC6-089D-4ABA-A32B-E1F85EAD1790}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {467F595B-D8C7-419D-9D8A-46424481D895} = {3B9F38A7-3FCA-4C21-8435-9B6658F6B339} - {4649154D-6F09-4A6B-AB25-6FDB2A847BC2} = {378A459F-A677-4FC6-B8B4-6858044FD56D} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EA350A46-7E04-4924-9367-9294ECEB0341} + SolutionGuid = {4842DEC4-687D-48D9-B1FE-FF5456C0B60B} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/Microsoft.Extensions.Logging.EventLog.sln b/src/libraries/Microsoft.Extensions.Logging.EventLog/Microsoft.Extensions.Logging.EventLog.sln index 4386d2758061..b262048e342a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/Microsoft.Extensions.Logging.EventLog.sln +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/Microsoft.Extensions.Logging.EventLog.sln @@ -1,39 +1,259 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{EBB90F30-FF27-4FE2-A893-AFF3A8A6EA1C}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{F15DA9A4-0AB3-4C41-999D-7653B7C5B18F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{136EBD1F-008D-4050-A9BB-23B5F71B2BC9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{B67E21A5-9B87-46DB-99A1-F04074CBE466}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "ref\Microsoft.Extensions.Logging.EventLog.csproj", "{1F096CC9-6700-47BD-9468-0093880C1EBA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{F61FEA80-03CF-4F04-8362-EA64E3E27C58}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "src\Microsoft.Extensions.Logging.EventLog.csproj", "{B31BB7CC-C769-43BF-9C0B-38F8002E8E1E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{A21DEE4B-F49B-4A19-95AC-7589757B8962}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{E74341EE-52F2-4649-AB89-5CB3C7D6415F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{62D0B220-DABD-4C56-A0E2-640D74465328}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{B1BE2665-7E3F-46FB-BCE1-774D5984F76C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{6C2850C7-56F0-4DCF-BFBF-4365DE2FC439}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "ref\Microsoft.Extensions.Logging.EventLog.csproj", "{738E67B2-2339-4A33-AE35-27D426CFF6DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "src\Microsoft.Extensions.Logging.EventLog.csproj", "{5EA9057E-5887-4BDB-8785-A752D96D89F9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{71AF748C-E5FD-46C7-9B6E-0643782CE5E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{515F097D-9FFB-4728-8B9E-18CFA6916AD3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{D41F65C3-1D86-44FA-BE07-9E95392E2519}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{85B1195D-CA73-412B-A1DB-66A2ECCFDB60}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{BEA7323C-7078-4F94-8AA6-E16C472DAB2C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{1D99D47C-7A6B-4635-905B-891B3D5AF79B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\ref\System.Diagnostics.EventLog.csproj", "{3D501DAC-12C1-4423-AE63-7157624B65DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\src\System.Diagnostics.EventLog.csproj", "{204919F3-8E5C-4D4D-9E3B-ADFB1E453972}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{E266D70D-9B9E-485D-B739-87E1DD31D11D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{6D536640-48AD-4AA6-A17E-28400260088C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{18516F07-CC8B-4009-9822-0AE194B30407}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CB85C76A-3E2A-4D2A-8B90-92CA5722A170}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{A3593227-191A-4113-9018-3B24F799741F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{E7957981-DA36-4F51-9AA5-71F4D64B4BB0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{8DC023B2-B153-4BC1-9941-1AC124895A13}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{4C910A27-69A1-41EA-ABA1-976AE77DCE42}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{FC75EA09-5D5C-4F63-8686-6ED99F5B503B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{2121E63F-E899-44A4-81B0-E5A427ACB384}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{09CDF30B-DD18-4BA6-BE49-4BD35B225534}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8327A1D5-0383-485D-9430-3E754C4FDDAB}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F15DA9A4-0AB3-4C41-999D-7653B7C5B18F} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {F61FEA80-03CF-4F04-8362-EA64E3E27C58} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {E74341EE-52F2-4649-AB89-5CB3C7D6415F} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {B1BE2665-7E3F-46FB-BCE1-774D5984F76C} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {738E67B2-2339-4A33-AE35-27D426CFF6DC} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {71AF748C-E5FD-46C7-9B6E-0643782CE5E1} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {D41F65C3-1D86-44FA-BE07-9E95392E2519} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {BEA7323C-7078-4F94-8AA6-E16C472DAB2C} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {3D501DAC-12C1-4423-AE63-7157624B65DB} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {E266D70D-9B9E-485D-B739-87E1DD31D11D} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {6D536640-48AD-4AA6-A17E-28400260088C} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {18516F07-CC8B-4009-9822-0AE194B30407} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {FC75EA09-5D5C-4F63-8686-6ED99F5B503B} = {09CDF30B-DD18-4BA6-BE49-4BD35B225534} + {B67E21A5-9B87-46DB-99A1-F04074CBE466} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {A21DEE4B-F49B-4A19-95AC-7589757B8962} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {62D0B220-DABD-4C56-A0E2-640D74465328} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {6C2850C7-56F0-4DCF-BFBF-4365DE2FC439} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {5EA9057E-5887-4BDB-8785-A752D96D89F9} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {515F097D-9FFB-4728-8B9E-18CFA6916AD3} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {85B1195D-CA73-412B-A1DB-66A2ECCFDB60} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {1D99D47C-7A6B-4635-905B-891B3D5AF79B} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {204919F3-8E5C-4D4D-9E3B-ADFB1E453972} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {CB85C76A-3E2A-4D2A-8B90-92CA5722A170} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {A3593227-191A-4113-9018-3B24F799741F} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {E7957981-DA36-4F51-9AA5-71F4D64B4BB0} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {8DC023B2-B153-4BC1-9941-1AC124895A13} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {4C910A27-69A1-41EA-ABA1-976AE77DCE42} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + {2121E63F-E899-44A4-81B0-E5A427ACB384} = {8327A1D5-0383-485D-9430-3E754C4FDDAB} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1F096CC9-6700-47BD-9468-0093880C1EBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F096CC9-6700-47BD-9468-0093880C1EBA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F096CC9-6700-47BD-9468-0093880C1EBA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F096CC9-6700-47BD-9468-0093880C1EBA}.Release|Any CPU.Build.0 = Release|Any CPU - {B31BB7CC-C769-43BF-9C0B-38F8002E8E1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B31BB7CC-C769-43BF-9C0B-38F8002E8E1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B31BB7CC-C769-43BF-9C0B-38F8002E8E1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B31BB7CC-C769-43BF-9C0B-38F8002E8E1E}.Release|Any CPU.Build.0 = Release|Any CPU + {F15DA9A4-0AB3-4C41-999D-7653B7C5B18F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F15DA9A4-0AB3-4C41-999D-7653B7C5B18F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F15DA9A4-0AB3-4C41-999D-7653B7C5B18F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F15DA9A4-0AB3-4C41-999D-7653B7C5B18F}.Release|Any CPU.Build.0 = Release|Any CPU + {B67E21A5-9B87-46DB-99A1-F04074CBE466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B67E21A5-9B87-46DB-99A1-F04074CBE466}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B67E21A5-9B87-46DB-99A1-F04074CBE466}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B67E21A5-9B87-46DB-99A1-F04074CBE466}.Release|Any CPU.Build.0 = Release|Any CPU + {F61FEA80-03CF-4F04-8362-EA64E3E27C58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F61FEA80-03CF-4F04-8362-EA64E3E27C58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F61FEA80-03CF-4F04-8362-EA64E3E27C58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F61FEA80-03CF-4F04-8362-EA64E3E27C58}.Release|Any CPU.Build.0 = Release|Any CPU + {A21DEE4B-F49B-4A19-95AC-7589757B8962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A21DEE4B-F49B-4A19-95AC-7589757B8962}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A21DEE4B-F49B-4A19-95AC-7589757B8962}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A21DEE4B-F49B-4A19-95AC-7589757B8962}.Release|Any CPU.Build.0 = Release|Any CPU + {E74341EE-52F2-4649-AB89-5CB3C7D6415F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E74341EE-52F2-4649-AB89-5CB3C7D6415F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E74341EE-52F2-4649-AB89-5CB3C7D6415F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E74341EE-52F2-4649-AB89-5CB3C7D6415F}.Release|Any CPU.Build.0 = Release|Any CPU + {62D0B220-DABD-4C56-A0E2-640D74465328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62D0B220-DABD-4C56-A0E2-640D74465328}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62D0B220-DABD-4C56-A0E2-640D74465328}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62D0B220-DABD-4C56-A0E2-640D74465328}.Release|Any CPU.Build.0 = Release|Any CPU + {B1BE2665-7E3F-46FB-BCE1-774D5984F76C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1BE2665-7E3F-46FB-BCE1-774D5984F76C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1BE2665-7E3F-46FB-BCE1-774D5984F76C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1BE2665-7E3F-46FB-BCE1-774D5984F76C}.Release|Any CPU.Build.0 = Release|Any CPU + {6C2850C7-56F0-4DCF-BFBF-4365DE2FC439}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C2850C7-56F0-4DCF-BFBF-4365DE2FC439}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C2850C7-56F0-4DCF-BFBF-4365DE2FC439}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C2850C7-56F0-4DCF-BFBF-4365DE2FC439}.Release|Any CPU.Build.0 = Release|Any CPU + {738E67B2-2339-4A33-AE35-27D426CFF6DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {738E67B2-2339-4A33-AE35-27D426CFF6DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {738E67B2-2339-4A33-AE35-27D426CFF6DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {738E67B2-2339-4A33-AE35-27D426CFF6DC}.Release|Any CPU.Build.0 = Release|Any CPU + {5EA9057E-5887-4BDB-8785-A752D96D89F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EA9057E-5887-4BDB-8785-A752D96D89F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EA9057E-5887-4BDB-8785-A752D96D89F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EA9057E-5887-4BDB-8785-A752D96D89F9}.Release|Any CPU.Build.0 = Release|Any CPU + {71AF748C-E5FD-46C7-9B6E-0643782CE5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71AF748C-E5FD-46C7-9B6E-0643782CE5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71AF748C-E5FD-46C7-9B6E-0643782CE5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71AF748C-E5FD-46C7-9B6E-0643782CE5E1}.Release|Any CPU.Build.0 = Release|Any CPU + {515F097D-9FFB-4728-8B9E-18CFA6916AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {515F097D-9FFB-4728-8B9E-18CFA6916AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {515F097D-9FFB-4728-8B9E-18CFA6916AD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {515F097D-9FFB-4728-8B9E-18CFA6916AD3}.Release|Any CPU.Build.0 = Release|Any CPU + {D41F65C3-1D86-44FA-BE07-9E95392E2519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D41F65C3-1D86-44FA-BE07-9E95392E2519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D41F65C3-1D86-44FA-BE07-9E95392E2519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D41F65C3-1D86-44FA-BE07-9E95392E2519}.Release|Any CPU.Build.0 = Release|Any CPU + {85B1195D-CA73-412B-A1DB-66A2ECCFDB60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85B1195D-CA73-412B-A1DB-66A2ECCFDB60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85B1195D-CA73-412B-A1DB-66A2ECCFDB60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85B1195D-CA73-412B-A1DB-66A2ECCFDB60}.Release|Any CPU.Build.0 = Release|Any CPU + {BEA7323C-7078-4F94-8AA6-E16C472DAB2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEA7323C-7078-4F94-8AA6-E16C472DAB2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEA7323C-7078-4F94-8AA6-E16C472DAB2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEA7323C-7078-4F94-8AA6-E16C472DAB2C}.Release|Any CPU.Build.0 = Release|Any CPU + {1D99D47C-7A6B-4635-905B-891B3D5AF79B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D99D47C-7A6B-4635-905B-891B3D5AF79B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D99D47C-7A6B-4635-905B-891B3D5AF79B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D99D47C-7A6B-4635-905B-891B3D5AF79B}.Release|Any CPU.Build.0 = Release|Any CPU + {39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39D5EF56-D677-4F76-A6D6-EBBEC5CCAD8A}.Release|Any CPU.Build.0 = Release|Any CPU + {BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD0C10F6-84AA-4B6F-95A6-E723A4DAC6BD}.Release|Any CPU.Build.0 = Release|Any CPU + {3D501DAC-12C1-4423-AE63-7157624B65DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D501DAC-12C1-4423-AE63-7157624B65DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D501DAC-12C1-4423-AE63-7157624B65DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D501DAC-12C1-4423-AE63-7157624B65DB}.Release|Any CPU.Build.0 = Release|Any CPU + {204919F3-8E5C-4D4D-9E3B-ADFB1E453972}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {204919F3-8E5C-4D4D-9E3B-ADFB1E453972}.Debug|Any CPU.Build.0 = Debug|Any CPU + {204919F3-8E5C-4D4D-9E3B-ADFB1E453972}.Release|Any CPU.ActiveCfg = Release|Any CPU + {204919F3-8E5C-4D4D-9E3B-ADFB1E453972}.Release|Any CPU.Build.0 = Release|Any CPU + {E266D70D-9B9E-485D-B739-87E1DD31D11D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E266D70D-9B9E-485D-B739-87E1DD31D11D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E266D70D-9B9E-485D-B739-87E1DD31D11D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E266D70D-9B9E-485D-B739-87E1DD31D11D}.Release|Any CPU.Build.0 = Release|Any CPU + {6D536640-48AD-4AA6-A17E-28400260088C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D536640-48AD-4AA6-A17E-28400260088C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D536640-48AD-4AA6-A17E-28400260088C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D536640-48AD-4AA6-A17E-28400260088C}.Release|Any CPU.Build.0 = Release|Any CPU + {4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E8A208E-92FC-4A1F-BB9A-D12A6BD513FE}.Release|Any CPU.Build.0 = Release|Any CPU + {18516F07-CC8B-4009-9822-0AE194B30407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18516F07-CC8B-4009-9822-0AE194B30407}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18516F07-CC8B-4009-9822-0AE194B30407}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18516F07-CC8B-4009-9822-0AE194B30407}.Release|Any CPU.Build.0 = Release|Any CPU + {CB85C76A-3E2A-4D2A-8B90-92CA5722A170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB85C76A-3E2A-4D2A-8B90-92CA5722A170}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB85C76A-3E2A-4D2A-8B90-92CA5722A170}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB85C76A-3E2A-4D2A-8B90-92CA5722A170}.Release|Any CPU.Build.0 = Release|Any CPU + {850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {850F20FC-2DA4-4DC1-BE6C-2A2476B4DCD8}.Release|Any CPU.Build.0 = Release|Any CPU + {A3593227-191A-4113-9018-3B24F799741F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3593227-191A-4113-9018-3B24F799741F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3593227-191A-4113-9018-3B24F799741F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3593227-191A-4113-9018-3B24F799741F}.Release|Any CPU.Build.0 = Release|Any CPU + {C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C56CCBD0-3A09-4DD6-8FF8-F72D47ABDEBB}.Release|Any CPU.Build.0 = Release|Any CPU + {E7957981-DA36-4F51-9AA5-71F4D64B4BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7957981-DA36-4F51-9AA5-71F4D64B4BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7957981-DA36-4F51-9AA5-71F4D64B4BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7957981-DA36-4F51-9AA5-71F4D64B4BB0}.Release|Any CPU.Build.0 = Release|Any CPU + {B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8E63A1B-9DA8-4D59-B69B-0EB30AB04D43}.Release|Any CPU.Build.0 = Release|Any CPU + {8DC023B2-B153-4BC1-9941-1AC124895A13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DC023B2-B153-4BC1-9941-1AC124895A13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DC023B2-B153-4BC1-9941-1AC124895A13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DC023B2-B153-4BC1-9941-1AC124895A13}.Release|Any CPU.Build.0 = Release|Any CPU + {4C910A27-69A1-41EA-ABA1-976AE77DCE42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C910A27-69A1-41EA-ABA1-976AE77DCE42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C910A27-69A1-41EA-ABA1-976AE77DCE42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C910A27-69A1-41EA-ABA1-976AE77DCE42}.Release|Any CPU.Build.0 = Release|Any CPU + {FC75EA09-5D5C-4F63-8686-6ED99F5B503B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC75EA09-5D5C-4F63-8686-6ED99F5B503B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC75EA09-5D5C-4F63-8686-6ED99F5B503B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC75EA09-5D5C-4F63-8686-6ED99F5B503B}.Release|Any CPU.Build.0 = Release|Any CPU + {2121E63F-E899-44A4-81B0-E5A427ACB384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2121E63F-E899-44A4-81B0-E5A427ACB384}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2121E63F-E899-44A4-81B0-E5A427ACB384}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2121E63F-E899-44A4-81B0-E5A427ACB384}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {1F096CC9-6700-47BD-9468-0093880C1EBA} = {EBB90F30-FF27-4FE2-A893-AFF3A8A6EA1C} - {B31BB7CC-C769-43BF-9C0B-38F8002E8E1E} = {136EBD1F-008D-4050-A9BB-23B5F71B2BC9} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {ABE9D30E-2F6F-4176-81B3-1DCAF056FE72} + SolutionGuid = {88E9AE9C-34A3-4853-8244-9158CC50902D} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/Microsoft.Extensions.Logging.EventSource.sln b/src/libraries/Microsoft.Extensions.Logging.EventSource/Microsoft.Extensions.Logging.EventSource.sln index 619a30db2394..090c34eefe93 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/Microsoft.Extensions.Logging.EventSource.sln +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/Microsoft.Extensions.Logging.EventSource.sln @@ -1,55 +1,205 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DDE5A3F1-C3F4-4BA7-807B-FC6632E38C19}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ABF4371B-507E-4F4C-85D0-2B5EAA12A976}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C612E0EC-DDF8-4D6F-B775-3EE98721D562}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{EF689C53-9B62-4E17-B412-92FAD527FA59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F476F7BA-2F47-4AAB-AF22-20D8ECBAE2E1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "ref\Microsoft.Extensions.Logging.EventSource.csproj", "{57FC3126-1841-4D21-A52E-7C13807DA68B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{A7E8D7C4-D468-486A-A8EA-93F260CD4FE8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "src\Microsoft.Extensions.Logging.EventSource.csproj", "{D7E3D698-2812-4FF2-98DF-A45C4377E4C4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{AD133460-B832-44BE-BF0A-A699A77FA718}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource.Tests", "tests\Microsoft.Extensions.Logging.EventSource.Tests.csproj", "{F4B45EFE-9DA0-4190-8267-50230E1FF413}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{1CFC41DE-18F8-4993-9B5D-64655D043158}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4CB74585-BCBA-48E4-9532-3D2B343EC9CB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{7834A5FC-A39B-4435-9D8C-2EEABFFA7A84}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{F5B4A3CF-03B5-40A2-BE78-DA6230270113}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{F4A703F8-3D69-4113-A86F-9AD908086092}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "ref\Microsoft.Extensions.Logging.EventSource.csproj", "{39B2002C-CA45-4491-BF24-A683FED4F305}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource", "src\Microsoft.Extensions.Logging.EventSource.csproj", "{85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventSource.Tests", "tests\Microsoft.Extensions.Logging.EventSource.Tests.csproj", "{7939B14F-FDE9-468C-8307-8CC1220EBC2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{BB4E6DC3-4F30-4315-884A-243077FE68C0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{4B621745-2446-4A51-96C1-E1F9D4FCE1E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{61F1BF49-0040-47CC-BBA9-14E80CECD6CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{9B8BD276-447B-4E93-AC2F-2F5E9E355E8C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{B73EC56E-61AB-4857-903D-F5C4BDDD2357}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{E06E4463-281C-46C1-A4D6-4593742C1CBC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{C8624F19-AA35-4551-BCB9-CE391692C7B6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{23F45D4C-4E33-4334-A5BF-D34E24165E0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{5EAEB159-6569-4D3F-B7E4-313F8EBED61B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9A16DEC0-1F88-4335-95B3-D7923FEB5283}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F207A3E6-1434-40B8-9DB9-473D29FEA1E4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{0D52354A-817C-43D5-B693-7D8D231CC77F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{5A956452-F322-4C4F-8689-D2B425764293}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{68A18B95-6F5E-4893-A786-484FC3D9861E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2101ED3B-0EAA-48EF-96AE-66A285B1C6D6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{31168EFB-F1C4-44F7-A66D-7009EE9B7F77}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {ABF4371B-507E-4F4C-85D0-2B5EAA12A976} = {68A18B95-6F5E-4893-A786-484FC3D9861E} + {7939B14F-FDE9-468C-8307-8CC1220EBC2A} = {68A18B95-6F5E-4893-A786-484FC3D9861E} + {EF689C53-9B62-4E17-B412-92FAD527FA59} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {A7E8D7C4-D468-486A-A8EA-93F260CD4FE8} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {1CFC41DE-18F8-4993-9B5D-64655D043158} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {F5B4A3CF-03B5-40A2-BE78-DA6230270113} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {39B2002C-CA45-4491-BF24-A683FED4F305} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {BB4E6DC3-4F30-4315-884A-243077FE68C0} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {61F1BF49-0040-47CC-BBA9-14E80CECD6CC} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {B73EC56E-61AB-4857-903D-F5C4BDDD2357} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {C8624F19-AA35-4551-BCB9-CE391692C7B6} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {5EAEB159-6569-4D3F-B7E4-313F8EBED61B} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {F207A3E6-1434-40B8-9DB9-473D29FEA1E4} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {0D52354A-817C-43D5-B693-7D8D231CC77F} = {2101ED3B-0EAA-48EF-96AE-66A285B1C6D6} + {9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {AD133460-B832-44BE-BF0A-A699A77FA718} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {7834A5FC-A39B-4435-9D8C-2EEABFFA7A84} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {F4A703F8-3D69-4113-A86F-9AD908086092} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {4B621745-2446-4A51-96C1-E1F9D4FCE1E3} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {9B8BD276-447B-4E93-AC2F-2F5E9E355E8C} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {E06E4463-281C-46C1-A4D6-4593742C1CBC} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {23F45D4C-4E33-4334-A5BF-D34E24165E0B} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {9A16DEC0-1F88-4335-95B3-D7923FEB5283} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + {5A956452-F322-4C4F-8689-D2B425764293} = {31168EFB-F1C4-44F7-A66D-7009EE9B7F77} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {57FC3126-1841-4D21-A52E-7C13807DA68B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57FC3126-1841-4D21-A52E-7C13807DA68B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57FC3126-1841-4D21-A52E-7C13807DA68B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57FC3126-1841-4D21-A52E-7C13807DA68B}.Release|Any CPU.Build.0 = Release|Any CPU - {D7E3D698-2812-4FF2-98DF-A45C4377E4C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D7E3D698-2812-4FF2-98DF-A45C4377E4C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D7E3D698-2812-4FF2-98DF-A45C4377E4C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D7E3D698-2812-4FF2-98DF-A45C4377E4C4}.Release|Any CPU.Build.0 = Release|Any CPU - {F4B45EFE-9DA0-4190-8267-50230E1FF413}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4B45EFE-9DA0-4190-8267-50230E1FF413}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4B45EFE-9DA0-4190-8267-50230E1FF413}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4B45EFE-9DA0-4190-8267-50230E1FF413}.Release|Any CPU.Build.0 = Release|Any CPU - {4CB74585-BCBA-48E4-9532-3D2B343EC9CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CB74585-BCBA-48E4-9532-3D2B343EC9CB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CB74585-BCBA-48E4-9532-3D2B343EC9CB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4CB74585-BCBA-48E4-9532-3D2B343EC9CB}.Release|Any CPU.Build.0 = Release|Any CPU + {ABF4371B-507E-4F4C-85D0-2B5EAA12A976}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABF4371B-507E-4F4C-85D0-2B5EAA12A976}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABF4371B-507E-4F4C-85D0-2B5EAA12A976}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABF4371B-507E-4F4C-85D0-2B5EAA12A976}.Release|Any CPU.Build.0 = Release|Any CPU + {EF689C53-9B62-4E17-B412-92FAD527FA59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF689C53-9B62-4E17-B412-92FAD527FA59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF689C53-9B62-4E17-B412-92FAD527FA59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF689C53-9B62-4E17-B412-92FAD527FA59}.Release|Any CPU.Build.0 = Release|Any CPU + {9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B5DD499-7FE6-4E35-8084-EAF9D0E4CFDE}.Release|Any CPU.Build.0 = Release|Any CPU + {A7E8D7C4-D468-486A-A8EA-93F260CD4FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7E8D7C4-D468-486A-A8EA-93F260CD4FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7E8D7C4-D468-486A-A8EA-93F260CD4FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7E8D7C4-D468-486A-A8EA-93F260CD4FE8}.Release|Any CPU.Build.0 = Release|Any CPU + {AD133460-B832-44BE-BF0A-A699A77FA718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD133460-B832-44BE-BF0A-A699A77FA718}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD133460-B832-44BE-BF0A-A699A77FA718}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD133460-B832-44BE-BF0A-A699A77FA718}.Release|Any CPU.Build.0 = Release|Any CPU + {1CFC41DE-18F8-4993-9B5D-64655D043158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CFC41DE-18F8-4993-9B5D-64655D043158}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CFC41DE-18F8-4993-9B5D-64655D043158}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CFC41DE-18F8-4993-9B5D-64655D043158}.Release|Any CPU.Build.0 = Release|Any CPU + {7834A5FC-A39B-4435-9D8C-2EEABFFA7A84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7834A5FC-A39B-4435-9D8C-2EEABFFA7A84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7834A5FC-A39B-4435-9D8C-2EEABFFA7A84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7834A5FC-A39B-4435-9D8C-2EEABFFA7A84}.Release|Any CPU.Build.0 = Release|Any CPU + {F5B4A3CF-03B5-40A2-BE78-DA6230270113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5B4A3CF-03B5-40A2-BE78-DA6230270113}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5B4A3CF-03B5-40A2-BE78-DA6230270113}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5B4A3CF-03B5-40A2-BE78-DA6230270113}.Release|Any CPU.Build.0 = Release|Any CPU + {F4A703F8-3D69-4113-A86F-9AD908086092}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4A703F8-3D69-4113-A86F-9AD908086092}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4A703F8-3D69-4113-A86F-9AD908086092}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4A703F8-3D69-4113-A86F-9AD908086092}.Release|Any CPU.Build.0 = Release|Any CPU + {39B2002C-CA45-4491-BF24-A683FED4F305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39B2002C-CA45-4491-BF24-A683FED4F305}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39B2002C-CA45-4491-BF24-A683FED4F305}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39B2002C-CA45-4491-BF24-A683FED4F305}.Release|Any CPU.Build.0 = Release|Any CPU + {85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85D5D364-5D5F-4D9F-A6DA-1EF4C9E5503F}.Release|Any CPU.Build.0 = Release|Any CPU + {7939B14F-FDE9-468C-8307-8CC1220EBC2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7939B14F-FDE9-468C-8307-8CC1220EBC2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7939B14F-FDE9-468C-8307-8CC1220EBC2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7939B14F-FDE9-468C-8307-8CC1220EBC2A}.Release|Any CPU.Build.0 = Release|Any CPU + {BB4E6DC3-4F30-4315-884A-243077FE68C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB4E6DC3-4F30-4315-884A-243077FE68C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB4E6DC3-4F30-4315-884A-243077FE68C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB4E6DC3-4F30-4315-884A-243077FE68C0}.Release|Any CPU.Build.0 = Release|Any CPU + {4B621745-2446-4A51-96C1-E1F9D4FCE1E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B621745-2446-4A51-96C1-E1F9D4FCE1E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B621745-2446-4A51-96C1-E1F9D4FCE1E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B621745-2446-4A51-96C1-E1F9D4FCE1E3}.Release|Any CPU.Build.0 = Release|Any CPU + {61F1BF49-0040-47CC-BBA9-14E80CECD6CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61F1BF49-0040-47CC-BBA9-14E80CECD6CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61F1BF49-0040-47CC-BBA9-14E80CECD6CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61F1BF49-0040-47CC-BBA9-14E80CECD6CC}.Release|Any CPU.Build.0 = Release|Any CPU + {9B8BD276-447B-4E93-AC2F-2F5E9E355E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B8BD276-447B-4E93-AC2F-2F5E9E355E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B8BD276-447B-4E93-AC2F-2F5E9E355E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B8BD276-447B-4E93-AC2F-2F5E9E355E8C}.Release|Any CPU.Build.0 = Release|Any CPU + {B73EC56E-61AB-4857-903D-F5C4BDDD2357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B73EC56E-61AB-4857-903D-F5C4BDDD2357}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B73EC56E-61AB-4857-903D-F5C4BDDD2357}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B73EC56E-61AB-4857-903D-F5C4BDDD2357}.Release|Any CPU.Build.0 = Release|Any CPU + {E06E4463-281C-46C1-A4D6-4593742C1CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E06E4463-281C-46C1-A4D6-4593742C1CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E06E4463-281C-46C1-A4D6-4593742C1CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E06E4463-281C-46C1-A4D6-4593742C1CBC}.Release|Any CPU.Build.0 = Release|Any CPU + {C8624F19-AA35-4551-BCB9-CE391692C7B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8624F19-AA35-4551-BCB9-CE391692C7B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8624F19-AA35-4551-BCB9-CE391692C7B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8624F19-AA35-4551-BCB9-CE391692C7B6}.Release|Any CPU.Build.0 = Release|Any CPU + {23F45D4C-4E33-4334-A5BF-D34E24165E0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23F45D4C-4E33-4334-A5BF-D34E24165E0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23F45D4C-4E33-4334-A5BF-D34E24165E0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23F45D4C-4E33-4334-A5BF-D34E24165E0B}.Release|Any CPU.Build.0 = Release|Any CPU + {5EAEB159-6569-4D3F-B7E4-313F8EBED61B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EAEB159-6569-4D3F-B7E4-313F8EBED61B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EAEB159-6569-4D3F-B7E4-313F8EBED61B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EAEB159-6569-4D3F-B7E4-313F8EBED61B}.Release|Any CPU.Build.0 = Release|Any CPU + {9A16DEC0-1F88-4335-95B3-D7923FEB5283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A16DEC0-1F88-4335-95B3-D7923FEB5283}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A16DEC0-1F88-4335-95B3-D7923FEB5283}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A16DEC0-1F88-4335-95B3-D7923FEB5283}.Release|Any CPU.Build.0 = Release|Any CPU + {F207A3E6-1434-40B8-9DB9-473D29FEA1E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F207A3E6-1434-40B8-9DB9-473D29FEA1E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F207A3E6-1434-40B8-9DB9-473D29FEA1E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F207A3E6-1434-40B8-9DB9-473D29FEA1E4}.Release|Any CPU.Build.0 = Release|Any CPU + {0D52354A-817C-43D5-B693-7D8D231CC77F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D52354A-817C-43D5-B693-7D8D231CC77F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D52354A-817C-43D5-B693-7D8D231CC77F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D52354A-817C-43D5-B693-7D8D231CC77F}.Release|Any CPU.Build.0 = Release|Any CPU + {50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50CC33E5-CB2C-4CFB-9CDE-BBD41B30FB86}.Release|Any CPU.Build.0 = Release|Any CPU + {5A956452-F322-4C4F-8689-D2B425764293}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A956452-F322-4C4F-8689-D2B425764293}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A956452-F322-4C4F-8689-D2B425764293}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A956452-F322-4C4F-8689-D2B425764293}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {57FC3126-1841-4D21-A52E-7C13807DA68B} = {DDE5A3F1-C3F4-4BA7-807B-FC6632E38C19} - {D7E3D698-2812-4FF2-98DF-A45C4377E4C4} = {C612E0EC-DDF8-4D6F-B775-3EE98721D562} - {F4B45EFE-9DA0-4190-8267-50230E1FF413} = {F476F7BA-2F47-4AAB-AF22-20D8ECBAE2E1} - {4CB74585-BCBA-48E4-9532-3D2B343EC9CB} = {F476F7BA-2F47-4AAB-AF22-20D8ECBAE2E1} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A390B1E5-F45D-479F-B295-661C927B203B} + SolutionGuid = {67B715CE-2E67-4605-BFB0-CA65F345C3A5} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/Microsoft.Extensions.Logging.TraceSource.sln b/src/libraries/Microsoft.Extensions.Logging.TraceSource/Microsoft.Extensions.Logging.TraceSource.sln index 11e78ce6edab..6f8d23c969e9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/Microsoft.Extensions.Logging.TraceSource.sln +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/Microsoft.Extensions.Logging.TraceSource.sln @@ -1,39 +1,154 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3441AD43-0D99-4D20-BAD3-E1092FA28C2B}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{D72D9E03-5346-4E9E-9617-45BE57AB95E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CAC44973-1D67-49D4-9E58-E69AEC83F506}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{1B7B708C-F860-478E-B3D4-1CB70E71A440}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "ref\Microsoft.Extensions.Logging.TraceSource.csproj", "{AF94E394-D0C7-4352-B72E-40A11D70F73B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "src\Microsoft.Extensions.Logging.TraceSource.csproj", "{132D9B27-ADE6-4E26-A430-EF34A2A135C3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{A9250A96-9B27-46C5-A043-11F67D63B128}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{C0F647A3-A299-441F-BE78-67022E0683E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{A64CC82B-B781-4469-B009-49A43A0A2A96}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{367922CE-A24E-4977-89BE-D1F2F678F8B2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{F63AB9DB-6E62-4FEC-BA06-E146615C08AC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "ref\Microsoft.Extensions.Logging.TraceSource.csproj", "{2863DE0C-F23B-4A27-8C59-F42A9B27AFB8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "src\Microsoft.Extensions.Logging.TraceSource.csproj", "{BC92BF65-8FA0-49C0-911F-426F21090774}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\ref\Microsoft.Extensions.Logging.csproj", "{EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "..\Microsoft.Extensions.Logging\src\Microsoft.Extensions.Logging.csproj", "{C0A5172A-162E-4CD8-B4E4-C8AE137EBC64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{15D8CD42-77C9-4DEC-9C53-E6C6C766A646}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{3F1FF12D-6CAF-409D-BF8D-E299646B545C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{59BC50A1-510F-44A4-A507-AEC051EA8908}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{D72BF608-9C7C-41BE-9288-22BA49AF954F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{5D92F57D-42F4-4B37-907C-25D06233FDBB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9635EB28-5AEA-40A1-B59E-A2C7CA21376F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DA0453C7-375C-457B-AF9A-D322E33F3F1B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{41FF013C-0FEC-4D79-A6CD-0C7BDE613223}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D72D9E03-5346-4E9E-9617-45BE57AB95E0} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {C0F647A3-A299-441F-BE78-67022E0683E6} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {367922CE-A24E-4977-89BE-D1F2F678F8B2} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {2863DE0C-F23B-4A27-8C59-F42A9B27AFB8} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {3F1FF12D-6CAF-409D-BF8D-E299646B545C} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {5D92F57D-42F4-4B37-907C-25D06233FDBB} = {DA0453C7-375C-457B-AF9A-D322E33F3F1B} + {1B7B708C-F860-478E-B3D4-1CB70E71A440} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {A9250A96-9B27-46C5-A043-11F67D63B128} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {A64CC82B-B781-4469-B009-49A43A0A2A96} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {F63AB9DB-6E62-4FEC-BA06-E146615C08AC} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {BC92BF65-8FA0-49C0-911F-426F21090774} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {C0A5172A-162E-4CD8-B4E4-C8AE137EBC64} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {15D8CD42-77C9-4DEC-9C53-E6C6C766A646} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {59BC50A1-510F-44A4-A507-AEC051EA8908} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {D72BF608-9C7C-41BE-9288-22BA49AF954F} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + {9635EB28-5AEA-40A1-B59E-A2C7CA21376F} = {41FF013C-0FEC-4D79-A6CD-0C7BDE613223} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AF94E394-D0C7-4352-B72E-40A11D70F73B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF94E394-D0C7-4352-B72E-40A11D70F73B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF94E394-D0C7-4352-B72E-40A11D70F73B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF94E394-D0C7-4352-B72E-40A11D70F73B}.Release|Any CPU.Build.0 = Release|Any CPU - {132D9B27-ADE6-4E26-A430-EF34A2A135C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {132D9B27-ADE6-4E26-A430-EF34A2A135C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {132D9B27-ADE6-4E26-A430-EF34A2A135C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {132D9B27-ADE6-4E26-A430-EF34A2A135C3}.Release|Any CPU.Build.0 = Release|Any CPU + {D72D9E03-5346-4E9E-9617-45BE57AB95E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D72D9E03-5346-4E9E-9617-45BE57AB95E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D72D9E03-5346-4E9E-9617-45BE57AB95E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D72D9E03-5346-4E9E-9617-45BE57AB95E0}.Release|Any CPU.Build.0 = Release|Any CPU + {1B7B708C-F860-478E-B3D4-1CB70E71A440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B7B708C-F860-478E-B3D4-1CB70E71A440}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B7B708C-F860-478E-B3D4-1CB70E71A440}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B7B708C-F860-478E-B3D4-1CB70E71A440}.Release|Any CPU.Build.0 = Release|Any CPU + {B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1D3E68C-EE6F-4A2F-A753-F45D5BC4CF55}.Release|Any CPU.Build.0 = Release|Any CPU + {A9250A96-9B27-46C5-A043-11F67D63B128}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9250A96-9B27-46C5-A043-11F67D63B128}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9250A96-9B27-46C5-A043-11F67D63B128}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9250A96-9B27-46C5-A043-11F67D63B128}.Release|Any CPU.Build.0 = Release|Any CPU + {C0F647A3-A299-441F-BE78-67022E0683E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0F647A3-A299-441F-BE78-67022E0683E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0F647A3-A299-441F-BE78-67022E0683E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0F647A3-A299-441F-BE78-67022E0683E6}.Release|Any CPU.Build.0 = Release|Any CPU + {A64CC82B-B781-4469-B009-49A43A0A2A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A64CC82B-B781-4469-B009-49A43A0A2A96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A64CC82B-B781-4469-B009-49A43A0A2A96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A64CC82B-B781-4469-B009-49A43A0A2A96}.Release|Any CPU.Build.0 = Release|Any CPU + {367922CE-A24E-4977-89BE-D1F2F678F8B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {367922CE-A24E-4977-89BE-D1F2F678F8B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {367922CE-A24E-4977-89BE-D1F2F678F8B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {367922CE-A24E-4977-89BE-D1F2F678F8B2}.Release|Any CPU.Build.0 = Release|Any CPU + {F63AB9DB-6E62-4FEC-BA06-E146615C08AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F63AB9DB-6E62-4FEC-BA06-E146615C08AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F63AB9DB-6E62-4FEC-BA06-E146615C08AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F63AB9DB-6E62-4FEC-BA06-E146615C08AC}.Release|Any CPU.Build.0 = Release|Any CPU + {2863DE0C-F23B-4A27-8C59-F42A9B27AFB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2863DE0C-F23B-4A27-8C59-F42A9B27AFB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2863DE0C-F23B-4A27-8C59-F42A9B27AFB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2863DE0C-F23B-4A27-8C59-F42A9B27AFB8}.Release|Any CPU.Build.0 = Release|Any CPU + {BC92BF65-8FA0-49C0-911F-426F21090774}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC92BF65-8FA0-49C0-911F-426F21090774}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC92BF65-8FA0-49C0-911F-426F21090774}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC92BF65-8FA0-49C0-911F-426F21090774}.Release|Any CPU.Build.0 = Release|Any CPU + {EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEC70BE6-E9E6-45FB-A24C-8BEAE4E14CE6}.Release|Any CPU.Build.0 = Release|Any CPU + {C0A5172A-162E-4CD8-B4E4-C8AE137EBC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0A5172A-162E-4CD8-B4E4-C8AE137EBC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0A5172A-162E-4CD8-B4E4-C8AE137EBC64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0A5172A-162E-4CD8-B4E4-C8AE137EBC64}.Release|Any CPU.Build.0 = Release|Any CPU + {0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BC6E16E-E4E8-4159-9A0B-B92C9D0CFB92}.Release|Any CPU.Build.0 = Release|Any CPU + {15D8CD42-77C9-4DEC-9C53-E6C6C766A646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15D8CD42-77C9-4DEC-9C53-E6C6C766A646}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15D8CD42-77C9-4DEC-9C53-E6C6C766A646}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15D8CD42-77C9-4DEC-9C53-E6C6C766A646}.Release|Any CPU.Build.0 = Release|Any CPU + {3F1FF12D-6CAF-409D-BF8D-E299646B545C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F1FF12D-6CAF-409D-BF8D-E299646B545C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F1FF12D-6CAF-409D-BF8D-E299646B545C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F1FF12D-6CAF-409D-BF8D-E299646B545C}.Release|Any CPU.Build.0 = Release|Any CPU + {59BC50A1-510F-44A4-A507-AEC051EA8908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59BC50A1-510F-44A4-A507-AEC051EA8908}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59BC50A1-510F-44A4-A507-AEC051EA8908}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59BC50A1-510F-44A4-A507-AEC051EA8908}.Release|Any CPU.Build.0 = Release|Any CPU + {D72BF608-9C7C-41BE-9288-22BA49AF954F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D72BF608-9C7C-41BE-9288-22BA49AF954F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D72BF608-9C7C-41BE-9288-22BA49AF954F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D72BF608-9C7C-41BE-9288-22BA49AF954F}.Release|Any CPU.Build.0 = Release|Any CPU + {5D92F57D-42F4-4B37-907C-25D06233FDBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D92F57D-42F4-4B37-907C-25D06233FDBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D92F57D-42F4-4B37-907C-25D06233FDBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D92F57D-42F4-4B37-907C-25D06233FDBB}.Release|Any CPU.Build.0 = Release|Any CPU + {9635EB28-5AEA-40A1-B59E-A2C7CA21376F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9635EB28-5AEA-40A1-B59E-A2C7CA21376F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9635EB28-5AEA-40A1-B59E-A2C7CA21376F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9635EB28-5AEA-40A1-B59E-A2C7CA21376F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {AF94E394-D0C7-4352-B72E-40A11D70F73B} = {3441AD43-0D99-4D20-BAD3-E1092FA28C2B} - {132D9B27-ADE6-4E26-A430-EF34A2A135C3} = {CAC44973-1D67-49D4-9E58-E69AEC83F506} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {64D59B3E-1084-4386-B97B-054437D35FAD} + SolutionGuid = {3375EACB-CFC1-4E7B-8A64-C346BD35E354} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging/Microsoft.Extensions.Logging.sln b/src/libraries/Microsoft.Extensions.Logging/Microsoft.Extensions.Logging.sln index 77da2e194757..67300c5da44e 100644 --- a/src/libraries/Microsoft.Extensions.Logging/Microsoft.Extensions.Logging.sln +++ b/src/libraries/Microsoft.Extensions.Logging/Microsoft.Extensions.Logging.sln @@ -1,68 +1,485 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{506843F3-0B42-4654-887D-350335DFDE54}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7F66E50D-B9E1-4229-85CE-61BCA70EA568}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9AD546DC-EDBD-46DB-B5E6-880A5DE0E07B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{C4B04D68-8344-41D2-B46C-3BB5F31799EC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{787403B8-4C97-440D-A171-ED3725B2E16A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "ref\Microsoft.Extensions.Logging.csproj", "{77C35C58-003F-46AB-AECC-20E19E99D4B2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{9384A49A-C77F-44E1-A18C-E4EE831DE7F0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "src\Microsoft.Extensions.Logging.csproj", "{589F92D4-A2DE-4BC4-870E-777F0F768A62}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DI.Common", "DI.Common", "{1F3C5022-ADFF-455C-B1B1-224CC13961DF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{86FE36DC-1F35-4939-8937-18541614EF6D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{70168406-EAF0-47A8-B5C4-12B34686738F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{D698D832-B15A-4C2E-8C6A-D8F97044000A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Tests", "tests\Common\Microsoft.Extensions.Logging.Tests.csproj", "{57A1A1A3-A351-4733-912D-6FF725C269AC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\ref\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Testing.Tests", "tests\DI.Common\Common\tests\Microsoft.Extensions.Logging.Testing.Tests.csproj", "{AB968316-DB05-4237-8925-E074E34353E3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.FileExtensions", "..\Microsoft.Extensions.Configuration.FileExtensions\src\Microsoft.Extensions.Configuration.FileExtensions.csproj", "{AB6345AD-EF69-42DD-BC90-5A7FE394358F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{23079270-3FED-4C99-9F13-637B79150A95}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\ref\Microsoft.Extensions.Configuration.Json.csproj", "{6FDFE85B-20C3-493F-AF29-B39718761A85}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Json", "..\Microsoft.Extensions.Configuration.Json\src\Microsoft.Extensions.Configuration.Json.csproj", "{CF5604F2-EDD6-4A63-8E60-E327D91BA532}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{D87888FB-98CD-4A24-AC6D-2AC89322D0F5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{6104AAC7-3F96-4674-9A26-A2D6DFEC0D76}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{4B33E878-3451-4B2E-9AC5-849F77EE02D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{2F7FA324-F7E6-4D71-891F-780B56DD9D3E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{BECB0DC7-4194-4C4F-B821-8C8410303013}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{335D852A-CE30-4038-9AD4-B70B268BB69F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\ref\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{FBD6DA27-FBFB-42AB-A56C-7D0147A15028}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Abstractions", "..\Microsoft.Extensions.FileProviders.Abstractions\src\Microsoft.Extensions.FileProviders.Abstractions.csproj", "{31E317F8-F766-4EC3-8101-2D92CDB407CD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\ref\Microsoft.Extensions.FileProviders.Physical.csproj", "{B3A732E4-93F1-4827-8B39-4119DEF3E4E5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Physical", "..\Microsoft.Extensions.FileProviders.Physical\src\Microsoft.Extensions.FileProviders.Physical.csproj", "{5F0CF40F-D54D-4101-94EA-8FE7F9C843CB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\ref\Microsoft.Extensions.FileSystemGlobbing.csproj", "{F61AC077-D30A-4F65-9831-5F9DC23B3561}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileSystemGlobbing", "..\Microsoft.Extensions.FileSystemGlobbing\src\Microsoft.Extensions.FileSystemGlobbing.csproj", "{7C562B37-19E5-44BE-85D5-15FFA9FAEF5A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\ref\Microsoft.Extensions.Logging.Abstractions.csproj", "{5CC86773-7762-4FB7-9B6E-F4002F286AD4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Abstractions", "..\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj", "{4BEF5648-8DBF-4E16-B6E6-6F80694E140D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\ref\Microsoft.Extensions.Logging.Configuration.csproj", "{E68B2719-B7A0-46F4-A5F0-72BB03BF8167}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Configuration", "..\Microsoft.Extensions.Logging.Configuration\src\Microsoft.Extensions.Logging.Configuration.csproj", "{9D96B3BD-B371-4E44-A43F-50B8EEBEC889}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "..\Microsoft.Extensions.Logging.Console\ref\Microsoft.Extensions.Logging.Console.csproj", "{3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Console", "..\Microsoft.Extensions.Logging.Console\src\Microsoft.Extensions.Logging.Console.csproj", "{F700E4AF-073D-4C1D-A8C2-84E744EBC374}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "..\Microsoft.Extensions.Logging.Debug\ref\Microsoft.Extensions.Logging.Debug.csproj", "{E4BF0F7E-3891-419A-BEA4-0B6485BFEE79}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Debug", "..\Microsoft.Extensions.Logging.Debug\src\Microsoft.Extensions.Logging.Debug.csproj", "{25E16BD1-98CA-482E-87BB-3A2A596503C7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "..\Microsoft.Extensions.Logging.EventLog\ref\Microsoft.Extensions.Logging.EventLog.csproj", "{048A4E28-14AA-4BA5-A647-25B21E1C4AAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.EventLog", "..\Microsoft.Extensions.Logging.EventLog\src\Microsoft.Extensions.Logging.EventLog.csproj", "{4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "..\Microsoft.Extensions.Logging.TraceSource\ref\Microsoft.Extensions.Logging.TraceSource.csproj", "{997A2A76-84D0-4F39-BC09-BD5DD03C2A07}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.TraceSource", "..\Microsoft.Extensions.Logging.TraceSource\src\Microsoft.Extensions.Logging.TraceSource.csproj", "{5A2CE5B3-A089-47FC-A1E0-455C54102C2D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "ref\Microsoft.Extensions.Logging.csproj", "{9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging", "src\Microsoft.Extensions.Logging.csproj", "{91E18134-CEEA-4E42-9620-C4120EF34AEE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Tests", "tests\Common\Microsoft.Extensions.Logging.Tests.csproj", "{8BA3C396-9F2E-4671-BC07-221DC714B855}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.Testing.Tests", "tests\DI.Common\Common\tests\Microsoft.Extensions.Logging.Testing.Tests.csproj", "{78D7E710-1AE5-408B-AE64-99382A819D09}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{49DDAE0B-EF27-4B28-8554-82F85234F48C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{02437B60-112D-49D7-8C95-6118A147CC2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{4FAEF817-3333-4813-86FF-F0255E000F7D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{56738F24-0431-4782-98E2-2DC4B77BF831}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{E41BE1F8-AB36-414F-A914-62C7E1915473}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{3999B134-4509-44FC-B0B1-3C475D350301}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{50DC8AF9-337B-425C-8D5F-1DCB0CAA152C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "..\System.Diagnostics.DiagnosticSource\src\System.Diagnostics.DiagnosticSource.csproj", "{7CB59805-CD93-4D2A-BD21-A97820DD35B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\ref\System.Diagnostics.EventLog.csproj", "{DD948842-60C4-4385-9F0B-9B2702379A9E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\src\System.Diagnostics.EventLog.csproj", "{425C299F-7D53-49EC-92D0-22B77BEA12D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{9EB3E70F-09B0-4DCB-8963-6A05E5B8E660}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{05F000EA-3FB9-46D5-9504-E10E2B344643}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{AFEEA249-A93E-4DDC-A3BF-D00C37678FF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{012BA90D-8171-4C14-A811-5B1C7B239B9E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BDD17B26-4F68-417D-9194-E9FC80E78A22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CEC828F9-B934-4215-BB03-53D026558ED5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{76C11164-C5E0-4A52-AAF1-0AFF7F5D6012}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{D7124B9F-9A42-4AA1-981C-31EDCCEA28A0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E1999D6F-80E4-420A-A5EB-4554B0294758}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{A0EFB762-B4CF-4A47-9B1C-B62C674C4487}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encodings.Web", "..\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj", "{B5B30447-25D0-42C0-920A-092247C95664}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Json", "..\System.Text.Json\src\System.Text.Json.csproj", "{34C22E86-B0A3-457D-B8D9-7CF47AAF2570}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{504464B5-B163-4D6B-A113-52DDC78A401D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{7467E5B1-7454-4277-A84F-E8BE34A80CE4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{1E1B25F0-7B14-4798-BBF4-156A52949CBA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{88957302-AFDD-4923-BF5A-336EAB5F28B7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{62569F09-F901-4240-B3E1-E2FF90544D74}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{35D3ECF9-E321-4AA6-BF5B-41E7AC54A620}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7F66E50D-B9E1-4229-85CE-61BCA70EA568} = {88957302-AFDD-4923-BF5A-336EAB5F28B7} + {8BA3C396-9F2E-4671-BC07-221DC714B855} = {88957302-AFDD-4923-BF5A-336EAB5F28B7} + {78D7E710-1AE5-408B-AE64-99382A819D09} = {88957302-AFDD-4923-BF5A-336EAB5F28B7} + {C4B04D68-8344-41D2-B46C-3BB5F31799EC} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {9384A49A-C77F-44E1-A18C-E4EE831DE7F0} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {86FE36DC-1F35-4939-8937-18541614EF6D} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {6FDFE85B-20C3-493F-AF29-B39718761A85} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {D87888FB-98CD-4A24-AC6D-2AC89322D0F5} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {4B33E878-3451-4B2E-9AC5-849F77EE02D3} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {BECB0DC7-4194-4C4F-B821-8C8410303013} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {FBD6DA27-FBFB-42AB-A56C-7D0147A15028} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {B3A732E4-93F1-4827-8B39-4119DEF3E4E5} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {F61AC077-D30A-4F65-9831-5F9DC23B3561} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {5CC86773-7762-4FB7-9B6E-F4002F286AD4} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {E68B2719-B7A0-46F4-A5F0-72BB03BF8167} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {E4BF0F7E-3891-419A-BEA4-0B6485BFEE79} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {048A4E28-14AA-4BA5-A647-25B21E1C4AAA} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {997A2A76-84D0-4F39-BC09-BD5DD03C2A07} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {49DDAE0B-EF27-4B28-8554-82F85234F48C} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {56738F24-0431-4782-98E2-2DC4B77BF831} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {3999B134-4509-44FC-B0B1-3C475D350301} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {DD948842-60C4-4385-9F0B-9B2702379A9E} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {9EB3E70F-09B0-4DCB-8963-6A05E5B8E660} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {05F000EA-3FB9-46D5-9504-E10E2B344643} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {012BA90D-8171-4C14-A811-5B1C7B239B9E} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {CEC828F9-B934-4215-BB03-53D026558ED5} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {E1999D6F-80E4-420A-A5EB-4554B0294758} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {7467E5B1-7454-4277-A84F-E8BE34A80CE4} = {62569F09-F901-4240-B3E1-E2FF90544D74} + {2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {D698D832-B15A-4C2E-8C6A-D8F97044000A} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {AB6345AD-EF69-42DD-BC90-5A7FE394358F} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {CF5604F2-EDD6-4A63-8E60-E327D91BA532} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {6104AAC7-3F96-4674-9A26-A2D6DFEC0D76} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {2F7FA324-F7E6-4D71-891F-780B56DD9D3E} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {335D852A-CE30-4038-9AD4-B70B268BB69F} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {31E317F8-F766-4EC3-8101-2D92CDB407CD} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {5F0CF40F-D54D-4101-94EA-8FE7F9C843CB} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {7C562B37-19E5-44BE-85D5-15FFA9FAEF5A} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {4BEF5648-8DBF-4E16-B6E6-6F80694E140D} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {9D96B3BD-B371-4E44-A43F-50B8EEBEC889} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {F700E4AF-073D-4C1D-A8C2-84E744EBC374} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {25E16BD1-98CA-482E-87BB-3A2A596503C7} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {5A2CE5B3-A089-47FC-A1E0-455C54102C2D} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {91E18134-CEEA-4E42-9620-C4120EF34AEE} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {02437B60-112D-49D7-8C95-6118A147CC2A} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {4FAEF817-3333-4813-86FF-F0255E000F7D} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {E41BE1F8-AB36-414F-A914-62C7E1915473} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {50DC8AF9-337B-425C-8D5F-1DCB0CAA152C} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {7CB59805-CD93-4D2A-BD21-A97820DD35B0} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {425C299F-7D53-49EC-92D0-22B77BEA12D2} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {AFEEA249-A93E-4DDC-A3BF-D00C37678FF9} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {BDD17B26-4F68-417D-9194-E9FC80E78A22} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {76C11164-C5E0-4A52-AAF1-0AFF7F5D6012} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {D7124B9F-9A42-4AA1-981C-31EDCCEA28A0} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {A0EFB762-B4CF-4A47-9B1C-B62C674C4487} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {B5B30447-25D0-42C0-920A-092247C95664} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {34C22E86-B0A3-457D-B8D9-7CF47AAF2570} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {504464B5-B163-4D6B-A113-52DDC78A401D} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + {1E1B25F0-7B14-4798-BBF4-156A52949CBA} = {35D3ECF9-E321-4AA6-BF5B-41E7AC54A620} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {77C35C58-003F-46AB-AECC-20E19E99D4B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77C35C58-003F-46AB-AECC-20E19E99D4B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77C35C58-003F-46AB-AECC-20E19E99D4B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77C35C58-003F-46AB-AECC-20E19E99D4B2}.Release|Any CPU.Build.0 = Release|Any CPU - {589F92D4-A2DE-4BC4-870E-777F0F768A62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {589F92D4-A2DE-4BC4-870E-777F0F768A62}.Debug|Any CPU.Build.0 = Debug|Any CPU - {589F92D4-A2DE-4BC4-870E-777F0F768A62}.Release|Any CPU.ActiveCfg = Release|Any CPU - {589F92D4-A2DE-4BC4-870E-777F0F768A62}.Release|Any CPU.Build.0 = Release|Any CPU - {57A1A1A3-A351-4733-912D-6FF725C269AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57A1A1A3-A351-4733-912D-6FF725C269AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57A1A1A3-A351-4733-912D-6FF725C269AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57A1A1A3-A351-4733-912D-6FF725C269AC}.Release|Any CPU.Build.0 = Release|Any CPU - {AB968316-DB05-4237-8925-E074E34353E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AB968316-DB05-4237-8925-E074E34353E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AB968316-DB05-4237-8925-E074E34353E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AB968316-DB05-4237-8925-E074E34353E3}.Release|Any CPU.Build.0 = Release|Any CPU - {23079270-3FED-4C99-9F13-637B79150A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23079270-3FED-4C99-9F13-637B79150A95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23079270-3FED-4C99-9F13-637B79150A95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23079270-3FED-4C99-9F13-637B79150A95}.Release|Any CPU.Build.0 = Release|Any CPU + {7F66E50D-B9E1-4229-85CE-61BCA70EA568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F66E50D-B9E1-4229-85CE-61BCA70EA568}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F66E50D-B9E1-4229-85CE-61BCA70EA568}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F66E50D-B9E1-4229-85CE-61BCA70EA568}.Release|Any CPU.Build.0 = Release|Any CPU + {C4B04D68-8344-41D2-B46C-3BB5F31799EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4B04D68-8344-41D2-B46C-3BB5F31799EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4B04D68-8344-41D2-B46C-3BB5F31799EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4B04D68-8344-41D2-B46C-3BB5F31799EC}.Release|Any CPU.Build.0 = Release|Any CPU + {2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F2183DF-AAE1-4BCD-99E2-A45AC5C824AD}.Release|Any CPU.Build.0 = Release|Any CPU + {9384A49A-C77F-44E1-A18C-E4EE831DE7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9384A49A-C77F-44E1-A18C-E4EE831DE7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9384A49A-C77F-44E1-A18C-E4EE831DE7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9384A49A-C77F-44E1-A18C-E4EE831DE7F0}.Release|Any CPU.Build.0 = Release|Any CPU + {70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70DC5F6E-AAE0-46FC-A483-F5379BF8C6D6}.Release|Any CPU.Build.0 = Release|Any CPU + {86FE36DC-1F35-4939-8937-18541614EF6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86FE36DC-1F35-4939-8937-18541614EF6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86FE36DC-1F35-4939-8937-18541614EF6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86FE36DC-1F35-4939-8937-18541614EF6D}.Release|Any CPU.Build.0 = Release|Any CPU + {D698D832-B15A-4C2E-8C6A-D8F97044000A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D698D832-B15A-4C2E-8C6A-D8F97044000A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D698D832-B15A-4C2E-8C6A-D8F97044000A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D698D832-B15A-4C2E-8C6A-D8F97044000A}.Release|Any CPU.Build.0 = Release|Any CPU + {443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {443CE9ED-69A5-4B76-A67B-F1BB32F2D1E7}.Release|Any CPU.Build.0 = Release|Any CPU + {AB6345AD-EF69-42DD-BC90-5A7FE394358F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB6345AD-EF69-42DD-BC90-5A7FE394358F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB6345AD-EF69-42DD-BC90-5A7FE394358F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB6345AD-EF69-42DD-BC90-5A7FE394358F}.Release|Any CPU.Build.0 = Release|Any CPU + {6FDFE85B-20C3-493F-AF29-B39718761A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FDFE85B-20C3-493F-AF29-B39718761A85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FDFE85B-20C3-493F-AF29-B39718761A85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FDFE85B-20C3-493F-AF29-B39718761A85}.Release|Any CPU.Build.0 = Release|Any CPU + {CF5604F2-EDD6-4A63-8E60-E327D91BA532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF5604F2-EDD6-4A63-8E60-E327D91BA532}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF5604F2-EDD6-4A63-8E60-E327D91BA532}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF5604F2-EDD6-4A63-8E60-E327D91BA532}.Release|Any CPU.Build.0 = Release|Any CPU + {D87888FB-98CD-4A24-AC6D-2AC89322D0F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D87888FB-98CD-4A24-AC6D-2AC89322D0F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D87888FB-98CD-4A24-AC6D-2AC89322D0F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D87888FB-98CD-4A24-AC6D-2AC89322D0F5}.Release|Any CPU.Build.0 = Release|Any CPU + {6104AAC7-3F96-4674-9A26-A2D6DFEC0D76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6104AAC7-3F96-4674-9A26-A2D6DFEC0D76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6104AAC7-3F96-4674-9A26-A2D6DFEC0D76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6104AAC7-3F96-4674-9A26-A2D6DFEC0D76}.Release|Any CPU.Build.0 = Release|Any CPU + {4B33E878-3451-4B2E-9AC5-849F77EE02D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B33E878-3451-4B2E-9AC5-849F77EE02D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B33E878-3451-4B2E-9AC5-849F77EE02D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B33E878-3451-4B2E-9AC5-849F77EE02D3}.Release|Any CPU.Build.0 = Release|Any CPU + {2F7FA324-F7E6-4D71-891F-780B56DD9D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F7FA324-F7E6-4D71-891F-780B56DD9D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F7FA324-F7E6-4D71-891F-780B56DD9D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F7FA324-F7E6-4D71-891F-780B56DD9D3E}.Release|Any CPU.Build.0 = Release|Any CPU + {BECB0DC7-4194-4C4F-B821-8C8410303013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BECB0DC7-4194-4C4F-B821-8C8410303013}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BECB0DC7-4194-4C4F-B821-8C8410303013}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BECB0DC7-4194-4C4F-B821-8C8410303013}.Release|Any CPU.Build.0 = Release|Any CPU + {335D852A-CE30-4038-9AD4-B70B268BB69F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {335D852A-CE30-4038-9AD4-B70B268BB69F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {335D852A-CE30-4038-9AD4-B70B268BB69F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {335D852A-CE30-4038-9AD4-B70B268BB69F}.Release|Any CPU.Build.0 = Release|Any CPU + {FBD6DA27-FBFB-42AB-A56C-7D0147A15028}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBD6DA27-FBFB-42AB-A56C-7D0147A15028}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBD6DA27-FBFB-42AB-A56C-7D0147A15028}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBD6DA27-FBFB-42AB-A56C-7D0147A15028}.Release|Any CPU.Build.0 = Release|Any CPU + {31E317F8-F766-4EC3-8101-2D92CDB407CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31E317F8-F766-4EC3-8101-2D92CDB407CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31E317F8-F766-4EC3-8101-2D92CDB407CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31E317F8-F766-4EC3-8101-2D92CDB407CD}.Release|Any CPU.Build.0 = Release|Any CPU + {B3A732E4-93F1-4827-8B39-4119DEF3E4E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3A732E4-93F1-4827-8B39-4119DEF3E4E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3A732E4-93F1-4827-8B39-4119DEF3E4E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3A732E4-93F1-4827-8B39-4119DEF3E4E5}.Release|Any CPU.Build.0 = Release|Any CPU + {5F0CF40F-D54D-4101-94EA-8FE7F9C843CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F0CF40F-D54D-4101-94EA-8FE7F9C843CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F0CF40F-D54D-4101-94EA-8FE7F9C843CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F0CF40F-D54D-4101-94EA-8FE7F9C843CB}.Release|Any CPU.Build.0 = Release|Any CPU + {F61AC077-D30A-4F65-9831-5F9DC23B3561}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F61AC077-D30A-4F65-9831-5F9DC23B3561}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F61AC077-D30A-4F65-9831-5F9DC23B3561}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F61AC077-D30A-4F65-9831-5F9DC23B3561}.Release|Any CPU.Build.0 = Release|Any CPU + {7C562B37-19E5-44BE-85D5-15FFA9FAEF5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C562B37-19E5-44BE-85D5-15FFA9FAEF5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C562B37-19E5-44BE-85D5-15FFA9FAEF5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C562B37-19E5-44BE-85D5-15FFA9FAEF5A}.Release|Any CPU.Build.0 = Release|Any CPU + {5CC86773-7762-4FB7-9B6E-F4002F286AD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5CC86773-7762-4FB7-9B6E-F4002F286AD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5CC86773-7762-4FB7-9B6E-F4002F286AD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5CC86773-7762-4FB7-9B6E-F4002F286AD4}.Release|Any CPU.Build.0 = Release|Any CPU + {4BEF5648-8DBF-4E16-B6E6-6F80694E140D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BEF5648-8DBF-4E16-B6E6-6F80694E140D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BEF5648-8DBF-4E16-B6E6-6F80694E140D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BEF5648-8DBF-4E16-B6E6-6F80694E140D}.Release|Any CPU.Build.0 = Release|Any CPU + {E68B2719-B7A0-46F4-A5F0-72BB03BF8167}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E68B2719-B7A0-46F4-A5F0-72BB03BF8167}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E68B2719-B7A0-46F4-A5F0-72BB03BF8167}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E68B2719-B7A0-46F4-A5F0-72BB03BF8167}.Release|Any CPU.Build.0 = Release|Any CPU + {9D96B3BD-B371-4E44-A43F-50B8EEBEC889}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D96B3BD-B371-4E44-A43F-50B8EEBEC889}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D96B3BD-B371-4E44-A43F-50B8EEBEC889}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D96B3BD-B371-4E44-A43F-50B8EEBEC889}.Release|Any CPU.Build.0 = Release|Any CPU + {3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F0FF3F0-514D-44A6-BFF5-2CDE790E7B8F}.Release|Any CPU.Build.0 = Release|Any CPU + {F700E4AF-073D-4C1D-A8C2-84E744EBC374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F700E4AF-073D-4C1D-A8C2-84E744EBC374}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F700E4AF-073D-4C1D-A8C2-84E744EBC374}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F700E4AF-073D-4C1D-A8C2-84E744EBC374}.Release|Any CPU.Build.0 = Release|Any CPU + {E4BF0F7E-3891-419A-BEA4-0B6485BFEE79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4BF0F7E-3891-419A-BEA4-0B6485BFEE79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4BF0F7E-3891-419A-BEA4-0B6485BFEE79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4BF0F7E-3891-419A-BEA4-0B6485BFEE79}.Release|Any CPU.Build.0 = Release|Any CPU + {25E16BD1-98CA-482E-87BB-3A2A596503C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25E16BD1-98CA-482E-87BB-3A2A596503C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25E16BD1-98CA-482E-87BB-3A2A596503C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25E16BD1-98CA-482E-87BB-3A2A596503C7}.Release|Any CPU.Build.0 = Release|Any CPU + {048A4E28-14AA-4BA5-A647-25B21E1C4AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {048A4E28-14AA-4BA5-A647-25B21E1C4AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {048A4E28-14AA-4BA5-A647-25B21E1C4AAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {048A4E28-14AA-4BA5-A647-25B21E1C4AAA}.Release|Any CPU.Build.0 = Release|Any CPU + {4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D4CFD62-79A1-4D30-9E63-BB8C68E0B5BB}.Release|Any CPU.Build.0 = Release|Any CPU + {997A2A76-84D0-4F39-BC09-BD5DD03C2A07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {997A2A76-84D0-4F39-BC09-BD5DD03C2A07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {997A2A76-84D0-4F39-BC09-BD5DD03C2A07}.Release|Any CPU.ActiveCfg = Release|Any CPU + {997A2A76-84D0-4F39-BC09-BD5DD03C2A07}.Release|Any CPU.Build.0 = Release|Any CPU + {5A2CE5B3-A089-47FC-A1E0-455C54102C2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A2CE5B3-A089-47FC-A1E0-455C54102C2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A2CE5B3-A089-47FC-A1E0-455C54102C2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A2CE5B3-A089-47FC-A1E0-455C54102C2D}.Release|Any CPU.Build.0 = Release|Any CPU + {9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9693C6EE-0DA9-4AA0-84DB-00EA5B3BB8DA}.Release|Any CPU.Build.0 = Release|Any CPU + {91E18134-CEEA-4E42-9620-C4120EF34AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91E18134-CEEA-4E42-9620-C4120EF34AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91E18134-CEEA-4E42-9620-C4120EF34AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91E18134-CEEA-4E42-9620-C4120EF34AEE}.Release|Any CPU.Build.0 = Release|Any CPU + {8BA3C396-9F2E-4671-BC07-221DC714B855}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BA3C396-9F2E-4671-BC07-221DC714B855}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BA3C396-9F2E-4671-BC07-221DC714B855}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BA3C396-9F2E-4671-BC07-221DC714B855}.Release|Any CPU.Build.0 = Release|Any CPU + {78D7E710-1AE5-408B-AE64-99382A819D09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78D7E710-1AE5-408B-AE64-99382A819D09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78D7E710-1AE5-408B-AE64-99382A819D09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78D7E710-1AE5-408B-AE64-99382A819D09}.Release|Any CPU.Build.0 = Release|Any CPU + {49DDAE0B-EF27-4B28-8554-82F85234F48C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49DDAE0B-EF27-4B28-8554-82F85234F48C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49DDAE0B-EF27-4B28-8554-82F85234F48C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49DDAE0B-EF27-4B28-8554-82F85234F48C}.Release|Any CPU.Build.0 = Release|Any CPU + {02437B60-112D-49D7-8C95-6118A147CC2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02437B60-112D-49D7-8C95-6118A147CC2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02437B60-112D-49D7-8C95-6118A147CC2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02437B60-112D-49D7-8C95-6118A147CC2A}.Release|Any CPU.Build.0 = Release|Any CPU + {17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17CBE7CC-5614-4CEB-8498-FC81B4A0FEF6}.Release|Any CPU.Build.0 = Release|Any CPU + {4FAEF817-3333-4813-86FF-F0255E000F7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FAEF817-3333-4813-86FF-F0255E000F7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FAEF817-3333-4813-86FF-F0255E000F7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FAEF817-3333-4813-86FF-F0255E000F7D}.Release|Any CPU.Build.0 = Release|Any CPU + {56738F24-0431-4782-98E2-2DC4B77BF831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56738F24-0431-4782-98E2-2DC4B77BF831}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56738F24-0431-4782-98E2-2DC4B77BF831}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56738F24-0431-4782-98E2-2DC4B77BF831}.Release|Any CPU.Build.0 = Release|Any CPU + {E41BE1F8-AB36-414F-A914-62C7E1915473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E41BE1F8-AB36-414F-A914-62C7E1915473}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E41BE1F8-AB36-414F-A914-62C7E1915473}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E41BE1F8-AB36-414F-A914-62C7E1915473}.Release|Any CPU.Build.0 = Release|Any CPU + {3999B134-4509-44FC-B0B1-3C475D350301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3999B134-4509-44FC-B0B1-3C475D350301}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3999B134-4509-44FC-B0B1-3C475D350301}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3999B134-4509-44FC-B0B1-3C475D350301}.Release|Any CPU.Build.0 = Release|Any CPU + {50DC8AF9-337B-425C-8D5F-1DCB0CAA152C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50DC8AF9-337B-425C-8D5F-1DCB0CAA152C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50DC8AF9-337B-425C-8D5F-1DCB0CAA152C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50DC8AF9-337B-425C-8D5F-1DCB0CAA152C}.Release|Any CPU.Build.0 = Release|Any CPU + {7CB59805-CD93-4D2A-BD21-A97820DD35B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CB59805-CD93-4D2A-BD21-A97820DD35B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CB59805-CD93-4D2A-BD21-A97820DD35B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CB59805-CD93-4D2A-BD21-A97820DD35B0}.Release|Any CPU.Build.0 = Release|Any CPU + {DD948842-60C4-4385-9F0B-9B2702379A9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD948842-60C4-4385-9F0B-9B2702379A9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD948842-60C4-4385-9F0B-9B2702379A9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD948842-60C4-4385-9F0B-9B2702379A9E}.Release|Any CPU.Build.0 = Release|Any CPU + {425C299F-7D53-49EC-92D0-22B77BEA12D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {425C299F-7D53-49EC-92D0-22B77BEA12D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {425C299F-7D53-49EC-92D0-22B77BEA12D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {425C299F-7D53-49EC-92D0-22B77BEA12D2}.Release|Any CPU.Build.0 = Release|Any CPU + {9EB3E70F-09B0-4DCB-8963-6A05E5B8E660}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EB3E70F-09B0-4DCB-8963-6A05E5B8E660}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EB3E70F-09B0-4DCB-8963-6A05E5B8E660}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EB3E70F-09B0-4DCB-8963-6A05E5B8E660}.Release|Any CPU.Build.0 = Release|Any CPU + {05F000EA-3FB9-46D5-9504-E10E2B344643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05F000EA-3FB9-46D5-9504-E10E2B344643}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05F000EA-3FB9-46D5-9504-E10E2B344643}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05F000EA-3FB9-46D5-9504-E10E2B344643}.Release|Any CPU.Build.0 = Release|Any CPU + {AFEEA249-A93E-4DDC-A3BF-D00C37678FF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFEEA249-A93E-4DDC-A3BF-D00C37678FF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFEEA249-A93E-4DDC-A3BF-D00C37678FF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFEEA249-A93E-4DDC-A3BF-D00C37678FF9}.Release|Any CPU.Build.0 = Release|Any CPU + {012BA90D-8171-4C14-A811-5B1C7B239B9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {012BA90D-8171-4C14-A811-5B1C7B239B9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {012BA90D-8171-4C14-A811-5B1C7B239B9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {012BA90D-8171-4C14-A811-5B1C7B239B9E}.Release|Any CPU.Build.0 = Release|Any CPU + {BDD17B26-4F68-417D-9194-E9FC80E78A22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDD17B26-4F68-417D-9194-E9FC80E78A22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDD17B26-4F68-417D-9194-E9FC80E78A22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDD17B26-4F68-417D-9194-E9FC80E78A22}.Release|Any CPU.Build.0 = Release|Any CPU + {CEC828F9-B934-4215-BB03-53D026558ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEC828F9-B934-4215-BB03-53D026558ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEC828F9-B934-4215-BB03-53D026558ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEC828F9-B934-4215-BB03-53D026558ED5}.Release|Any CPU.Build.0 = Release|Any CPU + {76C11164-C5E0-4A52-AAF1-0AFF7F5D6012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76C11164-C5E0-4A52-AAF1-0AFF7F5D6012}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76C11164-C5E0-4A52-AAF1-0AFF7F5D6012}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76C11164-C5E0-4A52-AAF1-0AFF7F5D6012}.Release|Any CPU.Build.0 = Release|Any CPU + {DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDE4AAB2-E249-4A1A-A0CB-4C1AF440B620}.Release|Any CPU.Build.0 = Release|Any CPU + {D7124B9F-9A42-4AA1-981C-31EDCCEA28A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7124B9F-9A42-4AA1-981C-31EDCCEA28A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7124B9F-9A42-4AA1-981C-31EDCCEA28A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7124B9F-9A42-4AA1-981C-31EDCCEA28A0}.Release|Any CPU.Build.0 = Release|Any CPU + {E1999D6F-80E4-420A-A5EB-4554B0294758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1999D6F-80E4-420A-A5EB-4554B0294758}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1999D6F-80E4-420A-A5EB-4554B0294758}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1999D6F-80E4-420A-A5EB-4554B0294758}.Release|Any CPU.Build.0 = Release|Any CPU + {A0EFB762-B4CF-4A47-9B1C-B62C674C4487}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0EFB762-B4CF-4A47-9B1C-B62C674C4487}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0EFB762-B4CF-4A47-9B1C-B62C674C4487}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0EFB762-B4CF-4A47-9B1C-B62C674C4487}.Release|Any CPU.Build.0 = Release|Any CPU + {B5B30447-25D0-42C0-920A-092247C95664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5B30447-25D0-42C0-920A-092247C95664}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5B30447-25D0-42C0-920A-092247C95664}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5B30447-25D0-42C0-920A-092247C95664}.Release|Any CPU.Build.0 = Release|Any CPU + {34C22E86-B0A3-457D-B8D9-7CF47AAF2570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34C22E86-B0A3-457D-B8D9-7CF47AAF2570}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34C22E86-B0A3-457D-B8D9-7CF47AAF2570}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34C22E86-B0A3-457D-B8D9-7CF47AAF2570}.Release|Any CPU.Build.0 = Release|Any CPU + {504464B5-B163-4D6B-A113-52DDC78A401D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {504464B5-B163-4D6B-A113-52DDC78A401D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {504464B5-B163-4D6B-A113-52DDC78A401D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {504464B5-B163-4D6B-A113-52DDC78A401D}.Release|Any CPU.Build.0 = Release|Any CPU + {7467E5B1-7454-4277-A84F-E8BE34A80CE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7467E5B1-7454-4277-A84F-E8BE34A80CE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7467E5B1-7454-4277-A84F-E8BE34A80CE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7467E5B1-7454-4277-A84F-E8BE34A80CE4}.Release|Any CPU.Build.0 = Release|Any CPU + {1E1B25F0-7B14-4798-BBF4-156A52949CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E1B25F0-7B14-4798-BBF4-156A52949CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E1B25F0-7B14-4798-BBF4-156A52949CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E1B25F0-7B14-4798-BBF4-156A52949CBA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {77C35C58-003F-46AB-AECC-20E19E99D4B2} = {506843F3-0B42-4654-887D-350335DFDE54} - {589F92D4-A2DE-4BC4-870E-777F0F768A62} = {9AD546DC-EDBD-46DB-B5E6-880A5DE0E07B} - {1F3C5022-ADFF-455C-B1B1-224CC13961DF} = {787403B8-4C97-440D-A171-ED3725B2E16A} - {70168406-EAF0-47A8-B5C4-12B34686738F} = {787403B8-4C97-440D-A171-ED3725B2E16A} - {57A1A1A3-A351-4733-912D-6FF725C269AC} = {70168406-EAF0-47A8-B5C4-12B34686738F} - {AB968316-DB05-4237-8925-E074E34353E3} = {1F3C5022-ADFF-455C-B1B1-224CC13961DF} - {23079270-3FED-4C99-9F13-637B79150A95} = {787403B8-4C97-440D-A171-ED3725B2E16A} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7B8E1A89-1EAA-4C3D-AD1B-EFF67D45FEEB} + SolutionGuid = {B57B7C13-740F-4482-B7B6-B5E87014ACB1} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Logging/src/LoggerFactory.cs b/src/libraries/Microsoft.Extensions.Logging/src/LoggerFactory.cs index 86615b4db06c..3ee0e0f07f1d 100644 --- a/src/libraries/Microsoft.Extensions.Logging/src/LoggerFactory.cs +++ b/src/libraries/Microsoft.Extensions.Logging/src/LoggerFactory.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -28,7 +27,7 @@ public class LoggerFactory : ILoggerFactory /// /// Creates a new instance. /// - public LoggerFactory() : this(Enumerable.Empty()) + public LoggerFactory() : this(Array.Empty()) { } diff --git a/src/libraries/Microsoft.Extensions.Logging/src/LoggerRuleSelector.cs b/src/libraries/Microsoft.Extensions.Logging/src/LoggerRuleSelector.cs index 1f3aa5240668..7ebce26bbfc3 100644 --- a/src/libraries/Microsoft.Extensions.Logging/src/LoggerRuleSelector.cs +++ b/src/libraries/Microsoft.Extensions.Logging/src/LoggerRuleSelector.cs @@ -7,8 +7,6 @@ namespace Microsoft.Extensions.Logging { internal class LoggerRuleSelector { - private static readonly char[] WildcardChar = { '*' }; - public void Select(LoggerFilterOptions options, Type providerType, string category, out LogLevel? minLevel, out Func filter) { filter = null; @@ -40,7 +38,6 @@ public void Select(LoggerFilterOptions options, Type providerType, string catego } } - private static bool IsBetter(LoggerFilterRule rule, LoggerFilterRule current, string logger, string category) { // Skip rules with inapplicable type or category @@ -49,19 +46,32 @@ private static bool IsBetter(LoggerFilterRule rule, LoggerFilterRule current, st return false; } - if (rule.CategoryName != null) + string categoryName = rule.CategoryName; + if (categoryName != null) { - string[] categoryParts = rule.CategoryName.Split(WildcardChar); - if (categoryParts.Length > 2) + const char WildcardChar = '*'; + + int wildcardIndex = categoryName.IndexOf(WildcardChar); + if (wildcardIndex != -1 && + categoryName.IndexOf(WildcardChar, wildcardIndex + 1) != -1) { throw new InvalidOperationException("Only one wildcard character is allowed in category name."); } - string prefix = categoryParts[0]; - string suffix = categoryParts.Length > 1 ? categoryParts[1] : string.Empty; + ReadOnlySpan prefix, suffix; + if (wildcardIndex == -1) + { + prefix = categoryName.AsSpan(); + suffix = default; + } + else + { + prefix = categoryName.AsSpan(0, wildcardIndex); + suffix = categoryName.AsSpan(wildcardIndex + 1); + } - if (!category.StartsWith(prefix, StringComparison.OrdinalIgnoreCase) || - !category.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) + if (!category.AsSpan().StartsWith(prefix, StringComparison.OrdinalIgnoreCase) || + !category.AsSpan().EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) { return false; } diff --git a/src/libraries/Microsoft.Extensions.Options.ConfigurationExtensions/Microsoft.Extensions.Options.ConfigurationExtensions.sln b/src/libraries/Microsoft.Extensions.Options.ConfigurationExtensions/Microsoft.Extensions.Options.ConfigurationExtensions.sln index 4782d11b90ad..18784c43b7a1 100644 --- a/src/libraries/Microsoft.Extensions.Options.ConfigurationExtensions/Microsoft.Extensions.Options.ConfigurationExtensions.sln +++ b/src/libraries/Microsoft.Extensions.Options.ConfigurationExtensions/Microsoft.Extensions.Options.ConfigurationExtensions.sln @@ -1,76 +1,198 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9EDF28B3-F998-47FE-B23A-753205641B49}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E6903177-761B-4A40-BD67-85095C73119D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BF3EE9AA-4B66-4410-B1D2-3971169F1E40}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{F0815ADD-0115-4368-886E-2135355BC439}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{3654E473-6D57-4442-A5F6-5642C09BDC95}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{D4C213E7-336F-4601-9F92-1D632D082422}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{871819C7-366E-47E9-B737-ADB9715B0BCA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4CB60D51-6D36-49DB-A3AC-B45664F39EFC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{294A92FD-4500-4691-8309-6D11E5E6E6CB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions.Tests", "tests\Microsoft.Extensions.Options.ConfigurationExtensions.Tests.csproj", "{5F41C8C2-663D-4D57-9211-2F495D7DFACE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3EFE3DA9-F864-40A3-8892-899D731CC027}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{7AC93447-67F2-4445-86D2-E13D52156BAE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{D8AC9F6D-95FA-4377-A867-FF75683393AA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{DD82A650-1266-4BB0-8670-E42EE74B8E8A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{1F88377A-7C91-466E-9351-1B0AE0DF78AB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{D53344C9-58C5-4A2B-8182-74A48763A8FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{D71B5E1B-8289-4B46-B679-80E32145EFA9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{D56AC2F3-EDE5-44A6-A106-15682F84BFFE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{682D3494-5A45-4201-B981-19AF7C5319E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{B451D5F7-0592-40C1-B101-17259BBF11F3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{E9C0F645-340E-4310-95A3-4971B0272546}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{4E761C7D-24C5-430B-AD84-1634164C6AF4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions.Tests", "tests\Microsoft.Extensions.Options.ConfigurationExtensions.Tests.csproj", "{94A222A2-4E1F-4013-80E0-0435E22B0F61}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{AAB799C3-8D63-4334-A9AE-D645EC848174}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{E8051516-B4B6-479E-BA8D-F3355B169F8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{616C55BF-AE90-47F2-A005-980CADDBD990}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FBACD20C-BA4A-430E-84CF-E0F9325C3DD9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0175BBDC-9C0F-4648-AE71-C9A2304EA6F8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E5447C9E-2B11-4D59-9159-7734785A9B5A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{86254E0A-1477-4DBF-A2A2-235E09B89B37}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F6D5D48E-8D70-42B3-8FF3-D57C30380F13}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8CC18098-E6BD-472D-B751-14FE93814F9C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{89537832-1CE5-4C59-B5BD-05CE687B1024}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{32A55790-26C9-4C6A-B0A6-AAED8488F368}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E6903177-761B-4A40-BD67-85095C73119D} = {8CC18098-E6BD-472D-B751-14FE93814F9C} + {94A222A2-4E1F-4013-80E0-0435E22B0F61} = {8CC18098-E6BD-472D-B751-14FE93814F9C} + {12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {871819C7-366E-47E9-B737-ADB9715B0BCA} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {DD82A650-1266-4BB0-8670-E42EE74B8E8A} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {D71B5E1B-8289-4B46-B679-80E32145EFA9} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {682D3494-5A45-4201-B981-19AF7C5319E8} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {E9C0F645-340E-4310-95A3-4971B0272546} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {E8051516-B4B6-479E-BA8D-F3355B169F8D} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {FBACD20C-BA4A-430E-84CF-E0F9325C3DD9} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {0175BBDC-9C0F-4648-AE71-C9A2304EA6F8} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {86254E0A-1477-4DBF-A2A2-235E09B89B37} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {F6D5D48E-8D70-42B3-8FF3-D57C30380F13} = {89537832-1CE5-4C59-B5BD-05CE687B1024} + {3654E473-6D57-4442-A5F6-5642C09BDC95} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {294A92FD-4500-4691-8309-6D11E5E6E6CB} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {7AC93447-67F2-4445-86D2-E13D52156BAE} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {D56AC2F3-EDE5-44A6-A106-15682F84BFFE} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {B451D5F7-0592-40C1-B101-17259BBF11F3} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {4E761C7D-24C5-430B-AD84-1634164C6AF4} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {AAB799C3-8D63-4334-A9AE-D645EC848174} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {616C55BF-AE90-47F2-A005-980CADDBD990} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + {E5447C9E-2B11-4D59-9159-7734785A9B5A} = {32A55790-26C9-4C6A-B0A6-AAED8488F368} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0815ADD-0115-4368-886E-2135355BC439}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0815ADD-0115-4368-886E-2135355BC439}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0815ADD-0115-4368-886E-2135355BC439}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0815ADD-0115-4368-886E-2135355BC439}.Release|Any CPU.Build.0 = Release|Any CPU - {D4C213E7-336F-4601-9F92-1D632D082422}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4C213E7-336F-4601-9F92-1D632D082422}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4C213E7-336F-4601-9F92-1D632D082422}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4C213E7-336F-4601-9F92-1D632D082422}.Release|Any CPU.Build.0 = Release|Any CPU - {5F41C8C2-663D-4D57-9211-2F495D7DFACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F41C8C2-663D-4D57-9211-2F495D7DFACE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5F41C8C2-663D-4D57-9211-2F495D7DFACE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F41C8C2-663D-4D57-9211-2F495D7DFACE}.Release|Any CPU.Build.0 = Release|Any CPU - {3EFE3DA9-F864-40A3-8892-899D731CC027}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3EFE3DA9-F864-40A3-8892-899D731CC027}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3EFE3DA9-F864-40A3-8892-899D731CC027}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3EFE3DA9-F864-40A3-8892-899D731CC027}.Release|Any CPU.Build.0 = Release|Any CPU - {D8AC9F6D-95FA-4377-A867-FF75683393AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8AC9F6D-95FA-4377-A867-FF75683393AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8AC9F6D-95FA-4377-A867-FF75683393AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8AC9F6D-95FA-4377-A867-FF75683393AA}.Release|Any CPU.Build.0 = Release|Any CPU - {1F88377A-7C91-466E-9351-1B0AE0DF78AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F88377A-7C91-466E-9351-1B0AE0DF78AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F88377A-7C91-466E-9351-1B0AE0DF78AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F88377A-7C91-466E-9351-1B0AE0DF78AB}.Release|Any CPU.Build.0 = Release|Any CPU - {D53344C9-58C5-4A2B-8182-74A48763A8FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D53344C9-58C5-4A2B-8182-74A48763A8FE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D53344C9-58C5-4A2B-8182-74A48763A8FE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D53344C9-58C5-4A2B-8182-74A48763A8FE}.Release|Any CPU.Build.0 = Release|Any CPU + {E6903177-761B-4A40-BD67-85095C73119D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6903177-761B-4A40-BD67-85095C73119D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6903177-761B-4A40-BD67-85095C73119D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6903177-761B-4A40-BD67-85095C73119D}.Release|Any CPU.Build.0 = Release|Any CPU + {12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12321E9E-FB5F-4D8C-8F9A-C03E1862EF8B}.Release|Any CPU.Build.0 = Release|Any CPU + {3654E473-6D57-4442-A5F6-5642C09BDC95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3654E473-6D57-4442-A5F6-5642C09BDC95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3654E473-6D57-4442-A5F6-5642C09BDC95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3654E473-6D57-4442-A5F6-5642C09BDC95}.Release|Any CPU.Build.0 = Release|Any CPU + {871819C7-366E-47E9-B737-ADB9715B0BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {871819C7-366E-47E9-B737-ADB9715B0BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {871819C7-366E-47E9-B737-ADB9715B0BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {871819C7-366E-47E9-B737-ADB9715B0BCA}.Release|Any CPU.Build.0 = Release|Any CPU + {294A92FD-4500-4691-8309-6D11E5E6E6CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {294A92FD-4500-4691-8309-6D11E5E6E6CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {294A92FD-4500-4691-8309-6D11E5E6E6CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {294A92FD-4500-4691-8309-6D11E5E6E6CB}.Release|Any CPU.Build.0 = Release|Any CPU + {3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C53F87D-1638-4F8B-99E0-5FDA13A5AEC2}.Release|Any CPU.Build.0 = Release|Any CPU + {7AC93447-67F2-4445-86D2-E13D52156BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AC93447-67F2-4445-86D2-E13D52156BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AC93447-67F2-4445-86D2-E13D52156BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AC93447-67F2-4445-86D2-E13D52156BAE}.Release|Any CPU.Build.0 = Release|Any CPU + {DD82A650-1266-4BB0-8670-E42EE74B8E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD82A650-1266-4BB0-8670-E42EE74B8E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD82A650-1266-4BB0-8670-E42EE74B8E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD82A650-1266-4BB0-8670-E42EE74B8E8A}.Release|Any CPU.Build.0 = Release|Any CPU + {D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2E0380B-1815-43BF-8E5D-C21EF3BCAE1B}.Release|Any CPU.Build.0 = Release|Any CPU + {D71B5E1B-8289-4B46-B679-80E32145EFA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D71B5E1B-8289-4B46-B679-80E32145EFA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D71B5E1B-8289-4B46-B679-80E32145EFA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D71B5E1B-8289-4B46-B679-80E32145EFA9}.Release|Any CPU.Build.0 = Release|Any CPU + {D56AC2F3-EDE5-44A6-A106-15682F84BFFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D56AC2F3-EDE5-44A6-A106-15682F84BFFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D56AC2F3-EDE5-44A6-A106-15682F84BFFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D56AC2F3-EDE5-44A6-A106-15682F84BFFE}.Release|Any CPU.Build.0 = Release|Any CPU + {682D3494-5A45-4201-B981-19AF7C5319E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {682D3494-5A45-4201-B981-19AF7C5319E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {682D3494-5A45-4201-B981-19AF7C5319E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {682D3494-5A45-4201-B981-19AF7C5319E8}.Release|Any CPU.Build.0 = Release|Any CPU + {B451D5F7-0592-40C1-B101-17259BBF11F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B451D5F7-0592-40C1-B101-17259BBF11F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B451D5F7-0592-40C1-B101-17259BBF11F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B451D5F7-0592-40C1-B101-17259BBF11F3}.Release|Any CPU.Build.0 = Release|Any CPU + {E9C0F645-340E-4310-95A3-4971B0272546}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9C0F645-340E-4310-95A3-4971B0272546}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9C0F645-340E-4310-95A3-4971B0272546}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9C0F645-340E-4310-95A3-4971B0272546}.Release|Any CPU.Build.0 = Release|Any CPU + {4E761C7D-24C5-430B-AD84-1634164C6AF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E761C7D-24C5-430B-AD84-1634164C6AF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E761C7D-24C5-430B-AD84-1634164C6AF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E761C7D-24C5-430B-AD84-1634164C6AF4}.Release|Any CPU.Build.0 = Release|Any CPU + {94A222A2-4E1F-4013-80E0-0435E22B0F61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94A222A2-4E1F-4013-80E0-0435E22B0F61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94A222A2-4E1F-4013-80E0-0435E22B0F61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94A222A2-4E1F-4013-80E0-0435E22B0F61}.Release|Any CPU.Build.0 = Release|Any CPU + {3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C4B33AA-C88E-4E36-B06D-AC8BE4FDCB5B}.Release|Any CPU.Build.0 = Release|Any CPU + {AAB799C3-8D63-4334-A9AE-D645EC848174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAB799C3-8D63-4334-A9AE-D645EC848174}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAB799C3-8D63-4334-A9AE-D645EC848174}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAB799C3-8D63-4334-A9AE-D645EC848174}.Release|Any CPU.Build.0 = Release|Any CPU + {E8051516-B4B6-479E-BA8D-F3355B169F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8051516-B4B6-479E-BA8D-F3355B169F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8051516-B4B6-479E-BA8D-F3355B169F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8051516-B4B6-479E-BA8D-F3355B169F8D}.Release|Any CPU.Build.0 = Release|Any CPU + {616C55BF-AE90-47F2-A005-980CADDBD990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {616C55BF-AE90-47F2-A005-980CADDBD990}.Debug|Any CPU.Build.0 = Debug|Any CPU + {616C55BF-AE90-47F2-A005-980CADDBD990}.Release|Any CPU.ActiveCfg = Release|Any CPU + {616C55BF-AE90-47F2-A005-980CADDBD990}.Release|Any CPU.Build.0 = Release|Any CPU + {FBACD20C-BA4A-430E-84CF-E0F9325C3DD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBACD20C-BA4A-430E-84CF-E0F9325C3DD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBACD20C-BA4A-430E-84CF-E0F9325C3DD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBACD20C-BA4A-430E-84CF-E0F9325C3DD9}.Release|Any CPU.Build.0 = Release|Any CPU + {0175BBDC-9C0F-4648-AE71-C9A2304EA6F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0175BBDC-9C0F-4648-AE71-C9A2304EA6F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0175BBDC-9C0F-4648-AE71-C9A2304EA6F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0175BBDC-9C0F-4648-AE71-C9A2304EA6F8}.Release|Any CPU.Build.0 = Release|Any CPU + {E5447C9E-2B11-4D59-9159-7734785A9B5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5447C9E-2B11-4D59-9159-7734785A9B5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5447C9E-2B11-4D59-9159-7734785A9B5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5447C9E-2B11-4D59-9159-7734785A9B5A}.Release|Any CPU.Build.0 = Release|Any CPU + {86254E0A-1477-4DBF-A2A2-235E09B89B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86254E0A-1477-4DBF-A2A2-235E09B89B37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86254E0A-1477-4DBF-A2A2-235E09B89B37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86254E0A-1477-4DBF-A2A2-235E09B89B37}.Release|Any CPU.Build.0 = Release|Any CPU + {F6D5D48E-8D70-42B3-8FF3-D57C30380F13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6D5D48E-8D70-42B3-8FF3-D57C30380F13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6D5D48E-8D70-42B3-8FF3-D57C30380F13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6D5D48E-8D70-42B3-8FF3-D57C30380F13}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F0815ADD-0115-4368-886E-2135355BC439} = {9EDF28B3-F998-47FE-B23A-753205641B49} - {D4C213E7-336F-4601-9F92-1D632D082422} = {BF3EE9AA-4B66-4410-B1D2-3971169F1E40} - {5F41C8C2-663D-4D57-9211-2F495D7DFACE} = {4CB60D51-6D36-49DB-A3AC-B45664F39EFC} - {3EFE3DA9-F864-40A3-8892-899D731CC027} = {4CB60D51-6D36-49DB-A3AC-B45664F39EFC} - {D8AC9F6D-95FA-4377-A867-FF75683393AA} = {4CB60D51-6D36-49DB-A3AC-B45664F39EFC} - {1F88377A-7C91-466E-9351-1B0AE0DF78AB} = {4CB60D51-6D36-49DB-A3AC-B45664F39EFC} - {D53344C9-58C5-4A2B-8182-74A48763A8FE} = {4CB60D51-6D36-49DB-A3AC-B45664F39EFC} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0414F2BB-333F-487E-92AE-530AA983499B} + SolutionGuid = {3A661B81-588D-49A6-A245-E9B7EA9C3FE4} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/Microsoft.Extensions.Options.DataAnnotations.sln b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/Microsoft.Extensions.Options.DataAnnotations.sln index fc83c80d7d03..126c3943220f 100644 --- a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/Microsoft.Extensions.Options.DataAnnotations.sln +++ b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/Microsoft.Extensions.Options.DataAnnotations.sln @@ -1,39 +1,98 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{1E622531-91C7-4268-AF09-AA2DB3CD7C61}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{D158597C-16FF-4911-A214-C265C09F4AE4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EBF96045-44A0-4E1D-ADE6-1EE33A8DCAA6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{2DB8E45F-D3EF-47A7-847E-0311AE734314}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "ref\Microsoft.Extensions.Options.DataAnnotations.csproj", "{A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "ref\Microsoft.Extensions.Options.DataAnnotations.csproj", "{D1140557-6F25-44E9-9497-E354DC2576A1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "src\Microsoft.Extensions.Options.DataAnnotations.csproj", "{E94338A1-037D-4F2D-8F86-529D978959C6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "src\Microsoft.Extensions.Options.DataAnnotations.csproj", "{9022313F-BEEA-426E-8185-096E0516D1B6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\ref\Microsoft.Extensions.Options.csproj", "{8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "..\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj", "{72D4F48A-A93B-471F-B9C7-64BC9BF22A09}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{0E60E743-56C9-466D-A428-232FEAEEF41E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{065B4B16-B618-41D8-B1DE-F31AFC9E6C84}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "..\System.ComponentModel.Annotations\src\System.ComponentModel.Annotations.csproj", "{3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{176D75D6-80A3-4B87-A2A1-316AFA637F3B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DAEC9B39-32E0-481A-972B-087755C49502}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{088AC251-3D1F-4E81-81DE-BBA2A0C7F931}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C534FE40-D3E6-42BE-B7E9-C76EFF988906}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D158597C-16FF-4911-A214-C265C09F4AE4} = {088AC251-3D1F-4E81-81DE-BBA2A0C7F931} + {D1140557-6F25-44E9-9497-E354DC2576A1} = {088AC251-3D1F-4E81-81DE-BBA2A0C7F931} + {8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544} = {088AC251-3D1F-4E81-81DE-BBA2A0C7F931} + {0E60E743-56C9-466D-A428-232FEAEEF41E} = {088AC251-3D1F-4E81-81DE-BBA2A0C7F931} + {176D75D6-80A3-4B87-A2A1-316AFA637F3B} = {088AC251-3D1F-4E81-81DE-BBA2A0C7F931} + {2DB8E45F-D3EF-47A7-847E-0311AE734314} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + {9022313F-BEEA-426E-8185-096E0516D1B6} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + {72D4F48A-A93B-471F-B9C7-64BC9BF22A09} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + {065B4B16-B618-41D8-B1DE-F31AFC9E6C84} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + {3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + {DAEC9B39-32E0-481A-972B-087755C49502} = {C534FE40-D3E6-42BE-B7E9-C76EFF988906} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1}.Release|Any CPU.Build.0 = Release|Any CPU - {E94338A1-037D-4F2D-8F86-529D978959C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E94338A1-037D-4F2D-8F86-529D978959C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E94338A1-037D-4F2D-8F86-529D978959C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E94338A1-037D-4F2D-8F86-529D978959C6}.Release|Any CPU.Build.0 = Release|Any CPU + {D158597C-16FF-4911-A214-C265C09F4AE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D158597C-16FF-4911-A214-C265C09F4AE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D158597C-16FF-4911-A214-C265C09F4AE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D158597C-16FF-4911-A214-C265C09F4AE4}.Release|Any CPU.Build.0 = Release|Any CPU + {2DB8E45F-D3EF-47A7-847E-0311AE734314}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DB8E45F-D3EF-47A7-847E-0311AE734314}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DB8E45F-D3EF-47A7-847E-0311AE734314}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DB8E45F-D3EF-47A7-847E-0311AE734314}.Release|Any CPU.Build.0 = Release|Any CPU + {D1140557-6F25-44E9-9497-E354DC2576A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1140557-6F25-44E9-9497-E354DC2576A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1140557-6F25-44E9-9497-E354DC2576A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1140557-6F25-44E9-9497-E354DC2576A1}.Release|Any CPU.Build.0 = Release|Any CPU + {9022313F-BEEA-426E-8185-096E0516D1B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9022313F-BEEA-426E-8185-096E0516D1B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9022313F-BEEA-426E-8185-096E0516D1B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9022313F-BEEA-426E-8185-096E0516D1B6}.Release|Any CPU.Build.0 = Release|Any CPU + {8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F8A5D2D-A829-4E0E-9DCC-57FF2C89C544}.Release|Any CPU.Build.0 = Release|Any CPU + {72D4F48A-A93B-471F-B9C7-64BC9BF22A09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72D4F48A-A93B-471F-B9C7-64BC9BF22A09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72D4F48A-A93B-471F-B9C7-64BC9BF22A09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72D4F48A-A93B-471F-B9C7-64BC9BF22A09}.Release|Any CPU.Build.0 = Release|Any CPU + {0E60E743-56C9-466D-A428-232FEAEEF41E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E60E743-56C9-466D-A428-232FEAEEF41E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E60E743-56C9-466D-A428-232FEAEEF41E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E60E743-56C9-466D-A428-232FEAEEF41E}.Release|Any CPU.Build.0 = Release|Any CPU + {065B4B16-B618-41D8-B1DE-F31AFC9E6C84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {065B4B16-B618-41D8-B1DE-F31AFC9E6C84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {065B4B16-B618-41D8-B1DE-F31AFC9E6C84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {065B4B16-B618-41D8-B1DE-F31AFC9E6C84}.Release|Any CPU.Build.0 = Release|Any CPU + {3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DEF4BAD-BAD0-456E-AF67-55D5460CF3D7}.Release|Any CPU.Build.0 = Release|Any CPU + {176D75D6-80A3-4B87-A2A1-316AFA637F3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {176D75D6-80A3-4B87-A2A1-316AFA637F3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {176D75D6-80A3-4B87-A2A1-316AFA637F3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {176D75D6-80A3-4B87-A2A1-316AFA637F3B}.Release|Any CPU.Build.0 = Release|Any CPU + {DAEC9B39-32E0-481A-972B-087755C49502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAEC9B39-32E0-481A-972B-087755C49502}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAEC9B39-32E0-481A-972B-087755C49502}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAEC9B39-32E0-481A-972B-087755C49502}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A1DE8D54-198E-49F7-9E8F-0C8DCB2A65F1} = {1E622531-91C7-4268-AF09-AA2DB3CD7C61} - {E94338A1-037D-4F2D-8F86-529D978959C6} = {EBF96045-44A0-4E1D-ADE6-1EE33A8DCAA6} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9E469B84-7A85-4529-AA9D-510A96881BDA} + SolutionGuid = {976CC898-9F51-4F78-825C-EF31520CD788} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs index 2b905258fa78..5b6988ca6931 100644 --- a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs +++ b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs @@ -1,10 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Linq; namespace Microsoft.Extensions.Options { diff --git a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln index 569f822cf139..6d3d6d883d99 100644 --- a/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln +++ b/src/libraries/Microsoft.Extensions.Options/Microsoft.Extensions.Options.sln @@ -1,55 +1,219 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29827.131 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{5827CC1E-1A61-4799-96B4-AB1052346A52}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F5A58A9D-3C44-4E3C-A661-1CECA84108D9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9205B11D-A45B-4F2C-BF37-8C5F26FCBDB7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{201C7D67-FB1D-4259-9DB4-BF188007F9EA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CAB34510-96B9-422E-904F-C03476004E13}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj", "{F656E22F-D8D2-4C8A-A435-01F821A1EA07}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "ref\Microsoft.Extensions.Options.csproj", "{9F96CC5A-969C-47FA-81DB-7093598A226F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\ref\Microsoft.Extensions.Configuration.Abstractions.csproj", "{5EA013FF-FCA7-4F0B-8EB7-14D8472A0830}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "src\Microsoft.Extensions.Options.csproj", "{0ACF563C-7E53-469A-A61D-B93916DED810}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Abstractions", "..\Microsoft.Extensions.Configuration.Abstractions\src\Microsoft.Extensions.Configuration.Abstractions.csproj", "{66E30CB1-ADA8-4000-9CEE-56AF40323D23}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A5C2304B-0A92-427A-BD01-C7927EFA8B78}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\ref\Microsoft.Extensions.Configuration.Binder.csproj", "{5E90DFC5-7D40-42E4-ADF6-7090015B7211}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.Tests", "tests\Microsoft.Extensions.Options.Tests\Microsoft.Extensions.Options.Tests.csproj", "{0905577D-D2A0-4EF1-848B-8A99F12BE3D0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.Binder", "..\Microsoft.Extensions.Configuration.Binder\src\Microsoft.Extensions.Configuration.Binder.csproj", "{0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\ref\Microsoft.Extensions.Configuration.csproj", "{692645D6-1F0B-4DB0-85EB-7D4042857B2D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration", "..\Microsoft.Extensions.Configuration\src\Microsoft.Extensions.Configuration.csproj", "{D4256787-48E0-473F-8C06-359C1BCFC8AB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\ref\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{A29E2B35-847A-4304-BF0F-B0DFDC4384A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection.Abstractions", "..\Microsoft.Extensions.DependencyInjection.Abstractions\src\Microsoft.Extensions.DependencyInjection.Abstractions.csproj", "{0F2B84D6-6C2E-4216-A8CD-DF91908F4194}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\ref\Microsoft.Extensions.DependencyInjection.csproj", "{AB7510FB-A8B8-426E-A5FB-D292F1423D5A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.DependencyInjection", "..\Microsoft.Extensions.DependencyInjection\src\Microsoft.Extensions.DependencyInjection.csproj", "{250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\ref\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{CD668E6C-9DD5-456E-A23A-9880A779CA14}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.ConfigurationExtensions", "..\Microsoft.Extensions.Options.ConfigurationExtensions\src\Microsoft.Extensions.Options.ConfigurationExtensions.csproj", "{6AF79D67-4D64-40B4-9276-BCC06B8BAF58}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "..\Microsoft.Extensions.Options.DataAnnotations\ref\Microsoft.Extensions.Options.DataAnnotations.csproj", "{02C282B1-23DD-429A-ADC7-345D661557E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.DataAnnotations", "..\Microsoft.Extensions.Options.DataAnnotations\src\Microsoft.Extensions.Options.DataAnnotations.csproj", "{3A6E2FA4-B745-4E4B-A82E-98CAD1177E77}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "ref\Microsoft.Extensions.Options.csproj", "{D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options", "src\Microsoft.Extensions.Options.csproj", "{9BA945E7-0970-4CA2-A54B-F8D9B3E69917}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Options.Tests", "tests\Microsoft.Extensions.Options.Tests\Microsoft.Extensions.Options.Tests.csproj", "{94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\ref\Microsoft.Extensions.Primitives.csproj", "{36C471D8-1D7A-4C81-8B05-2EED0984FBB4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "..\Microsoft.Extensions.Primitives\src\Microsoft.Extensions.Primitives.csproj", "{AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FDC745D9-06C6-424E-8B80-18B7B0EB80CA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "..\System.ComponentModel.Annotations\src\System.ComponentModel.Annotations.csproj", "{BBCE1086-823D-4F31-A04B-FD0C65C4E5E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{6671471B-2885-457C-9F63-D43DF9DC31C3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{8E7256F3-ACCF-4576-B091-CC8ADC60C33E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{FF244523-D350-4CDE-965B-D8584847E706}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{95BF61E6-787A-4584-84FC-F79F3C229CAB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6153112C-CE93-42C2-82B1-07C6B54F3162}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{389CAD0A-F948-4813-B726-E8EE4D87E6E3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A44137CE-47BA-48E6-AAD8-C624FF5DB5AC}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F5A58A9D-3C44-4E3C-A661-1CECA84108D9} = {6153112C-CE93-42C2-82B1-07C6B54F3162} + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD} = {6153112C-CE93-42C2-82B1-07C6B54F3162} + {201C7D67-FB1D-4259-9DB4-BF188007F9EA} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {5E90DFC5-7D40-42E4-ADF6-7090015B7211} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {692645D6-1F0B-4DB0-85EB-7D4042857B2D} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {A29E2B35-847A-4304-BF0F-B0DFDC4384A1} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {AB7510FB-A8B8-426E-A5FB-D292F1423D5A} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {CD668E6C-9DD5-456E-A23A-9880A779CA14} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {02C282B1-23DD-429A-ADC7-345D661557E1} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {36C471D8-1D7A-4C81-8B05-2EED0984FBB4} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {FDC745D9-06C6-424E-8B80-18B7B0EB80CA} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {6671471B-2885-457C-9F63-D43DF9DC31C3} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {FF244523-D350-4CDE-965B-D8584847E706} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {95BF61E6-787A-4584-84FC-F79F3C229CAB} = {389CAD0A-F948-4813-B726-E8EE4D87E6E3} + {F656E22F-D8D2-4C8A-A435-01F821A1EA07} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {66E30CB1-ADA8-4000-9CEE-56AF40323D23} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {D4256787-48E0-473F-8C06-359C1BCFC8AB} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {BBCE1086-823D-4F31-A04B-FD0C65C4E5E7} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + {8E7256F3-ACCF-4576-B091-CC8ADC60C33E} = {A44137CE-47BA-48E6-AAD8-C624FF5DB5AC} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9F96CC5A-969C-47FA-81DB-7093598A226F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F96CC5A-969C-47FA-81DB-7093598A226F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F96CC5A-969C-47FA-81DB-7093598A226F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F96CC5A-969C-47FA-81DB-7093598A226F}.Release|Any CPU.Build.0 = Release|Any CPU - {0ACF563C-7E53-469A-A61D-B93916DED810}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0ACF563C-7E53-469A-A61D-B93916DED810}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0ACF563C-7E53-469A-A61D-B93916DED810}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0ACF563C-7E53-469A-A61D-B93916DED810}.Release|Any CPU.Build.0 = Release|Any CPU - {A5C2304B-0A92-427A-BD01-C7927EFA8B78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5C2304B-0A92-427A-BD01-C7927EFA8B78}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A5C2304B-0A92-427A-BD01-C7927EFA8B78}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5C2304B-0A92-427A-BD01-C7927EFA8B78}.Release|Any CPU.Build.0 = Release|Any CPU - {0905577D-D2A0-4EF1-848B-8A99F12BE3D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0905577D-D2A0-4EF1-848B-8A99F12BE3D0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0905577D-D2A0-4EF1-848B-8A99F12BE3D0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0905577D-D2A0-4EF1-848B-8A99F12BE3D0}.Release|Any CPU.Build.0 = Release|Any CPU + {F5A58A9D-3C44-4E3C-A661-1CECA84108D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5A58A9D-3C44-4E3C-A661-1CECA84108D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5A58A9D-3C44-4E3C-A661-1CECA84108D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5A58A9D-3C44-4E3C-A661-1CECA84108D9}.Release|Any CPU.Build.0 = Release|Any CPU + {201C7D67-FB1D-4259-9DB4-BF188007F9EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {201C7D67-FB1D-4259-9DB4-BF188007F9EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {201C7D67-FB1D-4259-9DB4-BF188007F9EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {201C7D67-FB1D-4259-9DB4-BF188007F9EA}.Release|Any CPU.Build.0 = Release|Any CPU + {F656E22F-D8D2-4C8A-A435-01F821A1EA07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F656E22F-D8D2-4C8A-A435-01F821A1EA07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F656E22F-D8D2-4C8A-A435-01F821A1EA07}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F656E22F-D8D2-4C8A-A435-01F821A1EA07}.Release|Any CPU.Build.0 = Release|Any CPU + {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EA013FF-FCA7-4F0B-8EB7-14D8472A0830}.Release|Any CPU.Build.0 = Release|Any CPU + {66E30CB1-ADA8-4000-9CEE-56AF40323D23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66E30CB1-ADA8-4000-9CEE-56AF40323D23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66E30CB1-ADA8-4000-9CEE-56AF40323D23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66E30CB1-ADA8-4000-9CEE-56AF40323D23}.Release|Any CPU.Build.0 = Release|Any CPU + {5E90DFC5-7D40-42E4-ADF6-7090015B7211}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E90DFC5-7D40-42E4-ADF6-7090015B7211}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E90DFC5-7D40-42E4-ADF6-7090015B7211}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E90DFC5-7D40-42E4-ADF6-7090015B7211}.Release|Any CPU.Build.0 = Release|Any CPU + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A7AE964-D27E-44A8-85E1-F7A63EBC1BB6}.Release|Any CPU.Build.0 = Release|Any CPU + {692645D6-1F0B-4DB0-85EB-7D4042857B2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {692645D6-1F0B-4DB0-85EB-7D4042857B2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {692645D6-1F0B-4DB0-85EB-7D4042857B2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {692645D6-1F0B-4DB0-85EB-7D4042857B2D}.Release|Any CPU.Build.0 = Release|Any CPU + {D4256787-48E0-473F-8C06-359C1BCFC8AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4256787-48E0-473F-8C06-359C1BCFC8AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4256787-48E0-473F-8C06-359C1BCFC8AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4256787-48E0-473F-8C06-359C1BCFC8AB}.Release|Any CPU.Build.0 = Release|Any CPU + {A29E2B35-847A-4304-BF0F-B0DFDC4384A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A29E2B35-847A-4304-BF0F-B0DFDC4384A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A29E2B35-847A-4304-BF0F-B0DFDC4384A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A29E2B35-847A-4304-BF0F-B0DFDC4384A1}.Release|Any CPU.Build.0 = Release|Any CPU + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F2B84D6-6C2E-4216-A8CD-DF91908F4194}.Release|Any CPU.Build.0 = Release|Any CPU + {AB7510FB-A8B8-426E-A5FB-D292F1423D5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB7510FB-A8B8-426E-A5FB-D292F1423D5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB7510FB-A8B8-426E-A5FB-D292F1423D5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB7510FB-A8B8-426E-A5FB-D292F1423D5A}.Release|Any CPU.Build.0 = Release|Any CPU + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {250B3EA5-65A4-4D62-B0F9-5BAAFE53BD7A}.Release|Any CPU.Build.0 = Release|Any CPU + {CD668E6C-9DD5-456E-A23A-9880A779CA14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD668E6C-9DD5-456E-A23A-9880A779CA14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD668E6C-9DD5-456E-A23A-9880A779CA14}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD668E6C-9DD5-456E-A23A-9880A779CA14}.Release|Any CPU.Build.0 = Release|Any CPU + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AF79D67-4D64-40B4-9276-BCC06B8BAF58}.Release|Any CPU.Build.0 = Release|Any CPU + {02C282B1-23DD-429A-ADC7-345D661557E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02C282B1-23DD-429A-ADC7-345D661557E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02C282B1-23DD-429A-ADC7-345D661557E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02C282B1-23DD-429A-ADC7-345D661557E1}.Release|Any CPU.Build.0 = Release|Any CPU + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A6E2FA4-B745-4E4B-A82E-98CAD1177E77}.Release|Any CPU.Build.0 = Release|Any CPU + {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0CAEF2C-FB83-4C32-80BD-1F516AD13FAA}.Release|Any CPU.Build.0 = Release|Any CPU + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BA945E7-0970-4CA2-A54B-F8D9B3E69917}.Release|Any CPU.Build.0 = Release|Any CPU + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94CAA850-ABDB-4A1E-B18B-19DA0DE75CFD}.Release|Any CPU.Build.0 = Release|Any CPU + {36C471D8-1D7A-4C81-8B05-2EED0984FBB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36C471D8-1D7A-4C81-8B05-2EED0984FBB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36C471D8-1D7A-4C81-8B05-2EED0984FBB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36C471D8-1D7A-4C81-8B05-2EED0984FBB4}.Release|Any CPU.Build.0 = Release|Any CPU + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAB5D437-EFB2-4BAC-BA0F-7323BA691B89}.Release|Any CPU.Build.0 = Release|Any CPU + {FDC745D9-06C6-424E-8B80-18B7B0EB80CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDC745D9-06C6-424E-8B80-18B7B0EB80CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDC745D9-06C6-424E-8B80-18B7B0EB80CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDC745D9-06C6-424E-8B80-18B7B0EB80CA}.Release|Any CPU.Build.0 = Release|Any CPU + {BBCE1086-823D-4F31-A04B-FD0C65C4E5E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBCE1086-823D-4F31-A04B-FD0C65C4E5E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBCE1086-823D-4F31-A04B-FD0C65C4E5E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBCE1086-823D-4F31-A04B-FD0C65C4E5E7}.Release|Any CPU.Build.0 = Release|Any CPU + {6671471B-2885-457C-9F63-D43DF9DC31C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6671471B-2885-457C-9F63-D43DF9DC31C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6671471B-2885-457C-9F63-D43DF9DC31C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6671471B-2885-457C-9F63-D43DF9DC31C3}.Release|Any CPU.Build.0 = Release|Any CPU + {8E7256F3-ACCF-4576-B091-CC8ADC60C33E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E7256F3-ACCF-4576-B091-CC8ADC60C33E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E7256F3-ACCF-4576-B091-CC8ADC60C33E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E7256F3-ACCF-4576-B091-CC8ADC60C33E}.Release|Any CPU.Build.0 = Release|Any CPU + {FF244523-D350-4CDE-965B-D8584847E706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF244523-D350-4CDE-965B-D8584847E706}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF244523-D350-4CDE-965B-D8584847E706}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF244523-D350-4CDE-965B-D8584847E706}.Release|Any CPU.Build.0 = Release|Any CPU + {95BF61E6-787A-4584-84FC-F79F3C229CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95BF61E6-787A-4584-84FC-F79F3C229CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95BF61E6-787A-4584-84FC-F79F3C229CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95BF61E6-787A-4584-84FC-F79F3C229CAB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9F96CC5A-969C-47FA-81DB-7093598A226F} = {5827CC1E-1A61-4799-96B4-AB1052346A52} - {0ACF563C-7E53-469A-A61D-B93916DED810} = {9205B11D-A45B-4F2C-BF37-8C5F26FCBDB7} - {A5C2304B-0A92-427A-BD01-C7927EFA8B78} = {CAB34510-96B9-422E-904F-C03476004E13} - {0905577D-D2A0-4EF1-848B-8A99F12BE3D0} = {CAB34510-96B9-422E-904F-C03476004E13} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5DE09ECD-4E45-4B08-B44A-327EF5203D1B} + SolutionGuid = {FE89CDC6-6313-439C-85D7-A81D5DF593E9} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Extensions.Options/src/OptionsServiceCollectionExtensions.cs b/src/libraries/Microsoft.Extensions.Options/src/OptionsServiceCollectionExtensions.cs index 10341d4e217d..d9ff1e75b035 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/OptionsServiceCollectionExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Options/src/OptionsServiceCollectionExtensions.cs @@ -4,8 +4,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Reflection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; @@ -146,29 +144,29 @@ public static IServiceCollection PostConfigure(this IServiceCollection where TConfigureOptions : class => services.ConfigureOptions(typeof(TConfigureOptions)); - private static bool IsAction(Type type) - => (type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(Action<>)); - private static IEnumerable FindConfigurationServices(Type type) { - IEnumerable serviceTypes = type - .GetTypeInfo() - .ImplementedInterfaces - .Where(t => t.GetTypeInfo().IsGenericType) - .Where(t => - t.GetGenericTypeDefinition() == typeof(IConfigureOptions<>) || - t.GetGenericTypeDefinition() == typeof(IPostConfigureOptions<>) || - t.GetGenericTypeDefinition() == typeof(IValidateOptions<>)); - if (!serviceTypes.Any()) + foreach (Type t in type.GetInterfaces()) { - throw new InvalidOperationException( - IsAction(type) - ? SR.Error_NoConfigurationServicesAndAction - : SR.Error_NoConfigurationServices); + if (t.IsGenericType) + { + Type gtd = t.GetGenericTypeDefinition(); + if (gtd == typeof(IConfigureOptions<>) || + gtd == typeof(IPostConfigureOptions<>) || + gtd == typeof(IValidateOptions<>)) + { + yield return t; + } + } } - return serviceTypes; } + private static void ThrowNoConfigServices(Type type) => + throw new InvalidOperationException( + type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Action<>) ? + SR.Error_NoConfigurationServicesAndAction : + SR.Error_NoConfigurationServices); + /// /// Registers a type that will have all of its , /// , and @@ -182,11 +180,19 @@ private static IEnumerable FindConfigurationServices(Type type) [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type configureType) { services.AddOptions(); - IEnumerable serviceTypes = FindConfigurationServices(configureType); - foreach (Type serviceType in serviceTypes) + + bool added = false; + foreach (Type serviceType in FindConfigurationServices(configureType)) { services.AddTransient(serviceType, configureType); + added = true; + } + + if (!added) + { + ThrowNoConfigServices(configureType); } + return services; } @@ -201,11 +207,20 @@ private static IEnumerable FindConfigurationServices(Type type) public static IServiceCollection ConfigureOptions(this IServiceCollection services, object configureInstance) { services.AddOptions(); - IEnumerable serviceTypes = FindConfigurationServices(configureInstance.GetType()); - foreach (Type serviceType in serviceTypes) + Type configureType = configureInstance.GetType(); + + bool added = false; + foreach (Type serviceType in FindConfigurationServices(configureType)) { services.AddSingleton(serviceType, configureInstance); + added = true; + } + + if (!added) + { + ThrowNoConfigServices(configureType); } + return services; } diff --git a/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln b/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln index 4eb71ea91643..7469288470da 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln +++ b/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln @@ -1,54 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29521.150 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D69C4529-128C-4A51-AD5A-659872A4F405}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0EB2C914-0873-4AF8-9262-75B1405C842A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "ref\Microsoft.Extensions.Primitives.csproj", "{EF75497C-6CB7-4471-980A-619EA1AB8CF6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{33BE7927-9C98-425D-97F5-D68510163F6C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "src\Microsoft.Extensions.Primitives.csproj", "{09E28D94-B771-48EB-800C-5A80C2C0055C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "ref\Microsoft.Extensions.Primitives.csproj", "{176BDA02-0319-4AA0-AD83-D8862CC5AD04}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives.Tests", "tests\Microsoft.Extensions.Primitives.Tests.csproj", "{43DBAD84-A865-4F5F-AB76-7F3EB6784E99}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "src\Microsoft.Extensions.Primitives.csproj", "{36866787-9074-4B79-A339-FD9E0ADFD34D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B6E38D19-F2C3-4AC7-8314-18C384C09C78}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives.Tests", "tests\Microsoft.Extensions.Primitives.Tests.csproj", "{10AEB55F-B4CD-44B8-9B82-DFCD543D5647}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7F0B7A9C-D76A-49E8-9BCF-731DD7806686}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{465384D0-985B-4906-85E4-6357117236DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{790E647B-93BB-4E17-99E0-01E49AD54B8C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{55EB22FC-B2A8-4AA6-B116-ADB84057891F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{40214708-E0E0-43F5-9BBE-AEA8E84537E0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{10749428-CC96-4F3B-B27B-EDFCC1A3DD7A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6F8430BA-F7D5-4C5C-89A6-E6F091709C58}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE} = {40214708-E0E0-43F5-9BBE-AEA8E84537E0} + {43DBAD84-A865-4F5F-AB76-7F3EB6784E99} = {40214708-E0E0-43F5-9BBE-AEA8E84537E0} + {EF75497C-6CB7-4471-980A-619EA1AB8CF6} = {10749428-CC96-4F3B-B27B-EDFCC1A3DD7A} + {B6E38D19-F2C3-4AC7-8314-18C384C09C78} = {10749428-CC96-4F3B-B27B-EDFCC1A3DD7A} + {7F0B7A9C-D76A-49E8-9BCF-731DD7806686} = {10749428-CC96-4F3B-B27B-EDFCC1A3DD7A} + {790E647B-93BB-4E17-99E0-01E49AD54B8C} = {10749428-CC96-4F3B-B27B-EDFCC1A3DD7A} + {55EB22FC-B2A8-4AA6-B116-ADB84057891F} = {10749428-CC96-4F3B-B27B-EDFCC1A3DD7A} + {09E28D94-B771-48EB-800C-5A80C2C0055C} = {6F8430BA-F7D5-4C5C-89A6-E6F091709C58} + {45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3} = {6F8430BA-F7D5-4C5C-89A6-E6F091709C58} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {176BDA02-0319-4AA0-AD83-D8862CC5AD04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {176BDA02-0319-4AA0-AD83-D8862CC5AD04}.Debug|Any CPU.Build.0 = Debug|Any CPU - {176BDA02-0319-4AA0-AD83-D8862CC5AD04}.Release|Any CPU.ActiveCfg = Release|Any CPU - {176BDA02-0319-4AA0-AD83-D8862CC5AD04}.Release|Any CPU.Build.0 = Release|Any CPU - {36866787-9074-4B79-A339-FD9E0ADFD34D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36866787-9074-4B79-A339-FD9E0ADFD34D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36866787-9074-4B79-A339-FD9E0ADFD34D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36866787-9074-4B79-A339-FD9E0ADFD34D}.Release|Any CPU.Build.0 = Release|Any CPU - {10AEB55F-B4CD-44B8-9B82-DFCD543D5647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10AEB55F-B4CD-44B8-9B82-DFCD543D5647}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10AEB55F-B4CD-44B8-9B82-DFCD543D5647}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10AEB55F-B4CD-44B8-9B82-DFCD543D5647}.Release|Any CPU.Build.0 = Release|Any CPU - {465384D0-985B-4906-85E4-6357117236DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {465384D0-985B-4906-85E4-6357117236DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {465384D0-985B-4906-85E4-6357117236DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {465384D0-985B-4906-85E4-6357117236DD}.Release|Any CPU.Build.0 = Release|Any CPU + {B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6663ACE-6FE4-4BB4-8B35-AB98EF62EAAE}.Release|Any CPU.Build.0 = Release|Any CPU + {EF75497C-6CB7-4471-980A-619EA1AB8CF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF75497C-6CB7-4471-980A-619EA1AB8CF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF75497C-6CB7-4471-980A-619EA1AB8CF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF75497C-6CB7-4471-980A-619EA1AB8CF6}.Release|Any CPU.Build.0 = Release|Any CPU + {09E28D94-B771-48EB-800C-5A80C2C0055C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09E28D94-B771-48EB-800C-5A80C2C0055C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09E28D94-B771-48EB-800C-5A80C2C0055C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09E28D94-B771-48EB-800C-5A80C2C0055C}.Release|Any CPU.Build.0 = Release|Any CPU + {43DBAD84-A865-4F5F-AB76-7F3EB6784E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43DBAD84-A865-4F5F-AB76-7F3EB6784E99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43DBAD84-A865-4F5F-AB76-7F3EB6784E99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43DBAD84-A865-4F5F-AB76-7F3EB6784E99}.Release|Any CPU.Build.0 = Release|Any CPU + {B6E38D19-F2C3-4AC7-8314-18C384C09C78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6E38D19-F2C3-4AC7-8314-18C384C09C78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6E38D19-F2C3-4AC7-8314-18C384C09C78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6E38D19-F2C3-4AC7-8314-18C384C09C78}.Release|Any CPU.Build.0 = Release|Any CPU + {7F0B7A9C-D76A-49E8-9BCF-731DD7806686}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F0B7A9C-D76A-49E8-9BCF-731DD7806686}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F0B7A9C-D76A-49E8-9BCF-731DD7806686}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F0B7A9C-D76A-49E8-9BCF-731DD7806686}.Release|Any CPU.Build.0 = Release|Any CPU + {45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45E51D0C-3EBB-4C9F-97BB-5AA6F64AE0E3}.Release|Any CPU.Build.0 = Release|Any CPU + {790E647B-93BB-4E17-99E0-01E49AD54B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {790E647B-93BB-4E17-99E0-01E49AD54B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {790E647B-93BB-4E17-99E0-01E49AD54B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {790E647B-93BB-4E17-99E0-01E49AD54B8C}.Release|Any CPU.Build.0 = Release|Any CPU + {55EB22FC-B2A8-4AA6-B116-ADB84057891F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55EB22FC-B2A8-4AA6-B116-ADB84057891F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55EB22FC-B2A8-4AA6-B116-ADB84057891F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55EB22FC-B2A8-4AA6-B116-ADB84057891F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {176BDA02-0319-4AA0-AD83-D8862CC5AD04} = {33BE7927-9C98-425D-97F5-D68510163F6C} - {36866787-9074-4B79-A339-FD9E0ADFD34D} = {D69C4529-128C-4A51-AD5A-659872A4F405} - {10AEB55F-B4CD-44B8-9B82-DFCD543D5647} = {0EB2C914-0873-4AF8-9262-75B1405C842A} - {465384D0-985B-4906-85E4-6357117236DD} = {0EB2C914-0873-4AF8-9262-75B1405C842A} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A2122D16-DA32-4D5D-9F6F-EAB3D6FA1B7E} + SolutionGuid = {7D279EE5-E38F-4125-AE82-6ADE52D72F26} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.IO.Redist/Microsoft.IO.Redist.sln b/src/libraries/Microsoft.IO.Redist/Microsoft.IO.Redist.sln index b5e6c943900e..a33a2cac505d 100644 --- a/src/libraries/Microsoft.IO.Redist/Microsoft.IO.Redist.sln +++ b/src/libraries/Microsoft.IO.Redist/Microsoft.IO.Redist.sln @@ -1,29 +1,42 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist.csproj", "{FEF5811F-ED50-4407-A6B9-885EBD3206FB}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist.csproj", "{636F0ACF-D27A-42EB-A080-65BB5E21F4A0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{2BF3A0D1-DE74-4A55-8074-2B274EBFE805}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{23AFD1C3-1C90-4D14-9B63-A25D82CA39A7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{36F8FB34-31DC-481E-B82E-D5CD6E061C72}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{C4A9F2F8-16AD-479E-A23D-789BF708E2BE}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {636F0ACF-D27A-42EB-A080-65BB5E21F4A0} = {36F8FB34-31DC-481E-B82E-D5CD6E061C72} + {23AFD1C3-1C90-4D14-9B63-A25D82CA39A7} = {36F8FB34-31DC-481E-B82E-D5CD6E061C72} + {2BF3A0D1-DE74-4A55-8074-2B274EBFE805} = {C4A9F2F8-16AD-479E-A23D-789BF708E2BE} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FEF5811F-ED50-4407-A6B9-885EBD3206FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEF5811F-ED50-4407-A6B9-885EBD3206FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEF5811F-ED50-4407-A6B9-885EBD3206FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEF5811F-ED50-4407-A6B9-885EBD3206FB}.Release|Any CPU.Build.0 = Release|Any CPU + {636F0ACF-D27A-42EB-A080-65BB5E21F4A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {636F0ACF-D27A-42EB-A080-65BB5E21F4A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {636F0ACF-D27A-42EB-A080-65BB5E21F4A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {636F0ACF-D27A-42EB-A080-65BB5E21F4A0}.Release|Any CPU.Build.0 = Release|Any CPU + {2BF3A0D1-DE74-4A55-8074-2B274EBFE805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BF3A0D1-DE74-4A55-8074-2B274EBFE805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BF3A0D1-DE74-4A55-8074-2B274EBFE805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BF3A0D1-DE74-4A55-8074-2B274EBFE805}.Release|Any CPU.Build.0 = Release|Any CPU + {23AFD1C3-1C90-4D14-9B63-A25D82CA39A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23AFD1C3-1C90-4D14-9B63-A25D82CA39A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23AFD1C3-1C90-4D14-9B63-A25D82CA39A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23AFD1C3-1C90-4D14-9B63-A25D82CA39A7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {FEF5811F-ED50-4407-A6B9-885EBD3206FB} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CB207195-D61F-4708-B1FA-75E67F229C9A} + SolutionGuid = {4F40EC53-D415-4145-979B-B592535163C5} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.VisualBasic.Core/Directory.Build.props b/src/libraries/Microsoft.VisualBasic.Core/Directory.Build.props index de631ebfa736..fac4b55f49cd 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/Directory.Build.props +++ b/src/libraries/Microsoft.VisualBasic.Core/Directory.Build.props @@ -1,10 +1,8 @@  - $([MSBuild]::Add($(MajorVersion), 6)) - $(MajorVersion).$(MinorVersion).$(PatchVersion) - 10.0.6.0 + $([MSBuild]::Add($(MajorVersion), 5)).$(MinorVersion).0.0 Microsoft true - \ No newline at end of file + diff --git a/src/libraries/Microsoft.VisualBasic.Core/Microsoft.VisualBasic.Core.sln b/src/libraries/Microsoft.VisualBasic.Core/Microsoft.VisualBasic.Core.sln index 25bb88e8e8b1..934abf69688a 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/Microsoft.VisualBasic.Core.sln +++ b/src/libraries/Microsoft.VisualBasic.Core/Microsoft.VisualBasic.Core.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29110.143 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualBasic.Core.Tests", "tests\Microsoft.VisualBasic.Core.Tests.csproj", "{325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8}" - ProjectSection(ProjectDependencies) = postProject - {A32671B6-5470-4F9C-9CD8-4094B9AB0799} = {A32671B6-5470-4F9C-9CD8-4094B9AB0799} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{009D39C7-821B-44E4-ABB9-8ED94464A5CB}" EndProject -Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Microsoft.VisualBasic.Core", "src\Microsoft.VisualBasic.Core.vbproj", "{A32671B6-5470-4F9C-9CD8-4094B9AB0799}" - ProjectSection(ProjectDependencies) = postProject - {82A4357C-0A9F-4970-AAEA-216A73D8A73E} = {82A4357C-0A9F-4970-AAEA-216A73D8A73E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualBasic.Core", "ref\Microsoft.VisualBasic.Core.csproj", "{EA1B5DA0-F263-4298-A8FC-564E9DF00771}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualBasic.Core", "ref\Microsoft.VisualBasic.Core.csproj", "{82A4357C-0A9F-4970-AAEA-216A73D8A73E}" +Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Microsoft.VisualBasic.Core", "src\Microsoft.VisualBasic.Core.vbproj", "{E741B977-6B3F-4DA7-A22B-251A1B3E42F7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualBasic.Core.Tests", "tests\Microsoft.VisualBasic.Core.Tests.csproj", "{476C0AEB-48CB-4978-9D35-06AA49F800B9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B661263A-D433-4E2B-8E4B-73D7FB57F1CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{1970A570-2766-49C2-83A4-9898E295D6AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F79F86DA-EF84-461E-B7C9-21F2A5C63251}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{34BD3E49-F367-49EA-9F57-1A8876C4C593}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{883E29F8-3B95-4011-9D73-039A90DE5D27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{3CC6002C-72B6-403D-B413-A100D910885E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{40E6CFD8-4203-49CA-A3D7-A93A2344F876}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{EE74172D-1E18-4130-B71E-C9FDF04DA0F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{34186806-2CBE-41C0-8AEB-1825DC28F946}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{CABE2B33-0131-4889-AF63-A7241629C96A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{ADEF69DC-34D8-4AF6-8F92-FD38E78321FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{FC7B68AD-00EB-4D71-8D30-6C4992E46AB0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{188DA57A-95F6-440F-85FD-1BC5CE269037}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{3ECA4E78-310C-4E3F-BEB7-422340D9D87E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encoding.CodePages", "..\System.Text.Encoding.CodePages\src\System.Text.Encoding.CodePages.csproj", "{30CC7F8D-60DB-49C5-BE59-81477BFE0376}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{F364C57E-F529-4DF3-B2F4-1FF056D45752}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{FA6FFFE8-080A-4470-A832-790D5FA1231D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{85C02EA3-6DD6-4F08-8FB1-1AB121177679}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B1D2860E-8BBB-4BEF-990F-D13BAC56C67E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {009D39C7-821B-44E4-ABB9-8ED94464A5CB} = {FA6FFFE8-080A-4470-A832-790D5FA1231D} + {476C0AEB-48CB-4978-9D35-06AA49F800B9} = {FA6FFFE8-080A-4470-A832-790D5FA1231D} + {EA1B5DA0-F263-4298-A8FC-564E9DF00771} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {B661263A-D433-4E2B-8E4B-73D7FB57F1CF} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {34BD3E49-F367-49EA-9F57-1A8876C4C593} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {883E29F8-3B95-4011-9D73-039A90DE5D27} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {40E6CFD8-4203-49CA-A3D7-A93A2344F876} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {34186806-2CBE-41C0-8AEB-1825DC28F946} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {ADEF69DC-34D8-4AF6-8F92-FD38E78321FF} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {188DA57A-95F6-440F-85FD-1BC5CE269037} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {F364C57E-F529-4DF3-B2F4-1FF056D45752} = {85C02EA3-6DD6-4F08-8FB1-1AB121177679} + {E741B977-6B3F-4DA7-A22B-251A1B3E42F7} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {1970A570-2766-49C2-83A4-9898E295D6AF} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {3CC6002C-72B6-403D-B413-A100D910885E} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {EE74172D-1E18-4130-B71E-C9FDF04DA0F6} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {CABE2B33-0131-4889-AF63-A7241629C96A} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {FC7B68AD-00EB-4D71-8D30-6C4992E46AB0} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {3ECA4E78-310C-4E3F-BEB7-422340D9D87E} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {30CC7F8D-60DB-49C5-BE59-81477BFE0376} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + {85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6} = {B1D2860E-8BBB-4BEF-990F-D13BAC56C67E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8}.Release|Any CPU.Build.0 = Release|Any CPU - {A32671B6-5470-4F9C-9CD8-4094B9AB0799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A32671B6-5470-4F9C-9CD8-4094B9AB0799}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A32671B6-5470-4F9C-9CD8-4094B9AB0799}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A32671B6-5470-4F9C-9CD8-4094B9AB0799}.Release|Any CPU.Build.0 = Release|Any CPU - {82A4357C-0A9F-4970-AAEA-216A73D8A73E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82A4357C-0A9F-4970-AAEA-216A73D8A73E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82A4357C-0A9F-4970-AAEA-216A73D8A73E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82A4357C-0A9F-4970-AAEA-216A73D8A73E}.Release|Any CPU.Build.0 = Release|Any CPU - {F79F86DA-EF84-461E-B7C9-21F2A5C63251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F79F86DA-EF84-461E-B7C9-21F2A5C63251}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F79F86DA-EF84-461E-B7C9-21F2A5C63251}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F79F86DA-EF84-461E-B7C9-21F2A5C63251}.Release|Any CPU.Build.0 = Release|Any CPU + {009D39C7-821B-44E4-ABB9-8ED94464A5CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {009D39C7-821B-44E4-ABB9-8ED94464A5CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {009D39C7-821B-44E4-ABB9-8ED94464A5CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {009D39C7-821B-44E4-ABB9-8ED94464A5CB}.Release|Any CPU.Build.0 = Release|Any CPU + {EA1B5DA0-F263-4298-A8FC-564E9DF00771}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA1B5DA0-F263-4298-A8FC-564E9DF00771}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA1B5DA0-F263-4298-A8FC-564E9DF00771}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA1B5DA0-F263-4298-A8FC-564E9DF00771}.Release|Any CPU.Build.0 = Release|Any CPU + {E741B977-6B3F-4DA7-A22B-251A1B3E42F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E741B977-6B3F-4DA7-A22B-251A1B3E42F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E741B977-6B3F-4DA7-A22B-251A1B3E42F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E741B977-6B3F-4DA7-A22B-251A1B3E42F7}.Release|Any CPU.Build.0 = Release|Any CPU + {476C0AEB-48CB-4978-9D35-06AA49F800B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {476C0AEB-48CB-4978-9D35-06AA49F800B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {476C0AEB-48CB-4978-9D35-06AA49F800B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {476C0AEB-48CB-4978-9D35-06AA49F800B9}.Release|Any CPU.Build.0 = Release|Any CPU + {B661263A-D433-4E2B-8E4B-73D7FB57F1CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B661263A-D433-4E2B-8E4B-73D7FB57F1CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B661263A-D433-4E2B-8E4B-73D7FB57F1CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B661263A-D433-4E2B-8E4B-73D7FB57F1CF}.Release|Any CPU.Build.0 = Release|Any CPU + {1970A570-2766-49C2-83A4-9898E295D6AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1970A570-2766-49C2-83A4-9898E295D6AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1970A570-2766-49C2-83A4-9898E295D6AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1970A570-2766-49C2-83A4-9898E295D6AF}.Release|Any CPU.Build.0 = Release|Any CPU + {34BD3E49-F367-49EA-9F57-1A8876C4C593}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34BD3E49-F367-49EA-9F57-1A8876C4C593}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34BD3E49-F367-49EA-9F57-1A8876C4C593}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34BD3E49-F367-49EA-9F57-1A8876C4C593}.Release|Any CPU.Build.0 = Release|Any CPU + {883E29F8-3B95-4011-9D73-039A90DE5D27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {883E29F8-3B95-4011-9D73-039A90DE5D27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {883E29F8-3B95-4011-9D73-039A90DE5D27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {883E29F8-3B95-4011-9D73-039A90DE5D27}.Release|Any CPU.Build.0 = Release|Any CPU + {3CC6002C-72B6-403D-B413-A100D910885E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CC6002C-72B6-403D-B413-A100D910885E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CC6002C-72B6-403D-B413-A100D910885E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CC6002C-72B6-403D-B413-A100D910885E}.Release|Any CPU.Build.0 = Release|Any CPU + {40E6CFD8-4203-49CA-A3D7-A93A2344F876}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40E6CFD8-4203-49CA-A3D7-A93A2344F876}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40E6CFD8-4203-49CA-A3D7-A93A2344F876}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40E6CFD8-4203-49CA-A3D7-A93A2344F876}.Release|Any CPU.Build.0 = Release|Any CPU + {EE74172D-1E18-4130-B71E-C9FDF04DA0F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE74172D-1E18-4130-B71E-C9FDF04DA0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE74172D-1E18-4130-B71E-C9FDF04DA0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE74172D-1E18-4130-B71E-C9FDF04DA0F6}.Release|Any CPU.Build.0 = Release|Any CPU + {34186806-2CBE-41C0-8AEB-1825DC28F946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34186806-2CBE-41C0-8AEB-1825DC28F946}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34186806-2CBE-41C0-8AEB-1825DC28F946}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34186806-2CBE-41C0-8AEB-1825DC28F946}.Release|Any CPU.Build.0 = Release|Any CPU + {CABE2B33-0131-4889-AF63-A7241629C96A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CABE2B33-0131-4889-AF63-A7241629C96A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CABE2B33-0131-4889-AF63-A7241629C96A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CABE2B33-0131-4889-AF63-A7241629C96A}.Release|Any CPU.Build.0 = Release|Any CPU + {ADEF69DC-34D8-4AF6-8F92-FD38E78321FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADEF69DC-34D8-4AF6-8F92-FD38E78321FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADEF69DC-34D8-4AF6-8F92-FD38E78321FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADEF69DC-34D8-4AF6-8F92-FD38E78321FF}.Release|Any CPU.Build.0 = Release|Any CPU + {FC7B68AD-00EB-4D71-8D30-6C4992E46AB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC7B68AD-00EB-4D71-8D30-6C4992E46AB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC7B68AD-00EB-4D71-8D30-6C4992E46AB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC7B68AD-00EB-4D71-8D30-6C4992E46AB0}.Release|Any CPU.Build.0 = Release|Any CPU + {188DA57A-95F6-440F-85FD-1BC5CE269037}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {188DA57A-95F6-440F-85FD-1BC5CE269037}.Debug|Any CPU.Build.0 = Debug|Any CPU + {188DA57A-95F6-440F-85FD-1BC5CE269037}.Release|Any CPU.ActiveCfg = Release|Any CPU + {188DA57A-95F6-440F-85FD-1BC5CE269037}.Release|Any CPU.Build.0 = Release|Any CPU + {3ECA4E78-310C-4E3F-BEB7-422340D9D87E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3ECA4E78-310C-4E3F-BEB7-422340D9D87E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3ECA4E78-310C-4E3F-BEB7-422340D9D87E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3ECA4E78-310C-4E3F-BEB7-422340D9D87E}.Release|Any CPU.Build.0 = Release|Any CPU + {30CC7F8D-60DB-49C5-BE59-81477BFE0376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30CC7F8D-60DB-49C5-BE59-81477BFE0376}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30CC7F8D-60DB-49C5-BE59-81477BFE0376}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30CC7F8D-60DB-49C5-BE59-81477BFE0376}.Release|Any CPU.Build.0 = Release|Any CPU + {F364C57E-F529-4DF3-B2F4-1FF056D45752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F364C57E-F529-4DF3-B2F4-1FF056D45752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F364C57E-F529-4DF3-B2F4-1FF056D45752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F364C57E-F529-4DF3-B2F4-1FF056D45752}.Release|Any CPU.Build.0 = Release|Any CPU + {85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85BE603A-EDD9-4EA0-B1B2-56FB76C03AE6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {325260D6-D5DD-4E06-9DA2-9AF2AD9DE8C8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A32671B6-5470-4F9C-9CD8-4094B9AB0799} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {82A4357C-0A9F-4970-AAEA-216A73D8A73E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F79F86DA-EF84-461E-B7C9-21F2A5C63251} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EE39E186-BD8A-48A6-BCD1-0B41AA481580} + SolutionGuid = {4C265A0A-56EF-41A8-B973-AA764175AA29} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.VisualBasic.Core/ref/Microsoft.VisualBasic.Core.cs b/src/libraries/Microsoft.VisualBasic.Core/ref/Microsoft.VisualBasic.Core.cs index f9270fae1eee..e1f95bc2580b 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/ref/Microsoft.VisualBasic.Core.cs +++ b/src/libraries/Microsoft.VisualBasic.Core/ref/Microsoft.VisualBasic.Core.cs @@ -376,7 +376,7 @@ public sealed partial class FileSystem public static void FilePut(int FileNumber, float Value, long RecordNumber = (long)-1) { } public static void FilePut(int FileNumber, string Value, long RecordNumber = (long)-1, bool StringIsFixedLength = false) { } public static void FilePut(int FileNumber, System.ValueType Value, long RecordNumber = (long)-1) { } - [System.ObsoleteAttribute("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")] + [System.ObsoleteAttribute("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. https://go.microsoft.com/fwlink/?linkid=14202")] public static void FilePut(object FileNumber, object Value, object RecordNumber) { } public static void FilePutObject(int FileNumber, object Value, long RecordNumber = (long)-1) { } public static void FileWidth(int FileNumber, int RecordWidth) { } @@ -606,7 +606,7 @@ public sealed partial class Strings public static string FormatNumber(object? Expression, int NumDigitsAfterDecimal = -1, Microsoft.VisualBasic.TriState IncludeLeadingDigit = Microsoft.VisualBasic.TriState.UseDefault, Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = Microsoft.VisualBasic.TriState.UseDefault, Microsoft.VisualBasic.TriState GroupDigits = Microsoft.VisualBasic.TriState.UseDefault) { throw null; } public static string FormatPercent(object? Expression, int NumDigitsAfterDecimal = -1, Microsoft.VisualBasic.TriState IncludeLeadingDigit = Microsoft.VisualBasic.TriState.UseDefault, Microsoft.VisualBasic.TriState UseParensForNegativeNumbers = Microsoft.VisualBasic.TriState.UseDefault, Microsoft.VisualBasic.TriState GroupDigits = Microsoft.VisualBasic.TriState.UseDefault) { throw null; } public static char GetChar(string str, int Index) { throw null; } - public static int InStr(int StartPos, string? String1, string? String2, [Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute] Microsoft.VisualBasic.CompareMethod Compare = Microsoft.VisualBasic.CompareMethod.Binary) { throw null; } + public static int InStr(int Start, string? String1, string? String2, [Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute] Microsoft.VisualBasic.CompareMethod Compare = Microsoft.VisualBasic.CompareMethod.Binary) { throw null; } public static int InStr(string? String1, string? String2, [Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute] Microsoft.VisualBasic.CompareMethod Compare = Microsoft.VisualBasic.CompareMethod.Binary) { throw null; } public static int InStrRev(string? StringCheck, string? StringMatch, int Start = -1, [Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute] Microsoft.VisualBasic.CompareMethod Compare = Microsoft.VisualBasic.CompareMethod.Binary) { throw null; } public static string? Join(object?[] SourceArray, string? Delimiter = " ") { throw null; } diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/ApiCompatBaseline.txt b/src/libraries/Microsoft.VisualBasic.Core/src/ApiCompatBaseline.txt new file mode 100644 index 000000000000..1f68939b3527 --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic.Core/src/ApiCompatBaseline.txt @@ -0,0 +1,11 @@ +# C# doesn't permit setting the parameter name of the setter. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ComClassAttribute.InterfaceShadows.set(System.Boolean)' is 'AutoPropertyValue' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.DateString.set(System.String)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.TimeOfDay.set(System.DateTime)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.TimeString.set(System.String)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.Today.set(System.DateTime)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Description.set(System.String)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.HelpContext.set(System.Int32)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.HelpFile.set(System.String)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Number.set(System.Int32)' is 'Value' in the implementation but 'value' in the contract. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Source.set(System.String)' is 'Value' in the implementation but 'value' in the contract. diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/ILLink/ILLink.Suppressions.xml b/src/libraries/Microsoft.VisualBasic.Core/src/ILLink/ILLink.Suppressions.xml index cf740615a9cd..2092add4c502 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/ILLink/ILLink.Suppressions.xml +++ b/src/libraries/Microsoft.VisualBasic.Core/src/ILLink/ILLink.Suppressions.xml @@ -109,6 +109,12 @@ member M:Microsoft.VisualBasic.CompilerServices.IDOUtils.CreateRefCallSiteAndInvoke(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]) + + ILLink + IL2075 + member + M:Microsoft.VisualBasic.CompilerServices.IDOUtils.CreateInvoker(System.Int32) + ILLink IL2075 @@ -158,4 +164,4 @@ M:Microsoft.VisualBasic.CompilerServices.Symbols.Container.LookupNamedMembers(System.String) - \ No newline at end of file + diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/MatchingRefApiCompatBaseline.txt b/src/libraries/Microsoft.VisualBasic.Core/src/MatchingRefApiCompatBaseline.txt index 510cc69f3a24..9e1495016772 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/MatchingRefApiCompatBaseline.txt +++ b/src/libraries/Microsoft.VisualBasic.Core/src/MatchingRefApiCompatBaseline.txt @@ -21,3 +21,15 @@ TypesMustExist : Type 'Microsoft.VisualBasic.CompilerServices.SiteDelegate4' doe TypesMustExist : Type 'Microsoft.VisualBasic.CompilerServices.SiteDelegate5' does not exist in the reference but it does exist in the implementation. TypesMustExist : Type 'Microsoft.VisualBasic.CompilerServices.SiteDelegate6' does not exist in the reference but it does exist in the implementation. TypesMustExist : Type 'Microsoft.VisualBasic.CompilerServices.SiteDelegate7' does not exist in the reference but it does exist in the implementation. + +# C# doesn't permit setting the parameter name of the setter. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ComClassAttribute.InterfaceShadows.set(System.Boolean)' is 'value' in the reference but 'AutoPropertyValue' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.DateString.set(System.String)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.TimeOfDay.set(System.DateTime)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.TimeString.set(System.String)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.DateAndTime.Today.set(System.DateTime)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Description.set(System.String)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.HelpContext.set(System.Int32)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.HelpFile.set(System.String)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Number.set(System.Int32)' is 'value' in the reference but 'Value' in the implementation. +ParameterNamesCannotChange : Parameter name on member 'Microsoft.VisualBasic.ErrObject.Source.set(System.String)' is 'value' in the reference but 'Value' in the implementation. diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj index 0243aff0faea..98b58060d2d6 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj @@ -30,6 +30,7 @@ + @@ -112,6 +113,9 @@ + + + diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb new file mode 100644 index 000000000000..390bb13ece0c --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb @@ -0,0 +1,69 @@ +' Licensed to the .NET Foundation under one or more agreements. +' The .NET Foundation licenses this file to you under the MIT license. + +Imports System.Collections.Generic +Imports System.Runtime.InteropServices + +Namespace Microsoft.VisualBasic.CompilerServices + + ' Implements a MRU collection for caching dynamic methods used in IDO late binding. + Friend Class CacheDict(Of TKey, TValue) + ' The Dictionary to quickly access cached data + Private ReadOnly _dict As Dictionary(Of TKey, KeyInfo) + ' MRU sorted linked list + Private ReadOnly _list As LinkedList(Of TKey) + ' Maximum size + Private ReadOnly _maxSize As Integer + + Friend Sub New(ByVal maxSize As Integer) + _dict = New Dictionary(Of TKey, KeyInfo) + _list = New LinkedList(Of TKey) + _maxSize = maxSize + End Sub + + Friend Sub Add(ByVal key As TKey, ByVal value As TValue) + Dim info As New KeyInfo + If _dict.TryGetValue(key, info) Then + ' If the key is already in the collection, remove it + _list.Remove(info.List) + ElseIf (_list.Count = _maxSize) Then + ' Age out the last element if we hit the max size + Dim last As LinkedListNode(Of TKey) = _list.Last + _list.RemoveLast() + _dict.Remove(last.Value) + End If + + ' Add the new element + Dim node As New LinkedListNode(Of TKey)(key) + _list.AddFirst(node) + _dict.Item(key) = New KeyInfo(value, node) + End Sub + + Friend Function TryGetValue(ByVal key As TKey, ByRef value As TValue) As Boolean + Dim info As New KeyInfo + If _dict.TryGetValue(key, info) Then + Dim list As LinkedListNode(Of TKey) = info.List + If (list.Previous IsNot Nothing) Then + _list.Remove(list) + _list.AddFirst(list) + End If + value = info.Value + Return True + End If + value = Nothing + Return False + End Function + + ' KeyInfo to store in the dictionary + Private Structure KeyInfo + Friend ReadOnly Value As TValue + Friend ReadOnly List As LinkedListNode(Of TKey) + + Friend Sub New(ByVal v As TValue, ByVal l As LinkedListNode(Of TKey)) + Value = v + List = l + End Sub + End Structure + End Class + +End Namespace diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb index fc5a085194b0..abf5300501f9 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb @@ -6,6 +6,7 @@ Imports System.Collections.Generic Imports System.Dynamic Imports System.Linq.Expressions Imports System.Reflection +Imports System.Reflection.Emit Imports System.Runtime.CompilerServices Imports Microsoft.VisualBasic.CompilerServices.NewLateBinding @@ -1047,15 +1048,6 @@ Namespace Microsoft.VisualBasic.CompilerServices End Function End Class - Public Delegate Function SiteDelegate0(ByVal site As CallSite, ByVal instance As Object) As Object - Public Delegate Function SiteDelegate1(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object) As Object - Public Delegate Function SiteDelegate2(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object) As Object - Public Delegate Function SiteDelegate3(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object) As Object - Public Delegate Function SiteDelegate4(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object) As Object - Public Delegate Function SiteDelegate5(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object) As Object - Public Delegate Function SiteDelegate6(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object, ByRef arg5 As Object) As Object - Public Delegate Function SiteDelegate7(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object, ByRef arg5 As Object, ByRef arg6 As Object) As Object - Friend Class IDOUtils Private Sub New() @@ -1278,6 +1270,9 @@ Namespace Microsoft.VisualBasic.CompilerServices Return If(valueExpression.Type.Equals(GetType(Object)), valueExpression, Expression.Convert(valueExpression, GetType(Object))) End Function + ' MRU Dictionary of invoker delegates. We keep 16 most recently used ones, rest is GC'd + Private Shared Invokers As New CacheDict(Of Integer, Func(Of CallSiteBinder, Object, Object(), Object))(16) + Public Shared Function CreateRefCallSiteAndInvoke( ByVal action As CallSiteBinder, ByVal instance As Object, @@ -1285,55 +1280,71 @@ Namespace Microsoft.VisualBasic.CompilerServices action = GetCachedBinder(action) - Select Case arguments.Length - Case 0 - Dim c As CallSite(Of SiteDelegate0) = CallSite(Of SiteDelegate0).Create(action) - Return c.Target.Invoke(c, instance) - Case 1 - Dim c As CallSite(Of SiteDelegate1) = CallSite(Of SiteDelegate1).Create(action) - Return c.Target.Invoke(c, instance, arguments(0)) - Case 2 - Dim c As CallSite(Of SiteDelegate2) = CallSite(Of SiteDelegate2).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1)) - Case 3 - Dim c As CallSite(Of SiteDelegate3) = CallSite(Of SiteDelegate3).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2)) - Case 4 - Dim c As CallSite(Of SiteDelegate4) = CallSite(Of SiteDelegate4).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3)) - Case 5 - Dim c As CallSite(Of SiteDelegate5) = CallSite(Of SiteDelegate5).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4)) - Case 6 - Dim c As CallSite(Of SiteDelegate6) = CallSite(Of SiteDelegate6).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4), arguments(5)) - Case 7 - Dim c As CallSite(Of SiteDelegate7) = CallSite(Of SiteDelegate7).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4), arguments(5), arguments(6)) - Case Else - Dim signature(arguments.Length + 2) As Type - Dim refObject As Type = GetType(Object).MakeByRefType() - signature(0) = GetType(CallSite) ' First argument is a call site - signature(1) = GetType(Object) ' Second is the instance (ByVal) - signature(signature.Length - 1) = GetType(Object) ' Last type is the return type - For i As Integer = 2 To signature.Length - 2 ' All arguments are ByRef - signature(i) = refObject - Next + Dim Invoker As Func(Of CallSiteBinder, Object, Object(), Object) = Nothing - Dim c As CallSite = CallSite.Create(Expression.GetDelegateType(signature), action) - Dim args(arguments.Length + 1) As Object - args(0) = c - args(1) = instance - arguments.CopyTo(args, 2) - Dim siteTarget As System.Delegate = DirectCast(c.GetType().GetField("Target").GetValue(c), System.Delegate) - Try - Dim result As Object = siteTarget.DynamicInvoke(args) - Array.Copy(args, 2, arguments, 0, arguments.Length) - Return result - Catch ie As TargetInvocationException - Throw ie.InnerException - End Try - End Select + SyncLock Invokers + If Not Invokers.TryGetValue(arguments.Length, Invoker) Then + Invoker = CreateInvoker(arguments.Length) + Invokers.Add(arguments.Length, Invoker) + End If + End SyncLock + + Return Invoker.Invoke(action, instance, arguments) + End Function + + ''' Creates an invoker, a function such as: + ''' + ''' Delegate Function InvokerDelegate3(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object) As Object + ''' + ''' Function Invoker3(action as CallSiteBinder, instance as Object, args as Object()) as Object + ''' Dim site as CallSite(Of InvokerDelegate3) + ''' site = CallSite(Of Func(Of InvokerDelegate3).Create(action) + ''' ' args(0), args(1) and args(2) are passed ByRef + ''' return site.Target.Invoke(site, instance, args(0), args(1), args(2)) + ''' End Function + Private Shared Function CreateInvoker(ByVal ArgLength As Integer) As Func(Of CallSiteBinder, Object, Object(), Object) + ' Useful Types + Dim ObjectType As Type = GetType(Object) + Dim ObjectRefType As Type = ObjectType.MakeByRefType() + Dim CallSiteBinderType As Type = GetType(CallSiteBinder) + + ' Call Site Delegate Signature + Dim CallSiteSignature(ArgLength + 2) As Type + CallSiteSignature(0) = GetType(CallSite) ' CallSite must go first + CallSiteSignature(1) = ObjectType ' Instance: Object + For i As Integer = 2 To CallSiteSignature.Length - 2 ' Arguments: Object& + CallSiteSignature(i) = ObjectRefType + Next + CallSiteSignature(CallSiteSignature.Length - 1) = ObjectType ' Result: Object + + ' Call Site Delegate + Dim CallSiteDelegate As Type = Expression.GetDelegateType(CallSiteSignature) + Dim CallSiteType As Type = GetType(CallSite(Of )).MakeGenericType(CallSiteDelegate) + + ' Invoker(CallSiteBinder, Instance as Object, Args as Object()) + Dim InvokerMethod As New DynamicMethod("Invoker", ObjectType, {CallSiteBinderType, ObjectType, GetType(Object())}, True) + + ' Dim cs as CallSite(Of delegateType) = CallSite(Of delegateType).Create(Action) + Dim il As ILGenerator = InvokerMethod.GetILGenerator() + Dim site As LocalBuilder = il.DeclareLocal(CallSiteType) + il.Emit(OpCodes.Ldarg_0) + il.Emit(OpCodes.Call, CallSiteType.GetMethod("Create", {CallSiteBinderType})) + il.Emit(OpCodes.Stloc, site) + + ' return site.Target.Invoke(site, Instance, ref args(0), ref args(1), ...) + il.Emit(OpCodes.Ldloc, site) + il.Emit(OpCodes.Ldfld, CallSiteType.GetField("Target")) + il.Emit(OpCodes.Ldloc, site) + il.Emit(OpCodes.Ldarg_1) 'Instance + For i As Integer = 0 To ArgLength - 1 + il.Emit(OpCodes.Ldarg_2) + il.Emit(OpCodes.Ldc_I4, i) + il.Emit(OpCodes.Ldelema, ObjectType) ' ref arg(i) + Next + il.Emit(OpCodes.Callvirt, CallSiteDelegate.GetMethod("Invoke")) + il.Emit(OpCodes.Ret) + + Return DirectCast(InvokerMethod.CreateDelegate(GetType(Func(Of CallSiteBinder, Object, Object(), Object))), Func(Of CallSiteBinder, Object, Object(), Object)) End Function Public Shared Function CreateFuncCallSiteAndInvoke( diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/FileSystem.vb b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/FileSystem.vb index 7caadfba707e..a1939f1f2c02 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/FileSystem.vb +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/FileSystem.vb @@ -719,7 +719,7 @@ Namespace Microsoft.VisualBasic End Try End Sub - + Public Sub FilePut(ByVal FileNumber As Object, ByVal Value As Object, Optional ByVal RecordNumber As Object = -1) Throw New ArgumentException(SR.UseFilePutObject) End Sub diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj b/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj index 74c7f14cfeeb..aa7d1139f0a6 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj @@ -39,6 +39,7 @@ + diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs b/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs new file mode 100644 index 000000000000..d8efbe675fd4 --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs @@ -0,0 +1,116 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Dynamic; +using Xunit; + +namespace Microsoft.VisualBasic.CompilerServices.Tests +{ + public class NewLateBindingTests + { + private sealed class OptionalValuesType : DynamicObject + { + public object F1(T p1 = default) + { + return $"{typeof(T)}, {ToString(p1)}"; + } + public object F2(T p1 = default, int? p2 = 2) + { + return $"{typeof(T)}, {ToString(p1)}, {ToString(p2)}"; + } + public object F3(object p1, T p2 = default, int? p3 = 3) + { + return $"{typeof(T)}, {ToString(p2)}, {ToString(p3)}"; + } + public object F4(object p1, object p2, T p3 = default, int? p4 = 4) + { + return $"{typeof(T)}, {ToString(p3)}, {ToString(p4)}"; + } + public object F5(object p1, object p2, object p3, T p4 = default, int? p5 = 5) + { + return $"{typeof(T)}, {ToString(p4)}, {ToString(p5)}"; + } + public object F6(object p1, object p2, object p3, object p4, T p5 = default, int? p6 = 6) + { + return $"{typeof(T)}, {ToString(p5)}, {ToString(p6)}"; + } + public object F7(object p1, object p2, object p3, object p4, object p5, T p6 = default, int? p7 = 7) + { + return $"{typeof(T)}, {ToString(p6)}, {ToString(p7)}"; + } + public object F8(object p1, object p2, object p3, object p4, object p5, object p6, T p7 = default, int? p8 = 8) + { + return $"{typeof(T)}, {ToString(p7)}, {ToString(p8)}"; + } + private static string ToString(object obj) => obj?.ToString() ?? "null"; + } + + public static IEnumerable LateCall_OptionalValues_Data() + { + // If System.Type.Missing is used for a parameter with type parameter type, + // System.Reflection.Missing is used in type inference. This matches .NET Framework behavior. + + yield return CreateData("F1", new object[] { -1 }, null, "System.Int32, -1"); + yield return CreateData("F1", new object[] { Type.Missing }, null, "System.Reflection.Missing, null"); + yield return CreateData("F1", new object[] { Type.Missing }, new[] { typeof(int) }, "System.Int32, 0"); + + yield return CreateData("F2", new object[] { 1, -1 }, null, "System.Int32, 1, -1"); + yield return CreateData("F2", new object[] { 1, Type.Missing }, null, "System.Int32, 1, 2"); + yield return CreateData("F2", new object[] { Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 2"); + yield return CreateData("F2", new object[] { Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 2"); + + yield return CreateData("F3", new object[] { 1, 2, -1 }, null, "System.Int32, 2, -1"); + yield return CreateData("F3", new object[] { 1, 2, Type.Missing }, null, "System.Int32, 2, 3"); + yield return CreateData("F3", new object[] { 1, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 3"); + yield return CreateData("F3", new object[] { 1, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 3"); + + yield return CreateData("F4", new object[] { 1, 2, 3, -1 }, null, "System.Int32, 3, -1"); + yield return CreateData("F4", new object[] { 1, 2, 3, Type.Missing }, null, "System.Int32, 3, 4"); + yield return CreateData("F4", new object[] { 1, 2, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 4"); + yield return CreateData("F4", new object[] { 1, 2, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 4"); + + yield return CreateData("F5", new object[] { 1, 2, 3, 4, -1 }, null, "System.Int32, 4, -1"); + yield return CreateData("F5", new object[] { 1, 2, 3, 4, Type.Missing }, null, "System.Int32, 4, 5"); + yield return CreateData("F5", new object[] { 1, 2, 3, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 5"); + yield return CreateData("F5", new object[] { 1, 2, 3, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 5"); + + yield return CreateData("F6", new object[] { 1, 2, 3, 4, 5, -1 }, null, "System.Int32, 5, -1"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, 5, Type.Missing }, null, "System.Int32, 5, 6"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 6"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 6"); + + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, 6, -1 }, null, "System.Int32, 6, -1"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing }, null, "System.Int32, 6, 7"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 7"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 7"); + + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, 7, -1 }, null, "System.Int32, 7, -1"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, 7, Type.Missing }, null, "System.Int32, 7, 8"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 8"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 8"); + + static object[] CreateData(string memberName, object[] arguments, Type[] typeArguments, string expectedValue) => new object[] { memberName, arguments, typeArguments, expectedValue }; + } + + [Theory] + [MemberData(nameof(LateCall_OptionalValues_Data))] + public void LateCall_OptionalValues(string memberName, object[] arguments, Type[] typeArguments, string expectedValue) + { + // NewLateBinding.LateCall() corresponds to a call to the member when using late binding: + // Dim instance = New OptionalValuesType() + // instance.Member(arguments) + var actualValue = NewLateBinding.LateCall( + Instance: new OptionalValuesType(), + Type: null, + MemberName: memberName, + Arguments: arguments, + ArgumentNames: null, + TypeArguments: typeArguments, + CopyBack: null, + IgnoreReturn: true); + Assert.Equal(expectedValue, actualValue); + } + } +} diff --git a/src/libraries/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.sln b/src/libraries/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.sln index eec2060ba761..4fb427ed0751 100644 --- a/src/libraries/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.sln +++ b/src/libraries/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives.Tests", "tests\Microsoft.Win32.Primitives.Tests.csproj", "{3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0}" - ProjectSection(ProjectDependencies) = postProject - {8FFE99C0-22F8-4462-B839-970EAC1B3472} = {8FFE99C0-22F8-4462-B839-970EAC1B3472} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{069C76AC-B41A-4E17-A066-12233592145D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives", "src\Microsoft.Win32.Primitives.csproj", "{8FFE99C0-22F8-4462-B839-970EAC1B3472}" - ProjectSection(ProjectDependencies) = postProject - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED} = {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives", "ref\Microsoft.Win32.Primitives.csproj", "{EA142E29-EE37-4751-868B-27516AE0A209}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives", "ref\Microsoft.Win32.Primitives.csproj", "{4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives", "src\Microsoft.Win32.Primitives.csproj", "{B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Primitives.Tests", "tests\Microsoft.Win32.Primitives.Tests.csproj", "{B43D6BB6-1760-4DB9-87CB-792D42846C62}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{681251A0-97EE-4A46-B78B-8DCB7D071448}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{04266CFA-9B2A-4A22-9FC1-92197EF2A9A9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6AA7FA31-E2BA-4CE0-9625-3616F443928E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{75E8E37F-C551-47B1-A62B-EE78C96BBDF0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{36DED890-FD7B-46EA-AC8A-6F430D418376}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F0E407F9-0902-4122-A170-C2FCEA59519D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B06A77C7-85BC-4B2D-8321-8E46F69354AB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{283001F4-06E2-473B-90C7-CB35AEB7A46E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F0B26CEF-1482-4272-AD7B-D4BE2297F9AB}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {069C76AC-B41A-4E17-A066-12233592145D} = {B06A77C7-85BC-4B2D-8321-8E46F69354AB} + {B43D6BB6-1760-4DB9-87CB-792D42846C62} = {B06A77C7-85BC-4B2D-8321-8E46F69354AB} + {EA142E29-EE37-4751-868B-27516AE0A209} = {283001F4-06E2-473B-90C7-CB35AEB7A46E} + {681251A0-97EE-4A46-B78B-8DCB7D071448} = {283001F4-06E2-473B-90C7-CB35AEB7A46E} + {04266CFA-9B2A-4A22-9FC1-92197EF2A9A9} = {283001F4-06E2-473B-90C7-CB35AEB7A46E} + {36DED890-FD7B-46EA-AC8A-6F430D418376} = {283001F4-06E2-473B-90C7-CB35AEB7A46E} + {F0E407F9-0902-4122-A170-C2FCEA59519D} = {283001F4-06E2-473B-90C7-CB35AEB7A46E} + {B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E} = {F0B26CEF-1482-4272-AD7B-D4BE2297F9AB} + {75E8E37F-C551-47B1-A62B-EE78C96BBDF0} = {F0B26CEF-1482-4272-AD7B-D4BE2297F9AB} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0}.Release|Any CPU.Build.0 = Release|Any CPU - {8FFE99C0-22F8-4462-B839-970EAC1B3472}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FFE99C0-22F8-4462-B839-970EAC1B3472}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FFE99C0-22F8-4462-B839-970EAC1B3472}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FFE99C0-22F8-4462-B839-970EAC1B3472}.Release|Any CPU.Build.0 = Release|Any CPU - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED}.Release|Any CPU.Build.0 = Release|Any CPU - {6AA7FA31-E2BA-4CE0-9625-3616F443928E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AA7FA31-E2BA-4CE0-9625-3616F443928E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AA7FA31-E2BA-4CE0-9625-3616F443928E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AA7FA31-E2BA-4CE0-9625-3616F443928E}.Release|Any CPU.Build.0 = Release|Any CPU + {069C76AC-B41A-4E17-A066-12233592145D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {069C76AC-B41A-4E17-A066-12233592145D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {069C76AC-B41A-4E17-A066-12233592145D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {069C76AC-B41A-4E17-A066-12233592145D}.Release|Any CPU.Build.0 = Release|Any CPU + {EA142E29-EE37-4751-868B-27516AE0A209}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA142E29-EE37-4751-868B-27516AE0A209}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA142E29-EE37-4751-868B-27516AE0A209}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA142E29-EE37-4751-868B-27516AE0A209}.Release|Any CPU.Build.0 = Release|Any CPU + {B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3BBD7D9-30F3-43D3-9D6A-C9BD5E19D32E}.Release|Any CPU.Build.0 = Release|Any CPU + {B43D6BB6-1760-4DB9-87CB-792D42846C62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B43D6BB6-1760-4DB9-87CB-792D42846C62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B43D6BB6-1760-4DB9-87CB-792D42846C62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B43D6BB6-1760-4DB9-87CB-792D42846C62}.Release|Any CPU.Build.0 = Release|Any CPU + {681251A0-97EE-4A46-B78B-8DCB7D071448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {681251A0-97EE-4A46-B78B-8DCB7D071448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {681251A0-97EE-4A46-B78B-8DCB7D071448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {681251A0-97EE-4A46-B78B-8DCB7D071448}.Release|Any CPU.Build.0 = Release|Any CPU + {04266CFA-9B2A-4A22-9FC1-92197EF2A9A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04266CFA-9B2A-4A22-9FC1-92197EF2A9A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04266CFA-9B2A-4A22-9FC1-92197EF2A9A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04266CFA-9B2A-4A22-9FC1-92197EF2A9A9}.Release|Any CPU.Build.0 = Release|Any CPU + {75E8E37F-C551-47B1-A62B-EE78C96BBDF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75E8E37F-C551-47B1-A62B-EE78C96BBDF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75E8E37F-C551-47B1-A62B-EE78C96BBDF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75E8E37F-C551-47B1-A62B-EE78C96BBDF0}.Release|Any CPU.Build.0 = Release|Any CPU + {36DED890-FD7B-46EA-AC8A-6F430D418376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36DED890-FD7B-46EA-AC8A-6F430D418376}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36DED890-FD7B-46EA-AC8A-6F430D418376}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36DED890-FD7B-46EA-AC8A-6F430D418376}.Release|Any CPU.Build.0 = Release|Any CPU + {F0E407F9-0902-4122-A170-C2FCEA59519D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0E407F9-0902-4122-A170-C2FCEA59519D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0E407F9-0902-4122-A170-C2FCEA59519D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0E407F9-0902-4122-A170-C2FCEA59519D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3B17C130-FF2C-4B41-82C6-FADF4ED7FDA0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8FFE99C0-22F8-4462-B839-970EAC1B3472} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4DB14BDE-4B2C-4F08-9FE9-789BFE78F3ED} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {6AA7FA31-E2BA-4CE0-9625-3616F443928E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {904B2FDB-F1D7-4CE0-B0CD-FFDF8C51FDF8} + SolutionGuid = {B6D42557-6A7E-4DEB-83B6-1A5BD020735D} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.sln b/src/libraries/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.sln index 2a04c0ec4316..7c6ca850d6d2 100644 --- a/src/libraries/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.sln +++ b/src/libraries/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.sln @@ -1,60 +1,156 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl.Tests", "tests\Microsoft.Win32.Registry.AccessControl.Tests.csproj", "{C2B7761E-A4C0-4285-8B83-CC426A1494FA}" - ProjectSection(ProjectDependencies) = postProject - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2} = {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F9B18052-9FB9-474A-9A6A-F322DED4F7CD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl", "src\Microsoft.Win32.Registry.AccessControl.csproj", "{0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2}" - ProjectSection(ProjectDependencies) = postProject - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED} = {389CCAC2-E1C2-4185-AC01-2035CB99B5ED} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl", "ref\Microsoft.Win32.Registry.AccessControl.csproj", "{97F37414-7633-4B76-AFA4-284E26894FB4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl", "ref\Microsoft.Win32.Registry.AccessControl.csproj", "{389CCAC2-E1C2-4185-AC01-2035CB99B5ED}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl", "src\Microsoft.Win32.Registry.AccessControl.csproj", "{9A0E9CD8-33FA-4E02-8EB6-5685CD84D727}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.AccessControl.Tests", "tests\Microsoft.Win32.Registry.AccessControl.Tests.csproj", "{BC8FAA75-A595-475E-B947-FA2D1E225B48}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{2C94FB35-3663-4B1E-B66F-E47E5575B6C9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4309CA21-32B5-46FB-BD91-7FD19C4D131B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{AAF5420B-CA34-477A-A3A2-B03030A1949D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{D6296AE6-1A36-4344-847A-D8EA5BED0411}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{C33A1003-EC82-4905-94C6-D3CB81736BC5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9341070F-8A24-45FD-96FF-DC936EC9FE4C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DD5B2888-463A-4AB6-911F-EB0BEA47951A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CDDC6542-7D8D-44D1-9DE4-C805A5551DEA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{90BF8334-49FC-4035-8A3E-095B74F792A5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{AB01DE07-3A0A-426F-80D1-A9EA048D70E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{EC1A2447-AF21-4688-BC5D-601B900A164E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{36F1318C-596B-48ED-8BFD-958A1F2B6933}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{542AEFBA-0C61-4539-A145-168B4BFE87A7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{40846142-A4C2-4DB9-9E73-2BAB367EC629}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{06B0C5DE-E943-4F94-AB51-EF72C7AB3D08}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CF04704F-254D-4328-8386-3C0037F30AD3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{ACB48990-67CD-4827-8BF3-260AC172C384}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EE4F7430-A7B7-4937-97EA-93BAC39FE918}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F9B18052-9FB9-474A-9A6A-F322DED4F7CD} = {CF04704F-254D-4328-8386-3C0037F30AD3} + {BC8FAA75-A595-475E-B947-FA2D1E225B48} = {CF04704F-254D-4328-8386-3C0037F30AD3} + {97F37414-7633-4B76-AFA4-284E26894FB4} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {2C94FB35-3663-4B1E-B66F-E47E5575B6C9} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {AAF5420B-CA34-477A-A3A2-B03030A1949D} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {D6296AE6-1A36-4344-847A-D8EA5BED0411} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {9341070F-8A24-45FD-96FF-DC936EC9FE4C} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {CDDC6542-7D8D-44D1-9DE4-C805A5551DEA} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {AB01DE07-3A0A-426F-80D1-A9EA048D70E6} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {36F1318C-596B-48ED-8BFD-958A1F2B6933} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {40846142-A4C2-4DB9-9E73-2BAB367EC629} = {ACB48990-67CD-4827-8BF3-260AC172C384} + {9A0E9CD8-33FA-4E02-8EB6-5685CD84D727} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {C33A1003-EC82-4905-94C6-D3CB81736BC5} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {DD5B2888-463A-4AB6-911F-EB0BEA47951A} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {90BF8334-49FC-4035-8A3E-095B74F792A5} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {EC1A2447-AF21-4688-BC5D-601B900A164E} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {542AEFBA-0C61-4539-A145-168B4BFE87A7} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + {06B0C5DE-E943-4F94-AB51-EF72C7AB3D08} = {EE4F7430-A7B7-4937-97EA-93BAC39FE918} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C2B7761E-A4C0-4285-8B83-CC426A1494FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2B7761E-A4C0-4285-8B83-CC426A1494FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2B7761E-A4C0-4285-8B83-CC426A1494FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2B7761E-A4C0-4285-8B83-CC426A1494FA}.Release|Any CPU.Build.0 = Release|Any CPU - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2}.Release|Any CPU.Build.0 = Release|Any CPU - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED}.Release|Any CPU.Build.0 = Release|Any CPU - {4309CA21-32B5-46FB-BD91-7FD19C4D131B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4309CA21-32B5-46FB-BD91-7FD19C4D131B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4309CA21-32B5-46FB-BD91-7FD19C4D131B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4309CA21-32B5-46FB-BD91-7FD19C4D131B}.Release|Any CPU.Build.0 = Release|Any CPU + {F9B18052-9FB9-474A-9A6A-F322DED4F7CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9B18052-9FB9-474A-9A6A-F322DED4F7CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9B18052-9FB9-474A-9A6A-F322DED4F7CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9B18052-9FB9-474A-9A6A-F322DED4F7CD}.Release|Any CPU.Build.0 = Release|Any CPU + {97F37414-7633-4B76-AFA4-284E26894FB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97F37414-7633-4B76-AFA4-284E26894FB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97F37414-7633-4B76-AFA4-284E26894FB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97F37414-7633-4B76-AFA4-284E26894FB4}.Release|Any CPU.Build.0 = Release|Any CPU + {9A0E9CD8-33FA-4E02-8EB6-5685CD84D727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A0E9CD8-33FA-4E02-8EB6-5685CD84D727}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A0E9CD8-33FA-4E02-8EB6-5685CD84D727}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A0E9CD8-33FA-4E02-8EB6-5685CD84D727}.Release|Any CPU.Build.0 = Release|Any CPU + {BC8FAA75-A595-475E-B947-FA2D1E225B48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC8FAA75-A595-475E-B947-FA2D1E225B48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC8FAA75-A595-475E-B947-FA2D1E225B48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC8FAA75-A595-475E-B947-FA2D1E225B48}.Release|Any CPU.Build.0 = Release|Any CPU + {2C94FB35-3663-4B1E-B66F-E47E5575B6C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C94FB35-3663-4B1E-B66F-E47E5575B6C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C94FB35-3663-4B1E-B66F-E47E5575B6C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C94FB35-3663-4B1E-B66F-E47E5575B6C9}.Release|Any CPU.Build.0 = Release|Any CPU + {9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EE80D0C-FD0C-4E89-9EBE-5D77567C6E53}.Release|Any CPU.Build.0 = Release|Any CPU + {AAF5420B-CA34-477A-A3A2-B03030A1949D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAF5420B-CA34-477A-A3A2-B03030A1949D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAF5420B-CA34-477A-A3A2-B03030A1949D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAF5420B-CA34-477A-A3A2-B03030A1949D}.Release|Any CPU.Build.0 = Release|Any CPU + {D6296AE6-1A36-4344-847A-D8EA5BED0411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6296AE6-1A36-4344-847A-D8EA5BED0411}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6296AE6-1A36-4344-847A-D8EA5BED0411}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6296AE6-1A36-4344-847A-D8EA5BED0411}.Release|Any CPU.Build.0 = Release|Any CPU + {C33A1003-EC82-4905-94C6-D3CB81736BC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C33A1003-EC82-4905-94C6-D3CB81736BC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C33A1003-EC82-4905-94C6-D3CB81736BC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C33A1003-EC82-4905-94C6-D3CB81736BC5}.Release|Any CPU.Build.0 = Release|Any CPU + {9341070F-8A24-45FD-96FF-DC936EC9FE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9341070F-8A24-45FD-96FF-DC936EC9FE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9341070F-8A24-45FD-96FF-DC936EC9FE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9341070F-8A24-45FD-96FF-DC936EC9FE4C}.Release|Any CPU.Build.0 = Release|Any CPU + {DD5B2888-463A-4AB6-911F-EB0BEA47951A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD5B2888-463A-4AB6-911F-EB0BEA47951A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD5B2888-463A-4AB6-911F-EB0BEA47951A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD5B2888-463A-4AB6-911F-EB0BEA47951A}.Release|Any CPU.Build.0 = Release|Any CPU + {CDDC6542-7D8D-44D1-9DE4-C805A5551DEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDDC6542-7D8D-44D1-9DE4-C805A5551DEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDDC6542-7D8D-44D1-9DE4-C805A5551DEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDDC6542-7D8D-44D1-9DE4-C805A5551DEA}.Release|Any CPU.Build.0 = Release|Any CPU + {90BF8334-49FC-4035-8A3E-095B74F792A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90BF8334-49FC-4035-8A3E-095B74F792A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90BF8334-49FC-4035-8A3E-095B74F792A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90BF8334-49FC-4035-8A3E-095B74F792A5}.Release|Any CPU.Build.0 = Release|Any CPU + {AB01DE07-3A0A-426F-80D1-A9EA048D70E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB01DE07-3A0A-426F-80D1-A9EA048D70E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB01DE07-3A0A-426F-80D1-A9EA048D70E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB01DE07-3A0A-426F-80D1-A9EA048D70E6}.Release|Any CPU.Build.0 = Release|Any CPU + {EC1A2447-AF21-4688-BC5D-601B900A164E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC1A2447-AF21-4688-BC5D-601B900A164E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC1A2447-AF21-4688-BC5D-601B900A164E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC1A2447-AF21-4688-BC5D-601B900A164E}.Release|Any CPU.Build.0 = Release|Any CPU + {36F1318C-596B-48ED-8BFD-958A1F2B6933}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36F1318C-596B-48ED-8BFD-958A1F2B6933}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36F1318C-596B-48ED-8BFD-958A1F2B6933}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36F1318C-596B-48ED-8BFD-958A1F2B6933}.Release|Any CPU.Build.0 = Release|Any CPU + {542AEFBA-0C61-4539-A145-168B4BFE87A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {542AEFBA-0C61-4539-A145-168B4BFE87A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {542AEFBA-0C61-4539-A145-168B4BFE87A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {542AEFBA-0C61-4539-A145-168B4BFE87A7}.Release|Any CPU.Build.0 = Release|Any CPU + {40846142-A4C2-4DB9-9E73-2BAB367EC629}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40846142-A4C2-4DB9-9E73-2BAB367EC629}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40846142-A4C2-4DB9-9E73-2BAB367EC629}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40846142-A4C2-4DB9-9E73-2BAB367EC629}.Release|Any CPU.Build.0 = Release|Any CPU + {06B0C5DE-E943-4F94-AB51-EF72C7AB3D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06B0C5DE-E943-4F94-AB51-EF72C7AB3D08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06B0C5DE-E943-4F94-AB51-EF72C7AB3D08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06B0C5DE-E943-4F94-AB51-EF72C7AB3D08}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C2B7761E-A4C0-4285-8B83-CC426A1494FA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0E23F29E-6BB0-4B94-A5DA-B5E50601E0F2} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {389CCAC2-E1C2-4185-AC01-2035CB99B5ED} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {4309CA21-32B5-46FB-BD91-7FD19C4D131B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E2062894-CBCC-49AF-9508-20D203AE3880} + SolutionGuid = {E4C2B201-85CD-4255-91AF-B179414B9679} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Win32.Registry/Microsoft.Win32.Registry.sln b/src/libraries/Microsoft.Win32.Registry/Microsoft.Win32.Registry.sln index 73244f72afd1..c5d910288483 100644 --- a/src/libraries/Microsoft.Win32.Registry/Microsoft.Win32.Registry.sln +++ b/src/libraries/Microsoft.Win32.Registry/Microsoft.Win32.Registry.sln @@ -1,60 +1,142 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.Tests", "tests\Microsoft.Win32.Registry.Tests.csproj", "{20A2BA2C-5517-483F-8FFE-643441A59852}" - ProjectSection(ProjectDependencies) = postProject - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F} = {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F4F537EB-4436-4407-9A42-A75FE9CEECE0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "src\Microsoft.Win32.Registry.csproj", "{D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F}" - ProjectSection(ProjectDependencies) = postProject - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18} = {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "ref\Microsoft.Win32.Registry.csproj", "{FC5B0E37-024C-4A09-9080-AA78F2BCE4A0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "ref\Microsoft.Win32.Registry.csproj", "{EEC02D4E-217E-4B4D-A7DA-5038FAD44A18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "src\Microsoft.Win32.Registry.csproj", "{3446E090-1587-4D16-AE6A-99C1788E86A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry.Tests", "tests\Microsoft.Win32.Registry.Tests.csproj", "{E9123189-58BC-41A8-83A0-C46E74ED8160}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{2889DB84-1F70-44F3-8BF7-3DB35A7E6099}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{971EBAFE-C07F-4638-B505-6BC894F9A52A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CC7AEF63-5AE0-4A16-9DD7-0A55B539D906}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{8469BFF7-430A-4C3B-BDFC-16E6F7F82280}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{0761E6E6-15AE-4FE7-8BF4-E01A20E99871}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D1F64653-14D3-4933-8C53-243B7017980D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{CF9B2263-BA4F-4A70-9777-6E8E81DCB122}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{10599055-F62F-45C1-A273-9CA54EAF1394}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{464F315E-8377-42DD-A8FB-A466DF8607D0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{655A6DDF-6180-43D9-B472-3F7B68EFABFD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{92AC7F6E-2016-44CD-9717-FCE380056C72}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{37130CB0-83C8-40E0-A1EB-7FCEF29A64FD}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F4F537EB-4436-4407-9A42-A75FE9CEECE0} = {655A6DDF-6180-43D9-B472-3F7B68EFABFD} + {E9123189-58BC-41A8-83A0-C46E74ED8160} = {655A6DDF-6180-43D9-B472-3F7B68EFABFD} + {FC5B0E37-024C-4A09-9080-AA78F2BCE4A0} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {2889DB84-1F70-44F3-8BF7-3DB35A7E6099} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {D1F64653-14D3-4933-8C53-243B7017980D} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {10599055-F62F-45C1-A273-9CA54EAF1394} = {92AC7F6E-2016-44CD-9717-FCE380056C72} + {3446E090-1587-4D16-AE6A-99C1788E86A6} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {CC7AEF63-5AE0-4A16-9DD7-0A55B539D906} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {8469BFF7-430A-4C3B-BDFC-16E6F7F82280} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {0761E6E6-15AE-4FE7-8BF4-E01A20E99871} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {CF9B2263-BA4F-4A70-9777-6E8E81DCB122} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + {464F315E-8377-42DD-A8FB-A466DF8607D0} = {37130CB0-83C8-40E0-A1EB-7FCEF29A64FD} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {20A2BA2C-5517-483F-8FFE-643441A59852}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20A2BA2C-5517-483F-8FFE-643441A59852}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20A2BA2C-5517-483F-8FFE-643441A59852}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20A2BA2C-5517-483F-8FFE-643441A59852}.Release|Any CPU.Build.0 = Release|Any CPU - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F}.Release|Any CPU.Build.0 = Release|Any CPU - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18}.Release|Any CPU.Build.0 = Release|Any CPU - {971EBAFE-C07F-4638-B505-6BC894F9A52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {971EBAFE-C07F-4638-B505-6BC894F9A52A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {971EBAFE-C07F-4638-B505-6BC894F9A52A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {971EBAFE-C07F-4638-B505-6BC894F9A52A}.Release|Any CPU.Build.0 = Release|Any CPU + {F4F537EB-4436-4407-9A42-A75FE9CEECE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4F537EB-4436-4407-9A42-A75FE9CEECE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4F537EB-4436-4407-9A42-A75FE9CEECE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4F537EB-4436-4407-9A42-A75FE9CEECE0}.Release|Any CPU.Build.0 = Release|Any CPU + {FC5B0E37-024C-4A09-9080-AA78F2BCE4A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC5B0E37-024C-4A09-9080-AA78F2BCE4A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC5B0E37-024C-4A09-9080-AA78F2BCE4A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC5B0E37-024C-4A09-9080-AA78F2BCE4A0}.Release|Any CPU.Build.0 = Release|Any CPU + {3446E090-1587-4D16-AE6A-99C1788E86A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3446E090-1587-4D16-AE6A-99C1788E86A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3446E090-1587-4D16-AE6A-99C1788E86A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3446E090-1587-4D16-AE6A-99C1788E86A6}.Release|Any CPU.Build.0 = Release|Any CPU + {E9123189-58BC-41A8-83A0-C46E74ED8160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9123189-58BC-41A8-83A0-C46E74ED8160}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9123189-58BC-41A8-83A0-C46E74ED8160}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9123189-58BC-41A8-83A0-C46E74ED8160}.Release|Any CPU.Build.0 = Release|Any CPU + {2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D6AA4C5-D63F-44B1-B8BD-44B3688F2ABA}.Release|Any CPU.Build.0 = Release|Any CPU + {2889DB84-1F70-44F3-8BF7-3DB35A7E6099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2889DB84-1F70-44F3-8BF7-3DB35A7E6099}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2889DB84-1F70-44F3-8BF7-3DB35A7E6099}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2889DB84-1F70-44F3-8BF7-3DB35A7E6099}.Release|Any CPU.Build.0 = Release|Any CPU + {4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4ED3C97E-D16D-4DFF-A440-B4979FE5B9C9}.Release|Any CPU.Build.0 = Release|Any CPU + {F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8FEEEB3-1CEA-4EE9-ACE4-D147860E7A0F}.Release|Any CPU.Build.0 = Release|Any CPU + {CC7AEF63-5AE0-4A16-9DD7-0A55B539D906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC7AEF63-5AE0-4A16-9DD7-0A55B539D906}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC7AEF63-5AE0-4A16-9DD7-0A55B539D906}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC7AEF63-5AE0-4A16-9DD7-0A55B539D906}.Release|Any CPU.Build.0 = Release|Any CPU + {A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5C81CBD-DA02-4F78-A4E2-D1A550BAF33A}.Release|Any CPU.Build.0 = Release|Any CPU + {8469BFF7-430A-4C3B-BDFC-16E6F7F82280}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8469BFF7-430A-4C3B-BDFC-16E6F7F82280}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8469BFF7-430A-4C3B-BDFC-16E6F7F82280}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8469BFF7-430A-4C3B-BDFC-16E6F7F82280}.Release|Any CPU.Build.0 = Release|Any CPU + {C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C25B7434-4DEF-4EE3-9321-5F6D5AF12ABC}.Release|Any CPU.Build.0 = Release|Any CPU + {0761E6E6-15AE-4FE7-8BF4-E01A20E99871}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0761E6E6-15AE-4FE7-8BF4-E01A20E99871}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0761E6E6-15AE-4FE7-8BF4-E01A20E99871}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0761E6E6-15AE-4FE7-8BF4-E01A20E99871}.Release|Any CPU.Build.0 = Release|Any CPU + {D1F64653-14D3-4933-8C53-243B7017980D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1F64653-14D3-4933-8C53-243B7017980D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1F64653-14D3-4933-8C53-243B7017980D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1F64653-14D3-4933-8C53-243B7017980D}.Release|Any CPU.Build.0 = Release|Any CPU + {CF9B2263-BA4F-4A70-9777-6E8E81DCB122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF9B2263-BA4F-4A70-9777-6E8E81DCB122}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF9B2263-BA4F-4A70-9777-6E8E81DCB122}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF9B2263-BA4F-4A70-9777-6E8E81DCB122}.Release|Any CPU.Build.0 = Release|Any CPU + {10599055-F62F-45C1-A273-9CA54EAF1394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10599055-F62F-45C1-A273-9CA54EAF1394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10599055-F62F-45C1-A273-9CA54EAF1394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10599055-F62F-45C1-A273-9CA54EAF1394}.Release|Any CPU.Build.0 = Release|Any CPU + {464F315E-8377-42DD-A8FB-A466DF8607D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {464F315E-8377-42DD-A8FB-A466DF8607D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {464F315E-8377-42DD-A8FB-A466DF8607D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {464F315E-8377-42DD-A8FB-A466DF8607D0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {20A2BA2C-5517-483F-8FFE-643441A59852} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D3F18ACC-D327-4ABB-BA6C-E9C34A041B2F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {EEC02D4E-217E-4B4D-A7DA-5038FAD44A18} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {971EBAFE-C07F-4638-B505-6BC894F9A52A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1ED9DC79-D6FD-4791-A7D5-C09573807723} + SolutionGuid = {B41F6F2B-9220-4A42-A69F-4BF2CA7E201A} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.Win32.SystemEvents/Microsoft.Win32.SystemEvents.sln b/src/libraries/Microsoft.Win32.SystemEvents/Microsoft.Win32.SystemEvents.sln index 26aa082a8511..485c48861b0a 100644 --- a/src/libraries/Microsoft.Win32.SystemEvents/Microsoft.Win32.SystemEvents.sln +++ b/src/libraries/Microsoft.Win32.SystemEvents/Microsoft.Win32.SystemEvents.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents.Tests", "tests\Microsoft.Win32.SystemEvents.Tests.csproj", "{8B21F7AD-928E-474C-875A-83D753BB8A28}" - ProjectSection(ProjectDependencies) = postProject - {91DD22C6-521E-49F9-84E8-1D65BAB97776} = {91DD22C6-521E-49F9-84E8-1D65BAB97776} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B3F56323-6D66-4576-BBF3-32ACAADE3223}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "src\Microsoft.Win32.SystemEvents.csproj", "{91DD22C6-521E-49F9-84E8-1D65BAB97776}" - ProjectSection(ProjectDependencies) = postProject - {90BAFB3A-C396-4323-AC4F-5F968230AD22} = {90BAFB3A-C396-4323-AC4F-5F968230AD22} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{18B0D99E-2938-4151-A0B1-2ABEDC98E4ED}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "ref\Microsoft.Win32.SystemEvents.csproj", "{90BAFB3A-C396-4323-AC4F-5F968230AD22}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "ref\Microsoft.Win32.SystemEvents.csproj", "{A586D099-E8B0-4C2F-B4AD-BCFA98429DBF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "src\Microsoft.Win32.SystemEvents.csproj", "{20C56707-2960-4DF2-BF76-5556304EE7CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents.Tests", "tests\Microsoft.Win32.SystemEvents.Tests.csproj", "{86962B5A-AC38-44FA-B25B-74ABAC57E534}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D5E761C4-CFDD-4902-9C11-5B8A11192A56}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{73535C05-CA2B-4F54-9F94-68C7F10CF896}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9956C4C9-53F3-4560-96D0-4519B40007BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{0B92B094-1AB6-45C7-84FF-9BCFD067C322}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{A0B47D96-8B49-4113-8D15-8F1E0E669F71}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A9BF0AA9-6D75-4D4A-BC58-2EAA43FAE1BF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8F5D0346-E540-4E92-B583-CD3F925695BE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{40E1401A-97F4-4156-9D57-A1AD1B07736B}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B3F56323-6D66-4576-BBF3-32ACAADE3223} = {A9BF0AA9-6D75-4D4A-BC58-2EAA43FAE1BF} + {86962B5A-AC38-44FA-B25B-74ABAC57E534} = {A9BF0AA9-6D75-4D4A-BC58-2EAA43FAE1BF} + {18B0D99E-2938-4151-A0B1-2ABEDC98E4ED} = {8F5D0346-E540-4E92-B583-CD3F925695BE} + {A586D099-E8B0-4C2F-B4AD-BCFA98429DBF} = {8F5D0346-E540-4E92-B583-CD3F925695BE} + {D5E761C4-CFDD-4902-9C11-5B8A11192A56} = {8F5D0346-E540-4E92-B583-CD3F925695BE} + {0B92B094-1AB6-45C7-84FF-9BCFD067C322} = {8F5D0346-E540-4E92-B583-CD3F925695BE} + {A0B47D96-8B49-4113-8D15-8F1E0E669F71} = {8F5D0346-E540-4E92-B583-CD3F925695BE} + {20C56707-2960-4DF2-BF76-5556304EE7CF} = {40E1401A-97F4-4156-9D57-A1AD1B07736B} + {9956C4C9-53F3-4560-96D0-4519B40007BB} = {40E1401A-97F4-4156-9D57-A1AD1B07736B} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8B21F7AD-928E-474C-875A-83D753BB8A28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8B21F7AD-928E-474C-875A-83D753BB8A28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8B21F7AD-928E-474C-875A-83D753BB8A28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8B21F7AD-928E-474C-875A-83D753BB8A28}.Release|Any CPU.Build.0 = Release|Any CPU - {91DD22C6-521E-49F9-84E8-1D65BAB97776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {91DD22C6-521E-49F9-84E8-1D65BAB97776}.Debug|Any CPU.Build.0 = Debug|Any CPU - {91DD22C6-521E-49F9-84E8-1D65BAB97776}.Release|Any CPU.ActiveCfg = Release|Any CPU - {91DD22C6-521E-49F9-84E8-1D65BAB97776}.Release|Any CPU.Build.0 = Release|Any CPU - {90BAFB3A-C396-4323-AC4F-5F968230AD22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90BAFB3A-C396-4323-AC4F-5F968230AD22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90BAFB3A-C396-4323-AC4F-5F968230AD22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90BAFB3A-C396-4323-AC4F-5F968230AD22}.Release|Any CPU.Build.0 = Release|Any CPU - {73535C05-CA2B-4F54-9F94-68C7F10CF896}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73535C05-CA2B-4F54-9F94-68C7F10CF896}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73535C05-CA2B-4F54-9F94-68C7F10CF896}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73535C05-CA2B-4F54-9F94-68C7F10CF896}.Release|Any CPU.Build.0 = Release|Any CPU + {B3F56323-6D66-4576-BBF3-32ACAADE3223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3F56323-6D66-4576-BBF3-32ACAADE3223}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3F56323-6D66-4576-BBF3-32ACAADE3223}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3F56323-6D66-4576-BBF3-32ACAADE3223}.Release|Any CPU.Build.0 = Release|Any CPU + {18B0D99E-2938-4151-A0B1-2ABEDC98E4ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18B0D99E-2938-4151-A0B1-2ABEDC98E4ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18B0D99E-2938-4151-A0B1-2ABEDC98E4ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18B0D99E-2938-4151-A0B1-2ABEDC98E4ED}.Release|Any CPU.Build.0 = Release|Any CPU + {A586D099-E8B0-4C2F-B4AD-BCFA98429DBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A586D099-E8B0-4C2F-B4AD-BCFA98429DBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A586D099-E8B0-4C2F-B4AD-BCFA98429DBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A586D099-E8B0-4C2F-B4AD-BCFA98429DBF}.Release|Any CPU.Build.0 = Release|Any CPU + {20C56707-2960-4DF2-BF76-5556304EE7CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20C56707-2960-4DF2-BF76-5556304EE7CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20C56707-2960-4DF2-BF76-5556304EE7CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20C56707-2960-4DF2-BF76-5556304EE7CF}.Release|Any CPU.Build.0 = Release|Any CPU + {86962B5A-AC38-44FA-B25B-74ABAC57E534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86962B5A-AC38-44FA-B25B-74ABAC57E534}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86962B5A-AC38-44FA-B25B-74ABAC57E534}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86962B5A-AC38-44FA-B25B-74ABAC57E534}.Release|Any CPU.Build.0 = Release|Any CPU + {D5E761C4-CFDD-4902-9C11-5B8A11192A56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5E761C4-CFDD-4902-9C11-5B8A11192A56}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5E761C4-CFDD-4902-9C11-5B8A11192A56}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5E761C4-CFDD-4902-9C11-5B8A11192A56}.Release|Any CPU.Build.0 = Release|Any CPU + {9956C4C9-53F3-4560-96D0-4519B40007BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9956C4C9-53F3-4560-96D0-4519B40007BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9956C4C9-53F3-4560-96D0-4519B40007BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9956C4C9-53F3-4560-96D0-4519B40007BB}.Release|Any CPU.Build.0 = Release|Any CPU + {0B92B094-1AB6-45C7-84FF-9BCFD067C322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B92B094-1AB6-45C7-84FF-9BCFD067C322}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B92B094-1AB6-45C7-84FF-9BCFD067C322}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B92B094-1AB6-45C7-84FF-9BCFD067C322}.Release|Any CPU.Build.0 = Release|Any CPU + {A0B47D96-8B49-4113-8D15-8F1E0E669F71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0B47D96-8B49-4113-8D15-8F1E0E669F71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0B47D96-8B49-4113-8D15-8F1E0E669F71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0B47D96-8B49-4113-8D15-8F1E0E669F71}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8B21F7AD-928E-474C-875A-83D753BB8A28} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {91DD22C6-521E-49F9-84E8-1D65BAB97776} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {90BAFB3A-C396-4323-AC4F-5F968230AD22} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {73535C05-CA2B-4F54-9F94-68C7F10CF896} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0C25BCF9-A5E3-41A8-8426-37B8A1180915} + SolutionGuid = {14621231-E5C2-4B46-9ADC-1182F2721D07} EndGlobalSection EndGlobal diff --git a/src/libraries/Microsoft.XmlSerializer.Generator/Microsoft.XmlSerializer.Generator.sln b/src/libraries/Microsoft.XmlSerializer.Generator/Microsoft.XmlSerializer.Generator.sln index be8656869e89..005d2474bd21 100644 --- a/src/libraries/Microsoft.XmlSerializer.Generator/Microsoft.XmlSerializer.Generator.sln +++ b/src/libraries/Microsoft.XmlSerializer.Generator/Microsoft.XmlSerializer.Generator.sln @@ -1,54 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.XmlSerializer.Generator.Tests", "tests\Microsoft.XmlSerializer.Generator.Tests.csproj", "{0D1E2954-A5C7-4B8C-932A-31EB4A96A737}" - ProjectSection(ProjectDependencies) = postProject - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8} = {80958E8B-2FEB-4F95-83F9-825CA1ED26F8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C1E5B103-D955-40DB-A385-8E5FF9EEBA4E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.XmlSerializer.Generator", "src\Microsoft.XmlSerializer.Generator.csproj", "{80958E8B-2FEB-4F95-83F9-825CA1ED26F8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1BB85182-9517-4E88-8373-F42C699787E9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-Microsoft.XmlSerializer.Generator", "src\Microsoft.XmlSerializer.Generator.csproj", "{3C8417AB-8E73-4EBF-B090-1367F3D23468}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.XmlSerializer.Generator.Tests", "tests\Microsoft.XmlSerializer.Generator.Tests.csproj", "{A90B6063-66BB-486C-8267-43AC8F9C5196}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{71CDAEB3-0F69-4DCD-A720-92270C4C44C8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerializableAssembly", "tests\SerializableAssembly.csproj", "{8B155C6F-4347-453C-8C4C-316D884C15C3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SerializableAssembly", "tests\SerializableAssembly.csproj", "{81BE9FCA-42C2-4EFE-913C-36C291A6DD76}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{B3EA9B7E-FB07-4906-8878-C9DC04988ABC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5E286F47-DA0D-4F8A-A831-38F2426B23D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CA669D8B-43DF-46C8-9501-5C364140DFA7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{AA8B0D66-B511-4AE5-B43F-ABBC2994DB15}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{498F50A9-3151-44C5-AEA9-37C43E78CA8B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{AD97976B-3D69-4689-97E8-DE13A207B45C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{194F4A33-8141-4C36-9EED-F5D5B6137071}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C1E5B103-D955-40DB-A385-8E5FF9EEBA4E} = {498F50A9-3151-44C5-AEA9-37C43E78CA8B} + {A90B6063-66BB-486C-8267-43AC8F9C5196} = {498F50A9-3151-44C5-AEA9-37C43E78CA8B} + {8B155C6F-4347-453C-8C4C-316D884C15C3} = {498F50A9-3151-44C5-AEA9-37C43E78CA8B} + {1BB85182-9517-4E88-8373-F42C699787E9} = {AD97976B-3D69-4689-97E8-DE13A207B45C} + {B3EA9B7E-FB07-4906-8878-C9DC04988ABC} = {AD97976B-3D69-4689-97E8-DE13A207B45C} + {CA669D8B-43DF-46C8-9501-5C364140DFA7} = {AD97976B-3D69-4689-97E8-DE13A207B45C} + {AA8B0D66-B511-4AE5-B43F-ABBC2994DB15} = {AD97976B-3D69-4689-97E8-DE13A207B45C} + {3C8417AB-8E73-4EBF-B090-1367F3D23468} = {194F4A33-8141-4C36-9EED-F5D5B6137071} + {5E286F47-DA0D-4F8A-A831-38F2426B23D3} = {194F4A33-8141-4C36-9EED-F5D5B6137071} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0D1E2954-A5C7-4B8C-932A-31EB4A96A737}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A737}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A737}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A737}.Release|Any CPU.Build.0 = Release|Any CPU - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8}.Release|Any CPU.Build.0 = Release|Any CPU - {71CDAEB3-0F69-4DCD-A720-92270C4C44C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {71CDAEB3-0F69-4DCD-A720-92270C4C44C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {71CDAEB3-0F69-4DCD-A720-92270C4C44C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {71CDAEB3-0F69-4DCD-A720-92270C4C44C8}.Release|Any CPU.Build.0 = Release|Any CPU - {81BE9FCA-42C2-4EFE-913C-36C291A6DD76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81BE9FCA-42C2-4EFE-913C-36C291A6DD76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81BE9FCA-42C2-4EFE-913C-36C291A6DD76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81BE9FCA-42C2-4EFE-913C-36C291A6DD76}.Release|Any CPU.Build.0 = Release|Any CPU + {C1E5B103-D955-40DB-A385-8E5FF9EEBA4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1E5B103-D955-40DB-A385-8E5FF9EEBA4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1E5B103-D955-40DB-A385-8E5FF9EEBA4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1E5B103-D955-40DB-A385-8E5FF9EEBA4E}.Release|Any CPU.Build.0 = Release|Any CPU + {1BB85182-9517-4E88-8373-F42C699787E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BB85182-9517-4E88-8373-F42C699787E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BB85182-9517-4E88-8373-F42C699787E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BB85182-9517-4E88-8373-F42C699787E9}.Release|Any CPU.Build.0 = Release|Any CPU + {3C8417AB-8E73-4EBF-B090-1367F3D23468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C8417AB-8E73-4EBF-B090-1367F3D23468}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C8417AB-8E73-4EBF-B090-1367F3D23468}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C8417AB-8E73-4EBF-B090-1367F3D23468}.Release|Any CPU.Build.0 = Release|Any CPU + {A90B6063-66BB-486C-8267-43AC8F9C5196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A90B6063-66BB-486C-8267-43AC8F9C5196}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A90B6063-66BB-486C-8267-43AC8F9C5196}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A90B6063-66BB-486C-8267-43AC8F9C5196}.Release|Any CPU.Build.0 = Release|Any CPU + {8B155C6F-4347-453C-8C4C-316D884C15C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B155C6F-4347-453C-8C4C-316D884C15C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B155C6F-4347-453C-8C4C-316D884C15C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B155C6F-4347-453C-8C4C-316D884C15C3}.Release|Any CPU.Build.0 = Release|Any CPU + {B3EA9B7E-FB07-4906-8878-C9DC04988ABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3EA9B7E-FB07-4906-8878-C9DC04988ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3EA9B7E-FB07-4906-8878-C9DC04988ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3EA9B7E-FB07-4906-8878-C9DC04988ABC}.Release|Any CPU.Build.0 = Release|Any CPU + {5E286F47-DA0D-4F8A-A831-38F2426B23D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E286F47-DA0D-4F8A-A831-38F2426B23D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E286F47-DA0D-4F8A-A831-38F2426B23D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E286F47-DA0D-4F8A-A831-38F2426B23D3}.Release|Any CPU.Build.0 = Release|Any CPU + {CA669D8B-43DF-46C8-9501-5C364140DFA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA669D8B-43DF-46C8-9501-5C364140DFA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA669D8B-43DF-46C8-9501-5C364140DFA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA669D8B-43DF-46C8-9501-5C364140DFA7}.Release|Any CPU.Build.0 = Release|Any CPU + {AA8B0D66-B511-4AE5-B43F-ABBC2994DB15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA8B0D66-B511-4AE5-B43F-ABBC2994DB15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA8B0D66-B511-4AE5-B43F-ABBC2994DB15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA8B0D66-B511-4AE5-B43F-ABBC2994DB15}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0D1E2954-A5C7-4B8C-932A-31EB4A96A737} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {80958E8B-2FEB-4F95-83F9-825CA1ED26F8} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {71CDAEB3-0F69-4DCD-A720-92270C4C44C8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B97B5A28-1375-4BBF-B90B-67162AE51CC2} + SolutionGuid = {E4BEDA84-BAED-4E86-B18F-8417E2FD10BB} EndGlobalSection EndGlobal diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt index ff432bde5c04..e86ffd8b627e 100644 --- a/src/libraries/Native/Unix/CMakeLists.txt +++ b/src/libraries/Native/Unix/CMakeLists.txt @@ -226,6 +226,7 @@ elseif(CLR_CMAKE_TARGET_TVOS) elseif(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS) #add_subdirectory(System.Net.Security.Native) # TODO: reenable if (NOT "$ENV{ANDROID_OPENSSL_AAR}" STREQUAL "") + set(PREFER_OPENSSL_ANDROID 1) add_subdirectory(System.Security.Cryptography.Native) endif() else() @@ -237,3 +238,8 @@ endif() if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) add_subdirectory(System.Security.Cryptography.Native.Apple) endif() + +# if ANDROID_OPENSSL_AAR is not set - use Android Native Crypto (it's going to replace openssl eventually) +if(CLR_CMAKE_TARGET_ANDROID AND NOT PREFER_OPENSSL_ANDROID) + add_subdirectory(System.Security.Cryptography.Native.Android) +endif() diff --git a/src/libraries/Native/Unix/Common/pal_config.h.in b/src/libraries/Native/Unix/Common/pal_config.h.in index 856bd637ee46..792e695a6858 100644 --- a/src/libraries/Native/Unix/Common/pal_config.h.in +++ b/src/libraries/Native/Unix/Common/pal_config.h.in @@ -7,6 +7,7 @@ #cmakedefine01 HAVE_POSIX_FADVISE64 #cmakedefine01 HAVE_FLOCK64 #cmakedefine01 HAVE_F_DUPFD_CLOEXEC +#cmakedefine01 HAVE_F_FULLFSYNC #cmakedefine01 HAVE_O_CLOEXEC #cmakedefine01 HAVE_GETIFADDRS #cmakedefine01 HAVE_UTSNAME_DOMAINNAME @@ -112,6 +113,7 @@ #cmakedefine01 HAVE_CFMAKERAW #cmakedefine01 HAVE_GETGROUPLIST #cmakedefine01 HAVE_SYS_PROCINFO_H +#cmakedefine01 HAVE_IOSS_H // Mac OS X has stat64, but it is deprecated since plain stat now // provides the same 64-bit aware struct when targeting OS X > 10.5 diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c b/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c index a9eb1d57d74c..99edfd96bcf1 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c @@ -59,12 +59,13 @@ struct SortHandle SearchIteratorNode searchIteratorList[CompareOptionsMask + 1]; }; -typedef struct { UChar* items; size_t size; } UCharList; - // Hiragana character range static const UChar hiraganaStart = 0x3041; static const UChar hiraganaEnd = 0x309e; static const UChar hiraganaToKatakanaOffset = 0x30a1 - 0x3041; +// Length of the fullwidth characters from 'A' to 'Z' +// We'll use it to map the casing of the full width 'A' to 'Z' characters +static const int32_t FullWidthAlphabetRangeLength = 0xFF3A - 0xFF21 + 1; // Mapping between half- and fullwidth characters. // LowerChars are the characters that should sort lower than HigherChars @@ -142,99 +143,101 @@ static int IsHalfFullHigherSymbol(UChar character) } /* -Gets a string of custom collation rules, if necessary. +Fill custom collation rules for ignoreKana cases. Since the CompareOptions flags don't map 1:1 with ICU default functionality, we need to fall back to using custom rules in order to support IgnoreKanaType and IgnoreWidth CompareOptions correctly. */ -static UCharList* GetCustomRules(int32_t options, UColAttributeValue strength, int isIgnoreSymbols) +static void FillIgnoreKanaRules(UChar* completeRules, int32_t* fillIndex, int32_t completeRulesLength, int32_t isIgnoreKanaType) { - int isIgnoreKanaType = (options & CompareOptionsIgnoreKanaType) == CompareOptionsIgnoreKanaType; - int isIgnoreWidth = (options & CompareOptionsIgnoreWidth) == CompareOptionsIgnoreWidth; - - // kana differs at the tertiary level - int needsIgnoreKanaTypeCustomRule = isIgnoreKanaType && strength >= UCOL_TERTIARY; - int needsNotIgnoreKanaTypeCustomRule = !isIgnoreKanaType && strength < UCOL_TERTIARY; - - // character width differs at the tertiary level - int needsIgnoreWidthCustomRule = isIgnoreWidth && strength >= UCOL_TERTIARY; - int needsNotIgnoreWidthCustomRule = !isIgnoreWidth && strength < UCOL_TERTIARY; + UChar compareChar = isIgnoreKanaType ? '=' : '<'; - if (!(needsIgnoreKanaTypeCustomRule || needsNotIgnoreKanaTypeCustomRule || needsIgnoreWidthCustomRule || needsNotIgnoreWidthCustomRule)) - return NULL; + assert((*fillIndex) + (4 * (hiraganaEnd - hiraganaStart + 1)) <= completeRulesLength); + if ((*fillIndex) + (4 * (hiraganaEnd - hiraganaStart + 1)) > completeRulesLength) // check the allocated the size + { + return; + } - UCharList* customRules = (UCharList*)malloc(sizeof(UCharList)); - if (customRules == NULL) + for (UChar hiraganaChar = hiraganaStart; hiraganaChar <= hiraganaEnd; hiraganaChar++) { - return NULL; + // Hiragana is the range 3041 to 3096 & 309D & 309E + if (hiraganaChar <= 0x3096 || hiraganaChar >= 0x309D) // characters between 3096 and 309D are not mapped to katakana + { + completeRules[*fillIndex] = '&'; + completeRules[(*fillIndex) + 1] = hiraganaChar; + completeRules[(*fillIndex) + 2] = compareChar; + completeRules[(*fillIndex) + 3] = hiraganaChar + hiraganaToKatakanaOffset; + (*fillIndex) += 4; + } } +} - // If we need to create customRules, the KanaType custom rule will be 88 kana characters * 4 = 352 chars long - // and the Width custom rule will be at most 212 halfwidth characters * 5 = 1060 chars long. - int capacity = - ((needsIgnoreKanaTypeCustomRule || needsNotIgnoreKanaTypeCustomRule) ? 4 * (hiraganaEnd - hiraganaStart + 1) : 0) + - ((needsIgnoreWidthCustomRule || needsNotIgnoreWidthCustomRule) ? 5 * g_HalfFullCharsLength : 0); +/* +Fill custom collation rules for ignoreWidth cases. - UChar* items; - customRules->items = items = (UChar*)malloc((size_t)capacity * sizeof(UChar)); - if (customRules->items == NULL) +Since the CompareOptions flags don't map 1:1 with ICU default functionality, we need to fall back to using +custom rules in order to support IgnoreKanaType and IgnoreWidth CompareOptions correctly. +*/ +static void FillIgnoreWidthRules(UChar* completeRules, int32_t* fillIndex, int32_t completeRulesLength, int32_t isIgnoreWidth, int32_t isIgnoreCase, int32_t isIgnoreSymbols) +{ + UChar compareChar = isIgnoreWidth ? '=' : '<'; + + UChar lowerChar; + UChar higherChar; + int needsEscape; + + assert((*fillIndex) + (5 * g_HalfFullCharsLength) <= completeRulesLength); + if ((*fillIndex) + (5 * g_HalfFullCharsLength) > completeRulesLength) { - free(customRules); - return NULL; + return; } - if (needsIgnoreKanaTypeCustomRule || needsNotIgnoreKanaTypeCustomRule) + for (int i = 0; i < g_HalfFullCharsLength; i++) { - UChar compareChar = needsIgnoreKanaTypeCustomRule ? '=' : '<'; - - for (UChar hiraganaChar = hiraganaStart; hiraganaChar <= hiraganaEnd; hiraganaChar++) + lowerChar = g_HalfFullLowerChars[i]; + higherChar = g_HalfFullHigherChars[i]; + // the lower chars need to be checked for escaping since they contain ASCII punctuation + needsEscape = NeedsEscape(lowerChar); + + // when isIgnoreSymbols is true and we are not ignoring width, check to see if + // this character is a symbol, and if so skip it + if (!(isIgnoreSymbols && (!isIgnoreWidth) && (needsEscape || IsHalfFullHigherSymbol(higherChar)))) { - // Hiragana is the range 3041 to 3096 & 309D & 309E - if (hiraganaChar <= 0x3096 || hiraganaChar >= 0x309D) // characters between 3096 and 309D are not mapped to katakana + completeRules[*fillIndex] = '&'; + (*fillIndex)++; + + if (needsEscape) { - assert(items - customRules->items <= capacity - 4); - *(items++) = '&'; - *(items++) = hiraganaChar; - *(items++) = compareChar; - *(items++) = hiraganaChar + hiraganaToKatakanaOffset; + completeRules[*fillIndex] = '\\'; + (*fillIndex)++; } + + completeRules[*fillIndex] = lowerChar; + completeRules[(*fillIndex) + 1] = compareChar; + completeRules[(*fillIndex) + 2] = higherChar; + (*fillIndex) += 3; } } - if (needsIgnoreWidthCustomRule || needsNotIgnoreWidthCustomRule) + // When we have isIgnoreWidth is false, we sort the normal width latin alphabet characters before the full width latin alphabet characters + // e.g. `a` < `a` (\uFF41) + // This break the casing of the full width latin alphabet characters. + // e.g. `a` (\uFF41) == `A` (\uFF21). + // we are fixing back this case mapping here. + if (isIgnoreCase && (!isIgnoreWidth)) { - UChar compareChar = needsIgnoreWidthCustomRule ? '=' : '<'; + assert((*fillIndex) + (FullWidthAlphabetRangeLength * 4) <= completeRulesLength); + const int UpperCaseToLowerCaseOffset = 0xFF41 - 0xFF21; - UChar lowerChar; - UChar higherChar; - int needsEscape; - for (int i = 0; i < g_HalfFullCharsLength; i++) + for (UChar ch = 0xFF21; ch <= 0xFF3A; ch++) { - lowerChar = g_HalfFullLowerChars[i]; - higherChar = g_HalfFullHigherChars[i]; - // the lower chars need to be checked for escaping since they contain ASCII punctuation - needsEscape = NeedsEscape(lowerChar); - - // when isIgnoreSymbols is true and we are not ignoring width, check to see if - // this character is a symbol, and if so skip it - if (!(isIgnoreSymbols && needsNotIgnoreWidthCustomRule && (needsEscape || IsHalfFullHigherSymbol(higherChar)))) - { - assert(items - customRules->items <= capacity - 5); - *(items++) = '&'; - if (needsEscape) - { - *(items++) = '\\'; - } - *(items++) = lowerChar; - *(items++) = compareChar; - *(items++) = higherChar; - } + completeRules[*fillIndex] = '&'; + completeRules[(*fillIndex) + 1] = ch + UpperCaseToLowerCaseOffset; + completeRules[(*fillIndex) + 2] = '='; + completeRules[(*fillIndex) + 3] = ch; + (*fillIndex) += 4; } } - - customRules->size = (size_t)(items - customRules->items); - - return customRules; } /* @@ -247,9 +250,11 @@ static UCollator* CloneCollatorWithOptions(const UCollator* pCollator, int32_t o { UColAttributeValue strength = ucol_getStrength(pCollator); - int isIgnoreCase = (options & CompareOptionsIgnoreCase) == CompareOptionsIgnoreCase; - int isIgnoreNonSpace = (options & CompareOptionsIgnoreNonSpace) == CompareOptionsIgnoreNonSpace; - int isIgnoreSymbols = (options & CompareOptionsIgnoreSymbols) == CompareOptionsIgnoreSymbols; + int32_t isIgnoreCase = (options & CompareOptionsIgnoreCase) == CompareOptionsIgnoreCase; + int32_t isIgnoreNonSpace = (options & CompareOptionsIgnoreNonSpace) == CompareOptionsIgnoreNonSpace; + int32_t isIgnoreSymbols = (options & CompareOptionsIgnoreSymbols) == CompareOptionsIgnoreSymbols; + int32_t isIgnoreKanaType = (options & CompareOptionsIgnoreKanaType) == CompareOptionsIgnoreKanaType; + int32_t isIgnoreWidth = (options & CompareOptionsIgnoreWidth) == CompareOptionsIgnoreWidth; if (isIgnoreCase) { @@ -262,34 +267,74 @@ static UCollator* CloneCollatorWithOptions(const UCollator* pCollator, int32_t o } UCollator* pClonedCollator; - UCharList* customRules = GetCustomRules(options, strength, isIgnoreSymbols); - if (customRules == NULL || customRules->size == 0) + + // IgnoreWidth - it would be easy to IgnoreWidth by just setting Strength <= Secondary. + // For any strength under that, the width of the characters will be ignored. + // For strength above that, the width of the characters will be used in differentiation. + // a. However, this doesn’t play nice with IgnoreCase, since these Strength levels are overloaded. + // b. So the plan to support IgnoreWidth is to use customized rules. + // i. Since the character width is differentiated at “Tertiary” strength, we only need to use custom rules in specific cases. + // ii. If (IgnoreWidth == true && Strength > “Secondary”) + // 1. Build up a custom rule set for each half-width character and say that it is equal to the corresponding full-width character. + // a. ex: “0x30F2 = 0xFF66 & 0x30F3 = 0xFF9D & …” + // iii. If (IgnoreWidth == false && Strength <= “Secondary”) + // 1. Build up a custom rule set saying that the half-width and full-width characters have a primary level difference (which will cause it always to be unequal) + // a. Ex. “0x30F2 < 0xFF66 & 0x30F3 < 0xFF9D & …” + // IgnoreKanaType – this works the same way as IgnoreWidth, it uses the set of Hiragana and Katakana characters instead of half-width vs full-width characters to build the rules. + int32_t applyIgnoreKanaTypeCustomRule = isIgnoreKanaType ^ (strength < UCOL_TERTIARY); // kana differs at the tertiary level + int32_t applyIgnoreWidthTypeCustomRule = isIgnoreWidth ^ (strength < UCOL_TERTIARY); // character width differs at the tertiary level + + int32_t customRuleLength = 0; + if (applyIgnoreKanaTypeCustomRule || applyIgnoreWidthTypeCustomRule) + { + // If we need to create customRules, the KanaType custom rule will be 88 kana characters * 4 = 352 chars long + // and the Width custom rule will be at most 212 halfwidth characters * 5 = 1060 chars long. + customRuleLength = (applyIgnoreKanaTypeCustomRule ? 4 * (hiraganaEnd - hiraganaStart + 1) : 0) + + (applyIgnoreWidthTypeCustomRule ? ((5 * g_HalfFullCharsLength) + (isIgnoreCase ? 4 * FullWidthAlphabetRangeLength : 0)) : 0) + + 1; // Adding extra terminator rule at the end to force ICU apply last actual entered rule, otherwise last actual rule get ignored. + } + + if (customRuleLength == 0) { pClonedCollator = ucol_safeClone(pCollator, NULL, NULL, pErr); } else { - int32_t customRuleLength = (int32_t)customRules->size; - - int32_t localeRulesLength; - const UChar* localeRules = ucol_getRules(pCollator, &localeRulesLength); - int32_t completeRulesLength = localeRulesLength + customRuleLength + 1; + int32_t rulesLength; + const UChar* localeRules = ucol_getRules(pCollator, &rulesLength); + int32_t completeRulesLength = rulesLength + customRuleLength + 1; UChar* completeRules = (UChar*)calloc((size_t)completeRulesLength, sizeof(UChar)); - for (int i = 0; i < localeRulesLength; i++) + for (int i = 0; i < rulesLength; i++) { completeRules[i] = localeRules[i]; } - for (int i = 0; i < customRuleLength; i++) + + if (applyIgnoreKanaTypeCustomRule) { - completeRules[localeRulesLength + i] = customRules->items[i]; + FillIgnoreKanaRules(completeRules, &rulesLength, completeRulesLength, isIgnoreKanaType); } - pClonedCollator = ucol_openRules(completeRules, completeRulesLength, UCOL_DEFAULT, strength, NULL, pErr); + assert(rulesLength <= completeRulesLength); + + if (applyIgnoreWidthTypeCustomRule) + { + FillIgnoreWidthRules(completeRules, &rulesLength, completeRulesLength, isIgnoreWidth, isIgnoreCase, isIgnoreSymbols); + } + + assert(rulesLength + 4 <= completeRulesLength); + + // Adding extra terminator rule at the end to force ICU apply last actual entered rule, otherwise last actual rule get ignored. + completeRules[rulesLength] = '&'; + completeRules[rulesLength + 1] = 'a'; + completeRules[rulesLength + 2] = '='; + completeRules[rulesLength + 3] = 'a'; + rulesLength += 4; + + pClonedCollator = ucol_openRules(completeRules, rulesLength, UCOL_DEFAULT, strength, NULL, pErr); free(completeRules); } - free(customRules); if (isIgnoreSymbols) { diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c index fb973ab2f079..669d59f88e99 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c @@ -243,8 +243,6 @@ int32_t GlobalizationNative_GetLocaleInfoString(const UChar* localeName, case LocaleString_NativeCountryName: uloc_getDisplayCountry(locale, locale, value, valueLength, &status); break; - case LocaleString_ListSeparator: - // fall through case LocaleString_ThousandSeparator: status = GetLocaleInfoDecimalFormatSymbol(locale, UNUM_GROUPING_SEPARATOR_SYMBOL, value, valueLength); break; diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h index 4554a052b285..a88400e4b514 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h @@ -19,7 +19,6 @@ typedef enum LocaleString_NativeLanguageName = 0x04, LocaleString_EnglishCountryName = 0x00001002, LocaleString_NativeCountryName = 0x08, - LocaleString_ListSeparator = 0x0C, LocaleString_DecimalSeparator = 0x0E, LocaleString_ThousandSeparator = 0x0F, LocaleString_Digits = 0x00000013, diff --git a/src/libraries/Native/Unix/System.IO.Ports.Native/pal_termios.c b/src/libraries/Native/Unix/System.IO.Ports.Native/pal_termios.c index fbdb53085370..318886c5abc4 100644 --- a/src/libraries/Native/Unix/System.IO.Ports.Native/pal_termios.c +++ b/src/libraries/Native/Unix/System.IO.Ports.Native/pal_termios.c @@ -11,6 +11,9 @@ #if HAVE_SYS_FILIO_H #include #endif +#if HAVE_IOSS_H +#include +#endif /* This is dup of System/IO/Ports/NativeMethods.cs */ enum @@ -352,6 +355,14 @@ int32_t SystemIoPortsNative_TermiosSetSpeed(intptr_t handle, int32_t speed) if (brate == B0) { +#if HAVE_IOSS_H + // Looks like custom speed out of POSIX. Let see if we can set it via specialized call. + brate = speed; + if (ioctl(fd, IOSSIOSPEED, &brate) != -1) + { + return speed; + } +#endif errno = EINVAL; return -1; } @@ -418,6 +429,7 @@ int32_t SystemIoPortsNative_TermiosReset(intptr_t handle, int32_t speed, int32_t { int fd = ToFileDescriptor(handle); struct termios term; + speed_t brate; int ret = 0; if (tcgetattr(fd, &term) < 0) @@ -503,18 +515,23 @@ int32_t SystemIoPortsNative_TermiosReset(intptr_t handle, int32_t speed, int32_t if (speed) { - speed_t brate = SystemIoPortsNative_TermiosSpeed2Rate(speed); + brate = SystemIoPortsNative_TermiosSpeed2Rate(speed); if (brate == B0) { +#if !HAVE_IOSS_H + // We can try to set non-standard speed after tcsetattr(). errno = EINVAL; return -1; +#endif } - + else + { #if HAVE_CFSETSPEED - ret = cfsetspeed(&term, brate); + ret = cfsetspeed(&term, brate); #else - ret = cfsetispeed(&term, brate) & cfsetospeed(&term, brate); + ret = cfsetispeed(&term, brate) & cfsetospeed(&term, brate); #endif + } } if ((ret != 0) || (tcsetattr(fd, TCSANOW, &term) < 0)) @@ -522,5 +539,17 @@ int32_t SystemIoPortsNative_TermiosReset(intptr_t handle, int32_t speed, int32_t return -1; } +#if HAVE_IOSS_H + if (speed && brate == B0) + { + // we have deferred non-standard speed. + brate = speed; + if (ioctl(fd, IOSSIOSPEED, &brate) == -1) + { + return -1; + } + } +#endif + return 0; } diff --git a/src/libraries/Native/Unix/System.Native/pal_io.c b/src/libraries/Native/Unix/System.Native/pal_io.c index ea8375c1b8df..2b780b039a6c 100644 --- a/src/libraries/Native/Unix/System.Native/pal_io.c +++ b/src/libraries/Native/Unix/System.Native/pal_io.c @@ -40,6 +40,15 @@ // Somehow, AIX mangles the definition for this behind a C++ def // Redeclare it here extern int getpeereid(int, uid_t *__restrict__, gid_t *__restrict__); +#elif defined(__sun) +#ifndef _KERNEL +#define _KERNEL +#define UNDEF_KERNEL +#endif +#include +#ifdef UNDEF_KERNEL +#undef _KERNEL +#endif #endif #if HAVE_STAT64 @@ -632,8 +641,16 @@ int32_t SystemNative_FChMod(intptr_t fd, int32_t mode) int32_t SystemNative_FSync(intptr_t fd) { + int fileDescriptor = ToFileDescriptor(fd); + int32_t result; - while ((result = fsync(ToFileDescriptor(fd))) < 0 && errno == EINTR); + while ((result = +#if defined(TARGET_OSX) && HAVE_F_FULLFSYNC + fcntl(fileDescriptor, F_FULLFSYNC) +#else + fsync(fileDescriptor) +#endif + < 0) && errno == EINTR); return result; } @@ -1288,3 +1305,31 @@ int32_t SystemNative_LChflagsCanSetHiddenFlag(void) return false; #endif } + +#ifdef __sun + +int32_t SystemNative_ReadProcessStatusInfo(pid_t pid, ProcessStatus* processStatus) +{ + char statusFilename[64]; + snprintf(statusFilename, sizeof(statusFilename), "/proc/%d/psinfo", pid); + + intptr_t fd; + while ((fd = open(statusFilename, O_RDONLY)) < 0 && errno == EINTR); + if (fd < 0) + { + return 0; + } + + psinfo_t status; + int result = Common_Read(fd, &status, sizeof(psinfo_t)); + close(fd); + if (result >= 0) + { + processStatus->ResidentSetSize = status.pr_rssize * 1024; // pr_rssize is in Kbytes + return 1; + } + + return 0; +} + +#endif // __sun diff --git a/src/libraries/Native/Unix/System.Native/pal_io.h b/src/libraries/Native/Unix/System.Native/pal_io.h index dbc2be8721a9..69b210765e20 100644 --- a/src/libraries/Native/Unix/System.Native/pal_io.h +++ b/src/libraries/Native/Unix/System.Native/pal_io.h @@ -35,6 +35,14 @@ typedef struct uint32_t UserFlags; // user defined flags } FileStatus; +#ifdef __sun +typedef struct +{ + size_t ResidentSetSize; + // add more fields when needed. +} ProcessStatus; +#endif + /* Provide consistent access to nanosecond fields, if they exist. */ /* Seconds are always available through st_atime, st_mtime, st_ctime. */ @@ -710,3 +718,12 @@ PALEXPORT int32_t SystemNative_LChflags(const char* path, uint32_t flags); * Returns true (non-zero) if supported, false (zero) if not. */ PALEXPORT int32_t SystemNative_LChflagsCanSetHiddenFlag(void); + +#ifdef __sun +/** + * Reads the psinfo_t struct and converts into ProcessStatus. + * + * Returns 1 if the process status was read; otherwise, 0. + */ +PALEXPORT int32_t SystemNative_ReadProcessStatusInfo(pid_t pid, ProcessStatus* processStatus); +#endif diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/CMakeLists.txt b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/CMakeLists.txt new file mode 100644 index 000000000000..2ce0293ff249 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/CMakeLists.txt @@ -0,0 +1,37 @@ +project(System.Security.Cryptography.Native.Android C) + +add_compile_options(-Wno-gnu-zero-variadic-macro-arguments) +add_compile_options(-Wno-unused-parameter) + +set(NATIVECRYPTO_SOURCES + pal_jni.c + pal_misc.c + pal_evp.c + pal_evp_cipher.c + pal_hmac.c + pal_bignum.c +) + +add_library(System.Security.Cryptography.Native.Android + SHARED + ${NATIVECRYPTO_SOURCES} + ${VERSION_FILE_PATH} +) + +add_library(System.Security.Cryptography.Native.Android-Static + STATIC + ${NATIVECRYPTO_SOURCES} +) + +set_target_properties(System.Security.Cryptography.Native.Android-Static PROPERTIES OUTPUT_NAME System.Security.Cryptography.Native.Android CLEAN_DIRECT_OUTPUT 1) + +target_link_libraries(System.Security.Cryptography.Native.Android + -llog +) + +# TODO: Use "System.Security.Cryptography.Native.Android" name (will require a lot of csproj changes here and there) +set_target_properties(System.Security.Cryptography.Native.Android PROPERTIES OUTPUT_NAME "System.Security.Cryptography.Native.OpenSsl") +set_target_properties(System.Security.Cryptography.Native.Android-Static PROPERTIES OUTPUT_NAME "System.Security.Cryptography.Native.OpenSsl") + +install_with_stripped_symbols (System.Security.Cryptography.Native.Android PROGRAMS .) +install (TARGETS System.Security.Cryptography.Native.Android-Static DESTINATION .) diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.c new file mode 100644 index 000000000000..4aa0463fdee0 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.c @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_bignum.h" + +jobject CryptoNative_BigNumFromBinary(uint8_t* bytes, int32_t len) +{ + // return new BigInteger(bytes) + JNIEnv* env = GetJNIEnv(); + jbyteArray buffArray = (*env)->NewByteArray(env, len); + (*env)->SetByteArrayRegion(env, buffArray, 0, len, (jbyte*)bytes); + jobject bigNum = (*env)->NewObject(env, g_bigNumClass, g_bigNumCtor, buffArray); + (*env)->DeleteLocalRef(env, buffArray); + return CheckJNIExceptions(env) ? FAIL : bigNum; +} + +int32_t CryptoNative_BigNumToBinary(jobject bignum, uint8_t* output) +{ + // bigNum.toByteArray() + JNIEnv* env = GetJNIEnv(); + jbyteArray bytes = (jbyteArray)(*env)->CallObjectMethod(env, bignum, g_toByteArrayMethod); + jsize bytesLen = (*env)->GetArrayLength(env, bytes); + (*env)->GetByteArrayRegion(env, bytes, 0, bytesLen, (jbyte*)output); + (*env)->DeleteLocalRef(env, bytes); + return CheckJNIExceptions(env) ? FAIL : (int32_t)bytesLen; +} + +int32_t CryptoNative_GetBigNumBytes(jobject bignum) +{ + // bigNum.toByteArray().length(); + JNIEnv* env = GetJNIEnv(); + jbyteArray bytes = (jbyteArray)(*env)->CallObjectMethod(env, bignum, g_toByteArrayMethod); + jsize bytesLen = (*env)->GetArrayLength(env, bytes); + (*env)->DeleteLocalRef(env, bytes); + return CheckJNIExceptions(env) ? FAIL : (int32_t)bytesLen; +} + +void CryptoNative_BigNumDestroy(jobject bignum) +{ + ReleaseGRef(GetJNIEnv(), bignum); +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.h new file mode 100644 index 000000000000..20552ad004b9 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_bignum.h @@ -0,0 +1,11 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include "pal_jni.h" + +PALEXPORT void CryptoNative_BigNumDestroy(jobject bignum); +PALEXPORT jobject CryptoNative_BigNumFromBinary(uint8_t* bytes, int32_t len); +PALEXPORT int32_t CryptoNative_BigNumToBinary(jobject bignum, uint8_t* output); +PALEXPORT int32_t CryptoNative_GetBigNumBytes(jobject bignum); diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.c new file mode 100644 index 000000000000..fe7b72165494 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.c @@ -0,0 +1,135 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_evp.h" + +// just some unique IDs +intptr_t CryptoNative_EvpMd5() { return 101; } +intptr_t CryptoNative_EvpSha1() { return 102; } +intptr_t CryptoNative_EvpSha256() { return 103; } +intptr_t CryptoNative_EvpSha384() { return 104; } +intptr_t CryptoNative_EvpSha512() { return 105; } + +int32_t CryptoNative_EvpMdSize(intptr_t md) +{ + if (md == CryptoNative_EvpSha1()) return 20; + if (md == CryptoNative_EvpSha256()) return 32; + if (md == CryptoNative_EvpSha384()) return 48; + if (md == CryptoNative_EvpSha512()) return 64; + if (md == CryptoNative_EvpMd5()) return 16; + assert(0 && "unexpected type"); + return -1; +} + +int32_t CryptoNative_GetMaxMdSize() +{ + return EVP_MAX_MD_SIZE; +} + +static jobject GetMessageDigestInstance(JNIEnv* env, intptr_t type) +{ + jobject mdName = NULL; + if (type == CryptoNative_EvpSha1()) + mdName = JSTRING("SHA-1"); + else if (type == CryptoNative_EvpSha256()) + mdName = JSTRING("SHA-256"); + else if (type == CryptoNative_EvpSha384()) + mdName = JSTRING("SHA-384"); + else if (type == CryptoNative_EvpSha512()) + mdName = JSTRING("SHA-512"); + else if (type == CryptoNative_EvpMd5()) + mdName = JSTRING("MD5"); + else + return NULL; + + jobject mdObj = (*env)->CallStaticObjectMethod(env, g_mdClass, g_mdGetInstanceMethod, mdName); + (*env)->DeleteLocalRef(env, mdName); + + return CheckJNIExceptions(env) ? FAIL : mdObj; +} + +int32_t CryptoNative_EvpDigestOneShot(intptr_t type, void* source, int32_t sourceSize, uint8_t* md, uint32_t* mdSize) +{ + if (!type || !md || !mdSize || sourceSize < 0) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + + jobject mdObj = GetMessageDigestInstance(env, type); + if (!mdObj) + return FAIL; + + jbyteArray bytes = (*env)->NewByteArray(env, sourceSize); + (*env)->SetByteArrayRegion(env, bytes, 0, sourceSize, (jbyte*) source); + jbyteArray hashedBytes = (jbyteArray)(*env)->CallObjectMethod(env, mdObj, g_mdDigestMethod, bytes); + assert(hashedBytes && "MessageDigest.digest(...) was not expected to return null"); + + jsize hashedBytesLen = (*env)->GetArrayLength(env, hashedBytes); + (*env)->GetByteArrayRegion(env, hashedBytes, 0, hashedBytesLen, (jbyte*) md); + *mdSize = (uint32_t)hashedBytesLen; + + (*env)->DeleteLocalRef(env, bytes); + (*env)->DeleteLocalRef(env, hashedBytes); + (*env)->DeleteLocalRef(env, mdObj); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +jobject CryptoNative_EvpMdCtxCreate(intptr_t type) +{ + JNIEnv* env = GetJNIEnv(); + return (void*)ToGRef(env, GetMessageDigestInstance(env, type)); +} + +int32_t CryptoNative_EvpDigestReset(jobject ctx, intptr_t type) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + (*env)->CallVoidMethod(env, ctx, g_mdResetMethod); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_EvpDigestUpdate(jobject ctx, void* d, int32_t cnt) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + + jbyteArray bytes = (*env)->NewByteArray(env, cnt); + (*env)->SetByteArrayRegion(env, bytes, 0, cnt, (jbyte*) d); + (*env)->CallVoidMethod(env, ctx, g_mdUpdateMethod, bytes); + (*env)->DeleteLocalRef(env, bytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_EvpDigestFinalEx(jobject ctx, uint8_t* md, uint32_t* s) +{ + return CryptoNative_EvpDigestCurrent(ctx, md, s); +} + +int32_t CryptoNative_EvpDigestCurrent(jobject ctx, uint8_t* md, uint32_t* s) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + + jbyteArray bytes = (jbyteArray)(*env)->CallObjectMethod(env, ctx, g_mdDigestCurrentMethodId); + assert(bytes && "digest() was not expected to return null"); + jsize bytesLen = (*env)->GetArrayLength(env, bytes); + *s = (uint32_t)bytesLen; + (*env)->GetByteArrayRegion(env, bytes, 0, bytesLen, (jbyte*) md); + (*env)->DeleteLocalRef(env, bytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +void CryptoNative_EvpMdCtxDestroy(jobject ctx) +{ + ReleaseGRef(GetJNIEnv(), ctx); +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.h new file mode 100644 index 000000000000..bf7ac3fb2779 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp.h @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include "pal_jni.h" + +#define EVP_MAX_MD_SIZE 64 + +PALEXPORT int32_t CryptoNative_EvpMdSize(intptr_t md); +PALEXPORT int32_t CryptoNative_GetMaxMdSize(void); +PALEXPORT intptr_t CryptoNative_EvpMd5(void); +PALEXPORT intptr_t CryptoNative_EvpSha1(void); +PALEXPORT intptr_t CryptoNative_EvpSha256(void); +PALEXPORT intptr_t CryptoNative_EvpSha384(void); +PALEXPORT intptr_t CryptoNative_EvpSha512(void); +PALEXPORT int32_t CryptoNative_EvpDigestOneShot(intptr_t type, void* source, int32_t sourceSize, uint8_t* md, uint32_t* mdSize); +PALEXPORT jobject CryptoNative_EvpMdCtxCreate(intptr_t type); +PALEXPORT int32_t CryptoNative_EvpDigestReset(jobject ctx, intptr_t type); +PALEXPORT int32_t CryptoNative_EvpDigestUpdate(jobject ctx, void* d, int32_t cnt); +PALEXPORT int32_t CryptoNative_EvpDigestFinalEx(jobject ctx, uint8_t* md, uint32_t* s); +PALEXPORT int32_t CryptoNative_EvpDigestCurrent(jobject ctx, uint8_t* md, uint32_t* s); +PALEXPORT void CryptoNative_EvpMdCtxDestroy(jobject ctx); diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.c new file mode 100644 index 000000000000..b7039ab5fa3c --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.c @@ -0,0 +1,181 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_evp_cipher.h" + +// just some unique IDs +intptr_t CryptoNative_EvpAes128Ecb() { return 1001; } +intptr_t CryptoNative_EvpAes128Cbc() { return 1002; } +intptr_t CryptoNative_EvpAes128Cfb8() { return 1003; } +intptr_t CryptoNative_EvpAes128Cfb128() { return 1004; } +intptr_t CryptoNative_EvpAes128Gcm() { return 1005; } +intptr_t CryptoNative_EvpAes128Ccm() { return 1006; } +intptr_t CryptoNative_EvpAes192Ecb() { return 1007; } +intptr_t CryptoNative_EvpAes192Cbc() { return 1008; } +intptr_t CryptoNative_EvpAes192Cfb8() { return 1009; } +intptr_t CryptoNative_EvpAes192Cfb128() { return 1010; } +intptr_t CryptoNative_EvpAes192Gcm() { return 1011; } +intptr_t CryptoNative_EvpAes192Ccm() { return 1012; } +intptr_t CryptoNative_EvpAes256Ecb() { return 1013; } +intptr_t CryptoNative_EvpAes256Cbc() { return 1014; } +intptr_t CryptoNative_EvpAes256Cfb8() { return 1015; } +intptr_t CryptoNative_EvpAes256Cfb128() { return 1016; } +intptr_t CryptoNative_EvpAes256Gcm() { return 1017; } +intptr_t CryptoNative_EvpAes256Ccm() { return 1018; } +intptr_t CryptoNative_EvpDes3Ecb() { return 1019; } +intptr_t CryptoNative_EvpDes3Cbc() { return 1020; } +intptr_t CryptoNative_EvpDes3Cfb8() { return 1021; } +intptr_t CryptoNative_EvpDes3Cfb64() { return 1022; } +intptr_t CryptoNative_EvpDesEcb() { return 1023; } +intptr_t CryptoNative_EvpDesCfb8() { return 1024; } +intptr_t CryptoNative_EvpDesCbc() { return 1025; } +intptr_t CryptoNative_EvpRC2Ecb() { return 1026; } +intptr_t CryptoNative_EvpRC2Cbc() { return 1027; } + +static jobject GetAlgorithmName(JNIEnv* env, intptr_t type) +{ + jobject algName = NULL; + + if ((type == CryptoNative_EvpAes128Cbc()) || + (type == CryptoNative_EvpAes192Cbc()) || + (type == CryptoNative_EvpAes256Cbc())) + { + algName = JSTRING("AES/CBC/NoPadding"); + } + else if ( + (type == CryptoNative_EvpAes128Ecb()) || + (type == CryptoNative_EvpAes192Ecb()) || + (type == CryptoNative_EvpAes256Ecb())) + { + algName = JSTRING("AES/ECB/NoPadding"); + } + else if ( + (type == CryptoNative_EvpAes128Cfb8()) || + (type == CryptoNative_EvpAes192Cfb8()) || + (type == CryptoNative_EvpAes256Cfb8())) + { + algName = JSTRING("AES/CFB/NoPadding"); + } + else + { + LOG_ERROR("unexpected type: %d", (int)type); + return FAIL; + } + return algName; +} + +jobject CryptoNative_EvpCipherCreatePartial(intptr_t type) +{ + JNIEnv* env = GetJNIEnv(); + jobject algName = GetAlgorithmName(env, type); + jobject cipher = ToGRef(env, (*env)->CallStaticObjectMethod(env, g_cipherClass, g_cipherGetInstanceMethod, algName)); + (*env)->DeleteLocalRef(env, algName); + return cipher; +} + +jobject CryptoNative_EvpCipherCreate2(intptr_t type, uint8_t* key, int32_t keyLength, int32_t effectiveKeyLength, uint8_t* iv, int32_t enc) +{ + if (effectiveKeyLength != 0) + { + LOG_ERROR("Non-zero effectiveKeyLength is not supported"); + return FAIL; + } + + // input: 0 for Decrypt, 1 for Encrypt + // Cipher: 2 for Decrypt, 1 for Encrypt + assert(enc == 0 || enc == 1); + int encMode = enc == 0 ? 2 : 1; + + JNIEnv* env = GetJNIEnv(); + + // int ivSize = cipher.getBlockSize(); + // SecretKeySpec keySpec = new SecretKeySpec(key.getEncoded(), "AES"); + // IvParameterSpec ivSpec = new IvParameterSpec(IV); + // cipher.init(encMode, keySpec, ivSpec); + + jobject algName = GetAlgorithmName(env, type); + jobject cipherObj = CryptoNative_EvpCipherCreatePartial(type); + + int blockSize = (*env)->CallIntMethod(env, cipherObj, g_getBlockSizeMethod); + jbyteArray keyBytes = (*env)->NewByteArray(env, keyLength / 8); // bits to bytes, e.g. 256 -> 32 + (*env)->SetByteArrayRegion(env, keyBytes, 0, keyLength / 8, (jbyte*)key); + jbyteArray ivBytes = (*env)->NewByteArray(env, blockSize); + (*env)->SetByteArrayRegion(env, ivBytes, 0, blockSize, (jbyte*)iv); + + jobject sksObj = (*env)->NewObject(env, g_sksClass, g_sksCtor, keyBytes, algName); + jobject ivPsObj = (*env)->NewObject(env, g_ivPsClass, g_ivPsCtor, ivBytes); + (*env)->CallVoidMethod(env, cipherObj, g_cipherInitMethod, encMode, sksObj, ivPsObj); + + (*env)->DeleteLocalRef(env, algName); + (*env)->DeleteLocalRef(env, sksObj); + (*env)->DeleteLocalRef(env, ivPsObj); + (*env)->DeleteLocalRef(env, keyBytes); + (*env)->DeleteLocalRef(env, ivBytes); + + return CheckJNIExceptions(env) ? FAIL : cipherObj; +} + +int32_t CryptoNative_EvpCipherUpdate(jobject ctx, uint8_t* outm, int32_t* outl, uint8_t* in, int32_t inl) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + jbyteArray inDataBytes = (*env)->NewByteArray(env, inl); + (*env)->SetByteArrayRegion(env, inDataBytes, 0, inl, (jbyte*)in); + jbyteArray outDataBytes = (jbyteArray)(*env)->CallObjectMethod(env, ctx, g_cipherUpdateMethod, inDataBytes); + if (outDataBytes) { + jsize outDataBytesLen = (*env)->GetArrayLength(env, outDataBytes); + *outl = (int32_t)outDataBytesLen; + (*env)->GetByteArrayRegion(env, outDataBytes, 0, outDataBytesLen, (jbyte*) outm); + (*env)->DeleteLocalRef(env, outDataBytes); + } else { + *outl = 0; + } + + (*env)->DeleteLocalRef(env, inDataBytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_EvpCipherFinalEx(jobject ctx, uint8_t* outm, int32_t* outl) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + + int blockSize = (*env)->CallIntMethod(env, ctx, g_getBlockSizeMethod); + jbyteArray outBytes = (*env)->NewByteArray(env, blockSize); + int written = (*env)->CallIntMethod(env, ctx, g_cipherDoFinalMethod, outBytes, 0 /*offset*/); + if (written > 0) + (*env)->GetByteArrayRegion(env, outBytes, 0, blockSize, (jbyte*) outm); + *outl = written; + (*env)->DeleteLocalRef(env, outBytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_EvpCipherCtxSetPadding(jobject ctx, int32_t padding) +{ + if (padding == 0) + { + return SUCCESS; + } + else + { + LOG_ERROR("Non-zero padding (%d) is not supported", (int)padding); + return FAIL; + } +} + +int32_t CryptoNative_EvpCipherReset(jobject ctx) +{ + // there is no "reset()" API for an existing Cipher object + return SUCCESS; +} + +void CryptoNative_EvpCipherDestroy(jobject ctx) +{ + ReleaseGRef(GetJNIEnv(), ctx); +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.h new file mode 100644 index 000000000000..e0e11502c798 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_evp_cipher.h @@ -0,0 +1,49 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include "pal_jni.h" +#include "pal_evp.h" + +PALEXPORT jobject CryptoNative_EvpCipherCreate2(intptr_t type, uint8_t* key, int32_t keyLength, int32_t effectiveKeyLength, uint8_t* iv, int32_t enc); +PALEXPORT jobject CryptoNative_EvpCipherCreatePartial(intptr_t type); +PALEXPORT int32_t CryptoNative_EvpCipherSetKeyAndIV(jobject ctx, uint8_t* key, uint8_t* iv, int32_t enc); +PALEXPORT int32_t CryptoNative_EvpCipherSetGcmNonceLength(jobject ctx, int32_t ivLength); +PALEXPORT int32_t CryptoNative_EvpCipherSetCcmNonceLength(jobject ctx, int32_t ivLength); +PALEXPORT void CryptoNative_EvpCipherDestroy(jobject ctx); +PALEXPORT int32_t CryptoNative_EvpCipherReset(jobject ctx); +PALEXPORT int32_t CryptoNative_EvpCipherCtxSetPadding(jobject ctx, int32_t padding); +PALEXPORT int32_t CryptoNative_EvpCipherUpdate(jobject ctx, uint8_t* out, int32_t* outl, uint8_t* in, int32_t inl); +PALEXPORT int32_t CryptoNative_EvpCipherFinalEx(jobject ctx, uint8_t* outm, int32_t* outl); +PALEXPORT int32_t CryptoNative_EvpCipherGetGcmTag(jobject ctx, uint8_t* tag, int32_t tagLength); +PALEXPORT int32_t CryptoNative_EvpCipherSetGcmTag(jobject ctx, uint8_t* tag, int32_t tagLength); +PALEXPORT int32_t CryptoNative_EvpCipherGetCcmTag(jobject ctx, uint8_t* tag, int32_t tagLength); +PALEXPORT int32_t CryptoNative_EvpCipherSetCcmTag(jobject ctx, uint8_t* tag, int32_t tagLength); +PALEXPORT intptr_t CryptoNative_EvpAes128Ecb(void); +PALEXPORT intptr_t CryptoNative_EvpAes128Cbc(void); +PALEXPORT intptr_t CryptoNative_EvpAes128Cfb8(void); +PALEXPORT intptr_t CryptoNative_EvpAes128Cfb128(void); +PALEXPORT intptr_t CryptoNative_EvpAes128Gcm(void); +PALEXPORT intptr_t CryptoNative_EvpAes128Ccm(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Ecb(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Cbc(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Cfb8(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Cfb128(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Gcm(void); +PALEXPORT intptr_t CryptoNative_EvpAes192Ccm(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Ecb(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Cbc(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Cfb8(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Cfb128(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Gcm(void); +PALEXPORT intptr_t CryptoNative_EvpAes256Ccm(void); +PALEXPORT intptr_t CryptoNative_EvpDes3Ecb(void); +PALEXPORT intptr_t CryptoNative_EvpDes3Cbc(void); +PALEXPORT intptr_t CryptoNative_EvpDes3Cfb8(void); +PALEXPORT intptr_t CryptoNative_EvpDes3Cfb64(void); +PALEXPORT intptr_t CryptoNative_EvpDesEcb(void); +PALEXPORT intptr_t CryptoNative_EvpDesCfb8(void); +PALEXPORT intptr_t CryptoNative_EvpDesCbc(void); +PALEXPORT intptr_t CryptoNative_EvpRC2Ecb(void); +PALEXPORT intptr_t CryptoNative_EvpRC2Cbc(void); diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.c new file mode 100644 index 000000000000..390250e95108 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.c @@ -0,0 +1,93 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_evp.h" +#include "pal_hmac.h" + +jobject CryptoNative_HmacCreate(uint8_t* key, int32_t keyLen, intptr_t type) +{ + assert(key || (keyLen == 0)); + assert(keyLen >= 0); + + // Mac mac = Mac.getInstance(algName); + // SecretKeySpec key = new SecretKeySpec(key, algName); + // mac.init(key); + + JNIEnv* env = GetJNIEnv(); + + jstring macName = NULL; + if (type == CryptoNative_EvpSha1()) + macName = JSTRING("HmacSHA1"); + else if (type == CryptoNative_EvpSha256()) + macName = JSTRING("HmacSHA256"); + else if (type == CryptoNative_EvpSha384()) + macName = JSTRING("HmacSHA384"); + else if (type == CryptoNative_EvpSha512()) + macName = JSTRING("HmacSHA512"); + else if (type == CryptoNative_EvpMd5()) + macName = JSTRING("HmacMD5"); + else + return FAIL; + + jbyteArray keyBytes = (*env)->NewByteArray(env, keyLen); + (*env)->SetByteArrayRegion(env, keyBytes, 0, keyLen, (jbyte*)key); + jobject sksObj = (*env)->NewObject(env, g_sksClass, g_sksCtor, keyBytes, macName); + assert(sksObj && "Unable to create an instance of SecretKeySpec"); + jobject macObj = ToGRef(env, (*env)->CallStaticObjectMethod(env, g_macClass, g_macGetInstanceMethod, macName)); + (*env)->CallVoidMethod(env, macObj, g_macInitMethod, sksObj); + (*env)->DeleteLocalRef(env, keyBytes); + (*env)->DeleteLocalRef(env, sksObj); + (*env)->DeleteLocalRef(env, macName); + + return CheckJNIExceptions(env) ? FAIL : macObj; +} + +int32_t CryptoNative_HmacReset(jobject ctx) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + (*env)->CallVoidMethod(env, ctx, g_macResetMethod); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_HmacUpdate(jobject ctx, uint8_t* data, int32_t len) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + jbyteArray dataBytes = (*env)->NewByteArray(env, len); + (*env)->SetByteArrayRegion(env, dataBytes, 0, len, (jbyte*)data); + (*env)->CallVoidMethod(env, ctx, g_macUpdateMethod, dataBytes); + (*env)->DeleteLocalRef(env, dataBytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +int32_t CryptoNative_HmacFinal(jobject ctx, uint8_t* data, int32_t* len) +{ + return CryptoNative_HmacCurrent(ctx, data, len); +} + +int32_t CryptoNative_HmacCurrent(jobject ctx, uint8_t* data, int32_t* len) +{ + if (!ctx) + return FAIL; + + JNIEnv* env = GetJNIEnv(); + jbyteArray dataBytes = (jbyteArray)(*env)->CallObjectMethod(env, ctx, g_macDoFinalMethod); + jsize dataBytesLen = (*env)->GetArrayLength(env, dataBytes); + *len = (int32_t)dataBytesLen; + (*env)->GetByteArrayRegion(env, dataBytes, 0, dataBytesLen, (jbyte*) data); + (*env)->DeleteLocalRef(env, dataBytes); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} + +void CryptoNative_HmacDestroy(jobject ctx) +{ + ReleaseGRef(GetJNIEnv(), ctx); +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.h new file mode 100644 index 000000000000..e44aa5d2570f --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_hmac.h @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include "pal_jni.h" + +PALEXPORT jobject CryptoNative_HmacCreate(uint8_t* key, int32_t keyLen, intptr_t md); +PALEXPORT int32_t CryptoNative_HmacReset(jobject ctx); +PALEXPORT int32_t CryptoNative_HmacUpdate(jobject ctx, uint8_t* data, int32_t len); +PALEXPORT int32_t CryptoNative_HmacFinal(jobject ctx, uint8_t* md, int32_t* len); +PALEXPORT int32_t CryptoNative_HmacCurrent(jobject ctx, uint8_t* md, int32_t* len); +PALEXPORT void CryptoNative_HmacDestroy(jobject ctx); diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.c new file mode 100644 index 000000000000..e67f3fc8445d --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.c @@ -0,0 +1,156 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_jni.h" + +JavaVM* gJvm; + +// java/security/SecureRandom +jclass g_randClass; +jmethodID g_randCtor; +jmethodID g_randNextBytesMethod; + +// java/security/MessageDigest +jclass g_mdClass; +jmethodID g_mdGetInstanceMethod; +jmethodID g_mdDigestMethod; +jmethodID g_mdDigestCurrentMethodId; +jmethodID g_mdResetMethod; +jmethodID g_mdUpdateMethod; + +// javax/crypto/Mac +jclass g_macClass; +jmethodID g_macGetInstanceMethod; +jmethodID g_macDoFinalMethod; +jmethodID g_macUpdateMethod; +jmethodID g_macInitMethod; +jmethodID g_macResetMethod; + +// javax/crypto/spec/SecretKeySpec +jclass g_sksClass; +jmethodID g_sksCtor; + +// javax/crypto/Cipher +jclass g_cipherClass; +jmethodID g_cipherGetInstanceMethod; +jmethodID g_cipherDoFinalMethod; +jmethodID g_cipherUpdateMethod; +jmethodID g_cipherInitMethod; +jmethodID g_getBlockSizeMethod; + +// javax/crypto/spec/IvParameterSpec +jclass g_ivPsClass; +jmethodID g_ivPsCtor; + +// java/math/BigInteger +jclass g_bigNumClass; +jmethodID g_bigNumCtor; +jmethodID g_toByteArrayMethod; + +jobject ToGRef(JNIEnv *env, jobject lref) +{ + if (!lref) + return NULL; + jobject gref = (*env)->NewGlobalRef(env, lref); + (*env)->DeleteLocalRef(env, lref); + return gref; +} + +void ReleaseGRef(JNIEnv *env, jobject gref) +{ + if (gref) + (*env)->DeleteGlobalRef(env, gref); +} + +jclass GetClassGRef(JNIEnv *env, const char* name) +{ + LOG_DEBUG("Finding %s class", name); + jclass klass = ToGRef(env, (*env)->FindClass (env, name)); + if (!klass) { + LOG_ERROR("class %s was not found", name); + assert(klass); + } + return klass; +} + +bool CheckJNIExceptions(JNIEnv* env) +{ + if ((*env)->ExceptionCheck(env)) + { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return true; + } + return false; +} + +jmethodID GetMethod(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) +{ + LOG_DEBUG("Finding %s method", name); + jmethodID mid = isStatic ? (*env)->GetStaticMethodID(env, klass, name, sig) : (*env)->GetMethodID(env, klass, name, sig); + if (!mid) { + LOG_ERROR("method %s %s was not found", name, sig); + assert(mid); + } + return mid; +} + +JNIEnv* GetJNIEnv() +{ + JNIEnv *env; + (*gJvm)->GetEnv(gJvm, (void**)&env, JNI_VERSION_1_6); + if (env) + return env; + jint ret = (*gJvm)->AttachCurrentThreadAsDaemon(gJvm, &env, NULL); + assert(ret == JNI_OK && "Unable to attach thread to JVM"); + (void)ret; + return env; +} + +PALEXPORT JNIEXPORT jint JNICALL +JNI_OnLoad(JavaVM *vm, void *reserved) +{ + (void)reserved; + LOG_INFO("JNI_OnLoad in pal_jni.c"); + gJvm = vm; + + JNIEnv* env = GetJNIEnv(); + + // cache some classes and methods while we're in the thread-safe JNI_OnLoad + g_randClass = GetClassGRef(env, "java/security/SecureRandom"); + g_randCtor = GetMethod(env, false, g_randClass, "", "()V"); + g_randNextBytesMethod = GetMethod(env, false, g_randClass, "nextBytes", "([B)V"); + + g_mdClass = GetClassGRef(env, "java/security/MessageDigest"); + g_mdGetInstanceMethod = GetMethod(env, true, g_mdClass, "getInstance", "(Ljava/lang/String;)Ljava/security/MessageDigest;"); + g_mdResetMethod = GetMethod(env, false, g_mdClass, "reset", "()V"); + g_mdDigestMethod = GetMethod(env, false, g_mdClass, "digest", "([B)[B"); + g_mdDigestCurrentMethodId = GetMethod(env, false, g_mdClass, "digest", "()[B"); + g_mdUpdateMethod = GetMethod(env, false, g_mdClass, "update", "([B)V"); + + g_macClass = GetClassGRef(env, "javax/crypto/Mac"); + g_macGetInstanceMethod = GetMethod(env, true, g_macClass, "getInstance", "(Ljava/lang/String;)Ljavax/crypto/Mac;"); + g_macDoFinalMethod = GetMethod(env, false, g_macClass, "doFinal", "()[B"); + g_macUpdateMethod = GetMethod(env, false, g_macClass, "update", "([B)V"); + g_macInitMethod = GetMethod(env, false, g_macClass, "init", "(Ljava/security/Key;)V"); + g_macResetMethod = GetMethod(env, false, g_macClass, "reset", "()V"); + + g_sksClass = GetClassGRef(env, "javax/crypto/spec/SecretKeySpec"); + g_sksCtor = GetMethod(env, false, g_sksClass, "", "([BLjava/lang/String;)V"); + + g_cipherClass = GetClassGRef(env, "javax/crypto/Cipher"); + g_cipherGetInstanceMethod = GetMethod(env, true, g_cipherClass, "getInstance", "(Ljava/lang/String;)Ljavax/crypto/Cipher;"); + g_getBlockSizeMethod = GetMethod(env, false, g_cipherClass, "getBlockSize", "()I"); + g_cipherDoFinalMethod = GetMethod(env, false, g_cipherClass, "doFinal", "([BI)I"); + g_cipherUpdateMethod = GetMethod(env, false, g_cipherClass, "update", "([B)[B"); + g_cipherInitMethod = GetMethod(env, false, g_cipherClass, "init", "(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V"); + + g_ivPsClass = GetClassGRef(env, "javax/crypto/spec/IvParameterSpec"); + g_ivPsCtor = GetMethod(env, false, g_ivPsClass, "", "([B)V"); + + g_bigNumClass = GetClassGRef(env, "java/math/BigInteger"); + g_bigNumCtor = GetMethod(env, false, g_bigNumClass, "", "([B)V"); + g_toByteArrayMethod = GetMethod(env, false, g_bigNumClass, "toByteArray", "()[B"); + + return JNI_VERSION_1_6; +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.h new file mode 100644 index 000000000000..9d63c8962124 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_jni.h @@ -0,0 +1,69 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include +#include +#include +#include "pal_safecrt.h" + +#define FAIL 0 +#define SUCCESS 1 + +extern JavaVM* gJvm; + +// java/security/SecureRandom +extern jclass g_randClass; +extern jmethodID g_randCtor; +extern jmethodID g_randNextBytesMethod; + +// java/security/MessageDigest +extern jclass g_mdClass; +extern jmethodID g_mdGetInstanceMethod; +extern jmethodID g_mdDigestMethod; +extern jmethodID g_mdDigestCurrentMethodId; +extern jmethodID g_mdResetMethod; +extern jmethodID g_mdUpdateMethod; + +// javax/crypto/Mac +extern jclass g_macClass; +extern jmethodID g_macGetInstanceMethod; +extern jmethodID g_macDoFinalMethod; +extern jmethodID g_macUpdateMethod; +extern jmethodID g_macInitMethod; +extern jmethodID g_macResetMethod; + +// javax/crypto/spec/SecretKeySpec +extern jclass g_sksClass; +extern jmethodID g_sksCtor; + +// javax/crypto/Cipher +extern jclass g_cipherClass; +extern jmethodID g_cipherGetInstanceMethod; +extern jmethodID g_cipherDoFinalMethod; +extern jmethodID g_cipherUpdateMethod; +extern jmethodID g_cipherInitMethod; +extern jmethodID g_getBlockSizeMethod; + +// javax/crypto/spec/IvParameterSpec +extern jclass g_ivPsClass; +extern jmethodID g_ivPsCtor; + +// java/math/BigInteger +extern jclass g_bigNumClass; +extern jmethodID g_bigNumCtor; +extern jmethodID g_toByteArrayMethod; + +// JNI helpers +#define LOG_DEBUG(fmt, ...) ((void)__android_log_print(ANDROID_LOG_DEBUG, "DOTNET", "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)) +#define LOG_INFO(fmt, ...) ((void)__android_log_print(ANDROID_LOG_INFO, "DOTNET", "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)) +#define LOG_ERROR(fmt, ...) ((void)__android_log_print(ANDROID_LOG_ERROR, "DOTNET", "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)) +#define JSTRING(str) ((jstring)(*env)->NewStringUTF(env, str)) + +jobject ToGRef(JNIEnv *env, jobject lref); +void ReleaseGRef(JNIEnv *env, jobject gref); +jclass GetClassGRef(JNIEnv *env, const char* name); +bool CheckJNIExceptions(JNIEnv* env); +jmethodID GetMethod(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig); +JNIEnv* GetJNIEnv(void); diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.c new file mode 100644 index 000000000000..b15892b3eac5 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.c @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "pal_misc.h" + +int32_t CryptoNative_EnsureOpenSslInitialized() +{ + return 0; +} + +int32_t CryptoNative_GetRandomBytes(uint8_t* buff, int32_t len) +{ + assert(g_randClass); + assert(g_randCtor); + JNIEnv* env = GetJNIEnv(); + jobject randObj = (*env)->NewObject(env, g_randClass, g_randCtor); + assert(randObj && "Unable to create an instance of java/security/SecureRandom"); + + jbyteArray buffArray = (*env)->NewByteArray(env, len); + (*env)->SetByteArrayRegion(env, buffArray, 0, len, (jbyte*)buff); + (*env)->CallVoidMethod(env, randObj, g_randNextBytesMethod, buffArray); + (*env)->GetByteArrayRegion(env, buffArray, 0, len, (jbyte*)buff); + + (*env)->DeleteLocalRef(env, buffArray); + (*env)->DeleteLocalRef(env, randObj); + + return CheckJNIExceptions(env) ? FAIL : SUCCESS; +} diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.h new file mode 100644 index 000000000000..d82c7c618bce --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Android/pal_misc.h @@ -0,0 +1,9 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include "pal_jni.h" + +PALEXPORT int32_t CryptoNative_EnsureOpenSslInitialized(void); +PALEXPORT int32_t CryptoNative_GetRandomBytes(uint8_t* buf, int32_t num); diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake index 8f0ca77cc3b1..eef61c4c356d 100644 --- a/src/libraries/Native/Unix/configure.cmake +++ b/src/libraries/Native/Unix/configure.cmake @@ -121,6 +121,11 @@ check_symbol_exists( fcntl.h HAVE_F_DUPFD_CLOEXEC) +check_symbol_exists( + F_FULLFSYNC + fcntl.h + HAVE_F_FULLFSYNC) + check_symbol_exists( getifaddrs ifaddrs.h @@ -831,6 +836,10 @@ check_include_files( linux/can.h HAVE_LINUX_CAN_H) +check_include_files( + IOKit/serial/ioss.h + HAVE_IOSS_H) + check_symbol_exists( getpeereid unistd.h diff --git a/src/libraries/System.AppContext/System.AppContext.sln b/src/libraries/System.AppContext/System.AppContext.sln index 0056c367e512..90c5de42be31 100644 --- a/src/libraries/System.AppContext/System.AppContext.sln +++ b/src/libraries/System.AppContext/System.AppContext.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext.Tests", "tests\System.AppContext.Tests.csproj", "{6F04B167-A03F-4206-8481-60213C3EF9B9}" - ProjectSection(ProjectDependencies) = postProject - {5522BAFC-E2FF-4896-993A-401DDEDFD85F} = {5522BAFC-E2FF-4896-993A-401DDEDFD85F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{751F6E52-BD51-406F-9EB6-06D3C27BF469}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext", "src\System.AppContext.csproj", "{5522BAFC-E2FF-4896-993A-401DDEDFD85F}" - ProjectSection(ProjectDependencies) = postProject - {2D7BBD88-739E-472A-9F44-2794049A688F} = {2D7BBD88-739E-472A-9F44-2794049A688F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F9B2FCA3-69C0-45A6-B1FA-E989263536C4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext", "ref\System.AppContext.csproj", "{2D7BBD88-739E-472A-9F44-2794049A688F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext", "ref\System.AppContext.csproj", "{BB689125-CDA7-4CFA-A4D6-1C932092A67F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext", "src\System.AppContext.csproj", "{1648AC4C-3BEF-4B93-933B-5EC520BF11D5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.AppContext.Tests", "tests\System.AppContext.Tests.csproj", "{007AD19C-8A80-4463-834C-BE7AE1808A04}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2B51887D-CD24-4BF7-A010-7D45F0ACAAB9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{68E366F0-A62B-4528-8B26-CDFE17AA9C42}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{207F66C5-1274-445C-B69E-E2C5F0776843}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E8C460E4-2874-434B-BCC7-819CFCA7AB1E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DD112C26-1C35-4035-A7B6-373816626CE1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{AA5B587C-6F16-49E9-9169-793CA4AB7C70}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{42312719-3478-4869-B4ED-19358F167B5F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {751F6E52-BD51-406F-9EB6-06D3C27BF469} = {DD112C26-1C35-4035-A7B6-373816626CE1} + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5} = {DD112C26-1C35-4035-A7B6-373816626CE1} + {207F66C5-1274-445C-B69E-E2C5F0776843} = {DD112C26-1C35-4035-A7B6-373816626CE1} + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4} = {AA5B587C-6F16-49E9-9169-793CA4AB7C70} + {007AD19C-8A80-4463-834C-BE7AE1808A04} = {AA5B587C-6F16-49E9-9169-793CA4AB7C70} + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8} = {42312719-3478-4869-B4ED-19358F167B5F} + {BB689125-CDA7-4CFA-A4D6-1C932092A67F} = {42312719-3478-4869-B4ED-19358F167B5F} + {68E366F0-A62B-4528-8B26-CDFE17AA9C42} = {42312719-3478-4869-B4ED-19358F167B5F} + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF} = {42312719-3478-4869-B4ED-19358F167B5F} + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E} = {42312719-3478-4869-B4ED-19358F167B5F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6F04B167-A03F-4206-8481-60213C3EF9B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6F04B167-A03F-4206-8481-60213C3EF9B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6F04B167-A03F-4206-8481-60213C3EF9B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6F04B167-A03F-4206-8481-60213C3EF9B9}.Release|Any CPU.Build.0 = Release|Any CPU - {5522BAFC-E2FF-4896-993A-401DDEDFD85F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5522BAFC-E2FF-4896-993A-401DDEDFD85F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5522BAFC-E2FF-4896-993A-401DDEDFD85F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5522BAFC-E2FF-4896-993A-401DDEDFD85F}.Release|Any CPU.Build.0 = Release|Any CPU - {2D7BBD88-739E-472A-9F44-2794049A688F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D7BBD88-739E-472A-9F44-2794049A688F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D7BBD88-739E-472A-9F44-2794049A688F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D7BBD88-739E-472A-9F44-2794049A688F}.Release|Any CPU.Build.0 = Release|Any CPU - {2B51887D-CD24-4BF7-A010-7D45F0ACAAB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B51887D-CD24-4BF7-A010-7D45F0ACAAB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B51887D-CD24-4BF7-A010-7D45F0ACAAB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B51887D-CD24-4BF7-A010-7D45F0ACAAB9}.Release|Any CPU.Build.0 = Release|Any CPU + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|Any CPU.ActiveCfg = Debug|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|Any CPU.Build.0 = Debug|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|x64.ActiveCfg = Debug|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|x64.Build.0 = Debug|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|x86.ActiveCfg = Debug|x86 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Debug|x86.Build.0 = Debug|x86 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|Any CPU.ActiveCfg = Release|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|Any CPU.Build.0 = Release|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|x64.ActiveCfg = Release|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|x64.Build.0 = Release|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|x86.ActiveCfg = Release|x86 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Release|x86.Build.0 = Release|x86 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|Any CPU.ActiveCfg = Checked|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|Any CPU.Build.0 = Checked|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|x64.ActiveCfg = Checked|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|x64.Build.0 = Checked|x64 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|x86.ActiveCfg = Checked|x86 + {751F6E52-BD51-406F-9EB6-06D3C27BF469}.Checked|x86.Build.0 = Checked|x86 + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|x64.ActiveCfg = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|x64.Build.0 = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|x86.ActiveCfg = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Debug|x86.Build.0 = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|Any CPU.Build.0 = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|x64.ActiveCfg = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|x64.Build.0 = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|x86.ActiveCfg = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Release|x86.Build.0 = Release|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Checked|x64.ActiveCfg = Debug|Any CPU + {F9B2FCA3-69C0-45A6-B1FA-E989263536C4}.Checked|x86.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|x64.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|x64.Build.0 = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|x86.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Debug|x86.Build.0 = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|Any CPU.Build.0 = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|x64.ActiveCfg = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|x64.Build.0 = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|x86.ActiveCfg = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Release|x86.Build.0 = Release|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Checked|x64.ActiveCfg = Debug|Any CPU + {0CB6DDF0-5E65-48F3-BC61-50A1E747CDB8}.Checked|x86.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|x64.Build.0 = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Debug|x86.Build.0 = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|Any CPU.Build.0 = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|x64.ActiveCfg = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|x64.Build.0 = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|x86.ActiveCfg = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Release|x86.Build.0 = Release|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Checked|x64.ActiveCfg = Debug|Any CPU + {BB689125-CDA7-4CFA-A4D6-1C932092A67F}.Checked|x86.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|x64.Build.0 = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Debug|x86.Build.0 = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|Any CPU.Build.0 = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|x64.ActiveCfg = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|x64.Build.0 = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|x86.ActiveCfg = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Release|x86.Build.0 = Release|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Checked|x64.ActiveCfg = Debug|Any CPU + {1648AC4C-3BEF-4B93-933B-5EC520BF11D5}.Checked|x86.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|Any CPU.Build.0 = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|x64.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|x64.Build.0 = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|x86.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Debug|x86.Build.0 = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|Any CPU.ActiveCfg = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|Any CPU.Build.0 = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|x64.ActiveCfg = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|x64.Build.0 = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|x86.ActiveCfg = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Release|x86.Build.0 = Release|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Checked|x64.ActiveCfg = Debug|Any CPU + {007AD19C-8A80-4463-834C-BE7AE1808A04}.Checked|x86.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|x64.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|x64.Build.0 = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|x86.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Debug|x86.Build.0 = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|Any CPU.Build.0 = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|x64.ActiveCfg = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|x64.Build.0 = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|x86.ActiveCfg = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Release|x86.Build.0 = Release|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Checked|x64.ActiveCfg = Debug|Any CPU + {68E366F0-A62B-4528-8B26-CDFE17AA9C42}.Checked|x86.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|Any CPU.Build.0 = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|x64.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|x64.Build.0 = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|x86.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Debug|x86.Build.0 = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|Any CPU.ActiveCfg = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|Any CPU.Build.0 = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|x64.ActiveCfg = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|x64.Build.0 = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|x86.ActiveCfg = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Release|x86.Build.0 = Release|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Checked|x64.ActiveCfg = Debug|Any CPU + {207F66C5-1274-445C-B69E-E2C5F0776843}.Checked|x86.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|x64.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|x64.Build.0 = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|x86.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Debug|x86.Build.0 = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|Any CPU.Build.0 = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|x64.ActiveCfg = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|x64.Build.0 = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|x86.ActiveCfg = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Release|x86.Build.0 = Release|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Checked|x64.ActiveCfg = Debug|Any CPU + {8C2CE6CA-8774-4CE2-9F5A-397C6014A5BF}.Checked|x86.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|x64.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|x64.Build.0 = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|x86.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Debug|x86.Build.0 = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|Any CPU.Build.0 = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|x64.ActiveCfg = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|x64.Build.0 = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|x86.ActiveCfg = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Release|x86.Build.0 = Release|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Checked|x64.ActiveCfg = Debug|Any CPU + {E8C460E4-2874-434B-BCC7-819CFCA7AB1E}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6F04B167-A03F-4206-8481-60213C3EF9B9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5522BAFC-E2FF-4896-993A-401DDEDFD85F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2D7BBD88-739E-472A-9F44-2794049A688F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {2B51887D-CD24-4BF7-A010-7D45F0ACAAB9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D4F47090-6CB5-4B3F-9C3B-F43818041023} + SolutionGuid = {E66CC269-DA5B-4970-AAEE-78F703F4EB96} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Buffers/System.Buffers.sln b/src/libraries/System.Buffers/System.Buffers.sln index c688a86c5527..166ac1588dd3 100644 --- a/src/libraries/System.Buffers/System.Buffers.sln +++ b/src/libraries/System.Buffers/System.Buffers.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers.Tests", "tests\System.Buffers.Tests.csproj", "{62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C}" - ProjectSection(ProjectDependencies) = postProject - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B} = {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{006429DB-0860-4688-BD1D-459C9364594D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "src\System.Buffers.csproj", "{2ADDB484-6F57-4D71-A3FE-A57EC6329A2B}" - ProjectSection(ProjectDependencies) = postProject - {11AE73F7-3532-47B9-8FF6-B4F22D76456C} = {11AE73F7-3532-47B9-8FF6-B4F22D76456C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{350A679C-F690-49B3-AB97-340AF05E1250}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "ref\System.Buffers.csproj", "{11AE73F7-3532-47B9-8FF6-B4F22D76456C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B16700FF-26E8-438A-A724-F906B4C35547}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "ref\System.Buffers.csproj", "{7F713B83-1256-4108-B40D-FDD380BB9DB6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "src\System.Buffers.csproj", "{4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers.Tests", "tests\System.Buffers.Tests.csproj", "{FF86CB73-2E54-4E89-9491-258324F291D0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9F56BACD-30E9-469D-AEE1-210EF5D8F658}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F560AE7E-DC82-4F1B-A06F-47112BEF31CB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CCB43103-0346-468A-BAEC-E4EBA3D05B7C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DEEF0E72-FB33-419E-862E-3A355B661AF9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{33F30064-A012-4287-88B8-ECA9FBF4A971}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F57EECE2-1672-4152-B2AA-3E76153FDEBE}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {006429DB-0860-4688-BD1D-459C9364594D} = {DEEF0E72-FB33-419E-862E-3A355B661AF9} + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6} = {DEEF0E72-FB33-419E-862E-3A355B661AF9} + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5} = {DEEF0E72-FB33-419E-862E-3A355B661AF9} + {350A679C-F690-49B3-AB97-340AF05E1250} = {33F30064-A012-4287-88B8-ECA9FBF4A971} + {FF86CB73-2E54-4E89-9491-258324F291D0} = {33F30064-A012-4287-88B8-ECA9FBF4A971} + {B16700FF-26E8-438A-A724-F906B4C35547} = {F57EECE2-1672-4152-B2AA-3E76153FDEBE} + {7F713B83-1256-4108-B40D-FDD380BB9DB6} = {F57EECE2-1672-4152-B2AA-3E76153FDEBE} + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621} = {F57EECE2-1672-4152-B2AA-3E76153FDEBE} + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB} = {F57EECE2-1672-4152-B2AA-3E76153FDEBE} + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C} = {F57EECE2-1672-4152-B2AA-3E76153FDEBE} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C}.Release|Any CPU.Build.0 = Release|Any CPU - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B}.Release|Any CPU.Build.0 = Release|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456C}.Release|Any CPU.Build.0 = Release|Any CPU - {9F56BACD-30E9-469D-AEE1-210EF5D8F658}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F56BACD-30E9-469D-AEE1-210EF5D8F658}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F56BACD-30E9-469D-AEE1-210EF5D8F658}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F56BACD-30E9-469D-AEE1-210EF5D8F658}.Release|Any CPU.Build.0 = Release|Any CPU + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|Any CPU.Build.0 = Debug|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|x64.ActiveCfg = Debug|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|x64.Build.0 = Debug|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|x86.ActiveCfg = Debug|x86 + {006429DB-0860-4688-BD1D-459C9364594D}.Debug|x86.Build.0 = Debug|x86 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|Any CPU.ActiveCfg = Release|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|Any CPU.Build.0 = Release|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|x64.ActiveCfg = Release|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|x64.Build.0 = Release|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|x86.ActiveCfg = Release|x86 + {006429DB-0860-4688-BD1D-459C9364594D}.Release|x86.Build.0 = Release|x86 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|Any CPU.ActiveCfg = Checked|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|Any CPU.Build.0 = Checked|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|x64.ActiveCfg = Checked|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|x64.Build.0 = Checked|x64 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|x86.ActiveCfg = Checked|x86 + {006429DB-0860-4688-BD1D-459C9364594D}.Checked|x86.Build.0 = Checked|x86 + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|Any CPU.Build.0 = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|x64.ActiveCfg = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|x64.Build.0 = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|x86.ActiveCfg = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Debug|x86.Build.0 = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|Any CPU.ActiveCfg = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|Any CPU.Build.0 = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|x64.ActiveCfg = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|x64.Build.0 = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|x86.ActiveCfg = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Release|x86.Build.0 = Release|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Checked|x64.ActiveCfg = Debug|Any CPU + {350A679C-F690-49B3-AB97-340AF05E1250}.Checked|x86.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|x64.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|x64.Build.0 = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|x86.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Debug|x86.Build.0 = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|Any CPU.Build.0 = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|x64.ActiveCfg = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|x64.Build.0 = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|x86.ActiveCfg = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Release|x86.Build.0 = Release|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Checked|x64.ActiveCfg = Debug|Any CPU + {B16700FF-26E8-438A-A724-F906B4C35547}.Checked|x86.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|x64.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|x64.Build.0 = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Debug|x86.Build.0 = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|Any CPU.Build.0 = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|x64.ActiveCfg = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|x64.Build.0 = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|x86.ActiveCfg = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Release|x86.Build.0 = Release|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Checked|x64.ActiveCfg = Debug|Any CPU + {7F713B83-1256-4108-B40D-FDD380BB9DB6}.Checked|x86.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|x64.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|x64.Build.0 = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|x86.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Debug|x86.Build.0 = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|Any CPU.Build.0 = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|x64.ActiveCfg = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|x64.Build.0 = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|x86.ActiveCfg = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Release|x86.Build.0 = Release|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Checked|x64.ActiveCfg = Debug|Any CPU + {4BA09CF8-2B90-43E1-AB35-8A48FF8ECEC6}.Checked|x86.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|x64.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|x64.Build.0 = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|x86.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Debug|x86.Build.0 = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|Any CPU.Build.0 = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|x64.ActiveCfg = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|x64.Build.0 = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|x86.ActiveCfg = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Release|x86.Build.0 = Release|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Checked|x64.ActiveCfg = Debug|Any CPU + {FF86CB73-2E54-4E89-9491-258324F291D0}.Checked|x86.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|x64.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|x64.Build.0 = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|x86.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Debug|x86.Build.0 = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|Any CPU.Build.0 = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|x64.ActiveCfg = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|x64.Build.0 = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|x86.ActiveCfg = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Release|x86.Build.0 = Release|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Checked|x64.ActiveCfg = Debug|Any CPU + {3EA59DDB-E3E9-4CA0-9FDF-3659C0CD4621}.Checked|x86.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|x64.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|x64.Build.0 = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|x86.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Debug|x86.Build.0 = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|Any CPU.Build.0 = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|x64.ActiveCfg = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|x64.Build.0 = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|x86.ActiveCfg = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Release|x86.Build.0 = Release|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Checked|x64.ActiveCfg = Debug|Any CPU + {5368CFB4-8C6C-4350-9FF0-2FFCB1912AB5}.Checked|x86.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|x64.Build.0 = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Debug|x86.Build.0 = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|Any CPU.Build.0 = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|x64.ActiveCfg = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|x64.Build.0 = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|x86.ActiveCfg = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Release|x86.Build.0 = Release|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Checked|x64.ActiveCfg = Debug|Any CPU + {F560AE7E-DC82-4F1B-A06F-47112BEF31CB}.Checked|x86.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|x64.Build.0 = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Debug|x86.Build.0 = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|Any CPU.Build.0 = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|x64.ActiveCfg = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|x64.Build.0 = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|x86.ActiveCfg = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Release|x86.Build.0 = Release|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Checked|x64.ActiveCfg = Debug|Any CPU + {CCB43103-0346-468A-BAEC-E4EBA3D05B7C}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {62E2AD5F-C8D0-45FB-B6A5-AED2C77F198C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2ADDB484-6F57-4D71-A3FE-A57EC6329A2B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {11AE73F7-3532-47B9-8FF6-B4F22D76456C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9F56BACD-30E9-469D-AEE1-210EF5D8F658} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D6CF83FE-C3D4-4A79-AF98-CF4037328049} + SolutionGuid = {FEF31CDB-D5C9-401F-BBBA-DFAF9CF6181B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.CodeDom/System.CodeDom.sln b/src/libraries/System.CodeDom/System.CodeDom.sln index ea9dbd9dec67..375c64b55653 100644 --- a/src/libraries/System.CodeDom/System.CodeDom.sln +++ b/src/libraries/System.CodeDom/System.CodeDom.sln @@ -1,60 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom.Tests", "tests\System.CodeDom.Tests.csproj", "{0D1E2954-A5C7-4B8C-932A-31EB4A96A726}" - ProjectSection(ProjectDependencies) = postProject - {53D09AF4-0C13-4197-B8AD-9746F0374E88} = {53D09AF4-0C13-4197-B8AD-9746F0374E88} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A83DE19F-4E19-4FEE-A3D7-FBA9E065B186}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "src\System.CodeDom.csproj", "{53D09AF4-0C13-4197-B8AD-9746F0374E88}" - ProjectSection(ProjectDependencies) = postProject - {4CF42F1E-B5AC-4834-AE24-A1F285091377} = {4CF42F1E-B5AC-4834-AE24-A1F285091377} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{07594579-A029-44C1-A96D-63ECD8E81A54}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "ref\System.CodeDom.csproj", "{4CF42F1E-B5AC-4834-AE24-A1F285091377}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "ref\System.CodeDom.csproj", "{74AE27CF-E940-4EEB-9A19-0968689B627E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "src\System.CodeDom.csproj", "{14D5A803-D5BF-44E5-B2B5-0B0BC297748E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom.Tests", "tests\System.CodeDom.Tests.csproj", "{627FFEFC-A317-4AD1-809F-B26CA7F475BD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{8B41F4FA-C804-4769-BDF0-467972E33997}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{692196BB-CC1D-4D6D-833C-D229E3E3ADB8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A034C285-3898-4F28-AB63-1023FBD4D9C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{F5C1865E-F81C-4041-8AFA-762C4422E419}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{1B6EBC9E-060D-4838-8894-55399F243BA1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5CDC4443-9032-43B2-9764-C1B829E04B03}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6A204C90-1130-4C38-9CED-E220D1874265}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{20580E25-2331-4A20-8BDB-1D647CCE4EB7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A83DE19F-4E19-4FEE-A3D7-FBA9E065B186} = {5CDC4443-9032-43B2-9764-C1B829E04B03} + {627FFEFC-A317-4AD1-809F-B26CA7F475BD} = {5CDC4443-9032-43B2-9764-C1B829E04B03} + {07594579-A029-44C1-A96D-63ECD8E81A54} = {6A204C90-1130-4C38-9CED-E220D1874265} + {74AE27CF-E940-4EEB-9A19-0968689B627E} = {6A204C90-1130-4C38-9CED-E220D1874265} + {8B41F4FA-C804-4769-BDF0-467972E33997} = {6A204C90-1130-4C38-9CED-E220D1874265} + {A034C285-3898-4F28-AB63-1023FBD4D9C8} = {6A204C90-1130-4C38-9CED-E220D1874265} + {1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66} = {6A204C90-1130-4C38-9CED-E220D1874265} + {F5C1865E-F81C-4041-8AFA-762C4422E419} = {6A204C90-1130-4C38-9CED-E220D1874265} + {1B6EBC9E-060D-4838-8894-55399F243BA1} = {6A204C90-1130-4C38-9CED-E220D1874265} + {A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C} = {6A204C90-1130-4C38-9CED-E220D1874265} + {14D5A803-D5BF-44E5-B2B5-0B0BC297748E} = {20580E25-2331-4A20-8BDB-1D647CCE4EB7} + {C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4} = {20580E25-2331-4A20-8BDB-1D647CCE4EB7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0D1E2954-A5C7-4B8C-932A-31EB4A96A726}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A726}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A726}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D1E2954-A5C7-4B8C-932A-31EB4A96A726}.Release|Any CPU.Build.0 = Release|Any CPU - {53D09AF4-0C13-4197-B8AD-9746F0374E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53D09AF4-0C13-4197-B8AD-9746F0374E88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53D09AF4-0C13-4197-B8AD-9746F0374E88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53D09AF4-0C13-4197-B8AD-9746F0374E88}.Release|Any CPU.Build.0 = Release|Any CPU - {4CF42F1E-B5AC-4834-AE24-A1F285091377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CF42F1E-B5AC-4834-AE24-A1F285091377}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CF42F1E-B5AC-4834-AE24-A1F285091377}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4CF42F1E-B5AC-4834-AE24-A1F285091377}.Release|Any CPU.Build.0 = Release|Any CPU - {692196BB-CC1D-4D6D-833C-D229E3E3ADB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {692196BB-CC1D-4D6D-833C-D229E3E3ADB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {692196BB-CC1D-4D6D-833C-D229E3E3ADB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {692196BB-CC1D-4D6D-833C-D229E3E3ADB8}.Release|Any CPU.Build.0 = Release|Any CPU + {A83DE19F-4E19-4FEE-A3D7-FBA9E065B186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A83DE19F-4E19-4FEE-A3D7-FBA9E065B186}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A83DE19F-4E19-4FEE-A3D7-FBA9E065B186}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A83DE19F-4E19-4FEE-A3D7-FBA9E065B186}.Release|Any CPU.Build.0 = Release|Any CPU + {07594579-A029-44C1-A96D-63ECD8E81A54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07594579-A029-44C1-A96D-63ECD8E81A54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07594579-A029-44C1-A96D-63ECD8E81A54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07594579-A029-44C1-A96D-63ECD8E81A54}.Release|Any CPU.Build.0 = Release|Any CPU + {74AE27CF-E940-4EEB-9A19-0968689B627E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74AE27CF-E940-4EEB-9A19-0968689B627E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74AE27CF-E940-4EEB-9A19-0968689B627E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74AE27CF-E940-4EEB-9A19-0968689B627E}.Release|Any CPU.Build.0 = Release|Any CPU + {14D5A803-D5BF-44E5-B2B5-0B0BC297748E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14D5A803-D5BF-44E5-B2B5-0B0BC297748E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14D5A803-D5BF-44E5-B2B5-0B0BC297748E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14D5A803-D5BF-44E5-B2B5-0B0BC297748E}.Release|Any CPU.Build.0 = Release|Any CPU + {627FFEFC-A317-4AD1-809F-B26CA7F475BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {627FFEFC-A317-4AD1-809F-B26CA7F475BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {627FFEFC-A317-4AD1-809F-B26CA7F475BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {627FFEFC-A317-4AD1-809F-B26CA7F475BD}.Release|Any CPU.Build.0 = Release|Any CPU + {8B41F4FA-C804-4769-BDF0-467972E33997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B41F4FA-C804-4769-BDF0-467972E33997}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B41F4FA-C804-4769-BDF0-467972E33997}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B41F4FA-C804-4769-BDF0-467972E33997}.Release|Any CPU.Build.0 = Release|Any CPU + {A034C285-3898-4F28-AB63-1023FBD4D9C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A034C285-3898-4F28-AB63-1023FBD4D9C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A034C285-3898-4F28-AB63-1023FBD4D9C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A034C285-3898-4F28-AB63-1023FBD4D9C8}.Release|Any CPU.Build.0 = Release|Any CPU + {C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0C094F6-F35D-46DB-BD74-CE1FC1FC93C4}.Release|Any CPU.Build.0 = Release|Any CPU + {1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CE2BCE6-C05C-4C33-BB02-3CFBB6423A66}.Release|Any CPU.Build.0 = Release|Any CPU + {F5C1865E-F81C-4041-8AFA-762C4422E419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5C1865E-F81C-4041-8AFA-762C4422E419}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5C1865E-F81C-4041-8AFA-762C4422E419}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5C1865E-F81C-4041-8AFA-762C4422E419}.Release|Any CPU.Build.0 = Release|Any CPU + {1B6EBC9E-060D-4838-8894-55399F243BA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B6EBC9E-060D-4838-8894-55399F243BA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B6EBC9E-060D-4838-8894-55399F243BA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B6EBC9E-060D-4838-8894-55399F243BA1}.Release|Any CPU.Build.0 = Release|Any CPU + {A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7D7C449-65F5-4B0F-94F1-2CA6EDDACD5C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0D1E2954-A5C7-4B8C-932A-31EB4A96A726} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {53D09AF4-0C13-4197-B8AD-9746F0374E88} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4CF42F1E-B5AC-4834-AE24-A1F285091377} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {692196BB-CC1D-4D6D-833C-D229E3E3ADB8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {760BBC5B-7FAC-4F92-BAEC-0C02486CD300} + SolutionGuid = {70EC5780-3C80-4D52-93B0-7FBF64E29572} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln b/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln index b9c4a15d3d94..8c31f04ca894 100644 --- a/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln +++ b/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln @@ -1,74 +1,267 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent.Tests", "tests\System.Collections.Concurrent.Tests.csproj", "{9574CEEC-5554-411B-B44C-6CA9EC1CEB08}" - ProjectSection(ProjectDependencies) = postProject - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89} = {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "src\System.Collections.Concurrent.csproj", "{EA610394-CBA3-4E5C-B3DB-AAEA7F640E89}" - ProjectSection(ProjectDependencies) = postProject - {772CB0A7-3D45-4D3A-B975-671A1937C761} = {772CB0A7-3D45-4D3A-B975-671A1937C761} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7C2B8279-F7BB-4AD4-BA44-B9071090AF46}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "ref\System.Collections.Concurrent.csproj", "{772CB0A7-3D45-4D3A-B975-671A1937C761}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "ref\System.Collections.Concurrent.csproj", "{ADA6D062-1E28-47D8-A058-FE1F4551AA20}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "src\System.Collections.Concurrent.csproj", "{BFA1A52C-48B4-45C7-8595-B98236A11ED1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent.Tests", "tests\System.Collections.Concurrent.Tests.csproj", "{C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{91BAC0C0-2F64-4346-87AC-94DAB6911F5B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{34C59132-692C-45D7-87BD-869A18F09E2C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "..\System.Diagnostics.Tracing\src\System.Diagnostics.Tracing.csproj", "{541D25E4-A6F4-4189-AD42-14D31DEF4EB7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "..\System.Diagnostics.Tracing\src\System.Diagnostics.Tracing.csproj", "{93FB3527-B9E6-4ECA-8F36-56835F4F9236}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{F8C58AD9-D9EA-4BBC-AB6E-E908007F607E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1D4FEFF5-24CC-4725-90CD-651D389C0961}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{A27E93BA-7A0C-417E-B178-F1727D50B7FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{EAC28D44-B88D-4631-A698-EA57EBF0B49D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{40AC202B-76E9-40BF-9411-4A617AF0EBD9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1E3679C8-EEB4-4D38-BC04-AD33CF997804}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A48623BD-6556-4B22-B925-11BCB380392C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{11C95B67-128C-420E-8DB7-10040810ED3F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {BFA1A52C-48B4-45C7-8595-B98236A11ED1} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {34C59132-692C-45D7-87BD-869A18F09E2C} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {93FB3527-B9E6-4ECA-8F36-56835F4F9236} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {A27E93BA-7A0C-417E-B178-F1727D50B7FF} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2} = {1E3679C8-EEB4-4D38-BC04-AD33CF997804} + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46} = {A48623BD-6556-4B22-B925-11BCB380392C} + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8} = {A48623BD-6556-4B22-B925-11BCB380392C} + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20} = {11C95B67-128C-420E-8DB7-10040810ED3F} + {ADA6D062-1E28-47D8-A058-FE1F4551AA20} = {11C95B67-128C-420E-8DB7-10040810ED3F} + {1D4FEFF5-24CC-4725-90CD-651D389C0961} = {11C95B67-128C-420E-8DB7-10040810ED3F} + {EAC28D44-B88D-4631-A698-EA57EBF0B49D} = {11C95B67-128C-420E-8DB7-10040810ED3F} + {40AC202B-76E9-40BF-9411-4A617AF0EBD9} = {11C95B67-128C-420E-8DB7-10040810ED3F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9574CEEC-5554-411B-B44C-6CA9EC1CEB08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9574CEEC-5554-411B-B44C-6CA9EC1CEB08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9574CEEC-5554-411B-B44C-6CA9EC1CEB08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9574CEEC-5554-411B-B44C-6CA9EC1CEB08}.Release|Any CPU.Build.0 = Release|Any CPU - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89}.Release|Any CPU.Build.0 = Release|Any CPU - {772CB0A7-3D45-4D3A-B975-671A1937C761}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {772CB0A7-3D45-4D3A-B975-671A1937C761}.Debug|Any CPU.Build.0 = Debug|Any CPU - {772CB0A7-3D45-4D3A-B975-671A1937C761}.Release|Any CPU.ActiveCfg = Release|Any CPU - {772CB0A7-3D45-4D3A-B975-671A1937C761}.Release|Any CPU.Build.0 = Release|Any CPU - {91BAC0C0-2F64-4346-87AC-94DAB6911F5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {91BAC0C0-2F64-4346-87AC-94DAB6911F5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {91BAC0C0-2F64-4346-87AC-94DAB6911F5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {91BAC0C0-2F64-4346-87AC-94DAB6911F5B}.Release|Any CPU.Build.0 = Release|Any CPU - {541D25E4-A6F4-4189-AD42-14D31DEF4EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {541D25E4-A6F4-4189-AD42-14D31DEF4EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {541D25E4-A6F4-4189-AD42-14D31DEF4EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {541D25E4-A6F4-4189-AD42-14D31DEF4EB7}.Release|Any CPU.Build.0 = Release|Any CPU - {F8C58AD9-D9EA-4BBC-AB6E-E908007F607E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8C58AD9-D9EA-4BBC-AB6E-E908007F607E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8C58AD9-D9EA-4BBC-AB6E-E908007F607E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8C58AD9-D9EA-4BBC-AB6E-E908007F607E}.Release|Any CPU.Build.0 = Release|Any CPU + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|Any CPU.ActiveCfg = Debug|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|Any CPU.Build.0 = Debug|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|x64.ActiveCfg = Debug|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|x64.Build.0 = Debug|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|x86.ActiveCfg = Debug|x86 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Debug|x86.Build.0 = Debug|x86 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|Any CPU.ActiveCfg = Release|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|Any CPU.Build.0 = Release|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|x64.ActiveCfg = Release|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|x64.Build.0 = Release|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|x86.ActiveCfg = Release|x86 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Release|x86.Build.0 = Release|x86 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|Any CPU.ActiveCfg = Checked|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|Any CPU.Build.0 = Checked|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|x64.ActiveCfg = Checked|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|x64.Build.0 = Checked|x64 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|x86.ActiveCfg = Checked|x86 + {A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}.Checked|x86.Build.0 = Checked|x86 + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|x64.ActiveCfg = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|x64.Build.0 = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Debug|x86.Build.0 = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|Any CPU.Build.0 = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|x64.ActiveCfg = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|x64.Build.0 = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|x86.ActiveCfg = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Release|x86.Build.0 = Release|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Checked|x64.ActiveCfg = Debug|Any CPU + {7C2B8279-F7BB-4AD4-BA44-B9071090AF46}.Checked|x86.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|x64.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|x64.Build.0 = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|x86.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Debug|x86.Build.0 = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|Any CPU.Build.0 = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|x64.ActiveCfg = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|x64.Build.0 = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|x86.ActiveCfg = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Release|x86.Build.0 = Release|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Checked|x64.ActiveCfg = Debug|Any CPU + {30A069D8-F71A-4F5E-92C0-A4C7AD40BB20}.Checked|x86.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|x64.Build.0 = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Debug|x86.Build.0 = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|Any CPU.Build.0 = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|x64.ActiveCfg = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|x64.Build.0 = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|x86.ActiveCfg = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Release|x86.Build.0 = Release|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Checked|x64.ActiveCfg = Debug|Any CPU + {ADA6D062-1E28-47D8-A058-FE1F4551AA20}.Checked|x86.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|x64.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|x64.Build.0 = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|x86.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Debug|x86.Build.0 = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|Any CPU.Build.0 = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|x64.ActiveCfg = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|x64.Build.0 = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|x86.ActiveCfg = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Release|x86.Build.0 = Release|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Checked|x64.ActiveCfg = Debug|Any CPU + {BFA1A52C-48B4-45C7-8595-B98236A11ED1}.Checked|x86.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|x64.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|x64.Build.0 = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|x86.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Debug|x86.Build.0 = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|Any CPU.Build.0 = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|x64.ActiveCfg = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|x64.Build.0 = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|x86.ActiveCfg = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Release|x86.Build.0 = Release|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Checked|x64.ActiveCfg = Debug|Any CPU + {C391ADBE-DD23-4F4A-B3EC-011974CC6CE8}.Checked|x86.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|x64.Build.0 = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Debug|x86.Build.0 = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|Any CPU.Build.0 = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|x64.ActiveCfg = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|x64.Build.0 = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|x86.ActiveCfg = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Release|x86.Build.0 = Release|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Checked|x64.ActiveCfg = Debug|Any CPU + {34C59132-692C-45D7-87BD-869A18F09E2C}.Checked|x86.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|x64.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|x64.Build.0 = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|x86.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Debug|x86.Build.0 = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|Any CPU.Build.0 = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|x64.ActiveCfg = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|x64.Build.0 = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|x86.ActiveCfg = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Release|x86.Build.0 = Release|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Checked|x64.ActiveCfg = Debug|Any CPU + {93FB3527-B9E6-4ECA-8F36-56835F4F9236}.Checked|x86.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|x64.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|x64.Build.0 = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Debug|x86.Build.0 = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|Any CPU.Build.0 = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|x64.ActiveCfg = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|x64.Build.0 = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|x86.ActiveCfg = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Release|x86.Build.0 = Release|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Checked|x64.ActiveCfg = Debug|Any CPU + {1D4FEFF5-24CC-4725-90CD-651D389C0961}.Checked|x86.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|x64.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|x64.Build.0 = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|x86.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Debug|x86.Build.0 = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|Any CPU.Build.0 = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|x64.ActiveCfg = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|x64.Build.0 = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|x86.ActiveCfg = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Release|x86.Build.0 = Release|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Checked|x64.ActiveCfg = Debug|Any CPU + {A27E93BA-7A0C-417E-B178-F1727D50B7FF}.Checked|x86.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|x64.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|x64.Build.0 = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|x86.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Debug|x86.Build.0 = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|Any CPU.Build.0 = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|x64.ActiveCfg = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|x64.Build.0 = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|x86.ActiveCfg = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Release|x86.Build.0 = Release|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Checked|x64.ActiveCfg = Debug|Any CPU + {EAC28D44-B88D-4631-A698-EA57EBF0B49D}.Checked|x86.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|x64.Build.0 = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|x86.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Debug|x86.Build.0 = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|Any CPU.Build.0 = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|x64.ActiveCfg = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|x64.Build.0 = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|x86.ActiveCfg = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Release|x86.Build.0 = Release|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Checked|x64.ActiveCfg = Debug|Any CPU + {40AC202B-76E9-40BF-9411-4A617AF0EBD9}.Checked|x86.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|x64.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|x64.Build.0 = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Debug|x86.Build.0 = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|Any CPU.Build.0 = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|x64.ActiveCfg = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|x64.Build.0 = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|x86.ActiveCfg = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Release|x86.Build.0 = Release|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Checked|x64.ActiveCfg = Debug|Any CPU + {FA6BD4D3-8D9B-4CA2-B8C6-A1A21F946AC2}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9574CEEC-5554-411B-B44C-6CA9EC1CEB08} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {EA610394-CBA3-4E5C-B3DB-AAEA7F640E89} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {772CB0A7-3D45-4D3A-B975-671A1937C761} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {91BAC0C0-2F64-4346-87AC-94DAB6911F5B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {541D25E4-A6F4-4189-AD42-14D31DEF4EB7} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F8C58AD9-D9EA-4BBC-AB6E-E908007F607E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {87704D28-6290-402F-9B93-DE67CE2E3D06} + SolutionGuid = {1A4F1A4C-4F4F-4E0C-9342-4B32674E2F00} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections.Concurrent/ref/System.Collections.Concurrent.cs b/src/libraries/System.Collections.Concurrent/ref/System.Collections.Concurrent.cs index c1a477bb048d..a7955b091205 100644 --- a/src/libraries/System.Collections.Concurrent/ref/System.Collections.Concurrent.cs +++ b/src/libraries/System.Collections.Concurrent/ref/System.Collections.Concurrent.cs @@ -6,6 +6,7 @@ namespace System.Collections.Concurrent { + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public partial class BlockingCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable, System.IDisposable { public BlockingCollection() { } diff --git a/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/BlockingCollection.cs b/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/BlockingCollection.cs index 40dc97191207..3640d0d4e829 100644 --- a/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/BlockingCollection.cs +++ b/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/BlockingCollection.cs @@ -15,6 +15,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; +using System.Runtime.Versioning; using System.Threading; namespace System.Collections.Concurrent @@ -38,6 +39,7 @@ namespace System.Collections.Concurrent /// away as an . /// /// Specifies the type of elements in the collection. + [UnsupportedOSPlatform("browser")] [DebuggerTypeProxy(typeof(BlockingCollectionDebugView<>))] [DebuggerDisplay("Count = {Count}, Type = {_collection}")] public class BlockingCollection : IEnumerable, ICollection, IDisposable, IReadOnlyCollection @@ -1801,6 +1803,7 @@ public BlockingCollectionDebugView(BlockingCollection collection) } /// Returns a snapshot of the underlying collection's elements. + [UnsupportedOSPlatform("browser")] [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public T[] Items { diff --git a/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs b/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs index aa79092e6406..fb49255cfe65 100644 --- a/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs +++ b/src/libraries/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs @@ -642,6 +642,12 @@ public void Clear() { AcquireAllLocks(ref locksAcquired); + // If the dictionary is already empty, then there's nothing to clear. + if (AreAllBucketsEmpty()) + { + return; + } + Tables tables = _tables; var newTables = new Tables(new Node[DefaultCapacity], tables._locks, new int[tables._countPerLock.Length]); _tables = newTables; @@ -1421,20 +1427,7 @@ public bool IsEmpty ReleaseLocks(0, acquiredLocks); } - bool AreAllBucketsEmpty() - { - int[] countPerLock = _tables._countPerLock; - - for (int i = 0; i < countPerLock.Length; i++) - { - if (countPerLock[i] != 0) - { - return false; - } - } - return true; - } } } @@ -1874,6 +1867,22 @@ void ICollection.CopyTo(Array array, int index) #endregion + + private bool AreAllBucketsEmpty() + { + int[] countPerLock = _tables._countPerLock; + + for (int i = 0; i < countPerLock.Length; i++) + { + if (countPerLock[i] != 0) + { + return false; + } + } + + return true; + } + /// /// Replaces the bucket table with a larger one. To prevent multiple threads from resizing the /// table as a result of races, the Tables instance that holds the table of buckets deemed too diff --git a/src/libraries/System.Collections.Immutable/System.Collections.Immutable.sln b/src/libraries/System.Collections.Immutable/System.Collections.Immutable.sln index 463b2a4999e0..ad5ed2bc5d42 100644 --- a/src/libraries/System.Collections.Immutable/System.Collections.Immutable.sln +++ b/src/libraries/System.Collections.Immutable/System.Collections.Immutable.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable.Tests", "tests\System.Collections.Immutable.Tests.csproj", "{95DFC527-4DC1-495E-97D7-E94EE1F7140D}" - ProjectSection(ProjectDependencies) = postProject - {1DD0FF15-6234-4BD6-850A-317F05479554} = {1DD0FF15-6234-4BD6-850A-317F05479554} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{16338C21-1631-400F-951B-F501F2AB99DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "src\System.Collections.Immutable.csproj", "{1DD0FF15-6234-4BD6-850A-317F05479554}" - ProjectSection(ProjectDependencies) = postProject - {C7EFF4EE-70DC-453B-B817-4AF67921AB03} = {C7EFF4EE-70DC-453B-B817-4AF67921AB03} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{EB3278CE-5E5E-46C6-8759-465615AC3FB9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "ref\System.Collections.Immutable.csproj", "{C7EFF4EE-70DC-453B-B817-4AF67921AB03}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "ref\System.Collections.Immutable.csproj", "{1514371B-8161-4A27-AD96-30E3F9EA7AAE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "src\System.Collections.Immutable.csproj", "{F9520C8A-A85B-4AB0-8535-D1F2124DAC76}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable.Tests", "tests\System.Collections.Immutable.Tests.csproj", "{70EA8239-58B9-44E5-B1C5-ABEC2C9066E7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C37D857D-7377-47C9-88BA-02A932A83D03}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8DE08644-1FCE-4268-9D33-041F19643ADA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E77ED886-F412-462A-865A-B1A668651BEF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{06A060CF-80E8-4080-8F38-50788151DAFA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F966BE39-B481-4998-9F56-F2324A177998}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{78F08F61-F550-4694-A4B6-A404DE9A6284}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D025A868-F58D-4ECC-9516-26CEB02F1DF6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {16338C21-1631-400F-951B-F501F2AB99DB} = {F966BE39-B481-4998-9F56-F2324A177998} + {70EA8239-58B9-44E5-B1C5-ABEC2C9066E7} = {F966BE39-B481-4998-9F56-F2324A177998} + {EB3278CE-5E5E-46C6-8759-465615AC3FB9} = {78F08F61-F550-4694-A4B6-A404DE9A6284} + {1514371B-8161-4A27-AD96-30E3F9EA7AAE} = {78F08F61-F550-4694-A4B6-A404DE9A6284} + {C37D857D-7377-47C9-88BA-02A932A83D03} = {78F08F61-F550-4694-A4B6-A404DE9A6284} + {E77ED886-F412-462A-865A-B1A668651BEF} = {78F08F61-F550-4694-A4B6-A404DE9A6284} + {06A060CF-80E8-4080-8F38-50788151DAFA} = {78F08F61-F550-4694-A4B6-A404DE9A6284} + {F9520C8A-A85B-4AB0-8535-D1F2124DAC76} = {D025A868-F58D-4ECC-9516-26CEB02F1DF6} + {5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938} = {D025A868-F58D-4ECC-9516-26CEB02F1DF6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {95DFC527-4DC1-495E-97D7-E94EE1F7140D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95DFC527-4DC1-495E-97D7-E94EE1F7140D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95DFC527-4DC1-495E-97D7-E94EE1F7140D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95DFC527-4DC1-495E-97D7-E94EE1F7140D}.Release|Any CPU.Build.0 = Release|Any CPU - {1DD0FF15-6234-4BD6-850A-317F05479554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1DD0FF15-6234-4BD6-850A-317F05479554}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1DD0FF15-6234-4BD6-850A-317F05479554}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1DD0FF15-6234-4BD6-850A-317F05479554}.Release|Any CPU.Build.0 = Release|Any CPU - {C7EFF4EE-70DC-453B-B817-4AF67921AB03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7EFF4EE-70DC-453B-B817-4AF67921AB03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7EFF4EE-70DC-453B-B817-4AF67921AB03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7EFF4EE-70DC-453B-B817-4AF67921AB03}.Release|Any CPU.Build.0 = Release|Any CPU - {8DE08644-1FCE-4268-9D33-041F19643ADA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DE08644-1FCE-4268-9D33-041F19643ADA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DE08644-1FCE-4268-9D33-041F19643ADA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DE08644-1FCE-4268-9D33-041F19643ADA}.Release|Any CPU.Build.0 = Release|Any CPU + {16338C21-1631-400F-951B-F501F2AB99DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16338C21-1631-400F-951B-F501F2AB99DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16338C21-1631-400F-951B-F501F2AB99DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16338C21-1631-400F-951B-F501F2AB99DB}.Release|Any CPU.Build.0 = Release|Any CPU + {EB3278CE-5E5E-46C6-8759-465615AC3FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB3278CE-5E5E-46C6-8759-465615AC3FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB3278CE-5E5E-46C6-8759-465615AC3FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB3278CE-5E5E-46C6-8759-465615AC3FB9}.Release|Any CPU.Build.0 = Release|Any CPU + {1514371B-8161-4A27-AD96-30E3F9EA7AAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1514371B-8161-4A27-AD96-30E3F9EA7AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1514371B-8161-4A27-AD96-30E3F9EA7AAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1514371B-8161-4A27-AD96-30E3F9EA7AAE}.Release|Any CPU.Build.0 = Release|Any CPU + {F9520C8A-A85B-4AB0-8535-D1F2124DAC76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9520C8A-A85B-4AB0-8535-D1F2124DAC76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9520C8A-A85B-4AB0-8535-D1F2124DAC76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9520C8A-A85B-4AB0-8535-D1F2124DAC76}.Release|Any CPU.Build.0 = Release|Any CPU + {70EA8239-58B9-44E5-B1C5-ABEC2C9066E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70EA8239-58B9-44E5-B1C5-ABEC2C9066E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70EA8239-58B9-44E5-B1C5-ABEC2C9066E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70EA8239-58B9-44E5-B1C5-ABEC2C9066E7}.Release|Any CPU.Build.0 = Release|Any CPU + {C37D857D-7377-47C9-88BA-02A932A83D03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C37D857D-7377-47C9-88BA-02A932A83D03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C37D857D-7377-47C9-88BA-02A932A83D03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C37D857D-7377-47C9-88BA-02A932A83D03}.Release|Any CPU.Build.0 = Release|Any CPU + {5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5810ECAB-BA2C-48D1-9D2E-D7C3E6F83938}.Release|Any CPU.Build.0 = Release|Any CPU + {E77ED886-F412-462A-865A-B1A668651BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E77ED886-F412-462A-865A-B1A668651BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E77ED886-F412-462A-865A-B1A668651BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E77ED886-F412-462A-865A-B1A668651BEF}.Release|Any CPU.Build.0 = Release|Any CPU + {06A060CF-80E8-4080-8F38-50788151DAFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06A060CF-80E8-4080-8F38-50788151DAFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06A060CF-80E8-4080-8F38-50788151DAFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06A060CF-80E8-4080-8F38-50788151DAFA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {95DFC527-4DC1-495E-97D7-E94EE1F7140D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1DD0FF15-6234-4BD6-850A-317F05479554} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C7EFF4EE-70DC-453B-B817-4AF67921AB03} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {8DE08644-1FCE-4268-9D33-041F19643ADA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1DE2A735-672B-42B4-BD77-CE7B1976CC52} + SolutionGuid = {62498458-77B4-4070-87BB-09F22AC54239} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.cs b/src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.cs index 48a65aa79e57..f050f59517d5 100644 --- a/src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.cs +++ b/src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.cs @@ -93,11 +93,11 @@ public static partial class ImmutableArray public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Generic.IEnumerable items) { throw null; } public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Immutable.ImmutableArray.Builder builder) { throw null; } } - public partial struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.Immutable.IImmutableList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IEquatable> + public readonly partial struct ImmutableArray : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.Immutable.IImmutableList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IEquatable> { - private T[] array; - private object _dummy; - private int _dummyPrimitive; + private readonly T[] array; + private readonly object _dummy; + private readonly int _dummyPrimitive; public static readonly System.Collections.Immutable.ImmutableArray Empty; public bool IsDefault { get { throw null; } } public bool IsDefaultOrEmpty { get { throw null; } } diff --git a/src/libraries/System.Collections.Immutable/src/System.Collections.Immutable.csproj b/src/libraries/System.Collections.Immutable/src/System.Collections.Immutable.csproj index 7657ca4caec1..5197bc1ad3b8 100644 --- a/src/libraries/System.Collections.Immutable/src/System.Collections.Immutable.csproj +++ b/src/libraries/System.Collections.Immutable/src/System.Collections.Immutable.csproj @@ -102,6 +102,7 @@ + @@ -114,6 +115,8 @@ '$(TargetFramework)' == 'netstandard2.0' or $(TargetFramework.StartsWith('net4'))"> + + diff --git a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs index f1f14b1c2684..2a9ca8744d33 100644 --- a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs +++ b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Minimal.cs @@ -51,7 +51,7 @@ public partial struct ImmutableArray : IEnumerable, IEquatable [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] - internal T[]? array; + internal readonly T[]? array; /// /// Initializes a new instance of the struct diff --git a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs index 60e35e387ec8..248551c8c44b 100644 --- a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs +++ b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs @@ -10,7 +10,7 @@ namespace System.Collections.Immutable { - public partial struct ImmutableArray : IReadOnlyList, IList, IEquatable>, IList, IImmutableArray, IStructuralComparable, IStructuralEquatable, IImmutableList + public readonly partial struct ImmutableArray : IReadOnlyList, IList, IEquatable>, IList, IImmutableArray, IStructuralComparable, IStructuralEquatable, IImmutableList { /// /// Gets or sets the element at the specified index in the read-only list. diff --git a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs index 5f99c0624b49..fd4a7877b556 100644 --- a/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs +++ b/src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; using System.Threading; namespace System.Collections.Immutable @@ -121,7 +122,7 @@ public static bool Update(ref ImmutableArray location, Func newImmutableArray = transformer(new ImmutableArray(oldArray)); @@ -131,7 +132,7 @@ public static bool Update(ref ImmutableArray location, Func(ref ImmutableArray location, Func newImmutableArray = transformer(new ImmutableArray(oldArray), transformerArgument); @@ -175,7 +176,7 @@ public static bool Update(ref ImmutableArray location, Func(ref ImmutableArray location, FuncThe prior value at the specified . public static ImmutableArray InterlockedExchange(ref ImmutableArray location, ImmutableArray value) { - return new ImmutableArray(Interlocked.Exchange(ref location.array, value.array)); + return new ImmutableArray(Interlocked.Exchange(ref Unsafe.AsRef(in location.array), value.array)); } /// @@ -209,7 +210,7 @@ public static ImmutableArray InterlockedExchange(ref ImmutableArray loc /// The prior value at the specified . public static ImmutableArray InterlockedCompareExchange(ref ImmutableArray location, ImmutableArray value, ImmutableArray comparand) { - return new ImmutableArray(Interlocked.CompareExchange(ref location.array, value.array, comparand.array)); + return new ImmutableArray(Interlocked.CompareExchange(ref Unsafe.AsRef(in location.array), value.array, comparand.array)); } /// diff --git a/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs b/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs index 7431621802b1..7349cefa67b5 100644 --- a/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs +++ b/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs @@ -16,7 +16,7 @@ namespace System.Collections.Immutable.Tests { public class ImmutableArrayTest : SimpleElementImmutablesTestBase { - private static readonly ImmutableArray s_emptyDefault; + private static readonly ImmutableArray s_emptyDefault = default; // init explicitly to avoid CS0649 private static readonly ImmutableArray s_empty = ImmutableArray.Create(); private static readonly ImmutableArray s_oneElement = ImmutableArray.Create(1); private static readonly ImmutableArray s_manyElements = ImmutableArray.Create(1, 2, 3); diff --git a/src/libraries/System.Collections.NonGeneric/System.Collections.NonGeneric.sln b/src/libraries/System.Collections.NonGeneric/System.Collections.NonGeneric.sln index 5a05e434fca5..cd0895c0a527 100644 --- a/src/libraries/System.Collections.NonGeneric/System.Collections.NonGeneric.sln +++ b/src/libraries/System.Collections.NonGeneric/System.Collections.NonGeneric.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric.Tests", "tests\System.Collections.NonGeneric.Tests.csproj", "{EE95AE39-845A-42D3-86D0-8065DBE56612}" - ProjectSection(ProjectDependencies) = postProject - {585E3764-534B-4A12-8BD5-8578CB826A45} = {585E3764-534B-4A12-8BD5-8578CB826A45} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8844EF4B-CE0F-4E76-B97B-4844B33CB3FB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "src\System.Collections.NonGeneric.csproj", "{585E3764-534B-4A12-8BD5-8578CB826A45}" - ProjectSection(ProjectDependencies) = postProject - {8500112F-96BD-47BF-8871-3242089FAE70} = {8500112F-96BD-47BF-8871-3242089FAE70} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{49F24282-7299-41E4-9C9E-481741B2A1B9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "ref\System.Collections.NonGeneric.csproj", "{8500112F-96BD-47BF-8871-3242089FAE70}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "ref\System.Collections.NonGeneric.csproj", "{D3B134E9-5B26-4455-9F2D-22302BD8E350}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "src\System.Collections.NonGeneric.csproj", "{8B963C6C-CF59-433B-B8FB-6C1EB4650DF2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric.Tests", "tests\System.Collections.NonGeneric.Tests.csproj", "{AF7C053E-2774-4355-8541-945594C4AF9C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{31A285E0-CBFF-46D1-84BC-312ABEB35A4F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B0759A15-7D28-496D-90C9-406F9C0ACEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C80ABA38-B1E9-4050-8F9B-B04CDC959EFD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{6186F0B4-B044-40FD-8397-B47EADA616F9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{46A14EE9-6DEA-433B-83E9-6EF79C3EFD71}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4D4E7926-6B35-45A3-9511-2FE054D5A90A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5E598645-46EC-44E2-B49B-DCA3153A0656}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8844EF4B-CE0F-4E76-B97B-4844B33CB3FB} = {46A14EE9-6DEA-433B-83E9-6EF79C3EFD71} + {AF7C053E-2774-4355-8541-945594C4AF9C} = {46A14EE9-6DEA-433B-83E9-6EF79C3EFD71} + {49F24282-7299-41E4-9C9E-481741B2A1B9} = {4D4E7926-6B35-45A3-9511-2FE054D5A90A} + {D3B134E9-5B26-4455-9F2D-22302BD8E350} = {4D4E7926-6B35-45A3-9511-2FE054D5A90A} + {31A285E0-CBFF-46D1-84BC-312ABEB35A4F} = {4D4E7926-6B35-45A3-9511-2FE054D5A90A} + {6186F0B4-B044-40FD-8397-B47EADA616F9} = {4D4E7926-6B35-45A3-9511-2FE054D5A90A} + {FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30} = {4D4E7926-6B35-45A3-9511-2FE054D5A90A} + {8B963C6C-CF59-433B-B8FB-6C1EB4650DF2} = {5E598645-46EC-44E2-B49B-DCA3153A0656} + {C80ABA38-B1E9-4050-8F9B-B04CDC959EFD} = {5E598645-46EC-44E2-B49B-DCA3153A0656} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EE95AE39-845A-42D3-86D0-8065DBE56612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE95AE39-845A-42D3-86D0-8065DBE56612}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE95AE39-845A-42D3-86D0-8065DBE56612}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE95AE39-845A-42D3-86D0-8065DBE56612}.Release|Any CPU.Build.0 = Release|Any CPU - {585E3764-534B-4A12-8BD5-8578CB826A45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {585E3764-534B-4A12-8BD5-8578CB826A45}.Debug|Any CPU.Build.0 = Debug|Any CPU - {585E3764-534B-4A12-8BD5-8578CB826A45}.Release|Any CPU.ActiveCfg = Release|Any CPU - {585E3764-534B-4A12-8BD5-8578CB826A45}.Release|Any CPU.Build.0 = Release|Any CPU - {8500112F-96BD-47BF-8871-3242089FAE70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8500112F-96BD-47BF-8871-3242089FAE70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8500112F-96BD-47BF-8871-3242089FAE70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8500112F-96BD-47BF-8871-3242089FAE70}.Release|Any CPU.Build.0 = Release|Any CPU - {B0759A15-7D28-496D-90C9-406F9C0ACEFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0759A15-7D28-496D-90C9-406F9C0ACEFD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0759A15-7D28-496D-90C9-406F9C0ACEFD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0759A15-7D28-496D-90C9-406F9C0ACEFD}.Release|Any CPU.Build.0 = Release|Any CPU + {8844EF4B-CE0F-4E76-B97B-4844B33CB3FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8844EF4B-CE0F-4E76-B97B-4844B33CB3FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8844EF4B-CE0F-4E76-B97B-4844B33CB3FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8844EF4B-CE0F-4E76-B97B-4844B33CB3FB}.Release|Any CPU.Build.0 = Release|Any CPU + {49F24282-7299-41E4-9C9E-481741B2A1B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49F24282-7299-41E4-9C9E-481741B2A1B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49F24282-7299-41E4-9C9E-481741B2A1B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49F24282-7299-41E4-9C9E-481741B2A1B9}.Release|Any CPU.Build.0 = Release|Any CPU + {D3B134E9-5B26-4455-9F2D-22302BD8E350}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3B134E9-5B26-4455-9F2D-22302BD8E350}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3B134E9-5B26-4455-9F2D-22302BD8E350}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3B134E9-5B26-4455-9F2D-22302BD8E350}.Release|Any CPU.Build.0 = Release|Any CPU + {8B963C6C-CF59-433B-B8FB-6C1EB4650DF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B963C6C-CF59-433B-B8FB-6C1EB4650DF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B963C6C-CF59-433B-B8FB-6C1EB4650DF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B963C6C-CF59-433B-B8FB-6C1EB4650DF2}.Release|Any CPU.Build.0 = Release|Any CPU + {AF7C053E-2774-4355-8541-945594C4AF9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF7C053E-2774-4355-8541-945594C4AF9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF7C053E-2774-4355-8541-945594C4AF9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF7C053E-2774-4355-8541-945594C4AF9C}.Release|Any CPU.Build.0 = Release|Any CPU + {31A285E0-CBFF-46D1-84BC-312ABEB35A4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31A285E0-CBFF-46D1-84BC-312ABEB35A4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31A285E0-CBFF-46D1-84BC-312ABEB35A4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31A285E0-CBFF-46D1-84BC-312ABEB35A4F}.Release|Any CPU.Build.0 = Release|Any CPU + {C80ABA38-B1E9-4050-8F9B-B04CDC959EFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C80ABA38-B1E9-4050-8F9B-B04CDC959EFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C80ABA38-B1E9-4050-8F9B-B04CDC959EFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C80ABA38-B1E9-4050-8F9B-B04CDC959EFD}.Release|Any CPU.Build.0 = Release|Any CPU + {6186F0B4-B044-40FD-8397-B47EADA616F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6186F0B4-B044-40FD-8397-B47EADA616F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6186F0B4-B044-40FD-8397-B47EADA616F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6186F0B4-B044-40FD-8397-B47EADA616F9}.Release|Any CPU.Build.0 = Release|Any CPU + {FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD6EBEAC-0D3F-4C20-B547-0B91DCBA5C30}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EE95AE39-845A-42D3-86D0-8065DBE56612} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {585E3764-534B-4A12-8BD5-8578CB826A45} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {8500112F-96BD-47BF-8871-3242089FAE70} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B0759A15-7D28-496D-90C9-406F9C0ACEFD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {BB734161-A529-4414-A97C-AEB61EC87D48} + SolutionGuid = {42E679A9-01B2-446F-B26E-4CF16464E149} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections.Specialized/System.Collections.Specialized.sln b/src/libraries/System.Collections.Specialized/System.Collections.Specialized.sln index 68c8963d9f64..739c15cb324e 100644 --- a/src/libraries/System.Collections.Specialized/System.Collections.Specialized.sln +++ b/src/libraries/System.Collections.Specialized/System.Collections.Specialized.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized.Tests", "tests\System.Collections.Specialized.Tests.csproj", "{7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68}" - ProjectSection(ProjectDependencies) = postProject - {63634289-90D7-4947-8BF3-DBBE98D76C85} = {63634289-90D7-4947-8BF3-DBBE98D76C85} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "src\System.Collections.Specialized.csproj", "{63634289-90D7-4947-8BF3-DBBE98D76C85}" - ProjectSection(ProjectDependencies) = postProject - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959} = {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{90F093C0-0C49-4146-AD5D-0C6A6547A258}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "ref\System.Collections.Specialized.csproj", "{6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "ref\System.Collections.Specialized.csproj", "{D414DDBE-F5D9-4030-A576-DA2CBC96EB5D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "src\System.Collections.Specialized.csproj", "{FE0B5511-A5E1-4E19-A232-B89F628C417E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized.Tests", "tests\System.Collections.Specialized.Tests.csproj", "{6708616F-5AFD-4AF1-B04E-81EAC42F2EB3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8BFB50AF-BD65-489C-B77F-A0840982FC04}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DCF011C9-211F-498B-93A7-DBCEB552E343}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{89284892-6E2A-4D68-B60B-AA01BF45E38E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{735E08A8-F52E-47A8-85B9-1E45A9422A32}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F6527468-9047-4313-8E53-C6DB7473C86A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{560355F9-6300-4BCB-AD28-0B981A4FD483}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FAE41228-724A-4A5F-ADEF-247C5A641D8E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18} = {F6527468-9047-4313-8E53-C6DB7473C86A} + {6708616F-5AFD-4AF1-B04E-81EAC42F2EB3} = {F6527468-9047-4313-8E53-C6DB7473C86A} + {90F093C0-0C49-4146-AD5D-0C6A6547A258} = {560355F9-6300-4BCB-AD28-0B981A4FD483} + {D414DDBE-F5D9-4030-A576-DA2CBC96EB5D} = {560355F9-6300-4BCB-AD28-0B981A4FD483} + {8BFB50AF-BD65-489C-B77F-A0840982FC04} = {560355F9-6300-4BCB-AD28-0B981A4FD483} + {89284892-6E2A-4D68-B60B-AA01BF45E38E} = {560355F9-6300-4BCB-AD28-0B981A4FD483} + {735E08A8-F52E-47A8-85B9-1E45A9422A32} = {560355F9-6300-4BCB-AD28-0B981A4FD483} + {FE0B5511-A5E1-4E19-A232-B89F628C417E} = {FAE41228-724A-4A5F-ADEF-247C5A641D8E} + {A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C} = {FAE41228-724A-4A5F-ADEF-247C5A641D8E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68}.Release|Any CPU.Build.0 = Release|Any CPU - {63634289-90D7-4947-8BF3-DBBE98D76C85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63634289-90D7-4947-8BF3-DBBE98D76C85}.Debug|Any CPU.Build.0 = Debug|Any CPU - {63634289-90D7-4947-8BF3-DBBE98D76C85}.Release|Any CPU.ActiveCfg = Release|Any CPU - {63634289-90D7-4947-8BF3-DBBE98D76C85}.Release|Any CPU.Build.0 = Release|Any CPU - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959}.Release|Any CPU.Build.0 = Release|Any CPU - {DCF011C9-211F-498B-93A7-DBCEB552E343}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCF011C9-211F-498B-93A7-DBCEB552E343}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DCF011C9-211F-498B-93A7-DBCEB552E343}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DCF011C9-211F-498B-93A7-DBCEB552E343}.Release|Any CPU.Build.0 = Release|Any CPU + {8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D9AEA48-C9C5-42EE-9FF1-A27B9973EE18}.Release|Any CPU.Build.0 = Release|Any CPU + {90F093C0-0C49-4146-AD5D-0C6A6547A258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90F093C0-0C49-4146-AD5D-0C6A6547A258}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90F093C0-0C49-4146-AD5D-0C6A6547A258}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90F093C0-0C49-4146-AD5D-0C6A6547A258}.Release|Any CPU.Build.0 = Release|Any CPU + {D414DDBE-F5D9-4030-A576-DA2CBC96EB5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D414DDBE-F5D9-4030-A576-DA2CBC96EB5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D414DDBE-F5D9-4030-A576-DA2CBC96EB5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D414DDBE-F5D9-4030-A576-DA2CBC96EB5D}.Release|Any CPU.Build.0 = Release|Any CPU + {FE0B5511-A5E1-4E19-A232-B89F628C417E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE0B5511-A5E1-4E19-A232-B89F628C417E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE0B5511-A5E1-4E19-A232-B89F628C417E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE0B5511-A5E1-4E19-A232-B89F628C417E}.Release|Any CPU.Build.0 = Release|Any CPU + {6708616F-5AFD-4AF1-B04E-81EAC42F2EB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6708616F-5AFD-4AF1-B04E-81EAC42F2EB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6708616F-5AFD-4AF1-B04E-81EAC42F2EB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6708616F-5AFD-4AF1-B04E-81EAC42F2EB3}.Release|Any CPU.Build.0 = Release|Any CPU + {8BFB50AF-BD65-489C-B77F-A0840982FC04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BFB50AF-BD65-489C-B77F-A0840982FC04}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BFB50AF-BD65-489C-B77F-A0840982FC04}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BFB50AF-BD65-489C-B77F-A0840982FC04}.Release|Any CPU.Build.0 = Release|Any CPU + {A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A29B4AED-EDEE-48B5-BA13-7F4D06E85D1C}.Release|Any CPU.Build.0 = Release|Any CPU + {89284892-6E2A-4D68-B60B-AA01BF45E38E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89284892-6E2A-4D68-B60B-AA01BF45E38E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89284892-6E2A-4D68-B60B-AA01BF45E38E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89284892-6E2A-4D68-B60B-AA01BF45E38E}.Release|Any CPU.Build.0 = Release|Any CPU + {735E08A8-F52E-47A8-85B9-1E45A9422A32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {735E08A8-F52E-47A8-85B9-1E45A9422A32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {735E08A8-F52E-47A8-85B9-1E45A9422A32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {735E08A8-F52E-47A8-85B9-1E45A9422A32}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7F5F5134-00FE-4DE8-B20C-3DA8BA2EBA68} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {63634289-90D7-4947-8BF3-DBBE98D76C85} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6D2FA7D7-1A71-456C-ACBC-1FF13E0E8959} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {DCF011C9-211F-498B-93A7-DBCEB552E343} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3E0D43D8-EF4B-4DF6-9F8D-61BCEF7F85F4} + SolutionGuid = {BF9E2841-822A-4FDC-B8C5-AF262BB721D6} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections/System.Collections.sln b/src/libraries/System.Collections/System.Collections.sln index c83b6b4dd0c5..4a97408e014e 100644 --- a/src/libraries/System.Collections/System.Collections.sln +++ b/src/libraries/System.Collections/System.Collections.sln @@ -1,67 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Tests", "tests\System.Collections.Tests.csproj", "{F5EB9630-AD29-4880-963F-F2D39C684D8A}" - ProjectSection(ProjectDependencies) = postProject - {D5FF747F-7A0B-9003-885A-FE9A63E755E5} = {D5FF747F-7A0B-9003-885A-FE9A63E755E5} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4385739F-14A1-4F21-96E3-12EA90580575}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "src\System.Collections.csproj", "{D5FF747F-7A0B-9003-885A-FE9A63E755E5}" - ProjectSection(ProjectDependencies) = postProject - {C746D448-E7C3-4850-9CA7-D3F1FA49742F} = {C746D448-E7C3-4850-9CA7-D3F1FA49742F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{38D8F258-655E-459B-B2CE-0DED144AFBF7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "ref\System.Collections.csproj", "{C746D448-E7C3-4850-9CA7-D3F1FA49742F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0B74A606-CA5C-41BD-BF11-06313111C467}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "ref\System.Collections.csproj", "{77E9C47D-4AC4-4402-8613-40DF427174BD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "src\System.Collections.csproj", "{DF501250-4105-4F79-A508-90B3A13A975A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Tests", "tests\System.Collections.Tests.csproj", "{BB54ED9D-FF71-4D91-B7C0-984AB0976798}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{BE45BF34-779D-4E14-9DD7-FD86E6EDC81E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{DFC77569-7EAD-4C2B-840D-3A58847A2962}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{2BB60758-1685-4FA8-B11E-75627B29F66A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EE6AF63D-8705-487B-959B-49FC2D499468}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D7F92531-08CA-46EA-B042-C3BF2D1C08CE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{894618AB-CCB7-43BA-8C26-2CBF51C412F5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0C96B731-560C-4703-9077-8B2E37381EF0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {4385739F-14A1-4F21-96E3-12EA90580575} = {D7F92531-08CA-46EA-B042-C3BF2D1C08CE} + {DF501250-4105-4F79-A508-90B3A13A975A} = {D7F92531-08CA-46EA-B042-C3BF2D1C08CE} + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6} = {D7F92531-08CA-46EA-B042-C3BF2D1C08CE} + {38D8F258-655E-459B-B2CE-0DED144AFBF7} = {894618AB-CCB7-43BA-8C26-2CBF51C412F5} + {BB54ED9D-FF71-4D91-B7C0-984AB0976798} = {894618AB-CCB7-43BA-8C26-2CBF51C412F5} + {0B74A606-CA5C-41BD-BF11-06313111C467} = {0C96B731-560C-4703-9077-8B2E37381EF0} + {77E9C47D-4AC4-4402-8613-40DF427174BD} = {0C96B731-560C-4703-9077-8B2E37381EF0} + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3} = {0C96B731-560C-4703-9077-8B2E37381EF0} + {2BB60758-1685-4FA8-B11E-75627B29F66A} = {0C96B731-560C-4703-9077-8B2E37381EF0} + {EE6AF63D-8705-487B-959B-49FC2D499468} = {0C96B731-560C-4703-9077-8B2E37381EF0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F5EB9630-AD29-4880-963F-F2D39C684D8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5EB9630-AD29-4880-963F-F2D39C684D8A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F5EB9630-AD29-4880-963F-F2D39C684D8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F5EB9630-AD29-4880-963F-F2D39C684D8A}.Release|Any CPU.Build.0 = Release|Any CPU - {D5FF747F-7A0B-9003-885A-FE9A63E755E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D5FF747F-7A0B-9003-885A-FE9A63E755E5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D5FF747F-7A0B-9003-885A-FE9A63E755E5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D5FF747F-7A0B-9003-885A-FE9A63E755E5}.Release|Any CPU.Build.0 = Release|Any CPU - {C746D448-E7C3-4850-9CA7-D3F1FA49742F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C746D448-E7C3-4850-9CA7-D3F1FA49742F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C746D448-E7C3-4850-9CA7-D3F1FA49742F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C746D448-E7C3-4850-9CA7-D3F1FA49742F}.Release|Any CPU.Build.0 = Release|Any CPU - {BE45BF34-779D-4E14-9DD7-FD86E6EDC81E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE45BF34-779D-4E14-9DD7-FD86E6EDC81E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE45BF34-779D-4E14-9DD7-FD86E6EDC81E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE45BF34-779D-4E14-9DD7-FD86E6EDC81E}.Release|Any CPU.Build.0 = Release|Any CPU - {DFC77569-7EAD-4C2B-840D-3A58847A2962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFC77569-7EAD-4C2B-840D-3A58847A2962}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFC77569-7EAD-4C2B-840D-3A58847A2962}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFC77569-7EAD-4C2B-840D-3A58847A2962}.Release|Any CPU.Build.0 = Release|Any CPU + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|Any CPU.ActiveCfg = Debug|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|Any CPU.Build.0 = Debug|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|x64.ActiveCfg = Debug|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|x64.Build.0 = Debug|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|x86.ActiveCfg = Debug|x86 + {4385739F-14A1-4F21-96E3-12EA90580575}.Debug|x86.Build.0 = Debug|x86 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|Any CPU.ActiveCfg = Release|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|Any CPU.Build.0 = Release|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|x64.ActiveCfg = Release|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|x64.Build.0 = Release|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|x86.ActiveCfg = Release|x86 + {4385739F-14A1-4F21-96E3-12EA90580575}.Release|x86.Build.0 = Release|x86 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|Any CPU.ActiveCfg = Checked|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|Any CPU.Build.0 = Checked|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|x64.ActiveCfg = Checked|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|x64.Build.0 = Checked|x64 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|x86.ActiveCfg = Checked|x86 + {4385739F-14A1-4F21-96E3-12EA90580575}.Checked|x86.Build.0 = Checked|x86 + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|x64.ActiveCfg = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|x64.Build.0 = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|x86.ActiveCfg = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Debug|x86.Build.0 = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|Any CPU.Build.0 = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|x64.ActiveCfg = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|x64.Build.0 = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|x86.ActiveCfg = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Release|x86.Build.0 = Release|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Checked|x64.ActiveCfg = Debug|Any CPU + {38D8F258-655E-459B-B2CE-0DED144AFBF7}.Checked|x86.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|x64.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|x64.Build.0 = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|x86.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Debug|x86.Build.0 = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|Any CPU.Build.0 = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|x64.ActiveCfg = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|x64.Build.0 = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|x86.ActiveCfg = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Release|x86.Build.0 = Release|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Checked|x64.ActiveCfg = Debug|Any CPU + {0B74A606-CA5C-41BD-BF11-06313111C467}.Checked|x86.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|x64.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|x64.Build.0 = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|x86.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Debug|x86.Build.0 = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|Any CPU.Build.0 = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|x64.ActiveCfg = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|x64.Build.0 = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|x86.ActiveCfg = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Release|x86.Build.0 = Release|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Checked|x64.ActiveCfg = Debug|Any CPU + {77E9C47D-4AC4-4402-8613-40DF427174BD}.Checked|x86.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|x64.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|x64.Build.0 = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|x86.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Debug|x86.Build.0 = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|Any CPU.Build.0 = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|x64.ActiveCfg = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|x64.Build.0 = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|x86.ActiveCfg = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Release|x86.Build.0 = Release|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Checked|x64.ActiveCfg = Debug|Any CPU + {DF501250-4105-4F79-A508-90B3A13A975A}.Checked|x86.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|x64.Build.0 = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Debug|x86.Build.0 = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|Any CPU.Build.0 = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|x64.ActiveCfg = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|x64.Build.0 = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|x86.ActiveCfg = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Release|x86.Build.0 = Release|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Checked|x64.ActiveCfg = Debug|Any CPU + {BB54ED9D-FF71-4D91-B7C0-984AB0976798}.Checked|x86.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|x64.Build.0 = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Debug|x86.Build.0 = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|Any CPU.Build.0 = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|x64.ActiveCfg = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|x64.Build.0 = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|x86.ActiveCfg = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Release|x86.Build.0 = Release|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Checked|x64.ActiveCfg = Debug|Any CPU + {0582BADC-0A09-4DF7-8D8A-9B6763FBE9F3}.Checked|x86.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|x64.Build.0 = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Debug|x86.Build.0 = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|Any CPU.Build.0 = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|x64.ActiveCfg = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|x64.Build.0 = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|x86.ActiveCfg = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Release|x86.Build.0 = Release|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Checked|x64.ActiveCfg = Debug|Any CPU + {39FCF17F-5CBD-4BF1-BDEF-37F5BA3EE4F6}.Checked|x86.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|x64.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|x64.Build.0 = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|x86.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Debug|x86.Build.0 = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|Any CPU.Build.0 = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|x64.ActiveCfg = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|x64.Build.0 = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|x86.ActiveCfg = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Release|x86.Build.0 = Release|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Checked|x64.ActiveCfg = Debug|Any CPU + {2BB60758-1685-4FA8-B11E-75627B29F66A}.Checked|x86.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|x64.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|x64.Build.0 = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|x86.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Debug|x86.Build.0 = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|Any CPU.Build.0 = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|x64.ActiveCfg = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|x64.Build.0 = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|x86.ActiveCfg = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Release|x86.Build.0 = Release|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Checked|x64.ActiveCfg = Debug|Any CPU + {EE6AF63D-8705-487B-959B-49FC2D499468}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F5EB9630-AD29-4880-963F-F2D39C684D8A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D5FF747F-7A0B-9003-885A-FE9A63E755E5} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C746D448-E7C3-4850-9CA7-D3F1FA49742F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {BE45BF34-779D-4E14-9DD7-FD86E6EDC81E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {DFC77569-7EAD-4C2B-840D-3A58847A2962} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7B3C136F-F7AB-498F-A4B3-F512E83806B0} + SolutionGuid = {FDD40D53-AF3E-4A20-BE17-7555EB5494F9} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Collections/ref/System.Collections.cs b/src/libraries/System.Collections/ref/System.Collections.cs index 334a67afad23..405eea4de0a4 100644 --- a/src/libraries/System.Collections/ref/System.Collections.cs +++ b/src/libraries/System.Collections/ref/System.Collections.cs @@ -568,7 +568,7 @@ public partial class SortedList : System.Collections.Generic.IColl void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) { } bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) { throw null; } System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() { throw null; } - void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) { } + void System.Collections.ICollection.CopyTo(System.Array array, int index) { } void System.Collections.IDictionary.Add(object key, object? value) { } bool System.Collections.IDictionary.Contains(object key) { throw null; } System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() { throw null; } diff --git a/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs b/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs index ee9957b93844..653f6c7dacd7 100644 --- a/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs +++ b/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs @@ -337,6 +337,22 @@ public void CantAcceptDuplicateKeysFromSourceDictionary() AssertExtensions.Throws(null, () => new Dictionary(source, StringComparer.OrdinalIgnoreCase)); } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))] + // https://github.com/dotnet/runtime/issues/44681 + public void DictionaryOrdinalIgnoreCaseCyrillicKeys() + { + const string Lower = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя"; + const string Higher = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"; + + var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); + + for (int i = 0; i < Lower.Length; i++) + { + dictionary[Lower[i].ToString()] = i; + Assert.Equal(i, dictionary[Higher[i].ToString()]); + } + } + public static IEnumerable CopyConstructorStringComparerData { get diff --git a/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs b/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs index 934e57aafe4c..eb7a7bf28754 100644 --- a/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs +++ b/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs @@ -54,56 +54,56 @@ public static void ComparerImplementations_Dictionary_WithWellKnownStringCompare RunDictionaryTest( equalityComparer: null, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // EqualityComparer.Default comparer RunDictionaryTest( equalityComparer: EqualityComparer.Default, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // Ordinal comparer RunDictionaryTest( equalityComparer: StringComparer.Ordinal, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // OrdinalIgnoreCase comparer RunDictionaryTest( equalityComparer: StringComparer.OrdinalIgnoreCase, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); // linguistic comparer (not optimized) RunDictionaryTest( equalityComparer: StringComparer.InvariantCulture, - expectedInternalComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedComparerAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); + expectedInternalComparerTypeBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), + expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture, + expectedInternalComparerTypeAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); static void RunDictionaryTest( IEqualityComparer equalityComparer, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { RunCollectionTestCommon( () => new Dictionary(equalityComparer), (dictionary, key) => dictionary.Add(key, null), (dictionary, key) => dictionary.ContainsKey(key), dictionary => dictionary.Comparer, - expectedInternalComparerBeforeCollisionThreshold, + expectedInternalComparerTypeBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold, - expectedComparerAfterCollisionThreshold); + expectedInternalComparerTypeAfterCollisionThreshold); } } @@ -119,56 +119,56 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( RunHashSetTest( equalityComparer: null, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // EqualityComparer.Default comparer RunHashSetTest( equalityComparer: EqualityComparer.Default, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // Ordinal comparer RunHashSetTest( equalityComparer: StringComparer.Ordinal, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // OrdinalIgnoreCase comparer RunHashSetTest( equalityComparer: StringComparer.OrdinalIgnoreCase, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); // linguistic comparer (not optimized) RunHashSetTest( equalityComparer: StringComparer.InvariantCulture, - expectedInternalComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedComparerAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); + expectedInternalComparerTypeBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), + expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture, + expectedInternalComparerTypeAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); static void RunHashSetTest( IEqualityComparer equalityComparer, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { RunCollectionTestCommon( () => new HashSet(equalityComparer), (set, key) => Assert.True(set.Add(key)), (set, key) => set.Contains(key), set => set.Comparer, - expectedInternalComparerBeforeCollisionThreshold, + expectedInternalComparerTypeBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold, - expectedComparerAfterCollisionThreshold); + expectedInternalComparerTypeAfterCollisionThreshold); } } @@ -177,24 +177,18 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( Action addKeyCallback, Func containsKeyCallback, Func> getComparerCallback, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { TCollection collection = collectionFactory(); List allKeys = new List(); - const int StartOfRange = 0xE020; // use the Unicode Private Use range to avoid accidentally creating strings that really do compare as equal OrdinalIgnoreCase - const int Stride = 0x40; // to ensure we don't accidentally reset the 0x20 bit of the seed, which is used to negate OrdinalIgnoreCase effects - // First, go right up to the collision threshold, but don't exceed it. for (int i = 0; i < 100; i++) { - string newKey = GenerateCollidingString(i * Stride + StartOfRange); - Assert.Equal(0, _lazyGetNonRandomizedHashCodeDel.Value(newKey)); // ensure has a zero hash code Ordinal - Assert.Equal(0x24716ca0, _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(newKey)); // ensure has a zero hash code OrdinalIgnoreCase - + string newKey = _collidingStrings[i]; addKeyCallback(collection, newKey); allKeys.Add(newKey); } @@ -202,15 +196,18 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( FieldInfo internalComparerField = collection.GetType().GetField("_comparer", BindingFlags.NonPublic | BindingFlags.Instance); Assert.NotNull(internalComparerField); - Assert.Equal(expectedInternalComparerBeforeCollisionThreshold, internalComparerField.GetValue(collection)?.GetType()); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection).GetType()); + IEqualityComparer actualInternalComparerBeforeCollisionThreshold = (IEqualityComparer)internalComparerField.GetValue(collection); + ValidateBehaviorOfInternalComparerVsPublicComparer(actualInternalComparerBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold); + + Assert.Equal(expectedInternalComparerTypeBeforeCollisionThreshold, actualInternalComparerBeforeCollisionThreshold?.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection)); // Now exceed the collision threshold, which should rebucket entries. // Continue adding a few more entries to ensure we didn't corrupt internal state. for (int i = 100; i < 110; i++) { - string newKey = GenerateCollidingString(i * Stride + StartOfRange); + string newKey = _collidingStrings[i]; Assert.Equal(0, _lazyGetNonRandomizedHashCodeDel.Value(newKey)); // ensure has a zero hash code Ordinal Assert.Equal(0x24716ca0, _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(newKey)); // ensure has a zero hash code OrdinalIgnoreCase @@ -218,8 +215,11 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( allKeys.Add(newKey); } - Assert.Equal(expectedComparerAfterCollisionThreshold, internalComparerField.GetValue(collection)?.GetType()); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection).GetType()); // shouldn't change this return value after collision threshold met + IEqualityComparer actualInternalComparerAfterCollisionThreshold = (IEqualityComparer)internalComparerField.GetValue(collection); + ValidateBehaviorOfInternalComparerVsPublicComparer(actualInternalComparerAfterCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold); + + Assert.Equal(expectedInternalComparerTypeAfterCollisionThreshold, actualInternalComparerAfterCollisionThreshold?.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection)); // shouldn't change this return value after collision threshold met // And validate that all strings are present in the dictionary. @@ -235,7 +235,7 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( ((ISerializable)collection).GetObjectData(si, new StreamingContext()); object serializedComparer = si.GetValue("Comparer", typeof(IEqualityComparer)); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, serializedComparer.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, serializedComparer); } private static Lazy> _lazyGetNonRandomizedHashCodeDel = new Lazy>( @@ -244,27 +244,63 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( private static Lazy> _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel = new Lazy>( () => GetStringHashCodeOpenDelegate("GetNonRandomizedHashCodeOrdinalIgnoreCase")); - // Generates a string with a well-known non-randomized hash code: - // - string.GetNonRandomizedHashCode returns 0. - // - string.GetNonRandomizedHashCodeOrdinalIgnoreCase returns 0x24716ca0. - // Provide a different seed to produce a different string. - private static string GenerateCollidingString(int seed) + // n.b., must be initialized *after* delegate fields above + private static readonly List _collidingStrings = GenerateCollidingStrings(110); + + private static List GenerateCollidingStrings(int count) { - return string.Create(8, seed, (span, seed) => + const int StartOfRange = 0xE020; // use the Unicode Private Use range to avoid accidentally creating strings that really do compare as equal OrdinalIgnoreCase + const int Stride = 0x40; // to ensure we don't accidentally reset the 0x20 bit of the seed, which is used to negate OrdinalIgnoreCase effects + + int currentSeed = StartOfRange; + + List collidingStrings = new List(count); + while (collidingStrings.Count < count) { - Span asBytes = MemoryMarshal.AsBytes(span); - - uint hash1 = (5381 << 16) + 5381; - uint hash2 = BitOperations.RotateLeft(hash1, 5) + hash1; - - MemoryMarshal.Write(asBytes, ref seed); - MemoryMarshal.Write(asBytes.Slice(4), ref hash2); // set hash2 := 0 (for Ordinal) - - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (uint)seed; - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1); - - MemoryMarshal.Write(asBytes.Slice(8), ref hash1); // set hash1 := 0 (for Ordinal) - }); + if (currentSeed > ushort.MaxValue) + { + throw new Exception($"Couldn't create enough colliding strings? Created {collidingStrings.Count}, needed {count}."); + } + + string candidate = GenerateCollidingStringCandidate(currentSeed); + + int ordinalHashCode = _lazyGetNonRandomizedHashCodeDel.Value(candidate); + Assert.Equal(0, ordinalHashCode); // ensure has a zero hash code Ordinal + + int ordinalIgnoreCaseHashCode = _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(candidate); + if (ordinalIgnoreCaseHashCode == 0x24716ca0) // ensure has a zero hash code OrdinalIgnoreCase (might not have one) + { + collidingStrings.Add(candidate); // success! + } + + currentSeed += Stride; + } + + return collidingStrings; + + // Generates a possible string with a well-known non-randomized hash code: + // - string.GetNonRandomizedHashCode returns 0. + // - string.GetNonRandomizedHashCodeOrdinalIgnoreCase returns 0x24716ca0. + // Provide a different seed to produce a different string. + // Caller must check OrdinalIgnoreCase hash code to ensure correctness. + static string GenerateCollidingStringCandidate(int seed) + { + return string.Create(8, seed, (span, seed) => + { + Span asBytes = MemoryMarshal.AsBytes(span); + + uint hash1 = (5381 << 16) + 5381; + uint hash2 = BitOperations.RotateLeft(hash1, 5) + hash1; + + MemoryMarshal.Write(asBytes, ref seed); + MemoryMarshal.Write(asBytes.Slice(4), ref hash2); // set hash2 := 0 (for Ordinal) + + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (uint)seed; + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1); + + MemoryMarshal.Write(asBytes.Slice(8), ref hash1); // set hash1 := 0 (for Ordinal) + }); + } } private static Func GetStringHashCodeOpenDelegate(string methodName) @@ -274,5 +310,44 @@ private static string GenerateCollidingString(int seed) return method.CreateDelegate>(target: null); // create open delegate unbound to 'this' } + + private static void ValidateBehaviorOfInternalComparerVsPublicComparer(IEqualityComparer internalComparer, IEqualityComparer publicComparer) + { + // This helper ensures that when we substitute one of our internal comparers + // in place of the expected public comparer, the internal comparer's Equals + // and GetHashCode behavior are consistent with the public comparer's. + + if (internalComparer is null) + { + internalComparer = EqualityComparer.Default; + } + if (publicComparer is null) + { + publicComparer = EqualityComparer.Default; + } + + foreach (var pair in new[] { + ("Hello", "Hello"), // exactly equal + ("Hello", "Goodbye"), // not equal at all + ("Hello", "hello"), // case-insensitive equal + ("Hello", "He\u200dllo"), // equal under linguistic comparer + ("Hello", "HE\u200dLLO"), // equal under case-insensitive linguistic comparer + ("абвгдеёжзийклмнопрстуфхцчшщьыъэюя", "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"), // Cyrillic, case-insensitive equal + }) + { + bool arePairElementsExpectedEqual = publicComparer.Equals(pair.Item1, pair.Item2); + Assert.Equal(arePairElementsExpectedEqual, internalComparer.Equals(pair.Item1, pair.Item2)); + + bool areInternalHashCodesEqual = internalComparer.GetHashCode(pair.Item1) == internalComparer.GetHashCode(pair.Item2); + if (arePairElementsExpectedEqual) + { + Assert.True(areInternalHashCodesEqual); + } + else if (!areInternalHashCodesEqual) + { + Assert.False(arePairElementsExpectedEqual); + } + } + } } } diff --git a/src/libraries/System.ComponentModel.Annotations/System.ComponentModel.Annotations.sln b/src/libraries/System.ComponentModel.Annotations/System.ComponentModel.Annotations.sln index 23fab5c1b1b3..86e7b05c4677 100644 --- a/src/libraries/System.ComponentModel.Annotations/System.ComponentModel.Annotations.sln +++ b/src/libraries/System.ComponentModel.Annotations/System.ComponentModel.Annotations.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29101.129 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations.Tests", "tests\System.ComponentModel.Annotations.Tests.csproj", "{6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF}" - ProjectSection(ProjectDependencies) = postProject - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5} = {4266D58F-EB60-46C2-BA81-3ABDE759A7D5} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "src\System.ComponentModel.Annotations.csproj", "{4266D58F-EB60-46C2-BA81-3ABDE759A7D5}" - ProjectSection(ProjectDependencies) = postProject - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26} = {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1B9E26FA-F362-40BA-B0CC-371858792EF7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "ref\System.ComponentModel.Annotations.csproj", "{C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "ref\System.ComponentModel.Annotations.csproj", "{FD97F92D-762C-4657-9F80-AB7992681202}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations", "src\System.ComponentModel.Annotations.csproj", "{B60893E1-864C-4236-9D4B-F17540DEED86}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Annotations.Tests", "tests\System.ComponentModel.Annotations.Tests.csproj", "{E4C76FCB-4583-475C-B042-FC44BD1D73F2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{260925B5-FFCD-447A-8CD1-3783B5F3C5D3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1488943C-E709-42D8-8CFF-8062D547261B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{370A7C81-5E49-44C4-AC23-BDC838488D8E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A1E54D25-4697-4E74-8C70-D7A67A580297}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D8582B90-E86A-4F83-9EA3-A444D251FDE9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4BF41FF4-3540-4DB7-9DF5-5D3287589D47}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9FC60D8A-C4DE-4914-99BB-55A4C6609A73}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ACAB6984-EB9D-4187-96E9-58ED91994467}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33} = {4BF41FF4-3540-4DB7-9DF5-5D3287589D47} + {E4C76FCB-4583-475C-B042-FC44BD1D73F2} = {4BF41FF4-3540-4DB7-9DF5-5D3287589D47} + {1B9E26FA-F362-40BA-B0CC-371858792EF7} = {9FC60D8A-C4DE-4914-99BB-55A4C6609A73} + {FD97F92D-762C-4657-9F80-AB7992681202} = {9FC60D8A-C4DE-4914-99BB-55A4C6609A73} + {260925B5-FFCD-447A-8CD1-3783B5F3C5D3} = {9FC60D8A-C4DE-4914-99BB-55A4C6609A73} + {A1E54D25-4697-4E74-8C70-D7A67A580297} = {9FC60D8A-C4DE-4914-99BB-55A4C6609A73} + {D8582B90-E86A-4F83-9EA3-A444D251FDE9} = {9FC60D8A-C4DE-4914-99BB-55A4C6609A73} + {B60893E1-864C-4236-9D4B-F17540DEED86} = {ACAB6984-EB9D-4187-96E9-58ED91994467} + {370A7C81-5E49-44C4-AC23-BDC838488D8E} = {ACAB6984-EB9D-4187-96E9-58ED91994467} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF}.Release|Any CPU.Build.0 = Release|Any CPU - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5}.Release|Any CPU.Build.0 = Release|Any CPU - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26}.Release|Any CPU.Build.0 = Release|Any CPU - {1488943C-E709-42D8-8CFF-8062D547261B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1488943C-E709-42D8-8CFF-8062D547261B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1488943C-E709-42D8-8CFF-8062D547261B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1488943C-E709-42D8-8CFF-8062D547261B}.Release|Any CPU.Build.0 = Release|Any CPU + {5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5ACAB439-ADEF-4CAC-BAD7-5AEE6801BE33}.Release|Any CPU.Build.0 = Release|Any CPU + {1B9E26FA-F362-40BA-B0CC-371858792EF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B9E26FA-F362-40BA-B0CC-371858792EF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B9E26FA-F362-40BA-B0CC-371858792EF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B9E26FA-F362-40BA-B0CC-371858792EF7}.Release|Any CPU.Build.0 = Release|Any CPU + {FD97F92D-762C-4657-9F80-AB7992681202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD97F92D-762C-4657-9F80-AB7992681202}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD97F92D-762C-4657-9F80-AB7992681202}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD97F92D-762C-4657-9F80-AB7992681202}.Release|Any CPU.Build.0 = Release|Any CPU + {B60893E1-864C-4236-9D4B-F17540DEED86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B60893E1-864C-4236-9D4B-F17540DEED86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B60893E1-864C-4236-9D4B-F17540DEED86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B60893E1-864C-4236-9D4B-F17540DEED86}.Release|Any CPU.Build.0 = Release|Any CPU + {E4C76FCB-4583-475C-B042-FC44BD1D73F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4C76FCB-4583-475C-B042-FC44BD1D73F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4C76FCB-4583-475C-B042-FC44BD1D73F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4C76FCB-4583-475C-B042-FC44BD1D73F2}.Release|Any CPU.Build.0 = Release|Any CPU + {260925B5-FFCD-447A-8CD1-3783B5F3C5D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {260925B5-FFCD-447A-8CD1-3783B5F3C5D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {260925B5-FFCD-447A-8CD1-3783B5F3C5D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {260925B5-FFCD-447A-8CD1-3783B5F3C5D3}.Release|Any CPU.Build.0 = Release|Any CPU + {370A7C81-5E49-44C4-AC23-BDC838488D8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {370A7C81-5E49-44C4-AC23-BDC838488D8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {370A7C81-5E49-44C4-AC23-BDC838488D8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {370A7C81-5E49-44C4-AC23-BDC838488D8E}.Release|Any CPU.Build.0 = Release|Any CPU + {A1E54D25-4697-4E74-8C70-D7A67A580297}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1E54D25-4697-4E74-8C70-D7A67A580297}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1E54D25-4697-4E74-8C70-D7A67A580297}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1E54D25-4697-4E74-8C70-D7A67A580297}.Release|Any CPU.Build.0 = Release|Any CPU + {D8582B90-E86A-4F83-9EA3-A444D251FDE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8582B90-E86A-4F83-9EA3-A444D251FDE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8582B90-E86A-4F83-9EA3-A444D251FDE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8582B90-E86A-4F83-9EA3-A444D251FDE9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6E48765E-D6AC-4A79-9C2E-B5EE67EEDECF} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4266D58F-EB60-46C2-BA81-3ABDE759A7D5} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C4D6F1F4-DC7E-4756-9A88-171A8B1F1E26} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {1488943C-E709-42D8-8CFF-8062D547261B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {609A6C56-3EE1-4E65-AD40-CA3A0D32B2DD} + SolutionGuid = {4C1CDE35-7742-40EC-A075-B1ABF99F50B5} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.Composition.Registration/System.ComponentModel.Composition.Registration.sln b/src/libraries/System.ComponentModel.Composition.Registration/System.ComponentModel.Composition.Registration.sln index 1aabeaaa66ec..89de5a5ee796 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/System.ComponentModel.Composition.Registration.sln +++ b/src/libraries/System.ComponentModel.Composition.Registration/System.ComponentModel.Composition.Registration.sln @@ -1,60 +1,114 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration.Tests", "tests\System.ComponentModel.Composition.Registration.Tests.csproj", "{0F8CFFA3-6E16-4642-82C1-289D95338D7C}" - ProjectSection(ProjectDependencies) = postProject - {E3663E26-6819-4997-B372-94454DB4D60E} = {E3663E26-6819-4997-B372-94454DB4D60E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8E125AA7-17F9-467C-B58F-B37CEE76DA3F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration", "src\System.ComponentModel.Composition.Registration.csproj", "{E3663E26-6819-4997-B372-94454DB4D60E}" - ProjectSection(ProjectDependencies) = postProject - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D} = {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FEE83A04-7615-43D7-BB34-46F7FD0DDF72}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration", "ref\System.ComponentModel.Composition.Registration.csproj", "{6E0C5F44-0160-4082-A25C-2DB8EA7ED30D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration", "ref\System.ComponentModel.Composition.Registration.csproj", "{944AFEA1-B4FF-4309-9419-EFCA22347C60}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration", "src\System.ComponentModel.Composition.Registration.csproj", "{E427BC70-0F51-4DA8-995A-AC46E8E3A31B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Registration.Tests", "tests\System.ComponentModel.Composition.Registration.Tests.csproj", "{5B637911-605E-410D-93E3-F462332A0F14}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\ref\System.ComponentModel.Composition.csproj", "{2DE556D7-9EB8-4763-B585-4EA9B45A5D9A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\src\System.ComponentModel.Composition.csproj", "{D598C12E-CFC4-42A8-A6D2-99FC7F527179}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "..\System.Reflection.Context\ref\System.Reflection.Context.csproj", "{0EFDCC75-E302-4A30-AC04-26DEF262333C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "..\System.Reflection.Context\src\System.Reflection.Context.csproj", "{9154CFB5-AC90-4BC7-BECB-3BB588356ABE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{12A42D4C-7FF5-4B2F-9910-50A413F5382F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{906977E7-C5B4-4CBC-B2A5-E56DABC3B125}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{343B6F2E-FE11-4ED9-A096-6CEC98DC894D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{3E0F104B-3410-48B9-A988-B841C03C5616}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{836773FD-30A2-4310-9DBD-08D2E5EA5CB6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C38B3212-DE62-4C5F-B363-F683DA2774DF}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8E125AA7-17F9-467C-B58F-B37CEE76DA3F} = {836773FD-30A2-4310-9DBD-08D2E5EA5CB6} + {5B637911-605E-410D-93E3-F462332A0F14} = {836773FD-30A2-4310-9DBD-08D2E5EA5CB6} + {FEE83A04-7615-43D7-BB34-46F7FD0DDF72} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {944AFEA1-B4FF-4309-9419-EFCA22347C60} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {2DE556D7-9EB8-4763-B585-4EA9B45A5D9A} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {0EFDCC75-E302-4A30-AC04-26DEF262333C} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {12A42D4C-7FF5-4B2F-9910-50A413F5382F} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {343B6F2E-FE11-4ED9-A096-6CEC98DC894D} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {3E0F104B-3410-48B9-A988-B841C03C5616} = {4CBE01B8-241B-4F3A-970E-70C9DA8AD4C0} + {E427BC70-0F51-4DA8-995A-AC46E8E3A31B} = {C38B3212-DE62-4C5F-B363-F683DA2774DF} + {D598C12E-CFC4-42A8-A6D2-99FC7F527179} = {C38B3212-DE62-4C5F-B363-F683DA2774DF} + {9154CFB5-AC90-4BC7-BECB-3BB588356ABE} = {C38B3212-DE62-4C5F-B363-F683DA2774DF} + {906977E7-C5B4-4CBC-B2A5-E56DABC3B125} = {C38B3212-DE62-4C5F-B363-F683DA2774DF} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0F8CFFA3-6E16-4642-82C1-289D95338D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F8CFFA3-6E16-4642-82C1-289D95338D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F8CFFA3-6E16-4642-82C1-289D95338D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F8CFFA3-6E16-4642-82C1-289D95338D7C}.Release|Any CPU.Build.0 = Release|Any CPU - {E3663E26-6819-4997-B372-94454DB4D60E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E3663E26-6819-4997-B372-94454DB4D60E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E3663E26-6819-4997-B372-94454DB4D60E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E3663E26-6819-4997-B372-94454DB4D60E}.Release|Any CPU.Build.0 = Release|Any CPU - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D}.Release|Any CPU.Build.0 = Release|Any CPU - {7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1}.Release|Any CPU.Build.0 = Release|Any CPU + {8E125AA7-17F9-467C-B58F-B37CEE76DA3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E125AA7-17F9-467C-B58F-B37CEE76DA3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E125AA7-17F9-467C-B58F-B37CEE76DA3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E125AA7-17F9-467C-B58F-B37CEE76DA3F}.Release|Any CPU.Build.0 = Release|Any CPU + {FEE83A04-7615-43D7-BB34-46F7FD0DDF72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEE83A04-7615-43D7-BB34-46F7FD0DDF72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEE83A04-7615-43D7-BB34-46F7FD0DDF72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEE83A04-7615-43D7-BB34-46F7FD0DDF72}.Release|Any CPU.Build.0 = Release|Any CPU + {944AFEA1-B4FF-4309-9419-EFCA22347C60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {944AFEA1-B4FF-4309-9419-EFCA22347C60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {944AFEA1-B4FF-4309-9419-EFCA22347C60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {944AFEA1-B4FF-4309-9419-EFCA22347C60}.Release|Any CPU.Build.0 = Release|Any CPU + {E427BC70-0F51-4DA8-995A-AC46E8E3A31B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E427BC70-0F51-4DA8-995A-AC46E8E3A31B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E427BC70-0F51-4DA8-995A-AC46E8E3A31B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E427BC70-0F51-4DA8-995A-AC46E8E3A31B}.Release|Any CPU.Build.0 = Release|Any CPU + {5B637911-605E-410D-93E3-F462332A0F14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B637911-605E-410D-93E3-F462332A0F14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B637911-605E-410D-93E3-F462332A0F14}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B637911-605E-410D-93E3-F462332A0F14}.Release|Any CPU.Build.0 = Release|Any CPU + {2DE556D7-9EB8-4763-B585-4EA9B45A5D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DE556D7-9EB8-4763-B585-4EA9B45A5D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DE556D7-9EB8-4763-B585-4EA9B45A5D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DE556D7-9EB8-4763-B585-4EA9B45A5D9A}.Release|Any CPU.Build.0 = Release|Any CPU + {D598C12E-CFC4-42A8-A6D2-99FC7F527179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D598C12E-CFC4-42A8-A6D2-99FC7F527179}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D598C12E-CFC4-42A8-A6D2-99FC7F527179}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D598C12E-CFC4-42A8-A6D2-99FC7F527179}.Release|Any CPU.Build.0 = Release|Any CPU + {0EFDCC75-E302-4A30-AC04-26DEF262333C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EFDCC75-E302-4A30-AC04-26DEF262333C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EFDCC75-E302-4A30-AC04-26DEF262333C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EFDCC75-E302-4A30-AC04-26DEF262333C}.Release|Any CPU.Build.0 = Release|Any CPU + {9154CFB5-AC90-4BC7-BECB-3BB588356ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9154CFB5-AC90-4BC7-BECB-3BB588356ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9154CFB5-AC90-4BC7-BECB-3BB588356ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9154CFB5-AC90-4BC7-BECB-3BB588356ABE}.Release|Any CPU.Build.0 = Release|Any CPU + {12A42D4C-7FF5-4B2F-9910-50A413F5382F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12A42D4C-7FF5-4B2F-9910-50A413F5382F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12A42D4C-7FF5-4B2F-9910-50A413F5382F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12A42D4C-7FF5-4B2F-9910-50A413F5382F}.Release|Any CPU.Build.0 = Release|Any CPU + {906977E7-C5B4-4CBC-B2A5-E56DABC3B125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {906977E7-C5B4-4CBC-B2A5-E56DABC3B125}.Debug|Any CPU.Build.0 = Debug|Any CPU + {906977E7-C5B4-4CBC-B2A5-E56DABC3B125}.Release|Any CPU.ActiveCfg = Release|Any CPU + {906977E7-C5B4-4CBC-B2A5-E56DABC3B125}.Release|Any CPU.Build.0 = Release|Any CPU + {343B6F2E-FE11-4ED9-A096-6CEC98DC894D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {343B6F2E-FE11-4ED9-A096-6CEC98DC894D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {343B6F2E-FE11-4ED9-A096-6CEC98DC894D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {343B6F2E-FE11-4ED9-A096-6CEC98DC894D}.Release|Any CPU.Build.0 = Release|Any CPU + {3E0F104B-3410-48B9-A988-B841C03C5616}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E0F104B-3410-48B9-A988-B841C03C5616}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E0F104B-3410-48B9-A988-B841C03C5616}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E0F104B-3410-48B9-A988-B841C03C5616}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0F8CFFA3-6E16-4642-82C1-289D95338D7C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E3663E26-6819-4997-B372-94454DB4D60E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6E0C5F44-0160-4082-A25C-2DB8EA7ED30D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7AF11F0A-3D85-4FC7-975D-7ED452DFB9B1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3F452D8B-7A45-4EF1-A7E4-6F69D8EB92D0} + SolutionGuid = {05F0228A-52B7-460E-9A06-9D5A62E33BA6} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.Composition/System.ComponentModel.Composition.sln b/src/libraries/System.ComponentModel.Composition/System.ComponentModel.Composition.sln index 5dd2018ebb02..ab80fbb411bb 100644 --- a/src/libraries/System.ComponentModel.Composition/System.ComponentModel.Composition.sln +++ b/src/libraries/System.ComponentModel.Composition/System.ComponentModel.Composition.sln @@ -1,70 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Tests", "tests\System.ComponentModel.Composition.Tests.csproj", "{59F4682D-C41D-45A7-9798-16C75525BB1D}" - ProjectSection(ProjectDependencies) = postProject - {2D694AC8-A12F-4622-9405-74E20EC40C3A} = {2D694AC8-A12F-4622-9405-74E20EC40C3A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7D89E200-A6F9-4565-ABC9-FB22689B05B4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Noop.Assembly", "tests\System.ComponentModel.Composition.Noop.Assembly\System.ComponentModel.Composition.Noop.Assembly.csproj", "{396D6EBF-60BD-4DAF-8783-FB403E070A56}" - ProjectSection(ProjectDependencies) = postProject - {2D694AC8-A12F-4622-9405-74E20EC40C3A} = {2D694AC8-A12F-4622-9405-74E20EC40C3A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "src\System.ComponentModel.Composition.csproj", "{2D694AC8-A12F-4622-9405-74E20EC40C3A}" - ProjectSection(ProjectDependencies) = postProject - {DD3B8052-CE03-4159-8311-1CE1382C51B0} = {DD3B8052-CE03-4159-8311-1CE1382C51B0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "ref\System.ComponentModel.Composition.csproj", "{82F98B94-4E9D-457B-A391-F8F2766FBB2E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "ref\System.ComponentModel.Composition.csproj", "{DD3B8052-CE03-4159-8311-1CE1382C51B0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "src\System.ComponentModel.Composition.csproj", "{B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Noop.Assembly", "tests\System.ComponentModel.Composition.Noop.Assembly\System.ComponentModel.Composition.Noop.Assembly.csproj", "{E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition.Tests", "tests\System.ComponentModel.Composition.Tests.csproj", "{B21E5872-33E7-40D6-8A7F-33C0264A83E9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{96D9268A-76C1-4FD3-91F9-B73ACE9C86E8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{144D1079-A9F9-454C-928B-B64F821F7BF1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{92D2B31D-210D-48D3-8772-9539A801E460}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{01551689-DC72-4051-BBDC-33117FF028D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F3633774-869D-4183-B5BA-3ABE88DEE5EC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6B6D5A87-46DA-4212-A084-D5AACB0A45D1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E2174C85-75E4-4D2D-8D14-F9CF8E003EF6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BFC3B5F6-5FC4-4FF5-9758-499B2399EE27}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7D89E200-A6F9-4565-ABC9-FB22689B05B4} = {6B6D5A87-46DA-4212-A084-D5AACB0A45D1} + {E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3} = {6B6D5A87-46DA-4212-A084-D5AACB0A45D1} + {B21E5872-33E7-40D6-8A7F-33C0264A83E9} = {6B6D5A87-46DA-4212-A084-D5AACB0A45D1} + {92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E} = {E2174C85-75E4-4D2D-8D14-F9CF8E003EF6} + {82F98B94-4E9D-457B-A391-F8F2766FBB2E} = {E2174C85-75E4-4D2D-8D14-F9CF8E003EF6} + {96D9268A-76C1-4FD3-91F9-B73ACE9C86E8} = {E2174C85-75E4-4D2D-8D14-F9CF8E003EF6} + {01551689-DC72-4051-BBDC-33117FF028D3} = {E2174C85-75E4-4D2D-8D14-F9CF8E003EF6} + {F3633774-869D-4183-B5BA-3ABE88DEE5EC} = {E2174C85-75E4-4D2D-8D14-F9CF8E003EF6} + {B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613} = {BFC3B5F6-5FC4-4FF5-9758-499B2399EE27} + {92D2B31D-210D-48D3-8772-9539A801E460} = {BFC3B5F6-5FC4-4FF5-9758-499B2399EE27} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {59F4682D-C41D-45A7-9798-16C75525BB1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {59F4682D-C41D-45A7-9798-16C75525BB1D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59F4682D-C41D-45A7-9798-16C75525BB1D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {59F4682D-C41D-45A7-9798-16C75525BB1D}.Release|Any CPU.Build.0 = Release|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A56}.Debug|Any CPU.Build.0 = Debug|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A56}.Release|Any CPU.ActiveCfg = Release|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A56}.Release|Any CPU.Build.0 = Release|Any CPU - {2D694AC8-A12F-4622-9405-74E20EC40C3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D694AC8-A12F-4622-9405-74E20EC40C3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D694AC8-A12F-4622-9405-74E20EC40C3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D694AC8-A12F-4622-9405-74E20EC40C3A}.Release|Any CPU.Build.0 = Release|Any CPU - {DD3B8052-CE03-4159-8311-1CE1382C51B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD3B8052-CE03-4159-8311-1CE1382C51B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD3B8052-CE03-4159-8311-1CE1382C51B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD3B8052-CE03-4159-8311-1CE1382C51B0}.Release|Any CPU.Build.0 = Release|Any CPU - {144D1079-A9F9-454C-928B-B64F821F7BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {144D1079-A9F9-454C-928B-B64F821F7BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {144D1079-A9F9-454C-928B-B64F821F7BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {144D1079-A9F9-454C-928B-B64F821F7BF1}.Release|Any CPU.Build.0 = Release|Any CPU + {7D89E200-A6F9-4565-ABC9-FB22689B05B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D89E200-A6F9-4565-ABC9-FB22689B05B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D89E200-A6F9-4565-ABC9-FB22689B05B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D89E200-A6F9-4565-ABC9-FB22689B05B4}.Release|Any CPU.Build.0 = Release|Any CPU + {92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92FCC45A-F6D5-401A-BBB6-1FFCE4570D6E}.Release|Any CPU.Build.0 = Release|Any CPU + {82F98B94-4E9D-457B-A391-F8F2766FBB2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82F98B94-4E9D-457B-A391-F8F2766FBB2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82F98B94-4E9D-457B-A391-F8F2766FBB2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82F98B94-4E9D-457B-A391-F8F2766FBB2E}.Release|Any CPU.Build.0 = Release|Any CPU + {B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1B4D6FA-25CA-4F88-A7B4-BEADC53E9613}.Release|Any CPU.Build.0 = Release|Any CPU + {E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2EDA1F3-8971-4FBF-AFD4-FD1EA21D58C3}.Release|Any CPU.Build.0 = Release|Any CPU + {B21E5872-33E7-40D6-8A7F-33C0264A83E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B21E5872-33E7-40D6-8A7F-33C0264A83E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B21E5872-33E7-40D6-8A7F-33C0264A83E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B21E5872-33E7-40D6-8A7F-33C0264A83E9}.Release|Any CPU.Build.0 = Release|Any CPU + {96D9268A-76C1-4FD3-91F9-B73ACE9C86E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96D9268A-76C1-4FD3-91F9-B73ACE9C86E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96D9268A-76C1-4FD3-91F9-B73ACE9C86E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96D9268A-76C1-4FD3-91F9-B73ACE9C86E8}.Release|Any CPU.Build.0 = Release|Any CPU + {92D2B31D-210D-48D3-8772-9539A801E460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92D2B31D-210D-48D3-8772-9539A801E460}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92D2B31D-210D-48D3-8772-9539A801E460}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92D2B31D-210D-48D3-8772-9539A801E460}.Release|Any CPU.Build.0 = Release|Any CPU + {01551689-DC72-4051-BBDC-33117FF028D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01551689-DC72-4051-BBDC-33117FF028D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01551689-DC72-4051-BBDC-33117FF028D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01551689-DC72-4051-BBDC-33117FF028D3}.Release|Any CPU.Build.0 = Release|Any CPU + {F3633774-869D-4183-B5BA-3ABE88DEE5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3633774-869D-4183-B5BA-3ABE88DEE5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3633774-869D-4183-B5BA-3ABE88DEE5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3633774-869D-4183-B5BA-3ABE88DEE5EC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {59F4682D-C41D-45A7-9798-16C75525BB1D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {396D6EBF-60BD-4DAF-8783-FB403E070A56} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2D694AC8-A12F-4622-9405-74E20EC40C3A} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {DD3B8052-CE03-4159-8311-1CE1382C51B0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {144D1079-A9F9-454C-928B-B64F821F7BF1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {23D18863-A768-4D64-8969-2FA1F82AFA7F} + SolutionGuid = {7852190A-F724-4BBB-969F-ECD086712D41} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.EventBasedAsync/System.ComponentModel.EventBasedAsync.sln b/src/libraries/System.ComponentModel.EventBasedAsync/System.ComponentModel.EventBasedAsync.sln index ce28ba2fa78e..4f032597dd9f 100644 --- a/src/libraries/System.ComponentModel.EventBasedAsync/System.ComponentModel.EventBasedAsync.sln +++ b/src/libraries/System.ComponentModel.EventBasedAsync/System.ComponentModel.EventBasedAsync.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync.Tests", "tests\System.ComponentModel.EventBasedAsync.Tests.csproj", "{59E9B218-81D0-4A80-A4B7-66C716136D82}" - ProjectSection(ProjectDependencies) = postProject - {551A6340-8EEF-445E-A2A2-639CC23DBD36} = {551A6340-8EEF-445E-A2A2-639CC23DBD36} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{40480524-42C3-405F-AE9A-7578B829C696}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync", "src\System.ComponentModel.EventBasedAsync.csproj", "{551A6340-8EEF-445E-A2A2-639CC23DBD36}" - ProjectSection(ProjectDependencies) = postProject - {E7943063-5DB9-4EC6-86DD-3029E65121CE} = {E7943063-5DB9-4EC6-86DD-3029E65121CE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{157E55D7-13AC-4701-B44B-C9C5D7B09D03}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync", "ref\System.ComponentModel.EventBasedAsync.csproj", "{E7943063-5DB9-4EC6-86DD-3029E65121CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync", "ref\System.ComponentModel.EventBasedAsync.csproj", "{83BCEDA6-972E-4E26-9582-C53335A9F9C5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync", "src\System.ComponentModel.EventBasedAsync.csproj", "{04E0F296-DF67-45EB-8967-DADF4CBC9D6E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.EventBasedAsync.Tests", "tests\System.ComponentModel.EventBasedAsync.Tests.csproj", "{E79356D9-2598-489C-9ADF-59B2D95EA22C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3350F98E-14CE-4192-B5F4-13E56202C01E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{63E4FB4E-BB41-4581-8122-71FD5A35D90D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BCB250B7-3138-45E0-8A2D-32780A491B64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{36F00727-1E59-4281-9746-B5BD9EC1381D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8706A765-4794-47B9-AD2B-20A4F6044AA9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{118BDD7F-546D-4665-BD6B-24DE20C4B0D0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D87193B7-CCBD-4072-862C-6F5DD1CC27CC}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {40480524-42C3-405F-AE9A-7578B829C696} = {8706A765-4794-47B9-AD2B-20A4F6044AA9} + {E79356D9-2598-489C-9ADF-59B2D95EA22C} = {8706A765-4794-47B9-AD2B-20A4F6044AA9} + {157E55D7-13AC-4701-B44B-C9C5D7B09D03} = {118BDD7F-546D-4665-BD6B-24DE20C4B0D0} + {83BCEDA6-972E-4E26-9582-C53335A9F9C5} = {118BDD7F-546D-4665-BD6B-24DE20C4B0D0} + {3350F98E-14CE-4192-B5F4-13E56202C01E} = {118BDD7F-546D-4665-BD6B-24DE20C4B0D0} + {36F00727-1E59-4281-9746-B5BD9EC1381D} = {118BDD7F-546D-4665-BD6B-24DE20C4B0D0} + {0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0} = {118BDD7F-546D-4665-BD6B-24DE20C4B0D0} + {04E0F296-DF67-45EB-8967-DADF4CBC9D6E} = {D87193B7-CCBD-4072-862C-6F5DD1CC27CC} + {BCB250B7-3138-45E0-8A2D-32780A491B64} = {D87193B7-CCBD-4072-862C-6F5DD1CC27CC} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {59E9B218-81D0-4A80-A4B7-66C716136D82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {59E9B218-81D0-4A80-A4B7-66C716136D82}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59E9B218-81D0-4A80-A4B7-66C716136D82}.Release|Any CPU.ActiveCfg = Release|Any CPU - {59E9B218-81D0-4A80-A4B7-66C716136D82}.Release|Any CPU.Build.0 = Release|Any CPU - {551A6340-8EEF-445E-A2A2-639CC23DBD36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {551A6340-8EEF-445E-A2A2-639CC23DBD36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {551A6340-8EEF-445E-A2A2-639CC23DBD36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {551A6340-8EEF-445E-A2A2-639CC23DBD36}.Release|Any CPU.Build.0 = Release|Any CPU - {E7943063-5DB9-4EC6-86DD-3029E65121CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7943063-5DB9-4EC6-86DD-3029E65121CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7943063-5DB9-4EC6-86DD-3029E65121CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7943063-5DB9-4EC6-86DD-3029E65121CE}.Release|Any CPU.Build.0 = Release|Any CPU - {63E4FB4E-BB41-4581-8122-71FD5A35D90D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63E4FB4E-BB41-4581-8122-71FD5A35D90D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {63E4FB4E-BB41-4581-8122-71FD5A35D90D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {63E4FB4E-BB41-4581-8122-71FD5A35D90D}.Release|Any CPU.Build.0 = Release|Any CPU + {40480524-42C3-405F-AE9A-7578B829C696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40480524-42C3-405F-AE9A-7578B829C696}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40480524-42C3-405F-AE9A-7578B829C696}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40480524-42C3-405F-AE9A-7578B829C696}.Release|Any CPU.Build.0 = Release|Any CPU + {157E55D7-13AC-4701-B44B-C9C5D7B09D03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {157E55D7-13AC-4701-B44B-C9C5D7B09D03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {157E55D7-13AC-4701-B44B-C9C5D7B09D03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {157E55D7-13AC-4701-B44B-C9C5D7B09D03}.Release|Any CPU.Build.0 = Release|Any CPU + {83BCEDA6-972E-4E26-9582-C53335A9F9C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83BCEDA6-972E-4E26-9582-C53335A9F9C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83BCEDA6-972E-4E26-9582-C53335A9F9C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83BCEDA6-972E-4E26-9582-C53335A9F9C5}.Release|Any CPU.Build.0 = Release|Any CPU + {04E0F296-DF67-45EB-8967-DADF4CBC9D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04E0F296-DF67-45EB-8967-DADF4CBC9D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04E0F296-DF67-45EB-8967-DADF4CBC9D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04E0F296-DF67-45EB-8967-DADF4CBC9D6E}.Release|Any CPU.Build.0 = Release|Any CPU + {E79356D9-2598-489C-9ADF-59B2D95EA22C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E79356D9-2598-489C-9ADF-59B2D95EA22C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E79356D9-2598-489C-9ADF-59B2D95EA22C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E79356D9-2598-489C-9ADF-59B2D95EA22C}.Release|Any CPU.Build.0 = Release|Any CPU + {3350F98E-14CE-4192-B5F4-13E56202C01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3350F98E-14CE-4192-B5F4-13E56202C01E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3350F98E-14CE-4192-B5F4-13E56202C01E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3350F98E-14CE-4192-B5F4-13E56202C01E}.Release|Any CPU.Build.0 = Release|Any CPU + {BCB250B7-3138-45E0-8A2D-32780A491B64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCB250B7-3138-45E0-8A2D-32780A491B64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCB250B7-3138-45E0-8A2D-32780A491B64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCB250B7-3138-45E0-8A2D-32780A491B64}.Release|Any CPU.Build.0 = Release|Any CPU + {36F00727-1E59-4281-9746-B5BD9EC1381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36F00727-1E59-4281-9746-B5BD9EC1381D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36F00727-1E59-4281-9746-B5BD9EC1381D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36F00727-1E59-4281-9746-B5BD9EC1381D}.Release|Any CPU.Build.0 = Release|Any CPU + {0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0ADE6E0D-03F9-47DD-B543-D9A4B303F8F0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {59E9B218-81D0-4A80-A4B7-66C716136D82} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {551A6340-8EEF-445E-A2A2-639CC23DBD36} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {E7943063-5DB9-4EC6-86DD-3029E65121CE} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {63E4FB4E-BB41-4581-8122-71FD5A35D90D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {98A37BB2-63BD-4D83-8E88-8DAD99165057} + SolutionGuid = {29FF2FD6-28B0-4B47-B6E4-A170FD327623} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.Primitives/System.ComponentModel.Primitives.sln b/src/libraries/System.ComponentModel.Primitives/System.ComponentModel.Primitives.sln index 6a8355a87366..7bca0986f07f 100644 --- a/src/libraries/System.ComponentModel.Primitives/System.ComponentModel.Primitives.sln +++ b/src/libraries/System.ComponentModel.Primitives/System.ComponentModel.Primitives.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives.Tests", "tests\System.ComponentModel.Primitives.Tests.csproj", "{C9534425-93FB-494F-8DD8-1E4E3E626FDE}" - ProjectSection(ProjectDependencies) = postProject - {F620F382-30D1-451E-B125-2A612F92068B} = {F620F382-30D1-451E-B125-2A612F92068B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{60864013-CB8C-4FA3-9D79-6293FCDB2E6B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "src\System.ComponentModel.Primitives.csproj", "{F620F382-30D1-451E-B125-2A612F92068B}" - ProjectSection(ProjectDependencies) = postProject - {ECF37FA5-BEB7-4A23-A573-693B343B45C3} = {ECF37FA5-BEB7-4A23-A573-693B343B45C3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{DC07D8E2-8A8E-4197-BABE-06E23FA2F81F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "ref\System.ComponentModel.Primitives.csproj", "{ECF37FA5-BEB7-4A23-A573-693B343B45C3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "ref\System.ComponentModel.Primitives.csproj", "{BA8A7204-1534-43C3-8BBE-F237C7328C42}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "src\System.ComponentModel.Primitives.csproj", "{E6024DD2-79AD-4639-A141-9DA38282F61B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives.Tests", "tests\System.ComponentModel.Primitives.Tests.csproj", "{F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{CBCF1CE8-40E6-4498-8F52-BFF97ECCE743}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{24C45B93-8278-4D65-9BA3-4FE1FB27245F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CFE7E578-B382-4363-95AC-10DAC343D332}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{4622D386-0897-4A6C-8F48-76CACEA1C764}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{2B3C4121-9689-4F71-8737-EA1DEA2BFE25}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EF535AAD-4242-487F-B25C-ACDCA5C8267D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D9BECD0C-CE15-49B2-BC5E-BD1F87E77371}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4F03ABD9-E119-48B9-8DB8-F44A6E674AEA}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {60864013-CB8C-4FA3-9D79-6293FCDB2E6B} = {EF535AAD-4242-487F-B25C-ACDCA5C8267D} + {F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C} = {EF535AAD-4242-487F-B25C-ACDCA5C8267D} + {DC07D8E2-8A8E-4197-BABE-06E23FA2F81F} = {D9BECD0C-CE15-49B2-BC5E-BD1F87E77371} + {BA8A7204-1534-43C3-8BBE-F237C7328C42} = {D9BECD0C-CE15-49B2-BC5E-BD1F87E77371} + {CBCF1CE8-40E6-4498-8F52-BFF97ECCE743} = {D9BECD0C-CE15-49B2-BC5E-BD1F87E77371} + {4622D386-0897-4A6C-8F48-76CACEA1C764} = {D9BECD0C-CE15-49B2-BC5E-BD1F87E77371} + {2B3C4121-9689-4F71-8737-EA1DEA2BFE25} = {D9BECD0C-CE15-49B2-BC5E-BD1F87E77371} + {E6024DD2-79AD-4639-A141-9DA38282F61B} = {4F03ABD9-E119-48B9-8DB8-F44A6E674AEA} + {CFE7E578-B382-4363-95AC-10DAC343D332} = {4F03ABD9-E119-48B9-8DB8-F44A6E674AEA} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C9534425-93FB-494F-8DD8-1E4E3E626FDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9534425-93FB-494F-8DD8-1E4E3E626FDE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9534425-93FB-494F-8DD8-1E4E3E626FDE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9534425-93FB-494F-8DD8-1E4E3E626FDE}.Release|Any CPU.Build.0 = Release|Any CPU - {F620F382-30D1-451E-B125-2A612F92068B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F620F382-30D1-451E-B125-2A612F92068B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F620F382-30D1-451E-B125-2A612F92068B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F620F382-30D1-451E-B125-2A612F92068B}.Release|Any CPU.Build.0 = Release|Any CPU - {ECF37FA5-BEB7-4A23-A573-693B343B45C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ECF37FA5-BEB7-4A23-A573-693B343B45C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ECF37FA5-BEB7-4A23-A573-693B343B45C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ECF37FA5-BEB7-4A23-A573-693B343B45C3}.Release|Any CPU.Build.0 = Release|Any CPU - {24C45B93-8278-4D65-9BA3-4FE1FB27245F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {24C45B93-8278-4D65-9BA3-4FE1FB27245F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {24C45B93-8278-4D65-9BA3-4FE1FB27245F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {24C45B93-8278-4D65-9BA3-4FE1FB27245F}.Release|Any CPU.Build.0 = Release|Any CPU + {60864013-CB8C-4FA3-9D79-6293FCDB2E6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60864013-CB8C-4FA3-9D79-6293FCDB2E6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60864013-CB8C-4FA3-9D79-6293FCDB2E6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60864013-CB8C-4FA3-9D79-6293FCDB2E6B}.Release|Any CPU.Build.0 = Release|Any CPU + {DC07D8E2-8A8E-4197-BABE-06E23FA2F81F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC07D8E2-8A8E-4197-BABE-06E23FA2F81F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC07D8E2-8A8E-4197-BABE-06E23FA2F81F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC07D8E2-8A8E-4197-BABE-06E23FA2F81F}.Release|Any CPU.Build.0 = Release|Any CPU + {BA8A7204-1534-43C3-8BBE-F237C7328C42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA8A7204-1534-43C3-8BBE-F237C7328C42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA8A7204-1534-43C3-8BBE-F237C7328C42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA8A7204-1534-43C3-8BBE-F237C7328C42}.Release|Any CPU.Build.0 = Release|Any CPU + {E6024DD2-79AD-4639-A141-9DA38282F61B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6024DD2-79AD-4639-A141-9DA38282F61B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6024DD2-79AD-4639-A141-9DA38282F61B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6024DD2-79AD-4639-A141-9DA38282F61B}.Release|Any CPU.Build.0 = Release|Any CPU + {F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F272C6B3-AA58-4AB9-84A0-5E90E38B1C6C}.Release|Any CPU.Build.0 = Release|Any CPU + {CBCF1CE8-40E6-4498-8F52-BFF97ECCE743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBCF1CE8-40E6-4498-8F52-BFF97ECCE743}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBCF1CE8-40E6-4498-8F52-BFF97ECCE743}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBCF1CE8-40E6-4498-8F52-BFF97ECCE743}.Release|Any CPU.Build.0 = Release|Any CPU + {CFE7E578-B382-4363-95AC-10DAC343D332}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFE7E578-B382-4363-95AC-10DAC343D332}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFE7E578-B382-4363-95AC-10DAC343D332}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFE7E578-B382-4363-95AC-10DAC343D332}.Release|Any CPU.Build.0 = Release|Any CPU + {4622D386-0897-4A6C-8F48-76CACEA1C764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4622D386-0897-4A6C-8F48-76CACEA1C764}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4622D386-0897-4A6C-8F48-76CACEA1C764}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4622D386-0897-4A6C-8F48-76CACEA1C764}.Release|Any CPU.Build.0 = Release|Any CPU + {2B3C4121-9689-4F71-8737-EA1DEA2BFE25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B3C4121-9689-4F71-8737-EA1DEA2BFE25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B3C4121-9689-4F71-8737-EA1DEA2BFE25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B3C4121-9689-4F71-8737-EA1DEA2BFE25}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C9534425-93FB-494F-8DD8-1E4E3E626FDE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F620F382-30D1-451E-B125-2A612F92068B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {ECF37FA5-BEB7-4A23-A573-693B343B45C3} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {24C45B93-8278-4D65-9BA3-4FE1FB27245F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C0017B27-ED79-4BB5-AE2D-3A6AEAECCDA9} + SolutionGuid = {D4ED660D-B8E6-404D-B0B0-C7A31244A916} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs b/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs index c02213d83716..35d52c010c2a 100644 --- a/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs +++ b/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs @@ -181,7 +181,7 @@ public sealed partial class EventHandlerList : System.IDisposable public void RemoveHandler(object key, System.Delegate? value) { } } [System.ComponentModel.DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [System.ComponentModel.TypeConverterAttribute("System.ComponentModel.ComponentConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] public partial interface IComponent : System.IDisposable { diff --git a/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs b/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs index 9d93f5fb9cb8..1cccaceeac6c 100644 --- a/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs +++ b/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.ComponentModel.Design; using System.Runtime.InteropServices; namespace System.ComponentModel @@ -20,7 +21,8 @@ namespace System.ComponentModel /// Provides functionality required by all components. /// [Designer("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", + "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [TypeConverter("System.ComponentModel.ComponentConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] public interface IComponent : IDisposable { diff --git a/src/libraries/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.sln b/src/libraries/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.sln index 99b3943bc023..8661e5d73fa9 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.sln +++ b/src/libraries/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter.Tests", "tests\System.ComponentModel.TypeConverter.Tests.csproj", "{3F0326A1-9E19-4A6C-95CE-63E65C9D2030}" - ProjectSection(ProjectDependencies) = postProject - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F} = {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0CF88416-BA94-4C5C-8947-D21F4897C70B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter", "src\System.ComponentModel.TypeConverter.csproj", "{AF3EBF3B-526A-4B51-9F3D-62B0113CD01F}" - ProjectSection(ProjectDependencies) = postProject - {D35FD24C-1D1E-4860-B44D-73097CC0BD90} = {D35FD24C-1D1E-4860-B44D-73097CC0BD90} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D98C322F-247F-4011-ADFF-E56E7AFD00B1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter", "ref\System.ComponentModel.TypeConverter.csproj", "{D35FD24C-1D1E-4860-B44D-73097CC0BD90}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter", "ref\System.ComponentModel.TypeConverter.csproj", "{0B2F32D4-9E58-4680-AB59-35D86E4162CE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter", "src\System.ComponentModel.TypeConverter.csproj", "{CE7DA286-D119-4087-A953-D542727AFA02}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter.Tests", "tests\System.ComponentModel.TypeConverter.Tests.csproj", "{6A370CD8-E44B-46C9-B29A-87F847483336}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A280B655-9D66-4B33-88DC-733B4929053F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9A047A62-BF41-480D-B424-24DC8530124B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3A665FC8-BE83-4065-A806-5C7DC40EBDF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{887B1B9F-0D97-4AC2-9405-1F1425EC10B5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{05293375-8A75-4CEB-9B4E-3443FBAD0115}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{526BFAA4-58F6-4947-B8DF-92DD8870906E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7C566CAE-31BF-4DD2-8BDD-59DA93A6AA51}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0CF88416-BA94-4C5C-8947-D21F4897C70B} = {05293375-8A75-4CEB-9B4E-3443FBAD0115} + {6A370CD8-E44B-46C9-B29A-87F847483336} = {05293375-8A75-4CEB-9B4E-3443FBAD0115} + {D98C322F-247F-4011-ADFF-E56E7AFD00B1} = {526BFAA4-58F6-4947-B8DF-92DD8870906E} + {0B2F32D4-9E58-4680-AB59-35D86E4162CE} = {526BFAA4-58F6-4947-B8DF-92DD8870906E} + {CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E} = {526BFAA4-58F6-4947-B8DF-92DD8870906E} + {3A665FC8-BE83-4065-A806-5C7DC40EBDF9} = {526BFAA4-58F6-4947-B8DF-92DD8870906E} + {887B1B9F-0D97-4AC2-9405-1F1425EC10B5} = {526BFAA4-58F6-4947-B8DF-92DD8870906E} + {CE7DA286-D119-4087-A953-D542727AFA02} = {7C566CAE-31BF-4DD2-8BDD-59DA93A6AA51} + {9A047A62-BF41-480D-B424-24DC8530124B} = {7C566CAE-31BF-4DD2-8BDD-59DA93A6AA51} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3F0326A1-9E19-4A6C-95CE-63E65C9D2030}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F0326A1-9E19-4A6C-95CE-63E65C9D2030}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F0326A1-9E19-4A6C-95CE-63E65C9D2030}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F0326A1-9E19-4A6C-95CE-63E65C9D2030}.Release|Any CPU.Build.0 = Release|Any CPU - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F}.Release|Any CPU.Build.0 = Release|Any CPU - {D35FD24C-1D1E-4860-B44D-73097CC0BD90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D35FD24C-1D1E-4860-B44D-73097CC0BD90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D35FD24C-1D1E-4860-B44D-73097CC0BD90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D35FD24C-1D1E-4860-B44D-73097CC0BD90}.Release|Any CPU.Build.0 = Release|Any CPU - {A280B655-9D66-4B33-88DC-733B4929053F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A280B655-9D66-4B33-88DC-733B4929053F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A280B655-9D66-4B33-88DC-733B4929053F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A280B655-9D66-4B33-88DC-733B4929053F}.Release|Any CPU.Build.0 = Release|Any CPU + {0CF88416-BA94-4C5C-8947-D21F4897C70B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CF88416-BA94-4C5C-8947-D21F4897C70B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CF88416-BA94-4C5C-8947-D21F4897C70B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CF88416-BA94-4C5C-8947-D21F4897C70B}.Release|Any CPU.Build.0 = Release|Any CPU + {D98C322F-247F-4011-ADFF-E56E7AFD00B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D98C322F-247F-4011-ADFF-E56E7AFD00B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D98C322F-247F-4011-ADFF-E56E7AFD00B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D98C322F-247F-4011-ADFF-E56E7AFD00B1}.Release|Any CPU.Build.0 = Release|Any CPU + {0B2F32D4-9E58-4680-AB59-35D86E4162CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B2F32D4-9E58-4680-AB59-35D86E4162CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B2F32D4-9E58-4680-AB59-35D86E4162CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B2F32D4-9E58-4680-AB59-35D86E4162CE}.Release|Any CPU.Build.0 = Release|Any CPU + {CE7DA286-D119-4087-A953-D542727AFA02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE7DA286-D119-4087-A953-D542727AFA02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE7DA286-D119-4087-A953-D542727AFA02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE7DA286-D119-4087-A953-D542727AFA02}.Release|Any CPU.Build.0 = Release|Any CPU + {6A370CD8-E44B-46C9-B29A-87F847483336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A370CD8-E44B-46C9-B29A-87F847483336}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A370CD8-E44B-46C9-B29A-87F847483336}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A370CD8-E44B-46C9-B29A-87F847483336}.Release|Any CPU.Build.0 = Release|Any CPU + {CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFB9C5EE-7CF7-4AFB-841E-B4A542DB191E}.Release|Any CPU.Build.0 = Release|Any CPU + {9A047A62-BF41-480D-B424-24DC8530124B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A047A62-BF41-480D-B424-24DC8530124B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A047A62-BF41-480D-B424-24DC8530124B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A047A62-BF41-480D-B424-24DC8530124B}.Release|Any CPU.Build.0 = Release|Any CPU + {3A665FC8-BE83-4065-A806-5C7DC40EBDF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A665FC8-BE83-4065-A806-5C7DC40EBDF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A665FC8-BE83-4065-A806-5C7DC40EBDF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A665FC8-BE83-4065-A806-5C7DC40EBDF9}.Release|Any CPU.Build.0 = Release|Any CPU + {887B1B9F-0D97-4AC2-9405-1F1425EC10B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {887B1B9F-0D97-4AC2-9405-1F1425EC10B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {887B1B9F-0D97-4AC2-9405-1F1425EC10B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {887B1B9F-0D97-4AC2-9405-1F1425EC10B5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3F0326A1-9E19-4A6C-95CE-63E65C9D2030} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AF3EBF3B-526A-4B51-9F3D-62B0113CD01F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D35FD24C-1D1E-4860-B44D-73097CC0BD90} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {A280B655-9D66-4B33-88DC-733B4929053F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EE151A1D-5E52-4614-8FA4-042163AF0E1F} + SolutionGuid = {1D4639D9-A4BD-410A-9491-E5F8D82DE8BF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs b/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs index af7ab07bb244..d741db09af16 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs @@ -810,7 +810,7 @@ public sealed partial class LookupBindingPropertiesAttribute : System.Attribute public override bool Equals(object obj) { throw null; } public override int GetHashCode() { throw null; } } - [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(System.ComponentModel.Design.IRootDesigner))] + [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [System.ComponentModel.DesignerCategoryAttribute("Component")] [System.ComponentModel.TypeConverterAttribute(typeof(System.ComponentModel.ComponentConverter))] public partial class MarshalByValueComponent : System.ComponentModel.IComponent, System.IDisposable, System.IServiceProvider @@ -1309,7 +1309,6 @@ public abstract partial class TypeDescriptionProvider { protected TypeDescriptionProvider() { } protected TypeDescriptionProvider(System.ComponentModel.TypeDescriptionProvider parent) { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public virtual object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) { throw null; } public virtual System.Collections.IDictionary GetCache(object instance) { throw null; } public virtual System.ComponentModel.ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance) { throw null; } @@ -1352,7 +1351,6 @@ public sealed partial class TypeDescriptor public static System.ComponentModel.Design.IDesigner CreateDesigner(System.ComponentModel.IComponent component, System.Type designerBaseType) { throw null; } public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, System.ComponentModel.EventDescriptor oldEventDescriptor, params System.Attribute[] attributes) { throw null; } public static System.ComponentModel.EventDescriptor CreateEvent(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) { throw null; } public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, System.ComponentModel.PropertyDescriptor oldPropertyDescriptor, params System.Attribute[] attributes) { throw null; } public static System.ComponentModel.PropertyDescriptor CreateProperty(System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) { throw null; } diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/AttributeCollection.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/AttributeCollection.cs index 49b1c4f9d512..cc18c601d0eb 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/AttributeCollection.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/AttributeCollection.cs @@ -285,7 +285,7 @@ protected Attribute GetDefaultAttribute(Type attributeType) } else { - ConstructorInfo ci = reflect.UnderlyingSystemType.GetConstructor(Array.Empty()); + ConstructorInfo ci = reflect.UnderlyingSystemType.GetConstructor(Type.EmptyTypes); if (ci != null) { attr = (Attribute)ci.Invoke(Array.Empty()); diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/BindingList.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/BindingList.cs index 7e13fec0e86e..de3d0e2f80af 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/BindingList.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/BindingList.cs @@ -81,7 +81,7 @@ private bool ItemTypeHasDefaultConstructor } const BindingFlags BindingFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.CreateInstance; - return itemType.GetConstructor(BindingFlags, null, Array.Empty(), null) != null; + return itemType.GetConstructor(BindingFlags, null, Type.EmptyTypes, null) != null; } } diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs index 93d3485b1ec1..33db604c4160 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs @@ -10,7 +10,8 @@ namespace System.ComponentModel /// Provides the base implementation for , /// which is the base class for all components in Win Forms. /// - [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))] + [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", + "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [DesignerCategory("Component")] [TypeConverter(typeof(ComponentConverter))] public class MarshalByValueComponent : IComponent, IServiceProvider diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectPropertyDescriptor.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectPropertyDescriptor.cs index 1b55a0f17e94..975804a48816 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectPropertyDescriptor.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectPropertyDescriptor.cs @@ -298,7 +298,7 @@ private MethodInfo GetMethodValue if (_propInfo == null) { BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty; - _propInfo = _componentClass.GetProperty(Name, bindingFlags, binder: null, PropertyType, Array.Empty(), Array.Empty()); + _propInfo = _componentClass.GetProperty(Name, bindingFlags, binder: null, PropertyType, Type.EmptyTypes, Array.Empty()); } if (_propInfo != null) { @@ -351,7 +351,7 @@ private MethodInfo ResetMethodValue if (_receiverType == null) { - args = Array.Empty(); + args = Type.EmptyTypes; } else { @@ -382,7 +382,7 @@ private MethodInfo SetMethodValue for (Type t = ComponentType.BaseType; t != null && t != typeof(object); t = t.BaseType) { BindingFlags bindingFlags = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance; - PropertyInfo p = t.GetProperty(name, bindingFlags, binder: null, PropertyType, Array.Empty(), null); + PropertyInfo p = t.GetProperty(name, bindingFlags, binder: null, PropertyType, Type.EmptyTypes, null); if (p != null) { _setMethod = p.GetSetMethod(nonPublic: false); @@ -403,7 +403,7 @@ private MethodInfo SetMethodValue if (_propInfo == null) { BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty; - _propInfo = _componentClass.GetProperty(Name, bindingFlags, binder: null, PropertyType, Array.Empty(), Array.Empty()); + _propInfo = _componentClass.GetProperty(Name, bindingFlags, binder: null, PropertyType, Type.EmptyTypes, Array.Empty()); } if (_propInfo != null) { @@ -435,7 +435,7 @@ private MethodInfo ShouldSerializeMethodValue if (_receiverType == null) { - args = Array.Empty(); + args = Type.EmptyTypes; } else { @@ -767,7 +767,7 @@ protected override void FillAttributes(IList attributes) } else { - memberInfo = currentReflectType.GetProperty(Name, bindingFlags, binder: null, PropertyType, Array.Empty(), Array.Empty()); + memberInfo = currentReflectType.GetProperty(Name, bindingFlags, binder: null, PropertyType, Type.EmptyTypes, Array.Empty()); } // Get custom attributes for the member info. diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs index ff4cd113da6f..d8de50a61aee 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs @@ -247,7 +247,7 @@ public override object CreateInstance(IServiceProvider provider, Type objectType } else { - argTypes = Array.Empty(); + argTypes = Type.EmptyTypes; } obj = objectType.GetConstructor(argTypes)?.Invoke(args); diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptionProvider.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptionProvider.cs index 565bc42e68f0..28b7a3aa94d2 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptionProvider.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptionProvider.cs @@ -50,7 +50,6 @@ protected TypeDescriptionProvider(TypeDescriptionProvider parent) /// parent provider was passed. If a parent provider was passed, this /// method will invoke the parent provider's CreateInstance method. /// - [UnsupportedOSPlatform("browser")] public virtual object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args) { if (_parent != null) diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptor.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptor.cs index a542eb25d86a..0dc2b3297ada 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptor.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptor.cs @@ -429,7 +429,6 @@ public static EventDescriptor CreateEvent(Type componentType, EventDescriptor ol /// a TypeDescriptionProvider object that is associated with the given /// data type. If it finds one, it will delegate the call to that object. /// - [UnsupportedOSPlatform("browser")] public static object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args) { if (objectType == null) diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/ElapsedEventArgs.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/ElapsedEventArgs.cs index 8b59e07ca376..09051c6cc572 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/ElapsedEventArgs.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/ElapsedEventArgs.cs @@ -5,9 +5,9 @@ namespace System.Timers { public class ElapsedEventArgs : EventArgs { - internal ElapsedEventArgs(long fileTime) + internal ElapsedEventArgs(DateTime localTime) { - SignalTime = DateTime.FromFileTime(fileTime); + SignalTime = localTime; } public DateTime SignalTime { get; } diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/Timer.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/Timer.cs index bb808042339b..6812ef00011a 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/Timer.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/Timers/Timer.cs @@ -290,7 +290,7 @@ private void MyTimerCallback(object state) _enabled = false; } - ElapsedEventArgs elapsedEventArgs = new ElapsedEventArgs(DateTime.UtcNow.ToFileTime()); + ElapsedEventArgs elapsedEventArgs = new ElapsedEventArgs(DateTime.Now); try { // To avoid race between remove handler and raising the event diff --git a/src/libraries/System.ComponentModel.TypeConverter/tests/TimerTests.cs b/src/libraries/System.ComponentModel.TypeConverter/tests/TimerTests.cs index 4f9437e0709f..0904d7145912 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/tests/TimerTests.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/tests/TimerTests.cs @@ -3,7 +3,7 @@ using Xunit; using System.Threading; - +using System.Threading.Tasks; using TestTimer = System.Timers.Timer; namespace System.Timers.Tests @@ -69,6 +69,31 @@ public void TestTimerStartAutoReset() } } + [Fact] + public async Task ElapsedEventArgs_MatchesExpectedValues() + { + using (var timer = new TestTimer(1) { AutoReset = false }) + { + DateTime start = DateTime.Now; + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + timer.Elapsed += (sender, e) => tcs.SetResult(e); + timer.Start(); + + ElapsedEventArgs e = await tcs.Task; + Assert.False(timer.Enabled); + + timer.Stop(); + DateTime end = DateTime.Now; + + const int WiggleRoomSeconds = 5; + Assert.Equal(DateTimeKind.Local, e.SignalTime.Kind); + Assert.InRange( + e.SignalTime.ToUniversalTime(), + start.ToUniversalTime() - TimeSpan.FromSeconds(WiggleRoomSeconds), + end.ToUniversalTime() + TimeSpan.FromSeconds(WiggleRoomSeconds)); + } + } + [Theory] [InlineData(int.MaxValue)] [InlineData(0.5D)] diff --git a/src/libraries/System.ComponentModel/System.ComponentModel.sln b/src/libraries/System.ComponentModel/System.ComponentModel.sln index f57420cf8138..17484ada267b 100644 --- a/src/libraries/System.ComponentModel/System.ComponentModel.sln +++ b/src/libraries/System.ComponentModel/System.ComponentModel.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Tests", "tests\System.ComponentModel.Tests.csproj", "{40C01084-DAB1-4F24-8729-85523BC9F04E}" - ProjectSection(ProjectDependencies) = postProject - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C} = {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{BB836E1E-706E-495A-85EA-0CDD9FEBF101}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel", "src\System.ComponentModel.csproj", "{D40BC4CC-544F-4F49-A9E1-C81FFF784B2C}" - ProjectSection(ProjectDependencies) = postProject - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF} = {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{70FDC08C-421C-40B2-82C4-DE147346BE92}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel", "ref\System.ComponentModel.csproj", "{2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel", "ref\System.ComponentModel.csproj", "{E954E33E-6349-4FA2-AF54-A3BCFE430879}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel", "src\System.ComponentModel.csproj", "{EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Tests", "tests\System.ComponentModel.Tests.csproj", "{4E375A78-D856-4C1E-B7CB-A4026C9FD8E7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{5B8652C4-99B5-4D03-B07B-88A5B96442A2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6AC8C04D-428A-45BE-A79F-FD405F4A2ADD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0AAA2B20-75FC-42CE-9148-DBDA5840BDC2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{77E31F96-C799-4AF8-BA29-90DEAC1EC739}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{39A4EDF4-47BC-4C19-A4C3-0065A1CC9847}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A663DB2C-2C97-4795-BA33-2697706351D5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{62F53E21-D0DA-4D70-A4FF-2328BEC44AEB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5E759F60-011D-4FEB-92B6-4613D2F36016}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {BB836E1E-706E-495A-85EA-0CDD9FEBF101} = {A663DB2C-2C97-4795-BA33-2697706351D5} + {4E375A78-D856-4C1E-B7CB-A4026C9FD8E7} = {A663DB2C-2C97-4795-BA33-2697706351D5} + {70FDC08C-421C-40B2-82C4-DE147346BE92} = {62F53E21-D0DA-4D70-A4FF-2328BEC44AEB} + {E954E33E-6349-4FA2-AF54-A3BCFE430879} = {62F53E21-D0DA-4D70-A4FF-2328BEC44AEB} + {5B8652C4-99B5-4D03-B07B-88A5B96442A2} = {62F53E21-D0DA-4D70-A4FF-2328BEC44AEB} + {77E31F96-C799-4AF8-BA29-90DEAC1EC739} = {62F53E21-D0DA-4D70-A4FF-2328BEC44AEB} + {39A4EDF4-47BC-4C19-A4C3-0065A1CC9847} = {62F53E21-D0DA-4D70-A4FF-2328BEC44AEB} + {EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F} = {5E759F60-011D-4FEB-92B6-4613D2F36016} + {0AAA2B20-75FC-42CE-9148-DBDA5840BDC2} = {5E759F60-011D-4FEB-92B6-4613D2F36016} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {40C01084-DAB1-4F24-8729-85523BC9F04E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40C01084-DAB1-4F24-8729-85523BC9F04E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40C01084-DAB1-4F24-8729-85523BC9F04E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40C01084-DAB1-4F24-8729-85523BC9F04E}.Release|Any CPU.Build.0 = Release|Any CPU - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C}.Release|Any CPU.Build.0 = Release|Any CPU - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF}.Release|Any CPU.Build.0 = Release|Any CPU - {6AC8C04D-428A-45BE-A79F-FD405F4A2ADD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AC8C04D-428A-45BE-A79F-FD405F4A2ADD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AC8C04D-428A-45BE-A79F-FD405F4A2ADD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AC8C04D-428A-45BE-A79F-FD405F4A2ADD}.Release|Any CPU.Build.0 = Release|Any CPU + {BB836E1E-706E-495A-85EA-0CDD9FEBF101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB836E1E-706E-495A-85EA-0CDD9FEBF101}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB836E1E-706E-495A-85EA-0CDD9FEBF101}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB836E1E-706E-495A-85EA-0CDD9FEBF101}.Release|Any CPU.Build.0 = Release|Any CPU + {70FDC08C-421C-40B2-82C4-DE147346BE92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70FDC08C-421C-40B2-82C4-DE147346BE92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70FDC08C-421C-40B2-82C4-DE147346BE92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70FDC08C-421C-40B2-82C4-DE147346BE92}.Release|Any CPU.Build.0 = Release|Any CPU + {E954E33E-6349-4FA2-AF54-A3BCFE430879}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E954E33E-6349-4FA2-AF54-A3BCFE430879}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E954E33E-6349-4FA2-AF54-A3BCFE430879}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E954E33E-6349-4FA2-AF54-A3BCFE430879}.Release|Any CPU.Build.0 = Release|Any CPU + {EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFFECBCD-A544-4649-AF79-3C2A7EEB4C6F}.Release|Any CPU.Build.0 = Release|Any CPU + {4E375A78-D856-4C1E-B7CB-A4026C9FD8E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E375A78-D856-4C1E-B7CB-A4026C9FD8E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E375A78-D856-4C1E-B7CB-A4026C9FD8E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E375A78-D856-4C1E-B7CB-A4026C9FD8E7}.Release|Any CPU.Build.0 = Release|Any CPU + {5B8652C4-99B5-4D03-B07B-88A5B96442A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B8652C4-99B5-4D03-B07B-88A5B96442A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B8652C4-99B5-4D03-B07B-88A5B96442A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B8652C4-99B5-4D03-B07B-88A5B96442A2}.Release|Any CPU.Build.0 = Release|Any CPU + {0AAA2B20-75FC-42CE-9148-DBDA5840BDC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AAA2B20-75FC-42CE-9148-DBDA5840BDC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AAA2B20-75FC-42CE-9148-DBDA5840BDC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AAA2B20-75FC-42CE-9148-DBDA5840BDC2}.Release|Any CPU.Build.0 = Release|Any CPU + {77E31F96-C799-4AF8-BA29-90DEAC1EC739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77E31F96-C799-4AF8-BA29-90DEAC1EC739}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77E31F96-C799-4AF8-BA29-90DEAC1EC739}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77E31F96-C799-4AF8-BA29-90DEAC1EC739}.Release|Any CPU.Build.0 = Release|Any CPU + {39A4EDF4-47BC-4C19-A4C3-0065A1CC9847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39A4EDF4-47BC-4C19-A4C3-0065A1CC9847}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39A4EDF4-47BC-4C19-A4C3-0065A1CC9847}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39A4EDF4-47BC-4C19-A4C3-0065A1CC9847}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {40C01084-DAB1-4F24-8729-85523BC9F04E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D40BC4CC-544F-4F49-A9E1-C81FFF784B2C} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2F84DFF4-DD9C-42C2-B192-2B7D1944C1EF} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {6AC8C04D-428A-45BE-A79F-FD405F4A2ADD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D9C9DDF4-131F-4F90-A8B9-D6683CBB2362} + SolutionGuid = {F6E6B62A-C9F6-4CF9-BFC4-F169919B707A} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition.AttributedModel/System.Composition.AttributedModel.sln b/src/libraries/System.Composition.AttributedModel/System.Composition.AttributedModel.sln index bb47de8105c2..bee7eba740f8 100644 --- a/src/libraries/System.Composition.AttributedModel/System.Composition.AttributedModel.sln +++ b/src/libraries/System.Composition.AttributedModel/System.Composition.AttributedModel.sln @@ -1,48 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributeModel.Tests", "tests\System.Composition.AttributeModel.Tests.csproj", "{853BB14F-8A5B-42B4-A053-21DE1AEBB335}" - ProjectSection(ProjectDependencies) = postProject - {C6257381-C624-494A-A9D9-5586E60856EA} = {C6257381-C624-494A-A9D9-5586E60856EA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DE339A1B-75B9-4D96-AC66-F497B37FEE96}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributedModel", "src\System.Composition.AttributedModel.csproj", "{C6257381-C624-494A-A9D9-5586E60856EA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6BB5F832-CE51-42EE-B244-1971303F4FAB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\ref\System.ComponentModel.Composition.csproj", "{B62DF545-08AB-40E1-9DED-755583B0B3B3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\src\System.ComponentModel.Composition.csproj", "{7C81E44B-A3A6-4707-AC60-8B6452FE35C2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F1318FB3-74E5-40B2-AA0E-318322C7BD24}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributedModel", "src\System.Composition.AttributedModel.csproj", "{3DD99E03-A4D3-456A-BA2F-A7351423B800}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributeModel.Tests", "tests\System.Composition.AttributeModel.Tests.csproj", "{C2EBC4C3-C97B-4F64-A647-87DAE2816A06}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9FEBA284-3545-42BB-8514-665D08114C5F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{C1859D8A-0416-4FA7-824F-BCDD47095653}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{C833E568-E5FB-4FFE-A243-3EA6457E5E97}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DA1B8A61-521D-42B1-850B-E29E443DE81E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E94BC945-F20C-4F99-8ACB-B0F40B540CBF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3A295D5F-7539-4A1A-A225-2F291C15B486}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {DE339A1B-75B9-4D96-AC66-F497B37FEE96} = {DA1B8A61-521D-42B1-850B-E29E443DE81E} + {C2EBC4C3-C97B-4F64-A647-87DAE2816A06} = {DA1B8A61-521D-42B1-850B-E29E443DE81E} + {6BB5F832-CE51-42EE-B244-1971303F4FAB} = {E94BC945-F20C-4F99-8ACB-B0F40B540CBF} + {B62DF545-08AB-40E1-9DED-755583B0B3B3} = {E94BC945-F20C-4F99-8ACB-B0F40B540CBF} + {0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0} = {E94BC945-F20C-4F99-8ACB-B0F40B540CBF} + {C1859D8A-0416-4FA7-824F-BCDD47095653} = {E94BC945-F20C-4F99-8ACB-B0F40B540CBF} + {C833E568-E5FB-4FFE-A243-3EA6457E5E97} = {E94BC945-F20C-4F99-8ACB-B0F40B540CBF} + {7C81E44B-A3A6-4707-AC60-8B6452FE35C2} = {3A295D5F-7539-4A1A-A225-2F291C15B486} + {3DD99E03-A4D3-456A-BA2F-A7351423B800} = {3A295D5F-7539-4A1A-A225-2F291C15B486} + {9FEBA284-3545-42BB-8514-665D08114C5F} = {3A295D5F-7539-4A1A-A225-2F291C15B486} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {853BB14F-8A5B-42B4-A053-21DE1AEBB335}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {853BB14F-8A5B-42B4-A053-21DE1AEBB335}.Debug|Any CPU.Build.0 = Debug|Any CPU - {853BB14F-8A5B-42B4-A053-21DE1AEBB335}.Release|Any CPU.ActiveCfg = Release|Any CPU - {853BB14F-8A5B-42B4-A053-21DE1AEBB335}.Release|Any CPU.Build.0 = Release|Any CPU - {C6257381-C624-494A-A9D9-5586E60856EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6257381-C624-494A-A9D9-5586E60856EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6257381-C624-494A-A9D9-5586E60856EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6257381-C624-494A-A9D9-5586E60856EA}.Release|Any CPU.Build.0 = Release|Any CPU - {F1318FB3-74E5-40B2-AA0E-318322C7BD24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1318FB3-74E5-40B2-AA0E-318322C7BD24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1318FB3-74E5-40B2-AA0E-318322C7BD24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1318FB3-74E5-40B2-AA0E-318322C7BD24}.Release|Any CPU.Build.0 = Release|Any CPU + {DE339A1B-75B9-4D96-AC66-F497B37FEE96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE339A1B-75B9-4D96-AC66-F497B37FEE96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE339A1B-75B9-4D96-AC66-F497B37FEE96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE339A1B-75B9-4D96-AC66-F497B37FEE96}.Release|Any CPU.Build.0 = Release|Any CPU + {6BB5F832-CE51-42EE-B244-1971303F4FAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BB5F832-CE51-42EE-B244-1971303F4FAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BB5F832-CE51-42EE-B244-1971303F4FAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BB5F832-CE51-42EE-B244-1971303F4FAB}.Release|Any CPU.Build.0 = Release|Any CPU + {B62DF545-08AB-40E1-9DED-755583B0B3B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B62DF545-08AB-40E1-9DED-755583B0B3B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B62DF545-08AB-40E1-9DED-755583B0B3B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B62DF545-08AB-40E1-9DED-755583B0B3B3}.Release|Any CPU.Build.0 = Release|Any CPU + {7C81E44B-A3A6-4707-AC60-8B6452FE35C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C81E44B-A3A6-4707-AC60-8B6452FE35C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C81E44B-A3A6-4707-AC60-8B6452FE35C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C81E44B-A3A6-4707-AC60-8B6452FE35C2}.Release|Any CPU.Build.0 = Release|Any CPU + {3DD99E03-A4D3-456A-BA2F-A7351423B800}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DD99E03-A4D3-456A-BA2F-A7351423B800}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DD99E03-A4D3-456A-BA2F-A7351423B800}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DD99E03-A4D3-456A-BA2F-A7351423B800}.Release|Any CPU.Build.0 = Release|Any CPU + {C2EBC4C3-C97B-4F64-A647-87DAE2816A06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2EBC4C3-C97B-4F64-A647-87DAE2816A06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2EBC4C3-C97B-4F64-A647-87DAE2816A06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2EBC4C3-C97B-4F64-A647-87DAE2816A06}.Release|Any CPU.Build.0 = Release|Any CPU + {0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D3FD5CB-8CB6-4C51-8774-413EFAAE60F0}.Release|Any CPU.Build.0 = Release|Any CPU + {9FEBA284-3545-42BB-8514-665D08114C5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FEBA284-3545-42BB-8514-665D08114C5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FEBA284-3545-42BB-8514-665D08114C5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FEBA284-3545-42BB-8514-665D08114C5F}.Release|Any CPU.Build.0 = Release|Any CPU + {C1859D8A-0416-4FA7-824F-BCDD47095653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1859D8A-0416-4FA7-824F-BCDD47095653}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1859D8A-0416-4FA7-824F-BCDD47095653}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1859D8A-0416-4FA7-824F-BCDD47095653}.Release|Any CPU.Build.0 = Release|Any CPU + {C833E568-E5FB-4FFE-A243-3EA6457E5E97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C833E568-E5FB-4FFE-A243-3EA6457E5E97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C833E568-E5FB-4FFE-A243-3EA6457E5E97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C833E568-E5FB-4FFE-A243-3EA6457E5E97}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {853BB14F-8A5B-42B4-A053-21DE1AEBB335} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C6257381-C624-494A-A9D9-5586E60856EA} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F1318FB3-74E5-40B2-AA0E-318322C7BD24} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A24B6C69-2D91-4420-83CF-EDBE20728CFA} + SolutionGuid = {0C208CE9-53A6-4D20-9851-9D565EC19AAD} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition.Convention/System.Composition.Convention.sln b/src/libraries/System.Composition.Convention/System.Composition.Convention.sln index 0217d9ab613d..23b7ea3ee3c3 100644 --- a/src/libraries/System.Composition.Convention/System.Composition.Convention.sln +++ b/src/libraries/System.Composition.Convention/System.Composition.Convention.sln @@ -1,48 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention.Tests", "tests\System.Composition.Convention.Tests.csproj", "{17DBE1D4-FCB5-4D55-805C-C4A22EE8C032}" - ProjectSection(ProjectDependencies) = postProject - {E6592FAD-10B5-4B56-9287-D72DD136992F} = {E6592FAD-10B5-4B56-9287-D72DD136992F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E09C71E1-E08B-4EFC-8F76-D939462FEC78}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention", "src\System.Composition.Convention.csproj", "{E6592FAD-10B5-4B56-9287-D72DD136992F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{AFC44C99-4470-48EE-ACB7-B896B128CA46}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributedModel", "..\System.Composition.AttributedModel\src\System.Composition.AttributedModel.csproj", "{2C83FC12-946A-4ECD-8A72-7662C3649F10}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention", "src\System.Composition.Convention.csproj", "{5C6D1A36-CD72-42C6-827E-1288CA27592A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{27D27E0D-DBC1-4510-92E4-FDC900660BEA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention.Tests", "tests\System.Composition.Convention.Tests.csproj", "{6AD56989-0DAF-4292-9EEE-83AFB360ED0C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting", "..\System.Composition.Hosting\src\System.Composition.Hosting.csproj", "{7839BCF8-8B5A-465B-A4B6-86CE4227AF81}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "..\System.Composition.Runtime\src\System.Composition.Runtime.csproj", "{782AA503-8808-4741-AECF-D79A6BF3EFF7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts", "..\System.Composition.TypedParts\src\System.Composition.TypedParts.csproj", "{5AAFDB16-AACF-4446-9285-26AAC815101B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F98D4222-5D8F-4814-A86B-6706A88312DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{51F71AEF-7682-4D52-AF40-F31FFC82C60D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{1EC7A3FA-A64A-4ACB-88D6-D1C98049E773}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{48E459E7-9C04-465B-8990-0B76EDEE88F1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{205217AC-EA4D-46BB-8768-F322D0D4C319}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3A15702C-891A-4228-B365-F022478D98C0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E09C71E1-E08B-4EFC-8F76-D939462FEC78} = {48E459E7-9C04-465B-8990-0B76EDEE88F1} + {6AD56989-0DAF-4292-9EEE-83AFB360ED0C} = {48E459E7-9C04-465B-8990-0B76EDEE88F1} + {AFC44C99-4470-48EE-ACB7-B896B128CA46} = {205217AC-EA4D-46BB-8768-F322D0D4C319} + {F98D4222-5D8F-4814-A86B-6706A88312DC} = {205217AC-EA4D-46BB-8768-F322D0D4C319} + {8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116} = {205217AC-EA4D-46BB-8768-F322D0D4C319} + {1EC7A3FA-A64A-4ACB-88D6-D1C98049E773} = {205217AC-EA4D-46BB-8768-F322D0D4C319} + {2C83FC12-946A-4ECD-8A72-7662C3649F10} = {3A15702C-891A-4228-B365-F022478D98C0} + {5C6D1A36-CD72-42C6-827E-1288CA27592A} = {3A15702C-891A-4228-B365-F022478D98C0} + {7839BCF8-8B5A-465B-A4B6-86CE4227AF81} = {3A15702C-891A-4228-B365-F022478D98C0} + {782AA503-8808-4741-AECF-D79A6BF3EFF7} = {3A15702C-891A-4228-B365-F022478D98C0} + {5AAFDB16-AACF-4446-9285-26AAC815101B} = {3A15702C-891A-4228-B365-F022478D98C0} + {51F71AEF-7682-4D52-AF40-F31FFC82C60D} = {3A15702C-891A-4228-B365-F022478D98C0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {17DBE1D4-FCB5-4D55-805C-C4A22EE8C032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17DBE1D4-FCB5-4D55-805C-C4A22EE8C032}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17DBE1D4-FCB5-4D55-805C-C4A22EE8C032}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17DBE1D4-FCB5-4D55-805C-C4A22EE8C032}.Release|Any CPU.Build.0 = Release|Any CPU - {E6592FAD-10B5-4B56-9287-D72DD136992F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6592FAD-10B5-4B56-9287-D72DD136992F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6592FAD-10B5-4B56-9287-D72DD136992F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6592FAD-10B5-4B56-9287-D72DD136992F}.Release|Any CPU.Build.0 = Release|Any CPU - {27D27E0D-DBC1-4510-92E4-FDC900660BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27D27E0D-DBC1-4510-92E4-FDC900660BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27D27E0D-DBC1-4510-92E4-FDC900660BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27D27E0D-DBC1-4510-92E4-FDC900660BEA}.Release|Any CPU.Build.0 = Release|Any CPU + {E09C71E1-E08B-4EFC-8F76-D939462FEC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E09C71E1-E08B-4EFC-8F76-D939462FEC78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E09C71E1-E08B-4EFC-8F76-D939462FEC78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E09C71E1-E08B-4EFC-8F76-D939462FEC78}.Release|Any CPU.Build.0 = Release|Any CPU + {AFC44C99-4470-48EE-ACB7-B896B128CA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFC44C99-4470-48EE-ACB7-B896B128CA46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFC44C99-4470-48EE-ACB7-B896B128CA46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFC44C99-4470-48EE-ACB7-B896B128CA46}.Release|Any CPU.Build.0 = Release|Any CPU + {2C83FC12-946A-4ECD-8A72-7662C3649F10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C83FC12-946A-4ECD-8A72-7662C3649F10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C83FC12-946A-4ECD-8A72-7662C3649F10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C83FC12-946A-4ECD-8A72-7662C3649F10}.Release|Any CPU.Build.0 = Release|Any CPU + {5C6D1A36-CD72-42C6-827E-1288CA27592A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C6D1A36-CD72-42C6-827E-1288CA27592A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C6D1A36-CD72-42C6-827E-1288CA27592A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C6D1A36-CD72-42C6-827E-1288CA27592A}.Release|Any CPU.Build.0 = Release|Any CPU + {6AD56989-0DAF-4292-9EEE-83AFB360ED0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AD56989-0DAF-4292-9EEE-83AFB360ED0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AD56989-0DAF-4292-9EEE-83AFB360ED0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AD56989-0DAF-4292-9EEE-83AFB360ED0C}.Release|Any CPU.Build.0 = Release|Any CPU + {7839BCF8-8B5A-465B-A4B6-86CE4227AF81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7839BCF8-8B5A-465B-A4B6-86CE4227AF81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7839BCF8-8B5A-465B-A4B6-86CE4227AF81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7839BCF8-8B5A-465B-A4B6-86CE4227AF81}.Release|Any CPU.Build.0 = Release|Any CPU + {782AA503-8808-4741-AECF-D79A6BF3EFF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {782AA503-8808-4741-AECF-D79A6BF3EFF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {782AA503-8808-4741-AECF-D79A6BF3EFF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {782AA503-8808-4741-AECF-D79A6BF3EFF7}.Release|Any CPU.Build.0 = Release|Any CPU + {5AAFDB16-AACF-4446-9285-26AAC815101B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AAFDB16-AACF-4446-9285-26AAC815101B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AAFDB16-AACF-4446-9285-26AAC815101B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AAFDB16-AACF-4446-9285-26AAC815101B}.Release|Any CPU.Build.0 = Release|Any CPU + {F98D4222-5D8F-4814-A86B-6706A88312DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F98D4222-5D8F-4814-A86B-6706A88312DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F98D4222-5D8F-4814-A86B-6706A88312DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F98D4222-5D8F-4814-A86B-6706A88312DC}.Release|Any CPU.Build.0 = Release|Any CPU + {51F71AEF-7682-4D52-AF40-F31FFC82C60D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51F71AEF-7682-4D52-AF40-F31FFC82C60D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51F71AEF-7682-4D52-AF40-F31FFC82C60D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51F71AEF-7682-4D52-AF40-F31FFC82C60D}.Release|Any CPU.Build.0 = Release|Any CPU + {8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8220C8D4-ED5E-4FB1-9BAF-5CFB506A7116}.Release|Any CPU.Build.0 = Release|Any CPU + {1EC7A3FA-A64A-4ACB-88D6-D1C98049E773}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EC7A3FA-A64A-4ACB-88D6-D1C98049E773}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EC7A3FA-A64A-4ACB-88D6-D1C98049E773}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EC7A3FA-A64A-4ACB-88D6-D1C98049E773}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {17DBE1D4-FCB5-4D55-805C-C4A22EE8C032} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E6592FAD-10B5-4B56-9287-D72DD136992F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {27D27E0D-DBC1-4510-92E4-FDC900660BEA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {65F903CD-B6E3-4982-BBB1-515753763974} + SolutionGuid = {3F85CAA1-0651-4FD6-81E7-45CFF63779BA} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition.Convention/src/System/Composition/Convention/PartConventionBuilder.cs b/src/libraries/System.Composition.Convention/src/System/Composition/Convention/PartConventionBuilder.cs index 0ae9618a77ab..8fbfd3d51ec4 100644 --- a/src/libraries/System.Composition.Convention/src/System/Composition/Convention/PartConventionBuilder.cs +++ b/src/libraries/System.Composition.Convention/src/System/Composition/Convention/PartConventionBuilder.cs @@ -13,7 +13,7 @@ namespace System.Composition.Convention /// public class PartConventionBuilder { - private readonly Type[] _emptyTypeArray = Array.Empty(); + private readonly Type[] _emptyTypeArray = Type.EmptyTypes; private static List s_onImportsSatisfiedAttributeList; private static readonly List s_importingConstructorList = new List() { new ImportingConstructorAttribute() }; private static readonly Type s_exportAttributeType = typeof(ExportAttribute); diff --git a/src/libraries/System.Composition.Hosting/System.Composition.Hosting.sln b/src/libraries/System.Composition.Hosting/System.Composition.Hosting.sln index f5eae716d2e8..5ffd7ad02102 100644 --- a/src/libraries/System.Composition.Hosting/System.Composition.Hosting.sln +++ b/src/libraries/System.Composition.Hosting/System.Composition.Hosting.sln @@ -1,48 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting.Tests", "tests\System.Composition.Hosting.Tests.csproj", "{52BE9F68-69EC-44AA-806E-11EFB57D9B4B}" - ProjectSection(ProjectDependencies) = postProject - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2} = {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{44A29AA4-209C-4CA9-BB25-4B42F8F5F259}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting", "src\System.Composition.Hosting.csproj", "{2B8FECC6-34A1-48FE-BA75-99572D2D6DB2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{21ECA0FD-26F9-4FA6-8531-3C5E717C2D44}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting", "src\System.Composition.Hosting.csproj", "{991FC8D9-6A92-4A79-91EC-BD72005687AF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting.Tests", "tests\System.Composition.Hosting.Tests.csproj", "{0F595512-D4BE-4042-9C8A-F0816A7B27AD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{08B264BA-A209-4D92-B347-1DD7F35A1E38}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "..\System.Composition.Runtime\src\System.Composition.Runtime.csproj", "{4C5E5AB8-480F-49F2-AF28-29C2EE713A39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{46D78F2B-5DB4-43BF-BBA2-EB02CA97101D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CA6FD82A-E3D3-40BA-B135-981E9BE11074}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{923489C9-718A-448E-9A98-B6F27238F6BE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{96F324CC-6EDB-4CC7-8146-61D5CF85A6E7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3D7D0C89-1716-407A-BB98-D6345444B01F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {44A29AA4-209C-4CA9-BB25-4B42F8F5F259} = {923489C9-718A-448E-9A98-B6F27238F6BE} + {0F595512-D4BE-4042-9C8A-F0816A7B27AD} = {923489C9-718A-448E-9A98-B6F27238F6BE} + {21ECA0FD-26F9-4FA6-8531-3C5E717C2D44} = {96F324CC-6EDB-4CC7-8146-61D5CF85A6E7} + {2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16} = {96F324CC-6EDB-4CC7-8146-61D5CF85A6E7} + {CA6FD82A-E3D3-40BA-B135-981E9BE11074} = {96F324CC-6EDB-4CC7-8146-61D5CF85A6E7} + {BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95} = {96F324CC-6EDB-4CC7-8146-61D5CF85A6E7} + {991FC8D9-6A92-4A79-91EC-BD72005687AF} = {3D7D0C89-1716-407A-BB98-D6345444B01F} + {4C5E5AB8-480F-49F2-AF28-29C2EE713A39} = {3D7D0C89-1716-407A-BB98-D6345444B01F} + {46D78F2B-5DB4-43BF-BBA2-EB02CA97101D} = {3D7D0C89-1716-407A-BB98-D6345444B01F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {52BE9F68-69EC-44AA-806E-11EFB57D9B4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52BE9F68-69EC-44AA-806E-11EFB57D9B4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52BE9F68-69EC-44AA-806E-11EFB57D9B4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52BE9F68-69EC-44AA-806E-11EFB57D9B4B}.Release|Any CPU.Build.0 = Release|Any CPU - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2}.Release|Any CPU.Build.0 = Release|Any CPU - {08B264BA-A209-4D92-B347-1DD7F35A1E38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08B264BA-A209-4D92-B347-1DD7F35A1E38}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08B264BA-A209-4D92-B347-1DD7F35A1E38}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08B264BA-A209-4D92-B347-1DD7F35A1E38}.Release|Any CPU.Build.0 = Release|Any CPU + {44A29AA4-209C-4CA9-BB25-4B42F8F5F259}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44A29AA4-209C-4CA9-BB25-4B42F8F5F259}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44A29AA4-209C-4CA9-BB25-4B42F8F5F259}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44A29AA4-209C-4CA9-BB25-4B42F8F5F259}.Release|Any CPU.Build.0 = Release|Any CPU + {21ECA0FD-26F9-4FA6-8531-3C5E717C2D44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21ECA0FD-26F9-4FA6-8531-3C5E717C2D44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21ECA0FD-26F9-4FA6-8531-3C5E717C2D44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21ECA0FD-26F9-4FA6-8531-3C5E717C2D44}.Release|Any CPU.Build.0 = Release|Any CPU + {991FC8D9-6A92-4A79-91EC-BD72005687AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {991FC8D9-6A92-4A79-91EC-BD72005687AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {991FC8D9-6A92-4A79-91EC-BD72005687AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {991FC8D9-6A92-4A79-91EC-BD72005687AF}.Release|Any CPU.Build.0 = Release|Any CPU + {0F595512-D4BE-4042-9C8A-F0816A7B27AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F595512-D4BE-4042-9C8A-F0816A7B27AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F595512-D4BE-4042-9C8A-F0816A7B27AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F595512-D4BE-4042-9C8A-F0816A7B27AD}.Release|Any CPU.Build.0 = Release|Any CPU + {4C5E5AB8-480F-49F2-AF28-29C2EE713A39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C5E5AB8-480F-49F2-AF28-29C2EE713A39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C5E5AB8-480F-49F2-AF28-29C2EE713A39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C5E5AB8-480F-49F2-AF28-29C2EE713A39}.Release|Any CPU.Build.0 = Release|Any CPU + {2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D5AF3B3-B83C-425B-AEB8-EA8F1A308E16}.Release|Any CPU.Build.0 = Release|Any CPU + {46D78F2B-5DB4-43BF-BBA2-EB02CA97101D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46D78F2B-5DB4-43BF-BBA2-EB02CA97101D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46D78F2B-5DB4-43BF-BBA2-EB02CA97101D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46D78F2B-5DB4-43BF-BBA2-EB02CA97101D}.Release|Any CPU.Build.0 = Release|Any CPU + {CA6FD82A-E3D3-40BA-B135-981E9BE11074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA6FD82A-E3D3-40BA-B135-981E9BE11074}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA6FD82A-E3D3-40BA-B135-981E9BE11074}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA6FD82A-E3D3-40BA-B135-981E9BE11074}.Release|Any CPU.Build.0 = Release|Any CPU + {BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFFC7F67-066C-4C69-AF00-B3FC4E1E2C95}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {52BE9F68-69EC-44AA-806E-11EFB57D9B4B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2B8FECC6-34A1-48FE-BA75-99572D2D6DB2} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {08B264BA-A209-4D92-B347-1DD7F35A1E38} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4D9B75F6-D7E6-4E2C-BFDE-72F227FE7117} + SolutionGuid = {EE971A55-D6EB-4648-BA96-BA8BC454EDC5} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition.Runtime/System.Composition.Runtime.sln b/src/libraries/System.Composition.Runtime/System.Composition.Runtime.sln index 93dcb7a72306..57ed9b81b3c2 100644 --- a/src/libraries/System.Composition.Runtime/System.Composition.Runtime.sln +++ b/src/libraries/System.Composition.Runtime/System.Composition.Runtime.sln @@ -1,48 +1,79 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime.Tests", "tests\System.Composition.Runtime.Tests.csproj", "{3B6042E6-9765-4A03-9089-92050100C85E}" - ProjectSection(ProjectDependencies) = postProject - {2711DFD2-8541-4628-BC53-EB784A14CDCF} = {2711DFD2-8541-4628-BC53-EB784A14CDCF} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{31F52C37-63E5-46F9-A5DE-894E8AC91475}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "src\System.Composition.Runtime.csproj", "{2711DFD2-8541-4628-BC53-EB784A14CDCF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{AFE1C4D7-0189-44CE-959B-D5F27E4D7B71}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "src\System.Composition.Runtime.csproj", "{BAC53BBD-B949-419D-833B-54B6A03A1389}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime.Tests", "tests\System.Composition.Runtime.Tests.csproj", "{B19B1509-313D-497D-9636-9A7AD5022DCF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F6A223BB-CB73-4F82-9029-946150692273}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{AA73B72F-7C6F-479D-8141-CDD66F2EA7FB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C24C1E34-B65C-4DAA-A29D-382FCC04E9DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{2A785B2A-FC00-4976-9135-4EA134D44BEC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{62F8B390-A4BE-4E9D-8C0C-91F72B207D9B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C3A9471F-9EFF-4447-83A8-BAF3842F9171}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{18FB41BC-8B42-499D-9A1C-33E2E5AFC0CD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E251F0CD-1C58-421C-916C-6F5FEAEADE32}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {31F52C37-63E5-46F9-A5DE-894E8AC91475} = {C3A9471F-9EFF-4447-83A8-BAF3842F9171} + {B19B1509-313D-497D-9636-9A7AD5022DCF} = {C3A9471F-9EFF-4447-83A8-BAF3842F9171} + {AFE1C4D7-0189-44CE-959B-D5F27E4D7B71} = {18FB41BC-8B42-499D-9A1C-33E2E5AFC0CD} + {AA73B72F-7C6F-479D-8141-CDD66F2EA7FB} = {18FB41BC-8B42-499D-9A1C-33E2E5AFC0CD} + {2A785B2A-FC00-4976-9135-4EA134D44BEC} = {18FB41BC-8B42-499D-9A1C-33E2E5AFC0CD} + {62F8B390-A4BE-4E9D-8C0C-91F72B207D9B} = {18FB41BC-8B42-499D-9A1C-33E2E5AFC0CD} + {BAC53BBD-B949-419D-833B-54B6A03A1389} = {E251F0CD-1C58-421C-916C-6F5FEAEADE32} + {C24C1E34-B65C-4DAA-A29D-382FCC04E9DC} = {E251F0CD-1C58-421C-916C-6F5FEAEADE32} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B6042E6-9765-4A03-9089-92050100C85E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B6042E6-9765-4A03-9089-92050100C85E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B6042E6-9765-4A03-9089-92050100C85E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B6042E6-9765-4A03-9089-92050100C85E}.Release|Any CPU.Build.0 = Release|Any CPU - {2711DFD2-8541-4628-BC53-EB784A14CDCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2711DFD2-8541-4628-BC53-EB784A14CDCF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2711DFD2-8541-4628-BC53-EB784A14CDCF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2711DFD2-8541-4628-BC53-EB784A14CDCF}.Release|Any CPU.Build.0 = Release|Any CPU - {F6A223BB-CB73-4F82-9029-946150692273}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F6A223BB-CB73-4F82-9029-946150692273}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F6A223BB-CB73-4F82-9029-946150692273}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F6A223BB-CB73-4F82-9029-946150692273}.Release|Any CPU.Build.0 = Release|Any CPU + {31F52C37-63E5-46F9-A5DE-894E8AC91475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31F52C37-63E5-46F9-A5DE-894E8AC91475}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31F52C37-63E5-46F9-A5DE-894E8AC91475}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31F52C37-63E5-46F9-A5DE-894E8AC91475}.Release|Any CPU.Build.0 = Release|Any CPU + {AFE1C4D7-0189-44CE-959B-D5F27E4D7B71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFE1C4D7-0189-44CE-959B-D5F27E4D7B71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFE1C4D7-0189-44CE-959B-D5F27E4D7B71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFE1C4D7-0189-44CE-959B-D5F27E4D7B71}.Release|Any CPU.Build.0 = Release|Any CPU + {BAC53BBD-B949-419D-833B-54B6A03A1389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAC53BBD-B949-419D-833B-54B6A03A1389}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAC53BBD-B949-419D-833B-54B6A03A1389}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAC53BBD-B949-419D-833B-54B6A03A1389}.Release|Any CPU.Build.0 = Release|Any CPU + {B19B1509-313D-497D-9636-9A7AD5022DCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B19B1509-313D-497D-9636-9A7AD5022DCF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B19B1509-313D-497D-9636-9A7AD5022DCF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B19B1509-313D-497D-9636-9A7AD5022DCF}.Release|Any CPU.Build.0 = Release|Any CPU + {AA73B72F-7C6F-479D-8141-CDD66F2EA7FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA73B72F-7C6F-479D-8141-CDD66F2EA7FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA73B72F-7C6F-479D-8141-CDD66F2EA7FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA73B72F-7C6F-479D-8141-CDD66F2EA7FB}.Release|Any CPU.Build.0 = Release|Any CPU + {C24C1E34-B65C-4DAA-A29D-382FCC04E9DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C24C1E34-B65C-4DAA-A29D-382FCC04E9DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C24C1E34-B65C-4DAA-A29D-382FCC04E9DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C24C1E34-B65C-4DAA-A29D-382FCC04E9DC}.Release|Any CPU.Build.0 = Release|Any CPU + {2A785B2A-FC00-4976-9135-4EA134D44BEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A785B2A-FC00-4976-9135-4EA134D44BEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A785B2A-FC00-4976-9135-4EA134D44BEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A785B2A-FC00-4976-9135-4EA134D44BEC}.Release|Any CPU.Build.0 = Release|Any CPU + {62F8B390-A4BE-4E9D-8C0C-91F72B207D9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62F8B390-A4BE-4E9D-8C0C-91F72B207D9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62F8B390-A4BE-4E9D-8C0C-91F72B207D9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62F8B390-A4BE-4E9D-8C0C-91F72B207D9B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3B6042E6-9765-4A03-9089-92050100C85E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2711DFD2-8541-4628-BC53-EB784A14CDCF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F6A223BB-CB73-4F82-9029-946150692273} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7483F39D-92EE-4290-AA6A-6DCE79DA2791} + SolutionGuid = {7686D4EE-C99C-4FC3-AF5C-F06B154E4A54} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition.TypedParts/System.Composition.TypedParts.sln b/src/libraries/System.Composition.TypedParts/System.Composition.TypedParts.sln index 3b57f5ffe713..1c9e20eb66ec 100644 --- a/src/libraries/System.Composition.TypedParts/System.Composition.TypedParts.sln +++ b/src/libraries/System.Composition.TypedParts/System.Composition.TypedParts.sln @@ -1,48 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts.Tests", "tests\System.Composition.TypedParts.Tests.csproj", "{8D1CB149-B52E-472B-A91F-DF1C77D8BA46}" - ProjectSection(ProjectDependencies) = postProject - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E} = {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CA8B80E6-875F-4C21-83E2-4EB57AADAA8F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts", "src\System.Composition.TypedParts.csproj", "{B4B5E15C-E6B9-48EA-94C2-F067484D4D3E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributedModel", "..\System.Composition.AttributedModel\src\System.Composition.AttributedModel.csproj", "{6A17CBBC-46E8-4837-8AFF-D834B6CD8691}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention", "..\System.Composition.Convention\src\System.Composition.Convention.csproj", "{88652FCF-A44D-4B81-ADB1-6C15260CFB80}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8877AB17-7981-4110-B690-D96B7B4B1B8F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting", "..\System.Composition.Hosting\src\System.Composition.Hosting.csproj", "{C8B6031E-5DD0-4BE8-9D70-960B24B1D23D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "..\System.Composition.Runtime\src\System.Composition.Runtime.csproj", "{E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts", "src\System.Composition.TypedParts.csproj", "{1B533355-A67E-4912-9605-A08FC7870291}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts.Tests", "tests\System.Composition.TypedParts.Tests.csproj", "{38C096D0-5E23-47E2-A074-5F9852075459}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0774F258-3ADD-4791-B9B6-36234CFE5B0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{2DC81D88-9EC5-4C8F-83CB-3102F2F626AB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F96B5C76-C7C4-410E-9E40-173A4C14DBC0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{64AB414D-ECCE-4190-A4F9-DE9ED8069E5C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D7E1E36D-E497-4F38-9463-94D770E651E0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B262B362-30B4-44EB-B39F-12FA12A464B7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {CA8B80E6-875F-4C21-83E2-4EB57AADAA8F} = {64AB414D-ECCE-4190-A4F9-DE9ED8069E5C} + {38C096D0-5E23-47E2-A074-5F9852075459} = {64AB414D-ECCE-4190-A4F9-DE9ED8069E5C} + {0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5} = {D7E1E36D-E497-4F38-9463-94D770E651E0} + {0774F258-3ADD-4791-B9B6-36234CFE5B0B} = {D7E1E36D-E497-4F38-9463-94D770E651E0} + {F96B5C76-C7C4-410E-9E40-173A4C14DBC0} = {D7E1E36D-E497-4F38-9463-94D770E651E0} + {0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D} = {D7E1E36D-E497-4F38-9463-94D770E651E0} + {6A17CBBC-46E8-4837-8AFF-D834B6CD8691} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + {88652FCF-A44D-4B81-ADB1-6C15260CFB80} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + {C8B6031E-5DD0-4BE8-9D70-960B24B1D23D} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + {E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + {1B533355-A67E-4912-9605-A08FC7870291} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + {2DC81D88-9EC5-4C8F-83CB-3102F2F626AB} = {B262B362-30B4-44EB-B39F-12FA12A464B7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8D1CB149-B52E-472B-A91F-DF1C77D8BA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D1CB149-B52E-472B-A91F-DF1C77D8BA46}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D1CB149-B52E-472B-A91F-DF1C77D8BA46}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D1CB149-B52E-472B-A91F-DF1C77D8BA46}.Release|Any CPU.Build.0 = Release|Any CPU - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E}.Release|Any CPU.Build.0 = Release|Any CPU - {8877AB17-7981-4110-B690-D96B7B4B1B8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8877AB17-7981-4110-B690-D96B7B4B1B8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8877AB17-7981-4110-B690-D96B7B4B1B8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8877AB17-7981-4110-B690-D96B7B4B1B8F}.Release|Any CPU.Build.0 = Release|Any CPU + {CA8B80E6-875F-4C21-83E2-4EB57AADAA8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA8B80E6-875F-4C21-83E2-4EB57AADAA8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA8B80E6-875F-4C21-83E2-4EB57AADAA8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA8B80E6-875F-4C21-83E2-4EB57AADAA8F}.Release|Any CPU.Build.0 = Release|Any CPU + {0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AE27BFC-4A71-4FED-B71E-B7688EF5C9C5}.Release|Any CPU.Build.0 = Release|Any CPU + {6A17CBBC-46E8-4837-8AFF-D834B6CD8691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A17CBBC-46E8-4837-8AFF-D834B6CD8691}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A17CBBC-46E8-4837-8AFF-D834B6CD8691}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A17CBBC-46E8-4837-8AFF-D834B6CD8691}.Release|Any CPU.Build.0 = Release|Any CPU + {88652FCF-A44D-4B81-ADB1-6C15260CFB80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88652FCF-A44D-4B81-ADB1-6C15260CFB80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88652FCF-A44D-4B81-ADB1-6C15260CFB80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88652FCF-A44D-4B81-ADB1-6C15260CFB80}.Release|Any CPU.Build.0 = Release|Any CPU + {C8B6031E-5DD0-4BE8-9D70-960B24B1D23D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8B6031E-5DD0-4BE8-9D70-960B24B1D23D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8B6031E-5DD0-4BE8-9D70-960B24B1D23D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8B6031E-5DD0-4BE8-9D70-960B24B1D23D}.Release|Any CPU.Build.0 = Release|Any CPU + {E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5E6C1F3-C318-47FF-B0BC-CFC04BC4AB15}.Release|Any CPU.Build.0 = Release|Any CPU + {1B533355-A67E-4912-9605-A08FC7870291}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B533355-A67E-4912-9605-A08FC7870291}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B533355-A67E-4912-9605-A08FC7870291}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B533355-A67E-4912-9605-A08FC7870291}.Release|Any CPU.Build.0 = Release|Any CPU + {38C096D0-5E23-47E2-A074-5F9852075459}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38C096D0-5E23-47E2-A074-5F9852075459}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38C096D0-5E23-47E2-A074-5F9852075459}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38C096D0-5E23-47E2-A074-5F9852075459}.Release|Any CPU.Build.0 = Release|Any CPU + {0774F258-3ADD-4791-B9B6-36234CFE5B0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0774F258-3ADD-4791-B9B6-36234CFE5B0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0774F258-3ADD-4791-B9B6-36234CFE5B0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0774F258-3ADD-4791-B9B6-36234CFE5B0B}.Release|Any CPU.Build.0 = Release|Any CPU + {2DC81D88-9EC5-4C8F-83CB-3102F2F626AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DC81D88-9EC5-4C8F-83CB-3102F2F626AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DC81D88-9EC5-4C8F-83CB-3102F2F626AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DC81D88-9EC5-4C8F-83CB-3102F2F626AB}.Release|Any CPU.Build.0 = Release|Any CPU + {F96B5C76-C7C4-410E-9E40-173A4C14DBC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F96B5C76-C7C4-410E-9E40-173A4C14DBC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F96B5C76-C7C4-410E-9E40-173A4C14DBC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F96B5C76-C7C4-410E-9E40-173A4C14DBC0}.Release|Any CPU.Build.0 = Release|Any CPU + {0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0380CCEC-9B4B-4E63-BC3E-1AE7B9161C7D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8D1CB149-B52E-472B-A91F-DF1C77D8BA46} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B4B5E15C-E6B9-48EA-94C2-F067484D4D3E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {8877AB17-7981-4110-B690-D96B7B4B1B8F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3373081C-C3A1-450B-9D5C-FB892CD08D8B} + SolutionGuid = {699ABEC3-0D6B-4050-B86A-C6E1317DE039} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Composition/System.Composition.sln b/src/libraries/System.Composition/System.Composition.sln index f4e907e8f7e8..4cc842a4eea0 100644 --- a/src/libraries/System.Composition/System.Composition.sln +++ b/src/libraries/System.Composition/System.Composition.sln @@ -1,50 +1,121 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Tests", "tests\System.Composition.Tests.csproj", "{4852A19F-C05C-478D-BFA0-59FD03DE0E3F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B7690923-904C-4C76-8E39-83B5E30B74CD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Composition.Demos.ExtendedCollectionImports", "tests\Microsoft.Composition.Demos.ExtendedCollectionImports\Microsoft.Composition.Demos.ExtendedCollectionImports.csproj", "{44C7E52C-3873-4C64-875C-8A23A8376D60}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1B4069B3-13C2-40CA-92AB-1BBC9D440654}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestLibrary", "tests\TestLibrary\TestLibrary.csproj", "{DA6841A5-0344-4CC7-98B0-89CBEE18DEE3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.AttributedModel", "..\System.Composition.AttributedModel\src\System.Composition.AttributedModel.csproj", "{34A434B3-E95A-4C66-903E-DCBABCAC9091}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Convention", "..\System.Composition.Convention\src\System.Composition.Convention.csproj", "{64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{69BF9A23-1A4E-4980-BFB1-902296C83120}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Hosting", "..\System.Composition.Hosting\src\System.Composition.Hosting.csproj", "{ADF1E9B2-7740-47B7-81B7-222FD5E136A7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Runtime", "..\System.Composition.Runtime\src\System.Composition.Runtime.csproj", "{60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.TypedParts", "..\System.Composition.TypedParts\src\System.Composition.TypedParts.csproj", "{E3295CB6-16E3-497C-A696-71A077DD5828}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Composition.Demos.ExtendedCollectionImports", "tests\Microsoft.Composition.Demos.ExtendedCollectionImports\Microsoft.Composition.Demos.ExtendedCollectionImports.csproj", "{6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Composition.Tests", "tests\System.Composition.Tests.csproj", "{CB0DF0EC-4F33-4DEB-A773-8D871E135AD5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestLibrary", "tests\TestLibrary\TestLibrary.csproj", "{B16BCA17-DCA8-43B7-8E8A-89033F7A676E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{ABFBB6AD-0A7C-4545-A129-3B7D5327E277}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{AFD8B15A-E1A4-412A-A08B-9C3587A87B26}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F4FC2925-7B00-4763-B830-FD88A93E0359}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3BBCD0BF-4301-424E-A6EB-7D729D6AB735}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{869F605D-5AC2-4A48-AADA-22D14201B6B2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{04DF6753-EE23-424F-A626-50D9CC88B844}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B7690923-904C-4C76-8E39-83B5E30B74CD} = {3BBCD0BF-4301-424E-A6EB-7D729D6AB735} + {6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0} = {3BBCD0BF-4301-424E-A6EB-7D729D6AB735} + {CB0DF0EC-4F33-4DEB-A773-8D871E135AD5} = {3BBCD0BF-4301-424E-A6EB-7D729D6AB735} + {B16BCA17-DCA8-43B7-8E8A-89033F7A676E} = {3BBCD0BF-4301-424E-A6EB-7D729D6AB735} + {1B4069B3-13C2-40CA-92AB-1BBC9D440654} = {869F605D-5AC2-4A48-AADA-22D14201B6B2} + {ABFBB6AD-0A7C-4545-A129-3B7D5327E277} = {869F605D-5AC2-4A48-AADA-22D14201B6B2} + {AFD8B15A-E1A4-412A-A08B-9C3587A87B26} = {869F605D-5AC2-4A48-AADA-22D14201B6B2} + {F4FC2925-7B00-4763-B830-FD88A93E0359} = {869F605D-5AC2-4A48-AADA-22D14201B6B2} + {34A434B3-E95A-4C66-903E-DCBABCAC9091} = {04DF6753-EE23-424F-A626-50D9CC88B844} + {64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3} = {04DF6753-EE23-424F-A626-50D9CC88B844} + {ADF1E9B2-7740-47B7-81B7-222FD5E136A7} = {04DF6753-EE23-424F-A626-50D9CC88B844} + {60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64} = {04DF6753-EE23-424F-A626-50D9CC88B844} + {E3295CB6-16E3-497C-A696-71A077DD5828} = {04DF6753-EE23-424F-A626-50D9CC88B844} + {0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8} = {04DF6753-EE23-424F-A626-50D9CC88B844} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4852A19F-C05C-478D-BFA0-59FD03DE0E3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4852A19F-C05C-478D-BFA0-59FD03DE0E3F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4852A19F-C05C-478D-BFA0-59FD03DE0E3F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4852A19F-C05C-478D-BFA0-59FD03DE0E3F}.Release|Any CPU.Build.0 = Release|Any CPU - {44C7E52C-3873-4C64-875C-8A23A8376D60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44C7E52C-3873-4C64-875C-8A23A8376D60}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44C7E52C-3873-4C64-875C-8A23A8376D60}.Release|Any CPU.ActiveCfg = Release|Any CPU - {44C7E52C-3873-4C64-875C-8A23A8376D60}.Release|Any CPU.Build.0 = Release|Any CPU - {DA6841A5-0344-4CC7-98B0-89CBEE18DEE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA6841A5-0344-4CC7-98B0-89CBEE18DEE3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA6841A5-0344-4CC7-98B0-89CBEE18DEE3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA6841A5-0344-4CC7-98B0-89CBEE18DEE3}.Release|Any CPU.Build.0 = Release|Any CPU - {69BF9A23-1A4E-4980-BFB1-902296C83120}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69BF9A23-1A4E-4980-BFB1-902296C83120}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69BF9A23-1A4E-4980-BFB1-902296C83120}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69BF9A23-1A4E-4980-BFB1-902296C83120}.Release|Any CPU.Build.0 = Release|Any CPU + {B7690923-904C-4C76-8E39-83B5E30B74CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7690923-904C-4C76-8E39-83B5E30B74CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7690923-904C-4C76-8E39-83B5E30B74CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7690923-904C-4C76-8E39-83B5E30B74CD}.Release|Any CPU.Build.0 = Release|Any CPU + {1B4069B3-13C2-40CA-92AB-1BBC9D440654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B4069B3-13C2-40CA-92AB-1BBC9D440654}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B4069B3-13C2-40CA-92AB-1BBC9D440654}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B4069B3-13C2-40CA-92AB-1BBC9D440654}.Release|Any CPU.Build.0 = Release|Any CPU + {34A434B3-E95A-4C66-903E-DCBABCAC9091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34A434B3-E95A-4C66-903E-DCBABCAC9091}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34A434B3-E95A-4C66-903E-DCBABCAC9091}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34A434B3-E95A-4C66-903E-DCBABCAC9091}.Release|Any CPU.Build.0 = Release|Any CPU + {64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64B94BD1-D18E-47E1-A2AE-FE2F0A23D5C3}.Release|Any CPU.Build.0 = Release|Any CPU + {ADF1E9B2-7740-47B7-81B7-222FD5E136A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADF1E9B2-7740-47B7-81B7-222FD5E136A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADF1E9B2-7740-47B7-81B7-222FD5E136A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADF1E9B2-7740-47B7-81B7-222FD5E136A7}.Release|Any CPU.Build.0 = Release|Any CPU + {60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60940C78-4DDA-4CDD-BA1C-8C9B6DB4FB64}.Release|Any CPU.Build.0 = Release|Any CPU + {E3295CB6-16E3-497C-A696-71A077DD5828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3295CB6-16E3-497C-A696-71A077DD5828}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3295CB6-16E3-497C-A696-71A077DD5828}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3295CB6-16E3-497C-A696-71A077DD5828}.Release|Any CPU.Build.0 = Release|Any CPU + {6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E8E4CDA-4573-4F9D-9BDD-EDF98568E2C0}.Release|Any CPU.Build.0 = Release|Any CPU + {CB0DF0EC-4F33-4DEB-A773-8D871E135AD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB0DF0EC-4F33-4DEB-A773-8D871E135AD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB0DF0EC-4F33-4DEB-A773-8D871E135AD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB0DF0EC-4F33-4DEB-A773-8D871E135AD5}.Release|Any CPU.Build.0 = Release|Any CPU + {B16BCA17-DCA8-43B7-8E8A-89033F7A676E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B16BCA17-DCA8-43B7-8E8A-89033F7A676E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B16BCA17-DCA8-43B7-8E8A-89033F7A676E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B16BCA17-DCA8-43B7-8E8A-89033F7A676E}.Release|Any CPU.Build.0 = Release|Any CPU + {ABFBB6AD-0A7C-4545-A129-3B7D5327E277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABFBB6AD-0A7C-4545-A129-3B7D5327E277}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABFBB6AD-0A7C-4545-A129-3B7D5327E277}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABFBB6AD-0A7C-4545-A129-3B7D5327E277}.Release|Any CPU.Build.0 = Release|Any CPU + {0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E9A94D5-DC06-4A7F-B73D-43EA7DE0B8B8}.Release|Any CPU.Build.0 = Release|Any CPU + {AFD8B15A-E1A4-412A-A08B-9C3587A87B26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFD8B15A-E1A4-412A-A08B-9C3587A87B26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFD8B15A-E1A4-412A-A08B-9C3587A87B26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFD8B15A-E1A4-412A-A08B-9C3587A87B26}.Release|Any CPU.Build.0 = Release|Any CPU + {F4FC2925-7B00-4763-B830-FD88A93E0359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4FC2925-7B00-4763-B830-FD88A93E0359}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4FC2925-7B00-4763-B830-FD88A93E0359}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4FC2925-7B00-4763-B830-FD88A93E0359}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4852A19F-C05C-478D-BFA0-59FD03DE0E3F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {44C7E52C-3873-4C64-875C-8A23A8376D60} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {DA6841A5-0344-4CC7-98B0-89CBEE18DEE3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {69BF9A23-1A4E-4980-BFB1-902296C83120} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5BEDEB84-AC24-4154-B838-AD53AE822667} + SolutionGuid = {66F5BC63-E142-4B22-8B5D-1FF5206A7171} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Configuration.ConfigurationManager/System.Configuration.ConfigurationManager.sln b/src/libraries/System.Configuration.ConfigurationManager/System.Configuration.ConfigurationManager.sln index 4f217d1bbf89..3be755d851f6 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/System.Configuration.ConfigurationManager.sln +++ b/src/libraries/System.Configuration.ConfigurationManager/System.Configuration.ConfigurationManager.sln @@ -1,60 +1,149 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager.Tests", "tests\System.Configuration.ConfigurationManager.Tests.csproj", "{7669C397-C21C-4C08-83F1-BE6691911E88}" - ProjectSection(ProjectDependencies) = postProject - {B7697463-7C98-4462-BA09-67B7BF3842B6} = {B7697463-7C98-4462-BA09-67B7BF3842B6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{15012FB4-9C7C-4DE0-AB44-83A64654D738}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "src\System.Configuration.ConfigurationManager.csproj", "{B7697463-7C98-4462-BA09-67B7BF3842B6}" - ProjectSection(ProjectDependencies) = postProject - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0} = {FD6AA2B9-56DB-4BCC-85E0-7727506562B0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B0C1DAC5-145F-482B-A1E2-C95B33144FC6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "ref\System.Configuration.ConfigurationManager.csproj", "{FD6AA2B9-56DB-4BCC-85E0-7727506562B0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "ref\System.Configuration.ConfigurationManager.csproj", "{6F662E39-BB56-4BCF-B053-B4A1782A33E1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "src\System.Configuration.ConfigurationManager.csproj", "{7C9D7BE4-BF9C-486C-8ADF-53DE282E018A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager.Tests", "tests\System.Configuration.ConfigurationManager.Tests.csproj", "{9476F50F-E44C-4420-96AB-448259A47C4F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{6B586A50-5DFE-4FBE-A65B-9152B992C2E1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{10CD484E-5BF8-40EC-901E-2E4EB5609DB6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C2304393-E1F2-41A9-8ED2-6513F654E6D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BD71A962-9AA8-46C2-A44D-B6B1CB605015}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{B6916437-8EF0-4BF8-BCB6-E063C9397C26}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{DECD7431-49B8-4C94-AA8F-532FF2015A7D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{1C48B652-BA62-4D46-9CDD-24A1670EE3E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{7B2CA04A-9DFB-471E-B4CB-1937D0049B96}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{CFF7519C-4D41-4713-991D-27777DA2DB21}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{2BE20C4A-C20B-4A0C-8E4A-31B681B6967D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{949E8FCF-79C3-48BA-92AE-B937ADDB7221}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{1818C2C7-ABF4-46D6-AA56-BB114D82F31C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{3278A0F9-8E0A-42E1-8FE3-1A01851A6248}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{E34EBFC8-D1BC-4ED7-8335-C183A5994EE1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{462B4FC9-D224-4BE4-9272-4138D06F7434}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{998C6747-2474-4C00-B6BC-F9F467D9CCE2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B67F05A3-B45E-4033-A200-76B5842CB65C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {15012FB4-9C7C-4DE0-AB44-83A64654D738} = {462B4FC9-D224-4BE4-9272-4138D06F7434} + {9476F50F-E44C-4420-96AB-448259A47C4F} = {462B4FC9-D224-4BE4-9272-4138D06F7434} + {B0C1DAC5-145F-482B-A1E2-C95B33144FC6} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {6F662E39-BB56-4BCF-B053-B4A1782A33E1} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {6B586A50-5DFE-4FBE-A65B-9152B992C2E1} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {C2304393-E1F2-41A9-8ED2-6513F654E6D2} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {B6916437-8EF0-4BF8-BCB6-E063C9397C26} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {1C48B652-BA62-4D46-9CDD-24A1670EE3E3} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {CFF7519C-4D41-4713-991D-27777DA2DB21} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {949E8FCF-79C3-48BA-92AE-B937ADDB7221} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {3278A0F9-8E0A-42E1-8FE3-1A01851A6248} = {998C6747-2474-4C00-B6BC-F9F467D9CCE2} + {7C9D7BE4-BF9C-486C-8ADF-53DE282E018A} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {BD71A962-9AA8-46C2-A44D-B6B1CB605015} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {DECD7431-49B8-4C94-AA8F-532FF2015A7D} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {7B2CA04A-9DFB-471E-B4CB-1937D0049B96} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {2BE20C4A-C20B-4A0C-8E4A-31B681B6967D} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {1818C2C7-ABF4-46D6-AA56-BB114D82F31C} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + {E34EBFC8-D1BC-4ED7-8335-C183A5994EE1} = {B67F05A3-B45E-4033-A200-76B5842CB65C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7669C397-C21C-4C08-83F1-BE6691911E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7669C397-C21C-4C08-83F1-BE6691911E88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7669C397-C21C-4C08-83F1-BE6691911E88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7669C397-C21C-4C08-83F1-BE6691911E88}.Release|Any CPU.Build.0 = Release|Any CPU - {B7697463-7C98-4462-BA09-67B7BF3842B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7697463-7C98-4462-BA09-67B7BF3842B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7697463-7C98-4462-BA09-67B7BF3842B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7697463-7C98-4462-BA09-67B7BF3842B6}.Release|Any CPU.Build.0 = Release|Any CPU - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0}.Release|Any CPU.Build.0 = Release|Any CPU - {10CD484E-5BF8-40EC-901E-2E4EB5609DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10CD484E-5BF8-40EC-901E-2E4EB5609DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10CD484E-5BF8-40EC-901E-2E4EB5609DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10CD484E-5BF8-40EC-901E-2E4EB5609DB6}.Release|Any CPU.Build.0 = Release|Any CPU + {15012FB4-9C7C-4DE0-AB44-83A64654D738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15012FB4-9C7C-4DE0-AB44-83A64654D738}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15012FB4-9C7C-4DE0-AB44-83A64654D738}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15012FB4-9C7C-4DE0-AB44-83A64654D738}.Release|Any CPU.Build.0 = Release|Any CPU + {B0C1DAC5-145F-482B-A1E2-C95B33144FC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0C1DAC5-145F-482B-A1E2-C95B33144FC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0C1DAC5-145F-482B-A1E2-C95B33144FC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0C1DAC5-145F-482B-A1E2-C95B33144FC6}.Release|Any CPU.Build.0 = Release|Any CPU + {6F662E39-BB56-4BCF-B053-B4A1782A33E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F662E39-BB56-4BCF-B053-B4A1782A33E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F662E39-BB56-4BCF-B053-B4A1782A33E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F662E39-BB56-4BCF-B053-B4A1782A33E1}.Release|Any CPU.Build.0 = Release|Any CPU + {7C9D7BE4-BF9C-486C-8ADF-53DE282E018A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C9D7BE4-BF9C-486C-8ADF-53DE282E018A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C9D7BE4-BF9C-486C-8ADF-53DE282E018A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C9D7BE4-BF9C-486C-8ADF-53DE282E018A}.Release|Any CPU.Build.0 = Release|Any CPU + {9476F50F-E44C-4420-96AB-448259A47C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9476F50F-E44C-4420-96AB-448259A47C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9476F50F-E44C-4420-96AB-448259A47C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9476F50F-E44C-4420-96AB-448259A47C4F}.Release|Any CPU.Build.0 = Release|Any CPU + {6B586A50-5DFE-4FBE-A65B-9152B992C2E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B586A50-5DFE-4FBE-A65B-9152B992C2E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B586A50-5DFE-4FBE-A65B-9152B992C2E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B586A50-5DFE-4FBE-A65B-9152B992C2E1}.Release|Any CPU.Build.0 = Release|Any CPU + {C2304393-E1F2-41A9-8ED2-6513F654E6D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2304393-E1F2-41A9-8ED2-6513F654E6D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2304393-E1F2-41A9-8ED2-6513F654E6D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2304393-E1F2-41A9-8ED2-6513F654E6D2}.Release|Any CPU.Build.0 = Release|Any CPU + {BD71A962-9AA8-46C2-A44D-B6B1CB605015}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD71A962-9AA8-46C2-A44D-B6B1CB605015}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD71A962-9AA8-46C2-A44D-B6B1CB605015}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD71A962-9AA8-46C2-A44D-B6B1CB605015}.Release|Any CPU.Build.0 = Release|Any CPU + {B6916437-8EF0-4BF8-BCB6-E063C9397C26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6916437-8EF0-4BF8-BCB6-E063C9397C26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6916437-8EF0-4BF8-BCB6-E063C9397C26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6916437-8EF0-4BF8-BCB6-E063C9397C26}.Release|Any CPU.Build.0 = Release|Any CPU + {DECD7431-49B8-4C94-AA8F-532FF2015A7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DECD7431-49B8-4C94-AA8F-532FF2015A7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DECD7431-49B8-4C94-AA8F-532FF2015A7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DECD7431-49B8-4C94-AA8F-532FF2015A7D}.Release|Any CPU.Build.0 = Release|Any CPU + {1C48B652-BA62-4D46-9CDD-24A1670EE3E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C48B652-BA62-4D46-9CDD-24A1670EE3E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C48B652-BA62-4D46-9CDD-24A1670EE3E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C48B652-BA62-4D46-9CDD-24A1670EE3E3}.Release|Any CPU.Build.0 = Release|Any CPU + {7B2CA04A-9DFB-471E-B4CB-1937D0049B96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B2CA04A-9DFB-471E-B4CB-1937D0049B96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B2CA04A-9DFB-471E-B4CB-1937D0049B96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B2CA04A-9DFB-471E-B4CB-1937D0049B96}.Release|Any CPU.Build.0 = Release|Any CPU + {CFF7519C-4D41-4713-991D-27777DA2DB21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFF7519C-4D41-4713-991D-27777DA2DB21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFF7519C-4D41-4713-991D-27777DA2DB21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFF7519C-4D41-4713-991D-27777DA2DB21}.Release|Any CPU.Build.0 = Release|Any CPU + {2BE20C4A-C20B-4A0C-8E4A-31B681B6967D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BE20C4A-C20B-4A0C-8E4A-31B681B6967D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BE20C4A-C20B-4A0C-8E4A-31B681B6967D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BE20C4A-C20B-4A0C-8E4A-31B681B6967D}.Release|Any CPU.Build.0 = Release|Any CPU + {949E8FCF-79C3-48BA-92AE-B937ADDB7221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {949E8FCF-79C3-48BA-92AE-B937ADDB7221}.Debug|Any CPU.Build.0 = Debug|Any CPU + {949E8FCF-79C3-48BA-92AE-B937ADDB7221}.Release|Any CPU.ActiveCfg = Release|Any CPU + {949E8FCF-79C3-48BA-92AE-B937ADDB7221}.Release|Any CPU.Build.0 = Release|Any CPU + {1818C2C7-ABF4-46D6-AA56-BB114D82F31C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1818C2C7-ABF4-46D6-AA56-BB114D82F31C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1818C2C7-ABF4-46D6-AA56-BB114D82F31C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1818C2C7-ABF4-46D6-AA56-BB114D82F31C}.Release|Any CPU.Build.0 = Release|Any CPU + {3278A0F9-8E0A-42E1-8FE3-1A01851A6248}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3278A0F9-8E0A-42E1-8FE3-1A01851A6248}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3278A0F9-8E0A-42E1-8FE3-1A01851A6248}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3278A0F9-8E0A-42E1-8FE3-1A01851A6248}.Release|Any CPU.Build.0 = Release|Any CPU + {E34EBFC8-D1BC-4ED7-8335-C183A5994EE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E34EBFC8-D1BC-4ED7-8335-C183A5994EE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E34EBFC8-D1BC-4ED7-8335-C183A5994EE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E34EBFC8-D1BC-4ED7-8335-C183A5994EE1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7669C397-C21C-4C08-83F1-BE6691911E88} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B7697463-7C98-4462-BA09-67B7BF3842B6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {FD6AA2B9-56DB-4BCC-85E0-7727506562B0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {10CD484E-5BF8-40EC-901E-2E4EB5609DB6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2A7070B4-C2EA-49C3-BEF1-E5BB001D99DF} + SolutionGuid = {942CAD8E-C19B-4B9A-BEDE-09B43F45F535} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/SectionInformation.cs b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/SectionInformation.cs index 4916e4188fcb..29bb4faa3aaa 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/SectionInformation.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/SectionInformation.cs @@ -501,7 +501,7 @@ private void VerifyIsAttachedToConfigRecord() // It may not be editable for the following reasons: // - We are in Runtime mode, not Design time // - The section is not attached to a _configRecord. - // - We are locked (ie. allowOveride = false ) + // - We are locked (ie. AllowOverride = false ) // - We are a parent section (ie. Retrieved from GetParentSection) // internal void VerifyIsEditable() diff --git a/src/libraries/System.Console/System.Console.sln b/src/libraries/System.Console/System.Console.sln index 9513c781538c..6596faaf3ed5 100644 --- a/src/libraries/System.Console/System.Console.sln +++ b/src/libraries/System.Console/System.Console.sln @@ -1,70 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console.Tests", "tests\System.Console.Tests.csproj", "{3ED7BCF1-34B9-49B7-9C25-0BC3304C0858}" - ProjectSection(ProjectDependencies) = postProject - {F9DF2357-81B4-4317-908E-512DA9395583} = {F9DF2357-81B4-4317-908E-512DA9395583} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{67E15C52-4FF6-4149-9D90-2DFF24EA01EA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console.Manual.Tests", "tests\ManualTests\System.Console.Manual.Tests.csproj", "{99E5069D-241F-48A6-8F29-404B4AED72BF}" - ProjectSection(ProjectDependencies) = postProject - {F9DF2357-81B4-4317-908E-512DA9395583} = {F9DF2357-81B4-4317-908E-512DA9395583} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{844166B0-B783-42B9-A507-D2F3A8DCC628}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console", "src\System.Console.csproj", "{F9DF2357-81B4-4317-908E-512DA9395583}" - ProjectSection(ProjectDependencies) = postProject - {9EB75B87-2BE5-48E5-8988-A0929CE6664E} = {9EB75B87-2BE5-48E5-8988-A0929CE6664E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console", "ref\System.Console.csproj", "{A998F8E4-797F-4852-8D38-CD322F637AA4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console", "ref\System.Console.csproj", "{9EB75B87-2BE5-48E5-8988-A0929CE6664E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console", "src\System.Console.csproj", "{7EAA30FF-8911-4427-BFAC-9FC8BF8B3606}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console.Manual.Tests", "tests\ManualTests\System.Console.Manual.Tests.csproj", "{E1A675DB-487B-4119-9F47-1E4EF38CF158}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Console.Tests", "tests\System.Console.Tests.csproj", "{3B84D3D5-57C0-47E6-B763-3D51BB62AD7B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Runtime.InteropServices.JavaScript", "..\System.Private.Runtime.InteropServices.JavaScript\src\System.Private.Runtime.InteropServices.JavaScript.csproj", "{BAA75C96-57D9-4EDF-8DDF-392DB08B2047}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8261A605-FCBF-4D54-AC09-5248EBF93158}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F454A4F9-AFA0-47F4-9690-75058B2C68DF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{7766AD72-71FF-45EF-B075-26509830EAF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E5663631-6394-476B-BEDE-CC4A2E4E3BAC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1761741D-BC95-446B-BA58-CC3B0B450298}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{71332B26-1FA2-4C2D-A17A-6F4309B99524}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{05EB75BC-0F7D-41FD-B4D9-04B646538F71}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {67E15C52-4FF6-4149-9D90-2DFF24EA01EA} = {1761741D-BC95-446B-BA58-CC3B0B450298} + {E1A675DB-487B-4119-9F47-1E4EF38CF158} = {1761741D-BC95-446B-BA58-CC3B0B450298} + {3B84D3D5-57C0-47E6-B763-3D51BB62AD7B} = {1761741D-BC95-446B-BA58-CC3B0B450298} + {844166B0-B783-42B9-A507-D2F3A8DCC628} = {71332B26-1FA2-4C2D-A17A-6F4309B99524} + {A998F8E4-797F-4852-8D38-CD322F637AA4} = {71332B26-1FA2-4C2D-A17A-6F4309B99524} + {F454A4F9-AFA0-47F4-9690-75058B2C68DF} = {71332B26-1FA2-4C2D-A17A-6F4309B99524} + {7766AD72-71FF-45EF-B075-26509830EAF9} = {71332B26-1FA2-4C2D-A17A-6F4309B99524} + {E5663631-6394-476B-BEDE-CC4A2E4E3BAC} = {71332B26-1FA2-4C2D-A17A-6F4309B99524} + {7EAA30FF-8911-4427-BFAC-9FC8BF8B3606} = {05EB75BC-0F7D-41FD-B4D9-04B646538F71} + {BAA75C96-57D9-4EDF-8DDF-392DB08B2047} = {05EB75BC-0F7D-41FD-B4D9-04B646538F71} + {ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B} = {05EB75BC-0F7D-41FD-B4D9-04B646538F71} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3ED7BCF1-34B9-49B7-9C25-0BC3304C0858}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3ED7BCF1-34B9-49B7-9C25-0BC3304C0858}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3ED7BCF1-34B9-49B7-9C25-0BC3304C0858}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3ED7BCF1-34B9-49B7-9C25-0BC3304C0858}.Release|Any CPU.Build.0 = Release|Any CPU - {99E5069D-241F-48A6-8F29-404B4AED72BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99E5069D-241F-48A6-8F29-404B4AED72BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99E5069D-241F-48A6-8F29-404B4AED72BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99E5069D-241F-48A6-8F29-404B4AED72BF}.Release|Any CPU.Build.0 = Release|Any CPU - {F9DF2357-81B4-4317-908E-512DA9395583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9DF2357-81B4-4317-908E-512DA9395583}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9DF2357-81B4-4317-908E-512DA9395583}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9DF2357-81B4-4317-908E-512DA9395583}.Release|Any CPU.Build.0 = Release|Any CPU - {9EB75B87-2BE5-48E5-8988-A0929CE6664E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EB75B87-2BE5-48E5-8988-A0929CE6664E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EB75B87-2BE5-48E5-8988-A0929CE6664E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EB75B87-2BE5-48E5-8988-A0929CE6664E}.Release|Any CPU.Build.0 = Release|Any CPU - {8261A605-FCBF-4D54-AC09-5248EBF93158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8261A605-FCBF-4D54-AC09-5248EBF93158}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8261A605-FCBF-4D54-AC09-5248EBF93158}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8261A605-FCBF-4D54-AC09-5248EBF93158}.Release|Any CPU.Build.0 = Release|Any CPU + {67E15C52-4FF6-4149-9D90-2DFF24EA01EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67E15C52-4FF6-4149-9D90-2DFF24EA01EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67E15C52-4FF6-4149-9D90-2DFF24EA01EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67E15C52-4FF6-4149-9D90-2DFF24EA01EA}.Release|Any CPU.Build.0 = Release|Any CPU + {844166B0-B783-42B9-A507-D2F3A8DCC628}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {844166B0-B783-42B9-A507-D2F3A8DCC628}.Debug|Any CPU.Build.0 = Debug|Any CPU + {844166B0-B783-42B9-A507-D2F3A8DCC628}.Release|Any CPU.ActiveCfg = Release|Any CPU + {844166B0-B783-42B9-A507-D2F3A8DCC628}.Release|Any CPU.Build.0 = Release|Any CPU + {A998F8E4-797F-4852-8D38-CD322F637AA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A998F8E4-797F-4852-8D38-CD322F637AA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A998F8E4-797F-4852-8D38-CD322F637AA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A998F8E4-797F-4852-8D38-CD322F637AA4}.Release|Any CPU.Build.0 = Release|Any CPU + {7EAA30FF-8911-4427-BFAC-9FC8BF8B3606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EAA30FF-8911-4427-BFAC-9FC8BF8B3606}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EAA30FF-8911-4427-BFAC-9FC8BF8B3606}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EAA30FF-8911-4427-BFAC-9FC8BF8B3606}.Release|Any CPU.Build.0 = Release|Any CPU + {E1A675DB-487B-4119-9F47-1E4EF38CF158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1A675DB-487B-4119-9F47-1E4EF38CF158}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1A675DB-487B-4119-9F47-1E4EF38CF158}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1A675DB-487B-4119-9F47-1E4EF38CF158}.Release|Any CPU.Build.0 = Release|Any CPU + {3B84D3D5-57C0-47E6-B763-3D51BB62AD7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B84D3D5-57C0-47E6-B763-3D51BB62AD7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B84D3D5-57C0-47E6-B763-3D51BB62AD7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B84D3D5-57C0-47E6-B763-3D51BB62AD7B}.Release|Any CPU.Build.0 = Release|Any CPU + {BAA75C96-57D9-4EDF-8DDF-392DB08B2047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAA75C96-57D9-4EDF-8DDF-392DB08B2047}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAA75C96-57D9-4EDF-8DDF-392DB08B2047}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAA75C96-57D9-4EDF-8DDF-392DB08B2047}.Release|Any CPU.Build.0 = Release|Any CPU + {F454A4F9-AFA0-47F4-9690-75058B2C68DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F454A4F9-AFA0-47F4-9690-75058B2C68DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F454A4F9-AFA0-47F4-9690-75058B2C68DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F454A4F9-AFA0-47F4-9690-75058B2C68DF}.Release|Any CPU.Build.0 = Release|Any CPU + {ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED2ED9D3-EC2E-4573-AFE6-46385CD3CE8B}.Release|Any CPU.Build.0 = Release|Any CPU + {7766AD72-71FF-45EF-B075-26509830EAF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7766AD72-71FF-45EF-B075-26509830EAF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7766AD72-71FF-45EF-B075-26509830EAF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7766AD72-71FF-45EF-B075-26509830EAF9}.Release|Any CPU.Build.0 = Release|Any CPU + {E5663631-6394-476B-BEDE-CC4A2E4E3BAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5663631-6394-476B-BEDE-CC4A2E4E3BAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5663631-6394-476B-BEDE-CC4A2E4E3BAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5663631-6394-476B-BEDE-CC4A2E4E3BAC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3ED7BCF1-34B9-49B7-9C25-0BC3304C0858} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {99E5069D-241F-48A6-8F29-404B4AED72BF} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F9DF2357-81B4-4317-908E-512DA9395583} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {9EB75B87-2BE5-48E5-8988-A0929CE6664E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {8261A605-FCBF-4D54-AC09-5248EBF93158} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2BF05491-08EF-445E-ADBA-4D0DF54C0B6A} + SolutionGuid = {3E14E904-00F2-414A-BCF1-0EB09A861A21} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Console/src/Resources/Strings.resx b/src/libraries/System.Console/src/Resources/Strings.resx index 6f16c49d115b..9e0151c9df0f 100644 --- a/src/libraries/System.Console/src/Resources/Strings.resx +++ b/src/libraries/System.Console/src/Resources/Strings.resx @@ -182,9 +182,6 @@ The process cannot access the file because it is being used by another process. - - Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader. - The ConsoleColor enum value was not defined on that enum. Please use a defined color from the enum. diff --git a/src/libraries/System.Console/src/System/ConsolePal.Android.cs b/src/libraries/System.Console/src/System/ConsolePal.Android.cs index 3586f64aff07..910a33ad8249 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.Android.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.Android.cs @@ -11,11 +11,11 @@ internal sealed unsafe class LogcatStream : ConsoleStream { public LogcatStream() : base(FileAccess.Write) {} - public override int Read(byte[] buffer, int offset, int count) => throw Error.GetReadNotSupported(); + public override int Read(Span buffer) => throw Error.GetReadNotSupported(); - public override unsafe void Write(byte[] buffer, int offset, int count) + public override unsafe void Write(ReadOnlySpan buffer) { - string log = ConsolePal.OutputEncoding.GetString(buffer, offset, count); + string log = ConsolePal.OutputEncoding.GetString(buffer); Interop.Logcat.AndroidLogPrint(Interop.Logcat.LogLevel.Info, "DOTNET", log); } } diff --git a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs index dd20b7040e9b..9dec2e221a86 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs @@ -1212,15 +1212,13 @@ private void AddKey(TermInfo.Database db, string extendedName, ConsoleKey key, b /// Reads data from the file descriptor into the buffer. /// The file descriptor. /// The buffer to read into. - /// The offset at which to start writing into the buffer. - /// The maximum number of bytes to read. /// The number of bytes read, or a negative value if there's an error. - internal static unsafe int Read(SafeFileHandle fd, byte[] buffer, int offset, int count) + internal static unsafe int Read(SafeFileHandle fd, Span buffer) { fixed (byte* bufPtr = buffer) { - int result = Interop.CheckIo(Interop.Sys.Read(fd, (byte*)bufPtr + offset, count)); - Debug.Assert(result <= count); + int result = Interop.CheckIo(Interop.Sys.Read(fd, bufPtr, buffer.Length)); + Debug.Assert(result <= buffer.Length); return result; } } @@ -1424,26 +1422,13 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - public override int Read(byte[] buffer, int offset, int count) - { - ValidateRead(buffer, offset, count); - - if (_useReadLine) - { - return ConsolePal.StdInReader.ReadLine(buffer, offset, count); - } - else - { - return ConsolePal.Read(_handle, buffer, offset, count); - } - } + public override int Read(Span buffer) => + _useReadLine ? + ConsolePal.StdInReader.ReadLine(buffer) : + ConsolePal.Read(_handle, buffer); - public override void Write(byte[] buffer, int offset, int count) - { - ValidateWrite(buffer, offset, count); - - ConsolePal.Write(_handle, buffer.AsSpan(offset, count)); - } + public override void Write(ReadOnlySpan buffer) => + ConsolePal.Write(_handle, buffer); public override void Flush() { diff --git a/src/libraries/System.Console/src/System/ConsolePal.WebAssembly.cs b/src/libraries/System.Console/src/System/ConsolePal.WebAssembly.cs index cbce7776d539..405326185ebb 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.WebAssembly.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.WebAssembly.cs @@ -29,15 +29,13 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - public override int Read(byte[] buffer, int offset, int count) => throw Error.GetReadNotSupported(); + public override int Read(Span buffer) => throw Error.GetReadNotSupported(); - public override unsafe void Write(byte[] buffer, int offset, int count) + public override unsafe void Write(ReadOnlySpan buffer) { - ValidateWrite(buffer, offset, count); - fixed (byte* bufPtr = buffer) { - Write(_handle, bufPtr + offset, count); + Write(_handle, bufPtr, buffer.Length); } } diff --git a/src/libraries/System.Console/src/System/ConsolePal.Windows.cs b/src/libraries/System.Console/src/System/ConsolePal.Windows.cs index 76edfe8512e8..78758905ea6a 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.Windows.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.Windows.cs @@ -1118,24 +1118,24 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - public override int Read(byte[] buffer, int offset, int count) + public override int Read(Span buffer) { - ValidateRead(buffer, offset, count); - - int bytesRead; - int errCode = ReadFileNative(_handle, buffer, offset, count, _isPipe, out bytesRead, _useFileAPIs); + int errCode = ReadFileNative(_handle, buffer, _isPipe, out int bytesRead, _useFileAPIs); if (Interop.Errors.ERROR_SUCCESS != errCode) + { throw Win32Marshal.GetExceptionForWin32Error(errCode); + } + return bytesRead; } - public override void Write(byte[] buffer, int offset, int count) + public override void Write(ReadOnlySpan buffer) { - ValidateWrite(buffer, offset, count); - - int errCode = WriteFileNative(_handle, buffer, offset, count, _useFileAPIs); + int errCode = WriteFileNative(_handle, buffer, _useFileAPIs); if (Interop.Errors.ERROR_SUCCESS != errCode) + { throw Win32Marshal.GetExceptionForWin32Error(errCode); + } } public override void Flush() @@ -1149,35 +1149,26 @@ public override void Flush() // world working set and to avoid requiring a reference to the // System.IO.FileSystem contract. - private static unsafe int ReadFileNative(IntPtr hFile, byte[] bytes, int offset, int count, bool isPipe, out int bytesRead, bool useFileAPIs) + private static unsafe int ReadFileNative(IntPtr hFile, Span buffer, bool isPipe, out int bytesRead, bool useFileAPIs) { - Debug.Assert(offset >= 0, "offset >= 0"); - Debug.Assert(count >= 0, "count >= 0"); - Debug.Assert(bytes != null, "bytes != null"); - // Don't corrupt memory when multiple threads are erroneously writing - // to this stream simultaneously. - if (bytes.Length - offset < count) - throw new IndexOutOfRangeException(SR.IndexOutOfRange_IORaceCondition); - - // You can't use the fixed statement on an array of length 0. - if (bytes.Length == 0) + if (buffer.IsEmpty) { bytesRead = 0; return Interop.Errors.ERROR_SUCCESS; } bool readSuccess; - fixed (byte* p = &bytes[0]) + fixed (byte* p = buffer) { if (useFileAPIs) { - readSuccess = (0 != Interop.Kernel32.ReadFile(hFile, p + offset, count, out bytesRead, IntPtr.Zero)); + readSuccess = (0 != Interop.Kernel32.ReadFile(hFile, p, buffer.Length, out bytesRead, IntPtr.Zero)); } else { // If the code page could be Unicode, we should use ReadConsole instead, e.g. int charsRead; - readSuccess = Interop.Kernel32.ReadConsole(hFile, p + offset, count / BytesPerWChar, out charsRead, IntPtr.Zero); + readSuccess = Interop.Kernel32.ReadConsole(hFile, p, buffer.Length / BytesPerWChar, out charsRead, IntPtr.Zero); bytesRead = charsRead * BytesPerWChar; } } @@ -1193,24 +1184,19 @@ private static unsafe int ReadFileNative(IntPtr hFile, byte[] bytes, int offset, return errorCode; } - private static unsafe int WriteFileNative(IntPtr hFile, byte[] bytes, int offset, int count, bool useFileAPIs) + private static unsafe int WriteFileNative(IntPtr hFile, ReadOnlySpan bytes, bool useFileAPIs) { - Debug.Assert(offset >= 0, "offset >= 0"); - Debug.Assert(count >= 0, "count >= 0"); - Debug.Assert(bytes != null, "bytes != null"); - Debug.Assert(bytes.Length >= offset + count, "bytes.Length >= offset + count"); - // You can't use the fixed statement on an array of length 0. - if (bytes.Length == 0) + if (bytes.IsEmpty) return Interop.Errors.ERROR_SUCCESS; bool writeSuccess; - fixed (byte* p = &bytes[0]) + fixed (byte* p = bytes) { if (useFileAPIs) { int numBytesWritten; - writeSuccess = (0 != Interop.Kernel32.WriteFile(hFile, p + offset, count, out numBytesWritten, IntPtr.Zero)); + writeSuccess = (0 != Interop.Kernel32.WriteFile(hFile, p, bytes.Length, out numBytesWritten, IntPtr.Zero)); // In some cases we have seen numBytesWritten returned that is twice count; // so we aren't asserting the value of it. See https://github.com/dotnet/runtime/issues/23776 } @@ -1223,8 +1209,8 @@ private static unsafe int WriteFileNative(IntPtr hFile, byte[] bytes, int offset // However, we do not need to worry about that because the StreamWriter in Console has // a much shorter buffer size anyway. int charsWritten; - writeSuccess = Interop.Kernel32.WriteConsole(hFile, p + offset, count / BytesPerWChar, out charsWritten, IntPtr.Zero); - Debug.Assert(!writeSuccess || count / BytesPerWChar == charsWritten); + writeSuccess = Interop.Kernel32.WriteConsole(hFile, p, bytes.Length / BytesPerWChar, out charsWritten, IntPtr.Zero); + Debug.Assert(!writeSuccess || bytes.Length / BytesPerWChar == charsWritten); } } if (writeSuccess) diff --git a/src/libraries/System.Console/src/System/ConsolePal.iOS.cs b/src/libraries/System.Console/src/System/ConsolePal.iOS.cs index 089ebf24fcf9..fa1f2d120a8c 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.iOS.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.iOS.cs @@ -10,15 +10,13 @@ internal sealed class NSLogStream : ConsoleStream { public NSLogStream() : base(FileAccess.Write) {} - public override int Read(byte[] buffer, int offset, int count) => throw Error.GetReadNotSupported(); + public override int Read(Span buffer) => throw Error.GetReadNotSupported(); - public override unsafe void Write(byte[] buffer, int offset, int count) + public override unsafe void Write(ReadOnlySpan buffer) { - ValidateWrite(buffer, offset, count); - fixed (byte* ptr = buffer) { - Interop.Sys.Log(ptr + offset, count); + Interop.Sys.Log(ptr, buffer.Length); } } } diff --git a/src/libraries/System.Console/src/System/IO/ConsoleStream.cs b/src/libraries/System.Console/src/System/IO/ConsoleStream.cs index 9fdc87da2f1d..935f565c7ed1 100644 --- a/src/libraries/System.Console/src/System/IO/ConsoleStream.cs +++ b/src/libraries/System.Console/src/System/IO/ConsoleStream.cs @@ -3,7 +3,6 @@ using System.Diagnostics; using System.Runtime.InteropServices; -using System.Text; namespace System.IO { @@ -21,37 +20,46 @@ internal ConsoleStream(FileAccess access) _canWrite = ((access & FileAccess.Write) == FileAccess.Write); } - protected override void Dispose(bool disposing) + public override void Write(byte[] buffer, int offset, int count) { - _canRead = false; - _canWrite = false; - base.Dispose(disposing); + ValidateWrite(buffer, offset, count); + Write(new ReadOnlySpan(buffer, offset, count)); } - public sealed override bool CanRead - { - get { return _canRead; } - } + public override void WriteByte(byte value) => Write(MemoryMarshal.CreateReadOnlySpan(ref value, 1)); - public sealed override bool CanWrite + public override int Read(byte[] buffer, int offset, int count) { - get { return _canWrite; } + ValidateRead(buffer, offset, count); + return Read(new Span(buffer, offset, count)); } - public sealed override bool CanSeek + public override int ReadByte() { - get { return false; } + byte b = 0; + int result = Read(MemoryMarshal.CreateSpan(ref b, 1)); + return result != 0 ? b : -1; } - public sealed override long Length + protected override void Dispose(bool disposing) { - get { throw Error.GetSeekNotSupported(); } + _canRead = false; + _canWrite = false; + base.Dispose(disposing); } + public sealed override bool CanRead => _canRead; + + public sealed override bool CanWrite => _canWrite; + + public sealed override bool CanSeek => false; + + public sealed override long Length => throw Error.GetSeekNotSupported(); + public sealed override long Position { - get { throw Error.GetSeekNotSupported(); } - set { throw Error.GetSeekNotSupported(); } + get => throw Error.GetSeekNotSupported(); + set => throw Error.GetSeekNotSupported(); } public override void Flush() @@ -59,28 +67,28 @@ public override void Flush() if (!CanWrite) throw Error.GetWriteNotSupported(); } - public sealed override void SetLength(long value) - { - throw Error.GetSeekNotSupported(); - } + public sealed override void SetLength(long value) => throw Error.GetSeekNotSupported(); - public sealed override long Seek(long offset, SeekOrigin origin) - { - throw Error.GetSeekNotSupported(); - } + public sealed override long Seek(long offset, SeekOrigin origin) => throw Error.GetSeekNotSupported(); protected void ValidateRead(byte[] buffer, int offset, int count) { ValidateBufferArguments(buffer, offset, count); - if (!_canRead) throw Error.GetReadNotSupported(); + if (!_canRead) + { + throw Error.GetReadNotSupported(); + } } protected void ValidateWrite(byte[] buffer, int offset, int count) { ValidateBufferArguments(buffer, offset, count); - if (!_canWrite) throw Error.GetWriteNotSupported(); + if (!_canWrite) + { + throw Error.GetWriteNotSupported(); + } } } } diff --git a/src/libraries/System.Console/src/System/IO/StdInReader.cs b/src/libraries/System.Console/src/System/IO/StdInReader.cs index 8b0cd2021ecf..7af76c629f08 100644 --- a/src/libraries/System.Console/src/System/IO/StdInReader.cs +++ b/src/libraries/System.Console/src/System/IO/StdInReader.cs @@ -93,9 +93,9 @@ internal unsafe int ReadStdin(byte* buffer, int bufferSize) return line; } - public int ReadLine(byte[] buffer, int offset, int count) + public int ReadLine(Span buffer) { - if (count == 0) + if (buffer.IsEmpty) { return 0; } @@ -114,11 +114,10 @@ public int ReadLine(byte[] buffer, int offset, int count) Encoder encoder = _bufferReadEncoder ??= _encoding.GetEncoder(); int bytesUsedTotal = 0; int charsUsedTotal = 0; - Span destination = buffer.AsSpan(offset, count); foreach (ReadOnlyMemory chunk in _readLineSB.GetChunks()) { - encoder.Convert(chunk.Span, destination, flush: false, out int charsUsed, out int bytesUsed, out bool completed); - destination = destination.Slice(bytesUsed); + encoder.Convert(chunk.Span, buffer, flush: false, out int charsUsed, out int bytesUsed, out bool completed); + buffer = buffer.Slice(bytesUsed); bytesUsedTotal += bytesUsed; charsUsedTotal += charsUsed; diff --git a/src/libraries/System.Console/src/System/IO/SyncTextReader.Unix.cs b/src/libraries/System.Console/src/System/IO/SyncTextReader.Unix.cs index 9e68d74c1b00..b2e5d36d7a23 100644 --- a/src/libraries/System.Console/src/System/IO/SyncTextReader.Unix.cs +++ b/src/libraries/System.Console/src/System/IO/SyncTextReader.Unix.cs @@ -40,7 +40,6 @@ public bool KeyAvailable } } - public int ReadLine(byte[] buffer, int offset, int count) - => Inner.ReadLine(buffer, offset, count); + public int ReadLine(Span buffer) => Inner.ReadLine(buffer); } } diff --git a/src/libraries/System.Console/src/System/TermInfo.cs b/src/libraries/System.Console/src/System/TermInfo.cs index d8e954d8c5e4..be84dbaf8366 100644 --- a/src/libraries/System.Console/src/System/TermInfo.cs +++ b/src/libraries/System.Console/src/System/TermInfo.cs @@ -262,10 +262,9 @@ private static bool TryOpen(string filePath, [NotNullWhen(true)] out SafeFileHan { throw new InvalidOperationException(SR.IO_TermInfoInvalid); } - int fileLen = (int)termInfoLength; - byte[] data = new byte[fileLen]; - if (ConsolePal.Read(fd, data, 0, fileLen) != fileLen) + byte[] data = new byte[(int)termInfoLength]; + if (ConsolePal.Read(fd, data) != data.Length) { throw new InvalidOperationException(SR.IO_TermInfoInvalid); } diff --git a/src/libraries/System.Data.Common/System.Data.Common.sln b/src/libraries/System.Data.Common/System.Data.Common.sln index 8466903d0826..c70eb8721636 100644 --- a/src/libraries/System.Data.Common/System.Data.Common.sln +++ b/src/libraries/System.Data.Common/System.Data.Common.sln @@ -1,60 +1,321 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common.Tests", "tests\System.Data.Common.Tests.csproj", "{B473F77D-4168-4123-932A-E88020B768FA}" - ProjectSection(ProjectDependencies) = postProject - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54} = {29EF8D53-8E84-4E49-B90F-5950A2FE7D54} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3DC1DF9-698A-4970-9A5E-AB946D6F763B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common", "src\System.Data.Common.csproj", "{29EF8D53-8E84-4E49-B90F-5950A2FE7D54}" - ProjectSection(ProjectDependencies) = postProject - {D2DB0D6F-F65E-4174-B31E-27DC03137118} = {D2DB0D6F-F65E-4174-B31E-27DC03137118} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common", "ref\System.Data.Common.csproj", "{D2DB0D6F-F65E-4174-B31E-27DC03137118}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{5305244F-C52B-4772-A13D-C034213F3833}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "..\System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj", "{4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{0FCF2BA6-A5B3-4E1C-A49A-424E77602313}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.TypeConverter", "..\System.ComponentModel.TypeConverter\src\System.ComponentModel.TypeConverter.csproj", "{0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8D9E22AB-D525-41A8-8F26-F656F306713E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common", "ref\System.Data.Common.csproj", "{F865C526-79F8-403B-B5E4-52A90ECE21E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common", "src\System.Data.Common.csproj", "{C3F9A601-07D8-43A3-A3CA-7A002358A102}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Common.Tests", "tests\System.Data.Common.Tests.csproj", "{BEBD7B5B-9544-42EB-B878-F009560CAAF4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A404332F-CCAA-4E22-94C1-635F7F19176F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{6E353933-8CBD-467D-8FF1-00133C3F2036}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{68D868F6-1311-47A2-9DDE-22B64B5FF85E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{09129981-6B0D-44C7-9F0A-AD2426106332}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BF66C27C-D1B1-4F86-A1E1-EDC63584E818}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{649CA543-288D-4A8B-AED3-E470DC7FF866}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2FBD1B5D-0E5B-4D8C-A228-48B428725D67}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{12B0E17A-6957-425E-98E1-5F245010893A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9A105AFB-AA36-46E1-BC68-6724F5644D0C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {C3F9A601-07D8-43A3-A3CA-7A002358A102} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {6E353933-8CBD-467D-8FF1-00133C3F2036} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {68D868F6-1311-47A2-9DDE-22B64B5FF85E} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {09129981-6B0D-44C7-9F0A-AD2426106332} = {2FBD1B5D-0E5B-4D8C-A228-48B428725D67} + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3} = {12B0E17A-6957-425E-98E1-5F245010893A} + {BEBD7B5B-9544-42EB-B878-F009560CAAF4} = {12B0E17A-6957-425E-98E1-5F245010893A} + {5305244F-C52B-4772-A13D-C034213F3833} = {9A105AFB-AA36-46E1-BC68-6724F5644D0C} + {F865C526-79F8-403B-B5E4-52A90ECE21E3} = {9A105AFB-AA36-46E1-BC68-6724F5644D0C} + {A404332F-CCAA-4E22-94C1-635F7F19176F} = {9A105AFB-AA36-46E1-BC68-6724F5644D0C} + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818} = {9A105AFB-AA36-46E1-BC68-6724F5644D0C} + {649CA543-288D-4A8B-AED3-E470DC7FF866} = {9A105AFB-AA36-46E1-BC68-6724F5644D0C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B473F77D-4168-4123-932A-E88020B768FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B473F77D-4168-4123-932A-E88020B768FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B473F77D-4168-4123-932A-E88020B768FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B473F77D-4168-4123-932A-E88020B768FA}.Release|Any CPU.Build.0 = Release|Any CPU - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54}.Release|Any CPU.Build.0 = Release|Any CPU - {D2DB0D6F-F65E-4174-B31E-27DC03137118}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2DB0D6F-F65E-4174-B31E-27DC03137118}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2DB0D6F-F65E-4174-B31E-27DC03137118}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2DB0D6F-F65E-4174-B31E-27DC03137118}.Release|Any CPU.Build.0 = Release|Any CPU - {8D9E22AB-D525-41A8-8F26-F656F306713E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D9E22AB-D525-41A8-8F26-F656F306713E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D9E22AB-D525-41A8-8F26-F656F306713E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D9E22AB-D525-41A8-8F26-F656F306713E}.Release|Any CPU.Build.0 = Release|Any CPU + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|Any CPU.ActiveCfg = Debug|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|Any CPU.Build.0 = Debug|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|x64.ActiveCfg = Debug|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|x64.Build.0 = Debug|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|x86.ActiveCfg = Debug|x86 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Debug|x86.Build.0 = Debug|x86 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|Any CPU.ActiveCfg = Release|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|Any CPU.Build.0 = Release|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|x64.ActiveCfg = Release|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|x64.Build.0 = Release|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|x86.ActiveCfg = Release|x86 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Release|x86.Build.0 = Release|x86 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|Any CPU.ActiveCfg = Checked|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|Any CPU.Build.0 = Checked|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|x64.ActiveCfg = Checked|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|x64.Build.0 = Checked|x64 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|x86.ActiveCfg = Checked|x86 + {F3DC1DF9-698A-4970-9A5E-AB946D6F763B}.Checked|x86.Build.0 = Checked|x86 + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|x64.ActiveCfg = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|x64.Build.0 = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|x86.ActiveCfg = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Debug|x86.Build.0 = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|Any CPU.Build.0 = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|x64.ActiveCfg = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|x64.Build.0 = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|x86.ActiveCfg = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Release|x86.Build.0 = Release|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Checked|x64.ActiveCfg = Debug|Any CPU + {0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}.Checked|x86.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|x64.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|x64.Build.0 = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|x86.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Debug|x86.Build.0 = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|Any CPU.Build.0 = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|x64.ActiveCfg = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|x64.Build.0 = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|x86.ActiveCfg = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Release|x86.Build.0 = Release|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Checked|x64.ActiveCfg = Debug|Any CPU + {5305244F-C52B-4772-A13D-C034213F3833}.Checked|x86.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|x64.Build.0 = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Debug|x86.Build.0 = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|Any CPU.Build.0 = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|x64.ActiveCfg = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|x64.Build.0 = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|x86.ActiveCfg = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Release|x86.Build.0 = Release|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Checked|x64.ActiveCfg = Debug|Any CPU + {4C5DDB34-2F67-40F2-9D59-A3CEBAE35BE5}.Checked|x86.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|x64.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|x64.Build.0 = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|x86.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Debug|x86.Build.0 = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|Any CPU.Build.0 = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|x64.ActiveCfg = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|x64.Build.0 = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|x86.ActiveCfg = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Release|x86.Build.0 = Release|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Checked|x64.ActiveCfg = Debug|Any CPU + {0FCF2BA6-A5B3-4E1C-A49A-424E77602313}.Checked|x86.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|x64.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|x64.Build.0 = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|x86.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Debug|x86.Build.0 = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|Any CPU.Build.0 = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|x64.ActiveCfg = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|x64.Build.0 = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|x86.ActiveCfg = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Release|x86.Build.0 = Release|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Checked|x64.ActiveCfg = Debug|Any CPU + {0AE3ABFE-6284-4119-A5DC-1844E6AB8E02}.Checked|x86.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|x64.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|x64.Build.0 = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Debug|x86.Build.0 = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|Any CPU.Build.0 = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|x64.ActiveCfg = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|x64.Build.0 = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|x86.ActiveCfg = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Release|x86.Build.0 = Release|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Checked|x64.ActiveCfg = Debug|Any CPU + {F865C526-79F8-403B-B5E4-52A90ECE21E3}.Checked|x86.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|x64.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|x64.Build.0 = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|x86.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Debug|x86.Build.0 = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|Any CPU.Build.0 = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|x64.ActiveCfg = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|x64.Build.0 = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|x86.ActiveCfg = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Release|x86.Build.0 = Release|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Checked|x64.ActiveCfg = Debug|Any CPU + {C3F9A601-07D8-43A3-A3CA-7A002358A102}.Checked|x86.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|x64.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|x64.Build.0 = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Debug|x86.Build.0 = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|Any CPU.Build.0 = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|x64.ActiveCfg = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|x64.Build.0 = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|x86.ActiveCfg = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Release|x86.Build.0 = Release|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Checked|x64.ActiveCfg = Debug|Any CPU + {BEBD7B5B-9544-42EB-B878-F009560CAAF4}.Checked|x86.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|x64.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|x64.Build.0 = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|x86.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Debug|x86.Build.0 = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|Any CPU.Build.0 = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|x64.ActiveCfg = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|x64.Build.0 = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|x86.ActiveCfg = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Release|x86.Build.0 = Release|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Checked|x64.ActiveCfg = Debug|Any CPU + {7AB121D2-0AAC-48E0-A834-6E220ECFEC4D}.Checked|x86.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|x64.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|x64.Build.0 = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|x86.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Debug|x86.Build.0 = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|Any CPU.Build.0 = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|x64.ActiveCfg = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|x64.Build.0 = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|x86.ActiveCfg = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Release|x86.Build.0 = Release|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Checked|x64.ActiveCfg = Debug|Any CPU + {A404332F-CCAA-4E22-94C1-635F7F19176F}.Checked|x86.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|x64.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|x64.Build.0 = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Debug|x86.Build.0 = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|Any CPU.Build.0 = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|x64.ActiveCfg = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|x64.Build.0 = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|x86.ActiveCfg = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Release|x86.Build.0 = Release|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Checked|x64.ActiveCfg = Debug|Any CPU + {6E353933-8CBD-467D-8FF1-00133C3F2036}.Checked|x86.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|x64.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|x64.Build.0 = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|x86.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Debug|x86.Build.0 = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|Any CPU.Build.0 = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|x64.ActiveCfg = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|x64.Build.0 = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|x86.ActiveCfg = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Release|x86.Build.0 = Release|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Checked|x64.ActiveCfg = Debug|Any CPU + {68D868F6-1311-47A2-9DDE-22B64B5FF85E}.Checked|x86.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|x64.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|x64.Build.0 = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|x86.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Debug|x86.Build.0 = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|Any CPU.Build.0 = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|x64.ActiveCfg = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|x64.Build.0 = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|x86.ActiveCfg = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Release|x86.Build.0 = Release|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Checked|x64.ActiveCfg = Debug|Any CPU + {09129981-6B0D-44C7-9F0A-AD2426106332}.Checked|x86.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|x64.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|x64.Build.0 = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|x86.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Debug|x86.Build.0 = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|Any CPU.Build.0 = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|x64.ActiveCfg = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|x64.Build.0 = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|x86.ActiveCfg = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Release|x86.Build.0 = Release|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Checked|x64.ActiveCfg = Debug|Any CPU + {BF66C27C-D1B1-4F86-A1E1-EDC63584E818}.Checked|x86.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|Any CPU.Build.0 = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|x64.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|x64.Build.0 = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|x86.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Debug|x86.Build.0 = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|Any CPU.ActiveCfg = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|Any CPU.Build.0 = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|x64.ActiveCfg = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|x64.Build.0 = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|x86.ActiveCfg = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Release|x86.Build.0 = Release|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Checked|x64.ActiveCfg = Debug|Any CPU + {649CA543-288D-4A8B-AED3-E470DC7FF866}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B473F77D-4168-4123-932A-E88020B768FA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {29EF8D53-8E84-4E49-B90F-5950A2FE7D54} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D2DB0D6F-F65E-4174-B31E-27DC03137118} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {8D9E22AB-D525-41A8-8F26-F656F306713E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51E2A4D2-7B34-4DC2-977E-557E9A3D42B6} + SolutionGuid = {C1241AC3-6D55-48A6-9502-C46F806889AE} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Data.Common/ref/System.Data.Common.cs b/src/libraries/System.Data.Common/ref/System.Data.Common.cs index 8541ef63bbc0..423e82d28d8d 100644 --- a/src/libraries/System.Data.Common/ref/System.Data.Common.cs +++ b/src/libraries/System.Data.Common/ref/System.Data.Common.cs @@ -1259,9 +1259,9 @@ public partial interface IDataRecord object this[string name] { get; } bool GetBoolean(int i); byte GetByte(int i); - long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length); + long GetBytes(int i, long fieldOffset, byte[]? buffer, int bufferoffset, int length); char GetChar(int i); - long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length); + long GetChars(int i, long fieldoffset, char[]? buffer, int bufferoffset, int length); System.Data.IDataReader GetData(int i); string GetDataTypeName(int i); System.DateTime GetDateTime(int i); @@ -2202,9 +2202,9 @@ public abstract partial class DbDataRecord : System.ComponentModel.ICustomTypeDe public abstract object this[string name] { get; } public abstract bool GetBoolean(int i); public abstract byte GetByte(int i); - public abstract long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length); + public abstract long GetBytes(int i, long dataIndex, byte[]? buffer, int bufferIndex, int length); public abstract char GetChar(int i); - public abstract long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length); + public abstract long GetChars(int i, long dataIndex, char[]? buffer, int bufferIndex, int length); public System.Data.IDataReader GetData(int i) { throw null; } public abstract string GetDataTypeName(int i); public abstract System.DateTime GetDateTime(int i); diff --git a/src/libraries/System.Data.Common/src/System/Data/Common/DataRecordInternal.cs b/src/libraries/System.Data.Common/src/System/Data/Common/DataRecordInternal.cs index 7c0989201be8..0bad614a4304 100644 --- a/src/libraries/System.Data.Common/src/System/Data/Common/DataRecordInternal.cs +++ b/src/libraries/System.Data.Common/src/System/Data/Common/DataRecordInternal.cs @@ -100,7 +100,7 @@ public override byte GetByte(int i) return ((byte)_values[i]); } - public override long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length) + public override long GetBytes(int i, long dataIndex, byte[]? buffer, int bufferIndex, int length) { int cbytes = 0; int ndataIndex; @@ -170,7 +170,7 @@ public override long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIn public override char GetChar(int i) => ((string)_values[i])[0]; - public override long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length) + public override long GetChars(int i, long dataIndex, char[]? buffer, int bufferIndex, int length) { // if the object doesn't contain a char[] then the user will get an exception string s = (string)_values[i]; diff --git a/src/libraries/System.Data.Common/src/System/Data/Common/DbDataRecord.cs b/src/libraries/System.Data.Common/src/System/Data/Common/DbDataRecord.cs index 189e17610ac7..605045fe5b63 100644 --- a/src/libraries/System.Data.Common/src/System/Data/Common/DbDataRecord.cs +++ b/src/libraries/System.Data.Common/src/System/Data/Common/DbDataRecord.cs @@ -19,11 +19,11 @@ public abstract class DbDataRecord : ICustomTypeDescriptor, IDataRecord public abstract byte GetByte(int i); - public abstract long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length); + public abstract long GetBytes(int i, long dataIndex, byte[]? buffer, int bufferIndex, int length); public abstract char GetChar(int i); - public abstract long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length); + public abstract long GetChars(int i, long dataIndex, char[]? buffer, int bufferIndex, int length); public IDataReader GetData(int i) => GetDbDataReader(i); diff --git a/src/libraries/System.Data.Common/src/System/Data/IDataRecord.cs b/src/libraries/System.Data.Common/src/System/Data/IDataRecord.cs index 2563e75aff3b..8dad2b2c18b1 100644 --- a/src/libraries/System.Data.Common/src/System/Data/IDataRecord.cs +++ b/src/libraries/System.Data.Common/src/System/Data/IDataRecord.cs @@ -16,9 +16,9 @@ public interface IDataRecord int GetOrdinal(string name); bool GetBoolean(int i); byte GetByte(int i); - long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length); + long GetBytes(int i, long fieldOffset, byte[]? buffer, int bufferoffset, int length); char GetChar(int i); - long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length); + long GetChars(int i, long fieldoffset, char[]? buffer, int bufferoffset, int length); Guid GetGuid(int i); short GetInt16(int i); int GetInt32(int i); diff --git a/src/libraries/System.Data.DataSetExtensions/System.Data.DataSetExtensions.sln b/src/libraries/System.Data.DataSetExtensions/System.Data.DataSetExtensions.sln index ed7b88edebc5..887acb7e703e 100644 --- a/src/libraries/System.Data.DataSetExtensions/System.Data.DataSetExtensions.sln +++ b/src/libraries/System.Data.DataSetExtensions/System.Data.DataSetExtensions.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions.Tests", "tests\System.Data.DataSetExtensions.Tests.csproj", "{2B38992F-9979-485F-B104-38C476D0B706}" - ProjectSection(ProjectDependencies) = postProject - {50D18478-BE75-4F54-8080-A5C3047D776B} = {50D18478-BE75-4F54-8080-A5C3047D776B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{09677ECF-3068-472F-B9CF-43E1E4F081D8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions", "src\System.Data.DataSetExtensions.csproj", "{50D18478-BE75-4F54-8080-A5C3047D776B}" - ProjectSection(ProjectDependencies) = postProject - {50A5A8BC-C6A9-4000-8B52-667BEE00459D} = {50A5A8BC-C6A9-4000-8B52-667BEE00459D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{8F257432-F9E5-41F4-9D5E-8435E8D108D2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions", "ref\System.Data.DataSetExtensions.csproj", "{50A5A8BC-C6A9-4000-8B52-667BEE00459D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions", "ref\System.Data.DataSetExtensions.csproj", "{8A0AA93A-ED36-4384-827E-F4D6E1E71B24}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions", "src\System.Data.DataSetExtensions.csproj", "{5817F83A-8819-420F-B056-047D6515A02C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.DataSetExtensions.Tests", "tests\System.Data.DataSetExtensions.Tests.csproj", "{40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{657BEF08-3BC4-47E2-A4A3-D59704D9A26B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1427FFC7-99E8-47B9-BE94-2FC03B9792E7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9277BDD6-3AD3-4440-A596-8268D040F277}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{62E71EEB-3918-4CF7-92F1-681F46211A9B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CAA73749-CBE9-497C-BE13-A15C3BA8EFD3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7F0C0671-7588-4AF4-8EDF-1F50B9694750}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{87CA013D-0B77-47E9-85FE-4937AFE9B011}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5640B497-0274-40DE-9E8A-9FC326DB9056}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {09677ECF-3068-472F-B9CF-43E1E4F081D8} = {7F0C0671-7588-4AF4-8EDF-1F50B9694750} + {40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A} = {7F0C0671-7588-4AF4-8EDF-1F50B9694750} + {8F257432-F9E5-41F4-9D5E-8435E8D108D2} = {87CA013D-0B77-47E9-85FE-4937AFE9B011} + {8A0AA93A-ED36-4384-827E-F4D6E1E71B24} = {87CA013D-0B77-47E9-85FE-4937AFE9B011} + {657BEF08-3BC4-47E2-A4A3-D59704D9A26B} = {87CA013D-0B77-47E9-85FE-4937AFE9B011} + {62E71EEB-3918-4CF7-92F1-681F46211A9B} = {87CA013D-0B77-47E9-85FE-4937AFE9B011} + {CAA73749-CBE9-497C-BE13-A15C3BA8EFD3} = {87CA013D-0B77-47E9-85FE-4937AFE9B011} + {5817F83A-8819-420F-B056-047D6515A02C} = {5640B497-0274-40DE-9E8A-9FC326DB9056} + {9277BDD6-3AD3-4440-A596-8268D040F277} = {5640B497-0274-40DE-9E8A-9FC326DB9056} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2B38992F-9979-485F-B104-38C476D0B706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B38992F-9979-485F-B104-38C476D0B706}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B38992F-9979-485F-B104-38C476D0B706}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B38992F-9979-485F-B104-38C476D0B706}.Release|Any CPU.Build.0 = Release|Any CPU - {50D18478-BE75-4F54-8080-A5C3047D776B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50D18478-BE75-4F54-8080-A5C3047D776B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50D18478-BE75-4F54-8080-A5C3047D776B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50D18478-BE75-4F54-8080-A5C3047D776B}.Release|Any CPU.Build.0 = Release|Any CPU - {50A5A8BC-C6A9-4000-8B52-667BEE00459D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50A5A8BC-C6A9-4000-8B52-667BEE00459D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50A5A8BC-C6A9-4000-8B52-667BEE00459D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50A5A8BC-C6A9-4000-8B52-667BEE00459D}.Release|Any CPU.Build.0 = Release|Any CPU - {1427FFC7-99E8-47B9-BE94-2FC03B9792E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1427FFC7-99E8-47B9-BE94-2FC03B9792E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1427FFC7-99E8-47B9-BE94-2FC03B9792E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1427FFC7-99E8-47B9-BE94-2FC03B9792E7}.Release|Any CPU.Build.0 = Release|Any CPU + {09677ECF-3068-472F-B9CF-43E1E4F081D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09677ECF-3068-472F-B9CF-43E1E4F081D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09677ECF-3068-472F-B9CF-43E1E4F081D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09677ECF-3068-472F-B9CF-43E1E4F081D8}.Release|Any CPU.Build.0 = Release|Any CPU + {8F257432-F9E5-41F4-9D5E-8435E8D108D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F257432-F9E5-41F4-9D5E-8435E8D108D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F257432-F9E5-41F4-9D5E-8435E8D108D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F257432-F9E5-41F4-9D5E-8435E8D108D2}.Release|Any CPU.Build.0 = Release|Any CPU + {8A0AA93A-ED36-4384-827E-F4D6E1E71B24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A0AA93A-ED36-4384-827E-F4D6E1E71B24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A0AA93A-ED36-4384-827E-F4D6E1E71B24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A0AA93A-ED36-4384-827E-F4D6E1E71B24}.Release|Any CPU.Build.0 = Release|Any CPU + {5817F83A-8819-420F-B056-047D6515A02C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5817F83A-8819-420F-B056-047D6515A02C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5817F83A-8819-420F-B056-047D6515A02C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5817F83A-8819-420F-B056-047D6515A02C}.Release|Any CPU.Build.0 = Release|Any CPU + {40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40D58ACE-1A94-4D4F-8829-4ABC8A7B5B0A}.Release|Any CPU.Build.0 = Release|Any CPU + {657BEF08-3BC4-47E2-A4A3-D59704D9A26B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {657BEF08-3BC4-47E2-A4A3-D59704D9A26B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {657BEF08-3BC4-47E2-A4A3-D59704D9A26B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {657BEF08-3BC4-47E2-A4A3-D59704D9A26B}.Release|Any CPU.Build.0 = Release|Any CPU + {9277BDD6-3AD3-4440-A596-8268D040F277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9277BDD6-3AD3-4440-A596-8268D040F277}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9277BDD6-3AD3-4440-A596-8268D040F277}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9277BDD6-3AD3-4440-A596-8268D040F277}.Release|Any CPU.Build.0 = Release|Any CPU + {62E71EEB-3918-4CF7-92F1-681F46211A9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62E71EEB-3918-4CF7-92F1-681F46211A9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62E71EEB-3918-4CF7-92F1-681F46211A9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62E71EEB-3918-4CF7-92F1-681F46211A9B}.Release|Any CPU.Build.0 = Release|Any CPU + {CAA73749-CBE9-497C-BE13-A15C3BA8EFD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAA73749-CBE9-497C-BE13-A15C3BA8EFD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAA73749-CBE9-497C-BE13-A15C3BA8EFD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAA73749-CBE9-497C-BE13-A15C3BA8EFD3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2B38992F-9979-485F-B104-38C476D0B706} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {50D18478-BE75-4F54-8080-A5C3047D776B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {50A5A8BC-C6A9-4000-8B52-667BEE00459D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {1427FFC7-99E8-47B9-BE94-2FC03B9792E7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {63C824F4-CE81-403D-BA02-4D3AE20B3A9E} + SolutionGuid = {75CB77F6-4A71-40F5-84E9-44DC5ABC6B4B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Data.Odbc/System.Data.Odbc.sln b/src/libraries/System.Data.Odbc/System.Data.Odbc.sln index 331320fd3a43..7d1b23761e63 100644 --- a/src/libraries/System.Data.Odbc/System.Data.Odbc.sln +++ b/src/libraries/System.Data.Odbc/System.Data.Odbc.sln @@ -1,60 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc.Tests", "tests\System.Data.Odbc.Tests.csproj", "{F3E72F35-0351-4D67-2209-725BCAD807BA}" - ProjectSection(ProjectDependencies) = postProject - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0} = {7BAD100F-AD6B-490A-AF7C-8E3854E812C0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{04309507-4EF4-4B93-9C4C-B2B538227C65}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "src\System.Data.Odbc.csproj", "{7BAD100F-AD6B-490A-AF7C-8E3854E812C0}" - ProjectSection(ProjectDependencies) = postProject - {D589374B-3331-4660-8DFB-512D66F8EC63} = {D589374B-3331-4660-8DFB-512D66F8EC63} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{60C41FE0-6923-4794-8AD8-6839DBC92329}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "ref\System.Data.Odbc.csproj", "{D589374B-3331-4660-8DFB-512D66F8EC63}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "ref\System.Data.Odbc.csproj", "{531EA13B-CADA-4EBF-840B-4CE996247317}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "src\System.Data.Odbc.csproj", "{EDE27BD9-9134-4118-94BD-C9782811684D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc.Tests", "tests\System.Data.Odbc.Tests.csproj", "{B0451507-A304-47CB-B14F-257E44B8AC18}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9850C6FD-DC3E-4568-97CC-6B14DF58C232}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3B83B797-AB71-4C80-A21B-5D65D317A96C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F0E1F779-C711-4AA0-A938-BA1EB1D22ACE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3EEBB4A0-712B-4937-A716-248CC4BAFF9B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{A669518C-2F93-47EC-BB1C-6A90B76E7468}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encoding.CodePages", "..\System.Text.Encoding.CodePages\src\System.Text.Encoding.CodePages.csproj", "{BD3A8348-A2AC-468A-B8D9-B639190B0FD8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{AF7E77CA-5A6B-429B-BC34-1857F75FD0C0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9780DE3F-B510-4678-9D22-5A4E7E4AF826}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4391B6E4-102E-47F3-B845-EA43D91C75E5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {04309507-4EF4-4B93-9C4C-B2B538227C65} = {AF7E77CA-5A6B-429B-BC34-1857F75FD0C0} + {B0451507-A304-47CB-B14F-257E44B8AC18} = {AF7E77CA-5A6B-429B-BC34-1857F75FD0C0} + {60C41FE0-6923-4794-8AD8-6839DBC92329} = {9780DE3F-B510-4678-9D22-5A4E7E4AF826} + {531EA13B-CADA-4EBF-840B-4CE996247317} = {9780DE3F-B510-4678-9D22-5A4E7E4AF826} + {9850C6FD-DC3E-4568-97CC-6B14DF58C232} = {9780DE3F-B510-4678-9D22-5A4E7E4AF826} + {3EEBB4A0-712B-4937-A716-248CC4BAFF9B} = {9780DE3F-B510-4678-9D22-5A4E7E4AF826} + {A669518C-2F93-47EC-BB1C-6A90B76E7468} = {9780DE3F-B510-4678-9D22-5A4E7E4AF826} + {EDE27BD9-9134-4118-94BD-C9782811684D} = {4391B6E4-102E-47F3-B845-EA43D91C75E5} + {F0E1F779-C711-4AA0-A938-BA1EB1D22ACE} = {4391B6E4-102E-47F3-B845-EA43D91C75E5} + {BD3A8348-A2AC-468A-B8D9-B639190B0FD8} = {4391B6E4-102E-47F3-B845-EA43D91C75E5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F3E72F35-0351-4D67-2209-725BCAD807BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3E72F35-0351-4D67-2209-725BCAD807BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3E72F35-0351-4D67-2209-725BCAD807BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3E72F35-0351-4D67-2209-725BCAD807BA}.Release|Any CPU.Build.0 = Release|Any CPU - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0}.Release|Any CPU.Build.0 = Release|Any CPU - {D589374B-3331-4660-8DFB-512D66F8EC63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D589374B-3331-4660-8DFB-512D66F8EC63}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D589374B-3331-4660-8DFB-512D66F8EC63}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D589374B-3331-4660-8DFB-512D66F8EC63}.Release|Any CPU.Build.0 = Release|Any CPU - {3B83B797-AB71-4C80-A21B-5D65D317A96C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B83B797-AB71-4C80-A21B-5D65D317A96C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B83B797-AB71-4C80-A21B-5D65D317A96C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B83B797-AB71-4C80-A21B-5D65D317A96C}.Release|Any CPU.Build.0 = Release|Any CPU + {04309507-4EF4-4B93-9C4C-B2B538227C65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04309507-4EF4-4B93-9C4C-B2B538227C65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04309507-4EF4-4B93-9C4C-B2B538227C65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04309507-4EF4-4B93-9C4C-B2B538227C65}.Release|Any CPU.Build.0 = Release|Any CPU + {60C41FE0-6923-4794-8AD8-6839DBC92329}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60C41FE0-6923-4794-8AD8-6839DBC92329}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60C41FE0-6923-4794-8AD8-6839DBC92329}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60C41FE0-6923-4794-8AD8-6839DBC92329}.Release|Any CPU.Build.0 = Release|Any CPU + {531EA13B-CADA-4EBF-840B-4CE996247317}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {531EA13B-CADA-4EBF-840B-4CE996247317}.Debug|Any CPU.Build.0 = Debug|Any CPU + {531EA13B-CADA-4EBF-840B-4CE996247317}.Release|Any CPU.ActiveCfg = Release|Any CPU + {531EA13B-CADA-4EBF-840B-4CE996247317}.Release|Any CPU.Build.0 = Release|Any CPU + {EDE27BD9-9134-4118-94BD-C9782811684D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDE27BD9-9134-4118-94BD-C9782811684D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDE27BD9-9134-4118-94BD-C9782811684D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDE27BD9-9134-4118-94BD-C9782811684D}.Release|Any CPU.Build.0 = Release|Any CPU + {B0451507-A304-47CB-B14F-257E44B8AC18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0451507-A304-47CB-B14F-257E44B8AC18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0451507-A304-47CB-B14F-257E44B8AC18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0451507-A304-47CB-B14F-257E44B8AC18}.Release|Any CPU.Build.0 = Release|Any CPU + {9850C6FD-DC3E-4568-97CC-6B14DF58C232}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9850C6FD-DC3E-4568-97CC-6B14DF58C232}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9850C6FD-DC3E-4568-97CC-6B14DF58C232}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9850C6FD-DC3E-4568-97CC-6B14DF58C232}.Release|Any CPU.Build.0 = Release|Any CPU + {F0E1F779-C711-4AA0-A938-BA1EB1D22ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0E1F779-C711-4AA0-A938-BA1EB1D22ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0E1F779-C711-4AA0-A938-BA1EB1D22ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0E1F779-C711-4AA0-A938-BA1EB1D22ACE}.Release|Any CPU.Build.0 = Release|Any CPU + {3EEBB4A0-712B-4937-A716-248CC4BAFF9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3EEBB4A0-712B-4937-A716-248CC4BAFF9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3EEBB4A0-712B-4937-A716-248CC4BAFF9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3EEBB4A0-712B-4937-A716-248CC4BAFF9B}.Release|Any CPU.Build.0 = Release|Any CPU + {A669518C-2F93-47EC-BB1C-6A90B76E7468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A669518C-2F93-47EC-BB1C-6A90B76E7468}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A669518C-2F93-47EC-BB1C-6A90B76E7468}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A669518C-2F93-47EC-BB1C-6A90B76E7468}.Release|Any CPU.Build.0 = Release|Any CPU + {BD3A8348-A2AC-468A-B8D9-B639190B0FD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD3A8348-A2AC-468A-B8D9-B639190B0FD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD3A8348-A2AC-468A-B8D9-B639190B0FD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD3A8348-A2AC-468A-B8D9-B639190B0FD8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F3E72F35-0351-4D67-2209-725BCAD807BA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7BAD100F-AD6B-490A-AF7C-8E3854E812C0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D589374B-3331-4660-8DFB-512D66F8EC63} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3B83B797-AB71-4C80-A21B-5D65D317A96C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {57A3CDB1-B4C0-43A9-85CB-537EE69CD727} + SolutionGuid = {D222D648-ABA4-4D02-9230-A2B2CC3F3C39} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj index 87ad725689c7..20d918a90a12 100644 --- a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +++ b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj @@ -114,7 +114,7 @@ - + diff --git a/src/libraries/System.Data.OleDb/System.Data.Oledb.sln b/src/libraries/System.Data.OleDb/System.Data.Oledb.sln index 3c9cdcabc4ae..eab6f9c8292d 100644 --- a/src/libraries/System.Data.OleDb/System.Data.Oledb.sln +++ b/src/libraries/System.Data.OleDb/System.Data.Oledb.sln @@ -1,60 +1,198 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb.Tests", "tests\System.Data.OleDb.Tests.csproj", "{73C7A14F-C3C5-44EA-AB02-05BFBA55722C}" - ProjectSection(ProjectDependencies) = postProject - {D909B69D-8F3B-4551-A355-8FFF6A308CF6} = {D909B69D-8F3B-4551-A355-8FFF6A308CF6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{30142600-D924-4FDC-9A98-D621C3A2CCEA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb", "src\System.Data.OleDb.csproj", "{D909B69D-8F3B-4551-A355-8FFF6A308CF6}" - ProjectSection(ProjectDependencies) = postProject - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78} = {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{A44A98A9-0FF4-40C2-A85B-F57E7BBA6621}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb", "ref\System.Data.OleDb.csproj", "{EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{B487B420-3D36-41E2-8989-3D4FF9F78A61}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{048AD79E-A0A9-4C0E-8942-4778BBE4B2F1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{636E099B-BFAB-4C0E-B9D8-09BB1FE85B45}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb", "ref\System.Data.OleDb.csproj", "{55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{474DBDE9-7887-46D0-A2BF-EB531D16B958}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb", "src\System.Data.OleDb.csproj", "{9C557B87-DEE3-4B28-A82D-796418B3F608}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.OleDb.Tests", "tests\System.Data.OleDb.Tests.csproj", "{84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "..\System.Diagnostics.PerformanceCounter\ref\System.Diagnostics.PerformanceCounter.csproj", "{F5BFD2E9-5399-4D16-901A-554E1DF2D6E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "..\System.Diagnostics.PerformanceCounter\src\System.Diagnostics.PerformanceCounter.csproj", "{362A9152-D46A-4DD0-8EB7-D36FC95D1AF1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{C4B1668A-2512-4832-A298-3A10230C8B82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{777B3BFD-934B-4E69-84F6-1F8E1210998E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{86F4BEE6-73B9-4788-8076-D01C4A1D9A1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{31AE7C18-9A29-4F1A-BE6E-6907CB954285}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E4C9D7F9-D215-4F11-8D33-17611FE5D8F4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{EF8D1526-9463-401B-9EAE-D4B98C86E046}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{15628477-9D25-41FA-81B0-59D43D1363F4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{C73C11A5-863A-440D-B568-00CA5E7C9DA0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{877B4329-854A-412F-B631-6315D77F9C8A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{155BD2D0-E9F1-4207-A82B-1C82B3683C7B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{A99032CC-E819-436D-8A27-D413E8445E1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{D7C9E59C-0B7B-491E-9FC5-63A29290EE06}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{A3AC9584-763B-4686-B6D8-49140FC62EC4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{37CB0B5C-86A4-4179-B507-862A3DE45CF0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{C2E12295-5485-4976-B0FA-D2621787D36A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AB098FBC-5608-42C3-BC77-27EA6244894C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {30142600-D924-4FDC-9A98-D621C3A2CCEA} = {37CB0B5C-86A4-4179-B507-862A3DE45CF0} + {84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A} = {37CB0B5C-86A4-4179-B507-862A3DE45CF0} + {A44A98A9-0FF4-40C2-A85B-F57E7BBA6621} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {048AD79E-A0A9-4C0E-8942-4778BBE4B2F1} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {F5BFD2E9-5399-4D16-901A-554E1DF2D6E1} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {C4B1668A-2512-4832-A298-3A10230C8B82} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {86F4BEE6-73B9-4788-8076-D01C4A1D9A1B} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {E4C9D7F9-D215-4F11-8D33-17611FE5D8F4} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {EF8D1526-9463-401B-9EAE-D4B98C86E046} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {C73C11A5-863A-440D-B568-00CA5E7C9DA0} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {155BD2D0-E9F1-4207-A82B-1C82B3683C7B} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {D7C9E59C-0B7B-491E-9FC5-63A29290EE06} = {C2E12295-5485-4976-B0FA-D2621787D36A} + {B487B420-3D36-41E2-8989-3D4FF9F78A61} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {636E099B-BFAB-4C0E-B9D8-09BB1FE85B45} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {9C557B87-DEE3-4B28-A82D-796418B3F608} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {362A9152-D46A-4DD0-8EB7-D36FC95D1AF1} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {777B3BFD-934B-4E69-84F6-1F8E1210998E} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {31AE7C18-9A29-4F1A-BE6E-6907CB954285} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {15628477-9D25-41FA-81B0-59D43D1363F4} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {877B4329-854A-412F-B631-6315D77F9C8A} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {A99032CC-E819-436D-8A27-D413E8445E1B} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + {A3AC9584-763B-4686-B6D8-49140FC62EC4} = {AB098FBC-5608-42C3-BC77-27EA6244894C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73C7A14F-C3C5-44EA-AB02-05BFBA55722C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73C7A14F-C3C5-44EA-AB02-05BFBA55722C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73C7A14F-C3C5-44EA-AB02-05BFBA55722C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73C7A14F-C3C5-44EA-AB02-05BFBA55722C}.Release|Any CPU.Build.0 = Release|Any CPU - {D909B69D-8F3B-4551-A355-8FFF6A308CF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D909B69D-8F3B-4551-A355-8FFF6A308CF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D909B69D-8F3B-4551-A355-8FFF6A308CF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D909B69D-8F3B-4551-A355-8FFF6A308CF6}.Release|Any CPU.Build.0 = Release|Any CPU - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78}.Release|Any CPU.Build.0 = Release|Any CPU - {474DBDE9-7887-46D0-A2BF-EB531D16B958}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {474DBDE9-7887-46D0-A2BF-EB531D16B958}.Debug|Any CPU.Build.0 = Debug|Any CPU - {474DBDE9-7887-46D0-A2BF-EB531D16B958}.Release|Any CPU.ActiveCfg = Release|Any CPU - {474DBDE9-7887-46D0-A2BF-EB531D16B958}.Release|Any CPU.Build.0 = Release|Any CPU + {30142600-D924-4FDC-9A98-D621C3A2CCEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30142600-D924-4FDC-9A98-D621C3A2CCEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30142600-D924-4FDC-9A98-D621C3A2CCEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30142600-D924-4FDC-9A98-D621C3A2CCEA}.Release|Any CPU.Build.0 = Release|Any CPU + {A44A98A9-0FF4-40C2-A85B-F57E7BBA6621}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A44A98A9-0FF4-40C2-A85B-F57E7BBA6621}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A44A98A9-0FF4-40C2-A85B-F57E7BBA6621}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A44A98A9-0FF4-40C2-A85B-F57E7BBA6621}.Release|Any CPU.Build.0 = Release|Any CPU + {B487B420-3D36-41E2-8989-3D4FF9F78A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B487B420-3D36-41E2-8989-3D4FF9F78A61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B487B420-3D36-41E2-8989-3D4FF9F78A61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B487B420-3D36-41E2-8989-3D4FF9F78A61}.Release|Any CPU.Build.0 = Release|Any CPU + {048AD79E-A0A9-4C0E-8942-4778BBE4B2F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {048AD79E-A0A9-4C0E-8942-4778BBE4B2F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {048AD79E-A0A9-4C0E-8942-4778BBE4B2F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {048AD79E-A0A9-4C0E-8942-4778BBE4B2F1}.Release|Any CPU.Build.0 = Release|Any CPU + {636E099B-BFAB-4C0E-B9D8-09BB1FE85B45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {636E099B-BFAB-4C0E-B9D8-09BB1FE85B45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {636E099B-BFAB-4C0E-B9D8-09BB1FE85B45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {636E099B-BFAB-4C0E-B9D8-09BB1FE85B45}.Release|Any CPU.Build.0 = Release|Any CPU + {55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55F3CDEC-EA5D-4483-AD1A-47A0DC4B5222}.Release|Any CPU.Build.0 = Release|Any CPU + {9C557B87-DEE3-4B28-A82D-796418B3F608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C557B87-DEE3-4B28-A82D-796418B3F608}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C557B87-DEE3-4B28-A82D-796418B3F608}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C557B87-DEE3-4B28-A82D-796418B3F608}.Release|Any CPU.Build.0 = Release|Any CPU + {84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84CF0BC6-CFDF-4A19-AA48-0F28FB11BC3A}.Release|Any CPU.Build.0 = Release|Any CPU + {F5BFD2E9-5399-4D16-901A-554E1DF2D6E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5BFD2E9-5399-4D16-901A-554E1DF2D6E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5BFD2E9-5399-4D16-901A-554E1DF2D6E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5BFD2E9-5399-4D16-901A-554E1DF2D6E1}.Release|Any CPU.Build.0 = Release|Any CPU + {362A9152-D46A-4DD0-8EB7-D36FC95D1AF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {362A9152-D46A-4DD0-8EB7-D36FC95D1AF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {362A9152-D46A-4DD0-8EB7-D36FC95D1AF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {362A9152-D46A-4DD0-8EB7-D36FC95D1AF1}.Release|Any CPU.Build.0 = Release|Any CPU + {C4B1668A-2512-4832-A298-3A10230C8B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4B1668A-2512-4832-A298-3A10230C8B82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4B1668A-2512-4832-A298-3A10230C8B82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4B1668A-2512-4832-A298-3A10230C8B82}.Release|Any CPU.Build.0 = Release|Any CPU + {E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9C139C8-4D83-45C4-A0F9-941FEC0E1B1A}.Release|Any CPU.Build.0 = Release|Any CPU + {777B3BFD-934B-4E69-84F6-1F8E1210998E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {777B3BFD-934B-4E69-84F6-1F8E1210998E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {777B3BFD-934B-4E69-84F6-1F8E1210998E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {777B3BFD-934B-4E69-84F6-1F8E1210998E}.Release|Any CPU.Build.0 = Release|Any CPU + {86F4BEE6-73B9-4788-8076-D01C4A1D9A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86F4BEE6-73B9-4788-8076-D01C4A1D9A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86F4BEE6-73B9-4788-8076-D01C4A1D9A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86F4BEE6-73B9-4788-8076-D01C4A1D9A1B}.Release|Any CPU.Build.0 = Release|Any CPU + {31AE7C18-9A29-4F1A-BE6E-6907CB954285}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31AE7C18-9A29-4F1A-BE6E-6907CB954285}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31AE7C18-9A29-4F1A-BE6E-6907CB954285}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31AE7C18-9A29-4F1A-BE6E-6907CB954285}.Release|Any CPU.Build.0 = Release|Any CPU + {E4C9D7F9-D215-4F11-8D33-17611FE5D8F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4C9D7F9-D215-4F11-8D33-17611FE5D8F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4C9D7F9-D215-4F11-8D33-17611FE5D8F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4C9D7F9-D215-4F11-8D33-17611FE5D8F4}.Release|Any CPU.Build.0 = Release|Any CPU + {2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C8F5CCC-53D0-49CE-BF5B-BBC3E2771FF6}.Release|Any CPU.Build.0 = Release|Any CPU + {EF8D1526-9463-401B-9EAE-D4B98C86E046}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF8D1526-9463-401B-9EAE-D4B98C86E046}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF8D1526-9463-401B-9EAE-D4B98C86E046}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF8D1526-9463-401B-9EAE-D4B98C86E046}.Release|Any CPU.Build.0 = Release|Any CPU + {15628477-9D25-41FA-81B0-59D43D1363F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15628477-9D25-41FA-81B0-59D43D1363F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15628477-9D25-41FA-81B0-59D43D1363F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15628477-9D25-41FA-81B0-59D43D1363F4}.Release|Any CPU.Build.0 = Release|Any CPU + {C73C11A5-863A-440D-B568-00CA5E7C9DA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C73C11A5-863A-440D-B568-00CA5E7C9DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C73C11A5-863A-440D-B568-00CA5E7C9DA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C73C11A5-863A-440D-B568-00CA5E7C9DA0}.Release|Any CPU.Build.0 = Release|Any CPU + {877B4329-854A-412F-B631-6315D77F9C8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {877B4329-854A-412F-B631-6315D77F9C8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {877B4329-854A-412F-B631-6315D77F9C8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {877B4329-854A-412F-B631-6315D77F9C8A}.Release|Any CPU.Build.0 = Release|Any CPU + {155BD2D0-E9F1-4207-A82B-1C82B3683C7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {155BD2D0-E9F1-4207-A82B-1C82B3683C7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {155BD2D0-E9F1-4207-A82B-1C82B3683C7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {155BD2D0-E9F1-4207-A82B-1C82B3683C7B}.Release|Any CPU.Build.0 = Release|Any CPU + {A99032CC-E819-436D-8A27-D413E8445E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A99032CC-E819-436D-8A27-D413E8445E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A99032CC-E819-436D-8A27-D413E8445E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A99032CC-E819-436D-8A27-D413E8445E1B}.Release|Any CPU.Build.0 = Release|Any CPU + {D7C9E59C-0B7B-491E-9FC5-63A29290EE06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7C9E59C-0B7B-491E-9FC5-63A29290EE06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7C9E59C-0B7B-491E-9FC5-63A29290EE06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7C9E59C-0B7B-491E-9FC5-63A29290EE06}.Release|Any CPU.Build.0 = Release|Any CPU + {A3AC9584-763B-4686-B6D8-49140FC62EC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3AC9584-763B-4686-B6D8-49140FC62EC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3AC9584-763B-4686-B6D8-49140FC62EC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3AC9584-763B-4686-B6D8-49140FC62EC4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {73C7A14F-C3C5-44EA-AB02-05BFBA55722C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D909B69D-8F3B-4551-A355-8FFF6A308CF6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {EF4F0844-7AAD-4B0C-A29C-37E1F92D2D78} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {474DBDE9-7887-46D0-A2BF-EB531D16B958} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {04C9232C-0656-4BA5-9836-7DAE3DD4057C} + SolutionGuid = {4895E2D2-31A2-4EB8-9C53-04C408F62DC4} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln b/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln index b39190e9ac5b..f92fd9a4f313 100644 --- a/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln +++ b/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts.Tests", "tests\System.Diagnostics.Contracts.Tests.csproj", "{0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65}" - ProjectSection(ProjectDependencies) = postProject - {13426B04-D1AC-4423-8519-F3EB44943B9D} = {13426B04-D1AC-4423-8519-F3EB44943B9D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{D5A81248-C2F8-464A-8EA4-2AB2528206BC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts", "src\System.Diagnostics.Contracts.csproj", "{13426B04-D1AC-4423-8519-F3EB44943B9D}" - ProjectSection(ProjectDependencies) = postProject - {5E0B1760-8753-467A-8B10-66B8994220DB} = {5E0B1760-8753-467A-8B10-66B8994220DB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E4B95B10-EC2A-4874-8E71-858A90A4BDFE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts", "ref\System.Diagnostics.Contracts.csproj", "{5E0B1760-8753-467A-8B10-66B8994220DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{BD5D6D24-5294-479D-B877-29CDBB421C1D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts", "ref\System.Diagnostics.Contracts.csproj", "{DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts", "src\System.Diagnostics.Contracts.csproj", "{158DD2BA-5789-49B8-A801-77EF5D4FD324}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Contracts.Tests", "tests\System.Diagnostics.Contracts.Tests.csproj", "{2F113EAD-602B-4EBD-97E4-24C97CDFEB50}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{47C52D86-6813-49C8-8C46-C5C2D602F01C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1A955DE0-2DA1-4122-B181-D047F6A6D12D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D9FA3031-336F-4B88-B2E3-07D2FC33CF15}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DD907507-D89A-4E20-BE5C-0FA44D2F70E1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{423C8797-0F61-4EF9-A221-E478F0E8D54C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D5A81248-C2F8-464A-8EA4-2AB2528206BC} = {D9FA3031-336F-4B88-B2E3-07D2FC33CF15} + {158DD2BA-5789-49B8-A801-77EF5D4FD324} = {D9FA3031-336F-4B88-B2E3-07D2FC33CF15} + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB} = {D9FA3031-336F-4B88-B2E3-07D2FC33CF15} + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE} = {DD907507-D89A-4E20-BE5C-0FA44D2F70E1} + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50} = {DD907507-D89A-4E20-BE5C-0FA44D2F70E1} + {BD5D6D24-5294-479D-B877-29CDBB421C1D} = {423C8797-0F61-4EF9-A221-E478F0E8D54C} + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0} = {423C8797-0F61-4EF9-A221-E478F0E8D54C} + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE} = {423C8797-0F61-4EF9-A221-E478F0E8D54C} + {1A955DE0-2DA1-4122-B181-D047F6A6D12D} = {423C8797-0F61-4EF9-A221-E478F0E8D54C} + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C} = {423C8797-0F61-4EF9-A221-E478F0E8D54C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65}.Release|Any CPU.Build.0 = Release|Any CPU - {13426B04-D1AC-4423-8519-F3EB44943B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13426B04-D1AC-4423-8519-F3EB44943B9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13426B04-D1AC-4423-8519-F3EB44943B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13426B04-D1AC-4423-8519-F3EB44943B9D}.Release|Any CPU.Build.0 = Release|Any CPU - {5E0B1760-8753-467A-8B10-66B8994220DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E0B1760-8753-467A-8B10-66B8994220DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E0B1760-8753-467A-8B10-66B8994220DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E0B1760-8753-467A-8B10-66B8994220DB}.Release|Any CPU.Build.0 = Release|Any CPU - {47C52D86-6813-49C8-8C46-C5C2D602F01C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47C52D86-6813-49C8-8C46-C5C2D602F01C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47C52D86-6813-49C8-8C46-C5C2D602F01C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47C52D86-6813-49C8-8C46-C5C2D602F01C}.Release|Any CPU.Build.0 = Release|Any CPU + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|Any CPU.ActiveCfg = Debug|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|Any CPU.Build.0 = Debug|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|x64.ActiveCfg = Debug|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|x64.Build.0 = Debug|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|x86.ActiveCfg = Debug|x86 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Debug|x86.Build.0 = Debug|x86 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|Any CPU.ActiveCfg = Release|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|Any CPU.Build.0 = Release|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|x64.ActiveCfg = Release|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|x64.Build.0 = Release|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|x86.ActiveCfg = Release|x86 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Release|x86.Build.0 = Release|x86 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|Any CPU.ActiveCfg = Checked|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|Any CPU.Build.0 = Checked|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|x64.ActiveCfg = Checked|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|x64.Build.0 = Checked|x64 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|x86.ActiveCfg = Checked|x86 + {D5A81248-C2F8-464A-8EA4-2AB2528206BC}.Checked|x86.Build.0 = Checked|x86 + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|x64.Build.0 = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Debug|x86.Build.0 = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|Any CPU.Build.0 = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|x64.ActiveCfg = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|x64.Build.0 = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|x86.ActiveCfg = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Release|x86.Build.0 = Release|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Checked|x64.ActiveCfg = Debug|Any CPU + {E4B95B10-EC2A-4874-8E71-858A90A4BDFE}.Checked|x86.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|x64.Build.0 = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Debug|x86.Build.0 = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|Any CPU.Build.0 = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|x64.ActiveCfg = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|x64.Build.0 = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|x86.ActiveCfg = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Release|x86.Build.0 = Release|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Checked|x64.ActiveCfg = Debug|Any CPU + {BD5D6D24-5294-479D-B877-29CDBB421C1D}.Checked|x86.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|x64.Build.0 = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Debug|x86.Build.0 = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|Any CPU.Build.0 = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|x64.ActiveCfg = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|x64.Build.0 = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|x86.ActiveCfg = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Release|x86.Build.0 = Release|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Checked|x64.ActiveCfg = Debug|Any CPU + {DD15B8D0-013A-43B3-AC3D-1B0D626B35E0}.Checked|x86.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|Any CPU.Build.0 = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|x64.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|x64.Build.0 = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|x86.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Debug|x86.Build.0 = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|Any CPU.ActiveCfg = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|Any CPU.Build.0 = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|x64.ActiveCfg = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|x64.Build.0 = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|x86.ActiveCfg = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Release|x86.Build.0 = Release|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Checked|x64.ActiveCfg = Debug|Any CPU + {158DD2BA-5789-49B8-A801-77EF5D4FD324}.Checked|x86.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|x64.Build.0 = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Debug|x86.Build.0 = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|Any CPU.Build.0 = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|x64.ActiveCfg = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|x64.Build.0 = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|x86.ActiveCfg = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Release|x86.Build.0 = Release|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Checked|x64.ActiveCfg = Debug|Any CPU + {2F113EAD-602B-4EBD-97E4-24C97CDFEB50}.Checked|x86.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|x64.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|x64.Build.0 = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|x86.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Debug|x86.Build.0 = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|Any CPU.Build.0 = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|x64.ActiveCfg = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|x64.Build.0 = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|x86.ActiveCfg = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Release|x86.Build.0 = Release|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Checked|x64.ActiveCfg = Debug|Any CPU + {CCA28A44-CFF6-4FAB-B383-DF6E426CCCFE}.Checked|x86.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|x64.Build.0 = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Debug|x86.Build.0 = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|Any CPU.Build.0 = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|x64.ActiveCfg = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|x64.Build.0 = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|x86.ActiveCfg = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Release|x86.Build.0 = Release|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Checked|x64.ActiveCfg = Debug|Any CPU + {CE9500E9-92BE-4357-8CE9-876DCF5CEFEB}.Checked|x86.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|x64.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|x64.Build.0 = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Debug|x86.Build.0 = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|Any CPU.Build.0 = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|x64.ActiveCfg = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|x64.Build.0 = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|x86.ActiveCfg = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Release|x86.Build.0 = Release|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Checked|x64.ActiveCfg = Debug|Any CPU + {1A955DE0-2DA1-4122-B181-D047F6A6D12D}.Checked|x86.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|x64.Build.0 = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Debug|x86.Build.0 = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|Any CPU.Build.0 = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|x64.ActiveCfg = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|x64.Build.0 = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|x86.ActiveCfg = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Release|x86.Build.0 = Release|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Checked|x64.ActiveCfg = Debug|Any CPU + {B45C7A35-16F6-4DCC-816B-11C09AEC1E2C}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0C4E7FF1-54C6-49B7-9700-18F5F3EB8E65} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {13426B04-D1AC-4423-8519-F3EB44943B9D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {5E0B1760-8753-467A-8B10-66B8994220DB} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {47C52D86-6813-49C8-8C46-C5C2D602F01C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E5F078A1-ACC4-4B1B-BC51-ECD056BE4019} + SolutionGuid = {D03A9093-136B-4C69-AFC1-106658815511} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln b/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln index 70d6cc8b6f2e..ecd12e97e0e5 100644 --- a/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln +++ b/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln @@ -1,60 +1,267 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug.Tests", "tests\System.Diagnostics.Debug.Tests.csproj", "{56F67E92-E606-435E-A00F-003CBFB26945}" - ProjectSection(ProjectDependencies) = postProject - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8} = {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{6CBF7573-4865-4DD2-A38B-74003FB43C9E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug", "src\System.Diagnostics.Debug.csproj", "{E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8}" - ProjectSection(ProjectDependencies) = postProject - {2CBC7A79-EDF5-4552-B25D-8E32E367571E} = {2CBC7A79-EDF5-4552-B25D-8E32E367571E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1C01EFBD-2332-4392-BB4A-918178861EDC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug", "ref\System.Diagnostics.Debug.csproj", "{2CBC7A79-EDF5-4552-B25D-8E32E367571E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug", "ref\System.Diagnostics.Debug.csproj", "{2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug", "src\System.Diagnostics.Debug.csproj", "{05AA43B5-733A-43EF-8CE5-8BF4A18BD516}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Debug.Tests", "tests\System.Diagnostics.Debug.Tests.csproj", "{5B121A9E-061D-4FED-AA3A-26054F41E2B4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{78D6FA35-3154-485A-A442-222733D20670}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{C4E264C7-91E7-4100-BA47-47CB12964025}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{FF70783E-BAC9-47BD-BC68-2561A20C89EA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{60A6EA9F-2A78-41BC-8478-00ECE738F6AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{C61770DF-C267-4B18-8822-D9C062FE806E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2F3C2875-BCC7-42B7-B125-E08656C53BB9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{81C0CA34-11E2-4E9C-9FD9-7989C4151B36}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {6CBF7573-4865-4DD2-A38B-74003FB43C9E} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {C4E264C7-91E7-4100-BA47-47CB12964025} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {C61770DF-C267-4B18-8822-D9C062FE806E} = {2F3C2875-BCC7-42B7-B125-E08656C53BB9} + {1C01EFBD-2332-4392-BB4A-918178861EDC} = {81C0CA34-11E2-4E9C-9FD9-7989C4151B36} + {5B121A9E-061D-4FED-AA3A-26054F41E2B4} = {81C0CA34-11E2-4E9C-9FD9-7989C4151B36} + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7} = {4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6} + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D} = {4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6} + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7} = {4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6} + {FF70783E-BAC9-47BD-BC68-2561A20C89EA} = {4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6} + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF} = {4A940D5C-D81F-4453-A7DD-9DA5BD4A3BF6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {56F67E92-E606-435E-A00F-003CBFB26945}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56F67E92-E606-435E-A00F-003CBFB26945}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56F67E92-E606-435E-A00F-003CBFB26945}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56F67E92-E606-435E-A00F-003CBFB26945}.Release|Any CPU.Build.0 = Release|Any CPU - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8}.Release|Any CPU.Build.0 = Release|Any CPU - {2CBC7A79-EDF5-4552-B25D-8E32E367571E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CBC7A79-EDF5-4552-B25D-8E32E367571E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2CBC7A79-EDF5-4552-B25D-8E32E367571E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2CBC7A79-EDF5-4552-B25D-8E32E367571E}.Release|Any CPU.Build.0 = Release|Any CPU - {78D6FA35-3154-485A-A442-222733D20670}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78D6FA35-3154-485A-A442-222733D20670}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78D6FA35-3154-485A-A442-222733D20670}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78D6FA35-3154-485A-A442-222733D20670}.Release|Any CPU.Build.0 = Release|Any CPU + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|Any CPU.ActiveCfg = Debug|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|Any CPU.Build.0 = Debug|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|x64.ActiveCfg = Debug|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|x64.Build.0 = Debug|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|x86.ActiveCfg = Debug|x86 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Debug|x86.Build.0 = Debug|x86 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|Any CPU.ActiveCfg = Release|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|Any CPU.Build.0 = Release|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|x64.ActiveCfg = Release|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|x64.Build.0 = Release|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|x86.ActiveCfg = Release|x86 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Release|x86.Build.0 = Release|x86 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|Any CPU.ActiveCfg = Checked|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|Any CPU.Build.0 = Checked|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|x64.ActiveCfg = Checked|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|x64.Build.0 = Checked|x64 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|x86.ActiveCfg = Checked|x86 + {6CBF7573-4865-4DD2-A38B-74003FB43C9E}.Checked|x86.Build.0 = Checked|x86 + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|x64.ActiveCfg = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|x64.Build.0 = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|x86.ActiveCfg = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Debug|x86.Build.0 = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|Any CPU.Build.0 = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|x64.ActiveCfg = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|x64.Build.0 = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|x86.ActiveCfg = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Release|x86.Build.0 = Release|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Checked|x64.ActiveCfg = Debug|Any CPU + {1C01EFBD-2332-4392-BB4A-918178861EDC}.Checked|x86.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|x64.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|x64.Build.0 = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|x86.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Debug|x86.Build.0 = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|Any CPU.Build.0 = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|x64.ActiveCfg = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|x64.Build.0 = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|x86.ActiveCfg = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Release|x86.Build.0 = Release|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Checked|x64.ActiveCfg = Debug|Any CPU + {6D535BF6-DF7F-4B19-AF0C-D29ACCA6D8A7}.Checked|x86.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|x64.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|x64.Build.0 = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|x86.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Debug|x86.Build.0 = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|Any CPU.Build.0 = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|x64.ActiveCfg = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|x64.Build.0 = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|x86.ActiveCfg = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Release|x86.Build.0 = Release|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Checked|x64.ActiveCfg = Debug|Any CPU + {2B2AFDCB-BD41-4855-BCB0-B675B8E6CD0D}.Checked|x86.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|x64.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|x64.Build.0 = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|x86.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Debug|x86.Build.0 = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|Any CPU.Build.0 = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|x64.ActiveCfg = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|x64.Build.0 = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|x86.ActiveCfg = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Release|x86.Build.0 = Release|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Checked|x64.ActiveCfg = Debug|Any CPU + {05AA43B5-733A-43EF-8CE5-8BF4A18BD516}.Checked|x86.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|x64.Build.0 = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Debug|x86.Build.0 = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|Any CPU.Build.0 = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|x64.ActiveCfg = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|x64.Build.0 = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|x86.ActiveCfg = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Release|x86.Build.0 = Release|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Checked|x64.ActiveCfg = Debug|Any CPU + {5B121A9E-061D-4FED-AA3A-26054F41E2B4}.Checked|x86.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|x64.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|x64.Build.0 = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|x86.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Debug|x86.Build.0 = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|Any CPU.Build.0 = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|x64.ActiveCfg = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|x64.Build.0 = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|x86.ActiveCfg = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Release|x86.Build.0 = Release|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Checked|x64.ActiveCfg = Debug|Any CPU + {8CCE7756-F004-4EF2-ABCE-0DDD03D5BE04}.Checked|x86.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|x64.Build.0 = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Debug|x86.Build.0 = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|Any CPU.Build.0 = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|x64.ActiveCfg = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|x64.Build.0 = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|x86.ActiveCfg = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Release|x86.Build.0 = Release|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Checked|x64.ActiveCfg = Debug|Any CPU + {FD976FDB-4CEE-4D91-B2A0-9264F391D2B7}.Checked|x86.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|x64.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|x64.Build.0 = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|x86.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Debug|x86.Build.0 = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|Any CPU.Build.0 = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|x64.ActiveCfg = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|x64.Build.0 = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|x86.ActiveCfg = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Release|x86.Build.0 = Release|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Checked|x64.ActiveCfg = Debug|Any CPU + {5DF0CE4D-A949-457F-9FD9-8A8AB8E4809B}.Checked|x86.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|x64.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|x64.Build.0 = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|x86.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Debug|x86.Build.0 = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|Any CPU.Build.0 = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|x64.ActiveCfg = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|x64.Build.0 = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|x86.ActiveCfg = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Release|x86.Build.0 = Release|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Checked|x64.ActiveCfg = Debug|Any CPU + {C4E264C7-91E7-4100-BA47-47CB12964025}.Checked|x86.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|x64.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|x64.Build.0 = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|x86.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Debug|x86.Build.0 = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|Any CPU.Build.0 = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|x64.ActiveCfg = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|x64.Build.0 = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|x86.ActiveCfg = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Release|x86.Build.0 = Release|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Checked|x64.ActiveCfg = Debug|Any CPU + {FF70783E-BAC9-47BD-BC68-2561A20C89EA}.Checked|x86.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|x64.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|x64.Build.0 = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|x86.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Debug|x86.Build.0 = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|Any CPU.Build.0 = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|x64.ActiveCfg = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|x64.Build.0 = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|x86.ActiveCfg = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Release|x86.Build.0 = Release|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Checked|x64.ActiveCfg = Debug|Any CPU + {60A6EA9F-2A78-41BC-8478-00ECE738F6AF}.Checked|x86.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|x64.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|x64.Build.0 = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|x86.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Debug|x86.Build.0 = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|Any CPU.Build.0 = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|x64.ActiveCfg = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|x64.Build.0 = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|x86.ActiveCfg = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Release|x86.Build.0 = Release|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Checked|x64.ActiveCfg = Debug|Any CPU + {C61770DF-C267-4B18-8822-D9C062FE806E}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {56F67E92-E606-435E-A00F-003CBFB26945} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E7E8DE8A-9EC1-46A8-A6EE-727DB32DBEB8} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2CBC7A79-EDF5-4552-B25D-8E32E367571E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {78D6FA35-3154-485A-A442-222733D20670} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {26B00BA4-BF24-44D3-9D2B-A983C8FCD229} + SolutionGuid = {E0E463DC-7C7C-48D9-9806-88AFFFA1F54F} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/System.Diagnostics.DiagnosticSource.sln b/src/libraries/System.Diagnostics.DiagnosticSource/System.Diagnostics.DiagnosticSource.sln index 206cdf7b3829..666e1ca8186a 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/System.Diagnostics.DiagnosticSource.sln +++ b/src/libraries/System.Diagnostics.DiagnosticSource/System.Diagnostics.DiagnosticSource.sln @@ -1,60 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource.Tests", "tests\System.Diagnostics.DiagnosticSource.Tests.csproj", "{A7922FA3-306A-41B9-B8DC-CC4DBE685A85}" - ProjectSection(ProjectDependencies) = postProject - {F24D3391-2928-4E83-AADE-B34423498750} = {F24D3391-2928-4E83-AADE-B34423498750} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "src\System.Diagnostics.DiagnosticSource.csproj", "{F24D3391-2928-4E83-AADE-B34423498750}" - ProjectSection(ProjectDependencies) = postProject - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9} = {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{EE434B59-C7F4-479F-8F4B-FC2ACB182CCB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "ref\System.Diagnostics.DiagnosticSource.csproj", "{3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "ref\System.Diagnostics.DiagnosticSource.csproj", "{424489A3-270A-4AD2-A3C4-4F726BF5D490}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource", "src\System.Diagnostics.DiagnosticSource.csproj", "{C841EE65-4F8E-4779-987C-7E64BACFAC59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource.Tests", "tests\System.Diagnostics.DiagnosticSource.Tests.csproj", "{81E7CBE3-9763-4935-94D4-512480A85C46}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.DiagnosticSource.Switches.Tests", "tests\TestWithConfigSwitches\System.Diagnostics.DiagnosticSource.Switches.Tests.csproj", "{95B7A616-C472-47CA-BC91-E88FB763A78B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{EA11A15E-C713-4194-8A7D-C4949F769EF8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D2A7F166-96E6-4E0B-89CA-8869866AF10B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{1C28E125-BC75-4E11-B69A-0E56BD615C57}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1A43206C-552E-43F8-ACD3-428DA68046E4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{AA422FF6-101E-4203-955D-833F14CD54ED}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{322607EA-0DEC-45D2-BFA4-A6AE2276DEE0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D0A9B32B-EF5D-41FC-978C-F64E93D2D595}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{27293BE9-162F-4210-916D-16885FE1B605}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F} = {322607EA-0DEC-45D2-BFA4-A6AE2276DEE0} + {81E7CBE3-9763-4935-94D4-512480A85C46} = {322607EA-0DEC-45D2-BFA4-A6AE2276DEE0} + {95B7A616-C472-47CA-BC91-E88FB763A78B} = {322607EA-0DEC-45D2-BFA4-A6AE2276DEE0} + {EE434B59-C7F4-479F-8F4B-FC2ACB182CCB} = {D0A9B32B-EF5D-41FC-978C-F64E93D2D595} + {424489A3-270A-4AD2-A3C4-4F726BF5D490} = {D0A9B32B-EF5D-41FC-978C-F64E93D2D595} + {D2A7F166-96E6-4E0B-89CA-8869866AF10B} = {D0A9B32B-EF5D-41FC-978C-F64E93D2D595} + {1A43206C-552E-43F8-ACD3-428DA68046E4} = {D0A9B32B-EF5D-41FC-978C-F64E93D2D595} + {AA422FF6-101E-4203-955D-833F14CD54ED} = {D0A9B32B-EF5D-41FC-978C-F64E93D2D595} + {C841EE65-4F8E-4779-987C-7E64BACFAC59} = {27293BE9-162F-4210-916D-16885FE1B605} + {1C28E125-BC75-4E11-B69A-0E56BD615C57} = {27293BE9-162F-4210-916D-16885FE1B605} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A7922FA3-306A-41B9-B8DC-CC4DBE685A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7922FA3-306A-41B9-B8DC-CC4DBE685A85}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7922FA3-306A-41B9-B8DC-CC4DBE685A85}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7922FA3-306A-41B9-B8DC-CC4DBE685A85}.Release|Any CPU.Build.0 = Release|Any CPU - {F24D3391-2928-4E83-AADE-B34423498750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F24D3391-2928-4E83-AADE-B34423498750}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F24D3391-2928-4E83-AADE-B34423498750}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F24D3391-2928-4E83-AADE-B34423498750}.Release|Any CPU.Build.0 = Release|Any CPU - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9}.Release|Any CPU.Build.0 = Release|Any CPU - {EA11A15E-C713-4194-8A7D-C4949F769EF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA11A15E-C713-4194-8A7D-C4949F769EF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EA11A15E-C713-4194-8A7D-C4949F769EF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EA11A15E-C713-4194-8A7D-C4949F769EF8}.Release|Any CPU.Build.0 = Release|Any CPU + {39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39A7D80C-9DEE-4E34-AC4B-768CD4D2D77F}.Release|Any CPU.Build.0 = Release|Any CPU + {EE434B59-C7F4-479F-8F4B-FC2ACB182CCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE434B59-C7F4-479F-8F4B-FC2ACB182CCB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE434B59-C7F4-479F-8F4B-FC2ACB182CCB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE434B59-C7F4-479F-8F4B-FC2ACB182CCB}.Release|Any CPU.Build.0 = Release|Any CPU + {424489A3-270A-4AD2-A3C4-4F726BF5D490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {424489A3-270A-4AD2-A3C4-4F726BF5D490}.Debug|Any CPU.Build.0 = Debug|Any CPU + {424489A3-270A-4AD2-A3C4-4F726BF5D490}.Release|Any CPU.ActiveCfg = Release|Any CPU + {424489A3-270A-4AD2-A3C4-4F726BF5D490}.Release|Any CPU.Build.0 = Release|Any CPU + {C841EE65-4F8E-4779-987C-7E64BACFAC59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C841EE65-4F8E-4779-987C-7E64BACFAC59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C841EE65-4F8E-4779-987C-7E64BACFAC59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C841EE65-4F8E-4779-987C-7E64BACFAC59}.Release|Any CPU.Build.0 = Release|Any CPU + {81E7CBE3-9763-4935-94D4-512480A85C46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81E7CBE3-9763-4935-94D4-512480A85C46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81E7CBE3-9763-4935-94D4-512480A85C46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81E7CBE3-9763-4935-94D4-512480A85C46}.Release|Any CPU.Build.0 = Release|Any CPU + {95B7A616-C472-47CA-BC91-E88FB763A78B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95B7A616-C472-47CA-BC91-E88FB763A78B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95B7A616-C472-47CA-BC91-E88FB763A78B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95B7A616-C472-47CA-BC91-E88FB763A78B}.Release|Any CPU.Build.0 = Release|Any CPU + {D2A7F166-96E6-4E0B-89CA-8869866AF10B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2A7F166-96E6-4E0B-89CA-8869866AF10B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2A7F166-96E6-4E0B-89CA-8869866AF10B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2A7F166-96E6-4E0B-89CA-8869866AF10B}.Release|Any CPU.Build.0 = Release|Any CPU + {1C28E125-BC75-4E11-B69A-0E56BD615C57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C28E125-BC75-4E11-B69A-0E56BD615C57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C28E125-BC75-4E11-B69A-0E56BD615C57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C28E125-BC75-4E11-B69A-0E56BD615C57}.Release|Any CPU.Build.0 = Release|Any CPU + {1A43206C-552E-43F8-ACD3-428DA68046E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A43206C-552E-43F8-ACD3-428DA68046E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A43206C-552E-43F8-ACD3-428DA68046E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A43206C-552E-43F8-ACD3-428DA68046E4}.Release|Any CPU.Build.0 = Release|Any CPU + {AA422FF6-101E-4203-955D-833F14CD54ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA422FF6-101E-4203-955D-833F14CD54ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA422FF6-101E-4203-955D-833F14CD54ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA422FF6-101E-4203-955D-833F14CD54ED}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A7922FA3-306A-41B9-B8DC-CC4DBE685A85} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F24D3391-2928-4E83-AADE-B34423498750} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {3DF9A5D5-3D4B-4378-9B55-CFA6AC0114D9} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {EA11A15E-C713-4194-8A7D-C4949F769EF8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7779716F-2D3C-47B6-9C48-009BD2F70523} + SolutionGuid = {6C0E44F7-3944-4BCA-94DA-2E558CEA1FE8} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs index 50823c0f6ba7..38351198a340 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs @@ -1017,7 +1017,7 @@ public void SetCustomProperty(string propertyName, object? propertyValue) } } - activity.StartTimeUtc = startTime == default ? DateTime.UtcNow : startTime.UtcDateTime; + activity.StartTimeUtc = startTime == default ? GetUtcNow() : startTime.UtcDateTime; activity.IsAllDataRequested = request == ActivitySamplingResult.AllData || request == ActivitySamplingResult.AllDataAndRecorded; diff --git a/src/libraries/System.Diagnostics.EventLog/System.Diagnostics.EventLog.sln b/src/libraries/System.Diagnostics.EventLog/System.Diagnostics.EventLog.sln index 23ce3b6178d8..b2c504009511 100644 --- a/src/libraries/System.Diagnostics.EventLog/System.Diagnostics.EventLog.sln +++ b/src/libraries/System.Diagnostics.EventLog/System.Diagnostics.EventLog.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog.Tests", "tests\System.Diagnostics.EventLog.Tests.csproj", "{5B218883-369E-4C3D-8BD0-74843474DCBD}" - ProjectSection(ProjectDependencies) = postProject - {432779B9-3CBD-4871-A7DC-D8A192319DBD} = {432779B9-3CBD-4871-A7DC-D8A192319DBD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{71D520C0-6305-4599-B564-584C6E9FEAEC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "src\System.Diagnostics.EventLog.csproj", "{432779B9-3CBD-4871-A7DC-D8A192319DBD}" - ProjectSection(ProjectDependencies) = postProject - {F405C42E-EF6F-4404-80FD-3B87E216707C} = {F405C42E-EF6F-4404-80FD-3B87E216707C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{827D9EF0-C028-4984-A02F-1D437DA2F050}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "ref\System.Diagnostics.EventLog.csproj", "{F405C42E-EF6F-4404-80FD-3B87E216707C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{144F8495-9FFF-47EB-A44D-F242268FB7C1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "ref\System.Diagnostics.EventLog.csproj", "{635F5794-A69E-489D-9D1F-1D20D3DDE740}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "src\System.Diagnostics.EventLog.csproj", "{5BB72C32-4B04-415E-A504-F41F2FE0E54D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog.Tests", "tests\System.Diagnostics.EventLog.Tests.csproj", "{DE282697-BDF2-4FC7-B34C-911F35AE47D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3EC81942-75A3-4D56-A63C-2221337A0BB2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{EF2BA909-F545-45B6-A467-24CCB98E8370}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{FC4255EC-719E-44AA-A1E3-CF76329C3052}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{15C7E4A3-8607-4D54-871E-8400C2471720}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{010F66ED-FE0D-49B2-A708-0C9ADF6D08F0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{96BF2393-E065-4F51-8CDF-2D767A39C301}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{4C97A55D-7FD2-4336-9731-F7DC6CD73FD4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{A4459089-205A-4656-B4C8-75509380B6F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{673B2D1D-A19E-4866-A95B-F9F458C07581}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{AF841B09-C343-46ED-B3DB-0EF1E3F55BF2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F937C02F-0525-4357-B4DA-364A78C1408B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{5A65AC14-FB2F-489B-9B45-13086A65999D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{6D90E38F-7633-4BB0-8D67-7397CE99B981}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{5CA038BA-A513-446F-9E5A-BE6E95802D58}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{187339DE-D2FE-4E20-B207-49ECE285B345}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{88ACF2B5-1FAC-456E-9E52-AFB708F44F7C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B94A0C26-D918-4D03-BA6B-B34282EFDF94}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {71D520C0-6305-4599-B564-584C6E9FEAEC} = {187339DE-D2FE-4E20-B207-49ECE285B345} + {DE282697-BDF2-4FC7-B34C-911F35AE47D6} = {187339DE-D2FE-4E20-B207-49ECE285B345} + {827D9EF0-C028-4984-A02F-1D437DA2F050} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {635F5794-A69E-489D-9D1F-1D20D3DDE740} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {EF2BA909-F545-45B6-A467-24CCB98E8370} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {FC4255EC-719E-44AA-A1E3-CF76329C3052} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {010F66ED-FE0D-49B2-A708-0C9ADF6D08F0} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {4C97A55D-7FD2-4336-9731-F7DC6CD73FD4} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {673B2D1D-A19E-4866-A95B-F9F458C07581} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {F937C02F-0525-4357-B4DA-364A78C1408B} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {6D90E38F-7633-4BB0-8D67-7397CE99B981} = {88ACF2B5-1FAC-456E-9E52-AFB708F44F7C} + {144F8495-9FFF-47EB-A44D-F242268FB7C1} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {5BB72C32-4B04-415E-A504-F41F2FE0E54D} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {15C7E4A3-8607-4D54-871E-8400C2471720} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {96BF2393-E065-4F51-8CDF-2D767A39C301} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {A4459089-205A-4656-B4C8-75509380B6F1} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {AF841B09-C343-46ED-B3DB-0EF1E3F55BF2} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {5A65AC14-FB2F-489B-9B45-13086A65999D} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + {5CA038BA-A513-446F-9E5A-BE6E95802D58} = {B94A0C26-D918-4D03-BA6B-B34282EFDF94} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5B218883-369E-4C3D-8BD0-74843474DCBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5B218883-369E-4C3D-8BD0-74843474DCBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B218883-369E-4C3D-8BD0-74843474DCBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B218883-369E-4C3D-8BD0-74843474DCBD}.Release|Any CPU.Build.0 = Release|Any CPU - {432779B9-3CBD-4871-A7DC-D8A192319DBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {432779B9-3CBD-4871-A7DC-D8A192319DBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {432779B9-3CBD-4871-A7DC-D8A192319DBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {432779B9-3CBD-4871-A7DC-D8A192319DBD}.Release|Any CPU.Build.0 = Release|Any CPU - {F405C42E-EF6F-4404-80FD-3B87E216707C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F405C42E-EF6F-4404-80FD-3B87E216707C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F405C42E-EF6F-4404-80FD-3B87E216707C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F405C42E-EF6F-4404-80FD-3B87E216707C}.Release|Any CPU.Build.0 = Release|Any CPU - {3EC81942-75A3-4D56-A63C-2221337A0BB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3EC81942-75A3-4D56-A63C-2221337A0BB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3EC81942-75A3-4D56-A63C-2221337A0BB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3EC81942-75A3-4D56-A63C-2221337A0BB2}.Release|Any CPU.Build.0 = Release|Any CPU + {71D520C0-6305-4599-B564-584C6E9FEAEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71D520C0-6305-4599-B564-584C6E9FEAEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71D520C0-6305-4599-B564-584C6E9FEAEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71D520C0-6305-4599-B564-584C6E9FEAEC}.Release|Any CPU.Build.0 = Release|Any CPU + {827D9EF0-C028-4984-A02F-1D437DA2F050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {827D9EF0-C028-4984-A02F-1D437DA2F050}.Debug|Any CPU.Build.0 = Debug|Any CPU + {827D9EF0-C028-4984-A02F-1D437DA2F050}.Release|Any CPU.ActiveCfg = Release|Any CPU + {827D9EF0-C028-4984-A02F-1D437DA2F050}.Release|Any CPU.Build.0 = Release|Any CPU + {144F8495-9FFF-47EB-A44D-F242268FB7C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {144F8495-9FFF-47EB-A44D-F242268FB7C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {144F8495-9FFF-47EB-A44D-F242268FB7C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {144F8495-9FFF-47EB-A44D-F242268FB7C1}.Release|Any CPU.Build.0 = Release|Any CPU + {635F5794-A69E-489D-9D1F-1D20D3DDE740}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {635F5794-A69E-489D-9D1F-1D20D3DDE740}.Debug|Any CPU.Build.0 = Debug|Any CPU + {635F5794-A69E-489D-9D1F-1D20D3DDE740}.Release|Any CPU.ActiveCfg = Release|Any CPU + {635F5794-A69E-489D-9D1F-1D20D3DDE740}.Release|Any CPU.Build.0 = Release|Any CPU + {5BB72C32-4B04-415E-A504-F41F2FE0E54D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BB72C32-4B04-415E-A504-F41F2FE0E54D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BB72C32-4B04-415E-A504-F41F2FE0E54D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BB72C32-4B04-415E-A504-F41F2FE0E54D}.Release|Any CPU.Build.0 = Release|Any CPU + {DE282697-BDF2-4FC7-B34C-911F35AE47D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE282697-BDF2-4FC7-B34C-911F35AE47D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE282697-BDF2-4FC7-B34C-911F35AE47D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE282697-BDF2-4FC7-B34C-911F35AE47D6}.Release|Any CPU.Build.0 = Release|Any CPU + {EF2BA909-F545-45B6-A467-24CCB98E8370}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF2BA909-F545-45B6-A467-24CCB98E8370}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF2BA909-F545-45B6-A467-24CCB98E8370}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF2BA909-F545-45B6-A467-24CCB98E8370}.Release|Any CPU.Build.0 = Release|Any CPU + {FC4255EC-719E-44AA-A1E3-CF76329C3052}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC4255EC-719E-44AA-A1E3-CF76329C3052}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC4255EC-719E-44AA-A1E3-CF76329C3052}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC4255EC-719E-44AA-A1E3-CF76329C3052}.Release|Any CPU.Build.0 = Release|Any CPU + {15C7E4A3-8607-4D54-871E-8400C2471720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15C7E4A3-8607-4D54-871E-8400C2471720}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15C7E4A3-8607-4D54-871E-8400C2471720}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15C7E4A3-8607-4D54-871E-8400C2471720}.Release|Any CPU.Build.0 = Release|Any CPU + {010F66ED-FE0D-49B2-A708-0C9ADF6D08F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {010F66ED-FE0D-49B2-A708-0C9ADF6D08F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {010F66ED-FE0D-49B2-A708-0C9ADF6D08F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {010F66ED-FE0D-49B2-A708-0C9ADF6D08F0}.Release|Any CPU.Build.0 = Release|Any CPU + {96BF2393-E065-4F51-8CDF-2D767A39C301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96BF2393-E065-4F51-8CDF-2D767A39C301}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96BF2393-E065-4F51-8CDF-2D767A39C301}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96BF2393-E065-4F51-8CDF-2D767A39C301}.Release|Any CPU.Build.0 = Release|Any CPU + {4C97A55D-7FD2-4336-9731-F7DC6CD73FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C97A55D-7FD2-4336-9731-F7DC6CD73FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C97A55D-7FD2-4336-9731-F7DC6CD73FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C97A55D-7FD2-4336-9731-F7DC6CD73FD4}.Release|Any CPU.Build.0 = Release|Any CPU + {A4459089-205A-4656-B4C8-75509380B6F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4459089-205A-4656-B4C8-75509380B6F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4459089-205A-4656-B4C8-75509380B6F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4459089-205A-4656-B4C8-75509380B6F1}.Release|Any CPU.Build.0 = Release|Any CPU + {673B2D1D-A19E-4866-A95B-F9F458C07581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {673B2D1D-A19E-4866-A95B-F9F458C07581}.Debug|Any CPU.Build.0 = Debug|Any CPU + {673B2D1D-A19E-4866-A95B-F9F458C07581}.Release|Any CPU.ActiveCfg = Release|Any CPU + {673B2D1D-A19E-4866-A95B-F9F458C07581}.Release|Any CPU.Build.0 = Release|Any CPU + {AF841B09-C343-46ED-B3DB-0EF1E3F55BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF841B09-C343-46ED-B3DB-0EF1E3F55BF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF841B09-C343-46ED-B3DB-0EF1E3F55BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF841B09-C343-46ED-B3DB-0EF1E3F55BF2}.Release|Any CPU.Build.0 = Release|Any CPU + {F937C02F-0525-4357-B4DA-364A78C1408B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F937C02F-0525-4357-B4DA-364A78C1408B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F937C02F-0525-4357-B4DA-364A78C1408B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F937C02F-0525-4357-B4DA-364A78C1408B}.Release|Any CPU.Build.0 = Release|Any CPU + {B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5F56812-AFB4-4B7B-9E98-A5FDBBAC821B}.Release|Any CPU.Build.0 = Release|Any CPU + {5A65AC14-FB2F-489B-9B45-13086A65999D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A65AC14-FB2F-489B-9B45-13086A65999D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A65AC14-FB2F-489B-9B45-13086A65999D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A65AC14-FB2F-489B-9B45-13086A65999D}.Release|Any CPU.Build.0 = Release|Any CPU + {6D90E38F-7633-4BB0-8D67-7397CE99B981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D90E38F-7633-4BB0-8D67-7397CE99B981}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D90E38F-7633-4BB0-8D67-7397CE99B981}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D90E38F-7633-4BB0-8D67-7397CE99B981}.Release|Any CPU.Build.0 = Release|Any CPU + {5CA038BA-A513-446F-9E5A-BE6E95802D58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5CA038BA-A513-446F-9E5A-BE6E95802D58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5CA038BA-A513-446F-9E5A-BE6E95802D58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5CA038BA-A513-446F-9E5A-BE6E95802D58}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5B218883-369E-4C3D-8BD0-74843474DCBD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {432779B9-3CBD-4871-A7DC-D8A192319DBD} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F405C42E-EF6F-4404-80FD-3B87E216707C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3EC81942-75A3-4D56-A63C-2221337A0BB2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DFF5A927-E889-4999-B4D2-E15E3B1B8E00} + SolutionGuid = {3DB51F1D-40A4-4B5E-85BF-74CCDEE2FAA7} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.sln b/src/libraries/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.sln index c5ef898a0f67..8a0e757a8e3c 100644 --- a/src/libraries/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.sln +++ b/src/libraries/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.sln @@ -1,107 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo.Tests", "tests\System.Diagnostics.FileVersionInfo.Tests\System.Diagnostics.FileVersionInfo.Tests.csproj", "{6DFDB760-CC88-48AE-BD81-C64844EA3CBC}" - ProjectSection(ProjectDependencies) = postProject - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {00EDA5FD-E802-40D3-92D5-56C27612D36D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D6C0D80D-9454-4965-A580-A43484972632}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NativeConsoleApp", "tests\NativeConsoleApp\NativeConsoleApp.vcxproj", "{3002560A-5097-4A65-B562-93E335E64163}" - ProjectSection(ProjectDependencies) = postProject - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {00EDA5FD-E802-40D3-92D5-56C27612D36D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NativeLibrary", "tests\NativeLibrary\NativeLibrary.vcxproj", "{32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B}" - ProjectSection(ProjectDependencies) = postProject - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {00EDA5FD-E802-40D3-92D5-56C27612D36D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo", "ref\System.Diagnostics.FileVersionInfo.csproj", "{46E9AC6C-347E-4F94-80CB-E1857EC0C5C6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SecondNativeLibrary", "tests\SecondNativeLibrary\SecondNativeLibrary.vcxproj", "{925D347C-697C-4777-8995-62426C6866F2}" - ProjectSection(ProjectDependencies) = postProject - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {00EDA5FD-E802-40D3-92D5-56C27612D36D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo", "src\System.Diagnostics.FileVersionInfo.csproj", "{922C96F5-9F92-4F0E-A83D-D1BCDDD187F2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo.TestAssembly", "tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj", "{28EB14BE-3BC9-4543-ABA6-A932424DFBD0}" - ProjectSection(ProjectDependencies) = postProject - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {00EDA5FD-E802-40D3-92D5-56C27612D36D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo.TestAssembly", "tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj", "{0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo", "src\System.Diagnostics.FileVersionInfo.csproj", "{00EDA5FD-E802-40D3-92D5-56C27612D36D}" - ProjectSection(ProjectDependencies) = postProject - {F815A563-B6B8-49F3-9E90-1A134033B864} = {F815A563-B6B8-49F3-9E90-1A134033B864} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo.Tests", "tests\System.Diagnostics.FileVersionInfo.Tests\System.Diagnostics.FileVersionInfo.Tests.csproj", "{2F5C48C2-CE74-49FD-BA41-25FCBCE53A49}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.FileVersionInfo", "ref\System.Diagnostics.FileVersionInfo.csproj", "{F815A563-B6B8-49F3-9E90-1A134033B864}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{E75BB739-AE88-4CAA-82CA-72224A39D8CE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{2391C35B-E06E-4BD8-ABF0-C7EE981336D1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F7423C03-D55C-4201-B13A-1748A8EAD2D5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B5DAC357-D179-48F5-A830-659A40966E9B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9624A23D-A470-496B-BEEA-D1E7DCE8BFA3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8E0E605D-B5D4-408F-A3E7-DB1EA2D8E25C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{A1132F6D-4D68-4E23-B35C-FDBE12C04D99}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B5999763-DE3D-4966-B95B-3BB6A72033B6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{44D25ADC-F3EF-4C40-A66D-0CB45F0FD2A3}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D6C0D80D-9454-4965-A580-A43484972632} = {8E0E605D-B5D4-408F-A3E7-DB1EA2D8E25C} + {0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F} = {8E0E605D-B5D4-408F-A3E7-DB1EA2D8E25C} + {2F5C48C2-CE74-49FD-BA41-25FCBCE53A49} = {8E0E605D-B5D4-408F-A3E7-DB1EA2D8E25C} + {C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057} = {B5999763-DE3D-4966-B95B-3BB6A72033B6} + {46E9AC6C-347E-4F94-80CB-E1857EC0C5C6} = {B5999763-DE3D-4966-B95B-3BB6A72033B6} + {E75BB739-AE88-4CAA-82CA-72224A39D8CE} = {B5999763-DE3D-4966-B95B-3BB6A72033B6} + {F7423C03-D55C-4201-B13A-1748A8EAD2D5} = {B5999763-DE3D-4966-B95B-3BB6A72033B6} + {B5DAC357-D179-48F5-A830-659A40966E9B} = {B5999763-DE3D-4966-B95B-3BB6A72033B6} + {922C96F5-9F92-4F0E-A83D-D1BCDDD187F2} = {44D25ADC-F3EF-4C40-A66D-0CB45F0FD2A3} + {2391C35B-E06E-4BD8-ABF0-C7EE981336D1} = {44D25ADC-F3EF-4C40-A66D-0CB45F0FD2A3} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6DFDB760-CC88-48AE-BD81-C64844EA3CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6DFDB760-CC88-48AE-BD81-C64844EA3CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6DFDB760-CC88-48AE-BD81-C64844EA3CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6DFDB760-CC88-48AE-BD81-C64844EA3CBC}.Release|Any CPU.Build.0 = Release|Any CPU - {3002560A-5097-4A65-B562-93E335E64163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3002560A-5097-4A65-B562-93E335E64163}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3002560A-5097-4A65-B562-93E335E64163}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3002560A-5097-4A65-B562-93E335E64163}.Release|Any CPU.Build.0 = Release|Any CPU - {32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B}.Release|Any CPU.Build.0 = Release|Any CPU - {925D347C-697C-4777-8995-62426C6866F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {925D347C-697C-4777-8995-62426C6866F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {925D347C-697C-4777-8995-62426C6866F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {925D347C-697C-4777-8995-62426C6866F2}.Release|Any CPU.Build.0 = Release|Any CPU - {28EB14BE-3BC9-4543-ABA6-A932424DFBD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28EB14BE-3BC9-4543-ABA6-A932424DFBD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28EB14BE-3BC9-4543-ABA6-A932424DFBD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28EB14BE-3BC9-4543-ABA6-A932424DFBD0}.Release|Any CPU.Build.0 = Release|Any CPU - {00EDA5FD-E802-40D3-92D5-56C27612D36D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00EDA5FD-E802-40D3-92D5-56C27612D36D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00EDA5FD-E802-40D3-92D5-56C27612D36D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00EDA5FD-E802-40D3-92D5-56C27612D36D}.Release|Any CPU.Build.0 = Release|Any CPU - {F815A563-B6B8-49F3-9E90-1A134033B864}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F815A563-B6B8-49F3-9E90-1A134033B864}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F815A563-B6B8-49F3-9E90-1A134033B864}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F815A563-B6B8-49F3-9E90-1A134033B864}.Release|Any CPU.Build.0 = Release|Any CPU - {9624A23D-A470-496B-BEEA-D1E7DCE8BFA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9624A23D-A470-496B-BEEA-D1E7DCE8BFA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9624A23D-A470-496B-BEEA-D1E7DCE8BFA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9624A23D-A470-496B-BEEA-D1E7DCE8BFA3}.Release|Any CPU.Build.0 = Release|Any CPU - {A1132F6D-4D68-4E23-B35C-FDBE12C04D99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1132F6D-4D68-4E23-B35C-FDBE12C04D99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1132F6D-4D68-4E23-B35C-FDBE12C04D99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1132F6D-4D68-4E23-B35C-FDBE12C04D99}.Release|Any CPU.Build.0 = Release|Any CPU + {D6C0D80D-9454-4965-A580-A43484972632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6C0D80D-9454-4965-A580-A43484972632}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6C0D80D-9454-4965-A580-A43484972632}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6C0D80D-9454-4965-A580-A43484972632}.Release|Any CPU.Build.0 = Release|Any CPU + {C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6B1F2EE-B94C-4A08-8BC4-FCC8B3176057}.Release|Any CPU.Build.0 = Release|Any CPU + {46E9AC6C-347E-4F94-80CB-E1857EC0C5C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46E9AC6C-347E-4F94-80CB-E1857EC0C5C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46E9AC6C-347E-4F94-80CB-E1857EC0C5C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46E9AC6C-347E-4F94-80CB-E1857EC0C5C6}.Release|Any CPU.Build.0 = Release|Any CPU + {922C96F5-9F92-4F0E-A83D-D1BCDDD187F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {922C96F5-9F92-4F0E-A83D-D1BCDDD187F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {922C96F5-9F92-4F0E-A83D-D1BCDDD187F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {922C96F5-9F92-4F0E-A83D-D1BCDDD187F2}.Release|Any CPU.Build.0 = Release|Any CPU + {0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B3AFB8E-37F9-4FF7-A5A1-1DABD484231F}.Release|Any CPU.Build.0 = Release|Any CPU + {2F5C48C2-CE74-49FD-BA41-25FCBCE53A49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F5C48C2-CE74-49FD-BA41-25FCBCE53A49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F5C48C2-CE74-49FD-BA41-25FCBCE53A49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F5C48C2-CE74-49FD-BA41-25FCBCE53A49}.Release|Any CPU.Build.0 = Release|Any CPU + {E75BB739-AE88-4CAA-82CA-72224A39D8CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E75BB739-AE88-4CAA-82CA-72224A39D8CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E75BB739-AE88-4CAA-82CA-72224A39D8CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E75BB739-AE88-4CAA-82CA-72224A39D8CE}.Release|Any CPU.Build.0 = Release|Any CPU + {2391C35B-E06E-4BD8-ABF0-C7EE981336D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2391C35B-E06E-4BD8-ABF0-C7EE981336D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2391C35B-E06E-4BD8-ABF0-C7EE981336D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2391C35B-E06E-4BD8-ABF0-C7EE981336D1}.Release|Any CPU.Build.0 = Release|Any CPU + {F7423C03-D55C-4201-B13A-1748A8EAD2D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7423C03-D55C-4201-B13A-1748A8EAD2D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7423C03-D55C-4201-B13A-1748A8EAD2D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7423C03-D55C-4201-B13A-1748A8EAD2D5}.Release|Any CPU.Build.0 = Release|Any CPU + {B5DAC357-D179-48F5-A830-659A40966E9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5DAC357-D179-48F5-A830-659A40966E9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5DAC357-D179-48F5-A830-659A40966E9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5DAC357-D179-48F5-A830-659A40966E9B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6DFDB760-CC88-48AE-BD81-C64844EA3CBC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3002560A-5097-4A65-B562-93E335E64163} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {32C9BB6C-46F4-43D8-B89E-3A1AFA70F38B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {925D347C-697C-4777-8995-62426C6866F2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {28EB14BE-3BC9-4543-ABA6-A932424DFBD0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {00EDA5FD-E802-40D3-92D5-56C27612D36D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F815A563-B6B8-49F3-9E90-1A134033B864} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9624A23D-A470-496B-BEEA-D1E7DCE8BFA3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A1132F6D-4D68-4E23-B35C-FDBE12C04D99} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A1E658C8-446E-42A1-BD77-7FD02C2CD549} + SolutionGuid = {9FDF2FF3-5DFC-45E8-9959-B59FF906E689} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.sln b/src/libraries/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.sln index 4b178e15760c..5ba935e36b1d 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.sln +++ b/src/libraries/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.sln @@ -1,60 +1,184 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter.Tests", "tests\System.Diagnostics.PerformanceCounter.Tests.csproj", "{296074B7-1CC9-497E-8C1E-FC5C985C75C6}" - ProjectSection(ProjectDependencies) = postProject - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA} = {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{20B92E8C-E720-4B5A-8647-97CC1BD71E84}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "src\System.Diagnostics.PerformanceCounter.csproj", "{9758106C-5D4E-475D-B5E7-B7ABC46B1DDA}" - ProjectSection(ProjectDependencies) = postProject - {5BDC8641-E3EE-47B5-BE7B-2D2275402412} = {5BDC8641-E3EE-47B5-BE7B-2D2275402412} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{C0E91259-74A8-48EE-B605-107477516731}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "ref\System.Diagnostics.PerformanceCounter.csproj", "{5BDC8641-E3EE-47B5-BE7B-2D2275402412}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{BE15582B-9584-4471-9BB4-8A30EC31B9C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{067570A0-D55A-4ECC-A478-B1CBC676E9F3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{96328529-3EB5-4BA4-9998-CB85E279E7F2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "ref\System.Diagnostics.PerformanceCounter.csproj", "{D0C681EE-D578-4CD6-AA62-33874FCE3E37}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter", "src\System.Diagnostics.PerformanceCounter.csproj", "{2B7C465F-44E2-4D0B-9A9F-30F20FA49A16}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.PerformanceCounter.Tests", "tests\System.Diagnostics.PerformanceCounter.Tests.csproj", "{EB8EF358-4028-4272-B71E-523F8D0A73F0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{F237AE76-582E-45B8-AC46-B0CE8C65780B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{C96B536F-198D-460B-95CE-2B2A9B7B8A92}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{D9D0B99B-E571-44C2-9C78-60FB81E177BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{765847B4-A28D-41F2-A45F-BC0098E3147E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{36353FFE-4248-4502-BF12-7AF63436FA08}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{2C707BFF-6BA9-4EB8-BC75-5341391B5FC6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{43214093-FA08-4699-A62B-D7BC858BAC78}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{F8480484-A2CA-4215-AC4B-82F6149FEC02}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{1E0AB255-7FD0-4DE0-9675-59DE81B12E54}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{016A2867-5988-47FA-A811-C570BA193FCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{97932D09-4DF9-4836-ADEF-C52DBC0661CD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{60DB3C65-9EDA-45AA-85E6-37F1375CF1E7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A83CA9C-4975-47B7-BD00-BA758D5D7BE2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0B9F466C-9D1A-4515-B60D-39D75C27DDA6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E51E7F90-8CFC-41C5-B3C6-4320EB5C164D}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {20B92E8C-E720-4B5A-8647-97CC1BD71E84} = {1A83CA9C-4975-47B7-BD00-BA758D5D7BE2} + {EB8EF358-4028-4272-B71E-523F8D0A73F0} = {1A83CA9C-4975-47B7-BD00-BA758D5D7BE2} + {C0E91259-74A8-48EE-B605-107477516731} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {067570A0-D55A-4ECC-A478-B1CBC676E9F3} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {D0C681EE-D578-4CD6-AA62-33874FCE3E37} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {F237AE76-582E-45B8-AC46-B0CE8C65780B} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {C96B536F-198D-460B-95CE-2B2A9B7B8A92} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {765847B4-A28D-41F2-A45F-BC0098E3147E} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {2C707BFF-6BA9-4EB8-BC75-5341391B5FC6} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {F8480484-A2CA-4215-AC4B-82F6149FEC02} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {016A2867-5988-47FA-A811-C570BA193FCA} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {97932D09-4DF9-4836-ADEF-C52DBC0661CD} = {0B9F466C-9D1A-4515-B60D-39D75C27DDA6} + {BE15582B-9584-4471-9BB4-8A30EC31B9C8} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {96328529-3EB5-4BA4-9998-CB85E279E7F2} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {2B7C465F-44E2-4D0B-9A9F-30F20FA49A16} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {D9D0B99B-E571-44C2-9C78-60FB81E177BB} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {36353FFE-4248-4502-BF12-7AF63436FA08} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {43214093-FA08-4699-A62B-D7BC858BAC78} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {1E0AB255-7FD0-4DE0-9675-59DE81B12E54} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + {60DB3C65-9EDA-45AA-85E6-37F1375CF1E7} = {E51E7F90-8CFC-41C5-B3C6-4320EB5C164D} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {296074B7-1CC9-497E-8C1E-FC5C985C75C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {296074B7-1CC9-497E-8C1E-FC5C985C75C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {296074B7-1CC9-497E-8C1E-FC5C985C75C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {296074B7-1CC9-497E-8C1E-FC5C985C75C6}.Release|Any CPU.Build.0 = Release|Any CPU - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA}.Release|Any CPU.Build.0 = Release|Any CPU - {5BDC8641-E3EE-47B5-BE7B-2D2275402412}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BDC8641-E3EE-47B5-BE7B-2D2275402412}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BDC8641-E3EE-47B5-BE7B-2D2275402412}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BDC8641-E3EE-47B5-BE7B-2D2275402412}.Release|Any CPU.Build.0 = Release|Any CPU - {69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC}.Release|Any CPU.Build.0 = Release|Any CPU + {20B92E8C-E720-4B5A-8647-97CC1BD71E84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20B92E8C-E720-4B5A-8647-97CC1BD71E84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20B92E8C-E720-4B5A-8647-97CC1BD71E84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20B92E8C-E720-4B5A-8647-97CC1BD71E84}.Release|Any CPU.Build.0 = Release|Any CPU + {C0E91259-74A8-48EE-B605-107477516731}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0E91259-74A8-48EE-B605-107477516731}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0E91259-74A8-48EE-B605-107477516731}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0E91259-74A8-48EE-B605-107477516731}.Release|Any CPU.Build.0 = Release|Any CPU + {BE15582B-9584-4471-9BB4-8A30EC31B9C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE15582B-9584-4471-9BB4-8A30EC31B9C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE15582B-9584-4471-9BB4-8A30EC31B9C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE15582B-9584-4471-9BB4-8A30EC31B9C8}.Release|Any CPU.Build.0 = Release|Any CPU + {067570A0-D55A-4ECC-A478-B1CBC676E9F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {067570A0-D55A-4ECC-A478-B1CBC676E9F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {067570A0-D55A-4ECC-A478-B1CBC676E9F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {067570A0-D55A-4ECC-A478-B1CBC676E9F3}.Release|Any CPU.Build.0 = Release|Any CPU + {96328529-3EB5-4BA4-9998-CB85E279E7F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96328529-3EB5-4BA4-9998-CB85E279E7F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96328529-3EB5-4BA4-9998-CB85E279E7F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96328529-3EB5-4BA4-9998-CB85E279E7F2}.Release|Any CPU.Build.0 = Release|Any CPU + {D0C681EE-D578-4CD6-AA62-33874FCE3E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0C681EE-D578-4CD6-AA62-33874FCE3E37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0C681EE-D578-4CD6-AA62-33874FCE3E37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0C681EE-D578-4CD6-AA62-33874FCE3E37}.Release|Any CPU.Build.0 = Release|Any CPU + {2B7C465F-44E2-4D0B-9A9F-30F20FA49A16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B7C465F-44E2-4D0B-9A9F-30F20FA49A16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B7C465F-44E2-4D0B-9A9F-30F20FA49A16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B7C465F-44E2-4D0B-9A9F-30F20FA49A16}.Release|Any CPU.Build.0 = Release|Any CPU + {EB8EF358-4028-4272-B71E-523F8D0A73F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB8EF358-4028-4272-B71E-523F8D0A73F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB8EF358-4028-4272-B71E-523F8D0A73F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB8EF358-4028-4272-B71E-523F8D0A73F0}.Release|Any CPU.Build.0 = Release|Any CPU + {F237AE76-582E-45B8-AC46-B0CE8C65780B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F237AE76-582E-45B8-AC46-B0CE8C65780B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F237AE76-582E-45B8-AC46-B0CE8C65780B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F237AE76-582E-45B8-AC46-B0CE8C65780B}.Release|Any CPU.Build.0 = Release|Any CPU + {C96B536F-198D-460B-95CE-2B2A9B7B8A92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C96B536F-198D-460B-95CE-2B2A9B7B8A92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C96B536F-198D-460B-95CE-2B2A9B7B8A92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C96B536F-198D-460B-95CE-2B2A9B7B8A92}.Release|Any CPU.Build.0 = Release|Any CPU + {D9D0B99B-E571-44C2-9C78-60FB81E177BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9D0B99B-E571-44C2-9C78-60FB81E177BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9D0B99B-E571-44C2-9C78-60FB81E177BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9D0B99B-E571-44C2-9C78-60FB81E177BB}.Release|Any CPU.Build.0 = Release|Any CPU + {765847B4-A28D-41F2-A45F-BC0098E3147E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {765847B4-A28D-41F2-A45F-BC0098E3147E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {765847B4-A28D-41F2-A45F-BC0098E3147E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {765847B4-A28D-41F2-A45F-BC0098E3147E}.Release|Any CPU.Build.0 = Release|Any CPU + {E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7465FB7-25E1-4822-BB4C-F9BFBE94BAD6}.Release|Any CPU.Build.0 = Release|Any CPU + {94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94DCEBA5-2ADA-4F1E-9573-8A2904FFCBD1}.Release|Any CPU.Build.0 = Release|Any CPU + {36353FFE-4248-4502-BF12-7AF63436FA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36353FFE-4248-4502-BF12-7AF63436FA08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36353FFE-4248-4502-BF12-7AF63436FA08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36353FFE-4248-4502-BF12-7AF63436FA08}.Release|Any CPU.Build.0 = Release|Any CPU + {2C707BFF-6BA9-4EB8-BC75-5341391B5FC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C707BFF-6BA9-4EB8-BC75-5341391B5FC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C707BFF-6BA9-4EB8-BC75-5341391B5FC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C707BFF-6BA9-4EB8-BC75-5341391B5FC6}.Release|Any CPU.Build.0 = Release|Any CPU + {43214093-FA08-4699-A62B-D7BC858BAC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43214093-FA08-4699-A62B-D7BC858BAC78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43214093-FA08-4699-A62B-D7BC858BAC78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43214093-FA08-4699-A62B-D7BC858BAC78}.Release|Any CPU.Build.0 = Release|Any CPU + {F8480484-A2CA-4215-AC4B-82F6149FEC02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8480484-A2CA-4215-AC4B-82F6149FEC02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8480484-A2CA-4215-AC4B-82F6149FEC02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8480484-A2CA-4215-AC4B-82F6149FEC02}.Release|Any CPU.Build.0 = Release|Any CPU + {1E0AB255-7FD0-4DE0-9675-59DE81B12E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E0AB255-7FD0-4DE0-9675-59DE81B12E54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E0AB255-7FD0-4DE0-9675-59DE81B12E54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E0AB255-7FD0-4DE0-9675-59DE81B12E54}.Release|Any CPU.Build.0 = Release|Any CPU + {016A2867-5988-47FA-A811-C570BA193FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {016A2867-5988-47FA-A811-C570BA193FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {016A2867-5988-47FA-A811-C570BA193FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {016A2867-5988-47FA-A811-C570BA193FCA}.Release|Any CPU.Build.0 = Release|Any CPU + {1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FBBD54B-1D47-4B9F-90D5-F0EAF577CEB3}.Release|Any CPU.Build.0 = Release|Any CPU + {97932D09-4DF9-4836-ADEF-C52DBC0661CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97932D09-4DF9-4836-ADEF-C52DBC0661CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97932D09-4DF9-4836-ADEF-C52DBC0661CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97932D09-4DF9-4836-ADEF-C52DBC0661CD}.Release|Any CPU.Build.0 = Release|Any CPU + {60DB3C65-9EDA-45AA-85E6-37F1375CF1E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60DB3C65-9EDA-45AA-85E6-37F1375CF1E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60DB3C65-9EDA-45AA-85E6-37F1375CF1E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60DB3C65-9EDA-45AA-85E6-37F1375CF1E7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {296074B7-1CC9-497E-8C1E-FC5C985C75C6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {9758106C-5D4E-475D-B5E7-B7ABC46B1DDA} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {5BDC8641-E3EE-47B5-BE7B-2D2275402412} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {69B86C3B-8C7E-4B19-ADF9-931B1C17E7AC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E55827A2-8680-4A49-858D-70A4E41D2B9F} + SolutionGuid = {51062B21-546F-4B2A-A2B8-77ABF1079C06} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj index 45ca8874696b..1499b5c6fe65 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj @@ -72,13 +72,13 @@ Link="Common\Interop\Windows\Kernel32\Interop.Constants.cs" /> - + - @@ -151,4 +151,4 @@ - \ No newline at end of file + diff --git a/src/libraries/System.Diagnostics.Process/System.Diagnostics.Process.sln b/src/libraries/System.Diagnostics.Process/System.Diagnostics.Process.sln index cc855fb6349e..f10207e2e951 100644 --- a/src/libraries/System.Diagnostics.Process/System.Diagnostics.Process.sln +++ b/src/libraries/System.Diagnostics.Process/System.Diagnostics.Process.sln @@ -1,60 +1,170 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process.Tests", "tests\System.Diagnostics.Process.Tests.csproj", "{E1114510-844C-4BB2-BBAD-8595BD16E24B}" - ProjectSection(ProjectDependencies) = postProject - {F55047F8-E47B-46E3-B221-C23595AFE168} = {F55047F8-E47B-46E3-B221-C23595AFE168} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3742D5F8-5C86-49FD-BAEA-050742CCEB7A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process", "src\System.Diagnostics.Process.csproj", "{F55047F8-E47B-46E3-B221-C23595AFE168}" - ProjectSection(ProjectDependencies) = postProject - {98B33275-39D8-4997-867D-04C69C69885E} = {98B33275-39D8-4997-867D-04C69C69885E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{AA583AE2-BE26-4AA4-845F-916133916B7D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process", "ref\System.Diagnostics.Process.csproj", "{98B33275-39D8-4997-867D-04C69C69885E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{E5AE4EB3-DB23-4F33-858B-63B68A60F7F1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process", "ref\System.Diagnostics.Process.csproj", "{4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process", "src\System.Diagnostics.Process.csproj", "{314810DF-262E-490E-8F05-F31695C31F0C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process.Tests", "tests\System.Diagnostics.Process.Tests.csproj", "{ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C1978154-3C91-4097-BEC4-027BDCF986B2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{F485B36D-8DDB-44EE-A993-2FCAEC81BE3E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{84075D59-9D5E-40F7-A914-911087419FE4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{6155E80C-6CE0-4A93-8BDF-80494E489BB1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{F58E8664-9E68-48FF-BDCB-674CECF2FF1D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{539D79BC-7E66-44B5-B072-30B068404822}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{2E775DDC-C58B-4EBA-BE62-9B08D7C48059}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{56677D77-0E77-42CD-A9DB-8493995E989F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{A0DE3634-6C95-4AA2-AFD5-733D352B6756}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{97763BA2-BD91-480C-8173-65EA2A72EAA8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{B8F3933C-7C0D-41B3-8B1F-D507EF92156B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{546D7B53-3A00-47A4-BBE0-F4BA12126D6F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{9C521ED1-5221-4C93-BBA0-86C13D4C23C7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{05C87914-711A-4589-9672-8169DB6A6BA4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9ABDFB23-5430-4410-81C3-3C0327996580}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9E2660FE-F883-4701-8AF9-AB56F848B884}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {3742D5F8-5C86-49FD-BAEA-050742CCEB7A} = {05C87914-711A-4589-9672-8169DB6A6BA4} + {ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D} = {05C87914-711A-4589-9672-8169DB6A6BA4} + {AA583AE2-BE26-4AA4-845F-916133916B7D} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {F485B36D-8DDB-44EE-A993-2FCAEC81BE3E} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {6155E80C-6CE0-4A93-8BDF-80494E489BB1} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {F58E8664-9E68-48FF-BDCB-674CECF2FF1D} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {2E775DDC-C58B-4EBA-BE62-9B08D7C48059} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {56677D77-0E77-42CD-A9DB-8493995E989F} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {97763BA2-BD91-480C-8173-65EA2A72EAA8} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {546D7B53-3A00-47A4-BBE0-F4BA12126D6F} = {9ABDFB23-5430-4410-81C3-3C0327996580} + {E5AE4EB3-DB23-4F33-858B-63B68A60F7F1} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {314810DF-262E-490E-8F05-F31695C31F0C} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {84075D59-9D5E-40F7-A914-911087419FE4} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {539D79BC-7E66-44B5-B072-30B068404822} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {A0DE3634-6C95-4AA2-AFD5-733D352B6756} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {B8F3933C-7C0D-41B3-8B1F-D507EF92156B} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + {9C521ED1-5221-4C93-BBA0-86C13D4C23C7} = {9E2660FE-F883-4701-8AF9-AB56F848B884} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E1114510-844C-4BB2-BBAD-8595BD16E24B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1114510-844C-4BB2-BBAD-8595BD16E24B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1114510-844C-4BB2-BBAD-8595BD16E24B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1114510-844C-4BB2-BBAD-8595BD16E24B}.Release|Any CPU.Build.0 = Release|Any CPU - {F55047F8-E47B-46E3-B221-C23595AFE168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F55047F8-E47B-46E3-B221-C23595AFE168}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F55047F8-E47B-46E3-B221-C23595AFE168}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F55047F8-E47B-46E3-B221-C23595AFE168}.Release|Any CPU.Build.0 = Release|Any CPU - {98B33275-39D8-4997-867D-04C69C69885E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98B33275-39D8-4997-867D-04C69C69885E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98B33275-39D8-4997-867D-04C69C69885E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98B33275-39D8-4997-867D-04C69C69885E}.Release|Any CPU.Build.0 = Release|Any CPU - {C1978154-3C91-4097-BEC4-027BDCF986B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C1978154-3C91-4097-BEC4-027BDCF986B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C1978154-3C91-4097-BEC4-027BDCF986B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C1978154-3C91-4097-BEC4-027BDCF986B2}.Release|Any CPU.Build.0 = Release|Any CPU + {3742D5F8-5C86-49FD-BAEA-050742CCEB7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3742D5F8-5C86-49FD-BAEA-050742CCEB7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3742D5F8-5C86-49FD-BAEA-050742CCEB7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3742D5F8-5C86-49FD-BAEA-050742CCEB7A}.Release|Any CPU.Build.0 = Release|Any CPU + {AA583AE2-BE26-4AA4-845F-916133916B7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA583AE2-BE26-4AA4-845F-916133916B7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA583AE2-BE26-4AA4-845F-916133916B7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA583AE2-BE26-4AA4-845F-916133916B7D}.Release|Any CPU.Build.0 = Release|Any CPU + {E5AE4EB3-DB23-4F33-858B-63B68A60F7F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5AE4EB3-DB23-4F33-858B-63B68A60F7F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5AE4EB3-DB23-4F33-858B-63B68A60F7F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5AE4EB3-DB23-4F33-858B-63B68A60F7F1}.Release|Any CPU.Build.0 = Release|Any CPU + {4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4792FFA1-1AD2-4230-8DE3-D2BCF1CF804F}.Release|Any CPU.Build.0 = Release|Any CPU + {314810DF-262E-490E-8F05-F31695C31F0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {314810DF-262E-490E-8F05-F31695C31F0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {314810DF-262E-490E-8F05-F31695C31F0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {314810DF-262E-490E-8F05-F31695C31F0C}.Release|Any CPU.Build.0 = Release|Any CPU + {ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABA61FEF-EB06-441D-9D3D-F25FFC7CD83D}.Release|Any CPU.Build.0 = Release|Any CPU + {F485B36D-8DDB-44EE-A993-2FCAEC81BE3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F485B36D-8DDB-44EE-A993-2FCAEC81BE3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F485B36D-8DDB-44EE-A993-2FCAEC81BE3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F485B36D-8DDB-44EE-A993-2FCAEC81BE3E}.Release|Any CPU.Build.0 = Release|Any CPU + {84075D59-9D5E-40F7-A914-911087419FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84075D59-9D5E-40F7-A914-911087419FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84075D59-9D5E-40F7-A914-911087419FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84075D59-9D5E-40F7-A914-911087419FE4}.Release|Any CPU.Build.0 = Release|Any CPU + {6155E80C-6CE0-4A93-8BDF-80494E489BB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6155E80C-6CE0-4A93-8BDF-80494E489BB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6155E80C-6CE0-4A93-8BDF-80494E489BB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6155E80C-6CE0-4A93-8BDF-80494E489BB1}.Release|Any CPU.Build.0 = Release|Any CPU + {F58E8664-9E68-48FF-BDCB-674CECF2FF1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F58E8664-9E68-48FF-BDCB-674CECF2FF1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F58E8664-9E68-48FF-BDCB-674CECF2FF1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F58E8664-9E68-48FF-BDCB-674CECF2FF1D}.Release|Any CPU.Build.0 = Release|Any CPU + {539D79BC-7E66-44B5-B072-30B068404822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {539D79BC-7E66-44B5-B072-30B068404822}.Debug|Any CPU.Build.0 = Debug|Any CPU + {539D79BC-7E66-44B5-B072-30B068404822}.Release|Any CPU.ActiveCfg = Release|Any CPU + {539D79BC-7E66-44B5-B072-30B068404822}.Release|Any CPU.Build.0 = Release|Any CPU + {2E775DDC-C58B-4EBA-BE62-9B08D7C48059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E775DDC-C58B-4EBA-BE62-9B08D7C48059}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E775DDC-C58B-4EBA-BE62-9B08D7C48059}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E775DDC-C58B-4EBA-BE62-9B08D7C48059}.Release|Any CPU.Build.0 = Release|Any CPU + {3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BF99E45-BBB6-47B5-A3F3-B7844A9E7D5F}.Release|Any CPU.Build.0 = Release|Any CPU + {56677D77-0E77-42CD-A9DB-8493995E989F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56677D77-0E77-42CD-A9DB-8493995E989F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56677D77-0E77-42CD-A9DB-8493995E989F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56677D77-0E77-42CD-A9DB-8493995E989F}.Release|Any CPU.Build.0 = Release|Any CPU + {A0DE3634-6C95-4AA2-AFD5-733D352B6756}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0DE3634-6C95-4AA2-AFD5-733D352B6756}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0DE3634-6C95-4AA2-AFD5-733D352B6756}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0DE3634-6C95-4AA2-AFD5-733D352B6756}.Release|Any CPU.Build.0 = Release|Any CPU + {97763BA2-BD91-480C-8173-65EA2A72EAA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97763BA2-BD91-480C-8173-65EA2A72EAA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97763BA2-BD91-480C-8173-65EA2A72EAA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97763BA2-BD91-480C-8173-65EA2A72EAA8}.Release|Any CPU.Build.0 = Release|Any CPU + {B8F3933C-7C0D-41B3-8B1F-D507EF92156B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8F3933C-7C0D-41B3-8B1F-D507EF92156B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8F3933C-7C0D-41B3-8B1F-D507EF92156B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8F3933C-7C0D-41B3-8B1F-D507EF92156B}.Release|Any CPU.Build.0 = Release|Any CPU + {8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B941B7A-8EA3-4DB3-BBE4-27B12ECBC00F}.Release|Any CPU.Build.0 = Release|Any CPU + {6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CB8C6A4-3D21-47F6-A9A3-A9D1DA3E6B9F}.Release|Any CPU.Build.0 = Release|Any CPU + {546D7B53-3A00-47A4-BBE0-F4BA12126D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {546D7B53-3A00-47A4-BBE0-F4BA12126D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {546D7B53-3A00-47A4-BBE0-F4BA12126D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {546D7B53-3A00-47A4-BBE0-F4BA12126D6F}.Release|Any CPU.Build.0 = Release|Any CPU + {9C521ED1-5221-4C93-BBA0-86C13D4C23C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C521ED1-5221-4C93-BBA0-86C13D4C23C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C521ED1-5221-4C93-BBA0-86C13D4C23C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C521ED1-5221-4C93-BBA0-86C13D4C23C7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E1114510-844C-4BB2-BBAD-8595BD16E24B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F55047F8-E47B-46E3-B221-C23595AFE168} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {98B33275-39D8-4997-867D-04C69C69885E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {C1978154-3C91-4097-BEC4-027BDCF986B2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {80AB55A3-9829-474C-B17D-CC239ECC04CE} + SolutionGuid = {B723DDA5-3A21-4A9C-A344-548BE6D05B72} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj index 7799b1fbfe4f..3c41c1027ffc 100644 --- a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +++ b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj @@ -1,4 +1,4 @@ - + $(DefineConstants);FEATURE_REGISTRY true @@ -40,7 +40,9 @@ + Link="Common\System\Threading\Tasks\TaskTimeoutExtensions.cs" /> + - @@ -143,8 +145,10 @@ Link="Common\Interop\Windows\Kernel32\Interop.GetPriorityClass.cs" /> - + + - - diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs index 6b2e44b90112..c24fcee6e152 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs @@ -556,7 +556,7 @@ private bool StartCore(ProcessStartInfo startInfo) private static string[] ParseArgv(ProcessStartInfo psi, string? resolvedExe = null, bool ignoreArguments = false) { if (string.IsNullOrEmpty(resolvedExe) && - (ignoreArguments || (string.IsNullOrEmpty(psi.Arguments) && psi.ArgumentList.Count == 0))) + (ignoreArguments || (string.IsNullOrEmpty(psi.Arguments) && !psi.HasArgumentList))) { return new string[] { psi.FileName }; } @@ -579,7 +579,7 @@ private static string[] ParseArgv(ProcessStartInfo psi, string? resolvedExe = nu { ParseArgumentsIntoList(psi.Arguments, argvList); } - else + else if (psi.HasArgumentList) { argvList.AddRange(psi.ArgumentList); } diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Windows.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Windows.cs index 44323f9ef711..e904dbbff06f 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Windows.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Windows.cs @@ -458,13 +458,13 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) // * CreateProcess allows you to redirect all or none of the standard IO handles, so we use // GetStdHandle for the handles that are not being redirected - StringBuilder commandLine = BuildCommandLine(startInfo); + var commandLine = new ValueStringBuilder(stackalloc char[256]); + BuildCommandLine(startInfo, ref commandLine); Interop.Kernel32.STARTUPINFO startupInfo = default; Interop.Kernel32.PROCESS_INFORMATION processInfo = default; Interop.Kernel32.SECURITY_ATTRIBUTES unused_SecAttrs = default; SafeProcessHandle procSH = new SafeProcessHandle(); - SafeThreadHandle threadSH = new SafeThreadHandle(); // handles used in parent process SafeFileHandle? parentInputPipeHandle = null; @@ -532,9 +532,12 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) creationFlags |= Interop.Advapi32.StartupInfoOptions.CREATE_UNICODE_ENVIRONMENT; environmentBlock = GetEnvironmentVariablesBlock(startInfo._environmentVariables!); } - string workingDirectory = startInfo.WorkingDirectory; + + string? workingDirectory = startInfo.WorkingDirectory; if (workingDirectory.Length == 0) - workingDirectory = Directory.GetCurrentDirectory(); + { + workingDirectory = null; + } bool retVal; int errorCode = 0; @@ -554,6 +557,7 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) fixed (char* passwordInClearTextPtr = startInfo.PasswordInClearText ?? string.Empty) fixed (char* environmentBlockPtr = environmentBlock) + fixed (char* commandLinePtr = &commandLine.GetPinnableReference(terminate: true)) { IntPtr passwordPtr = (startInfo.Password != null) ? Marshal.SecureStringToGlobalAllocUnicode(startInfo.Password) : IntPtr.Zero; @@ -566,7 +570,7 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) (passwordPtr != IntPtr.Zero) ? passwordPtr : (IntPtr)passwordInClearTextPtr, logonFlags, null, // we don't need this since all the info is in commandLine - commandLine, + commandLinePtr, creationFlags, (IntPtr)environmentBlockPtr, workingDirectory, @@ -586,10 +590,11 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) else { fixed (char* environmentBlockPtr = environmentBlock) + fixed (char* commandLinePtr = &commandLine.GetPinnableReference(terminate: true)) { retVal = Interop.Kernel32.CreateProcess( null, // we don't need this since all the info is in commandLine - commandLine, // pointer to the command line string + commandLinePtr, // pointer to the command line string ref unused_SecAttrs, // address to process security attributes, we don't need to inherit the handle ref unused_SecAttrs, // address to thread security attributes. true, // handle inheritance flag @@ -607,7 +612,7 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) if (processInfo.hProcess != IntPtr.Zero && processInfo.hProcess != new IntPtr(-1)) procSH.InitialSetHandle(processInfo.hProcess); if (processInfo.hThread != IntPtr.Zero && processInfo.hThread != new IntPtr(-1)) - threadSH.InitialSetHandle(processInfo.hThread); + Interop.Kernel32.CloseHandle(processInfo.hThread); if (!retVal) { @@ -623,8 +628,6 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) childInputPipeHandle?.Dispose(); childOutputPipeHandle?.Dispose(); childErrorPipeHandle?.Dispose(); - - threadSH?.Dispose(); } } @@ -645,6 +648,8 @@ private unsafe bool StartWithCreateProcess(ProcessStartInfo startInfo) _standardError = new StreamReader(new FileStream(parentErrorPipeHandle!, FileAccess.Read, 4096, false), enc, true, 4096); } + commandLine.Dispose(); + if (procSH.IsInvalid) return false; @@ -661,14 +666,13 @@ private static Encoding GetEncoding(int codePage) private bool _signaled; - private static StringBuilder BuildCommandLine(ProcessStartInfo startInfo) + private static void BuildCommandLine(ProcessStartInfo startInfo, ref ValueStringBuilder commandLine) { // Construct a StringBuilder with the appropriate command line // to pass to CreateProcess. If the filename isn't already // in quotes, we quote it here. This prevents some security // problems (it specifies exactly which part of the string // is the file to execute). - StringBuilder commandLine = new StringBuilder(); ReadOnlySpan fileName = startInfo.FileName.AsSpan().Trim(); bool fileNameIsQuoted = fileName.Length > 0 && fileName[0] == '\"' && fileName[fileName.Length - 1] == '\"'; if (!fileNameIsQuoted) @@ -683,9 +687,7 @@ private static StringBuilder BuildCommandLine(ProcessStartInfo startInfo) commandLine.Append('"'); } - startInfo.AppendArgumentsTo(commandLine); - - return commandLine; + startInfo.AppendArgumentsTo(ref commandLine); } /// Gets timing information for the current process. @@ -713,15 +715,13 @@ private ProcessThreadTimes GetProcessTimes() private static unsafe void SetPrivilege(string privilegeName, int attrib) { // this is only a "pseudo handle" to the current process - no need to close it later - SafeProcessHandle processHandle = Interop.Kernel32.GetCurrentProcess(); - SafeTokenHandle? hToken = null; try { // get the process token so we can adjust the privilege on it. We DO need to // close the token when we're done with it. - if (!Interop.Advapi32.OpenProcessToken(processHandle, Interop.Kernel32.HandleOptions.TOKEN_ADJUST_PRIVILEGES, out hToken)) + if (!Interop.Advapi32.OpenProcessToken(Interop.Kernel32.GetCurrentProcess(), Interop.Kernel32.HandleOptions.TOKEN_ADJUST_PRIVILEGES, out hToken)) { throw new Win32Exception(); } @@ -760,7 +760,7 @@ private static unsafe void SetPrivilege(string privilegeName, int attrib) /// Note that the handle we stored in current process object will have all access we need. /// /// - private SafeProcessHandle GetProcessHandle(int access, bool throwIfExited) + private SafeProcessHandle GetProcessHandle(int access, bool throwIfExited = true) { if (_haveProcessHandle) { @@ -773,10 +773,9 @@ private SafeProcessHandle GetProcessHandle(int access, bool throwIfExited) { if (waitHandle.WaitOne(0)) { - if (_haveProcessId) - throw new InvalidOperationException(SR.Format(SR.ProcessHasExited, _processId.ToString())); - else - throw new InvalidOperationException(SR.ProcessHasExitedNoId); + throw new InvalidOperationException(_haveProcessId ? + SR.Format(SR.ProcessHasExited, _processId.ToString()) : + SR.ProcessHasExitedNoId); } } } @@ -789,8 +788,7 @@ private SafeProcessHandle GetProcessHandle(int access, bool throwIfExited) else { EnsureState(State.HaveId | State.IsLocal); - SafeProcessHandle handle = SafeProcessHandle.InvalidHandle; - handle = ProcessManager.OpenProcess(_processId, access, throwIfExited); + SafeProcessHandle handle = ProcessManager.OpenProcess(_processId, access, throwIfExited); if (throwIfExited && (access & Interop.Advapi32.ProcessOptions.PROCESS_QUERY_INFORMATION) != 0) { if (Interop.Kernel32.GetExitCodeProcess(handle, out _exitCode) && _exitCode != Interop.Kernel32.HandleOptions.STILL_ACTIVE) @@ -802,16 +800,6 @@ private SafeProcessHandle GetProcessHandle(int access, bool throwIfExited) } } - /// - /// Gets a short-term handle to the process, with the given access. If a handle exists, - /// then it is reused. If the process has exited, it throws an exception. - /// - /// - private SafeProcessHandle GetProcessHandle(int access) - { - return GetProcessHandle(access, true); - } - private static void CreatePipeWithSecurityAttributes(out SafeFileHandle hReadPipe, out SafeFileHandle hWritePipe, ref Interop.Kernel32.SECURITY_ATTRIBUTES lpPipeAttributes, int nSize) { bool ret = Interop.Kernel32.CreatePipe(out hReadPipe, out hWritePipe, ref lpPipeAttributes, nSize); @@ -852,7 +840,7 @@ private void CreatePipe(out SafeFileHandle parentHandle, out SafeFileHandle chil // One potential theory is that child process can do something brain dead like // closing the parent end of the pipe and there by getting into a blocking situation // as parent will not be draining the pipe at the other end anymore. - SafeProcessHandle currentProcHandle = Interop.Kernel32.GetCurrentProcess(); + IntPtr currentProcHandle = Interop.Kernel32.GetCurrentProcess(); if (!Interop.Kernel32.DuplicateHandle(currentProcHandle, hTmp, currentProcHandle, diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs index ab5e7be8c278..53fd78776b08 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs @@ -1218,7 +1218,7 @@ public bool Start() { throw new InvalidOperationException(SR.StandardErrorEncodingNotAllowed); } - if (!string.IsNullOrEmpty(startInfo.Arguments) && startInfo.ArgumentList.Count > 0) + if (!string.IsNullOrEmpty(startInfo.Arguments) && startInfo.HasArgumentList) { throw new InvalidOperationException(SR.ArgumentAndArgumentListInitialized); } diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs index 01461e9b4f06..957d0746cc9c 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs @@ -4,18 +4,13 @@ using System.Collections.Generic; using System.Globalization; using System.IO; -using System.Linq; -using System.Text; namespace System.Diagnostics { internal static partial class ProcessManager { /// Gets the IDs of all processes on the current machine. - public static int[] GetProcessIds() - { - return EnumerateProcessIds().ToArray(); - } + public static int[] GetProcessIds() => new List(EnumerateProcessIds()).ToArray(); /// Gets process infos for each process on the specified machine. /// The target machine. @@ -23,11 +18,10 @@ public static int[] GetProcessIds() public static ProcessInfo[] GetProcessInfos(string machineName) { ThrowIfRemoteMachine(machineName); - int[] procIds = GetProcessIds(machineName); // Iterate through all process IDs to load information about each process - var processes = new List(procIds.Length); - foreach (int pid in procIds) + var processes = new List(); + foreach (int pid in EnumerateProcessIds()) { ProcessInfo? pi = CreateProcessInfo(pid); if (pi != null) diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs index 050afb547972..6379245b5127 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs @@ -63,17 +63,9 @@ public string Arguments set => _arguments = value; } - public Collection ArgumentList - { - get - { - if (_argumentList == null) - { - _argumentList = new Collection(); - } - return _argumentList; - } - } + public Collection ArgumentList => _argumentList ??= new Collection(); + + internal bool HasArgumentList => _argumentList is not null && _argumentList.Count != 0; public bool CreateNoWindow { get; set; } @@ -176,25 +168,23 @@ public ProcessWindowStyle WindowStyle internal string BuildArguments() { - if (_argumentList == null || _argumentList.Count == 0) + if (HasArgumentList) { - return Arguments; - } - else - { - var stringBuilder = new StringBuilder(); - AppendArgumentsTo(stringBuilder); - return stringBuilder.ToString(); + var arguments = new ValueStringBuilder(stackalloc char[256]); + AppendArgumentsTo(ref arguments); + return arguments.ToString(); } + + return Arguments; } - internal void AppendArgumentsTo(StringBuilder stringBuilder) + internal void AppendArgumentsTo(ref ValueStringBuilder stringBuilder) { if (_argumentList != null && _argumentList.Count > 0) { foreach (string argument in _argumentList) { - PasteArguments.AppendArgument(stringBuilder, argument); + PasteArguments.AppendArgument(ref stringBuilder, argument); } } else if (!string.IsNullOrEmpty(Arguments)) diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessModuleTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessModuleTests.cs index b716d4b709fe..2a7d67888c32 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessModuleTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessModuleTests.cs @@ -83,8 +83,10 @@ public void ModulesAreDisposedWhenProcessIsDisposed() processModule.Disposed += (_, __) => disposedCount += 1; } - process.Dispose(); + KillWait(process); + Assert.Equal(0, disposedCount); + process.Dispose(); Assert.Equal(expectedCount, disposedCount); } } diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessStartInfoTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessStartInfoTests.cs index 3d946ade10e2..88b1573536ae 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessStartInfoTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessStartInfoTests.cs @@ -947,11 +947,7 @@ public void StartInfo_NotepadWithContent(bool useShellExecute) try { - process.WaitForInputIdle(); // Give the file a chance to load - Assert.Equal("notepad", process.ProcessName); - - // On some Windows versions, the file extension is not included in the title - Assert.StartsWith(Path.GetFileNameWithoutExtension(tempFile), process.MainWindowTitle); + VerifyNotepadMainWindowTitle(process, tempFile); } finally { @@ -961,6 +957,7 @@ public void StartInfo_NotepadWithContent(bool useShellExecute) } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoServer), // Nano does not support UseShellExecute + nameof(PlatformDetection.IsNotWindowsServerCore), // https://github.com/dotnet/runtime/issues/26231 nameof(PlatformDetection.IsNotWindows8x))] // https://github.com/dotnet/runtime/issues/22007 [OuterLoop("Launches notepad")] [PlatformSpecific(TestPlatforms.Windows)] @@ -985,18 +982,7 @@ public void StartInfo_TextFile_ShellExecute() try { - process.WaitForInputIdle(); // Give the file a chance to load - Assert.Equal("notepad", process.ProcessName); - - if (PlatformDetection.IsInAppContainer) - { - Assert.Throws(() => process.MainWindowTitle); - } - else - { - // On some Windows versions, the file extension is not included in the title - Assert.StartsWith(Path.GetFileNameWithoutExtension(tempFile), process.MainWindowTitle); - } + VerifyNotepadMainWindowTitle(process, tempFile); } finally { @@ -1172,11 +1158,7 @@ public void StartInfo_NotepadWithContent_withArgumentList(bool useShellExecute) try { - process.WaitForInputIdle(); // Give the file a chance to load - Assert.Equal("notepad", process.ProcessName); - - // On some Windows versions, the file extension is not included in the title - Assert.StartsWith(Path.GetFileNameWithoutExtension(tempFile), process.MainWindowTitle); + VerifyNotepadMainWindowTitle(process, tempFile); } finally { @@ -1184,5 +1166,35 @@ public void StartInfo_NotepadWithContent_withArgumentList(bool useShellExecute) } } } + + private void VerifyNotepadMainWindowTitle(Process process, string filename) + { + if (PlatformDetection.IsWindowsServerCore) + { + return; // On Server Core, notepad exists but does not return a title + } + + // On some Windows versions, the file extension is not included in the title + string expected = Path.GetFileNameWithoutExtension(filename); + + process.WaitForInputIdle(); // Give the file a chance to load + Assert.Equal("notepad", process.ProcessName); + + // Notepad calls CreateWindowEx with pWindowName of empty string, then calls SetWindowTextW + // with "Untitled - Notepad" then finally if you're opening a file, calls SetWindowTextW + // with something similar to "myfilename - Notepad". So there's a race between input idle + // and the expected MainWindowTitle because of how Notepad is implemented. + string title = process.MainWindowTitle; + int count = 0; + while (!title.StartsWith(expected) && count < 500) + { + Thread.Sleep(10); + process.Refresh(); + title = process.MainWindowTitle; + count++; + } + + Assert.StartsWith(expected, title); + } } } diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.NonUap.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.NonUap.cs index 8081a56e1c82..0270ae2da856 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.NonUap.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.NonUap.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Reflection; +using System.Runtime.CompilerServices; using System.Threading; using Microsoft.DotNet.RemoteExecutor; using Xunit; @@ -11,14 +12,14 @@ namespace System.Diagnostics.Tests { partial class ProcessTestBase { - protected Process CreateProcessLong() + protected Process CreateProcessLong([CallerMemberName] string callerName = null) { - return CreateSleepProcess(RemotelyInvokable.WaitInMS); + return CreateSleepProcess(RemotelyInvokable.WaitInMS, callerName); } - protected Process CreateSleepProcess(int durationMs) + protected Process CreateSleepProcess(int durationMs, [CallerMemberName] string callerName = null) { - return CreateProcess(RemotelyInvokable.Sleep, durationMs.ToString()); + return CreateProcess(RemotelyInvokable.Sleep, durationMs.ToString(), callerName); } protected Process CreateProcessPortable(Func func) diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.cs index 6b1d00ea06b2..73290b4a776c 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessTestBase.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.IO; -using System.Reflection; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Microsoft.DotNet.RemoteExecutor; @@ -17,10 +17,12 @@ public partial class ProcessTestBase : FileCleanupTestBase protected Process _process; protected readonly List _processes = new List(); - protected Process CreateDefaultProcess() + protected Process CreateDefaultProcess([CallerMemberName] string callerName = null) { - _process = CreateProcessLong(); + Assert.Null(_process); + _process = CreateProcessLong(callerName); _process.Start(); + AddProcessForDispose(_process); return _process; } @@ -81,8 +83,28 @@ protected Process CreateProcess(Func method, string arg, bool autoD p = handle.Process; handle.Process = null; } + if (autoDispose) + { AddProcessForDispose(p); + } + + return p; + } + + protected Process CreateProcess(Func method, string arg1, string arg2, bool autoDispose = true) + { + Process p = null; + using (RemoteInvokeHandle handle = RemoteExecutor.Invoke(method, arg1, arg2, new RemoteInvokeOptions { Start = false })) + { + p = handle.Process; + handle.Process = null; + } + + if (autoDispose) + { + AddProcessForDispose(p); + } return p; } @@ -103,6 +125,11 @@ protected void StartSleepKillWait(Process p) { p.Start(); Thread.Sleep(200); + KillWait(p); + } + + protected void KillWait(Process p) + { p.Kill(); Assert.True(p.WaitForExit(WaitInMS)); p.WaitForExit(); // wait for event handlers to complete diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs index 960eaec81040..f296ebc6e42a 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs @@ -147,7 +147,8 @@ public void TestExited_SynchronizingObject(bool invokeRequired) BeginInvokeDelegate = (d, args) => { Assert.Null(beginInvokeTask); - beginInvokeTask = Task.Run(() => d.DynamicInvoke(args)); + beginInvokeTask = new Task(() => d.DynamicInvoke(args)); + beginInvokeTask.Start(TaskScheduler.Default); return beginInvokeTask; } }; @@ -1877,6 +1878,7 @@ public void Process_StartInvalidNamesTest() Assert.Throws(() => Process.Start("exe", string.Empty, new SecureString(), "thisDomain")); } + [OuterLoop("May take many seconds the first time it's run")] [Fact] [PlatformSpecific(TestPlatforms.Windows)] // Starting process with authentication not supported on Unix public void Process_StartWithInvalidUserNamePassword() diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessThreadTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessThreadTests.cs index 0a39333d27a8..2266582ac519 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessThreadTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessThreadTests.cs @@ -82,8 +82,10 @@ public void ThreadsAreDisposedWhenProcessIsDisposed() processThread.Disposed += (_, __) => disposedCount += 1; } - process.Dispose(); + KillWait(process); + Assert.Equal(0, disposedCount); + process.Dispose(); Assert.Equal(expectedCount, disposedCount); } diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs index bb0edda25e27..702544c4d95f 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessWaitingTests.cs @@ -639,14 +639,15 @@ public async Task WaitAsyncForSelfTerminatingChild() [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] public async Task WaitAsyncForProcess() { - Process p = CreateSleepProcess(WaitInMS); - p.Start(); + Process p = CreateDefaultProcess(); Task processTask = p.WaitForExitAsync(); - Task delayTask = Task.Delay(WaitInMS * 2); + Assert.False(p.HasExited); + Assert.False(processTask.IsCompleted); + + p.Kill(); + await processTask; - Task result = await Task.WhenAny(processTask, delayTask); - Assert.Equal(processTask, result); Assert.True(p.HasExited); } diff --git a/src/libraries/System.Diagnostics.Process/tests/RemotelyInvokable.cs b/src/libraries/System.Diagnostics.Process/tests/RemotelyInvokable.cs index 39b1536224e7..7d7fa6657c08 100644 --- a/src/libraries/System.Diagnostics.Process/tests/RemotelyInvokable.cs +++ b/src/libraries/System.Diagnostics.Process/tests/RemotelyInvokable.cs @@ -28,8 +28,9 @@ public static int Dummy() return SuccessExitCode; } - public static int Sleep(string duration) + public static int Sleep(string duration, string callerName) { + _ = callerName; // argument ignored, for debugging purposes Thread.Sleep(int.Parse(duration)); return SuccessExitCode; } diff --git a/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj b/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj index 74794bd94e3a..e13a604a1a44 100644 --- a/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj +++ b/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj @@ -15,6 +15,8 @@ Link="Common\System\ShouldNotBeInvokedException.cs" /> + diff --git a/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln b/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln index 666faf8fa7ee..064c4f111028 100644 --- a/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln +++ b/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln @@ -1,102 +1,375 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace.Tests", "tests\System.Diagnostics.StackTrace.Tests.csproj", "{297A9116-1005-499D-A895-2063D03E4C94}" - ProjectSection(ProjectDependencies) = postProject - {02304469-722E-4723-92A1-820B9A37D275} = {02304469-722E-4723-92A1-820B9A37D275} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E34F351F-8EB7-4D44-BA44-85F791F662CC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace", "src\System.Diagnostics.StackTrace.csproj", "{02304469-722E-4723-92A1-820B9A37D275}" - ProjectSection(ProjectDependencies) = postProject - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6} = {C38217EF-88F4-4D56-9F58-780BE1DDAFF6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{65FFFD20-CE5D-4FC0-A525-1C308186A16F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace", "ref\System.Diagnostics.StackTrace.csproj", "{C38217EF-88F4-4D56-9F58-780BE1DDAFF6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{4BE25797-A2B8-4208-B191-C78C7E127150}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "..\System.Collections.Concurrent\src\System.Collections.Concurrent.csproj", "{26367C54-C1A4-462F-AA71-E48644208AE9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{1A44729F-AFB5-4BB0-8348-58833378AE55}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{854C7BBD-8B87-44AE-B109-421647CD5959}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace", "ref\System.Diagnostics.StackTrace.csproj", "{A8BB1002-C4B3-4B77-9A99-908FC6C84811}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "..\System.Collections.Concurrent\src\System.Collections.Concurrent.csproj", "{ADDF4CDC-9F80-492C-85B5-908E34B64D74}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace", "src\System.Diagnostics.StackTrace.csproj", "{B1632FA3-4F01-4B41-BB61-F7676A25EDA0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "..\System.IO.FileSystem\src\System.IO.FileSystem.csproj", "{6E4DEE24-716D-4E97-877B-83B138020091}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.StackTrace.Tests", "tests\System.Diagnostics.StackTrace.Tests.csproj", "{956E53A2-5A41-44A7-900A-49044376B2BD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{20636DC7-EB9C-4E40-B10C-BC023B4AEEDF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "..\System.Diagnostics.Tracing\src\System.Diagnostics.Tracing.csproj", "{96501106-36D0-4093-8FEE-AF90713D09ED}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{5D5B7D66-AEB4-41A1-AB8A-1AB884A65064}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{E6DD9860-2824-43D3-BD9D-87ED396B4E46}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{456DBDB3-EF0D-4517-8893-8D5087CA3254}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{085360DE-8FF9-4725-8014-3C660BB36A25}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{DDB26596-113C-471A-91B0-9609C743ACA1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E5CCAE24-D76A-4409-BED8-A4E3F188A64A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{449DFAB8-C413-44E4-BEAE-C61595DBCBC2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{623D46A5-8ED4-43CF-A01B-528F0A505090}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E98C1B4A-F81B-4175-BB49-09084A619C9B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{896EF7E4-D13F-429F-A69C-C52A3FA5B099}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{039BB256-1BCF-4398-B586-C05F7C5225C4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3D631FAC-8298-4D64-9955-94A7708FFE7D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C3ED1FA4-1540-4E02-B3CD-994049663AFD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A207BC1D-9996-43E8-B034-029B67CE2BCD}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E34F351F-8EB7-4D44-BA44-85F791F662CC} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {26367C54-C1A4-462F-AA71-E48644208AE9} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {1A44729F-AFB5-4BB0-8348-58833378AE55} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {96501106-36D0-4093-8FEE-AF90713D09ED} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {E6DD9860-2824-43D3-BD9D-87ED396B4E46} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {623D46A5-8ED4-43CF-A01B-528F0A505090} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {039BB256-1BCF-4398-B586-C05F7C5225C4} = {3D631FAC-8298-4D64-9955-94A7708FFE7D} + {65FFFD20-CE5D-4FC0-A525-1C308186A16F} = {C3ED1FA4-1540-4E02-B3CD-994049663AFD} + {956E53A2-5A41-44A7-900A-49044376B2BD} = {C3ED1FA4-1540-4E02-B3CD-994049663AFD} + {4BE25797-A2B8-4208-B191-C78C7E127150} = {A207BC1D-9996-43E8-B034-029B67CE2BCD} + {A8BB1002-C4B3-4B77-9A99-908FC6C84811} = {A207BC1D-9996-43E8-B034-029B67CE2BCD} + {DDB26596-113C-471A-91B0-9609C743ACA1} = {A207BC1D-9996-43E8-B034-029B67CE2BCD} + {E98C1B4A-F81B-4175-BB49-09084A619C9B} = {A207BC1D-9996-43E8-B034-029B67CE2BCD} + {896EF7E4-D13F-429F-A69C-C52A3FA5B099} = {A207BC1D-9996-43E8-B034-029B67CE2BCD} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {297A9116-1005-499D-A895-2063D03E4C94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {297A9116-1005-499D-A895-2063D03E4C94}.Debug|Any CPU.Build.0 = Debug|Any CPU - {297A9116-1005-499D-A895-2063D03E4C94}.Release|Any CPU.ActiveCfg = Release|Any CPU - {297A9116-1005-499D-A895-2063D03E4C94}.Release|Any CPU.Build.0 = Release|Any CPU - {02304469-722E-4723-92A1-820B9A37D275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02304469-722E-4723-92A1-820B9A37D275}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02304469-722E-4723-92A1-820B9A37D275}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02304469-722E-4723-92A1-820B9A37D275}.Release|Any CPU.Build.0 = Release|Any CPU - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6}.Release|Any CPU.Build.0 = Release|Any CPU - {854C7BBD-8B87-44AE-B109-421647CD5959}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {854C7BBD-8B87-44AE-B109-421647CD5959}.Debug|Any CPU.Build.0 = Debug|Any CPU - {854C7BBD-8B87-44AE-B109-421647CD5959}.Release|Any CPU.ActiveCfg = Release|Any CPU - {854C7BBD-8B87-44AE-B109-421647CD5959}.Release|Any CPU.Build.0 = Release|Any CPU - {ADDF4CDC-9F80-492C-85B5-908E34B64D74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADDF4CDC-9F80-492C-85B5-908E34B64D74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADDF4CDC-9F80-492C-85B5-908E34B64D74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADDF4CDC-9F80-492C-85B5-908E34B64D74}.Release|Any CPU.Build.0 = Release|Any CPU - {6E4DEE24-716D-4E97-877B-83B138020091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E4DEE24-716D-4E97-877B-83B138020091}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E4DEE24-716D-4E97-877B-83B138020091}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E4DEE24-716D-4E97-877B-83B138020091}.Release|Any CPU.Build.0 = Release|Any CPU - {20636DC7-EB9C-4E40-B10C-BC023B4AEEDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20636DC7-EB9C-4E40-B10C-BC023B4AEEDF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20636DC7-EB9C-4E40-B10C-BC023B4AEEDF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20636DC7-EB9C-4E40-B10C-BC023B4AEEDF}.Release|Any CPU.Build.0 = Release|Any CPU - {5D5B7D66-AEB4-41A1-AB8A-1AB884A65064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D5B7D66-AEB4-41A1-AB8A-1AB884A65064}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D5B7D66-AEB4-41A1-AB8A-1AB884A65064}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D5B7D66-AEB4-41A1-AB8A-1AB884A65064}.Release|Any CPU.Build.0 = Release|Any CPU - {456DBDB3-EF0D-4517-8893-8D5087CA3254}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {456DBDB3-EF0D-4517-8893-8D5087CA3254}.Debug|Any CPU.Build.0 = Debug|Any CPU - {456DBDB3-EF0D-4517-8893-8D5087CA3254}.Release|Any CPU.ActiveCfg = Release|Any CPU - {456DBDB3-EF0D-4517-8893-8D5087CA3254}.Release|Any CPU.Build.0 = Release|Any CPU - {085360DE-8FF9-4725-8014-3C660BB36A25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {085360DE-8FF9-4725-8014-3C660BB36A25}.Debug|Any CPU.Build.0 = Debug|Any CPU - {085360DE-8FF9-4725-8014-3C660BB36A25}.Release|Any CPU.ActiveCfg = Release|Any CPU - {085360DE-8FF9-4725-8014-3C660BB36A25}.Release|Any CPU.Build.0 = Release|Any CPU + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|Any CPU.Build.0 = Debug|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|x64.ActiveCfg = Debug|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|x64.Build.0 = Debug|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|x86.ActiveCfg = Debug|x86 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Debug|x86.Build.0 = Debug|x86 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|Any CPU.ActiveCfg = Release|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|Any CPU.Build.0 = Release|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|x64.ActiveCfg = Release|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|x64.Build.0 = Release|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|x86.ActiveCfg = Release|x86 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Release|x86.Build.0 = Release|x86 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|Any CPU.ActiveCfg = Checked|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|Any CPU.Build.0 = Checked|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|x64.ActiveCfg = Checked|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|x64.Build.0 = Checked|x64 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|x86.ActiveCfg = Checked|x86 + {E34F351F-8EB7-4D44-BA44-85F791F662CC}.Checked|x86.Build.0 = Checked|x86 + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|x64.ActiveCfg = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|x64.Build.0 = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|x86.ActiveCfg = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Debug|x86.Build.0 = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|Any CPU.Build.0 = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|x64.ActiveCfg = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|x64.Build.0 = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|x86.ActiveCfg = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Release|x86.Build.0 = Release|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Checked|x64.ActiveCfg = Debug|Any CPU + {65FFFD20-CE5D-4FC0-A525-1C308186A16F}.Checked|x86.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|x64.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|x64.Build.0 = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|x86.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Debug|x86.Build.0 = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|Any CPU.Build.0 = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|x64.ActiveCfg = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|x64.Build.0 = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|x86.ActiveCfg = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Release|x86.Build.0 = Release|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Checked|x64.ActiveCfg = Debug|Any CPU + {4BE25797-A2B8-4208-B191-C78C7E127150}.Checked|x86.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|x64.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|x64.Build.0 = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|x86.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Debug|x86.Build.0 = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|Any CPU.Build.0 = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|x64.ActiveCfg = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|x64.Build.0 = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|x86.ActiveCfg = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Release|x86.Build.0 = Release|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Checked|x64.ActiveCfg = Debug|Any CPU + {26367C54-C1A4-462F-AA71-E48644208AE9}.Checked|x86.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|x64.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|x64.Build.0 = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Debug|x86.Build.0 = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|Any CPU.Build.0 = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|x64.ActiveCfg = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|x64.Build.0 = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|x86.ActiveCfg = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Release|x86.Build.0 = Release|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Checked|x64.ActiveCfg = Debug|Any CPU + {E3D6317B-BEDD-41D2-A7B4-01A8D050C9C8}.Checked|x86.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|x64.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|x64.Build.0 = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Debug|x86.Build.0 = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|Any CPU.Build.0 = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|x64.ActiveCfg = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|x64.Build.0 = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|x86.ActiveCfg = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Release|x86.Build.0 = Release|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Checked|x64.ActiveCfg = Debug|Any CPU + {1A44729F-AFB5-4BB0-8348-58833378AE55}.Checked|x86.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|x64.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|x64.Build.0 = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|x86.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Debug|x86.Build.0 = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|Any CPU.Build.0 = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|x64.ActiveCfg = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|x64.Build.0 = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|x86.ActiveCfg = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Release|x86.Build.0 = Release|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Checked|x64.ActiveCfg = Debug|Any CPU + {A8BB1002-C4B3-4B77-9A99-908FC6C84811}.Checked|x86.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|x64.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|x64.Build.0 = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|x86.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Debug|x86.Build.0 = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|Any CPU.Build.0 = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|x64.ActiveCfg = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|x64.Build.0 = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|x86.ActiveCfg = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Release|x86.Build.0 = Release|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Checked|x64.ActiveCfg = Debug|Any CPU + {B1632FA3-4F01-4B41-BB61-F7676A25EDA0}.Checked|x86.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|x64.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|x64.Build.0 = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|x86.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Debug|x86.Build.0 = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|Any CPU.Build.0 = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|x64.ActiveCfg = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|x64.Build.0 = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|x86.ActiveCfg = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Release|x86.Build.0 = Release|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Checked|x64.ActiveCfg = Debug|Any CPU + {956E53A2-5A41-44A7-900A-49044376B2BD}.Checked|x86.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|x64.Build.0 = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Debug|x86.Build.0 = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|Any CPU.Build.0 = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|x64.ActiveCfg = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|x64.Build.0 = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|x86.ActiveCfg = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Release|x86.Build.0 = Release|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Checked|x64.ActiveCfg = Debug|Any CPU + {96501106-36D0-4093-8FEE-AF90713D09ED}.Checked|x86.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|x64.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|x64.Build.0 = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|x86.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Debug|x86.Build.0 = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|Any CPU.Build.0 = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|x64.ActiveCfg = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|x64.Build.0 = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|x86.ActiveCfg = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Release|x86.Build.0 = Release|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Checked|x64.ActiveCfg = Debug|Any CPU + {E6DD9860-2824-43D3-BD9D-87ED396B4E46}.Checked|x86.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|x64.Build.0 = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Debug|x86.Build.0 = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|Any CPU.Build.0 = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|x64.ActiveCfg = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|x64.Build.0 = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|x86.ActiveCfg = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Release|x86.Build.0 = Release|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Checked|x64.ActiveCfg = Debug|Any CPU + {E5EB0B0B-FFAC-4C1B-AD59-292849F847FE}.Checked|x86.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|x64.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|x64.Build.0 = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Debug|x86.Build.0 = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|Any CPU.Build.0 = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|x64.ActiveCfg = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|x64.Build.0 = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|x86.ActiveCfg = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Release|x86.Build.0 = Release|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Checked|x64.ActiveCfg = Debug|Any CPU + {DDB26596-113C-471A-91B0-9609C743ACA1}.Checked|x86.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|x64.Build.0 = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Debug|x86.Build.0 = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|Any CPU.Build.0 = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|x64.ActiveCfg = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|x64.Build.0 = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|x86.ActiveCfg = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Release|x86.Build.0 = Release|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Checked|x64.ActiveCfg = Debug|Any CPU + {E5CCAE24-D76A-4409-BED8-A4E3F188A64A}.Checked|x86.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|x64.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|x64.Build.0 = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Debug|x86.Build.0 = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|Any CPU.Build.0 = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|x64.ActiveCfg = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|x64.Build.0 = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|x86.ActiveCfg = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Release|x86.Build.0 = Release|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Checked|x64.ActiveCfg = Debug|Any CPU + {449DFAB8-C413-44E4-BEAE-C61595DBCBC2}.Checked|x86.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|Any CPU.Build.0 = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|x64.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|x64.Build.0 = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|x86.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Debug|x86.Build.0 = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|Any CPU.ActiveCfg = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|Any CPU.Build.0 = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|x64.ActiveCfg = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|x64.Build.0 = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|x86.ActiveCfg = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Release|x86.Build.0 = Release|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Checked|x64.ActiveCfg = Debug|Any CPU + {623D46A5-8ED4-43CF-A01B-528F0A505090}.Checked|x86.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|x64.Build.0 = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Debug|x86.Build.0 = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|Any CPU.Build.0 = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|x64.ActiveCfg = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|x64.Build.0 = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|x86.ActiveCfg = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Release|x86.Build.0 = Release|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Checked|x64.ActiveCfg = Debug|Any CPU + {E98C1B4A-F81B-4175-BB49-09084A619C9B}.Checked|x86.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|Any CPU.Build.0 = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|x64.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|x64.Build.0 = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|x86.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Debug|x86.Build.0 = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|Any CPU.ActiveCfg = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|Any CPU.Build.0 = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|x64.ActiveCfg = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|x64.Build.0 = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|x86.ActiveCfg = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Release|x86.Build.0 = Release|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Checked|x64.ActiveCfg = Debug|Any CPU + {896EF7E4-D13F-429F-A69C-C52A3FA5B099}.Checked|x86.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|x64.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|x64.Build.0 = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|x86.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Debug|x86.Build.0 = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|Any CPU.Build.0 = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|x64.ActiveCfg = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|x64.Build.0 = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|x86.ActiveCfg = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Release|x86.Build.0 = Release|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Checked|x64.ActiveCfg = Debug|Any CPU + {039BB256-1BCF-4398-B586-C05F7C5225C4}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {297A9116-1005-499D-A895-2063D03E4C94} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {02304469-722E-4723-92A1-820B9A37D275} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C38217EF-88F4-4D56-9F58-780BE1DDAFF6} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {854C7BBD-8B87-44AE-B109-421647CD5959} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {ADDF4CDC-9F80-492C-85B5-908E34B64D74} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6E4DEE24-716D-4E97-877B-83B138020091} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {20636DC7-EB9C-4E40-B10C-BC023B4AEEDF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {5D5B7D66-AEB4-41A1-AB8A-1AB884A65064} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {456DBDB3-EF0D-4517-8893-8D5087CA3254} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {085360DE-8FF9-4725-8014-3C660BB36A25} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {207AB5D6-FFD0-42E8-88DF-0A3C6DF24251} + SolutionGuid = {1572B987-E4D6-45D5-82AB-9CC0BB306C2E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.sln b/src/libraries/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.sln index efc3612964f4..724fc06a80cc 100644 --- a/src/libraries/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.sln +++ b/src/libraries/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener.Tests", "tests\System.Diagnostics.TextWriterTraceListener.Tests.csproj", "{92A9467A-9F7E-4294-A7D5-7B59F2E54ABE}" - ProjectSection(ProjectDependencies) = postProject - {315929D9-D76E-47E9-BE82-C787FB3A7876} = {315929D9-D76E-47E9-BE82-C787FB3A7876} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener", "src\System.Diagnostics.TextWriterTraceListener.csproj", "{315929D9-D76E-47E9-BE82-C787FB3A7876}" - ProjectSection(ProjectDependencies) = postProject - {3E10948B-1753-4CD2-ABB7-7A753EEEC023} = {3E10948B-1753-4CD2-ABB7-7A753EEEC023} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{253A9DB7-68EA-4310-A3CA-C7E19450A673}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener", "ref\System.Diagnostics.TextWriterTraceListener.csproj", "{3E10948B-1753-4CD2-ABB7-7A753EEEC023}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener", "ref\System.Diagnostics.TextWriterTraceListener.csproj", "{7B2B6693-9877-47BB-A2A1-C1E94596AAE7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener", "src\System.Diagnostics.TextWriterTraceListener.csproj", "{6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TextWriterTraceListener.Tests", "tests\System.Diagnostics.TextWriterTraceListener.Tests.csproj", "{A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4F7567CA-4918-40F8-B914-0FAB2C7EBFF0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7742D113-972D-48FD-BCD9-6F98073CBC3E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{203C894D-5FF8-4E4A-9812-2674847CC88D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{B325067A-0447-4097-8E76-1430C0440F6B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9E6066C0-64AD-4F51-B785-DF601C00185C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6609DB9F-AB51-44A7-BCAA-D97114D12B90}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F0793A5A-13FE-4B75-86EA-5F457009CEC6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D} = {9E6066C0-64AD-4F51-B785-DF601C00185C} + {A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4} = {9E6066C0-64AD-4F51-B785-DF601C00185C} + {253A9DB7-68EA-4310-A3CA-C7E19450A673} = {6609DB9F-AB51-44A7-BCAA-D97114D12B90} + {7B2B6693-9877-47BB-A2A1-C1E94596AAE7} = {6609DB9F-AB51-44A7-BCAA-D97114D12B90} + {4F7567CA-4918-40F8-B914-0FAB2C7EBFF0} = {6609DB9F-AB51-44A7-BCAA-D97114D12B90} + {B325067A-0447-4097-8E76-1430C0440F6B} = {6609DB9F-AB51-44A7-BCAA-D97114D12B90} + {E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2} = {6609DB9F-AB51-44A7-BCAA-D97114D12B90} + {6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847} = {F0793A5A-13FE-4B75-86EA-5F457009CEC6} + {203C894D-5FF8-4E4A-9812-2674847CC88D} = {F0793A5A-13FE-4B75-86EA-5F457009CEC6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {92A9467A-9F7E-4294-A7D5-7B59F2E54ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {92A9467A-9F7E-4294-A7D5-7B59F2E54ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92A9467A-9F7E-4294-A7D5-7B59F2E54ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {92A9467A-9F7E-4294-A7D5-7B59F2E54ABE}.Release|Any CPU.Build.0 = Release|Any CPU - {315929D9-D76E-47E9-BE82-C787FB3A7876}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {315929D9-D76E-47E9-BE82-C787FB3A7876}.Debug|Any CPU.Build.0 = Debug|Any CPU - {315929D9-D76E-47E9-BE82-C787FB3A7876}.Release|Any CPU.ActiveCfg = Release|Any CPU - {315929D9-D76E-47E9-BE82-C787FB3A7876}.Release|Any CPU.Build.0 = Release|Any CPU - {3E10948B-1753-4CD2-ABB7-7A753EEEC023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E10948B-1753-4CD2-ABB7-7A753EEEC023}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E10948B-1753-4CD2-ABB7-7A753EEEC023}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E10948B-1753-4CD2-ABB7-7A753EEEC023}.Release|Any CPU.Build.0 = Release|Any CPU - {7742D113-972D-48FD-BCD9-6F98073CBC3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7742D113-972D-48FD-BCD9-6F98073CBC3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7742D113-972D-48FD-BCD9-6F98073CBC3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7742D113-972D-48FD-BCD9-6F98073CBC3E}.Release|Any CPU.Build.0 = Release|Any CPU + {1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FDACBD7-A395-4E8E-B5E1-15BBE70A6D5D}.Release|Any CPU.Build.0 = Release|Any CPU + {253A9DB7-68EA-4310-A3CA-C7E19450A673}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {253A9DB7-68EA-4310-A3CA-C7E19450A673}.Debug|Any CPU.Build.0 = Debug|Any CPU + {253A9DB7-68EA-4310-A3CA-C7E19450A673}.Release|Any CPU.ActiveCfg = Release|Any CPU + {253A9DB7-68EA-4310-A3CA-C7E19450A673}.Release|Any CPU.Build.0 = Release|Any CPU + {7B2B6693-9877-47BB-A2A1-C1E94596AAE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B2B6693-9877-47BB-A2A1-C1E94596AAE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B2B6693-9877-47BB-A2A1-C1E94596AAE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B2B6693-9877-47BB-A2A1-C1E94596AAE7}.Release|Any CPU.Build.0 = Release|Any CPU + {6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D2D27DE-9BFF-4ABA-B520-D1C81AA9A847}.Release|Any CPU.Build.0 = Release|Any CPU + {A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6D1FF0F-B8A0-4D3C-9F37-513A6456F7B4}.Release|Any CPU.Build.0 = Release|Any CPU + {4F7567CA-4918-40F8-B914-0FAB2C7EBFF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F7567CA-4918-40F8-B914-0FAB2C7EBFF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F7567CA-4918-40F8-B914-0FAB2C7EBFF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F7567CA-4918-40F8-B914-0FAB2C7EBFF0}.Release|Any CPU.Build.0 = Release|Any CPU + {203C894D-5FF8-4E4A-9812-2674847CC88D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {203C894D-5FF8-4E4A-9812-2674847CC88D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {203C894D-5FF8-4E4A-9812-2674847CC88D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {203C894D-5FF8-4E4A-9812-2674847CC88D}.Release|Any CPU.Build.0 = Release|Any CPU + {B325067A-0447-4097-8E76-1430C0440F6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B325067A-0447-4097-8E76-1430C0440F6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B325067A-0447-4097-8E76-1430C0440F6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B325067A-0447-4097-8E76-1430C0440F6B}.Release|Any CPU.Build.0 = Release|Any CPU + {E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E098FEF6-66BF-43D3-8A7A-1A4994D3B7C2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {92A9467A-9F7E-4294-A7D5-7B59F2E54ABE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {315929D9-D76E-47E9-BE82-C787FB3A7876} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {3E10948B-1753-4CD2-ABB7-7A753EEEC023} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7742D113-972D-48FD-BCD9-6F98073CBC3E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {66C0EAF3-31AB-4772-84E2-3B7304D2860C} + SolutionGuid = {5551E9B9-3000-4C32-AE97-0C3D30561263} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.TextWriterTraceListener/src/System/Diagnostics/XmlWriterTraceListener.cs b/src/libraries/System.Diagnostics.TextWriterTraceListener/src/System/Diagnostics/XmlWriterTraceListener.cs index bf97f5fe8418..798968dfce17 100644 --- a/src/libraries/System.Diagnostics.TextWriterTraceListener/src/System/Diagnostics/XmlWriterTraceListener.cs +++ b/src/libraries/System.Diagnostics.TextWriterTraceListener/src/System/Diagnostics/XmlWriterTraceListener.cs @@ -258,14 +258,14 @@ private void WriteEndHeader() string? processName = s_processName; if (processName is null) { - try + if (OperatingSystem.IsBrowser()) // Process isn't supported on Browser { - using Process process = Process.GetCurrentProcess(); - s_processName = processName = process.ProcessName; + s_processName = processName = string.Empty; } - catch (PlatformNotSupportedException) // Process isn't supported on Browser + else { - s_processName = processName = string.Empty; + using Process process = Process.GetCurrentProcess(); + s_processName = processName = process.ProcessName; } } diff --git a/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln b/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln index eea06b03de94..998703f735c0 100644 --- a/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln +++ b/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools.Tests", "tests\System.Diagnostics.Tools.Tests.csproj", "{41BF89E4-8C67-45A6-8044-13009E363220}" - ProjectSection(ProjectDependencies) = postProject - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95} = {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4E534B56-D245-41B7-B4D0-F8AB7BCC8877}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools", "src\System.Diagnostics.Tools.csproj", "{0B68298B-4672-4CA0-AD25-2F9ABEA1FF95}" - ProjectSection(ProjectDependencies) = postProject - {F3970F2E-C118-42A8-8C37-C3B99961A9F6} = {F3970F2E-C118-42A8-8C37-C3B99961A9F6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6FF6D8F0-403D-40DF-9D75-895E2AF22B88}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools", "ref\System.Diagnostics.Tools.csproj", "{F3970F2E-C118-42A8-8C37-C3B99961A9F6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{84A95700-8F04-4E85-8BAC-CFBC391E06F5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools", "ref\System.Diagnostics.Tools.csproj", "{E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools", "src\System.Diagnostics.Tools.csproj", "{566DC861-7C05-45AE-8F59-83D1A175A619}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tools.Tests", "tests\System.Diagnostics.Tools.Tests.csproj", "{A63F3AEA-F4ED-4047-A11F-490325530D92}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{6AC1A337-2D08-4230-8D95-B52F324F291F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{145D4E24-D451-4F06-8607-E71DD76C1928}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B0BFF379-83B2-4F46-A284-607345663B8C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2347C2C8-22C6-49AC-AD73-4BA65477E8E4}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877} = {145D4E24-D451-4F06-8607-E71DD76C1928} + {566DC861-7C05-45AE-8F59-83D1A175A619} = {145D4E24-D451-4F06-8607-E71DD76C1928} + {6AC1A337-2D08-4230-8D95-B52F324F291F} = {145D4E24-D451-4F06-8607-E71DD76C1928} + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88} = {B0BFF379-83B2-4F46-A284-607345663B8C} + {A63F3AEA-F4ED-4047-A11F-490325530D92} = {B0BFF379-83B2-4F46-A284-607345663B8C} + {84A95700-8F04-4E85-8BAC-CFBC391E06F5} = {2347C2C8-22C6-49AC-AD73-4BA65477E8E4} + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B} = {2347C2C8-22C6-49AC-AD73-4BA65477E8E4} + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70} = {2347C2C8-22C6-49AC-AD73-4BA65477E8E4} + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C} = {2347C2C8-22C6-49AC-AD73-4BA65477E8E4} + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC} = {2347C2C8-22C6-49AC-AD73-4BA65477E8E4} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {41BF89E4-8C67-45A6-8044-13009E363220}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41BF89E4-8C67-45A6-8044-13009E363220}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41BF89E4-8C67-45A6-8044-13009E363220}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41BF89E4-8C67-45A6-8044-13009E363220}.Release|Any CPU.Build.0 = Release|Any CPU - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95}.Release|Any CPU.Build.0 = Release|Any CPU - {F3970F2E-C118-42A8-8C37-C3B99961A9F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3970F2E-C118-42A8-8C37-C3B99961A9F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3970F2E-C118-42A8-8C37-C3B99961A9F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3970F2E-C118-42A8-8C37-C3B99961A9F6}.Release|Any CPU.Build.0 = Release|Any CPU - {759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E}.Release|Any CPU.Build.0 = Release|Any CPU + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|Any CPU.ActiveCfg = Debug|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|Any CPU.Build.0 = Debug|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|x64.ActiveCfg = Debug|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|x64.Build.0 = Debug|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|x86.ActiveCfg = Debug|x86 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Debug|x86.Build.0 = Debug|x86 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|Any CPU.ActiveCfg = Release|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|Any CPU.Build.0 = Release|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|x64.ActiveCfg = Release|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|x64.Build.0 = Release|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|x86.ActiveCfg = Release|x86 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Release|x86.Build.0 = Release|x86 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|Any CPU.ActiveCfg = Checked|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|Any CPU.Build.0 = Checked|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|x64.ActiveCfg = Checked|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|x64.Build.0 = Checked|x64 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|x86.ActiveCfg = Checked|x86 + {4E534B56-D245-41B7-B4D0-F8AB7BCC8877}.Checked|x86.Build.0 = Checked|x86 + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|x64.ActiveCfg = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|x64.Build.0 = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|x86.ActiveCfg = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Debug|x86.Build.0 = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|Any CPU.Build.0 = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|x64.ActiveCfg = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|x64.Build.0 = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|x86.ActiveCfg = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Release|x86.Build.0 = Release|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Checked|x64.ActiveCfg = Debug|Any CPU + {6FF6D8F0-403D-40DF-9D75-895E2AF22B88}.Checked|x86.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|x64.Build.0 = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Debug|x86.Build.0 = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|Any CPU.Build.0 = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|x64.ActiveCfg = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|x64.Build.0 = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|x86.ActiveCfg = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Release|x86.Build.0 = Release|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Checked|x64.ActiveCfg = Debug|Any CPU + {84A95700-8F04-4E85-8BAC-CFBC391E06F5}.Checked|x86.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|x64.Build.0 = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Debug|x86.Build.0 = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|Any CPU.Build.0 = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|x64.ActiveCfg = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|x64.Build.0 = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|x86.ActiveCfg = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Release|x86.Build.0 = Release|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Checked|x64.ActiveCfg = Debug|Any CPU + {E5F5CCFF-4DBA-4323-82A6-8D472C488C0B}.Checked|x86.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|Any CPU.Build.0 = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|x64.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|x64.Build.0 = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|x86.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Debug|x86.Build.0 = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|Any CPU.ActiveCfg = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|Any CPU.Build.0 = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|x64.ActiveCfg = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|x64.Build.0 = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|x86.ActiveCfg = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Release|x86.Build.0 = Release|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Checked|x64.ActiveCfg = Debug|Any CPU + {566DC861-7C05-45AE-8F59-83D1A175A619}.Checked|x86.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|x64.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|x64.Build.0 = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|x86.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Debug|x86.Build.0 = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|Any CPU.Build.0 = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|x64.ActiveCfg = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|x64.Build.0 = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|x86.ActiveCfg = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Release|x86.Build.0 = Release|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Checked|x64.ActiveCfg = Debug|Any CPU + {A63F3AEA-F4ED-4047-A11F-490325530D92}.Checked|x86.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|x64.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|x64.Build.0 = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|x86.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Debug|x86.Build.0 = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|Any CPU.Build.0 = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|x64.ActiveCfg = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|x64.Build.0 = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|x86.ActiveCfg = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Release|x86.Build.0 = Release|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Checked|x64.ActiveCfg = Debug|Any CPU + {740703FE-F5E0-4BE0-93B2-63ADD4A3EB70}.Checked|x86.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|x64.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|x64.Build.0 = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|x86.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Debug|x86.Build.0 = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|Any CPU.Build.0 = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|x64.ActiveCfg = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|x64.Build.0 = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|x86.ActiveCfg = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Release|x86.Build.0 = Release|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Checked|x64.ActiveCfg = Debug|Any CPU + {6AC1A337-2D08-4230-8D95-B52F324F291F}.Checked|x86.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|x64.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|x64.Build.0 = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Debug|x86.Build.0 = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|Any CPU.Build.0 = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|x64.ActiveCfg = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|x64.Build.0 = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|x86.ActiveCfg = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Release|x86.Build.0 = Release|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Checked|x64.ActiveCfg = Debug|Any CPU + {D4A247C6-CBA1-4F2E-86F6-FCB2DDF8C72C}.Checked|x86.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|x64.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|x64.Build.0 = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|x86.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Debug|x86.Build.0 = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|Any CPU.Build.0 = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|x64.ActiveCfg = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|x64.Build.0 = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|x86.ActiveCfg = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Release|x86.Build.0 = Release|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Checked|x64.ActiveCfg = Debug|Any CPU + {8D1E42AE-CF3F-4E02-AC2A-B93ED4295ACC}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {41BF89E4-8C67-45A6-8044-13009E363220} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0B68298B-4672-4CA0-AD25-2F9ABEA1FF95} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F3970F2E-C118-42A8-8C37-C3B99961A9F6} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {759AFB8B-4AC5-49DE-87FA-EFDE216C6E5E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E4D04D65-C183-4C51-9ACE-A6D05902B074} + SolutionGuid = {74CBBF59-B32F-49B5-9402-F495E129FC3E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln b/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln index a952890b43ba..ae5060c54c8c 100644 --- a/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln +++ b/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln @@ -1,130 +1,357 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource.Tests", "tests\System.Diagnostics.TraceSource.Tests.csproj", "{7B32D24D-969A-4F7F-8461-B43E15E5D553}" - ProjectSection(ProjectDependencies) = postProject - {5380420C-EB1D-4C53-9CFC-916578C18334} = {5380420C-EB1D-4C53-9CFC-916578C18334} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource", "src\System.Diagnostics.TraceSource.csproj", "{5380420C-EB1D-4C53-9CFC-916578C18334}" - ProjectSection(ProjectDependencies) = postProject - {6E515D9C-A5C2-4716-96A1-4716F007267D} = {6E515D9C-A5C2-4716-96A1-4716F007267D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F6BCA6EF-777E-408B-B49B-B055B5A0BA19}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource", "ref\System.Diagnostics.TraceSource.csproj", "{6E515D9C-A5C2-4716-96A1-4716F007267D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E7B1380E-A870-42F3-AB76-B21B6279E2D9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "..\System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj", "{89C01491-2BE8-438C-8F1D-24DE9AFD7A86}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "..\System.Collections.Specialized\src\System.Collections.Specialized.csproj", "{64F83961-AECA-4D5C-B467-A1A94AE6FFB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{95F843FE-38B4-4ED5-81FF-605DE38155F6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{EB38F993-8EA4-466B-AD6B-488768274858}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "..\System.ComponentModel.Primitives\src\System.ComponentModel.Primitives.csproj", "{97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource", "ref\System.Diagnostics.TraceSource.csproj", "{2F00396E-003A-4385-92DC-69FDBEF330D8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "..\System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj", "{8FE26689-26FA-46B7-9906-C26B5193B93C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource", "src\System.Diagnostics.TraceSource.csproj", "{48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Specialized", "..\System.Collections.Specialized\src\System.Collections.Specialized.csproj", "{0126A981-AC71-4961-9B14-0F78728DDAF6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.TraceSource.Tests", "tests\System.Diagnostics.TraceSource.Tests.csproj", "{0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Primitives", "..\System.ComponentModel.Primitives\src\System.ComponentModel.Primitives.csproj", "{FB0D7835-5734-4379-82F3-FBA98FE281EF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Process", "..\System.Diagnostics.Process\src\System.Diagnostics.Process.csproj", "{7C1BEC52-C93B-459A-BEF8-02A8122B6466}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "..\System.IO.FileSystem\src\System.IO.FileSystem.csproj", "{DA45FFC0-F398-492A-BD72-FC3B0625DF4B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BFDA7EE4-2407-4799-82B0-D977F3363A0D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{2C869A13-107A-47CE-92F7-C0C27CE20E47}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{637E7769-42D2-4541-9A63-32301113FA5A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices", "..\System.Runtime.InteropServices\src\System.Runtime.InteropServices.csproj", "{C447FF5D-6895-4261-BBD6-18F4FACCA3F4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{FCF0E19F-B81C-41F5-92D8-449C6E577C38}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{2426FD97-9202-498D-806A-E9A41F9B52DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EB3F2772-2ECD-4745-85F7-68A37511BE4C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{7C0A6923-A9BC-4F10-81E0-C535EEF537BB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{463056BB-F827-40A0-B71C-79A96262BCA0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3E90D142-0925-46DE-B139-6C91BAD00059}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B2E7DBDB-8AE8-42FB-9F96-7F635572FF73}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {95F843FE-38B4-4ED5-81FF-605DE38155F6} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {BFDA7EE4-2407-4799-82B0-D977F3363A0D} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {637E7769-42D2-4541-9A63-32301113FA5A} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB} = {463056BB-F827-40A0-B71C-79A96262BCA0} + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19} = {3E90D142-0925-46DE-B139-6C91BAD00059} + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0} = {3E90D142-0925-46DE-B139-6C91BAD00059} + {E7B1380E-A870-42F3-AB76-B21B6279E2D9} = {B2E7DBDB-8AE8-42FB-9F96-7F635572FF73} + {2F00396E-003A-4385-92DC-69FDBEF330D8} = {B2E7DBDB-8AE8-42FB-9F96-7F635572FF73} + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF} = {B2E7DBDB-8AE8-42FB-9F96-7F635572FF73} + {FCF0E19F-B81C-41F5-92D8-449C6E577C38} = {B2E7DBDB-8AE8-42FB-9F96-7F635572FF73} + {EB3F2772-2ECD-4745-85F7-68A37511BE4C} = {B2E7DBDB-8AE8-42FB-9F96-7F635572FF73} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7B32D24D-969A-4F7F-8461-B43E15E5D553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B32D24D-969A-4F7F-8461-B43E15E5D553}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B32D24D-969A-4F7F-8461-B43E15E5D553}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B32D24D-969A-4F7F-8461-B43E15E5D553}.Release|Any CPU.Build.0 = Release|Any CPU - {5380420C-EB1D-4C53-9CFC-916578C18334}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5380420C-EB1D-4C53-9CFC-916578C18334}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5380420C-EB1D-4C53-9CFC-916578C18334}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5380420C-EB1D-4C53-9CFC-916578C18334}.Release|Any CPU.Build.0 = Release|Any CPU - {6E515D9C-A5C2-4716-96A1-4716F007267D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E515D9C-A5C2-4716-96A1-4716F007267D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E515D9C-A5C2-4716-96A1-4716F007267D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E515D9C-A5C2-4716-96A1-4716F007267D}.Release|Any CPU.Build.0 = Release|Any CPU - {EB38F993-8EA4-466B-AD6B-488768274858}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB38F993-8EA4-466B-AD6B-488768274858}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB38F993-8EA4-466B-AD6B-488768274858}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB38F993-8EA4-466B-AD6B-488768274858}.Release|Any CPU.Build.0 = Release|Any CPU - {3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF}.Release|Any CPU.Build.0 = Release|Any CPU - {8FE26689-26FA-46B7-9906-C26B5193B93C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FE26689-26FA-46B7-9906-C26B5193B93C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FE26689-26FA-46B7-9906-C26B5193B93C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FE26689-26FA-46B7-9906-C26B5193B93C}.Release|Any CPU.Build.0 = Release|Any CPU - {0126A981-AC71-4961-9B14-0F78728DDAF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0126A981-AC71-4961-9B14-0F78728DDAF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0126A981-AC71-4961-9B14-0F78728DDAF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0126A981-AC71-4961-9B14-0F78728DDAF6}.Release|Any CPU.Build.0 = Release|Any CPU - {FB0D7835-5734-4379-82F3-FBA98FE281EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB0D7835-5734-4379-82F3-FBA98FE281EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB0D7835-5734-4379-82F3-FBA98FE281EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB0D7835-5734-4379-82F3-FBA98FE281EF}.Release|Any CPU.Build.0 = Release|Any CPU - {7C1BEC52-C93B-459A-BEF8-02A8122B6466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C1BEC52-C93B-459A-BEF8-02A8122B6466}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C1BEC52-C93B-459A-BEF8-02A8122B6466}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C1BEC52-C93B-459A-BEF8-02A8122B6466}.Release|Any CPU.Build.0 = Release|Any CPU - {DA45FFC0-F398-492A-BD72-FC3B0625DF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA45FFC0-F398-492A-BD72-FC3B0625DF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA45FFC0-F398-492A-BD72-FC3B0625DF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA45FFC0-F398-492A-BD72-FC3B0625DF4B}.Release|Any CPU.Build.0 = Release|Any CPU - {2C869A13-107A-47CE-92F7-C0C27CE20E47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C869A13-107A-47CE-92F7-C0C27CE20E47}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C869A13-107A-47CE-92F7-C0C27CE20E47}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C869A13-107A-47CE-92F7-C0C27CE20E47}.Release|Any CPU.Build.0 = Release|Any CPU - {B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5}.Release|Any CPU.Build.0 = Release|Any CPU - {C447FF5D-6895-4261-BBD6-18F4FACCA3F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C447FF5D-6895-4261-BBD6-18F4FACCA3F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C447FF5D-6895-4261-BBD6-18F4FACCA3F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C447FF5D-6895-4261-BBD6-18F4FACCA3F4}.Release|Any CPU.Build.0 = Release|Any CPU - {2426FD97-9202-498D-806A-E9A41F9B52DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2426FD97-9202-498D-806A-E9A41F9B52DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2426FD97-9202-498D-806A-E9A41F9B52DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2426FD97-9202-498D-806A-E9A41F9B52DB}.Release|Any CPU.Build.0 = Release|Any CPU + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|Any CPU.ActiveCfg = Debug|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|Any CPU.Build.0 = Debug|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|x64.ActiveCfg = Debug|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|x64.Build.0 = Debug|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|x86.ActiveCfg = Debug|x86 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Debug|x86.Build.0 = Debug|x86 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|Any CPU.ActiveCfg = Release|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|Any CPU.Build.0 = Release|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|x64.ActiveCfg = Release|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|x64.Build.0 = Release|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|x86.ActiveCfg = Release|x86 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Release|x86.Build.0 = Release|x86 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|Any CPU.ActiveCfg = Checked|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|Any CPU.Build.0 = Checked|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|x64.ActiveCfg = Checked|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|x64.Build.0 = Checked|x64 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|x86.ActiveCfg = Checked|x86 + {89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}.Checked|x86.Build.0 = Checked|x86 + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|x64.ActiveCfg = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|x64.Build.0 = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|x86.ActiveCfg = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Debug|x86.Build.0 = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|Any CPU.Build.0 = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|x64.ActiveCfg = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|x64.Build.0 = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|x86.ActiveCfg = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Release|x86.Build.0 = Release|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Checked|x64.ActiveCfg = Debug|Any CPU + {F6BCA6EF-777E-408B-B49B-B055B5A0BA19}.Checked|x86.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|x64.Build.0 = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|x86.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Debug|x86.Build.0 = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|Any CPU.Build.0 = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|x64.ActiveCfg = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|x64.Build.0 = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|x86.ActiveCfg = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Release|x86.Build.0 = Release|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Checked|x64.ActiveCfg = Debug|Any CPU + {E7B1380E-A870-42F3-AB76-B21B6279E2D9}.Checked|x86.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|x64.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|x64.Build.0 = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|x86.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Debug|x86.Build.0 = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|Any CPU.Build.0 = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|x64.ActiveCfg = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|x64.Build.0 = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|x86.ActiveCfg = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Release|x86.Build.0 = Release|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Checked|x64.ActiveCfg = Debug|Any CPU + {89C01491-2BE8-438C-8F1D-24DE9AFD7A86}.Checked|x86.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|x64.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|x64.Build.0 = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|x86.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Debug|x86.Build.0 = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|Any CPU.Build.0 = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|x64.ActiveCfg = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|x64.Build.0 = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|x86.ActiveCfg = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Release|x86.Build.0 = Release|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Checked|x64.ActiveCfg = Debug|Any CPU + {64F83961-AECA-4D5C-B467-A1A94AE6FFB4}.Checked|x86.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|x64.Build.0 = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Debug|x86.Build.0 = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|Any CPU.Build.0 = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|x64.ActiveCfg = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|x64.Build.0 = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|x86.ActiveCfg = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Release|x86.Build.0 = Release|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Checked|x64.ActiveCfg = Debug|Any CPU + {95F843FE-38B4-4ED5-81FF-605DE38155F6}.Checked|x86.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|x64.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|x64.Build.0 = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|x86.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Debug|x86.Build.0 = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|Any CPU.Build.0 = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|x64.ActiveCfg = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|x64.Build.0 = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|x86.ActiveCfg = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Release|x86.Build.0 = Release|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Checked|x64.ActiveCfg = Debug|Any CPU + {97D756D3-8ECA-45F5-A9F5-DBF659D87BC4}.Checked|x86.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|x64.Build.0 = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Debug|x86.Build.0 = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|Any CPU.Build.0 = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|x64.ActiveCfg = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|x64.Build.0 = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|x86.ActiveCfg = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Release|x86.Build.0 = Release|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Checked|x64.ActiveCfg = Debug|Any CPU + {2F00396E-003A-4385-92DC-69FDBEF330D8}.Checked|x86.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|x64.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|x64.Build.0 = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|x86.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Debug|x86.Build.0 = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|Any CPU.Build.0 = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|x64.ActiveCfg = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|x64.Build.0 = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|x86.ActiveCfg = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Release|x86.Build.0 = Release|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Checked|x64.ActiveCfg = Debug|Any CPU + {48CC1460-B1E7-4DE9-A4E7-2206F7FD54CF}.Checked|x86.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|x64.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|x64.Build.0 = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|x86.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Debug|x86.Build.0 = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|Any CPU.Build.0 = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|x64.ActiveCfg = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|x64.Build.0 = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|x86.ActiveCfg = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Release|x86.Build.0 = Release|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Checked|x64.ActiveCfg = Debug|Any CPU + {0C126AE9-C858-4AC8-9DB1-B8E228BD2DB0}.Checked|x86.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|x64.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|x64.Build.0 = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|x86.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Debug|x86.Build.0 = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|Any CPU.Build.0 = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|x64.ActiveCfg = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|x64.Build.0 = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|x86.ActiveCfg = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Release|x86.Build.0 = Release|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Checked|x64.ActiveCfg = Debug|Any CPU + {4DAA5CFC-C59D-4C1B-A12A-BC9863F38C0C}.Checked|x86.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|x64.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|x64.Build.0 = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|x86.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Debug|x86.Build.0 = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|Any CPU.Build.0 = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|x64.ActiveCfg = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|x64.Build.0 = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|x86.ActiveCfg = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Release|x86.Build.0 = Release|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Checked|x64.ActiveCfg = Debug|Any CPU + {7D2D4C5A-F0B5-4AD3-8180-87657FB97FAF}.Checked|x86.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|x64.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|x64.Build.0 = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|x86.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Debug|x86.Build.0 = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|Any CPU.Build.0 = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|x64.ActiveCfg = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|x64.Build.0 = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|x86.ActiveCfg = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Release|x86.Build.0 = Release|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Checked|x64.ActiveCfg = Debug|Any CPU + {BFDA7EE4-2407-4799-82B0-D977F3363A0D}.Checked|x86.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|x64.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|x64.Build.0 = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|x86.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Debug|x86.Build.0 = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|Any CPU.Build.0 = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|x64.ActiveCfg = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|x64.Build.0 = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|x86.ActiveCfg = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Release|x86.Build.0 = Release|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Checked|x64.ActiveCfg = Debug|Any CPU + {0A5BC6DA-7ADB-4BF7-8313-DFCE49787EE5}.Checked|x86.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|x64.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|x64.Build.0 = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|x86.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Debug|x86.Build.0 = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|Any CPU.Build.0 = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|x64.ActiveCfg = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|x64.Build.0 = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|x86.ActiveCfg = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Release|x86.Build.0 = Release|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Checked|x64.ActiveCfg = Debug|Any CPU + {637E7769-42D2-4541-9A63-32301113FA5A}.Checked|x86.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|x64.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|x64.Build.0 = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|x86.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Debug|x86.Build.0 = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|Any CPU.Build.0 = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|x64.ActiveCfg = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|x64.Build.0 = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|x86.ActiveCfg = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Release|x86.Build.0 = Release|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Checked|x64.ActiveCfg = Debug|Any CPU + {FCF0E19F-B81C-41F5-92D8-449C6E577C38}.Checked|x86.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|x64.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|x64.Build.0 = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|x86.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Debug|x86.Build.0 = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|Any CPU.Build.0 = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|x64.ActiveCfg = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|x64.Build.0 = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|x86.ActiveCfg = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Release|x86.Build.0 = Release|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Checked|x64.ActiveCfg = Debug|Any CPU + {EB3F2772-2ECD-4745-85F7-68A37511BE4C}.Checked|x86.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|x64.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|x64.Build.0 = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Debug|x86.Build.0 = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|Any CPU.Build.0 = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|x64.ActiveCfg = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|x64.Build.0 = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|x86.ActiveCfg = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Release|x86.Build.0 = Release|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Checked|x64.ActiveCfg = Debug|Any CPU + {7C0A6923-A9BC-4F10-81E0-C535EEF537BB}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7B32D24D-969A-4F7F-8461-B43E15E5D553} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5380420C-EB1D-4C53-9CFC-916578C18334} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6E515D9C-A5C2-4716-96A1-4716F007267D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {EB38F993-8EA4-466B-AD6B-488768274858} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3690CF2A-3BA5-4BC6-BFAA-312A7976C2AF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {8FE26689-26FA-46B7-9906-C26B5193B93C} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {0126A981-AC71-4961-9B14-0F78728DDAF6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {FB0D7835-5734-4379-82F3-FBA98FE281EF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7C1BEC52-C93B-459A-BEF8-02A8122B6466} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {DA45FFC0-F398-492A-BD72-FC3B0625DF4B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2C869A13-107A-47CE-92F7-C0C27CE20E47} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B4CFBC40-0570-43F1-9752-CFFBFF1FFCF5} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C447FF5D-6895-4261-BBD6-18F4FACCA3F4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2426FD97-9202-498D-806A-E9A41F9B52DB} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {124F2F18-059D-4341-9BAF-7C33A33838B4} + SolutionGuid = {52B54BB6-271E-45BD-A7A4-D4CEDC973704} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln b/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln index 0bba9578a08f..fd3321e9d15e 100644 --- a/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln +++ b/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing.Tests", "tests\System.Diagnostics.Tracing.Tests.csproj", "{7E0E1B11-FF70-461E-99F7-C0AF252C0C60}" - ProjectSection(ProjectDependencies) = postProject - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4} = {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{370DCE61-CBDF-466E-91DB-5AE622BF2E52}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "src\System.Diagnostics.Tracing.csproj", "{EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4}" - ProjectSection(ProjectDependencies) = postProject - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261} = {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6E159831-C97C-40FD-AD1A-E8B1EE3E7168}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "ref\System.Diagnostics.Tracing.csproj", "{0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0FA66C9B-5F53-46CB-A226-47EE656FBE6A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "ref\System.Diagnostics.Tracing.csproj", "{D7C16DED-127A-4CBB-BBCF-DF133816413B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "src\System.Diagnostics.Tracing.csproj", "{63783D6D-0848-4303-8E7A-BBB7F65DCE9E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing.Tests", "tests\System.Diagnostics.Tracing.Tests.csproj", "{24605C4D-2465-433D-A393-45CB950E0834}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3BCCC297-1869-476C-9861-507BCA01C64A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{ADB5AA13-96F9-4A6C-B152-A8295554815E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{7ED6F742-A58B-4352-AD32-88F53E65B763}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{7263BACA-10BD-49B4-A4CF-027474094913}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C5364ABB-5EF8-4B6C-9C4F-4BFFA5FEC8CB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0503F4E6-DE85-4812-BEAC-07EB5AAAA246}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{378F97D0-38EC-4DD3-8F38-2E8D81BC1460}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {370DCE61-CBDF-466E-91DB-5AE622BF2E52} = {C5364ABB-5EF8-4B6C-9C4F-4BFFA5FEC8CB} + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E} = {C5364ABB-5EF8-4B6C-9C4F-4BFFA5FEC8CB} + {7ED6F742-A58B-4352-AD32-88F53E65B763} = {C5364ABB-5EF8-4B6C-9C4F-4BFFA5FEC8CB} + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168} = {0503F4E6-DE85-4812-BEAC-07EB5AAAA246} + {24605C4D-2465-433D-A393-45CB950E0834} = {0503F4E6-DE85-4812-BEAC-07EB5AAAA246} + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A} = {378F97D0-38EC-4DD3-8F38-2E8D81BC1460} + {D7C16DED-127A-4CBB-BBCF-DF133816413B} = {378F97D0-38EC-4DD3-8F38-2E8D81BC1460} + {ADB5AA13-96F9-4A6C-B152-A8295554815E} = {378F97D0-38EC-4DD3-8F38-2E8D81BC1460} + {7263BACA-10BD-49B4-A4CF-027474094913} = {378F97D0-38EC-4DD3-8F38-2E8D81BC1460} + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27} = {378F97D0-38EC-4DD3-8F38-2E8D81BC1460} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7E0E1B11-FF70-461E-99F7-C0AF252C0C60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E0E1B11-FF70-461E-99F7-C0AF252C0C60}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E0E1B11-FF70-461E-99F7-C0AF252C0C60}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E0E1B11-FF70-461E-99F7-C0AF252C0C60}.Release|Any CPU.Build.0 = Release|Any CPU - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4}.Release|Any CPU.Build.0 = Release|Any CPU - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261}.Release|Any CPU.Build.0 = Release|Any CPU - {3BCCC297-1869-476C-9861-507BCA01C64A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BCCC297-1869-476C-9861-507BCA01C64A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BCCC297-1869-476C-9861-507BCA01C64A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BCCC297-1869-476C-9861-507BCA01C64A}.Release|Any CPU.Build.0 = Release|Any CPU + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|Any CPU.ActiveCfg = Debug|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|Any CPU.Build.0 = Debug|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|x64.ActiveCfg = Debug|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|x64.Build.0 = Debug|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|x86.ActiveCfg = Debug|x86 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Debug|x86.Build.0 = Debug|x86 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|Any CPU.ActiveCfg = Release|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|Any CPU.Build.0 = Release|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|x64.ActiveCfg = Release|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|x64.Build.0 = Release|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|x86.ActiveCfg = Release|x86 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Release|x86.Build.0 = Release|x86 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|Any CPU.ActiveCfg = Checked|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|Any CPU.Build.0 = Checked|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|x64.ActiveCfg = Checked|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|x64.Build.0 = Checked|x64 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|x86.ActiveCfg = Checked|x86 + {370DCE61-CBDF-466E-91DB-5AE622BF2E52}.Checked|x86.Build.0 = Checked|x86 + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|x64.ActiveCfg = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|x64.Build.0 = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Debug|x86.Build.0 = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|Any CPU.Build.0 = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|x64.ActiveCfg = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|x64.Build.0 = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|x86.ActiveCfg = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Release|x86.Build.0 = Release|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Checked|x64.ActiveCfg = Debug|Any CPU + {6E159831-C97C-40FD-AD1A-E8B1EE3E7168}.Checked|x86.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|x64.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|x64.Build.0 = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|x86.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Debug|x86.Build.0 = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|Any CPU.Build.0 = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|x64.ActiveCfg = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|x64.Build.0 = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|x86.ActiveCfg = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Release|x86.Build.0 = Release|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Checked|x64.ActiveCfg = Debug|Any CPU + {0FA66C9B-5F53-46CB-A226-47EE656FBE6A}.Checked|x86.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|x64.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|x64.Build.0 = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|x86.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Debug|x86.Build.0 = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|Any CPU.Build.0 = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|x64.ActiveCfg = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|x64.Build.0 = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|x86.ActiveCfg = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Release|x86.Build.0 = Release|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Checked|x64.ActiveCfg = Debug|Any CPU + {D7C16DED-127A-4CBB-BBCF-DF133816413B}.Checked|x86.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|x64.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|x64.Build.0 = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|x86.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Debug|x86.Build.0 = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|Any CPU.Build.0 = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|x64.ActiveCfg = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|x64.Build.0 = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|x86.ActiveCfg = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Release|x86.Build.0 = Release|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Checked|x64.ActiveCfg = Debug|Any CPU + {63783D6D-0848-4303-8E7A-BBB7F65DCE9E}.Checked|x86.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|x64.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|x64.Build.0 = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|x86.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Debug|x86.Build.0 = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|Any CPU.Build.0 = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|x64.ActiveCfg = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|x64.Build.0 = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|x86.ActiveCfg = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Release|x86.Build.0 = Release|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Checked|x64.ActiveCfg = Debug|Any CPU + {24605C4D-2465-433D-A393-45CB950E0834}.Checked|x86.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|x64.Build.0 = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Debug|x86.Build.0 = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|Any CPU.Build.0 = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|x64.ActiveCfg = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|x64.Build.0 = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|x86.ActiveCfg = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Release|x86.Build.0 = Release|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Checked|x64.ActiveCfg = Debug|Any CPU + {ADB5AA13-96F9-4A6C-B152-A8295554815E}.Checked|x86.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|x64.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|x64.Build.0 = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|x86.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Debug|x86.Build.0 = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|Any CPU.Build.0 = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|x64.ActiveCfg = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|x64.Build.0 = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|x86.ActiveCfg = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Release|x86.Build.0 = Release|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Checked|x64.ActiveCfg = Debug|Any CPU + {7ED6F742-A58B-4352-AD32-88F53E65B763}.Checked|x86.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|x64.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|x64.Build.0 = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|x86.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Debug|x86.Build.0 = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|Any CPU.Build.0 = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|x64.ActiveCfg = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|x64.Build.0 = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|x86.ActiveCfg = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Release|x86.Build.0 = Release|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Checked|x64.ActiveCfg = Debug|Any CPU + {7263BACA-10BD-49B4-A4CF-027474094913}.Checked|x86.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|x64.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|x64.Build.0 = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|x86.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Debug|x86.Build.0 = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|Any CPU.Build.0 = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|x64.ActiveCfg = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|x64.Build.0 = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|x86.ActiveCfg = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Release|x86.Build.0 = Release|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Checked|x64.ActiveCfg = Debug|Any CPU + {4ECEAA1C-7CE9-490E-A10E-BADD2D6F4A27}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7E0E1B11-FF70-461E-99F7-C0AF252C0C60} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {EB880FDC-326D-42B3-A3FD-0CD3BA29A7F4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {0D8C8BAE-E5A5-4E9F-B101-3D18BD81D261} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3BCCC297-1869-476C-9861-507BCA01C64A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F3456474-9A6A-44C4-AE63-1D33EE9DAC10} + SolutionGuid = {5AB76D2F-E758-4FA1-83E4-E5645849CC34} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Diagnostics.Tracing/ref/System.Diagnostics.Tracing.Counters.cs b/src/libraries/System.Diagnostics.Tracing/ref/System.Diagnostics.Tracing.Counters.cs index 2e1cce9f780a..56c748f026e3 100644 --- a/src/libraries/System.Diagnostics.Tracing/ref/System.Diagnostics.Tracing.Counters.cs +++ b/src/libraries/System.Diagnostics.Tracing/ref/System.Diagnostics.Tracing.Counters.cs @@ -3,6 +3,7 @@ namespace System.Diagnostics.Tracing { + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public abstract partial class DiagnosticCounter : System.IDisposable { internal DiagnosticCounter() { } @@ -13,11 +14,13 @@ public abstract partial class DiagnosticCounter : System.IDisposable public void AddMetadata(string key, string? value) { } public void Dispose() { } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public partial class PollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { public PollingCounter(string name, System.Diagnostics.Tracing.EventSource eventSource, System.Func metricProvider) { } public override string ToString() { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public partial class IncrementingEventCounter : System.Diagnostics.Tracing.DiagnosticCounter { public IncrementingEventCounter(string name, System.Diagnostics.Tracing.EventSource eventSource) { } @@ -25,12 +28,14 @@ public partial class IncrementingEventCounter : System.Diagnostics.Tracing.Diagn public void Increment(double increment = 1) { } public override string ToString() { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public partial class IncrementingPollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { public IncrementingPollingCounter(string name, System.Diagnostics.Tracing.EventSource eventSource, System.Func totalValueProvider) { } public System.TimeSpan DisplayRateTimeScale { get { throw null; } set { } } public override string ToString() { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public partial class EventCounter : System.Diagnostics.Tracing.DiagnosticCounter { public EventCounter(string name, System.Diagnostics.Tracing.EventSource eventSource) { } diff --git a/src/libraries/System.DirectoryServices.AccountManagement/System.DirectoryServices.AccountManagement.sln b/src/libraries/System.DirectoryServices.AccountManagement/System.DirectoryServices.AccountManagement.sln index da3fe52c7533..8ececc3ede13 100644 --- a/src/libraries/System.DirectoryServices.AccountManagement/System.DirectoryServices.AccountManagement.sln +++ b/src/libraries/System.DirectoryServices.AccountManagement/System.DirectoryServices.AccountManagement.sln @@ -1,60 +1,205 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement.Tests", "tests\System.DirectoryServices.AccountManagement.Tests.csproj", "{B0EE498E-4BD8-4A39-89EB-7F2FC880B61F}" - ProjectSection(ProjectDependencies) = postProject - {879C23DC-D828-4DFB-8E92-ABBC11B71035} = {879C23DC-D828-4DFB-8E92-ABBC11B71035} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{05604AC6-E1DA-460E-9A38-57EB19BE3327}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "src\System.DirectoryServices.AccountManagement.csproj", "{879C23DC-D828-4DFB-8E92-ABBC11B71035}" - ProjectSection(ProjectDependencies) = postProject - {404455B6-466C-4F78-9DCC-C37DCC0B75DA} = {404455B6-466C-4F78-9DCC-C37DCC0B75DA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6AAD6E1C-3E25-423C-B19B-7216A12EA75B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "ref\System.DirectoryServices.AccountManagement.csproj", "{404455B6-466C-4F78-9DCC-C37DCC0B75DA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{33637A81-A335-474A-814D-648881BB403B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{A62FC401-7B8B-4CDE-8D46-3776980C94F0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "ref\System.DirectoryServices.AccountManagement.csproj", "{7BC4C9CF-F8E4-424B-9F30-237B801F435D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "src\System.DirectoryServices.AccountManagement.csproj", "{7DCEDAE6-45FC-402B-AAE4-14AD66B73D30}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{481EC106-6480-409E-93E3-DF8FE0F401C8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement.Tests", "tests\System.DirectoryServices.AccountManagement.Tests.csproj", "{44080626-DF98-470B-BCA1-CC3DFFCB94E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\ref\System.DirectoryServices.Protocols.csproj", "{469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\src\System.DirectoryServices.Protocols.csproj", "{DBE4B576-2E74-4A45-87E6-CCF652F6ADE1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{8D48B49B-398F-4536-B436-AAD50A7F54B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{6F8B3E04-A81F-4AD1-B82A-3E58F030D52A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{20D14386-C6D6-4B4D-B56B-0C8E645C704C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{15240A5C-430F-4EAA-81DE-7CE7BCD94BDE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{E535C2F0-BA22-4D75-875B-54FAEF9AF684}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1D411219-F307-4B9D-937E-553171FDB3D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{86B6EA46-F6CC-48D6-947D-77879D89658D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{A4070DDC-AC2C-43C8-BF61-3A185C3F6D20}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{A6769C35-8C53-46BF-84AE-44C921C39BEA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{10F92CA0-8897-420A-9963-F46BC1274D28}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{46B233B0-01EA-4569-BDA9-1A7526FAF6E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{BD5EC230-228C-4F5F-B580-F87AAFC8D9B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{433BCBD4-7006-4D1C-A940-C02CE70C79E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{CDF9EADE-78CA-4775-8961-D52E066432C9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{23EAA0CB-A705-4E20-AD71-61D829EA2E46}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D7D9053F-2CE4-40B6-B73A-A0496FA58375}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {05604AC6-E1DA-460E-9A38-57EB19BE3327} = {23EAA0CB-A705-4E20-AD71-61D829EA2E46} + {44080626-DF98-470B-BCA1-CC3DFFCB94E3} = {23EAA0CB-A705-4E20-AD71-61D829EA2E46} + {6AAD6E1C-3E25-423C-B19B-7216A12EA75B} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {33637A81-A335-474A-814D-648881BB403B} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {7BC4C9CF-F8E4-424B-9F30-237B801F435D} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {8D48B49B-398F-4536-B436-AAD50A7F54B1} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {20D14386-C6D6-4B4D-B56B-0C8E645C704C} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {15240A5C-430F-4EAA-81DE-7CE7BCD94BDE} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {1D411219-F307-4B9D-937E-553171FDB3D3} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {10F92CA0-8897-420A-9963-F46BC1274D28} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {BD5EC230-228C-4F5F-B580-F87AAFC8D9B0} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {CDF9EADE-78CA-4775-8961-D52E066432C9} = {F9BF99E8-37B3-4FFD-BB57-B596C03ABD2C} + {A62FC401-7B8B-4CDE-8D46-3776980C94F0} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {7DCEDAE6-45FC-402B-AAE4-14AD66B73D30} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {DBE4B576-2E74-4A45-87E6-CCF652F6ADE1} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {6F8B3E04-A81F-4AD1-B82A-3E58F030D52A} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {E535C2F0-BA22-4D75-875B-54FAEF9AF684} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {86B6EA46-F6CC-48D6-947D-77879D89658D} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {A4070DDC-AC2C-43C8-BF61-3A185C3F6D20} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {A6769C35-8C53-46BF-84AE-44C921C39BEA} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {46B233B0-01EA-4569-BDA9-1A7526FAF6E6} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {433BCBD4-7006-4D1C-A940-C02CE70C79E8} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + {A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A} = {D7D9053F-2CE4-40B6-B73A-A0496FA58375} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B0EE498E-4BD8-4A39-89EB-7F2FC880B61F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0EE498E-4BD8-4A39-89EB-7F2FC880B61F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0EE498E-4BD8-4A39-89EB-7F2FC880B61F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0EE498E-4BD8-4A39-89EB-7F2FC880B61F}.Release|Any CPU.Build.0 = Release|Any CPU - {879C23DC-D828-4DFB-8E92-ABBC11B71035}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {879C23DC-D828-4DFB-8E92-ABBC11B71035}.Debug|Any CPU.Build.0 = Debug|Any CPU - {879C23DC-D828-4DFB-8E92-ABBC11B71035}.Release|Any CPU.ActiveCfg = Release|Any CPU - {879C23DC-D828-4DFB-8E92-ABBC11B71035}.Release|Any CPU.Build.0 = Release|Any CPU - {404455B6-466C-4F78-9DCC-C37DCC0B75DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {404455B6-466C-4F78-9DCC-C37DCC0B75DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {404455B6-466C-4F78-9DCC-C37DCC0B75DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {404455B6-466C-4F78-9DCC-C37DCC0B75DA}.Release|Any CPU.Build.0 = Release|Any CPU - {481EC106-6480-409E-93E3-DF8FE0F401C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {481EC106-6480-409E-93E3-DF8FE0F401C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {481EC106-6480-409E-93E3-DF8FE0F401C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {481EC106-6480-409E-93E3-DF8FE0F401C8}.Release|Any CPU.Build.0 = Release|Any CPU + {05604AC6-E1DA-460E-9A38-57EB19BE3327}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05604AC6-E1DA-460E-9A38-57EB19BE3327}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05604AC6-E1DA-460E-9A38-57EB19BE3327}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05604AC6-E1DA-460E-9A38-57EB19BE3327}.Release|Any CPU.Build.0 = Release|Any CPU + {6AAD6E1C-3E25-423C-B19B-7216A12EA75B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AAD6E1C-3E25-423C-B19B-7216A12EA75B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AAD6E1C-3E25-423C-B19B-7216A12EA75B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AAD6E1C-3E25-423C-B19B-7216A12EA75B}.Release|Any CPU.Build.0 = Release|Any CPU + {33637A81-A335-474A-814D-648881BB403B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33637A81-A335-474A-814D-648881BB403B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33637A81-A335-474A-814D-648881BB403B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33637A81-A335-474A-814D-648881BB403B}.Release|Any CPU.Build.0 = Release|Any CPU + {A62FC401-7B8B-4CDE-8D46-3776980C94F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A62FC401-7B8B-4CDE-8D46-3776980C94F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A62FC401-7B8B-4CDE-8D46-3776980C94F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A62FC401-7B8B-4CDE-8D46-3776980C94F0}.Release|Any CPU.Build.0 = Release|Any CPU + {7BC4C9CF-F8E4-424B-9F30-237B801F435D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BC4C9CF-F8E4-424B-9F30-237B801F435D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BC4C9CF-F8E4-424B-9F30-237B801F435D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BC4C9CF-F8E4-424B-9F30-237B801F435D}.Release|Any CPU.Build.0 = Release|Any CPU + {7DCEDAE6-45FC-402B-AAE4-14AD66B73D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DCEDAE6-45FC-402B-AAE4-14AD66B73D30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DCEDAE6-45FC-402B-AAE4-14AD66B73D30}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DCEDAE6-45FC-402B-AAE4-14AD66B73D30}.Release|Any CPU.Build.0 = Release|Any CPU + {44080626-DF98-470B-BCA1-CC3DFFCB94E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44080626-DF98-470B-BCA1-CC3DFFCB94E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44080626-DF98-470B-BCA1-CC3DFFCB94E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44080626-DF98-470B-BCA1-CC3DFFCB94E3}.Release|Any CPU.Build.0 = Release|Any CPU + {469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {469EBD55-AEA1-4AF5-BBC6-F9938C7DAAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {DBE4B576-2E74-4A45-87E6-CCF652F6ADE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBE4B576-2E74-4A45-87E6-CCF652F6ADE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBE4B576-2E74-4A45-87E6-CCF652F6ADE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBE4B576-2E74-4A45-87E6-CCF652F6ADE1}.Release|Any CPU.Build.0 = Release|Any CPU + {8D48B49B-398F-4536-B436-AAD50A7F54B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D48B49B-398F-4536-B436-AAD50A7F54B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D48B49B-398F-4536-B436-AAD50A7F54B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D48B49B-398F-4536-B436-AAD50A7F54B1}.Release|Any CPU.Build.0 = Release|Any CPU + {6F8B3E04-A81F-4AD1-B82A-3E58F030D52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F8B3E04-A81F-4AD1-B82A-3E58F030D52A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F8B3E04-A81F-4AD1-B82A-3E58F030D52A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F8B3E04-A81F-4AD1-B82A-3E58F030D52A}.Release|Any CPU.Build.0 = Release|Any CPU + {20D14386-C6D6-4B4D-B56B-0C8E645C704C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20D14386-C6D6-4B4D-B56B-0C8E645C704C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20D14386-C6D6-4B4D-B56B-0C8E645C704C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20D14386-C6D6-4B4D-B56B-0C8E645C704C}.Release|Any CPU.Build.0 = Release|Any CPU + {15240A5C-430F-4EAA-81DE-7CE7BCD94BDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15240A5C-430F-4EAA-81DE-7CE7BCD94BDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15240A5C-430F-4EAA-81DE-7CE7BCD94BDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15240A5C-430F-4EAA-81DE-7CE7BCD94BDE}.Release|Any CPU.Build.0 = Release|Any CPU + {E535C2F0-BA22-4D75-875B-54FAEF9AF684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E535C2F0-BA22-4D75-875B-54FAEF9AF684}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E535C2F0-BA22-4D75-875B-54FAEF9AF684}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E535C2F0-BA22-4D75-875B-54FAEF9AF684}.Release|Any CPU.Build.0 = Release|Any CPU + {1D411219-F307-4B9D-937E-553171FDB3D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D411219-F307-4B9D-937E-553171FDB3D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D411219-F307-4B9D-937E-553171FDB3D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D411219-F307-4B9D-937E-553171FDB3D3}.Release|Any CPU.Build.0 = Release|Any CPU + {86B6EA46-F6CC-48D6-947D-77879D89658D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86B6EA46-F6CC-48D6-947D-77879D89658D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86B6EA46-F6CC-48D6-947D-77879D89658D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86B6EA46-F6CC-48D6-947D-77879D89658D}.Release|Any CPU.Build.0 = Release|Any CPU + {29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29AA77E4-EC5E-4F26-B07C-BDD8D3DD51DE}.Release|Any CPU.Build.0 = Release|Any CPU + {A4070DDC-AC2C-43C8-BF61-3A185C3F6D20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4070DDC-AC2C-43C8-BF61-3A185C3F6D20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4070DDC-AC2C-43C8-BF61-3A185C3F6D20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4070DDC-AC2C-43C8-BF61-3A185C3F6D20}.Release|Any CPU.Build.0 = Release|Any CPU + {A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A96F44C4-4CB8-41EB-ABBF-1C6E12664BCA}.Release|Any CPU.Build.0 = Release|Any CPU + {A6769C35-8C53-46BF-84AE-44C921C39BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6769C35-8C53-46BF-84AE-44C921C39BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6769C35-8C53-46BF-84AE-44C921C39BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6769C35-8C53-46BF-84AE-44C921C39BEA}.Release|Any CPU.Build.0 = Release|Any CPU + {10F92CA0-8897-420A-9963-F46BC1274D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10F92CA0-8897-420A-9963-F46BC1274D28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10F92CA0-8897-420A-9963-F46BC1274D28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10F92CA0-8897-420A-9963-F46BC1274D28}.Release|Any CPU.Build.0 = Release|Any CPU + {46B233B0-01EA-4569-BDA9-1A7526FAF6E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46B233B0-01EA-4569-BDA9-1A7526FAF6E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46B233B0-01EA-4569-BDA9-1A7526FAF6E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46B233B0-01EA-4569-BDA9-1A7526FAF6E6}.Release|Any CPU.Build.0 = Release|Any CPU + {BD5EC230-228C-4F5F-B580-F87AAFC8D9B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD5EC230-228C-4F5F-B580-F87AAFC8D9B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD5EC230-228C-4F5F-B580-F87AAFC8D9B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD5EC230-228C-4F5F-B580-F87AAFC8D9B0}.Release|Any CPU.Build.0 = Release|Any CPU + {433BCBD4-7006-4D1C-A940-C02CE70C79E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {433BCBD4-7006-4D1C-A940-C02CE70C79E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {433BCBD4-7006-4D1C-A940-C02CE70C79E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {433BCBD4-7006-4D1C-A940-C02CE70C79E8}.Release|Any CPU.Build.0 = Release|Any CPU + {CDF9EADE-78CA-4775-8961-D52E066432C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDF9EADE-78CA-4775-8961-D52E066432C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDF9EADE-78CA-4775-8961-D52E066432C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDF9EADE-78CA-4775-8961-D52E066432C9}.Release|Any CPU.Build.0 = Release|Any CPU + {A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A82F83FE-3B02-4EAA-8763-1D43AB0E4E6A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B0EE498E-4BD8-4A39-89EB-7F2FC880B61F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {879C23DC-D828-4DFB-8E92-ABBC11B71035} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {404455B6-466C-4F78-9DCC-C37DCC0B75DA} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {481EC106-6480-409E-93E3-DF8FE0F401C8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6D2C151C-899E-483D-9E18-F1E22EB5425C} + SolutionGuid = {600939C3-C746-4C12-9FA6-82208BD6CD03} EndGlobalSection EndGlobal diff --git a/src/libraries/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.sln b/src/libraries/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.sln index 53d9cc5881a7..63626c1ecbc9 100644 --- a/src/libraries/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.sln +++ b/src/libraries/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols.Tests", "tests\System.DirectoryServices.Protocols.Tests.csproj", "{6638C675-CD62-408F-AB3B-AAFD8A906A96}" - ProjectSection(ProjectDependencies) = postProject - {135980AC-4583-44EC-894E-CB3B1A481920} = {135980AC-4583-44EC-894E-CB3B1A481920} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{59D900EB-CABB-4CA9-9BE4-9855ADC32752}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "src\System.DirectoryServices.Protocols.csproj", "{135980AC-4583-44EC-894E-CB3B1A481920}" - ProjectSection(ProjectDependencies) = postProject - {7DEA4539-9A0D-4801-B229-3824710EBCEE} = {7DEA4539-9A0D-4801-B229-3824710EBCEE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{4C8719E1-4301-4EA0-A22B-E17D1B86C9EA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "ref\System.DirectoryServices.Protocols.csproj", "{7DEA4539-9A0D-4801-B229-3824710EBCEE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "ref\System.DirectoryServices.Protocols.csproj", "{E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "src\System.DirectoryServices.Protocols.csproj", "{71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols.Tests", "tests\System.DirectoryServices.Protocols.Tests.csproj", "{621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{B7E5B25A-0E3A-4FF8-958C-3FEB057DE330}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B71108C0-4466-472C-880D-B54081E7E16A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{E1F18567-C282-456B-8CCC-677702609FAF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{B90CD66C-B99D-4297-BF0F-CD87EFE28C8E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{7E6C77DE-BA1C-4588-810E-15F4B971415C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{49E93F4F-C28A-42B0-A255-6C3674E785EB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F939D8A3-E1D3-4E42-A4B1-BAACE52FC130}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{15B6E2E8-5FF8-4605-AF19-CE2C45E71811}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BA3BA91C-55C5-40FC-B322-DCA0EED59F6C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{64DCED12-0305-447A-A0E0-0B8FCDD1EC45}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{493BCA01-A5FC-4C5A-9E85-A0E23E3CD425}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{167E89F1-63F0-4E47-B67E-9931589E75CE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{3AFC36D9-1F61-4AE7-AE29-CE54105D32B8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{AC53B586-F702-4B0C-94A9-A6F066FDC4C1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{19B414C5-ACD0-4E78-B0A0-C698132F1988}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{61E4FC4B-B018-463C-84AE-D34F740DD229}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7A5D64CF-1206-4815-89D0-2CC798162E6C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {59D900EB-CABB-4CA9-9BE4-9855ADC32752} = {61E4FC4B-B018-463C-84AE-D34F740DD229} + {621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0} = {61E4FC4B-B018-463C-84AE-D34F740DD229} + {4C8719E1-4301-4EA0-A22B-E17D1B86C9EA} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {B7E5B25A-0E3A-4FF8-958C-3FEB057DE330} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {B90CD66C-B99D-4297-BF0F-CD87EFE28C8E} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {7E6C77DE-BA1C-4588-810E-15F4B971415C} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {F939D8A3-E1D3-4E42-A4B1-BAACE52FC130} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {BA3BA91C-55C5-40FC-B322-DCA0EED59F6C} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {493BCA01-A5FC-4C5A-9E85-A0E23E3CD425} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {3AFC36D9-1F61-4AE7-AE29-CE54105D32B8} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {AC53B586-F702-4B0C-94A9-A6F066FDC4C1} = {7A5D64CF-1206-4815-89D0-2CC798162E6C} + {71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {E1F18567-C282-456B-8CCC-677702609FAF} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {49E93F4F-C28A-42B0-A255-6C3674E785EB} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {15B6E2E8-5FF8-4605-AF19-CE2C45E71811} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {64DCED12-0305-447A-A0E0-0B8FCDD1EC45} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {167E89F1-63F0-4E47-B67E-9931589E75CE} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + {19B414C5-ACD0-4E78-B0A0-C698132F1988} = {1D8E89E0-C9F4-445F-B6C2-C9C03E74A71D} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6638C675-CD62-408F-AB3B-AAFD8A906A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6638C675-CD62-408F-AB3B-AAFD8A906A96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6638C675-CD62-408F-AB3B-AAFD8A906A96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6638C675-CD62-408F-AB3B-AAFD8A906A96}.Release|Any CPU.Build.0 = Release|Any CPU - {135980AC-4583-44EC-894E-CB3B1A481920}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {135980AC-4583-44EC-894E-CB3B1A481920}.Debug|Any CPU.Build.0 = Debug|Any CPU - {135980AC-4583-44EC-894E-CB3B1A481920}.Release|Any CPU.ActiveCfg = Release|Any CPU - {135980AC-4583-44EC-894E-CB3B1A481920}.Release|Any CPU.Build.0 = Release|Any CPU - {7DEA4539-9A0D-4801-B229-3824710EBCEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7DEA4539-9A0D-4801-B229-3824710EBCEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7DEA4539-9A0D-4801-B229-3824710EBCEE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7DEA4539-9A0D-4801-B229-3824710EBCEE}.Release|Any CPU.Build.0 = Release|Any CPU - {B71108C0-4466-472C-880D-B54081E7E16A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B71108C0-4466-472C-880D-B54081E7E16A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B71108C0-4466-472C-880D-B54081E7E16A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B71108C0-4466-472C-880D-B54081E7E16A}.Release|Any CPU.Build.0 = Release|Any CPU + {59D900EB-CABB-4CA9-9BE4-9855ADC32752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59D900EB-CABB-4CA9-9BE4-9855ADC32752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59D900EB-CABB-4CA9-9BE4-9855ADC32752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59D900EB-CABB-4CA9-9BE4-9855ADC32752}.Release|Any CPU.Build.0 = Release|Any CPU + {4C8719E1-4301-4EA0-A22B-E17D1B86C9EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C8719E1-4301-4EA0-A22B-E17D1B86C9EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C8719E1-4301-4EA0-A22B-E17D1B86C9EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C8719E1-4301-4EA0-A22B-E17D1B86C9EA}.Release|Any CPU.Build.0 = Release|Any CPU + {E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E61CD2AC-E0BB-4FC4-99D3-528AEDDB271B}.Release|Any CPU.Build.0 = Release|Any CPU + {71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71D4A6E0-0A63-4232-9EBB-E2D46C7E69B2}.Release|Any CPU.Build.0 = Release|Any CPU + {621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {621B4749-CFCE-4CC9-8B1E-A0AA26A4FCD0}.Release|Any CPU.Build.0 = Release|Any CPU + {B7E5B25A-0E3A-4FF8-958C-3FEB057DE330}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7E5B25A-0E3A-4FF8-958C-3FEB057DE330}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7E5B25A-0E3A-4FF8-958C-3FEB057DE330}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7E5B25A-0E3A-4FF8-958C-3FEB057DE330}.Release|Any CPU.Build.0 = Release|Any CPU + {E1F18567-C282-456B-8CCC-677702609FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1F18567-C282-456B-8CCC-677702609FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1F18567-C282-456B-8CCC-677702609FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1F18567-C282-456B-8CCC-677702609FAF}.Release|Any CPU.Build.0 = Release|Any CPU + {B90CD66C-B99D-4297-BF0F-CD87EFE28C8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B90CD66C-B99D-4297-BF0F-CD87EFE28C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B90CD66C-B99D-4297-BF0F-CD87EFE28C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B90CD66C-B99D-4297-BF0F-CD87EFE28C8E}.Release|Any CPU.Build.0 = Release|Any CPU + {7E6C77DE-BA1C-4588-810E-15F4B971415C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E6C77DE-BA1C-4588-810E-15F4B971415C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E6C77DE-BA1C-4588-810E-15F4B971415C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E6C77DE-BA1C-4588-810E-15F4B971415C}.Release|Any CPU.Build.0 = Release|Any CPU + {49E93F4F-C28A-42B0-A255-6C3674E785EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49E93F4F-C28A-42B0-A255-6C3674E785EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49E93F4F-C28A-42B0-A255-6C3674E785EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49E93F4F-C28A-42B0-A255-6C3674E785EB}.Release|Any CPU.Build.0 = Release|Any CPU + {F939D8A3-E1D3-4E42-A4B1-BAACE52FC130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F939D8A3-E1D3-4E42-A4B1-BAACE52FC130}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F939D8A3-E1D3-4E42-A4B1-BAACE52FC130}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F939D8A3-E1D3-4E42-A4B1-BAACE52FC130}.Release|Any CPU.Build.0 = Release|Any CPU + {15B6E2E8-5FF8-4605-AF19-CE2C45E71811}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15B6E2E8-5FF8-4605-AF19-CE2C45E71811}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15B6E2E8-5FF8-4605-AF19-CE2C45E71811}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15B6E2E8-5FF8-4605-AF19-CE2C45E71811}.Release|Any CPU.Build.0 = Release|Any CPU + {BA3BA91C-55C5-40FC-B322-DCA0EED59F6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA3BA91C-55C5-40FC-B322-DCA0EED59F6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA3BA91C-55C5-40FC-B322-DCA0EED59F6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA3BA91C-55C5-40FC-B322-DCA0EED59F6C}.Release|Any CPU.Build.0 = Release|Any CPU + {64DCED12-0305-447A-A0E0-0B8FCDD1EC45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64DCED12-0305-447A-A0E0-0B8FCDD1EC45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64DCED12-0305-447A-A0E0-0B8FCDD1EC45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64DCED12-0305-447A-A0E0-0B8FCDD1EC45}.Release|Any CPU.Build.0 = Release|Any CPU + {493BCA01-A5FC-4C5A-9E85-A0E23E3CD425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {493BCA01-A5FC-4C5A-9E85-A0E23E3CD425}.Debug|Any CPU.Build.0 = Debug|Any CPU + {493BCA01-A5FC-4C5A-9E85-A0E23E3CD425}.Release|Any CPU.ActiveCfg = Release|Any CPU + {493BCA01-A5FC-4C5A-9E85-A0E23E3CD425}.Release|Any CPU.Build.0 = Release|Any CPU + {167E89F1-63F0-4E47-B67E-9931589E75CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {167E89F1-63F0-4E47-B67E-9931589E75CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {167E89F1-63F0-4E47-B67E-9931589E75CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {167E89F1-63F0-4E47-B67E-9931589E75CE}.Release|Any CPU.Build.0 = Release|Any CPU + {3AFC36D9-1F61-4AE7-AE29-CE54105D32B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AFC36D9-1F61-4AE7-AE29-CE54105D32B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AFC36D9-1F61-4AE7-AE29-CE54105D32B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AFC36D9-1F61-4AE7-AE29-CE54105D32B8}.Release|Any CPU.Build.0 = Release|Any CPU + {CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB3DF0FB-A195-48BE-AC18-EAE9DCEE9155}.Release|Any CPU.Build.0 = Release|Any CPU + {AC53B586-F702-4B0C-94A9-A6F066FDC4C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC53B586-F702-4B0C-94A9-A6F066FDC4C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC53B586-F702-4B0C-94A9-A6F066FDC4C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC53B586-F702-4B0C-94A9-A6F066FDC4C1}.Release|Any CPU.Build.0 = Release|Any CPU + {19B414C5-ACD0-4E78-B0A0-C698132F1988}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19B414C5-ACD0-4E78-B0A0-C698132F1988}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19B414C5-ACD0-4E78-B0A0-C698132F1988}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19B414C5-ACD0-4E78-B0A0-C698132F1988}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6638C675-CD62-408F-AB3B-AAFD8A906A96} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {135980AC-4583-44EC-894E-CB3B1A481920} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7DEA4539-9A0D-4801-B229-3824710EBCEE} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B71108C0-4466-472C-880D-B54081E7E16A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DBE446A9-A8D4-47DC-AF12-E8FA5BF9685C} + SolutionGuid = {FA8DCCFE-EDCD-4086-AD0B-5089B54BC658} EndGlobalSection EndGlobal diff --git a/src/libraries/System.DirectoryServices/System.DirectoryServices.sln b/src/libraries/System.DirectoryServices/System.DirectoryServices.sln index 2aae01bdabd7..e11ab396935f 100644 --- a/src/libraries/System.DirectoryServices/System.DirectoryServices.sln +++ b/src/libraries/System.DirectoryServices/System.DirectoryServices.sln @@ -1,60 +1,149 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Tests", "tests\System.DirectoryServices.Tests.csproj", "{DDE3838B-0EEA-4D9A-A120-9D72CB33F250}" - ProjectSection(ProjectDependencies) = postProject - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28} = {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1A19656D-1047-4E43-B9C5-73423399D1D4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "src\System.DirectoryServices.csproj", "{EC9B0FBC-C3A2-44E6-BFC6-51E565061C28}" - ProjectSection(ProjectDependencies) = postProject - {CBCDA53B-4C01-4267-B08C-413205FE4D8D} = {CBCDA53B-4C01-4267-B08C-413205FE4D8D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6BB2B70D-0D80-4774-B0F4-E7C92FC58987}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "ref\System.DirectoryServices.csproj", "{CBCDA53B-4C01-4267-B08C-413205FE4D8D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "ref\System.DirectoryServices.csproj", "{DB7964E8-6761-47C7-B120-DAF13FDDE01B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "src\System.DirectoryServices.csproj", "{6870504E-8490-4A4C-938A-C68DA9A2F65D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Tests", "tests\System.DirectoryServices.Tests.csproj", "{197926DA-9180-4AD4-AC71-B95FC5CA7557}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{09EAF02A-CD00-4440-A7CF-7355EC5DC85A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{F456A804-449A-4CF4-AEAF-9C48430E6E8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{D6944D25-E75D-45AA-8C58-D61254B77BCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{B2ED534B-CB42-4F20-9AD9-707CFF08D73F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{97F1F297-B6BC-4CD8-9E44-C682CA36A434}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{35B03979-8DA5-48FA-8DF6-AA7A8C6153CF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{C40C15E4-8060-4295-9B8F-E04F94BFDA2B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{E2B0069E-C11C-4829-87C8-A98ED298CB8A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{1937FA8B-D798-494B-825A-E772546415B6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{169CCBAE-5490-4409-9CC7-48850ABA1BE8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{B3473ABA-A06B-445E-AE21-C7432AD14482}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0A80176F-E288-41E5-AFEA-C9291566EA95}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E3CDCC59-B1B9-4084-A059-D6145BBE43E6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7D929B0F-C595-4D90-BC2B-FBAF461CD311}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1A19656D-1047-4E43-B9C5-73423399D1D4} = {0A80176F-E288-41E5-AFEA-C9291566EA95} + {197926DA-9180-4AD4-AC71-B95FC5CA7557} = {0A80176F-E288-41E5-AFEA-C9291566EA95} + {6BB2B70D-0D80-4774-B0F4-E7C92FC58987} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {DB7964E8-6761-47C7-B120-DAF13FDDE01B} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {09EAF02A-CD00-4440-A7CF-7355EC5DC85A} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {F456A804-449A-4CF4-AEAF-9C48430E6E8F} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {B2ED534B-CB42-4F20-9AD9-707CFF08D73F} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {35B03979-8DA5-48FA-8DF6-AA7A8C6153CF} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {C40C15E4-8060-4295-9B8F-E04F94BFDA2B} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {169CCBAE-5490-4409-9CC7-48850ABA1BE8} = {E3CDCC59-B1B9-4084-A059-D6145BBE43E6} + {6870504E-8490-4A4C-938A-C68DA9A2F65D} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {D6944D25-E75D-45AA-8C58-D61254B77BCA} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {97F1F297-B6BC-4CD8-9E44-C682CA36A434} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {E2B0069E-C11C-4829-87C8-A98ED298CB8A} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {1937FA8B-D798-494B-825A-E772546415B6} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + {B3473ABA-A06B-445E-AE21-C7432AD14482} = {7D929B0F-C595-4D90-BC2B-FBAF461CD311} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DDE3838B-0EEA-4D9A-A120-9D72CB33F250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DDE3838B-0EEA-4D9A-A120-9D72CB33F250}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DDE3838B-0EEA-4D9A-A120-9D72CB33F250}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DDE3838B-0EEA-4D9A-A120-9D72CB33F250}.Release|Any CPU.Build.0 = Release|Any CPU - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28}.Release|Any CPU.Build.0 = Release|Any CPU - {CBCDA53B-4C01-4267-B08C-413205FE4D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CBCDA53B-4C01-4267-B08C-413205FE4D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CBCDA53B-4C01-4267-B08C-413205FE4D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CBCDA53B-4C01-4267-B08C-413205FE4D8D}.Release|Any CPU.Build.0 = Release|Any CPU - {7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2}.Release|Any CPU.Build.0 = Release|Any CPU + {1A19656D-1047-4E43-B9C5-73423399D1D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A19656D-1047-4E43-B9C5-73423399D1D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A19656D-1047-4E43-B9C5-73423399D1D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A19656D-1047-4E43-B9C5-73423399D1D4}.Release|Any CPU.Build.0 = Release|Any CPU + {6BB2B70D-0D80-4774-B0F4-E7C92FC58987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BB2B70D-0D80-4774-B0F4-E7C92FC58987}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BB2B70D-0D80-4774-B0F4-E7C92FC58987}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BB2B70D-0D80-4774-B0F4-E7C92FC58987}.Release|Any CPU.Build.0 = Release|Any CPU + {DB7964E8-6761-47C7-B120-DAF13FDDE01B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB7964E8-6761-47C7-B120-DAF13FDDE01B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB7964E8-6761-47C7-B120-DAF13FDDE01B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB7964E8-6761-47C7-B120-DAF13FDDE01B}.Release|Any CPU.Build.0 = Release|Any CPU + {6870504E-8490-4A4C-938A-C68DA9A2F65D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6870504E-8490-4A4C-938A-C68DA9A2F65D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6870504E-8490-4A4C-938A-C68DA9A2F65D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6870504E-8490-4A4C-938A-C68DA9A2F65D}.Release|Any CPU.Build.0 = Release|Any CPU + {197926DA-9180-4AD4-AC71-B95FC5CA7557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {197926DA-9180-4AD4-AC71-B95FC5CA7557}.Debug|Any CPU.Build.0 = Debug|Any CPU + {197926DA-9180-4AD4-AC71-B95FC5CA7557}.Release|Any CPU.ActiveCfg = Release|Any CPU + {197926DA-9180-4AD4-AC71-B95FC5CA7557}.Release|Any CPU.Build.0 = Release|Any CPU + {09EAF02A-CD00-4440-A7CF-7355EC5DC85A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09EAF02A-CD00-4440-A7CF-7355EC5DC85A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09EAF02A-CD00-4440-A7CF-7355EC5DC85A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09EAF02A-CD00-4440-A7CF-7355EC5DC85A}.Release|Any CPU.Build.0 = Release|Any CPU + {F456A804-449A-4CF4-AEAF-9C48430E6E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F456A804-449A-4CF4-AEAF-9C48430E6E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F456A804-449A-4CF4-AEAF-9C48430E6E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F456A804-449A-4CF4-AEAF-9C48430E6E8F}.Release|Any CPU.Build.0 = Release|Any CPU + {D6944D25-E75D-45AA-8C58-D61254B77BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6944D25-E75D-45AA-8C58-D61254B77BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6944D25-E75D-45AA-8C58-D61254B77BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6944D25-E75D-45AA-8C58-D61254B77BCA}.Release|Any CPU.Build.0 = Release|Any CPU + {B2ED534B-CB42-4F20-9AD9-707CFF08D73F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2ED534B-CB42-4F20-9AD9-707CFF08D73F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2ED534B-CB42-4F20-9AD9-707CFF08D73F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2ED534B-CB42-4F20-9AD9-707CFF08D73F}.Release|Any CPU.Build.0 = Release|Any CPU + {97F1F297-B6BC-4CD8-9E44-C682CA36A434}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97F1F297-B6BC-4CD8-9E44-C682CA36A434}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97F1F297-B6BC-4CD8-9E44-C682CA36A434}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97F1F297-B6BC-4CD8-9E44-C682CA36A434}.Release|Any CPU.Build.0 = Release|Any CPU + {35B03979-8DA5-48FA-8DF6-AA7A8C6153CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35B03979-8DA5-48FA-8DF6-AA7A8C6153CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35B03979-8DA5-48FA-8DF6-AA7A8C6153CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35B03979-8DA5-48FA-8DF6-AA7A8C6153CF}.Release|Any CPU.Build.0 = Release|Any CPU + {BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEDD1BB8-E5AF-4FD0-BB90-E928D022BE4D}.Release|Any CPU.Build.0 = Release|Any CPU + {C40C15E4-8060-4295-9B8F-E04F94BFDA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C40C15E4-8060-4295-9B8F-E04F94BFDA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C40C15E4-8060-4295-9B8F-E04F94BFDA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C40C15E4-8060-4295-9B8F-E04F94BFDA2B}.Release|Any CPU.Build.0 = Release|Any CPU + {E2B0069E-C11C-4829-87C8-A98ED298CB8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2B0069E-C11C-4829-87C8-A98ED298CB8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2B0069E-C11C-4829-87C8-A98ED298CB8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2B0069E-C11C-4829-87C8-A98ED298CB8A}.Release|Any CPU.Build.0 = Release|Any CPU + {BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCA7A7F1-6049-4D51-97A0-E3B9B2A227B7}.Release|Any CPU.Build.0 = Release|Any CPU + {1937FA8B-D798-494B-825A-E772546415B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1937FA8B-D798-494B-825A-E772546415B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1937FA8B-D798-494B-825A-E772546415B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1937FA8B-D798-494B-825A-E772546415B6}.Release|Any CPU.Build.0 = Release|Any CPU + {169CCBAE-5490-4409-9CC7-48850ABA1BE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {169CCBAE-5490-4409-9CC7-48850ABA1BE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {169CCBAE-5490-4409-9CC7-48850ABA1BE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {169CCBAE-5490-4409-9CC7-48850ABA1BE8}.Release|Any CPU.Build.0 = Release|Any CPU + {B3473ABA-A06B-445E-AE21-C7432AD14482}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3473ABA-A06B-445E-AE21-C7432AD14482}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3473ABA-A06B-445E-AE21-C7432AD14482}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3473ABA-A06B-445E-AE21-C7432AD14482}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {DDE3838B-0EEA-4D9A-A120-9D72CB33F250} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {EC9B0FBC-C3A2-44E6-BFC6-51E565061C28} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {CBCDA53B-4C01-4267-B08C-413205FE4D8D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7140F6A9-8DBB-4D3C-87D4-0DCF5181B3E2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {88FABF55-3145-4BBD-908F-BDB2AEB4742B} + SolutionGuid = {9DE1DE68-219A-4A5E-83A8-C0F0637EE9DF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Drawing.Common/System.Drawing.Common.sln b/src/libraries/System.Drawing.Common/System.Drawing.Common.sln index df9023ce87dd..983102249b9e 100644 --- a/src/libraries/System.Drawing.Common/System.Drawing.Common.sln +++ b/src/libraries/System.Drawing.Common/System.Drawing.Common.sln @@ -1,60 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29102.190 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common.Tests", "tests\System.Drawing.Common.Tests.csproj", "{4B93E684-0630-45F4-8F63-6C7788C9892F}" - ProjectSection(ProjectDependencies) = postProject - {191B3618-FECD-4ABD-9D6B-5AC90DC33621} = {191B3618-FECD-4ABD-9D6B-5AC90DC33621} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "src\System.Drawing.Common.csproj", "{191B3618-FECD-4ABD-9D6B-5AC90DC33621}" - ProjectSection(ProjectDependencies) = postProject - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0} = {D7AEA698-275D-441F-B7A7-8491D1F0EFF0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "ref\System.Drawing.Common.csproj", "{D7AEA698-275D-441F-B7A7-8491D1F0EFF0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{83CA6F97-678B-40A7-A9DF-C94A46B8B18A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{4BBDE239-6D43-43C0-AF72-25116A49A9E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "ref\System.Drawing.Common.csproj", "{790BF98D-7616-410C-BEF8-2CBA7E7601BB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "src\System.Drawing.Common.csproj", "{F1A41550-378D-4651-915F-263BD9AB460E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E9562452-8420-4C95-A129-DADD0F35D168}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common.Tests", "tests\System.Drawing.Common.Tests.csproj", "{F14479F4-611E-49DA-BB07-74C0AB096FB5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D04E4F54-5141-48A6-B56B-38227CC937E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{3C46E509-7690-4467-9399-23B213F8236A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{50C80896-2D86-49EF-BBA6-330D902DF948}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{AD354584-CFB3-49C9-801A-F773DC271A2A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{78608B5B-3BBB-4201-AF82-D6D973CB993B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{5E2AC679-D984-444B-9C4B-285EF6F63AF0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E1965D61-D899-4AEA-BF92-9597B18392F5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86} = {78608B5B-3BBB-4201-AF82-D6D973CB993B} + {F14479F4-611E-49DA-BB07-74C0AB096FB5} = {78608B5B-3BBB-4201-AF82-D6D973CB993B} + {F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {83CA6F97-678B-40A7-A9DF-C94A46B8B18A} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {790BF98D-7616-410C-BEF8-2CBA7E7601BB} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {D04E4F54-5141-48A6-B56B-38227CC937E0} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {50C80896-2D86-49EF-BBA6-330D902DF948} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {AD354584-CFB3-49C9-801A-F773DC271A2A} = {5E2AC679-D984-444B-9C4B-285EF6F63AF0} + {4BBDE239-6D43-43C0-AF72-25116A49A9E0} = {E1965D61-D899-4AEA-BF92-9597B18392F5} + {F1A41550-378D-4651-915F-263BD9AB460E} = {E1965D61-D899-4AEA-BF92-9597B18392F5} + {3C46E509-7690-4467-9399-23B213F8236A} = {E1965D61-D899-4AEA-BF92-9597B18392F5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B93E684-0630-45F4-8F63-6C7788C9892F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B93E684-0630-45F4-8F63-6C7788C9892F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B93E684-0630-45F4-8F63-6C7788C9892F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B93E684-0630-45F4-8F63-6C7788C9892F}.Release|Any CPU.Build.0 = Release|Any CPU - {191B3618-FECD-4ABD-9D6B-5AC90DC33621}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {191B3618-FECD-4ABD-9D6B-5AC90DC33621}.Debug|Any CPU.Build.0 = Debug|Any CPU - {191B3618-FECD-4ABD-9D6B-5AC90DC33621}.Release|Any CPU.ActiveCfg = Release|Any CPU - {191B3618-FECD-4ABD-9D6B-5AC90DC33621}.Release|Any CPU.Build.0 = Release|Any CPU - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0}.Release|Any CPU.Build.0 = Release|Any CPU - {E9562452-8420-4C95-A129-DADD0F35D168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9562452-8420-4C95-A129-DADD0F35D168}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9562452-8420-4C95-A129-DADD0F35D168}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9562452-8420-4C95-A129-DADD0F35D168}.Release|Any CPU.Build.0 = Release|Any CPU + {1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C4EEE9D-AF5E-4C94-A5A7-3EFD83A19A86}.Release|Any CPU.Build.0 = Release|Any CPU + {F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9F48FD6-B4DC-48D7-B893-9AF63F2F1B70}.Release|Any CPU.Build.0 = Release|Any CPU + {83CA6F97-678B-40A7-A9DF-C94A46B8B18A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83CA6F97-678B-40A7-A9DF-C94A46B8B18A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83CA6F97-678B-40A7-A9DF-C94A46B8B18A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83CA6F97-678B-40A7-A9DF-C94A46B8B18A}.Release|Any CPU.Build.0 = Release|Any CPU + {4BBDE239-6D43-43C0-AF72-25116A49A9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BBDE239-6D43-43C0-AF72-25116A49A9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BBDE239-6D43-43C0-AF72-25116A49A9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BBDE239-6D43-43C0-AF72-25116A49A9E0}.Release|Any CPU.Build.0 = Release|Any CPU + {790BF98D-7616-410C-BEF8-2CBA7E7601BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {790BF98D-7616-410C-BEF8-2CBA7E7601BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {790BF98D-7616-410C-BEF8-2CBA7E7601BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {790BF98D-7616-410C-BEF8-2CBA7E7601BB}.Release|Any CPU.Build.0 = Release|Any CPU + {F1A41550-378D-4651-915F-263BD9AB460E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1A41550-378D-4651-915F-263BD9AB460E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1A41550-378D-4651-915F-263BD9AB460E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1A41550-378D-4651-915F-263BD9AB460E}.Release|Any CPU.Build.0 = Release|Any CPU + {F14479F4-611E-49DA-BB07-74C0AB096FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F14479F4-611E-49DA-BB07-74C0AB096FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F14479F4-611E-49DA-BB07-74C0AB096FB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F14479F4-611E-49DA-BB07-74C0AB096FB5}.Release|Any CPU.Build.0 = Release|Any CPU + {D04E4F54-5141-48A6-B56B-38227CC937E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D04E4F54-5141-48A6-B56B-38227CC937E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D04E4F54-5141-48A6-B56B-38227CC937E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D04E4F54-5141-48A6-B56B-38227CC937E0}.Release|Any CPU.Build.0 = Release|Any CPU + {3C46E509-7690-4467-9399-23B213F8236A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C46E509-7690-4467-9399-23B213F8236A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C46E509-7690-4467-9399-23B213F8236A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C46E509-7690-4467-9399-23B213F8236A}.Release|Any CPU.Build.0 = Release|Any CPU + {50C80896-2D86-49EF-BBA6-330D902DF948}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50C80896-2D86-49EF-BBA6-330D902DF948}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50C80896-2D86-49EF-BBA6-330D902DF948}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50C80896-2D86-49EF-BBA6-330D902DF948}.Release|Any CPU.Build.0 = Release|Any CPU + {AD354584-CFB3-49C9-801A-F773DC271A2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD354584-CFB3-49C9-801A-F773DC271A2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD354584-CFB3-49C9-801A-F773DC271A2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD354584-CFB3-49C9-801A-F773DC271A2A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4B93E684-0630-45F4-8F63-6C7788C9892F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {191B3618-FECD-4ABD-9D6B-5AC90DC33621} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D7AEA698-275D-441F-B7A7-8491D1F0EFF0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {E9562452-8420-4C95-A129-DADD0F35D168} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {49ACD6A4-C709-4315-813A-445A840B5574} + SolutionGuid = {FE976CDB-4464-48A7-86B9-04DB5E2258DA} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Drawing.Primitives/System.Drawing.Primitives.sln b/src/libraries/System.Drawing.Primitives/System.Drawing.Primitives.sln index c1076b518fb5..25e2d3f83514 100644 --- a/src/libraries/System.Drawing.Primitives/System.Drawing.Primitives.sln +++ b/src/libraries/System.Drawing.Primitives/System.Drawing.Primitives.sln @@ -1,60 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives.Tests", "tests\System.Drawing.Primitives.Tests.csproj", "{CF54638C-A382-4A78-9AD6-2304CEEFEB01}" - ProjectSection(ProjectDependencies) = postProject - {8F472B93-574C-4AEC-9D28-6C2360A55BBF} = {8F472B93-574C-4AEC-9D28-6C2360A55BBF} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{39205290-06C5-468E-B5C9-D9C5737909EE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives", "src\System.Drawing.Primitives.csproj", "{8F472B93-574C-4AEC-9D28-6C2360A55BBF}" - ProjectSection(ProjectDependencies) = postProject - {10F74537-6423-48F5-A7F3-4DE94E42AF8F} = {10F74537-6423-48F5-A7F3-4DE94E42AF8F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{33287638-54E4-4929-AEF4-91C5D1437118}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives", "ref\System.Drawing.Primitives.csproj", "{10F74537-6423-48F5-A7F3-4DE94E42AF8F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{CE77C53C-CB16-487B-9ABE-6A62BC4BAE67}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives", "ref\System.Drawing.Primitives.csproj", "{D2E753F4-34A3-4641-9C0F-53539147CCF2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives", "src\System.Drawing.Primitives.csproj", "{80A68643-0E37-4525-BF06-F50C3BF7B867}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9AC5A9BF-A743-4696-8515-11CB517605A8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Primitives.Tests", "tests\System.Drawing.Primitives.Tests.csproj", "{515B6C1E-757F-497E-9707-37B5822FFC9A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{CE015CAB-D2C5-4525-B2E5-1020BADB211A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{4698E870-A129-44D0-A890-98BAB02ECE0C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{9E7CE42D-F172-404E-90B6-706AEEA2F786}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{86A52552-D633-489E-995E-DD3B7EA3E328}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6FF7D690-F4BF-45A0-881A-5792FC192220}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{70CC53D2-00D6-4119-8F53-5F3B8FF58107}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {39205290-06C5-468E-B5C9-D9C5737909EE} = {86A52552-D633-489E-995E-DD3B7EA3E328} + {515B6C1E-757F-497E-9707-37B5822FFC9A} = {86A52552-D633-489E-995E-DD3B7EA3E328} + {33287638-54E4-4929-AEF4-91C5D1437118} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {D2E753F4-34A3-4641-9C0F-53539147CCF2} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {CE015CAB-D2C5-4525-B2E5-1020BADB211A} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {9E7CE42D-F172-404E-90B6-706AEEA2F786} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC} = {6FF7D690-F4BF-45A0-881A-5792FC192220} + {CE77C53C-CB16-487B-9ABE-6A62BC4BAE67} = {70CC53D2-00D6-4119-8F53-5F3B8FF58107} + {80A68643-0E37-4525-BF06-F50C3BF7B867} = {70CC53D2-00D6-4119-8F53-5F3B8FF58107} + {4698E870-A129-44D0-A890-98BAB02ECE0C} = {70CC53D2-00D6-4119-8F53-5F3B8FF58107} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CF54638C-A382-4A78-9AD6-2304CEEFEB01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF54638C-A382-4A78-9AD6-2304CEEFEB01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF54638C-A382-4A78-9AD6-2304CEEFEB01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF54638C-A382-4A78-9AD6-2304CEEFEB01}.Release|Any CPU.Build.0 = Release|Any CPU - {8F472B93-574C-4AEC-9D28-6C2360A55BBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F472B93-574C-4AEC-9D28-6C2360A55BBF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F472B93-574C-4AEC-9D28-6C2360A55BBF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F472B93-574C-4AEC-9D28-6C2360A55BBF}.Release|Any CPU.Build.0 = Release|Any CPU - {10F74537-6423-48F5-A7F3-4DE94E42AF8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10F74537-6423-48F5-A7F3-4DE94E42AF8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10F74537-6423-48F5-A7F3-4DE94E42AF8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10F74537-6423-48F5-A7F3-4DE94E42AF8F}.Release|Any CPU.Build.0 = Release|Any CPU - {9AC5A9BF-A743-4696-8515-11CB517605A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9AC5A9BF-A743-4696-8515-11CB517605A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9AC5A9BF-A743-4696-8515-11CB517605A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9AC5A9BF-A743-4696-8515-11CB517605A8}.Release|Any CPU.Build.0 = Release|Any CPU + {39205290-06C5-468E-B5C9-D9C5737909EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39205290-06C5-468E-B5C9-D9C5737909EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39205290-06C5-468E-B5C9-D9C5737909EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39205290-06C5-468E-B5C9-D9C5737909EE}.Release|Any CPU.Build.0 = Release|Any CPU + {33287638-54E4-4929-AEF4-91C5D1437118}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33287638-54E4-4929-AEF4-91C5D1437118}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33287638-54E4-4929-AEF4-91C5D1437118}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33287638-54E4-4929-AEF4-91C5D1437118}.Release|Any CPU.Build.0 = Release|Any CPU + {D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D38394CE-5EEA-4B06-A2C5-EAA8BF04E8AB}.Release|Any CPU.Build.0 = Release|Any CPU + {CE77C53C-CB16-487B-9ABE-6A62BC4BAE67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE77C53C-CB16-487B-9ABE-6A62BC4BAE67}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE77C53C-CB16-487B-9ABE-6A62BC4BAE67}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE77C53C-CB16-487B-9ABE-6A62BC4BAE67}.Release|Any CPU.Build.0 = Release|Any CPU + {D2E753F4-34A3-4641-9C0F-53539147CCF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2E753F4-34A3-4641-9C0F-53539147CCF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2E753F4-34A3-4641-9C0F-53539147CCF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2E753F4-34A3-4641-9C0F-53539147CCF2}.Release|Any CPU.Build.0 = Release|Any CPU + {80A68643-0E37-4525-BF06-F50C3BF7B867}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80A68643-0E37-4525-BF06-F50C3BF7B867}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80A68643-0E37-4525-BF06-F50C3BF7B867}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80A68643-0E37-4525-BF06-F50C3BF7B867}.Release|Any CPU.Build.0 = Release|Any CPU + {515B6C1E-757F-497E-9707-37B5822FFC9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {515B6C1E-757F-497E-9707-37B5822FFC9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {515B6C1E-757F-497E-9707-37B5822FFC9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {515B6C1E-757F-497E-9707-37B5822FFC9A}.Release|Any CPU.Build.0 = Release|Any CPU + {CE015CAB-D2C5-4525-B2E5-1020BADB211A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE015CAB-D2C5-4525-B2E5-1020BADB211A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE015CAB-D2C5-4525-B2E5-1020BADB211A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE015CAB-D2C5-4525-B2E5-1020BADB211A}.Release|Any CPU.Build.0 = Release|Any CPU + {4698E870-A129-44D0-A890-98BAB02ECE0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4698E870-A129-44D0-A890-98BAB02ECE0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4698E870-A129-44D0-A890-98BAB02ECE0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4698E870-A129-44D0-A890-98BAB02ECE0C}.Release|Any CPU.Build.0 = Release|Any CPU + {9E7CE42D-F172-404E-90B6-706AEEA2F786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E7CE42D-F172-404E-90B6-706AEEA2F786}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E7CE42D-F172-404E-90B6-706AEEA2F786}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E7CE42D-F172-404E-90B6-706AEEA2F786}.Release|Any CPU.Build.0 = Release|Any CPU + {A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3C3610E-58F1-4ABB-9CDB-F7F6814E16CC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CF54638C-A382-4A78-9AD6-2304CEEFEB01} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8F472B93-574C-4AEC-9D28-6C2360A55BBF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {10F74537-6423-48F5-A7F3-4DE94E42AF8F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9AC5A9BF-A743-4696-8515-11CB517605A8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B9974179-A25A-4E7A-A743-D4562E707796} + SolutionGuid = {E2DD25F1-FA29-41D5-AB37-65DDC6A49304} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Dynamic.Runtime/System.Dynamic.Runtime.sln b/src/libraries/System.Dynamic.Runtime/System.Dynamic.Runtime.sln index d839ee5a9e14..8b57e208814e 100644 --- a/src/libraries/System.Dynamic.Runtime/System.Dynamic.Runtime.sln +++ b/src/libraries/System.Dynamic.Runtime/System.Dynamic.Runtime.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime.Tests", "tests\System.Dynamic.Runtime.Tests.csproj", "{0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A}" - ProjectSection(ProjectDependencies) = postProject - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39} = {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9A152C52-C5EE-41ED-AD29-8EEE5D41E372}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime", "src\System.Dynamic.Runtime.csproj", "{C4E89B8C-07DB-40CA-8C99-82A23E8F5F39}" - ProjectSection(ProjectDependencies) = postProject - {4E604291-4118-4CD6-B790-BA5F4F8C1A18} = {4E604291-4118-4CD6-B790-BA5F4F8C1A18} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9E4EA321-CED7-4A2B-BA35-468EDF0EF007}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime", "ref\System.Dynamic.Runtime.csproj", "{4E604291-4118-4CD6-B790-BA5F4F8C1A18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime", "ref\System.Dynamic.Runtime.csproj", "{1A6D5602-176D-4E7D-A7F5-F4D25044E171}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime", "src\System.Dynamic.Runtime.csproj", "{F4EF8420-0243-452F-879E-609F9AE7C05E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Dynamic.Runtime.Tests", "tests\System.Dynamic.Runtime.Tests.csproj", "{3695B814-610C-41D5-A3F5-B0B55EF10863}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{6AD793CF-2805-4101-975C-71CE64DB62A1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D95AE371-BDD6-43CD-BA59-DE0EE0813E01}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{3653D393-7F7B-4090-90FA-7028C29B5FFC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{84102ABB-EE96-4D46-96B8-16759AE17E13}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{678436AA-0958-4152-8964-886B7B64CBD0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3E843338-D01C-4AA5-ABD5-099896E60067}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{85532E0A-0329-4D58-80FE-F1B8E295D492}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7996B20A-5EAA-4054-80DE-BBC21F6CD1B5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {9A152C52-C5EE-41ED-AD29-8EEE5D41E372} = {3E843338-D01C-4AA5-ABD5-099896E60067} + {3695B814-610C-41D5-A3F5-B0B55EF10863} = {3E843338-D01C-4AA5-ABD5-099896E60067} + {9E4EA321-CED7-4A2B-BA35-468EDF0EF007} = {85532E0A-0329-4D58-80FE-F1B8E295D492} + {1A6D5602-176D-4E7D-A7F5-F4D25044E171} = {85532E0A-0329-4D58-80FE-F1B8E295D492} + {6AD793CF-2805-4101-975C-71CE64DB62A1} = {85532E0A-0329-4D58-80FE-F1B8E295D492} + {84102ABB-EE96-4D46-96B8-16759AE17E13} = {85532E0A-0329-4D58-80FE-F1B8E295D492} + {678436AA-0958-4152-8964-886B7B64CBD0} = {85532E0A-0329-4D58-80FE-F1B8E295D492} + {F4EF8420-0243-452F-879E-609F9AE7C05E} = {7996B20A-5EAA-4054-80DE-BBC21F6CD1B5} + {3653D393-7F7B-4090-90FA-7028C29B5FFC} = {7996B20A-5EAA-4054-80DE-BBC21F6CD1B5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A}.Release|Any CPU.Build.0 = Release|Any CPU - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39}.Release|Any CPU.Build.0 = Release|Any CPU - {4E604291-4118-4CD6-B790-BA5F4F8C1A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E604291-4118-4CD6-B790-BA5F4F8C1A18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E604291-4118-4CD6-B790-BA5F4F8C1A18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E604291-4118-4CD6-B790-BA5F4F8C1A18}.Release|Any CPU.Build.0 = Release|Any CPU - {D95AE371-BDD6-43CD-BA59-DE0EE0813E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D95AE371-BDD6-43CD-BA59-DE0EE0813E01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D95AE371-BDD6-43CD-BA59-DE0EE0813E01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D95AE371-BDD6-43CD-BA59-DE0EE0813E01}.Release|Any CPU.Build.0 = Release|Any CPU + {9A152C52-C5EE-41ED-AD29-8EEE5D41E372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A152C52-C5EE-41ED-AD29-8EEE5D41E372}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A152C52-C5EE-41ED-AD29-8EEE5D41E372}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A152C52-C5EE-41ED-AD29-8EEE5D41E372}.Release|Any CPU.Build.0 = Release|Any CPU + {9E4EA321-CED7-4A2B-BA35-468EDF0EF007}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E4EA321-CED7-4A2B-BA35-468EDF0EF007}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E4EA321-CED7-4A2B-BA35-468EDF0EF007}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E4EA321-CED7-4A2B-BA35-468EDF0EF007}.Release|Any CPU.Build.0 = Release|Any CPU + {1A6D5602-176D-4E7D-A7F5-F4D25044E171}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A6D5602-176D-4E7D-A7F5-F4D25044E171}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A6D5602-176D-4E7D-A7F5-F4D25044E171}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A6D5602-176D-4E7D-A7F5-F4D25044E171}.Release|Any CPU.Build.0 = Release|Any CPU + {F4EF8420-0243-452F-879E-609F9AE7C05E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4EF8420-0243-452F-879E-609F9AE7C05E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4EF8420-0243-452F-879E-609F9AE7C05E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4EF8420-0243-452F-879E-609F9AE7C05E}.Release|Any CPU.Build.0 = Release|Any CPU + {3695B814-610C-41D5-A3F5-B0B55EF10863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3695B814-610C-41D5-A3F5-B0B55EF10863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3695B814-610C-41D5-A3F5-B0B55EF10863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3695B814-610C-41D5-A3F5-B0B55EF10863}.Release|Any CPU.Build.0 = Release|Any CPU + {6AD793CF-2805-4101-975C-71CE64DB62A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AD793CF-2805-4101-975C-71CE64DB62A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AD793CF-2805-4101-975C-71CE64DB62A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AD793CF-2805-4101-975C-71CE64DB62A1}.Release|Any CPU.Build.0 = Release|Any CPU + {3653D393-7F7B-4090-90FA-7028C29B5FFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3653D393-7F7B-4090-90FA-7028C29B5FFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3653D393-7F7B-4090-90FA-7028C29B5FFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3653D393-7F7B-4090-90FA-7028C29B5FFC}.Release|Any CPU.Build.0 = Release|Any CPU + {84102ABB-EE96-4D46-96B8-16759AE17E13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84102ABB-EE96-4D46-96B8-16759AE17E13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84102ABB-EE96-4D46-96B8-16759AE17E13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84102ABB-EE96-4D46-96B8-16759AE17E13}.Release|Any CPU.Build.0 = Release|Any CPU + {678436AA-0958-4152-8964-886B7B64CBD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {678436AA-0958-4152-8964-886B7B64CBD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {678436AA-0958-4152-8964-886B7B64CBD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {678436AA-0958-4152-8964-886B7B64CBD0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0BFD6D9F-DF9E-4B17-8ED4-29437AE5B04A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C4E89B8C-07DB-40CA-8C99-82A23E8F5F39} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4E604291-4118-4CD6-B790-BA5F4F8C1A18} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {D95AE371-BDD6-43CD-BA59-DE0EE0813E01} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C0D76504-56B2-45C0-9822-E933DE54D878} + SolutionGuid = {48F54059-7B38-4CA3-A572-D20E5AD37696} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Formats.Asn1/System.Formats.Asn1.sln b/src/libraries/System.Formats.Asn1/System.Formats.Asn1.sln index dfd2a9e9ae1b..8f49dd9d3e47 100644 --- a/src/libraries/System.Formats.Asn1/System.Formats.Asn1.sln +++ b/src/libraries/System.Formats.Asn1/System.Formats.Asn1.sln @@ -1,53 +1,100 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1.Tests", "tests\System.Formats.Asn1.Tests.csproj", "{8E5CC092-64B6-40BD-B422-3072EBDA79C0}" - ProjectSection(ProjectDependencies) = postProject - {E1F62374-FC25-4C34-8399-887A0F785F69} = {E1F62374-FC25-4C34-8399-887A0F785F69} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F94DE827-A426-45CB-AE6E-4E1C154B5386}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "src\System.Formats.Asn1.csproj", "{E1F62374-FC25-4C34-8399-887A0F785F69}" - ProjectSection(ProjectDependencies) = postProject - {6CE58FC1-0579-4E54-A815-774942CA1E6F} = {6CE58FC1-0579-4E54-A815-774942CA1E6F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{38CB62AF-FD52-433E-AB63-CB07BA1D2CD8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "ref\System.Formats.Asn1.csproj", "{6CE58FC1-0579-4E54-A815-774942CA1E6F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{B51B75BA-A1AF-42FB-9845-E9AAC42CFB22}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2E2E9476-9161-47DF-A34A-FBDB066D0EE7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "ref\System.Formats.Asn1.csproj", "{1548AC5C-27FD-4B46-A930-C168D622FAB0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8C13471F-2F38-4AFE-802C-78074B8670E5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "src\System.Formats.Asn1.csproj", "{A078A4EB-27E8-42B1-BD44-3807732A4560}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7F15ECA1-2FD6-4EF7-A554-31197519A1F2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1.Tests", "tests\System.Formats.Asn1.Tests.csproj", "{2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{0E49FF32-6CC1-42B0-AF30-25098C7DA18F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E5280823-9A9A-4314-B0C3-B983A7D50C85}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A7AD2290-A979-4139-9C71-BBCD5594180D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{3A873063-B154-4186-914D-1F4F3236101E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3A73868D-BC2F-483A-B51B-0F3C862BBE85}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3F027944-9702-4DA5-A7E2-042D5037ABD3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BC246661-9887-4096-BF1A-AC25060547B2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F94DE827-A426-45CB-AE6E-4E1C154B5386} = {3A73868D-BC2F-483A-B51B-0F3C862BBE85} + {2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294} = {3A73868D-BC2F-483A-B51B-0F3C862BBE85} + {38CB62AF-FD52-433E-AB63-CB07BA1D2CD8} = {3F027944-9702-4DA5-A7E2-042D5037ABD3} + {1548AC5C-27FD-4B46-A930-C168D622FAB0} = {3F027944-9702-4DA5-A7E2-042D5037ABD3} + {696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9} = {3F027944-9702-4DA5-A7E2-042D5037ABD3} + {A7AD2290-A979-4139-9C71-BBCD5594180D} = {3F027944-9702-4DA5-A7E2-042D5037ABD3} + {3A873063-B154-4186-914D-1F4F3236101E} = {3F027944-9702-4DA5-A7E2-042D5037ABD3} + {B51B75BA-A1AF-42FB-9845-E9AAC42CFB22} = {BC246661-9887-4096-BF1A-AC25060547B2} + {A078A4EB-27E8-42B1-BD44-3807732A4560} = {BC246661-9887-4096-BF1A-AC25060547B2} + {0E49FF32-6CC1-42B0-AF30-25098C7DA18F} = {BC246661-9887-4096-BF1A-AC25060547B2} + {E5280823-9A9A-4314-B0C3-B983A7D50C85} = {BC246661-9887-4096-BF1A-AC25060547B2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8E5CC092-64B6-40BD-B422-3072EBDA79C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E5CC092-64B6-40BD-B422-3072EBDA79C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E5CC092-64B6-40BD-B422-3072EBDA79C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E5CC092-64B6-40BD-B422-3072EBDA79C0}.Release|Any CPU.Build.0 = Release|Any CPU - {E1F62374-FC25-4C34-8399-887A0F785F69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1F62374-FC25-4C34-8399-887A0F785F69}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1F62374-FC25-4C34-8399-887A0F785F69}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1F62374-FC25-4C34-8399-887A0F785F69}.Release|Any CPU.Build.0 = Release|Any CPU - {6CE58FC1-0579-4E54-A815-774942CA1E6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6CE58FC1-0579-4E54-A815-774942CA1E6F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6CE58FC1-0579-4E54-A815-774942CA1E6F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6CE58FC1-0579-4E54-A815-774942CA1E6F}.Release|Any CPU.Build.0 = Release|Any CPU + {F94DE827-A426-45CB-AE6E-4E1C154B5386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F94DE827-A426-45CB-AE6E-4E1C154B5386}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F94DE827-A426-45CB-AE6E-4E1C154B5386}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F94DE827-A426-45CB-AE6E-4E1C154B5386}.Release|Any CPU.Build.0 = Release|Any CPU + {38CB62AF-FD52-433E-AB63-CB07BA1D2CD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38CB62AF-FD52-433E-AB63-CB07BA1D2CD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38CB62AF-FD52-433E-AB63-CB07BA1D2CD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38CB62AF-FD52-433E-AB63-CB07BA1D2CD8}.Release|Any CPU.Build.0 = Release|Any CPU + {B51B75BA-A1AF-42FB-9845-E9AAC42CFB22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B51B75BA-A1AF-42FB-9845-E9AAC42CFB22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B51B75BA-A1AF-42FB-9845-E9AAC42CFB22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B51B75BA-A1AF-42FB-9845-E9AAC42CFB22}.Release|Any CPU.Build.0 = Release|Any CPU + {1548AC5C-27FD-4B46-A930-C168D622FAB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1548AC5C-27FD-4B46-A930-C168D622FAB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1548AC5C-27FD-4B46-A930-C168D622FAB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1548AC5C-27FD-4B46-A930-C168D622FAB0}.Release|Any CPU.Build.0 = Release|Any CPU + {A078A4EB-27E8-42B1-BD44-3807732A4560}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A078A4EB-27E8-42B1-BD44-3807732A4560}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A078A4EB-27E8-42B1-BD44-3807732A4560}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A078A4EB-27E8-42B1-BD44-3807732A4560}.Release|Any CPU.Build.0 = Release|Any CPU + {2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E6DAC1B-9054-40AF-AF72-4C2DD7BD9294}.Release|Any CPU.Build.0 = Release|Any CPU + {0E49FF32-6CC1-42B0-AF30-25098C7DA18F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E49FF32-6CC1-42B0-AF30-25098C7DA18F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E49FF32-6CC1-42B0-AF30-25098C7DA18F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E49FF32-6CC1-42B0-AF30-25098C7DA18F}.Release|Any CPU.Build.0 = Release|Any CPU + {696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {696A5E1C-B7B4-4EA0-AE2A-3FDA1C50F4D9}.Release|Any CPU.Build.0 = Release|Any CPU + {E5280823-9A9A-4314-B0C3-B983A7D50C85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5280823-9A9A-4314-B0C3-B983A7D50C85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5280823-9A9A-4314-B0C3-B983A7D50C85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5280823-9A9A-4314-B0C3-B983A7D50C85}.Release|Any CPU.Build.0 = Release|Any CPU + {A7AD2290-A979-4139-9C71-BBCD5594180D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7AD2290-A979-4139-9C71-BBCD5594180D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7AD2290-A979-4139-9C71-BBCD5594180D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7AD2290-A979-4139-9C71-BBCD5594180D}.Release|Any CPU.Build.0 = Release|Any CPU + {3A873063-B154-4186-914D-1F4F3236101E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A873063-B154-4186-914D-1F4F3236101E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A873063-B154-4186-914D-1F4F3236101E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A873063-B154-4186-914D-1F4F3236101E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8E5CC092-64B6-40BD-B422-3072EBDA79C0} = {2E2E9476-9161-47DF-A34A-FBDB066D0EE7} - {E1F62374-FC25-4C34-8399-887A0F785F69} = {8C13471F-2F38-4AFE-802C-78074B8670E5} - {6CE58FC1-0579-4E54-A815-774942CA1E6F} = {7F15ECA1-2FD6-4EF7-A554-31197519A1F2} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6EB2470F-A46B-4E53-953C-470334FA8541} + SolutionGuid = {4DF081FC-DC0D-4317-AB2C-4294B9FE6257} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Formats.Cbor/System.Formats.Cbor.sln b/src/libraries/System.Formats.Cbor/System.Formats.Cbor.sln index 31f26813ae83..716bbc03ad03 100644 --- a/src/libraries/System.Formats.Cbor/System.Formats.Cbor.sln +++ b/src/libraries/System.Formats.Cbor/System.Formats.Cbor.sln @@ -1,54 +1,93 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30215.9 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor", "src\System.Formats.Cbor.csproj", "{57B5AD1E-D0BA-4811-9276-9BBAFF44AB31}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5D669352-A281-4262-8BDE-1EA9D3A59C17}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{00675670-C8E7-4428-A16F-9E6B933586A8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{22F3D655-C0B3-4E4D-A318-5ACC42A30DB8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{59B37ECC-D5BB-488A-9571-1E239EDF19A9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor", "ref\System.Formats.Cbor.csproj", "{259A1DB6-EF7E-4D45-96EF-035E0605BB55}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B3417D0B-D64E-4CC8-AEAA-F0C7C963248F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor", "src\System.Formats.Cbor.csproj", "{8D8A522D-D363-4594-81BF-0EB16C0B4713}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor", "ref\System.Formats.Cbor.csproj", "{B17130D2-0A75-464A-A3E7-67123C567CAF}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "System.Formats.Cbor.Tests.DataModel", "tests\CborDocument\System.Formats.Cbor.Tests.DataModel.fsproj", "{EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor.Tests", "tests\System.Formats.Cbor.Tests.csproj", "{1C84C43C-69A8-493E-AC11-0DA9C22BFB46}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Cbor.Tests", "tests\System.Formats.Cbor.Tests.csproj", "{29879823-0A6F-44A0-B0A5-D90DEC23E4EF}" EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "System.Formats.Cbor.Tests.DataModel", "tests\CborDocument\System.Formats.Cbor.Tests.DataModel.fsproj", "{3BF538B4-0985-4918-90A7-8F15BA9E661C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{D4AA9244-4CC5-4841-8E7A-63EA10E0135E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D08E0206-F6F0-4777-9865-8A1261393B30}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{70B08CA7-4086-4F3B-903C-91F3E302DAE2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{279CA132-6793-4DB0-97C7-E6ED546F471C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{20353D61-0DE5-4640-976E-84E162C2E767}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{97527DDF-CC6B-45D1-A97B-6AB9EBC29029}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5D669352-A281-4262-8BDE-1EA9D3A59C17} = {279CA132-6793-4DB0-97C7-E6ED546F471C} + {EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E} = {279CA132-6793-4DB0-97C7-E6ED546F471C} + {29879823-0A6F-44A0-B0A5-D90DEC23E4EF} = {279CA132-6793-4DB0-97C7-E6ED546F471C} + {22F3D655-C0B3-4E4D-A318-5ACC42A30DB8} = {20353D61-0DE5-4640-976E-84E162C2E767} + {259A1DB6-EF7E-4D45-96EF-035E0605BB55} = {20353D61-0DE5-4640-976E-84E162C2E767} + {1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4} = {20353D61-0DE5-4640-976E-84E162C2E767} + {D08E0206-F6F0-4777-9865-8A1261393B30} = {20353D61-0DE5-4640-976E-84E162C2E767} + {70B08CA7-4086-4F3B-903C-91F3E302DAE2} = {20353D61-0DE5-4640-976E-84E162C2E767} + {8D8A522D-D363-4594-81BF-0EB16C0B4713} = {97527DDF-CC6B-45D1-A97B-6AB9EBC29029} + {D4AA9244-4CC5-4841-8E7A-63EA10E0135E} = {97527DDF-CC6B-45D1-A97B-6AB9EBC29029} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {57B5AD1E-D0BA-4811-9276-9BBAFF44AB31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57B5AD1E-D0BA-4811-9276-9BBAFF44AB31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57B5AD1E-D0BA-4811-9276-9BBAFF44AB31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57B5AD1E-D0BA-4811-9276-9BBAFF44AB31}.Release|Any CPU.Build.0 = Release|Any CPU - {B17130D2-0A75-464A-A3E7-67123C567CAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B17130D2-0A75-464A-A3E7-67123C567CAF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B17130D2-0A75-464A-A3E7-67123C567CAF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B17130D2-0A75-464A-A3E7-67123C567CAF}.Release|Any CPU.Build.0 = Release|Any CPU - {1C84C43C-69A8-493E-AC11-0DA9C22BFB46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1C84C43C-69A8-493E-AC11-0DA9C22BFB46}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1C84C43C-69A8-493E-AC11-0DA9C22BFB46}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1C84C43C-69A8-493E-AC11-0DA9C22BFB46}.Release|Any CPU.Build.0 = Release|Any CPU - {3BF538B4-0985-4918-90A7-8F15BA9E661C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BF538B4-0985-4918-90A7-8F15BA9E661C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BF538B4-0985-4918-90A7-8F15BA9E661C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BF538B4-0985-4918-90A7-8F15BA9E661C}.Release|Any CPU.Build.0 = Release|Any CPU + {5D669352-A281-4262-8BDE-1EA9D3A59C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D669352-A281-4262-8BDE-1EA9D3A59C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D669352-A281-4262-8BDE-1EA9D3A59C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D669352-A281-4262-8BDE-1EA9D3A59C17}.Release|Any CPU.Build.0 = Release|Any CPU + {22F3D655-C0B3-4E4D-A318-5ACC42A30DB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F3D655-C0B3-4E4D-A318-5ACC42A30DB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22F3D655-C0B3-4E4D-A318-5ACC42A30DB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22F3D655-C0B3-4E4D-A318-5ACC42A30DB8}.Release|Any CPU.Build.0 = Release|Any CPU + {259A1DB6-EF7E-4D45-96EF-035E0605BB55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {259A1DB6-EF7E-4D45-96EF-035E0605BB55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {259A1DB6-EF7E-4D45-96EF-035E0605BB55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {259A1DB6-EF7E-4D45-96EF-035E0605BB55}.Release|Any CPU.Build.0 = Release|Any CPU + {8D8A522D-D363-4594-81BF-0EB16C0B4713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D8A522D-D363-4594-81BF-0EB16C0B4713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D8A522D-D363-4594-81BF-0EB16C0B4713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D8A522D-D363-4594-81BF-0EB16C0B4713}.Release|Any CPU.Build.0 = Release|Any CPU + {EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBE45DA7-3D32-4F35-AB59-1A97FE0C2C7E}.Release|Any CPU.Build.0 = Release|Any CPU + {29879823-0A6F-44A0-B0A5-D90DEC23E4EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29879823-0A6F-44A0-B0A5-D90DEC23E4EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29879823-0A6F-44A0-B0A5-D90DEC23E4EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29879823-0A6F-44A0-B0A5-D90DEC23E4EF}.Release|Any CPU.Build.0 = Release|Any CPU + {1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CCB0AF8-2999-45DD-A1B2-48C33B8EEFC4}.Release|Any CPU.Build.0 = Release|Any CPU + {D4AA9244-4CC5-4841-8E7A-63EA10E0135E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4AA9244-4CC5-4841-8E7A-63EA10E0135E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4AA9244-4CC5-4841-8E7A-63EA10E0135E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4AA9244-4CC5-4841-8E7A-63EA10E0135E}.Release|Any CPU.Build.0 = Release|Any CPU + {D08E0206-F6F0-4777-9865-8A1261393B30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D08E0206-F6F0-4777-9865-8A1261393B30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D08E0206-F6F0-4777-9865-8A1261393B30}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D08E0206-F6F0-4777-9865-8A1261393B30}.Release|Any CPU.Build.0 = Release|Any CPU + {70B08CA7-4086-4F3B-903C-91F3E302DAE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70B08CA7-4086-4F3B-903C-91F3E302DAE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70B08CA7-4086-4F3B-903C-91F3E302DAE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70B08CA7-4086-4F3B-903C-91F3E302DAE2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {57B5AD1E-D0BA-4811-9276-9BBAFF44AB31} = {59B37ECC-D5BB-488A-9571-1E239EDF19A9} - {B17130D2-0A75-464A-A3E7-67123C567CAF} = {B3417D0B-D64E-4CC8-AEAA-F0C7C963248F} - {1C84C43C-69A8-493E-AC11-0DA9C22BFB46} = {00675670-C8E7-4428-A16F-9E6B933586A8} - {3BF538B4-0985-4918-90A7-8F15BA9E661C} = {00675670-C8E7-4428-A16F-9E6B933586A8} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {36EE2FB8-4CD8-4A12-8FD5-9FDF3D0F6D40} + SolutionGuid = {5D247ED0-3E73-46A6-ACC7-523BA1493370} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Formats.Cbor/pkg/System.Formats.Cbor.pkgproj b/src/libraries/System.Formats.Cbor/pkg/System.Formats.Cbor.pkgproj index 74b91a3f5b61..158888defb5c 100644 --- a/src/libraries/System.Formats.Cbor/pkg/System.Formats.Cbor.pkgproj +++ b/src/libraries/System.Formats.Cbor/pkg/System.Formats.Cbor.pkgproj @@ -2,7 +2,7 @@ - $(NetCoreAppCurrent) + net5.0 diff --git a/src/libraries/System.Formats.Cbor/ref/System.Formats.Cbor.csproj b/src/libraries/System.Formats.Cbor/ref/System.Formats.Cbor.csproj index 574a834fd1ed..f2aa426354bd 100644 --- a/src/libraries/System.Formats.Cbor/ref/System.Formats.Cbor.csproj +++ b/src/libraries/System.Formats.Cbor/ref/System.Formats.Cbor.csproj @@ -1,12 +1,17 @@ - $(NetCoreAppCurrent) + $(NetCoreAppCurrent);net5.0 + true enable - + + + + + diff --git a/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj b/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj index 635f61c77bd0..aff4f212f738 100644 --- a/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj +++ b/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj @@ -1,7 +1,8 @@ - $(NetCoreAppCurrent) + net5.0;$(NetCoreAppCurrent) true + true enable @@ -36,6 +37,7 @@ + diff --git a/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln b/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln index 28cc95021abc..14313ef439a1 100644 --- a/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln +++ b/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln @@ -1,70 +1,231 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars.Tests", "tests\System.Globalization.Calendars.Tests.csproj", "{66BE33BB-790D-4D0C-9336-E073001CBD15}" - ProjectSection(ProjectDependencies) = postProject - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E} = {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E70B35E3-B6C3-4196-9FAB-1A0D45748E79}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.CalendarsWithConfigSwitch.Tests", "tests\CalendarTestWithConfigSwitch\System.Globalization.CalendarsWithConfigSwitch.Tests.csproj", "{77BE33BB-790D-4D0C-9336-E073001CBD15}" - ProjectSection(ProjectDependencies) = postProject - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E} = {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{32F01C47-D495-45CE-9567-E4C434F7D627}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars", "src\System.Globalization.Calendars.csproj", "{7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E}" - ProjectSection(ProjectDependencies) = postProject - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647} = {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{37AA16BB-DE68-4735-AA1C-733038E40127}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars", "ref\System.Globalization.Calendars.csproj", "{2BD6A51E-A2FE-4024-A21F-E1D7A24E7647}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars", "ref\System.Globalization.Calendars.csproj", "{6553EF4A-C352-4034-835A-7679E589B5A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars", "src\System.Globalization.Calendars.csproj", "{705D0D71-8890-4893-824F-E302CDE5349F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.CalendarsWithConfigSwitch.Tests", "tests\CalendarTestWithConfigSwitch\System.Globalization.CalendarsWithConfigSwitch.Tests.csproj", "{CD1CDCDD-64FA-4E75-A74F-16A978C56449}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Calendars.Tests", "tests\System.Globalization.Calendars.Tests.csproj", "{BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{806460E6-D949-4BEF-844D-1FBDF4287758}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7AE40769-89B3-4881-96F4-0EC78CD5610E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{7B678A3B-0273-481E-9C7D-10822BC8CE30}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E761C156-60A8-4402-B890-7F448BE28211}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{99455DF1-BA8D-41FC-9036-895391F9F9DB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4B1150EB-D868-4483-8EC8-D8E4FCC27669}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4E8EEE0B-670B-4040-AD3D-6854F4BA15C2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79} = {99455DF1-BA8D-41FC-9036-895391F9F9DB} + {705D0D71-8890-4893-824F-E302CDE5349F} = {99455DF1-BA8D-41FC-9036-895391F9F9DB} + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4} = {99455DF1-BA8D-41FC-9036-895391F9F9DB} + {32F01C47-D495-45CE-9567-E4C434F7D627} = {4B1150EB-D868-4483-8EC8-D8E4FCC27669} + {CD1CDCDD-64FA-4E75-A74F-16A978C56449} = {4B1150EB-D868-4483-8EC8-D8E4FCC27669} + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706} = {4B1150EB-D868-4483-8EC8-D8E4FCC27669} + {37AA16BB-DE68-4735-AA1C-733038E40127} = {4E8EEE0B-670B-4040-AD3D-6854F4BA15C2} + {6553EF4A-C352-4034-835A-7679E589B5A6} = {4E8EEE0B-670B-4040-AD3D-6854F4BA15C2} + {7AE40769-89B3-4881-96F4-0EC78CD5610E} = {4E8EEE0B-670B-4040-AD3D-6854F4BA15C2} + {7B678A3B-0273-481E-9C7D-10822BC8CE30} = {4E8EEE0B-670B-4040-AD3D-6854F4BA15C2} + {E761C156-60A8-4402-B890-7F448BE28211} = {4E8EEE0B-670B-4040-AD3D-6854F4BA15C2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {66BE33BB-790D-4D0C-9336-E073001CBD15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66BE33BB-790D-4D0C-9336-E073001CBD15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66BE33BB-790D-4D0C-9336-E073001CBD15}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66BE33BB-790D-4D0C-9336-E073001CBD15}.Release|Any CPU.Build.0 = Release|Any CPU - {77BE33BB-790D-4D0C-9336-E073001CBD15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77BE33BB-790D-4D0C-9336-E073001CBD15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77BE33BB-790D-4D0C-9336-E073001CBD15}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77BE33BB-790D-4D0C-9336-E073001CBD15}.Release|Any CPU.Build.0 = Release|Any CPU - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E}.Release|Any CPU.Build.0 = Release|Any CPU - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647}.Release|Any CPU.Build.0 = Release|Any CPU - {806460E6-D949-4BEF-844D-1FBDF4287758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {806460E6-D949-4BEF-844D-1FBDF4287758}.Debug|Any CPU.Build.0 = Debug|Any CPU - {806460E6-D949-4BEF-844D-1FBDF4287758}.Release|Any CPU.ActiveCfg = Release|Any CPU - {806460E6-D949-4BEF-844D-1FBDF4287758}.Release|Any CPU.Build.0 = Release|Any CPU + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|Any CPU.Build.0 = Debug|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|x64.ActiveCfg = Debug|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|x64.Build.0 = Debug|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|x86.ActiveCfg = Debug|x86 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Debug|x86.Build.0 = Debug|x86 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|Any CPU.ActiveCfg = Release|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|Any CPU.Build.0 = Release|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|x64.ActiveCfg = Release|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|x64.Build.0 = Release|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|x86.ActiveCfg = Release|x86 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Release|x86.Build.0 = Release|x86 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|Any CPU.ActiveCfg = Checked|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|Any CPU.Build.0 = Checked|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|x64.ActiveCfg = Checked|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|x64.Build.0 = Checked|x64 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|x86.ActiveCfg = Checked|x86 + {E70B35E3-B6C3-4196-9FAB-1A0D45748E79}.Checked|x86.Build.0 = Checked|x86 + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|x64.ActiveCfg = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|x64.Build.0 = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|x86.ActiveCfg = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Debug|x86.Build.0 = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|Any CPU.Build.0 = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|x64.ActiveCfg = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|x64.Build.0 = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|x86.ActiveCfg = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Release|x86.Build.0 = Release|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Checked|x64.ActiveCfg = Debug|Any CPU + {32F01C47-D495-45CE-9567-E4C434F7D627}.Checked|x86.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|x64.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|x64.Build.0 = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|x86.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Debug|x86.Build.0 = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|Any CPU.Build.0 = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|x64.ActiveCfg = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|x64.Build.0 = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|x86.ActiveCfg = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Release|x86.Build.0 = Release|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Checked|x64.ActiveCfg = Debug|Any CPU + {37AA16BB-DE68-4735-AA1C-733038E40127}.Checked|x86.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|x64.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|x64.Build.0 = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Debug|x86.Build.0 = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|Any CPU.Build.0 = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|x64.ActiveCfg = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|x64.Build.0 = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|x86.ActiveCfg = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Release|x86.Build.0 = Release|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Checked|x64.ActiveCfg = Debug|Any CPU + {6553EF4A-C352-4034-835A-7679E589B5A6}.Checked|x86.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|x64.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|x64.Build.0 = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|x86.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Debug|x86.Build.0 = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|Any CPU.Build.0 = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|x64.ActiveCfg = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|x64.Build.0 = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|x86.ActiveCfg = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Release|x86.Build.0 = Release|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Checked|x64.ActiveCfg = Debug|Any CPU + {705D0D71-8890-4893-824F-E302CDE5349F}.Checked|x86.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|x64.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|x64.Build.0 = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|x86.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Debug|x86.Build.0 = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|Any CPU.Build.0 = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|x64.ActiveCfg = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|x64.Build.0 = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|x86.ActiveCfg = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Release|x86.Build.0 = Release|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Checked|x64.ActiveCfg = Debug|Any CPU + {CD1CDCDD-64FA-4E75-A74F-16A978C56449}.Checked|x86.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|x64.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|x64.Build.0 = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|x86.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Debug|x86.Build.0 = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|Any CPU.Build.0 = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|x64.ActiveCfg = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|x64.Build.0 = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|x86.ActiveCfg = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Release|x86.Build.0 = Release|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Checked|x64.ActiveCfg = Debug|Any CPU + {BFEF5B19-7D03-42BA-9CD1-D1B53F35D706}.Checked|x86.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|x64.Build.0 = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Debug|x86.Build.0 = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|Any CPU.Build.0 = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|x64.ActiveCfg = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|x64.Build.0 = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|x86.ActiveCfg = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Release|x86.Build.0 = Release|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Checked|x64.ActiveCfg = Debug|Any CPU + {7AE40769-89B3-4881-96F4-0EC78CD5610E}.Checked|x86.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|x64.Build.0 = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Debug|x86.Build.0 = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|Any CPU.Build.0 = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|x64.ActiveCfg = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|x64.Build.0 = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|x86.ActiveCfg = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Release|x86.Build.0 = Release|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Checked|x64.ActiveCfg = Debug|Any CPU + {DE8D220F-4A0B-4B79-A6AD-B20FD67CC7A4}.Checked|x86.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|x64.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|x64.Build.0 = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|x86.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Debug|x86.Build.0 = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|Any CPU.Build.0 = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|x64.ActiveCfg = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|x64.Build.0 = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|x86.ActiveCfg = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Release|x86.Build.0 = Release|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Checked|x64.ActiveCfg = Debug|Any CPU + {7B678A3B-0273-481E-9C7D-10822BC8CE30}.Checked|x86.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|x64.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|x64.Build.0 = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|x86.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Debug|x86.Build.0 = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|Any CPU.Build.0 = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|x64.ActiveCfg = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|x64.Build.0 = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|x86.ActiveCfg = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Release|x86.Build.0 = Release|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Checked|x64.ActiveCfg = Debug|Any CPU + {E761C156-60A8-4402-B890-7F448BE28211}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {66BE33BB-790D-4D0C-9336-E073001CBD15} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {77BE33BB-790D-4D0C-9336-E073001CBD15} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7126BEDB-0903-454A-8A2B-8BE1CBDF8F2E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2BD6A51E-A2FE-4024-A21F-E1D7A24E7647} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {806460E6-D949-4BEF-844D-1FBDF4287758} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CDE7C5B0-CDF5-4CD4-AF93-57472C5D4554} + SolutionGuid = {73A91A21-729E-4C60-BCD4-389B47ED823F} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Globalization.Extensions/System.Globalization.Extensions.sln b/src/libraries/System.Globalization.Extensions/System.Globalization.Extensions.sln index e39e0278857f..bafb4a24037b 100644 --- a/src/libraries/System.Globalization.Extensions/System.Globalization.Extensions.sln +++ b/src/libraries/System.Globalization.Extensions/System.Globalization.Extensions.sln @@ -1,71 +1,93 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29923.206 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions.Tests", "tests\System.Globalization.Extensions.Tests.csproj", "{BC439554-4AB4-4C94-8E28-C00EDE4FD1C7}" - ProjectSection(ProjectDependencies) = postProject - {2B96AA10-84C0-4927-8611-8D2474B990E8} = {2B96AA10-84C0-4927-8611-8D2474B990E8} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0742DF66-F5B8-40F7-9D4F-560A62FD6818}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions", "src\System.Globalization.Extensions.csproj", "{2B96AA10-84C0-4927-8611-8D2474B990E8}" - ProjectSection(ProjectDependencies) = postProject - {3634FAA3-A33E-406A-94EE-5611C6CC2810} = {3634FAA3-A33E-406A-94EE-5611C6CC2810} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{33585CCF-5FE4-47DB-90A6-76E332ED2FDF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions", "ref\System.Globalization.Extensions.csproj", "{3634FAA3-A33E-406A-94EE-5611C6CC2810}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions", "ref\System.Globalization.Extensions.csproj", "{03BF7E49-E28C-468E-8D90-E4022B608F00}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions", "src\System.Globalization.Extensions.csproj", "{DCD0404E-234C-437B-A80A-EAFD567F7602}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions.Nls.Tests", "tests\NlsTests\System.Globalization.Extensions.Nls.Tests.csproj", "{F95ACAD3-920D-404A-A355-38ACAEC958F8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions.Tests", "tests\System.Globalization.Extensions.Tests.csproj", "{E2C4269C-0009-4811-9FC0-CDC97554FBEE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Extensions.Nls.Tests", "tests\NlsTests\System.Globalization.Extensions.Nls.Tests.csproj", "{CB60359A-D0ED-474E-B395-9589F1A5656A}" - ProjectSection(ProjectDependencies) = postProject - {2B96AA10-84C0-4927-8611-8D2474B990E8} = {2B96AA10-84C0-4927-8611-8D2474B990E8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{91D7C95D-53FD-400E-A2C3-2F47D6653A81}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1659274B-9BFC-4709-B2EF-E9F363AC13B0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{6591A0B4-8C78-4508-996F-1EFF7F1E1323}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D0EC30D6-C016-4476-98C4-A663D29FDDC1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{DAC419D9-D1D2-47BE-BDF0-69E715809120}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1081317A-E52D-4A0C-AB48-4DEA7F259C0E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DFB11CE9-63F7-40D0-BE77-A43E52D7C611}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FB76F547-7CF6-477F-B8D7-062B72843BE0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0742DF66-F5B8-40F7-9D4F-560A62FD6818} = {1081317A-E52D-4A0C-AB48-4DEA7F259C0E} + {F95ACAD3-920D-404A-A355-38ACAEC958F8} = {1081317A-E52D-4A0C-AB48-4DEA7F259C0E} + {E2C4269C-0009-4811-9FC0-CDC97554FBEE} = {1081317A-E52D-4A0C-AB48-4DEA7F259C0E} + {33585CCF-5FE4-47DB-90A6-76E332ED2FDF} = {DFB11CE9-63F7-40D0-BE77-A43E52D7C611} + {03BF7E49-E28C-468E-8D90-E4022B608F00} = {DFB11CE9-63F7-40D0-BE77-A43E52D7C611} + {91D7C95D-53FD-400E-A2C3-2F47D6653A81} = {DFB11CE9-63F7-40D0-BE77-A43E52D7C611} + {D0EC30D6-C016-4476-98C4-A663D29FDDC1} = {DFB11CE9-63F7-40D0-BE77-A43E52D7C611} + {DAC419D9-D1D2-47BE-BDF0-69E715809120} = {DFB11CE9-63F7-40D0-BE77-A43E52D7C611} + {DCD0404E-234C-437B-A80A-EAFD567F7602} = {FB76F547-7CF6-477F-B8D7-062B72843BE0} + {6591A0B4-8C78-4508-996F-1EFF7F1E1323} = {FB76F547-7CF6-477F-B8D7-062B72843BE0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BC439554-4AB4-4C94-8E28-C00EDE4FD1C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC439554-4AB4-4C94-8E28-C00EDE4FD1C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC439554-4AB4-4C94-8E28-C00EDE4FD1C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC439554-4AB4-4C94-8E28-C00EDE4FD1C7}.Release|Any CPU.Build.0 = Release|Any CPU - {2B96AA10-84C0-4927-8611-8D2474B990E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B96AA10-84C0-4927-8611-8D2474B990E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B96AA10-84C0-4927-8611-8D2474B990E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B96AA10-84C0-4927-8611-8D2474B990E8}.Release|Any CPU.Build.0 = Release|Any CPU - {3634FAA3-A33E-406A-94EE-5611C6CC2810}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3634FAA3-A33E-406A-94EE-5611C6CC2810}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3634FAA3-A33E-406A-94EE-5611C6CC2810}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3634FAA3-A33E-406A-94EE-5611C6CC2810}.Release|Any CPU.Build.0 = Release|Any CPU - {CB60359A-D0ED-474E-B395-9589F1A5656A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB60359A-D0ED-474E-B395-9589F1A5656A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB60359A-D0ED-474E-B395-9589F1A5656A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB60359A-D0ED-474E-B395-9589F1A5656A}.Release|Any CPU.Build.0 = Release|Any CPU - {1659274B-9BFC-4709-B2EF-E9F363AC13B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1659274B-9BFC-4709-B2EF-E9F363AC13B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1659274B-9BFC-4709-B2EF-E9F363AC13B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1659274B-9BFC-4709-B2EF-E9F363AC13B0}.Release|Any CPU.Build.0 = Release|Any CPU + {0742DF66-F5B8-40F7-9D4F-560A62FD6818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0742DF66-F5B8-40F7-9D4F-560A62FD6818}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0742DF66-F5B8-40F7-9D4F-560A62FD6818}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0742DF66-F5B8-40F7-9D4F-560A62FD6818}.Release|Any CPU.Build.0 = Release|Any CPU + {33585CCF-5FE4-47DB-90A6-76E332ED2FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33585CCF-5FE4-47DB-90A6-76E332ED2FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33585CCF-5FE4-47DB-90A6-76E332ED2FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33585CCF-5FE4-47DB-90A6-76E332ED2FDF}.Release|Any CPU.Build.0 = Release|Any CPU + {03BF7E49-E28C-468E-8D90-E4022B608F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03BF7E49-E28C-468E-8D90-E4022B608F00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03BF7E49-E28C-468E-8D90-E4022B608F00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03BF7E49-E28C-468E-8D90-E4022B608F00}.Release|Any CPU.Build.0 = Release|Any CPU + {DCD0404E-234C-437B-A80A-EAFD567F7602}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCD0404E-234C-437B-A80A-EAFD567F7602}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCD0404E-234C-437B-A80A-EAFD567F7602}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DCD0404E-234C-437B-A80A-EAFD567F7602}.Release|Any CPU.Build.0 = Release|Any CPU + {F95ACAD3-920D-404A-A355-38ACAEC958F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F95ACAD3-920D-404A-A355-38ACAEC958F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F95ACAD3-920D-404A-A355-38ACAEC958F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F95ACAD3-920D-404A-A355-38ACAEC958F8}.Release|Any CPU.Build.0 = Release|Any CPU + {E2C4269C-0009-4811-9FC0-CDC97554FBEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2C4269C-0009-4811-9FC0-CDC97554FBEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2C4269C-0009-4811-9FC0-CDC97554FBEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2C4269C-0009-4811-9FC0-CDC97554FBEE}.Release|Any CPU.Build.0 = Release|Any CPU + {91D7C95D-53FD-400E-A2C3-2F47D6653A81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91D7C95D-53FD-400E-A2C3-2F47D6653A81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91D7C95D-53FD-400E-A2C3-2F47D6653A81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91D7C95D-53FD-400E-A2C3-2F47D6653A81}.Release|Any CPU.Build.0 = Release|Any CPU + {6591A0B4-8C78-4508-996F-1EFF7F1E1323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6591A0B4-8C78-4508-996F-1EFF7F1E1323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6591A0B4-8C78-4508-996F-1EFF7F1E1323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6591A0B4-8C78-4508-996F-1EFF7F1E1323}.Release|Any CPU.Build.0 = Release|Any CPU + {D0EC30D6-C016-4476-98C4-A663D29FDDC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0EC30D6-C016-4476-98C4-A663D29FDDC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0EC30D6-C016-4476-98C4-A663D29FDDC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0EC30D6-C016-4476-98C4-A663D29FDDC1}.Release|Any CPU.Build.0 = Release|Any CPU + {DAC419D9-D1D2-47BE-BDF0-69E715809120}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAC419D9-D1D2-47BE-BDF0-69E715809120}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAC419D9-D1D2-47BE-BDF0-69E715809120}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAC419D9-D1D2-47BE-BDF0-69E715809120}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BC439554-4AB4-4C94-8E28-C00EDE4FD1C7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2B96AA10-84C0-4927-8611-8D2474B990E8} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {3634FAA3-A33E-406A-94EE-5611C6CC2810} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {CB60359A-D0ED-474E-B395-9589F1A5656A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1659274B-9BFC-4709-B2EF-E9F363AC13B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3E550ED4-6053-4B16-97D1-BAADB02924FE} + SolutionGuid = {95832D00-16CE-46D5-8C6F-639E535B720A} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Globalization/System.Globalization.sln b/src/libraries/System.Globalization/System.Globalization.sln index c4824927738b..73c181f69282 100644 --- a/src/libraries/System.Globalization/System.Globalization.sln +++ b/src/libraries/System.Globalization/System.Globalization.sln @@ -1,87 +1,267 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29923.206 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Tests", "tests\System.Globalization.Tests.csproj", "{484C92C6-6D2C-45BC-A5E2-4A12BA228E1E}" - ProjectSection(ProjectDependencies) = postProject - {2395E8CA-73CB-40DF-BE40-A60BC189B737} = {2395E8CA-73CB-40DF-BE40-A60BC189B737} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Invariant.Tests", "tests\Invariant\Invariant.Tests.csproj", "{9A8926D9-1D4C-4069-8965-A626F6CA8C29}" - ProjectSection(ProjectDependencies) = postProject - {2395E8CA-73CB-40DF-BE40-A60BC189B737} = {2395E8CA-73CB-40DF-BE40-A60BC189B737} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities.Unicode", "..\Common\tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{79613DED-481D-44EF-BB89-7AC6BD53026B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization", "src\System.Globalization.csproj", "{2395E8CA-73CB-40DF-BE40-A60BC189B737}" - ProjectSection(ProjectDependencies) = postProject - {E1E58C98-808F-4065-9C1D-E6411166AF6F} = {E1E58C98-808F-4065-9C1D-E6411166AF6F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{40231BCB-E151-45E0-A1C4-4D559A434362}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization", "ref\System.Globalization.csproj", "{E1E58C98-808F-4065-9C1D-E6411166AF6F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7835A00A-3153-4777-8A84-B571268642D5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization", "ref\System.Globalization.csproj", "{55249BC9-201A-4418-AF14-7AC743D9A867}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization", "src\System.Globalization.csproj", "{4ABAB509-1210-43B4-B274-76B4FE02BD9B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Invariant.Tests", "tests\Invariant\Invariant.Tests.csproj", "{DD7E56B4-65B7-4822-A4E1-ECDD51524927}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Nls.Tests", "tests\NlsTests\System.Globalization.Nls.Tests.csproj", "{6B71E284-DA57-4657-9E08-A02BAFB877CC}" - ProjectSection(ProjectDependencies) = postProject - {2395E8CA-73CB-40DF-BE40-A60BC189B737} = {2395E8CA-73CB-40DF-BE40-A60BC189B737} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Nls.Tests", "tests\NlsTests\System.Globalization.Nls.Tests.csproj", "{9B797657-6BBC-4240-9903-3FCE3E1FC713}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{443745F1-A200-432B-A666-3D0E9F938DED}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Globalization.Tests", "tests\System.Globalization.Tests.csproj", "{A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities.Unicode", "..\Common\tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{E5ECA266-C7E9-4597-8FFA-095BD6890407}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{BF058293-0E5D-412C-A0B0-E55AF943278E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F17D674C-0B0A-47FB-8B81-5B8664564E23}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3C3DA581-CEBE-450D-A998-BA05636BB760}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{43C13D7B-23F3-4D83-B8BB-CE743A56D697}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CB8CE378-BA3F-4121-9BDF-DDDA463E18FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{19607535-C790-484E-AC4D-225538DEC717}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3C8549BD-6E88-4FBF-B073-0B5196DCF07F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB} = {CB8CE378-BA3F-4121-9BDF-DDDA463E18FD} + {4ABAB509-1210-43B4-B274-76B4FE02BD9B} = {CB8CE378-BA3F-4121-9BDF-DDDA463E18FD} + {F17D674C-0B0A-47FB-8B81-5B8664564E23} = {CB8CE378-BA3F-4121-9BDF-DDDA463E18FD} + {79613DED-481D-44EF-BB89-7AC6BD53026B} = {19607535-C790-484E-AC4D-225538DEC717} + {40231BCB-E151-45E0-A1C4-4D559A434362} = {19607535-C790-484E-AC4D-225538DEC717} + {DD7E56B4-65B7-4822-A4E1-ECDD51524927} = {19607535-C790-484E-AC4D-225538DEC717} + {9B797657-6BBC-4240-9903-3FCE3E1FC713} = {19607535-C790-484E-AC4D-225538DEC717} + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47} = {19607535-C790-484E-AC4D-225538DEC717} + {7835A00A-3153-4777-8A84-B571268642D5} = {3C8549BD-6E88-4FBF-B073-0B5196DCF07F} + {55249BC9-201A-4418-AF14-7AC743D9A867} = {3C8549BD-6E88-4FBF-B073-0B5196DCF07F} + {BF058293-0E5D-412C-A0B0-E55AF943278E} = {3C8549BD-6E88-4FBF-B073-0B5196DCF07F} + {3C3DA581-CEBE-450D-A998-BA05636BB760} = {3C8549BD-6E88-4FBF-B073-0B5196DCF07F} + {43C13D7B-23F3-4D83-B8BB-CE743A56D697} = {3C8549BD-6E88-4FBF-B073-0B5196DCF07F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {484C92C6-6D2C-45BC-A5E2-4A12BA228E1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {484C92C6-6D2C-45BC-A5E2-4A12BA228E1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {484C92C6-6D2C-45BC-A5E2-4A12BA228E1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {484C92C6-6D2C-45BC-A5E2-4A12BA228E1E}.Release|Any CPU.Build.0 = Release|Any CPU - {9A8926D9-1D4C-4069-8965-A626F6CA8C29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A8926D9-1D4C-4069-8965-A626F6CA8C29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A8926D9-1D4C-4069-8965-A626F6CA8C29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A8926D9-1D4C-4069-8965-A626F6CA8C29}.Release|Any CPU.Build.0 = Release|Any CPU - {2395E8CA-73CB-40DF-BE40-A60BC189B737}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2395E8CA-73CB-40DF-BE40-A60BC189B737}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2395E8CA-73CB-40DF-BE40-A60BC189B737}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2395E8CA-73CB-40DF-BE40-A60BC189B737}.Release|Any CPU.Build.0 = Release|Any CPU - {E1E58C98-808F-4065-9C1D-E6411166AF6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1E58C98-808F-4065-9C1D-E6411166AF6F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1E58C98-808F-4065-9C1D-E6411166AF6F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1E58C98-808F-4065-9C1D-E6411166AF6F}.Release|Any CPU.Build.0 = Release|Any CPU - {6B71E284-DA57-4657-9E08-A02BAFB877CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B71E284-DA57-4657-9E08-A02BAFB877CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B71E284-DA57-4657-9E08-A02BAFB877CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B71E284-DA57-4657-9E08-A02BAFB877CC}.Release|Any CPU.Build.0 = Release|Any CPU - {443745F1-A200-432B-A666-3D0E9F938DED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {443745F1-A200-432B-A666-3D0E9F938DED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {443745F1-A200-432B-A666-3D0E9F938DED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {443745F1-A200-432B-A666-3D0E9F938DED}.Release|Any CPU.Build.0 = Release|Any CPU - {E5ECA266-C7E9-4597-8FFA-095BD6890407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E5ECA266-C7E9-4597-8FFA-095BD6890407}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E5ECA266-C7E9-4597-8FFA-095BD6890407}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E5ECA266-C7E9-4597-8FFA-095BD6890407}.Release|Any CPU.Build.0 = Release|Any CPU + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|Any CPU.Build.0 = Debug|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|x64.ActiveCfg = Debug|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|x64.Build.0 = Debug|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|x86.ActiveCfg = Debug|x86 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Debug|x86.Build.0 = Debug|x86 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|Any CPU.ActiveCfg = Release|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|Any CPU.Build.0 = Release|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|x64.ActiveCfg = Release|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|x64.Build.0 = Release|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|x86.ActiveCfg = Release|x86 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Release|x86.Build.0 = Release|x86 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|Any CPU.ActiveCfg = Checked|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|Any CPU.Build.0 = Checked|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|x64.ActiveCfg = Checked|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|x64.Build.0 = Checked|x64 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|x86.ActiveCfg = Checked|x86 + {E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}.Checked|x86.Build.0 = Checked|x86 + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|x64.ActiveCfg = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|x64.Build.0 = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|x86.ActiveCfg = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Debug|x86.Build.0 = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|Any CPU.Build.0 = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|x64.ActiveCfg = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|x64.Build.0 = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|x86.ActiveCfg = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Release|x86.Build.0 = Release|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Checked|x64.ActiveCfg = Debug|Any CPU + {79613DED-481D-44EF-BB89-7AC6BD53026B}.Checked|x86.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|x64.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|x64.Build.0 = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|x86.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Debug|x86.Build.0 = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|Any CPU.Build.0 = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|x64.ActiveCfg = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|x64.Build.0 = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|x86.ActiveCfg = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Release|x86.Build.0 = Release|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Checked|x64.ActiveCfg = Debug|Any CPU + {40231BCB-E151-45E0-A1C4-4D559A434362}.Checked|x86.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|x64.Build.0 = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Debug|x86.Build.0 = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|Any CPU.Build.0 = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|x64.ActiveCfg = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|x64.Build.0 = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|x86.ActiveCfg = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Release|x86.Build.0 = Release|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Checked|x64.ActiveCfg = Debug|Any CPU + {7835A00A-3153-4777-8A84-B571268642D5}.Checked|x86.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|x64.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|x64.Build.0 = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|x86.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Debug|x86.Build.0 = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|Any CPU.Build.0 = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|x64.ActiveCfg = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|x64.Build.0 = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|x86.ActiveCfg = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Release|x86.Build.0 = Release|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Checked|x64.ActiveCfg = Debug|Any CPU + {55249BC9-201A-4418-AF14-7AC743D9A867}.Checked|x86.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|x64.Build.0 = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Debug|x86.Build.0 = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|Any CPU.Build.0 = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|x64.ActiveCfg = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|x64.Build.0 = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|x86.ActiveCfg = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Release|x86.Build.0 = Release|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Checked|x64.ActiveCfg = Debug|Any CPU + {4ABAB509-1210-43B4-B274-76B4FE02BD9B}.Checked|x86.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|x64.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|x64.Build.0 = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|x86.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Debug|x86.Build.0 = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|Any CPU.Build.0 = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|x64.ActiveCfg = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|x64.Build.0 = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|x86.ActiveCfg = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Release|x86.Build.0 = Release|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Checked|x64.ActiveCfg = Debug|Any CPU + {DD7E56B4-65B7-4822-A4E1-ECDD51524927}.Checked|x86.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|x64.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|x64.Build.0 = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|x86.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Debug|x86.Build.0 = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|Any CPU.Build.0 = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|x64.ActiveCfg = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|x64.Build.0 = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|x86.ActiveCfg = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Release|x86.Build.0 = Release|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Checked|x64.ActiveCfg = Debug|Any CPU + {9B797657-6BBC-4240-9903-3FCE3E1FC713}.Checked|x86.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|x64.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|x64.Build.0 = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|x86.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Debug|x86.Build.0 = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|Any CPU.Build.0 = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|x64.ActiveCfg = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|x64.Build.0 = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|x86.ActiveCfg = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Release|x86.Build.0 = Release|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Checked|x64.ActiveCfg = Debug|Any CPU + {A66D589C-6FEE-41EE-A7D9-C5306BF5AE47}.Checked|x86.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|x64.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|x64.Build.0 = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|x86.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Debug|x86.Build.0 = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|Any CPU.Build.0 = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|x64.ActiveCfg = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|x64.Build.0 = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|x86.ActiveCfg = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Release|x86.Build.0 = Release|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Checked|x64.ActiveCfg = Debug|Any CPU + {BF058293-0E5D-412C-A0B0-E55AF943278E}.Checked|x86.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|x64.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|x64.Build.0 = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|x86.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Debug|x86.Build.0 = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|Any CPU.Build.0 = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|x64.ActiveCfg = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|x64.Build.0 = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|x86.ActiveCfg = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Release|x86.Build.0 = Release|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Checked|x64.ActiveCfg = Debug|Any CPU + {F17D674C-0B0A-47FB-8B81-5B8664564E23}.Checked|x86.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|x64.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|x64.Build.0 = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|x86.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Debug|x86.Build.0 = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|Any CPU.Build.0 = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|x64.ActiveCfg = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|x64.Build.0 = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|x86.ActiveCfg = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Release|x86.Build.0 = Release|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Checked|x64.ActiveCfg = Debug|Any CPU + {3C3DA581-CEBE-450D-A998-BA05636BB760}.Checked|x86.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|x64.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|x64.Build.0 = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|x86.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Debug|x86.Build.0 = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|Any CPU.Build.0 = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|x64.ActiveCfg = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|x64.Build.0 = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|x86.ActiveCfg = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Release|x86.Build.0 = Release|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Checked|x64.ActiveCfg = Debug|Any CPU + {43C13D7B-23F3-4D83-B8BB-CE743A56D697}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {484C92C6-6D2C-45BC-A5E2-4A12BA228E1E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {9A8926D9-1D4C-4069-8965-A626F6CA8C29} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2395E8CA-73CB-40DF-BE40-A60BC189B737} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {E1E58C98-808F-4065-9C1D-E6411166AF6F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {6B71E284-DA57-4657-9E08-A02BAFB877CC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {443745F1-A200-432B-A666-3D0E9F938DED} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E5ECA266-C7E9-4597-8FFA-095BD6890407} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F9EC6162-389C-4439-9EB6-B357237A1812} + SolutionGuid = {33E0B3D0-C6E1-4B75-A025-AE012AD424F7} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.Compare.cs b/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.Compare.cs index 57704146c8b6..98890c0c4fdb 100644 --- a/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.Compare.cs +++ b/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.Compare.cs @@ -455,5 +455,31 @@ public void Compare_Invalid() AssertExtensions.Throws("string2", () => s_invariantCompare.Compare("Test", 0, 2, "Test", 2, 3)); AssertExtensions.Throws("string2", () => s_invariantCompare.Compare("Test", 0, 2, "Test", 2, 3, CompareOptions.None)); } + + [Fact] + public void TestIgnoreKanaAndWidthCases() + { + for (char c = '\uFF41'; c <= '\uFF5A'; c++) // Full width 'a' to `z` + { + Assert.False(string.Equals(new string(c, 1), new string((char) (c - 0x20), 1), StringComparison.InvariantCulture), $"Expected '{(int)c:x4}' != '{c - 0x20:x4}'"); + Assert.True(string.Equals(new string(c, 1), new string((char) (c - 0x20), 1), StringComparison.InvariantCultureIgnoreCase), $"Expected '{(int)c:x4}' == '{c - 0x20:x4}'"); + } + + // Edge case of the Ignore Width. + Assert.False(string.Compare("\u3162\u3163", "\uFFDB\uFFDC", CultureInfo.InvariantCulture, CompareOptions.None) == 0, $"Expect '0x3162 0x3163' != '0xFFDB 0xFFDC'"); + Assert.True(string.Compare("\u3162\u3163", "\uFFDB\uFFDC", CultureInfo.InvariantCulture, CompareOptions.IgnoreWidth) == 0, "Expect '0x3162 0x3163' == '0xFFDB 0xFFDC'"); + + const char hiraganaStart = '\u3041'; + const char hiraganaEnd = '\u3096'; + const int hiraganaToKatakanaOffset = 0x30a1 - 0x3041; + + for (Char hiraganaChar = hiraganaStart; hiraganaChar <= hiraganaEnd; hiraganaChar++) + { + Assert.False(string.Compare(new string(hiraganaChar, 1), new string((char)(hiraganaChar + hiraganaToKatakanaOffset), 1), CultureInfo.InvariantCulture, CompareOptions.IgnoreCase) == 0, + $"Expect '{(int)hiraganaChar:x4}' != {(int)hiraganaChar + hiraganaToKatakanaOffset:x4} with CompareOptions.IgnoreCase"); + Assert.True(string.Compare(new string(hiraganaChar, 1), new string((char)(hiraganaChar + hiraganaToKatakanaOffset), 1), CultureInfo.InvariantCulture, CompareOptions.IgnoreKanaType) == 0, + $"Expect '{(int)hiraganaChar:x4}' == {(int)hiraganaChar + hiraganaToKatakanaOffset:x4} with CompareOptions.IgnoreKanaType"); + } + } } } diff --git a/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs b/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs index be9d74eb63d7..b9d6be536f48 100644 --- a/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs +++ b/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs @@ -11,10 +11,25 @@ public class CultureInfoParent [InlineData("en-US", "en")] [InlineData("en", "")] [InlineData("", "")] + [InlineData("zh-CN", "zh-Hans")] + [InlineData("zh-SG", "zh-Hans")] + [InlineData("zh-HK", "zh-Hant")] + [InlineData("zh-MO", "zh-Hant")] + [InlineData("zh-TW", "zh-Hant")] + [InlineData("zh-Hans-CN", "zh-Hans")] + [InlineData("zh-Hant-TW", "zh-Hant")] public void Parent(string name, string expectedParentName) { - CultureInfo culture = new CultureInfo(name); - Assert.Equal(new CultureInfo(expectedParentName), culture.Parent); + try + { + CultureInfo culture = new CultureInfo(name); + Assert.Equal(new CultureInfo(expectedParentName), culture.Parent); + } + catch (CultureNotFoundException) + { + // on downlevel Windows versions, some cultures are not supported e.g. zh-Hans-CN + // Ignore that and pass the test + } } [Fact] diff --git a/src/libraries/System.Globalization/tests/System/Globalization/GraphemeBreakTest.cs b/src/libraries/System.Globalization/tests/System/Globalization/GraphemeBreakTest.cs index 651dd8bcf476..678f61b6ea82 100644 --- a/src/libraries/System.Globalization/tests/System/Globalization/GraphemeBreakTest.cs +++ b/src/libraries/System.Globalization/tests/System/Globalization/GraphemeBreakTest.cs @@ -24,30 +24,111 @@ public void CompareRuntimeImplementationAgainstUnicodeTestData() { // Arrange - List expected = new List(); - StringBuilder input = new StringBuilder(); + StringBuilder inputString = new StringBuilder(); + List expectedGraphemeClusterRanges = new List(); foreach (Rune[] cluster in clusters) { - expected.Add(input.Length); // we're about to start a new cluster - foreach (Rune scalar in cluster) + int start = inputString.Length; + foreach (Rune rune in cluster) { - input.Append(scalar); + inputString.Append(rune); } + int end = inputString.Length; + expectedGraphemeClusterRanges.Add(start..end); } - // Act + // Act & assert - int[] actual = StringInfo.ParseCombiningCharacters(input.ToString()); + try + { + RunStringInfoTestCase(inputString.ToString(), expectedGraphemeClusterRanges.ToArray()); + } + catch (Exception ex) + { + // include the failing line from the test case file for ease of debugging + throw new Exception("Grapheme break test failed on test case: " + line, ex); + } + } + } - // Assert + private static void RunStringInfoTestCase(string input, Range[] expectedGraphemeClusterRanges) + { + if (expectedGraphemeClusterRanges.Length == 0) + { + // Handle empty inputs + + Assert.Equal(string.Empty, input); // Shouldn't have zero-length expected grapheme clusters for non-empty inputs + Assert.Equal(0, StringInfo.GetNextTextElementLength(input)); + Assert.Equal(0, StringInfo.GetNextTextElementLength(input, 0)); + Assert.Equal(0, StringInfo.GetNextTextElementLength(input.AsSpan())); + Assert.Equal(string.Empty, StringInfo.GetNextTextElement(input)); + Assert.Equal(string.Empty, StringInfo.GetNextTextElement(input, 0)); + + StringInfo si = new StringInfo(input); + Assert.Equal(0, si.LengthInTextElements); + + TextElementEnumerator enumerator = StringInfo.GetTextElementEnumerator(input); + Assert.False(enumerator.MoveNext()); + } + else + { + // Handle non-empty inputs + + // ParseCombiningCharacters returns the offset of each grapheme cluster start + + int[] combiningCharOffsets = StringInfo.ParseCombiningCharacters(input); + Assert.Equal( + expected: expectedGraphemeClusterRanges.Select(range => range.GetOffsetAndLength(input.Length).Offset).ToArray(), + actual: combiningCharOffsets); + + // GetNextTextElement[Length] returns the substring [length] of each grapheme cluster - if (!expected.SequenceEqual(actual)) + foreach (Range range in expectedGraphemeClusterRanges) { - throw new AssertActualExpectedException( - expected: expected.ToArray(), - actual: actual, - userMessage: "Grapheme break test failed on test case: " + line); + string expected = input[range]; + + Assert.Equal(expected, StringInfo.GetNextTextElement(input[range.Start..])); + Assert.Equal(expected, StringInfo.GetNextTextElement(input, range.GetOffsetAndLength(input.Length).Offset)); + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(input[range.Start..])); + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(input, range.GetOffsetAndLength(input.Length).Offset)); + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(input.AsSpan()[range])); + } + + // StringInfo.LengthInTextElements returns the total grapheme cluster count + + Assert.Equal(expectedGraphemeClusterRanges.Length, new StringInfo(input).LengthInTextElements); + + // TextElementEnumerator returns an enumerator over each grapheme cluster + + for (int i = 0; i < expectedGraphemeClusterRanges.Length; i++) + { + Span remainingRanges = expectedGraphemeClusterRanges.AsSpan(i); + + int baseOffset = remainingRanges[0].GetOffsetAndLength(input.Length).Offset; + TextElementEnumerator enumerator1 = StringInfo.GetTextElementEnumerator(input[baseOffset..]); + TextElementEnumerator enumerator2 = StringInfo.GetTextElementEnumerator(input, baseOffset); + + foreach (Range innerRange in remainingRanges) + { + Assert.True(enumerator1.MoveNext()); // input string has already been substringed + Assert.True(enumerator2.MoveNext()); // input string has been fully provided; enumerator has substringed + + string expectedSubstring = input[innerRange]; + int expectedRelativeOffset = innerRange.GetOffsetAndLength(input.Length).Offset - baseOffset; + + Assert.Equal(expectedRelativeOffset, enumerator1.ElementIndex); + Assert.Equal(expectedRelativeOffset, enumerator2.ElementIndex); + + Assert.Equal(expectedSubstring, enumerator1.Current); + Assert.Equal(expectedSubstring, enumerator1.GetTextElement()); + + Assert.Equal(expectedSubstring, enumerator2.Current); + Assert.Equal(expectedSubstring, enumerator2.GetTextElement()); + } + + Assert.False(enumerator1.MoveNext()); + Assert.False(enumerator2.MoveNext()); } } } @@ -106,10 +187,10 @@ private static IEnumerable<(Rune[][] clusters, string line)> GetGraphemeBreakTes continue; } - // Line has format " (XXXX ( YYYY)* )+ # " + // Line has format "÷ (XXXX (× YYYY)* ÷)+ # " // We'll yield return a Rune[][], representing a collection of clusters, where each cluster contains a collection of Runes. // - // Example: " AAAA BBBB CCCC DDDD EEEE FFFF # " + // Example: "÷ AAAA ÷ BBBB × CCCC × DDDD ÷ EEEE × FFFF ÷ # " // -> [ [ AAAA ], [ BBBB, CCCC, DDDD ], [ EEEE, FFFF ] ] // // We also return the line for ease of debugging any test failures. diff --git a/src/libraries/System.Globalization/tests/System/Globalization/StringInfoTests.cs b/src/libraries/System.Globalization/tests/System/Globalization/StringInfoTests.cs index 0f9dfecceb94..50723c160631 100644 --- a/src/libraries/System.Globalization/tests/System/Globalization/StringInfoTests.cs +++ b/src/libraries/System.Globalization/tests/System/Globalization/StringInfoTests.cs @@ -166,6 +166,28 @@ public void GetNextTextElement_Invalid() AssertExtensions.Throws("index", () => StringInfo.GetNextTextElement("abc", 4)); // Index > str.Length } + [Theory] + [MemberData(nameof(GetNextTextElement_TestData))] + public void GetNextTextElementLength(string str, int index, string expected) + { + if (index == 0) + { + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(str)); + } + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(str, index)); + Assert.Equal(expected.Length, StringInfo.GetNextTextElementLength(str.AsSpan(index))); + } + + [Fact] + public void GetNextTextElementLength_Invalid() + { + AssertExtensions.Throws("str", () => StringInfo.GetNextTextElementLength(null)); // Str is null + AssertExtensions.Throws("str", () => StringInfo.GetNextTextElementLength(null, 0)); // Str is null + + AssertExtensions.Throws("index", () => StringInfo.GetNextTextElementLength("abc", -1)); // Index < 0 + AssertExtensions.Throws("index", () => StringInfo.GetNextTextElementLength("abc", 4)); // Index > str.Length + } + public static IEnumerable GetTextElementEnumerator_TestData() { yield return new object[] { "", 0, new string[0] }; // Empty string diff --git a/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs b/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs index 3ab4461d0176..f0c56f385c14 100644 --- a/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs +++ b/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs @@ -120,10 +120,42 @@ public void IsRightToLeft(string name, bool expected) Assert.Equal(expected, new CultureInfo(name).TextInfo.IsRightToLeft); } - [Fact] - public void ListSeparator_EnUS() - { - Assert.NotEqual(string.Empty, new CultureInfo("en-US").TextInfo.ListSeparator); + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData("ar-SA", ";")] + [InlineData("as-IN", ",")] + [InlineData("ba-RU", ";")] + [InlineData("bs-cyrl-BA", ";")] + [InlineData("de-DE", ";")] + [InlineData("dv-MV", "\u060C")] + [InlineData("en-GB", ",")] + [InlineData("en-US", ",")] + [InlineData("es-ES", ";")] + [InlineData("es-MX", ",")] + [InlineData("fa-IR", "\u061B")] + [InlineData("fr-FR", ";")] + [InlineData("hr-HR", ";")] + [InlineData("it-IT", ";")] + [InlineData("ko-KR", ",")] + [InlineData("ku-arab-iq", "\u061B")] + [InlineData("nl-NL", ";")] + [InlineData("pl-pl", ";")] + [InlineData("pt-PT", ";")] + [InlineData("ru-RU", ";")] + [InlineData("sv-SE", ";")] + [InlineData("th-TH", ",")] + [InlineData("ja-jp", ",")] + [InlineData("zh-CN", ",")] + [InlineData("", ",")] + public void ListSeparatorTest(string cultureName, string separator) + { + try + { + Assert.Equal(separator, CultureInfo.GetCultureInfo(cultureName).TextInfo.ListSeparator); + } + catch (CultureNotFoundException) + { + // Ignore the cultures we cannot create on downlevel versions. + } } [Theory] diff --git a/src/libraries/System.IO.Compression.Brotli/System.IO.Compression.Brotli.sln b/src/libraries/System.IO.Compression.Brotli/System.IO.Compression.Brotli.sln index cdea0f1a15d4..d1dcdaaa635c 100644 --- a/src/libraries/System.IO.Compression.Brotli/System.IO.Compression.Brotli.sln +++ b/src/libraries/System.IO.Compression.Brotli/System.IO.Compression.Brotli.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli.Tests", "tests\System.IO.Compression.Brotli.Tests.csproj", "{BC2E1649-291D-412E-9529-EDDA94FA7AD6}" - ProjectSection(ProjectDependencies) = postProject - {5471BFE8-8071-466F-838E-5ADAA779E742} = {5471BFE8-8071-466F-838E-5ADAA779E742} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5C5E6836-8622-4C60-921C-F7B7286CD894}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli", "src\System.IO.Compression.Brotli.csproj", "{5471BFE8-8071-466F-838E-5ADAA779E742}" - ProjectSection(ProjectDependencies) = postProject - {4ADD9456-A929-4254-B8A2-16FC628ABFDA} = {4ADD9456-A929-4254-B8A2-16FC628ABFDA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9CEA4005-9ACB-4992-9D05-7BFD1474EE9A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli", "ref\System.IO.Compression.Brotli.csproj", "{4ADD9456-A929-4254-B8A2-16FC628ABFDA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli", "ref\System.IO.Compression.Brotli.csproj", "{7EC62394-2290-4075-AF5D-842C7A0F6325}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli", "src\System.IO.Compression.Brotli.csproj", "{C2A30FF0-54C2-461B-BF16-5DC610F54B52}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Brotli.Tests", "tests\System.IO.Compression.Brotli.Tests.csproj", "{E62974EA-7E36-4183-8371-4C8EA02037B5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A50E06CB-B581-46AB-B91F-4AAAA62A9F8C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F7249150-3C16-477E-92D6-6B3C1C3B2328}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E40CF8BA-6590-498F-81E5-E4ED7B3B41E9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{867C3FE6-0442-4492-9F56-955856B65177}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{93637A1B-27BE-4932-83BE-0BB8E71A1AC2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{27666EAE-3F9F-4DCD-9FB9-12F5C523E849}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5C5E6836-8622-4C60-921C-F7B7286CD894} = {93637A1B-27BE-4932-83BE-0BB8E71A1AC2} + {E62974EA-7E36-4183-8371-4C8EA02037B5} = {93637A1B-27BE-4932-83BE-0BB8E71A1AC2} + {9CEA4005-9ACB-4992-9D05-7BFD1474EE9A} = {A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A} + {7EC62394-2290-4075-AF5D-842C7A0F6325} = {A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A} + {A50E06CB-B581-46AB-B91F-4AAAA62A9F8C} = {A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A} + {E40CF8BA-6590-498F-81E5-E4ED7B3B41E9} = {A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A} + {867C3FE6-0442-4492-9F56-955856B65177} = {A71A1F11-B84B-4A7B-A1D0-A2A5021F7B2A} + {C2A30FF0-54C2-461B-BF16-5DC610F54B52} = {27666EAE-3F9F-4DCD-9FB9-12F5C523E849} + {8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1} = {27666EAE-3F9F-4DCD-9FB9-12F5C523E849} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Release|Any CPU.Build.0 = Release|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Release|Any CPU.Build.0 = Release|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Release|Any CPU.Build.0 = Release|Any CPU - {F7249150-3C16-477E-92D6-6B3C1C3B2328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7249150-3C16-477E-92D6-6B3C1C3B2328}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7249150-3C16-477E-92D6-6B3C1C3B2328}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7249150-3C16-477E-92D6-6B3C1C3B2328}.Release|Any CPU.Build.0 = Release|Any CPU + {5C5E6836-8622-4C60-921C-F7B7286CD894}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C5E6836-8622-4C60-921C-F7B7286CD894}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C5E6836-8622-4C60-921C-F7B7286CD894}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C5E6836-8622-4C60-921C-F7B7286CD894}.Release|Any CPU.Build.0 = Release|Any CPU + {9CEA4005-9ACB-4992-9D05-7BFD1474EE9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CEA4005-9ACB-4992-9D05-7BFD1474EE9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CEA4005-9ACB-4992-9D05-7BFD1474EE9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CEA4005-9ACB-4992-9D05-7BFD1474EE9A}.Release|Any CPU.Build.0 = Release|Any CPU + {7EC62394-2290-4075-AF5D-842C7A0F6325}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EC62394-2290-4075-AF5D-842C7A0F6325}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EC62394-2290-4075-AF5D-842C7A0F6325}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EC62394-2290-4075-AF5D-842C7A0F6325}.Release|Any CPU.Build.0 = Release|Any CPU + {C2A30FF0-54C2-461B-BF16-5DC610F54B52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2A30FF0-54C2-461B-BF16-5DC610F54B52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2A30FF0-54C2-461B-BF16-5DC610F54B52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2A30FF0-54C2-461B-BF16-5DC610F54B52}.Release|Any CPU.Build.0 = Release|Any CPU + {E62974EA-7E36-4183-8371-4C8EA02037B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E62974EA-7E36-4183-8371-4C8EA02037B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E62974EA-7E36-4183-8371-4C8EA02037B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E62974EA-7E36-4183-8371-4C8EA02037B5}.Release|Any CPU.Build.0 = Release|Any CPU + {A50E06CB-B581-46AB-B91F-4AAAA62A9F8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A50E06CB-B581-46AB-B91F-4AAAA62A9F8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A50E06CB-B581-46AB-B91F-4AAAA62A9F8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A50E06CB-B581-46AB-B91F-4AAAA62A9F8C}.Release|Any CPU.Build.0 = Release|Any CPU + {8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AD9C0AC-E4C4-48D6-A191-67C4DA4399E1}.Release|Any CPU.Build.0 = Release|Any CPU + {E40CF8BA-6590-498F-81E5-E4ED7B3B41E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E40CF8BA-6590-498F-81E5-E4ED7B3B41E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E40CF8BA-6590-498F-81E5-E4ED7B3B41E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E40CF8BA-6590-498F-81E5-E4ED7B3B41E9}.Release|Any CPU.Build.0 = Release|Any CPU + {867C3FE6-0442-4492-9F56-955856B65177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {867C3FE6-0442-4492-9F56-955856B65177}.Debug|Any CPU.Build.0 = Debug|Any CPU + {867C3FE6-0442-4492-9F56-955856B65177}.Release|Any CPU.ActiveCfg = Release|Any CPU + {867C3FE6-0442-4492-9F56-955856B65177}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BC2E1649-291D-412E-9529-EDDA94FA7AD6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5471BFE8-8071-466F-838E-5ADAA779E742} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4ADD9456-A929-4254-B8A2-16FC628ABFDA} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F7249150-3C16-477E-92D6-6B3C1C3B2328} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E6964E6C-E54F-4BA8-A2C5-941226478E2C} + SolutionGuid = {42B626C7-CDFD-459B-86D8-239917F86516} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.sln b/src/libraries/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.sln index 3d4398bb2913..7efef353b127 100644 --- a/src/libraries/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.sln +++ b/src/libraries/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile.Tests", "tests\System.IO.Compression.ZipFile.Tests.csproj", "{775727A6-DF41-4160-A7FD-180279A653C7}" - ProjectSection(ProjectDependencies) = postProject - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6} = {ACF967ED-7FC9-435C-B2C9-306626B7B6C6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0869556F-E34F-4284-B985-CB6D3B6AD954}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile", "src\System.IO.Compression.ZipFile.csproj", "{ACF967ED-7FC9-435C-B2C9-306626B7B6C6}" - ProjectSection(ProjectDependencies) = postProject - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29} = {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile", "ref\System.IO.Compression.ZipFile.csproj", "{5208B51C-53E1-425A-A6A7-D3BB6BCCCF29}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile", "ref\System.IO.Compression.ZipFile.csproj", "{E91931AD-977E-4608-9F40-997163322D8B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile", "src\System.IO.Compression.ZipFile.csproj", "{A3C36A2F-2586-43DF-B39C-A9D14DF8524E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.ZipFile.Tests", "tests\System.IO.Compression.ZipFile.Tests.csproj", "{D5A89FC9-7913-4F80-BA16-6587EB6140E3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9D260F5B-F8EC-41D2-8A30-60D6ADF0910A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{77978037-F865-4C86-9386-6ADDD2049B7B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DBD14497-E65E-45FC-99BA-DFE6641135BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BE00471F-EB95-4C7C-979B-C049244CE9D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F676A88B-C621-4417-8BD9-695950375981}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0B6F73B8-F084-42D9-8541-6358338513A6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DEC42E9E-C53F-4ABD-8722-3A72FCDCD671}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{35F5878E-55B7-496D-83BA-CEA2C353BCE7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0869556F-E34F-4284-B985-CB6D3B6AD954} = {0B6F73B8-F084-42D9-8541-6358338513A6} + {D5A89FC9-7913-4F80-BA16-6587EB6140E3} = {0B6F73B8-F084-42D9-8541-6358338513A6} + {7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44} = {DEC42E9E-C53F-4ABD-8722-3A72FCDCD671} + {E91931AD-977E-4608-9F40-997163322D8B} = {DEC42E9E-C53F-4ABD-8722-3A72FCDCD671} + {9D260F5B-F8EC-41D2-8A30-60D6ADF0910A} = {DEC42E9E-C53F-4ABD-8722-3A72FCDCD671} + {BE00471F-EB95-4C7C-979B-C049244CE9D4} = {DEC42E9E-C53F-4ABD-8722-3A72FCDCD671} + {F676A88B-C621-4417-8BD9-695950375981} = {DEC42E9E-C53F-4ABD-8722-3A72FCDCD671} + {A3C36A2F-2586-43DF-B39C-A9D14DF8524E} = {35F5878E-55B7-496D-83BA-CEA2C353BCE7} + {DBD14497-E65E-45FC-99BA-DFE6641135BE} = {35F5878E-55B7-496D-83BA-CEA2C353BCE7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {775727A6-DF41-4160-A7FD-180279A653C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {775727A6-DF41-4160-A7FD-180279A653C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {775727A6-DF41-4160-A7FD-180279A653C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {775727A6-DF41-4160-A7FD-180279A653C7}.Release|Any CPU.Build.0 = Release|Any CPU - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6}.Release|Any CPU.Build.0 = Release|Any CPU - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29}.Release|Any CPU.Build.0 = Release|Any CPU - {77978037-F865-4C86-9386-6ADDD2049B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77978037-F865-4C86-9386-6ADDD2049B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77978037-F865-4C86-9386-6ADDD2049B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77978037-F865-4C86-9386-6ADDD2049B7B}.Release|Any CPU.Build.0 = Release|Any CPU + {0869556F-E34F-4284-B985-CB6D3B6AD954}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0869556F-E34F-4284-B985-CB6D3B6AD954}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0869556F-E34F-4284-B985-CB6D3B6AD954}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0869556F-E34F-4284-B985-CB6D3B6AD954}.Release|Any CPU.Build.0 = Release|Any CPU + {7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A9E3113-5E7B-4531-BC0F-FA9A65CBBF44}.Release|Any CPU.Build.0 = Release|Any CPU + {E91931AD-977E-4608-9F40-997163322D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E91931AD-977E-4608-9F40-997163322D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E91931AD-977E-4608-9F40-997163322D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E91931AD-977E-4608-9F40-997163322D8B}.Release|Any CPU.Build.0 = Release|Any CPU + {A3C36A2F-2586-43DF-B39C-A9D14DF8524E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3C36A2F-2586-43DF-B39C-A9D14DF8524E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3C36A2F-2586-43DF-B39C-A9D14DF8524E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3C36A2F-2586-43DF-B39C-A9D14DF8524E}.Release|Any CPU.Build.0 = Release|Any CPU + {D5A89FC9-7913-4F80-BA16-6587EB6140E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5A89FC9-7913-4F80-BA16-6587EB6140E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5A89FC9-7913-4F80-BA16-6587EB6140E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5A89FC9-7913-4F80-BA16-6587EB6140E3}.Release|Any CPU.Build.0 = Release|Any CPU + {9D260F5B-F8EC-41D2-8A30-60D6ADF0910A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D260F5B-F8EC-41D2-8A30-60D6ADF0910A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D260F5B-F8EC-41D2-8A30-60D6ADF0910A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D260F5B-F8EC-41D2-8A30-60D6ADF0910A}.Release|Any CPU.Build.0 = Release|Any CPU + {DBD14497-E65E-45FC-99BA-DFE6641135BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBD14497-E65E-45FC-99BA-DFE6641135BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBD14497-E65E-45FC-99BA-DFE6641135BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBD14497-E65E-45FC-99BA-DFE6641135BE}.Release|Any CPU.Build.0 = Release|Any CPU + {BE00471F-EB95-4C7C-979B-C049244CE9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE00471F-EB95-4C7C-979B-C049244CE9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE00471F-EB95-4C7C-979B-C049244CE9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE00471F-EB95-4C7C-979B-C049244CE9D4}.Release|Any CPU.Build.0 = Release|Any CPU + {F676A88B-C621-4417-8BD9-695950375981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F676A88B-C621-4417-8BD9-695950375981}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F676A88B-C621-4417-8BD9-695950375981}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F676A88B-C621-4417-8BD9-695950375981}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {775727A6-DF41-4160-A7FD-180279A653C7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {ACF967ED-7FC9-435C-B2C9-306626B7B6C6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {5208B51C-53E1-425A-A6A7-D3BB6BCCCF29} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {77978037-F865-4C86-9386-6ADDD2049B7B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A63DC261-2EFF-471A-99EF-36F248AE1A81} + SolutionGuid = {D2E26432-A647-4E61-9A30-DE6C62BBD632} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Compression/System.IO.Compression.sln b/src/libraries/System.IO.Compression/System.IO.Compression.sln index 74faa07108ad..9999e3a34997 100644 --- a/src/libraries/System.IO.Compression/System.IO.Compression.sln +++ b/src/libraries/System.IO.Compression/System.IO.Compression.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Tests", "tests\System.IO.Compression.Tests.csproj", "{17DA7FB5-4370-4385-9A02-FFEF9F482903}" - ProjectSection(ProjectDependencies) = postProject - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870} = {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6F1E1397-7610-4E99-BA7E-895ABC8E5ACB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression", "src\System.IO.Compression.csproj", "{E9ED0A04-23A8-4F8B-82C1-2B18AF74C870}" - ProjectSection(ProjectDependencies) = postProject - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43} = {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{5EDF447E-42E9-4384-AF06-A7BFD12D0D0F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression", "ref\System.IO.Compression.csproj", "{7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression", "ref\System.IO.Compression.csproj", "{9BFD204A-0DB1-466A-9704-0E869AC8940F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression", "src\System.IO.Compression.csproj", "{ED776381-E13D-4A0B-ACB4-74C5A784BD25}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Compression.Tests", "tests\System.IO.Compression.Tests.csproj", "{DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3388FA37-5837-4B1C-9F33-4E59383A6F6B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{65C7FDC3-D18B-4888-88C1-EA22B9247831}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{407EEA45-431F-41AE-ADA6-8BB884362FDC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{46C60A4C-CDC0-427B-A715-D59B61205DE4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{69E74A56-9117-4A54-B2D5-921A159CADC0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8BE61DEF-44B4-463A-AA96-09242F580354}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E4CFDEF8-D456-4288-8207-5605B90C3763}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {6F1E1397-7610-4E99-BA7E-895ABC8E5ACB} = {69E74A56-9117-4A54-B2D5-921A159CADC0} + {DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A} = {69E74A56-9117-4A54-B2D5-921A159CADC0} + {5EDF447E-42E9-4384-AF06-A7BFD12D0D0F} = {8BE61DEF-44B4-463A-AA96-09242F580354} + {9BFD204A-0DB1-466A-9704-0E869AC8940F} = {8BE61DEF-44B4-463A-AA96-09242F580354} + {BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7} = {8BE61DEF-44B4-463A-AA96-09242F580354} + {407EEA45-431F-41AE-ADA6-8BB884362FDC} = {8BE61DEF-44B4-463A-AA96-09242F580354} + {46C60A4C-CDC0-427B-A715-D59B61205DE4} = {8BE61DEF-44B4-463A-AA96-09242F580354} + {ED776381-E13D-4A0B-ACB4-74C5A784BD25} = {E4CFDEF8-D456-4288-8207-5605B90C3763} + {65C7FDC3-D18B-4888-88C1-EA22B9247831} = {E4CFDEF8-D456-4288-8207-5605B90C3763} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {17DA7FB5-4370-4385-9A02-FFEF9F482903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17DA7FB5-4370-4385-9A02-FFEF9F482903}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17DA7FB5-4370-4385-9A02-FFEF9F482903}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17DA7FB5-4370-4385-9A02-FFEF9F482903}.Release|Any CPU.Build.0 = Release|Any CPU - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870}.Release|Any CPU.Build.0 = Release|Any CPU - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43}.Release|Any CPU.Build.0 = Release|Any CPU - {3388FA37-5837-4B1C-9F33-4E59383A6F6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3388FA37-5837-4B1C-9F33-4E59383A6F6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3388FA37-5837-4B1C-9F33-4E59383A6F6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3388FA37-5837-4B1C-9F33-4E59383A6F6B}.Release|Any CPU.Build.0 = Release|Any CPU + {6F1E1397-7610-4E99-BA7E-895ABC8E5ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F1E1397-7610-4E99-BA7E-895ABC8E5ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F1E1397-7610-4E99-BA7E-895ABC8E5ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F1E1397-7610-4E99-BA7E-895ABC8E5ACB}.Release|Any CPU.Build.0 = Release|Any CPU + {5EDF447E-42E9-4384-AF06-A7BFD12D0D0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EDF447E-42E9-4384-AF06-A7BFD12D0D0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EDF447E-42E9-4384-AF06-A7BFD12D0D0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EDF447E-42E9-4384-AF06-A7BFD12D0D0F}.Release|Any CPU.Build.0 = Release|Any CPU + {9BFD204A-0DB1-466A-9704-0E869AC8940F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BFD204A-0DB1-466A-9704-0E869AC8940F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BFD204A-0DB1-466A-9704-0E869AC8940F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BFD204A-0DB1-466A-9704-0E869AC8940F}.Release|Any CPU.Build.0 = Release|Any CPU + {ED776381-E13D-4A0B-ACB4-74C5A784BD25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED776381-E13D-4A0B-ACB4-74C5A784BD25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED776381-E13D-4A0B-ACB4-74C5A784BD25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED776381-E13D-4A0B-ACB4-74C5A784BD25}.Release|Any CPU.Build.0 = Release|Any CPU + {DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDD2055F-5FB6-41CD-ABE8-6FB45F6CF44A}.Release|Any CPU.Build.0 = Release|Any CPU + {BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD3E0A9D-1E3D-4E5A-A095-AB33B234AFE7}.Release|Any CPU.Build.0 = Release|Any CPU + {65C7FDC3-D18B-4888-88C1-EA22B9247831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65C7FDC3-D18B-4888-88C1-EA22B9247831}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65C7FDC3-D18B-4888-88C1-EA22B9247831}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65C7FDC3-D18B-4888-88C1-EA22B9247831}.Release|Any CPU.Build.0 = Release|Any CPU + {407EEA45-431F-41AE-ADA6-8BB884362FDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {407EEA45-431F-41AE-ADA6-8BB884362FDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {407EEA45-431F-41AE-ADA6-8BB884362FDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {407EEA45-431F-41AE-ADA6-8BB884362FDC}.Release|Any CPU.Build.0 = Release|Any CPU + {46C60A4C-CDC0-427B-A715-D59B61205DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46C60A4C-CDC0-427B-A715-D59B61205DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46C60A4C-CDC0-427B-A715-D59B61205DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46C60A4C-CDC0-427B-A715-D59B61205DE4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {17DA7FB5-4370-4385-9A02-FFEF9F482903} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E9ED0A04-23A8-4F8B-82C1-2B18AF74C870} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7CBACE0E-E07C-4ADB-A413-ADEC0CACBD43} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3388FA37-5837-4B1C-9F33-4E59383A6F6B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FE996C3E-6010-4AF1-93E1-B5311EDD5FA0} + SolutionGuid = {0F6F5B24-5CE5-45F2-9169-FEBEF2A3FE80} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.sln b/src/libraries/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.sln index 1674afd16509..0982a373b5ce 100644 --- a/src/libraries/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.sln +++ b/src/libraries/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.sln @@ -1,60 +1,149 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29420.8 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl.Tests", "tests\System.IO.FileSystem.AccessControl.Tests.csproj", "{5915DD11-5D57-45A9-BFB0-56FEB7741E1F}" - ProjectSection(ProjectDependencies) = postProject - {D77FBA6C-1AA6-45A4-93E2-97A370672C53} = {D77FBA6C-1AA6-45A4-93E2-97A370672C53} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{18FD488A-2A3F-4B40-B65D-7108688D350F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "src\System.IO.FileSystem.AccessControl.csproj", "{D77FBA6C-1AA6-45A4-93E2-97A370672C53}" - ProjectSection(ProjectDependencies) = postProject - {88A04AB0-F61E-4DD2-9E12-928DCA261263} = {88A04AB0-F61E-4DD2-9E12-928DCA261263} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{BC0B86CC-54C1-450F-A710-13A66571EEBE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "ref\System.IO.FileSystem.AccessControl.csproj", "{88A04AB0-F61E-4DD2-9E12-928DCA261263}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{071FC282-9840-4920-B0FD-BE778449B5FF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{4EF591E4-175E-494D-8191-15C2D6C6E2E6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{C0B560B2-72A0-41B2-82D5-34EF31719AD7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "ref\System.IO.FileSystem.AccessControl.csproj", "{D7E6A261-C80A-4E51-BCDD-85DD595866B9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D8ADD095-F93D-4E76-92A8-6A7C698CBFE6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "src\System.IO.FileSystem.AccessControl.csproj", "{35D57A83-8A9D-4531-BF0D-EA1BCA62D475}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl.Tests", "tests\System.IO.FileSystem.AccessControl.Tests.csproj", "{9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3709D2F4-5495-447A-81D1-D022B5A22DF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{37F8ED93-FD45-4941-B83E-84D278B8EA83}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{87E03C4D-FFE2-43AD-9CFE-BB67A2448186}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EAAF9D04-EB06-48C5-B678-662C777FBC7D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{F33F1171-273A-4BC3-B138-25E5E7118186}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{83F2D6C4-C3C7-4428-A0CA-577162C5DBCA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4C78F34A-DAF6-4298-A4D3-5C8FD380E33B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A9FD5D03-1516-47D5-8CF4-FD9512E8CADB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {18FD488A-2A3F-4B40-B65D-7108688D350F} = {4C78F34A-DAF6-4298-A4D3-5C8FD380E33B} + {9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2} = {4C78F34A-DAF6-4298-A4D3-5C8FD380E33B} + {BC0B86CC-54C1-450F-A710-13A66571EEBE} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {071FC282-9840-4920-B0FD-BE778449B5FF} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {C0B560B2-72A0-41B2-82D5-34EF31719AD7} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {D7E6A261-C80A-4E51-BCDD-85DD595866B9} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {3709D2F4-5495-447A-81D1-D022B5A22DF9} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {37F8ED93-FD45-4941-B83E-84D278B8EA83} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {EAAF9D04-EB06-48C5-B678-662C777FBC7D} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {F33F1171-273A-4BC3-B138-25E5E7118186} = {A9FD5D03-1516-47D5-8CF4-FD9512E8CADB} + {4EF591E4-175E-494D-8191-15C2D6C6E2E6} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {35D57A83-8A9D-4531-BF0D-EA1BCA62D475} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {87E03C4D-FFE2-43AD-9CFE-BB67A2448186} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + {83F2D6C4-C3C7-4428-A0CA-577162C5DBCA} = {2A945EB8-D29E-4FFA-A3AA-AF2D5EDAF6B1} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5915DD11-5D57-45A9-BFB0-56FEB7741E1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5915DD11-5D57-45A9-BFB0-56FEB7741E1F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5915DD11-5D57-45A9-BFB0-56FEB7741E1F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5915DD11-5D57-45A9-BFB0-56FEB7741E1F}.Release|Any CPU.Build.0 = Release|Any CPU - {D77FBA6C-1AA6-45A4-93E2-97A370672C53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D77FBA6C-1AA6-45A4-93E2-97A370672C53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D77FBA6C-1AA6-45A4-93E2-97A370672C53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D77FBA6C-1AA6-45A4-93E2-97A370672C53}.Release|Any CPU.Build.0 = Release|Any CPU - {88A04AB0-F61E-4DD2-9E12-928DCA261263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88A04AB0-F61E-4DD2-9E12-928DCA261263}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88A04AB0-F61E-4DD2-9E12-928DCA261263}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88A04AB0-F61E-4DD2-9E12-928DCA261263}.Release|Any CPU.Build.0 = Release|Any CPU - {D8ADD095-F93D-4E76-92A8-6A7C698CBFE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8ADD095-F93D-4E76-92A8-6A7C698CBFE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8ADD095-F93D-4E76-92A8-6A7C698CBFE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8ADD095-F93D-4E76-92A8-6A7C698CBFE6}.Release|Any CPU.Build.0 = Release|Any CPU + {18FD488A-2A3F-4B40-B65D-7108688D350F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18FD488A-2A3F-4B40-B65D-7108688D350F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18FD488A-2A3F-4B40-B65D-7108688D350F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18FD488A-2A3F-4B40-B65D-7108688D350F}.Release|Any CPU.Build.0 = Release|Any CPU + {BC0B86CC-54C1-450F-A710-13A66571EEBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC0B86CC-54C1-450F-A710-13A66571EEBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC0B86CC-54C1-450F-A710-13A66571EEBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC0B86CC-54C1-450F-A710-13A66571EEBE}.Release|Any CPU.Build.0 = Release|Any CPU + {071FC282-9840-4920-B0FD-BE778449B5FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {071FC282-9840-4920-B0FD-BE778449B5FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {071FC282-9840-4920-B0FD-BE778449B5FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {071FC282-9840-4920-B0FD-BE778449B5FF}.Release|Any CPU.Build.0 = Release|Any CPU + {4EF591E4-175E-494D-8191-15C2D6C6E2E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EF591E4-175E-494D-8191-15C2D6C6E2E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EF591E4-175E-494D-8191-15C2D6C6E2E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EF591E4-175E-494D-8191-15C2D6C6E2E6}.Release|Any CPU.Build.0 = Release|Any CPU + {C0B560B2-72A0-41B2-82D5-34EF31719AD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0B560B2-72A0-41B2-82D5-34EF31719AD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0B560B2-72A0-41B2-82D5-34EF31719AD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0B560B2-72A0-41B2-82D5-34EF31719AD7}.Release|Any CPU.Build.0 = Release|Any CPU + {D7E6A261-C80A-4E51-BCDD-85DD595866B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7E6A261-C80A-4E51-BCDD-85DD595866B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7E6A261-C80A-4E51-BCDD-85DD595866B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7E6A261-C80A-4E51-BCDD-85DD595866B9}.Release|Any CPU.Build.0 = Release|Any CPU + {35D57A83-8A9D-4531-BF0D-EA1BCA62D475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35D57A83-8A9D-4531-BF0D-EA1BCA62D475}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35D57A83-8A9D-4531-BF0D-EA1BCA62D475}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35D57A83-8A9D-4531-BF0D-EA1BCA62D475}.Release|Any CPU.Build.0 = Release|Any CPU + {9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EB99AA1-EE31-41AC-B3E6-DCD7A01F17F2}.Release|Any CPU.Build.0 = Release|Any CPU + {3709D2F4-5495-447A-81D1-D022B5A22DF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3709D2F4-5495-447A-81D1-D022B5A22DF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3709D2F4-5495-447A-81D1-D022B5A22DF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3709D2F4-5495-447A-81D1-D022B5A22DF9}.Release|Any CPU.Build.0 = Release|Any CPU + {0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EB6C67A-FD15-48A6-A608-F7E27DA8DB7E}.Release|Any CPU.Build.0 = Release|Any CPU + {1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AC0BFF9-2F4E-4E6A-8A5A-89DFF3AE2C74}.Release|Any CPU.Build.0 = Release|Any CPU + {62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62B4CB1C-16EE-4B2F-9FF1-DF2770A056F9}.Release|Any CPU.Build.0 = Release|Any CPU + {37F8ED93-FD45-4941-B83E-84D278B8EA83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37F8ED93-FD45-4941-B83E-84D278B8EA83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37F8ED93-FD45-4941-B83E-84D278B8EA83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37F8ED93-FD45-4941-B83E-84D278B8EA83}.Release|Any CPU.Build.0 = Release|Any CPU + {87E03C4D-FFE2-43AD-9CFE-BB67A2448186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E03C4D-FFE2-43AD-9CFE-BB67A2448186}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E03C4D-FFE2-43AD-9CFE-BB67A2448186}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E03C4D-FFE2-43AD-9CFE-BB67A2448186}.Release|Any CPU.Build.0 = Release|Any CPU + {EAAF9D04-EB06-48C5-B678-662C777FBC7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAAF9D04-EB06-48C5-B678-662C777FBC7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAAF9D04-EB06-48C5-B678-662C777FBC7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAAF9D04-EB06-48C5-B678-662C777FBC7D}.Release|Any CPU.Build.0 = Release|Any CPU + {4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C5EE1EB-EACF-4A3A-88EC-CA7B3B7D50BA}.Release|Any CPU.Build.0 = Release|Any CPU + {F33F1171-273A-4BC3-B138-25E5E7118186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F33F1171-273A-4BC3-B138-25E5E7118186}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F33F1171-273A-4BC3-B138-25E5E7118186}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F33F1171-273A-4BC3-B138-25E5E7118186}.Release|Any CPU.Build.0 = Release|Any CPU + {83F2D6C4-C3C7-4428-A0CA-577162C5DBCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83F2D6C4-C3C7-4428-A0CA-577162C5DBCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83F2D6C4-C3C7-4428-A0CA-577162C5DBCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83F2D6C4-C3C7-4428-A0CA-577162C5DBCA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5915DD11-5D57-45A9-BFB0-56FEB7741E1F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D77FBA6C-1AA6-45A4-93E2-97A370672C53} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {88A04AB0-F61E-4DD2-9E12-928DCA261263} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {D8ADD095-F93D-4E76-92A8-6A7C698CBFE6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3A81CF9A-55BF-49C5-9B56-1ECA910D49BB} + SolutionGuid = {246C2EDA-448E-4E76-B97A-BD93DC6883A7} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.sln b/src/libraries/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.sln index 4e1ef312c081..ae222f7b4ed5 100644 --- a/src/libraries/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.sln +++ b/src/libraries/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo.Tests", "tests\System.IO.FileSystem.DriveInfo.Tests.csproj", "{7D9E5F2F-5677-40FC-AD04-FA7D603E4806}" - ProjectSection(ProjectDependencies) = postProject - {29C14AD7-DC03-45DC-897D-8DACC762707E} = {29C14AD7-DC03-45DC-897D-8DACC762707E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{414D74F9-9783-4B1D-9F14-4B2F873D16F3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo", "src\System.IO.FileSystem.DriveInfo.csproj", "{29C14AD7-DC03-45DC-897D-8DACC762707E}" - ProjectSection(ProjectDependencies) = postProject - {48CD5889-4CB2-42C2-A61C-8ECA3B267584} = {48CD5889-4CB2-42C2-A61C-8ECA3B267584} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{3972DF32-E184-47A8-ACEB-BE363237B00E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo", "ref\System.IO.FileSystem.DriveInfo.csproj", "{48CD5889-4CB2-42C2-A61C-8ECA3B267584}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo", "ref\System.IO.FileSystem.DriveInfo.csproj", "{8AF52F6B-61C2-4D23-A69C-6FCF8D138C58}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo", "src\System.IO.FileSystem.DriveInfo.csproj", "{03A51C60-B41B-409B-97AA-4084042C78D7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.DriveInfo.Tests", "tests\System.IO.FileSystem.DriveInfo.Tests.csproj", "{F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A0FB000A-C607-4CBB-9223-A5FCA85DF23F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{EBD959DC-A03A-4B65-ADDE-0963075AE1EA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E50759EE-662D-451E-95E9-0C2AE947ADDF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{FB10F6C2-3022-4BB6-A219-9C2730C9AD28}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EAF86847-0AC0-4BAC-875E-E2D9CFA8760C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{642A8704-8500-4900-8F4C-42E37AF892B9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1728C929-9945-4AC8-98B6-5D8C0B28A7A3}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {414D74F9-9783-4B1D-9F14-4B2F873D16F3} = {EAF86847-0AC0-4BAC-875E-E2D9CFA8760C} + {F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41} = {EAF86847-0AC0-4BAC-875E-E2D9CFA8760C} + {3972DF32-E184-47A8-ACEB-BE363237B00E} = {642A8704-8500-4900-8F4C-42E37AF892B9} + {8AF52F6B-61C2-4D23-A69C-6FCF8D138C58} = {642A8704-8500-4900-8F4C-42E37AF892B9} + {A0FB000A-C607-4CBB-9223-A5FCA85DF23F} = {642A8704-8500-4900-8F4C-42E37AF892B9} + {E50759EE-662D-451E-95E9-0C2AE947ADDF} = {642A8704-8500-4900-8F4C-42E37AF892B9} + {FB10F6C2-3022-4BB6-A219-9C2730C9AD28} = {642A8704-8500-4900-8F4C-42E37AF892B9} + {03A51C60-B41B-409B-97AA-4084042C78D7} = {1728C929-9945-4AC8-98B6-5D8C0B28A7A3} + {0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8} = {1728C929-9945-4AC8-98B6-5D8C0B28A7A3} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7D9E5F2F-5677-40FC-AD04-FA7D603E4806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D9E5F2F-5677-40FC-AD04-FA7D603E4806}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D9E5F2F-5677-40FC-AD04-FA7D603E4806}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D9E5F2F-5677-40FC-AD04-FA7D603E4806}.Release|Any CPU.Build.0 = Release|Any CPU - {29C14AD7-DC03-45DC-897D-8DACC762707E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29C14AD7-DC03-45DC-897D-8DACC762707E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29C14AD7-DC03-45DC-897D-8DACC762707E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29C14AD7-DC03-45DC-897D-8DACC762707E}.Release|Any CPU.Build.0 = Release|Any CPU - {48CD5889-4CB2-42C2-A61C-8ECA3B267584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48CD5889-4CB2-42C2-A61C-8ECA3B267584}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48CD5889-4CB2-42C2-A61C-8ECA3B267584}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48CD5889-4CB2-42C2-A61C-8ECA3B267584}.Release|Any CPU.Build.0 = Release|Any CPU - {EBD959DC-A03A-4B65-ADDE-0963075AE1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EBD959DC-A03A-4B65-ADDE-0963075AE1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EBD959DC-A03A-4B65-ADDE-0963075AE1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EBD959DC-A03A-4B65-ADDE-0963075AE1EA}.Release|Any CPU.Build.0 = Release|Any CPU + {414D74F9-9783-4B1D-9F14-4B2F873D16F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {414D74F9-9783-4B1D-9F14-4B2F873D16F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {414D74F9-9783-4B1D-9F14-4B2F873D16F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {414D74F9-9783-4B1D-9F14-4B2F873D16F3}.Release|Any CPU.Build.0 = Release|Any CPU + {3972DF32-E184-47A8-ACEB-BE363237B00E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3972DF32-E184-47A8-ACEB-BE363237B00E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3972DF32-E184-47A8-ACEB-BE363237B00E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3972DF32-E184-47A8-ACEB-BE363237B00E}.Release|Any CPU.Build.0 = Release|Any CPU + {8AF52F6B-61C2-4D23-A69C-6FCF8D138C58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AF52F6B-61C2-4D23-A69C-6FCF8D138C58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AF52F6B-61C2-4D23-A69C-6FCF8D138C58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AF52F6B-61C2-4D23-A69C-6FCF8D138C58}.Release|Any CPU.Build.0 = Release|Any CPU + {03A51C60-B41B-409B-97AA-4084042C78D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03A51C60-B41B-409B-97AA-4084042C78D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03A51C60-B41B-409B-97AA-4084042C78D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03A51C60-B41B-409B-97AA-4084042C78D7}.Release|Any CPU.Build.0 = Release|Any CPU + {F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F663AB41-D3C8-4DEB-BCCE-AD9322A3CE41}.Release|Any CPU.Build.0 = Release|Any CPU + {A0FB000A-C607-4CBB-9223-A5FCA85DF23F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0FB000A-C607-4CBB-9223-A5FCA85DF23F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0FB000A-C607-4CBB-9223-A5FCA85DF23F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0FB000A-C607-4CBB-9223-A5FCA85DF23F}.Release|Any CPU.Build.0 = Release|Any CPU + {0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DF4EEAD-A1DF-4543-98B0-8975CC1AC8C8}.Release|Any CPU.Build.0 = Release|Any CPU + {E50759EE-662D-451E-95E9-0C2AE947ADDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E50759EE-662D-451E-95E9-0C2AE947ADDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E50759EE-662D-451E-95E9-0C2AE947ADDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E50759EE-662D-451E-95E9-0C2AE947ADDF}.Release|Any CPU.Build.0 = Release|Any CPU + {FB10F6C2-3022-4BB6-A219-9C2730C9AD28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB10F6C2-3022-4BB6-A219-9C2730C9AD28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB10F6C2-3022-4BB6-A219-9C2730C9AD28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB10F6C2-3022-4BB6-A219-9C2730C9AD28}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7D9E5F2F-5677-40FC-AD04-FA7D603E4806} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {29C14AD7-DC03-45DC-897D-8DACC762707E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {48CD5889-4CB2-42C2-A61C-8ECA3B267584} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {EBD959DC-A03A-4B65-ADDE-0963075AE1EA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FA9C1576-C430-4251-8153-E1973650E1A1} + SolutionGuid = {AF704C7D-836B-41D4-919E-B0874D934A08} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.sln b/src/libraries/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.sln index 227ff28795df..9da8af5615b7 100644 --- a/src/libraries/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.sln +++ b/src/libraries/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives.Tests", "tests\System.IO.FileSystem.Primitives.Tests.csproj", "{2EF7EFA5-F171-4CAB-8A29-32833949FD87}" - ProjectSection(ProjectDependencies) = postProject - {6C05678E-394C-4CFF-B453-A18E28C8F2C3} = {6C05678E-394C-4CFF-B453-A18E28C8F2C3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0DF82830-45C1-453B-9436-C5A8FECE7110}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives", "src\System.IO.FileSystem.Primitives.csproj", "{6C05678E-394C-4CFF-B453-A18E28C8F2C3}" - ProjectSection(ProjectDependencies) = postProject - {45201E24-47CD-47AE-9350-B48C3FBE74EC} = {45201E24-47CD-47AE-9350-B48C3FBE74EC} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{15A7688F-E2A6-4240-BCD7-727F547E651D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives", "ref\System.IO.FileSystem.Primitives.csproj", "{45201E24-47CD-47AE-9350-B48C3FBE74EC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives", "ref\System.IO.FileSystem.Primitives.csproj", "{08B0A52E-C11E-4F88-957E-561E8E3621EE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives", "src\System.IO.FileSystem.Primitives.csproj", "{F0212CB8-23E6-4D89-A90E-C6F820778F53}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Primitives.Tests", "tests\System.IO.FileSystem.Primitives.Tests.csproj", "{AA882A52-10CB-4272-BF22-A7964627E266}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3359691A-F781-449B-9DAA-5D45122859BB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5AB142C5-28CB-4FF1-BDCA-602486B9E87C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8CF7699F-EE9B-455A-874A-3D7757664F54}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{DDC23A6A-1C86-4F85-9F30-03137B5BA840}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1078610D-240D-48C1-917F-0D2564D4080F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D4E612B8-AAB2-43F5-847E-0D9ED42E8B06}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0943B3EB-BC14-47BF-A24E-A0B867717B4E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0DF82830-45C1-453B-9436-C5A8FECE7110} = {1078610D-240D-48C1-917F-0D2564D4080F} + {AA882A52-10CB-4272-BF22-A7964627E266} = {1078610D-240D-48C1-917F-0D2564D4080F} + {15A7688F-E2A6-4240-BCD7-727F547E651D} = {D4E612B8-AAB2-43F5-847E-0D9ED42E8B06} + {08B0A52E-C11E-4F88-957E-561E8E3621EE} = {D4E612B8-AAB2-43F5-847E-0D9ED42E8B06} + {3359691A-F781-449B-9DAA-5D45122859BB} = {D4E612B8-AAB2-43F5-847E-0D9ED42E8B06} + {8CF7699F-EE9B-455A-874A-3D7757664F54} = {D4E612B8-AAB2-43F5-847E-0D9ED42E8B06} + {DDC23A6A-1C86-4F85-9F30-03137B5BA840} = {D4E612B8-AAB2-43F5-847E-0D9ED42E8B06} + {F0212CB8-23E6-4D89-A90E-C6F820778F53} = {0943B3EB-BC14-47BF-A24E-A0B867717B4E} + {5AB142C5-28CB-4FF1-BDCA-602486B9E87C} = {0943B3EB-BC14-47BF-A24E-A0B867717B4E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2EF7EFA5-F171-4CAB-8A29-32833949FD87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2EF7EFA5-F171-4CAB-8A29-32833949FD87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2EF7EFA5-F171-4CAB-8A29-32833949FD87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2EF7EFA5-F171-4CAB-8A29-32833949FD87}.Release|Any CPU.Build.0 = Release|Any CPU - {6C05678E-394C-4CFF-B453-A18E28C8F2C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C05678E-394C-4CFF-B453-A18E28C8F2C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C05678E-394C-4CFF-B453-A18E28C8F2C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C05678E-394C-4CFF-B453-A18E28C8F2C3}.Release|Any CPU.Build.0 = Release|Any CPU - {45201E24-47CD-47AE-9350-B48C3FBE74EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45201E24-47CD-47AE-9350-B48C3FBE74EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {45201E24-47CD-47AE-9350-B48C3FBE74EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45201E24-47CD-47AE-9350-B48C3FBE74EC}.Release|Any CPU.Build.0 = Release|Any CPU - {B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224}.Release|Any CPU.Build.0 = Release|Any CPU + {0DF82830-45C1-453B-9436-C5A8FECE7110}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DF82830-45C1-453B-9436-C5A8FECE7110}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DF82830-45C1-453B-9436-C5A8FECE7110}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DF82830-45C1-453B-9436-C5A8FECE7110}.Release|Any CPU.Build.0 = Release|Any CPU + {15A7688F-E2A6-4240-BCD7-727F547E651D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15A7688F-E2A6-4240-BCD7-727F547E651D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15A7688F-E2A6-4240-BCD7-727F547E651D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15A7688F-E2A6-4240-BCD7-727F547E651D}.Release|Any CPU.Build.0 = Release|Any CPU + {08B0A52E-C11E-4F88-957E-561E8E3621EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08B0A52E-C11E-4F88-957E-561E8E3621EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08B0A52E-C11E-4F88-957E-561E8E3621EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08B0A52E-C11E-4F88-957E-561E8E3621EE}.Release|Any CPU.Build.0 = Release|Any CPU + {F0212CB8-23E6-4D89-A90E-C6F820778F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0212CB8-23E6-4D89-A90E-C6F820778F53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0212CB8-23E6-4D89-A90E-C6F820778F53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0212CB8-23E6-4D89-A90E-C6F820778F53}.Release|Any CPU.Build.0 = Release|Any CPU + {AA882A52-10CB-4272-BF22-A7964627E266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA882A52-10CB-4272-BF22-A7964627E266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA882A52-10CB-4272-BF22-A7964627E266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA882A52-10CB-4272-BF22-A7964627E266}.Release|Any CPU.Build.0 = Release|Any CPU + {3359691A-F781-449B-9DAA-5D45122859BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3359691A-F781-449B-9DAA-5D45122859BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3359691A-F781-449B-9DAA-5D45122859BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3359691A-F781-449B-9DAA-5D45122859BB}.Release|Any CPU.Build.0 = Release|Any CPU + {5AB142C5-28CB-4FF1-BDCA-602486B9E87C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AB142C5-28CB-4FF1-BDCA-602486B9E87C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AB142C5-28CB-4FF1-BDCA-602486B9E87C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AB142C5-28CB-4FF1-BDCA-602486B9E87C}.Release|Any CPU.Build.0 = Release|Any CPU + {8CF7699F-EE9B-455A-874A-3D7757664F54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CF7699F-EE9B-455A-874A-3D7757664F54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CF7699F-EE9B-455A-874A-3D7757664F54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CF7699F-EE9B-455A-874A-3D7757664F54}.Release|Any CPU.Build.0 = Release|Any CPU + {DDC23A6A-1C86-4F85-9F30-03137B5BA840}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDC23A6A-1C86-4F85-9F30-03137B5BA840}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDC23A6A-1C86-4F85-9F30-03137B5BA840}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDC23A6A-1C86-4F85-9F30-03137B5BA840}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2EF7EFA5-F171-4CAB-8A29-32833949FD87} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6C05678E-394C-4CFF-B453-A18E28C8F2C3} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {45201E24-47CD-47AE-9350-B48C3FBE74EC} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B6EB5E0A-FF03-42B9-8006-BF6C8FCBC224} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {878FD5EE-DBF9-4BE8-AAD0-ECE24BE09931} + SolutionGuid = {7C05E00F-F058-4C38-8E8B-3B00E8829E82} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.sln b/src/libraries/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.sln index b5e711f32319..c8640b1f13de 100644 --- a/src/libraries/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.sln +++ b/src/libraries/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher.Tests", "tests\System.IO.FileSystem.Watcher.Tests.csproj", "{20411A66-C7A4-4941-8FA2-66308365FD22}" - ProjectSection(ProjectDependencies) = postProject - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED} = {77E702D9-C6D8-4CE4-9941-D3056C3CCBED} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3306C0C4-8CD3-4952-9DBC-E8A8FDECA446}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher", "src\System.IO.FileSystem.Watcher.csproj", "{77E702D9-C6D8-4CE4-9941-D3056C3CCBED}" - ProjectSection(ProjectDependencies) = postProject - {34E2C0E2-6C09-427D-BB75-702B3388CFC5} = {34E2C0E2-6C09-427D-BB75-702B3388CFC5} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{BDB2BA99-9076-4548-9048-D41567B2F704}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher", "ref\System.IO.FileSystem.Watcher.csproj", "{34E2C0E2-6C09-427D-BB75-702B3388CFC5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher", "ref\System.IO.FileSystem.Watcher.csproj", "{318B6BCF-3AB6-40A7-B16A-E40EA4F3B202}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher", "src\System.IO.FileSystem.Watcher.csproj", "{310BA7DB-1A9E-46E1-B414-606474FFFFFA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Watcher.Tests", "tests\System.IO.FileSystem.Watcher.Tests.csproj", "{8928F2EE-437E-4AB8-9038-077179F37939}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1D98691D-E3BD-483A-B449-F8F875A0BC0B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2544D517-0C81-48BC-9915-DE9131114FE9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BB57F4F3-0519-4846-8CEC-04D2D2CFE144}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{DD3C3047-8C29-48CD-9C4C-4770428BD41B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{7CB0CA90-66A1-4FE3-BB81-3C56152971CB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EC2A6842-5A52-4E74-A46E-8D66C730C5E9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{50878232-5872-425B-8CFF-5D500B631E87}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9625F374-051D-4C97-8F2E-89B60E30346E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {3306C0C4-8CD3-4952-9DBC-E8A8FDECA446} = {EC2A6842-5A52-4E74-A46E-8D66C730C5E9} + {8928F2EE-437E-4AB8-9038-077179F37939} = {EC2A6842-5A52-4E74-A46E-8D66C730C5E9} + {BDB2BA99-9076-4548-9048-D41567B2F704} = {50878232-5872-425B-8CFF-5D500B631E87} + {318B6BCF-3AB6-40A7-B16A-E40EA4F3B202} = {50878232-5872-425B-8CFF-5D500B631E87} + {1D98691D-E3BD-483A-B449-F8F875A0BC0B} = {50878232-5872-425B-8CFF-5D500B631E87} + {DD3C3047-8C29-48CD-9C4C-4770428BD41B} = {50878232-5872-425B-8CFF-5D500B631E87} + {7CB0CA90-66A1-4FE3-BB81-3C56152971CB} = {50878232-5872-425B-8CFF-5D500B631E87} + {310BA7DB-1A9E-46E1-B414-606474FFFFFA} = {9625F374-051D-4C97-8F2E-89B60E30346E} + {BB57F4F3-0519-4846-8CEC-04D2D2CFE144} = {9625F374-051D-4C97-8F2E-89B60E30346E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {20411A66-C7A4-4941-8FA2-66308365FD22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20411A66-C7A4-4941-8FA2-66308365FD22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20411A66-C7A4-4941-8FA2-66308365FD22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20411A66-C7A4-4941-8FA2-66308365FD22}.Release|Any CPU.Build.0 = Release|Any CPU - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED}.Release|Any CPU.Build.0 = Release|Any CPU - {34E2C0E2-6C09-427D-BB75-702B3388CFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34E2C0E2-6C09-427D-BB75-702B3388CFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34E2C0E2-6C09-427D-BB75-702B3388CFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34E2C0E2-6C09-427D-BB75-702B3388CFC5}.Release|Any CPU.Build.0 = Release|Any CPU - {2544D517-0C81-48BC-9915-DE9131114FE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2544D517-0C81-48BC-9915-DE9131114FE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2544D517-0C81-48BC-9915-DE9131114FE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2544D517-0C81-48BC-9915-DE9131114FE9}.Release|Any CPU.Build.0 = Release|Any CPU + {3306C0C4-8CD3-4952-9DBC-E8A8FDECA446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3306C0C4-8CD3-4952-9DBC-E8A8FDECA446}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3306C0C4-8CD3-4952-9DBC-E8A8FDECA446}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3306C0C4-8CD3-4952-9DBC-E8A8FDECA446}.Release|Any CPU.Build.0 = Release|Any CPU + {BDB2BA99-9076-4548-9048-D41567B2F704}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDB2BA99-9076-4548-9048-D41567B2F704}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDB2BA99-9076-4548-9048-D41567B2F704}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDB2BA99-9076-4548-9048-D41567B2F704}.Release|Any CPU.Build.0 = Release|Any CPU + {318B6BCF-3AB6-40A7-B16A-E40EA4F3B202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {318B6BCF-3AB6-40A7-B16A-E40EA4F3B202}.Debug|Any CPU.Build.0 = Debug|Any CPU + {318B6BCF-3AB6-40A7-B16A-E40EA4F3B202}.Release|Any CPU.ActiveCfg = Release|Any CPU + {318B6BCF-3AB6-40A7-B16A-E40EA4F3B202}.Release|Any CPU.Build.0 = Release|Any CPU + {310BA7DB-1A9E-46E1-B414-606474FFFFFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {310BA7DB-1A9E-46E1-B414-606474FFFFFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {310BA7DB-1A9E-46E1-B414-606474FFFFFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {310BA7DB-1A9E-46E1-B414-606474FFFFFA}.Release|Any CPU.Build.0 = Release|Any CPU + {8928F2EE-437E-4AB8-9038-077179F37939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8928F2EE-437E-4AB8-9038-077179F37939}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8928F2EE-437E-4AB8-9038-077179F37939}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8928F2EE-437E-4AB8-9038-077179F37939}.Release|Any CPU.Build.0 = Release|Any CPU + {1D98691D-E3BD-483A-B449-F8F875A0BC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D98691D-E3BD-483A-B449-F8F875A0BC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D98691D-E3BD-483A-B449-F8F875A0BC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D98691D-E3BD-483A-B449-F8F875A0BC0B}.Release|Any CPU.Build.0 = Release|Any CPU + {BB57F4F3-0519-4846-8CEC-04D2D2CFE144}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB57F4F3-0519-4846-8CEC-04D2D2CFE144}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB57F4F3-0519-4846-8CEC-04D2D2CFE144}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB57F4F3-0519-4846-8CEC-04D2D2CFE144}.Release|Any CPU.Build.0 = Release|Any CPU + {DD3C3047-8C29-48CD-9C4C-4770428BD41B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD3C3047-8C29-48CD-9C4C-4770428BD41B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD3C3047-8C29-48CD-9C4C-4770428BD41B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD3C3047-8C29-48CD-9C4C-4770428BD41B}.Release|Any CPU.Build.0 = Release|Any CPU + {7CB0CA90-66A1-4FE3-BB81-3C56152971CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CB0CA90-66A1-4FE3-BB81-3C56152971CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CB0CA90-66A1-4FE3-BB81-3C56152971CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CB0CA90-66A1-4FE3-BB81-3C56152971CB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {20411A66-C7A4-4941-8FA2-66308365FD22} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {77E702D9-C6D8-4CE4-9941-D3056C3CCBED} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {34E2C0E2-6C09-427D-BB75-702B3388CFC5} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {2544D517-0C81-48BC-9915-DE9131114FE9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7F6EB125-D870-43DA-9A82-6792C1031754} + SolutionGuid = {C3D76AA3-27C1-48BF-9474-42E0495BA814} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.FileSystem/System.IO.FileSystem.sln b/src/libraries/System.IO.FileSystem/System.IO.FileSystem.sln index 3d4bdc1f490f..4c3dc58180ee 100644 --- a/src/libraries/System.IO.FileSystem/System.IO.FileSystem.sln +++ b/src/libraries/System.IO.FileSystem/System.IO.FileSystem.sln @@ -1,66 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Tests", "tests\System.IO.FileSystem.Tests.csproj", "{F0D49126-6A1C-42D5-9428-4374C868BAF8}" - ProjectSection(ProjectDependencies) = postProject - {1B528B61-14F9-4BFC-A79A-F0BDB3339150} = {1B528B61-14F9-4BFC-A79A-F0BDB3339150} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D350D6E7-52F1-40A4-B646-C178F6BBB689}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "src\System.IO.FileSystem.csproj", "{1B528B61-14F9-4BFC-A79A-F0BDB3339150}" - ProjectSection(ProjectDependencies) = postProject - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482} = {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{A2A52059-8079-48AF-AF50-9FA2DC962B21}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "ref\System.IO.FileSystem.csproj", "{4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "ref\System.IO.FileSystem.csproj", "{E4865620-8109-42F9-B1FE-B38C6CA1A3A0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem", "src\System.IO.FileSystem.csproj", "{877E39A8-51CB-463A-AF4C-6FAE4F438075}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Manual.Tests", "tests\ManualTests\System.IO.FileSystem.Manual.Tests.csproj", "{534152EB-14A8-4EF4-B181-342A555337F1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.Tests", "tests\System.IO.FileSystem.Tests.csproj", "{3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{66810085-C596-4ED4-ACEE-C939CBD55C4E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{79A74577-C550-4264-B352-51D304796B89}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.IO.FileSystem.ManualTests", "tests\ManualTests\System.IO.FileSystem.Manual.Tests.csproj", "{70FA2031-8D6E-4127-901E-2B0D90420E08}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{D7DF8034-3AE5-4DEF-BCC4-6353239391BF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A727AF9-4F39-4109-BB8F-813286031DC9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{32A31E04-2554-4223-BED8-45757408B4F6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D9FB1730-B750-4C0D-8D24-8C992DEB6034}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D350D6E7-52F1-40A4-B646-C178F6BBB689} = {1A727AF9-4F39-4109-BB8F-813286031DC9} + {534152EB-14A8-4EF4-B181-342A555337F1} = {1A727AF9-4F39-4109-BB8F-813286031DC9} + {3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B} = {1A727AF9-4F39-4109-BB8F-813286031DC9} + {A2A52059-8079-48AF-AF50-9FA2DC962B21} = {32A31E04-2554-4223-BED8-45757408B4F6} + {E4865620-8109-42F9-B1FE-B38C6CA1A3A0} = {32A31E04-2554-4223-BED8-45757408B4F6} + {79A74577-C550-4264-B352-51D304796B89} = {32A31E04-2554-4223-BED8-45757408B4F6} + {CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3} = {32A31E04-2554-4223-BED8-45757408B4F6} + {06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C} = {32A31E04-2554-4223-BED8-45757408B4F6} + {877E39A8-51CB-463A-AF4C-6FAE4F438075} = {D9FB1730-B750-4C0D-8D24-8C992DEB6034} + {D7DF8034-3AE5-4DEF-BCC4-6353239391BF} = {D9FB1730-B750-4C0D-8D24-8C992DEB6034} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0D49126-6A1C-42D5-9428-4374C868BAF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0D49126-6A1C-42D5-9428-4374C868BAF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0D49126-6A1C-42D5-9428-4374C868BAF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0D49126-6A1C-42D5-9428-4374C868BAF8}.Release|Any CPU.Build.0 = Release|Any CPU - {1B528B61-14F9-4BFC-A79A-F0BDB3339150}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B528B61-14F9-4BFC-A79A-F0BDB3339150}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1B528B61-14F9-4BFC-A79A-F0BDB3339150}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B528B61-14F9-4BFC-A79A-F0BDB3339150}.Release|Any CPU.Build.0 = Release|Any CPU - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482}.Release|Any CPU.Build.0 = Release|Any CPU - {66810085-C596-4ED4-ACEE-C939CBD55C4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66810085-C596-4ED4-ACEE-C939CBD55C4E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66810085-C596-4ED4-ACEE-C939CBD55C4E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66810085-C596-4ED4-ACEE-C939CBD55C4E}.Release|Any CPU.Build.0 = Release|Any CPU - {70FA2031-8D6E-4127-901E-2B0D90420E08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70FA2031-8D6E-4127-901E-2B0D90420E08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70FA2031-8D6E-4127-901E-2B0D90420E08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70FA2031-8D6E-4127-901E-2B0D90420E08}.Release|Any CPU.Build.0 = Release|Any CPU + {D350D6E7-52F1-40A4-B646-C178F6BBB689}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D350D6E7-52F1-40A4-B646-C178F6BBB689}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D350D6E7-52F1-40A4-B646-C178F6BBB689}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D350D6E7-52F1-40A4-B646-C178F6BBB689}.Release|Any CPU.Build.0 = Release|Any CPU + {A2A52059-8079-48AF-AF50-9FA2DC962B21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2A52059-8079-48AF-AF50-9FA2DC962B21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2A52059-8079-48AF-AF50-9FA2DC962B21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2A52059-8079-48AF-AF50-9FA2DC962B21}.Release|Any CPU.Build.0 = Release|Any CPU + {E4865620-8109-42F9-B1FE-B38C6CA1A3A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4865620-8109-42F9-B1FE-B38C6CA1A3A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4865620-8109-42F9-B1FE-B38C6CA1A3A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4865620-8109-42F9-B1FE-B38C6CA1A3A0}.Release|Any CPU.Build.0 = Release|Any CPU + {877E39A8-51CB-463A-AF4C-6FAE4F438075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {877E39A8-51CB-463A-AF4C-6FAE4F438075}.Debug|Any CPU.Build.0 = Debug|Any CPU + {877E39A8-51CB-463A-AF4C-6FAE4F438075}.Release|Any CPU.ActiveCfg = Release|Any CPU + {877E39A8-51CB-463A-AF4C-6FAE4F438075}.Release|Any CPU.Build.0 = Release|Any CPU + {534152EB-14A8-4EF4-B181-342A555337F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {534152EB-14A8-4EF4-B181-342A555337F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {534152EB-14A8-4EF4-B181-342A555337F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {534152EB-14A8-4EF4-B181-342A555337F1}.Release|Any CPU.Build.0 = Release|Any CPU + {3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A8E16D3-8A22-4076-BB48-2CD1FBFAF81B}.Release|Any CPU.Build.0 = Release|Any CPU + {79A74577-C550-4264-B352-51D304796B89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79A74577-C550-4264-B352-51D304796B89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79A74577-C550-4264-B352-51D304796B89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79A74577-C550-4264-B352-51D304796B89}.Release|Any CPU.Build.0 = Release|Any CPU + {D7DF8034-3AE5-4DEF-BCC4-6353239391BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7DF8034-3AE5-4DEF-BCC4-6353239391BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7DF8034-3AE5-4DEF-BCC4-6353239391BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7DF8034-3AE5-4DEF-BCC4-6353239391BF}.Release|Any CPU.Build.0 = Release|Any CPU + {CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCB1259A-1BCD-40CA-8FC2-2720BE4D00F3}.Release|Any CPU.Build.0 = Release|Any CPU + {06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06DD5AA8-FDA6-495B-A8D1-8CE83C78DE6C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F0D49126-6A1C-42D5-9428-4374C868BAF8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1B528B61-14F9-4BFC-A79A-F0BDB3339150} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4B15C12E-B6AB-4B05-8ECA-C2E2AEA67482} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {66810085-C596-4ED4-ACEE-C939CBD55C4E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9BEAA279-BD7B-42E8-91C5-519267FEB4BB} + SolutionGuid = {320D63B0-B2D5-467B-92EC-1E2240B90263} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.IsolatedStorage/System.IO.IsolatedStorage.sln b/src/libraries/System.IO.IsolatedStorage/System.IO.IsolatedStorage.sln index 28752f5559bf..e6ed0fca88d0 100644 --- a/src/libraries/System.IO.IsolatedStorage/System.IO.IsolatedStorage.sln +++ b/src/libraries/System.IO.IsolatedStorage/System.IO.IsolatedStorage.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage.Tests", "tests\System.IO.IsolatedStorage.Tests.csproj", "{BF4F9507-8FBD-45EA-81C9-3ED89C052C91}" - ProjectSection(ProjectDependencies) = postProject - {FAF5D1E4-BA43-4663-8429-C069066D75CB} = {FAF5D1E4-BA43-4663-8429-C069066D75CB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{16B2F442-5A88-4C59-A9FE-AB4357D3E657}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage", "src\System.IO.IsolatedStorage.csproj", "{FAF5D1E4-BA43-4663-8429-C069066D75CB}" - ProjectSection(ProjectDependencies) = postProject - {750200D5-661A-42AA-9E1F-2A151F5AEE74} = {750200D5-661A-42AA-9E1F-2A151F5AEE74} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{45442F29-2605-43C4-BED3-0ADCEE93FDD1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage", "ref\System.IO.IsolatedStorage.csproj", "{750200D5-661A-42AA-9E1F-2A151F5AEE74}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{CBD0D70E-1470-43BF-BE8D-59756A3A2364}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{5F6B682F-9901-475B-8E81-F3B19E0D3DA4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{C97D00DE-DB94-4FFD-BC00-7432858602A6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{BA259C30-B614-48A6-B980-848FA2F86795}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{CFEAF957-2926-44F8-8F50-A362BF4A38C7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage", "ref\System.IO.IsolatedStorage.csproj", "{CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage", "src\System.IO.IsolatedStorage.csproj", "{D9ACE205-2927-4D66-8E6F-D2C1E6E6239D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.IsolatedStorage.Tests", "tests\System.IO.IsolatedStorage.Tests.csproj", "{88125FEA-D679-4A1A-8736-A18EC13AFC75}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{580DE958-E1CD-4DF9-B225-671E5447DD09}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{9A77FB40-0BE3-4A7B-B147-374D186226DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{94E1FBF3-D07E-42CC-BDE9-195068C29632}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{2C9EFD7A-F153-47BF-B2E6-73094696DF45}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{69473F4F-C67A-47B7-9085-1B3254BDB179}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0B89067B-7875-4F45-A2E6-D15A98C3310A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EB877145-22F1-4F66-80EE-26E37115FC7E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {16B2F442-5A88-4C59-A9FE-AB4357D3E657} = {69473F4F-C67A-47B7-9085-1B3254BDB179} + {88125FEA-D679-4A1A-8736-A18EC13AFC75} = {69473F4F-C67A-47B7-9085-1B3254BDB179} + {45442F29-2605-43C4-BED3-0ADCEE93FDD1} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {CBD0D70E-1470-43BF-BE8D-59756A3A2364} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {5F6B682F-9901-475B-8E81-F3B19E0D3DA4} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {C97D00DE-DB94-4FFD-BC00-7432858602A6} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {94E1FBF3-D07E-42CC-BDE9-195068C29632} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA} = {0B89067B-7875-4F45-A2E6-D15A98C3310A} + {3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {CFEAF957-2926-44F8-8F50-A362BF4A38C7} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {D9ACE205-2927-4D66-8E6F-D2C1E6E6239D} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {580DE958-E1CD-4DF9-B225-671E5447DD09} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {9A77FB40-0BE3-4A7B-B147-374D186226DB} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + {2C9EFD7A-F153-47BF-B2E6-73094696DF45} = {EB877145-22F1-4F66-80EE-26E37115FC7E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BF4F9507-8FBD-45EA-81C9-3ED89C052C91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF4F9507-8FBD-45EA-81C9-3ED89C052C91}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF4F9507-8FBD-45EA-81C9-3ED89C052C91}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF4F9507-8FBD-45EA-81C9-3ED89C052C91}.Release|Any CPU.Build.0 = Release|Any CPU - {FAF5D1E4-BA43-4663-8429-C069066D75CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FAF5D1E4-BA43-4663-8429-C069066D75CB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FAF5D1E4-BA43-4663-8429-C069066D75CB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FAF5D1E4-BA43-4663-8429-C069066D75CB}.Release|Any CPU.Build.0 = Release|Any CPU - {750200D5-661A-42AA-9E1F-2A151F5AEE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {750200D5-661A-42AA-9E1F-2A151F5AEE74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {750200D5-661A-42AA-9E1F-2A151F5AEE74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {750200D5-661A-42AA-9E1F-2A151F5AEE74}.Release|Any CPU.Build.0 = Release|Any CPU - {BA259C30-B614-48A6-B980-848FA2F86795}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA259C30-B614-48A6-B980-848FA2F86795}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA259C30-B614-48A6-B980-848FA2F86795}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA259C30-B614-48A6-B980-848FA2F86795}.Release|Any CPU.Build.0 = Release|Any CPU + {16B2F442-5A88-4C59-A9FE-AB4357D3E657}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16B2F442-5A88-4C59-A9FE-AB4357D3E657}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16B2F442-5A88-4C59-A9FE-AB4357D3E657}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16B2F442-5A88-4C59-A9FE-AB4357D3E657}.Release|Any CPU.Build.0 = Release|Any CPU + {45442F29-2605-43C4-BED3-0ADCEE93FDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45442F29-2605-43C4-BED3-0ADCEE93FDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45442F29-2605-43C4-BED3-0ADCEE93FDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45442F29-2605-43C4-BED3-0ADCEE93FDD1}.Release|Any CPU.Build.0 = Release|Any CPU + {CBD0D70E-1470-43BF-BE8D-59756A3A2364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBD0D70E-1470-43BF-BE8D-59756A3A2364}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBD0D70E-1470-43BF-BE8D-59756A3A2364}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBD0D70E-1470-43BF-BE8D-59756A3A2364}.Release|Any CPU.Build.0 = Release|Any CPU + {3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AFF1901-8D72-43CF-AFE2-0F8A5CFD5C3F}.Release|Any CPU.Build.0 = Release|Any CPU + {5F6B682F-9901-475B-8E81-F3B19E0D3DA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F6B682F-9901-475B-8E81-F3B19E0D3DA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F6B682F-9901-475B-8E81-F3B19E0D3DA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F6B682F-9901-475B-8E81-F3B19E0D3DA4}.Release|Any CPU.Build.0 = Release|Any CPU + {C97D00DE-DB94-4FFD-BC00-7432858602A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C97D00DE-DB94-4FFD-BC00-7432858602A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C97D00DE-DB94-4FFD-BC00-7432858602A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C97D00DE-DB94-4FFD-BC00-7432858602A6}.Release|Any CPU.Build.0 = Release|Any CPU + {CFEAF957-2926-44F8-8F50-A362BF4A38C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFEAF957-2926-44F8-8F50-A362BF4A38C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFEAF957-2926-44F8-8F50-A362BF4A38C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFEAF957-2926-44F8-8F50-A362BF4A38C7}.Release|Any CPU.Build.0 = Release|Any CPU + {CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB10AFC2-FC8C-49B4-9BB1-6410E4D3A30A}.Release|Any CPU.Build.0 = Release|Any CPU + {D9ACE205-2927-4D66-8E6F-D2C1E6E6239D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9ACE205-2927-4D66-8E6F-D2C1E6E6239D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9ACE205-2927-4D66-8E6F-D2C1E6E6239D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9ACE205-2927-4D66-8E6F-D2C1E6E6239D}.Release|Any CPU.Build.0 = Release|Any CPU + {88125FEA-D679-4A1A-8736-A18EC13AFC75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88125FEA-D679-4A1A-8736-A18EC13AFC75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88125FEA-D679-4A1A-8736-A18EC13AFC75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88125FEA-D679-4A1A-8736-A18EC13AFC75}.Release|Any CPU.Build.0 = Release|Any CPU + {DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DCFC9811-7DBF-47DA-BD68-2E8EEC33F7EE}.Release|Any CPU.Build.0 = Release|Any CPU + {580DE958-E1CD-4DF9-B225-671E5447DD09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {580DE958-E1CD-4DF9-B225-671E5447DD09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {580DE958-E1CD-4DF9-B225-671E5447DD09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {580DE958-E1CD-4DF9-B225-671E5447DD09}.Release|Any CPU.Build.0 = Release|Any CPU + {3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3665C7DC-78BA-46F4-B9EC-0EF11A1F6E4C}.Release|Any CPU.Build.0 = Release|Any CPU + {9A77FB40-0BE3-4A7B-B147-374D186226DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A77FB40-0BE3-4A7B-B147-374D186226DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A77FB40-0BE3-4A7B-B147-374D186226DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A77FB40-0BE3-4A7B-B147-374D186226DB}.Release|Any CPU.Build.0 = Release|Any CPU + {94E1FBF3-D07E-42CC-BDE9-195068C29632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94E1FBF3-D07E-42CC-BDE9-195068C29632}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94E1FBF3-D07E-42CC-BDE9-195068C29632}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94E1FBF3-D07E-42CC-BDE9-195068C29632}.Release|Any CPU.Build.0 = Release|Any CPU + {05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05F3ED11-AB8C-47EA-BEB8-BB25FF5BC2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04B37BF3-6DB0-4C49-90F0-DCFAD18AF0B8}.Release|Any CPU.Build.0 = Release|Any CPU + {78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78CF8F5B-3B0F-4DED-8669-F1C5DDB7141A}.Release|Any CPU.Build.0 = Release|Any CPU + {57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57DD5F0B-1CEE-4B33-9955-5CE4893EEFEA}.Release|Any CPU.Build.0 = Release|Any CPU + {2C9EFD7A-F153-47BF-B2E6-73094696DF45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C9EFD7A-F153-47BF-B2E6-73094696DF45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C9EFD7A-F153-47BF-B2E6-73094696DF45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C9EFD7A-F153-47BF-B2E6-73094696DF45}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BF4F9507-8FBD-45EA-81C9-3ED89C052C91} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FAF5D1E4-BA43-4663-8429-C069066D75CB} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {750200D5-661A-42AA-9E1F-2A151F5AEE74} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {BA259C30-B614-48A6-B980-848FA2F86795} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B771C8B1-8D0C-4DF8-95F5-9CFD75660C47} + SolutionGuid = {C61D5D56-FD5E-4BF4-89D0-E7A23AE83333} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.sln b/src/libraries/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.sln index 0e627a43b93f..e076fb7560c8 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.sln +++ b/src/libraries/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles.Tests", "tests\System.IO.MemoryMappedFiles.Tests.csproj", "{9D6F6254-B5A3-40FF-8925-68AA8D1CE933}" - ProjectSection(ProjectDependencies) = postProject - {16EE5522-F387-4C9E-9EF2-B5134B043F37} = {16EE5522-F387-4C9E-9EF2-B5134B043F37} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{53746669-11C3-4DA9-B9C3-4CA0B79D4712}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles", "src\System.IO.MemoryMappedFiles.csproj", "{16EE5522-F387-4C9E-9EF2-B5134B043F37}" - ProjectSection(ProjectDependencies) = postProject - {F2740000-E771-4E54-9287-5A1FDF8872F4} = {F2740000-E771-4E54-9287-5A1FDF8872F4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{95A43A96-F52F-4B2B-9001-4429CB66DFAC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles", "ref\System.IO.MemoryMappedFiles.csproj", "{F2740000-E771-4E54-9287-5A1FDF8872F4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles", "ref\System.IO.MemoryMappedFiles.csproj", "{F4ACA509-281C-43DA-A57D-52D9913321AE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles", "src\System.IO.MemoryMappedFiles.csproj", "{4A95E6CD-A466-46BC-A6C7-C65DA45B3388}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.MemoryMappedFiles.Tests", "tests\System.IO.MemoryMappedFiles.Tests.csproj", "{AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8B9258B7-1C54-4FFE-9512-2B7323AEF92A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F33E1C94-7132-446D-9543-4818C8F89E76}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{4B990529-DAA4-4AEC-A625-FDCA3EF64E25}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F2392763-FAC4-4686-B695-95F7A2C94E39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F575F018-E80D-486C-9A5D-ED299C2FF727}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB54211-C340-44ED-9957-0E8EDD46B78E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{714A3F0B-91A5-4B04-981C-C60C8AC86AF8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E7BD0095-6A5F-49A8-9D05-703DB8783948}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {53746669-11C3-4DA9-B9C3-4CA0B79D4712} = {0AB54211-C340-44ED-9957-0E8EDD46B78E} + {AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860} = {0AB54211-C340-44ED-9957-0E8EDD46B78E} + {95A43A96-F52F-4B2B-9001-4429CB66DFAC} = {714A3F0B-91A5-4B04-981C-C60C8AC86AF8} + {F4ACA509-281C-43DA-A57D-52D9913321AE} = {714A3F0B-91A5-4B04-981C-C60C8AC86AF8} + {8B9258B7-1C54-4FFE-9512-2B7323AEF92A} = {714A3F0B-91A5-4B04-981C-C60C8AC86AF8} + {F2392763-FAC4-4686-B695-95F7A2C94E39} = {714A3F0B-91A5-4B04-981C-C60C8AC86AF8} + {F575F018-E80D-486C-9A5D-ED299C2FF727} = {714A3F0B-91A5-4B04-981C-C60C8AC86AF8} + {4A95E6CD-A466-46BC-A6C7-C65DA45B3388} = {E7BD0095-6A5F-49A8-9D05-703DB8783948} + {4B990529-DAA4-4AEC-A625-FDCA3EF64E25} = {E7BD0095-6A5F-49A8-9D05-703DB8783948} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9D6F6254-B5A3-40FF-8925-68AA8D1CE933}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D6F6254-B5A3-40FF-8925-68AA8D1CE933}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D6F6254-B5A3-40FF-8925-68AA8D1CE933}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D6F6254-B5A3-40FF-8925-68AA8D1CE933}.Release|Any CPU.Build.0 = Release|Any CPU - {16EE5522-F387-4C9E-9EF2-B5134B043F37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16EE5522-F387-4C9E-9EF2-B5134B043F37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16EE5522-F387-4C9E-9EF2-B5134B043F37}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16EE5522-F387-4C9E-9EF2-B5134B043F37}.Release|Any CPU.Build.0 = Release|Any CPU - {F2740000-E771-4E54-9287-5A1FDF8872F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F2740000-E771-4E54-9287-5A1FDF8872F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F2740000-E771-4E54-9287-5A1FDF8872F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F2740000-E771-4E54-9287-5A1FDF8872F4}.Release|Any CPU.Build.0 = Release|Any CPU - {F33E1C94-7132-446D-9543-4818C8F89E76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F33E1C94-7132-446D-9543-4818C8F89E76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F33E1C94-7132-446D-9543-4818C8F89E76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F33E1C94-7132-446D-9543-4818C8F89E76}.Release|Any CPU.Build.0 = Release|Any CPU + {53746669-11C3-4DA9-B9C3-4CA0B79D4712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53746669-11C3-4DA9-B9C3-4CA0B79D4712}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53746669-11C3-4DA9-B9C3-4CA0B79D4712}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53746669-11C3-4DA9-B9C3-4CA0B79D4712}.Release|Any CPU.Build.0 = Release|Any CPU + {95A43A96-F52F-4B2B-9001-4429CB66DFAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95A43A96-F52F-4B2B-9001-4429CB66DFAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95A43A96-F52F-4B2B-9001-4429CB66DFAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95A43A96-F52F-4B2B-9001-4429CB66DFAC}.Release|Any CPU.Build.0 = Release|Any CPU + {F4ACA509-281C-43DA-A57D-52D9913321AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4ACA509-281C-43DA-A57D-52D9913321AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4ACA509-281C-43DA-A57D-52D9913321AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4ACA509-281C-43DA-A57D-52D9913321AE}.Release|Any CPU.Build.0 = Release|Any CPU + {4A95E6CD-A466-46BC-A6C7-C65DA45B3388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A95E6CD-A466-46BC-A6C7-C65DA45B3388}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A95E6CD-A466-46BC-A6C7-C65DA45B3388}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A95E6CD-A466-46BC-A6C7-C65DA45B3388}.Release|Any CPU.Build.0 = Release|Any CPU + {AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD44D7FF-CFE0-4E98-9E33-C4D9A5F83860}.Release|Any CPU.Build.0 = Release|Any CPU + {8B9258B7-1C54-4FFE-9512-2B7323AEF92A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B9258B7-1C54-4FFE-9512-2B7323AEF92A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B9258B7-1C54-4FFE-9512-2B7323AEF92A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B9258B7-1C54-4FFE-9512-2B7323AEF92A}.Release|Any CPU.Build.0 = Release|Any CPU + {4B990529-DAA4-4AEC-A625-FDCA3EF64E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B990529-DAA4-4AEC-A625-FDCA3EF64E25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B990529-DAA4-4AEC-A625-FDCA3EF64E25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B990529-DAA4-4AEC-A625-FDCA3EF64E25}.Release|Any CPU.Build.0 = Release|Any CPU + {F2392763-FAC4-4686-B695-95F7A2C94E39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2392763-FAC4-4686-B695-95F7A2C94E39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2392763-FAC4-4686-B695-95F7A2C94E39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2392763-FAC4-4686-B695-95F7A2C94E39}.Release|Any CPU.Build.0 = Release|Any CPU + {F575F018-E80D-486C-9A5D-ED299C2FF727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F575F018-E80D-486C-9A5D-ED299C2FF727}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F575F018-E80D-486C-9A5D-ED299C2FF727}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F575F018-E80D-486C-9A5D-ED299C2FF727}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9D6F6254-B5A3-40FF-8925-68AA8D1CE933} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {16EE5522-F387-4C9E-9EF2-B5134B043F37} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F2740000-E771-4E54-9287-5A1FDF8872F4} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F33E1C94-7132-446D-9543-4818C8F89E76} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0526AB67-5CE5-4080-B8DC-9C67D2EC2B76} + SolutionGuid = {F8DDBB46-7ACE-4C13-91B4-FFB7E93363D9} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Packaging/System.IO.Packaging.sln b/src/libraries/System.IO.Packaging/System.IO.Packaging.sln index 5af6de1cb390..29473fa82c1d 100644 --- a/src/libraries/System.IO.Packaging/System.IO.Packaging.sln +++ b/src/libraries/System.IO.Packaging/System.IO.Packaging.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging.Tests", "tests\System.IO.Packaging.Tests.csproj", "{C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57}" - ProjectSection(ProjectDependencies) = postProject - {1F827C19-6023-48D3-909F-9F43AB42FAF0} = {1F827C19-6023-48D3-909F-9F43AB42FAF0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "src\System.IO.Packaging.csproj", "{1F827C19-6023-48D3-909F-9F43AB42FAF0}" - ProjectSection(ProjectDependencies) = postProject - {4DD91348-1D1F-4964-B5CB-047D916E79EE} = {4DD91348-1D1F-4964-B5CB-047D916E79EE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{849F7310-6573-4623-BB29-FDD629FCBDB3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "ref\System.IO.Packaging.csproj", "{4DD91348-1D1F-4964-B5CB-047D916E79EE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "ref\System.IO.Packaging.csproj", "{6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "src\System.IO.Packaging.csproj", "{C553FA20-C4C0-48A2-B841-12F2F860E21F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging.Tests", "tests\System.IO.Packaging.Tests.csproj", "{588B83D6-132B-4399-B31E-4B40CD9CCAE6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4E44D7F4-80D7-4F8A-9550-54773444F842}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C4543F74-9723-4662-B8E5-7E6DA5C91E6B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{78283948-D5F0-4F76-8B4A-F4D19EC206F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{07410F1F-3953-439D-BB46-B2263C8E1B5F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EC8B7531-7490-442D-950C-E98A91CEBC98}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{116A3347-80EA-4505-9F78-9751D8511A11}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{ACBE957D-3B4B-408C-8EDC-82CA86827D27}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{519320BA-7BF5-4927-82E6-4C21A8A832C5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F} = {116A3347-80EA-4505-9F78-9751D8511A11} + {588B83D6-132B-4399-B31E-4B40CD9CCAE6} = {116A3347-80EA-4505-9F78-9751D8511A11} + {849F7310-6573-4623-BB29-FDD629FCBDB3} = {ACBE957D-3B4B-408C-8EDC-82CA86827D27} + {6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28} = {ACBE957D-3B4B-408C-8EDC-82CA86827D27} + {4E44D7F4-80D7-4F8A-9550-54773444F842} = {ACBE957D-3B4B-408C-8EDC-82CA86827D27} + {07410F1F-3953-439D-BB46-B2263C8E1B5F} = {ACBE957D-3B4B-408C-8EDC-82CA86827D27} + {EC8B7531-7490-442D-950C-E98A91CEBC98} = {ACBE957D-3B4B-408C-8EDC-82CA86827D27} + {C553FA20-C4C0-48A2-B841-12F2F860E21F} = {519320BA-7BF5-4927-82E6-4C21A8A832C5} + {78283948-D5F0-4F76-8B4A-F4D19EC206F6} = {519320BA-7BF5-4927-82E6-4C21A8A832C5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57}.Release|Any CPU.Build.0 = Release|Any CPU - {1F827C19-6023-48D3-909F-9F43AB42FAF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F827C19-6023-48D3-909F-9F43AB42FAF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F827C19-6023-48D3-909F-9F43AB42FAF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F827C19-6023-48D3-909F-9F43AB42FAF0}.Release|Any CPU.Build.0 = Release|Any CPU - {4DD91348-1D1F-4964-B5CB-047D916E79EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4DD91348-1D1F-4964-B5CB-047D916E79EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4DD91348-1D1F-4964-B5CB-047D916E79EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4DD91348-1D1F-4964-B5CB-047D916E79EE}.Release|Any CPU.Build.0 = Release|Any CPU - {C4543F74-9723-4662-B8E5-7E6DA5C91E6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4543F74-9723-4662-B8E5-7E6DA5C91E6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4543F74-9723-4662-B8E5-7E6DA5C91E6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4543F74-9723-4662-B8E5-7E6DA5C91E6B}.Release|Any CPU.Build.0 = Release|Any CPU + {AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAE436A2-C2F7-4D1F-8DD4-6E8B00A1338F}.Release|Any CPU.Build.0 = Release|Any CPU + {849F7310-6573-4623-BB29-FDD629FCBDB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {849F7310-6573-4623-BB29-FDD629FCBDB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {849F7310-6573-4623-BB29-FDD629FCBDB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {849F7310-6573-4623-BB29-FDD629FCBDB3}.Release|Any CPU.Build.0 = Release|Any CPU + {6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6EF662E4-9A1E-4DAC-A04B-A1461BB6CA28}.Release|Any CPU.Build.0 = Release|Any CPU + {C553FA20-C4C0-48A2-B841-12F2F860E21F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C553FA20-C4C0-48A2-B841-12F2F860E21F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C553FA20-C4C0-48A2-B841-12F2F860E21F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C553FA20-C4C0-48A2-B841-12F2F860E21F}.Release|Any CPU.Build.0 = Release|Any CPU + {588B83D6-132B-4399-B31E-4B40CD9CCAE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {588B83D6-132B-4399-B31E-4B40CD9CCAE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {588B83D6-132B-4399-B31E-4B40CD9CCAE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {588B83D6-132B-4399-B31E-4B40CD9CCAE6}.Release|Any CPU.Build.0 = Release|Any CPU + {4E44D7F4-80D7-4F8A-9550-54773444F842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E44D7F4-80D7-4F8A-9550-54773444F842}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E44D7F4-80D7-4F8A-9550-54773444F842}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E44D7F4-80D7-4F8A-9550-54773444F842}.Release|Any CPU.Build.0 = Release|Any CPU + {78283948-D5F0-4F76-8B4A-F4D19EC206F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78283948-D5F0-4F76-8B4A-F4D19EC206F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78283948-D5F0-4F76-8B4A-F4D19EC206F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78283948-D5F0-4F76-8B4A-F4D19EC206F6}.Release|Any CPU.Build.0 = Release|Any CPU + {07410F1F-3953-439D-BB46-B2263C8E1B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07410F1F-3953-439D-BB46-B2263C8E1B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07410F1F-3953-439D-BB46-B2263C8E1B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07410F1F-3953-439D-BB46-B2263C8E1B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {EC8B7531-7490-442D-950C-E98A91CEBC98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC8B7531-7490-442D-950C-E98A91CEBC98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC8B7531-7490-442D-950C-E98A91CEBC98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC8B7531-7490-442D-950C-E98A91CEBC98}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C92FF1A4-DEA1-4F0F-9AEB-94C9B2561B57} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1F827C19-6023-48D3-909F-9F43AB42FAF0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4DD91348-1D1F-4964-B5CB-047D916E79EE} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {C4543F74-9723-4662-B8E5-7E6DA5C91E6B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FBDC7058-65E0-4B91-A5F8-6725C4A427E9} + SolutionGuid = {8F459277-2162-4A3B-BB19-29D4292EFC1F} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Packaging/src/System/IO/Packaging/PackUriHelper.PackUriScheme.cs b/src/libraries/System.IO.Packaging/src/System/IO/Packaging/PackUriHelper.PackUriScheme.cs index 5a6558e28031..b9b0fc231f2d 100644 --- a/src/libraries/System.IO.Packaging/src/System/IO/Packaging/PackUriHelper.PackUriScheme.cs +++ b/src/libraries/System.IO.Packaging/src/System/IO/Packaging/PackUriHelper.PackUriScheme.cs @@ -3,7 +3,6 @@ using System.Diagnostics; using System.Text; -using System.Linq; namespace System.IO.Packaging { @@ -286,7 +285,7 @@ private static string EscapeSpecialCharacters(string path) // This is currently enforced by the order of characters in the s_specialCharacterChars array foreach (char c in s_specialCharacterChars) { - if (path.Contains(c)) + if (path.IndexOf(c) != -1) { path = path.Replace(c.ToString(), Uri.HexEscape(c)); } diff --git a/src/libraries/System.IO.Pipelines/System.IO.Pipelines.sln b/src/libraries/System.IO.Pipelines/System.IO.Pipelines.sln index d56df3a8be86..88a6f208f09b 100644 --- a/src/libraries/System.IO.Pipelines/System.IO.Pipelines.sln +++ b/src/libraries/System.IO.Pipelines/System.IO.Pipelines.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines.Tests", "tests\System.IO.Pipelines.Tests.csproj", "{9E984EB2-827E-4029-9647-FB5F8B67C553}" - ProjectSection(ProjectDependencies) = postProject - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977} = {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines", "src\System.IO.Pipelines.csproj", "{1032D5F6-5AE7-4002-A0E4-FEBEADFEA977}" - ProjectSection(ProjectDependencies) = postProject - {9C524CA0-92FF-437B-B568-BCE8A794A69A} = {9C524CA0-92FF-437B-B568-BCE8A794A69A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines", "ref\System.IO.Pipelines.csproj", "{9C524CA0-92FF-437B-B568-BCE8A794A69A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines", "ref\System.IO.Pipelines.csproj", "{DC148B85-05DB-43B2-B2AF-958C305C2C0A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines", "src\System.IO.Pipelines.csproj", "{1DD520A2-ED75-4889-848E-DBDC7BE41873}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipelines.Tests", "tests\System.IO.Pipelines.Tests.csproj", "{1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C6EA39FC-B265-4B3E-B5BA-9D0D2C601691}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F72E156F-135A-407E-A723-9BD83B7EDFBC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{FFDC73EC-53C9-4B6E-B468-C477039742D8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E0AFC8E8-C697-40B3-A8AD-52788AE1B753}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{90FCF3EB-F36D-4D39-8A4A-623497F54700}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{AB8B533C-817A-4010-9FFD-0206D41307D0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A7DEEB5B-C332-4307-852F-8859096F4DCD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{037F66C3-C136-4DB5-9DFA-E5A3D53D32F0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A} = {AB8B533C-817A-4010-9FFD-0206D41307D0} + {1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08} = {AB8B533C-817A-4010-9FFD-0206D41307D0} + {9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0} = {A7DEEB5B-C332-4307-852F-8859096F4DCD} + {DC148B85-05DB-43B2-B2AF-958C305C2C0A} = {A7DEEB5B-C332-4307-852F-8859096F4DCD} + {C6EA39FC-B265-4B3E-B5BA-9D0D2C601691} = {A7DEEB5B-C332-4307-852F-8859096F4DCD} + {E0AFC8E8-C697-40B3-A8AD-52788AE1B753} = {A7DEEB5B-C332-4307-852F-8859096F4DCD} + {90FCF3EB-F36D-4D39-8A4A-623497F54700} = {A7DEEB5B-C332-4307-852F-8859096F4DCD} + {1DD520A2-ED75-4889-848E-DBDC7BE41873} = {037F66C3-C136-4DB5-9DFA-E5A3D53D32F0} + {FFDC73EC-53C9-4B6E-B468-C477039742D8} = {037F66C3-C136-4DB5-9DFA-E5A3D53D32F0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E984EB2-827E-4029-9647-FB5F8B67C553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E984EB2-827E-4029-9647-FB5F8B67C553}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E984EB2-827E-4029-9647-FB5F8B67C553}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E984EB2-827E-4029-9647-FB5F8B67C553}.Release|Any CPU.Build.0 = Release|Any CPU - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977}.Release|Any CPU.Build.0 = Release|Any CPU - {9C524CA0-92FF-437B-B568-BCE8A794A69A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C524CA0-92FF-437B-B568-BCE8A794A69A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C524CA0-92FF-437B-B568-BCE8A794A69A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C524CA0-92FF-437B-B568-BCE8A794A69A}.Release|Any CPU.Build.0 = Release|Any CPU - {F72E156F-135A-407E-A723-9BD83B7EDFBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F72E156F-135A-407E-A723-9BD83B7EDFBC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F72E156F-135A-407E-A723-9BD83B7EDFBC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F72E156F-135A-407E-A723-9BD83B7EDFBC}.Release|Any CPU.Build.0 = Release|Any CPU + {705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {705D4D3B-CE99-4FAC-AB61-07AD8FD3FF3A}.Release|Any CPU.Build.0 = Release|Any CPU + {9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AF9D7C9-527B-4BB4-B1A3-A26DEAFB3DC0}.Release|Any CPU.Build.0 = Release|Any CPU + {DC148B85-05DB-43B2-B2AF-958C305C2C0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC148B85-05DB-43B2-B2AF-958C305C2C0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC148B85-05DB-43B2-B2AF-958C305C2C0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC148B85-05DB-43B2-B2AF-958C305C2C0A}.Release|Any CPU.Build.0 = Release|Any CPU + {1DD520A2-ED75-4889-848E-DBDC7BE41873}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1DD520A2-ED75-4889-848E-DBDC7BE41873}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1DD520A2-ED75-4889-848E-DBDC7BE41873}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1DD520A2-ED75-4889-848E-DBDC7BE41873}.Release|Any CPU.Build.0 = Release|Any CPU + {1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B97BE49-ACAD-4DC9-B195-FE23C3DE5D08}.Release|Any CPU.Build.0 = Release|Any CPU + {C6EA39FC-B265-4B3E-B5BA-9D0D2C601691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6EA39FC-B265-4B3E-B5BA-9D0D2C601691}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6EA39FC-B265-4B3E-B5BA-9D0D2C601691}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6EA39FC-B265-4B3E-B5BA-9D0D2C601691}.Release|Any CPU.Build.0 = Release|Any CPU + {FFDC73EC-53C9-4B6E-B468-C477039742D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFDC73EC-53C9-4B6E-B468-C477039742D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFDC73EC-53C9-4B6E-B468-C477039742D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFDC73EC-53C9-4B6E-B468-C477039742D8}.Release|Any CPU.Build.0 = Release|Any CPU + {E0AFC8E8-C697-40B3-A8AD-52788AE1B753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0AFC8E8-C697-40B3-A8AD-52788AE1B753}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0AFC8E8-C697-40B3-A8AD-52788AE1B753}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0AFC8E8-C697-40B3-A8AD-52788AE1B753}.Release|Any CPU.Build.0 = Release|Any CPU + {90FCF3EB-F36D-4D39-8A4A-623497F54700}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90FCF3EB-F36D-4D39-8A4A-623497F54700}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90FCF3EB-F36D-4D39-8A4A-623497F54700}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90FCF3EB-F36D-4D39-8A4A-623497F54700}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9E984EB2-827E-4029-9647-FB5F8B67C553} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1032D5F6-5AE7-4002-A0E4-FEBEADFEA977} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {9C524CA0-92FF-437B-B568-BCE8A794A69A} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F72E156F-135A-407E-A723-9BD83B7EDFBC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4FA21728-5B35-4F75-9A77-2AC4A5FC5D22} + SolutionGuid = {2034EAE9-84E4-42C3-8C1F-AB515D313D5E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Pipes.AccessControl/System.IO.Pipes.AccessControl.sln b/src/libraries/System.IO.Pipes.AccessControl/System.IO.Pipes.AccessControl.sln index 4a3fb342bfcc..dbfacf9386ca 100644 --- a/src/libraries/System.IO.Pipes.AccessControl/System.IO.Pipes.AccessControl.sln +++ b/src/libraries/System.IO.Pipes.AccessControl/System.IO.Pipes.AccessControl.sln @@ -1,74 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29411.138 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl.Tests", "tests\System.IO.Pipes.AccessControl.Tests.csproj", "{A0356E61-19E1-4722-A53D-5D2616E16312}" - ProjectSection(ProjectDependencies) = postProject - {40059634-BB03-4A6F-8657-CCE2D376BC8B} = {40059634-BB03-4A6F-8657-CCE2D376BC8B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl", "src\System.IO.Pipes.AccessControl.csproj", "{40059634-BB03-4A6F-8657-CCE2D376BC8B}" - ProjectSection(ProjectDependencies) = postProject - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34} = {994DCE47-4CF6-479D-AB1D-4EA6A2809C34} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B6986743-061A-468B-B228-53B25B6AD75E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl", "ref\System.IO.Pipes.AccessControl.csproj", "{994DCE47-4CF6-479D-AB1D-4EA6A2809C34}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl", "ref\System.IO.Pipes.AccessControl.csproj", "{26E03980-4DB8-43B6-8737-1F7CAF7E5089}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl", "src\System.IO.Pipes.AccessControl.csproj", "{B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.AccessControl.Tests", "tests\System.IO.Pipes.AccessControl.Tests.csproj", "{7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "..\System.IO.Pipes\src\System.IO.Pipes.csproj", "{5AE837A0-E966-41E5-9230-0830BB3E727F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3B8D8597-DC68-4915-8C2A-1DC33E78E607}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A6554F7C-F4FC-463D-9C0F-396B976FDB90}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "..\System.IO.Pipes\src\System.IO.Pipes.csproj", "{D0711B56-E234-45DB-A620-2F43041826BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{846D56B2-A309-41B2-8BF8-89CFB3AF5F1D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{7C35E697-38D0-4A2C-BC25-816732BA2D91}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E9FBC628-1577-4872-87E5-2C4F85A511F3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{D8BA6A7D-73FF-428D-9527-65B9BC36E7E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{C1C408A9-C98D-499B-8C15-61FF831FFAAE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{D9DEC09D-3DC0-428C-A7F0-116CDD43BC69}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A8A3F5BC-EB3A-418C-8804-B0740217962E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8126C622-598A-4F25-AD19-050365BFADAC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6F5101DE-2A74-487B-881A-EB3B94650450}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6} = {A8A3F5BC-EB3A-418C-8804-B0740217962E} + {7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38} = {A8A3F5BC-EB3A-418C-8804-B0740217962E} + {B6986743-061A-468B-B228-53B25B6AD75E} = {8126C622-598A-4F25-AD19-050365BFADAC} + {26E03980-4DB8-43B6-8737-1F7CAF7E5089} = {8126C622-598A-4F25-AD19-050365BFADAC} + {A6554F7C-F4FC-463D-9C0F-396B976FDB90} = {8126C622-598A-4F25-AD19-050365BFADAC} + {E9FBC628-1577-4872-87E5-2C4F85A511F3} = {8126C622-598A-4F25-AD19-050365BFADAC} + {C1C408A9-C98D-499B-8C15-61FF831FFAAE} = {8126C622-598A-4F25-AD19-050365BFADAC} + {B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71} = {6F5101DE-2A74-487B-881A-EB3B94650450} + {5AE837A0-E966-41E5-9230-0830BB3E727F} = {6F5101DE-2A74-487B-881A-EB3B94650450} + {846D56B2-A309-41B2-8BF8-89CFB3AF5F1D} = {6F5101DE-2A74-487B-881A-EB3B94650450} + {D8BA6A7D-73FF-428D-9527-65B9BC36E7E0} = {6F5101DE-2A74-487B-881A-EB3B94650450} + {D9DEC09D-3DC0-428C-A7F0-116CDD43BC69} = {6F5101DE-2A74-487B-881A-EB3B94650450} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A0356E61-19E1-4722-A53D-5D2616E16312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A0356E61-19E1-4722-A53D-5D2616E16312}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A0356E61-19E1-4722-A53D-5D2616E16312}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A0356E61-19E1-4722-A53D-5D2616E16312}.Release|Any CPU.Build.0 = Release|Any CPU - {40059634-BB03-4A6F-8657-CCE2D376BC8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40059634-BB03-4A6F-8657-CCE2D376BC8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40059634-BB03-4A6F-8657-CCE2D376BC8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40059634-BB03-4A6F-8657-CCE2D376BC8B}.Release|Any CPU.Build.0 = Release|Any CPU - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34}.Debug|Any CPU.Build.0 = Debug|Any CPU - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34}.Release|Any CPU.ActiveCfg = Release|Any CPU - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34}.Release|Any CPU.Build.0 = Release|Any CPU - {3B8D8597-DC68-4915-8C2A-1DC33E78E607}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B8D8597-DC68-4915-8C2A-1DC33E78E607}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B8D8597-DC68-4915-8C2A-1DC33E78E607}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B8D8597-DC68-4915-8C2A-1DC33E78E607}.Release|Any CPU.Build.0 = Release|Any CPU - {D0711B56-E234-45DB-A620-2F43041826BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D0711B56-E234-45DB-A620-2F43041826BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D0711B56-E234-45DB-A620-2F43041826BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D0711B56-E234-45DB-A620-2F43041826BB}.Release|Any CPU.Build.0 = Release|Any CPU - {7C35E697-38D0-4A2C-BC25-816732BA2D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C35E697-38D0-4A2C-BC25-816732BA2D91}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C35E697-38D0-4A2C-BC25-816732BA2D91}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C35E697-38D0-4A2C-BC25-816732BA2D91}.Release|Any CPU.Build.0 = Release|Any CPU + {DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF7DE1B3-C58E-4EBB-86C5-87EB59A177C6}.Release|Any CPU.Build.0 = Release|Any CPU + {B6986743-061A-468B-B228-53B25B6AD75E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6986743-061A-468B-B228-53B25B6AD75E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6986743-061A-468B-B228-53B25B6AD75E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6986743-061A-468B-B228-53B25B6AD75E}.Release|Any CPU.Build.0 = Release|Any CPU + {26E03980-4DB8-43B6-8737-1F7CAF7E5089}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26E03980-4DB8-43B6-8737-1F7CAF7E5089}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26E03980-4DB8-43B6-8737-1F7CAF7E5089}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26E03980-4DB8-43B6-8737-1F7CAF7E5089}.Release|Any CPU.Build.0 = Release|Any CPU + {B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6731AC0-E4F2-4E6C-B6DF-63EF396FCB71}.Release|Any CPU.Build.0 = Release|Any CPU + {7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E5965B1-EDF8-4FCC-AAC4-C91DFB043E38}.Release|Any CPU.Build.0 = Release|Any CPU + {5AE837A0-E966-41E5-9230-0830BB3E727F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AE837A0-E966-41E5-9230-0830BB3E727F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AE837A0-E966-41E5-9230-0830BB3E727F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AE837A0-E966-41E5-9230-0830BB3E727F}.Release|Any CPU.Build.0 = Release|Any CPU + {A6554F7C-F4FC-463D-9C0F-396B976FDB90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6554F7C-F4FC-463D-9C0F-396B976FDB90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6554F7C-F4FC-463D-9C0F-396B976FDB90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6554F7C-F4FC-463D-9C0F-396B976FDB90}.Release|Any CPU.Build.0 = Release|Any CPU + {846D56B2-A309-41B2-8BF8-89CFB3AF5F1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {846D56B2-A309-41B2-8BF8-89CFB3AF5F1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {846D56B2-A309-41B2-8BF8-89CFB3AF5F1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {846D56B2-A309-41B2-8BF8-89CFB3AF5F1D}.Release|Any CPU.Build.0 = Release|Any CPU + {E9FBC628-1577-4872-87E5-2C4F85A511F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9FBC628-1577-4872-87E5-2C4F85A511F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9FBC628-1577-4872-87E5-2C4F85A511F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9FBC628-1577-4872-87E5-2C4F85A511F3}.Release|Any CPU.Build.0 = Release|Any CPU + {D8BA6A7D-73FF-428D-9527-65B9BC36E7E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8BA6A7D-73FF-428D-9527-65B9BC36E7E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8BA6A7D-73FF-428D-9527-65B9BC36E7E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8BA6A7D-73FF-428D-9527-65B9BC36E7E0}.Release|Any CPU.Build.0 = Release|Any CPU + {C1C408A9-C98D-499B-8C15-61FF831FFAAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1C408A9-C98D-499B-8C15-61FF831FFAAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1C408A9-C98D-499B-8C15-61FF831FFAAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1C408A9-C98D-499B-8C15-61FF831FFAAE}.Release|Any CPU.Build.0 = Release|Any CPU + {D9DEC09D-3DC0-428C-A7F0-116CDD43BC69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9DEC09D-3DC0-428C-A7F0-116CDD43BC69}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9DEC09D-3DC0-428C-A7F0-116CDD43BC69}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9DEC09D-3DC0-428C-A7F0-116CDD43BC69}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A0356E61-19E1-4722-A53D-5D2616E16312} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {40059634-BB03-4A6F-8657-CCE2D376BC8B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {994DCE47-4CF6-479D-AB1D-4EA6A2809C34} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3B8D8597-DC68-4915-8C2A-1DC33E78E607} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D0711B56-E234-45DB-A620-2F43041826BB} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7C35E697-38D0-4A2C-BC25-816732BA2D91} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {AFD36AE1-C562-46E4-8D24-6F36C0F106B1} + SolutionGuid = {A148100C-0767-46F2-99CB-3AF298DD788F} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Pipes.AccessControl/pkg/System.IO.Pipes.AccessControl.pkgproj b/src/libraries/System.IO.Pipes.AccessControl/pkg/System.IO.Pipes.AccessControl.pkgproj index c7fb694be2b9..2bbf27b955d1 100644 --- a/src/libraries/System.IO.Pipes.AccessControl/pkg/System.IO.Pipes.AccessControl.pkgproj +++ b/src/libraries/System.IO.Pipes.AccessControl/pkg/System.IO.Pipes.AccessControl.pkgproj @@ -9,6 +9,7 @@ + diff --git a/src/libraries/System.IO.Pipes/System.IO.Pipes.sln b/src/libraries/System.IO.Pipes/System.IO.Pipes.sln index a331d094f291..c172a21c333e 100644 --- a/src/libraries/System.IO.Pipes/System.IO.Pipes.sln +++ b/src/libraries/System.IO.Pipes/System.IO.Pipes.sln @@ -1,60 +1,219 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.Tests", "tests\System.IO.Pipes.Tests.csproj", "{142469EC-D665-4FE2-845A-FDA69F9CC557}" - ProjectSection(ProjectDependencies) = postProject - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918} = {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "src\System.IO.Pipes.csproj", "{D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918}" - ProjectSection(ProjectDependencies) = postProject - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874} = {38B2B275-FB29-45C6-9E68-9ECEBC6BD874} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{17494B7E-CD64-46FF-A75B-9ED56488213F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "ref\System.IO.Pipes.csproj", "{38B2B275-FB29-45C6-9E68-9ECEBC6BD874}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{FED8B31F-94BB-48AF-9A0A-03C777BD805B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "..\System.DirectoryServices.AccountManagement\ref\System.DirectoryServices.AccountManagement.csproj", "{9A567CB8-B318-42C0-B05F-B0746E50DBFD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "..\System.DirectoryServices.AccountManagement\src\System.DirectoryServices.AccountManagement.csproj", "{DD5D3579-50B5-4ECE-AE54-2C67E66B8E09}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CBDA9624-90C8-4236-8883-EDFA0D92C724}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\ref\System.DirectoryServices.Protocols.csproj", "{572E9C48-D5F4-4D27-825F-6BBC504E9526}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\src\System.DirectoryServices.Protocols.csproj", "{826D5FBF-95C3-42EE-BACD-0CA38B6FEC73}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{A15EED32-12DF-40D3-AA8E-197F76D8A0C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{D352661A-5F26-403B-9077-D536A57609E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{57AD446D-B3AF-4E48-AC43-01B65F590D98}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{22DC3AC5-85F1-43C4-B9AA-16E9916F0890}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "ref\System.IO.Pipes.csproj", "{53D35175-9799-4535-8322-88BF2FCDD56E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes", "src\System.IO.Pipes.csproj", "{3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Pipes.Tests", "tests\System.IO.Pipes.Tests.csproj", "{DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D374E357-D5DA-4958-9C8B-7EA512B19BEF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DD675156-B16E-44C8-854B-AEC717FF4DE0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{E565DD4A-0749-4F5E-8476-EF44D742E377}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{15CB5F16-593B-460D-BDC3-134A56EF3B5F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{FC9FBADB-C525-4939-9E4E-20AB43DAF2D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{F1F93C9B-5169-40FB-A258-81EC914360EC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{724E9C4C-A140-4815-88A4-2934BD67574F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{CDC3E87D-26B7-45BA-87D4-D6417D64D9E5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{47986042-2EFD-4FA5-B7D6-CD7316817FE0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E97ACD26-140F-408E-9B12-9FCDF7DEFDB7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B} = {47986042-2EFD-4FA5-B7D6-CD7316817FE0} + {DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC} = {47986042-2EFD-4FA5-B7D6-CD7316817FE0} + {17494B7E-CD64-46FF-A75B-9ED56488213F} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {9A567CB8-B318-42C0-B05F-B0746E50DBFD} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {572E9C48-D5F4-4D27-825F-6BBC504E9526} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {D352661A-5F26-403B-9077-D536A57609E7} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {57AD446D-B3AF-4E48-AC43-01B65F590D98} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {53D35175-9799-4535-8322-88BF2FCDD56E} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {D374E357-D5DA-4958-9C8B-7EA512B19BEF} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {FC9FBADB-C525-4939-9E4E-20AB43DAF2D9} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {724E9C4C-A140-4815-88A4-2934BD67574F} = {E97ACD26-140F-408E-9B12-9FCDF7DEFDB7} + {FED8B31F-94BB-48AF-9A0A-03C777BD805B} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {DD5D3579-50B5-4ECE-AE54-2C67E66B8E09} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {826D5FBF-95C3-42EE-BACD-0CA38B6FEC73} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {A15EED32-12DF-40D3-AA8E-197F76D8A0C5} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {22DC3AC5-85F1-43C4-B9AA-16E9916F0890} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {DD675156-B16E-44C8-854B-AEC717FF4DE0} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {E565DD4A-0749-4F5E-8476-EF44D742E377} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {15CB5F16-593B-460D-BDC3-134A56EF3B5F} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {F1F93C9B-5169-40FB-A258-81EC914360EC} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + {CDC3E87D-26B7-45BA-87D4-D6417D64D9E5} = {6E5FD556-2DDB-49AB-ADE6-3DB1B844E4B5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {142469EC-D665-4FE2-845A-FDA69F9CC557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {142469EC-D665-4FE2-845A-FDA69F9CC557}.Debug|Any CPU.Build.0 = Debug|Any CPU - {142469EC-D665-4FE2-845A-FDA69F9CC557}.Release|Any CPU.ActiveCfg = Release|Any CPU - {142469EC-D665-4FE2-845A-FDA69F9CC557}.Release|Any CPU.Build.0 = Release|Any CPU - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918}.Release|Any CPU.Build.0 = Release|Any CPU - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874}.Release|Any CPU.Build.0 = Release|Any CPU - {CBDA9624-90C8-4236-8883-EDFA0D92C724}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CBDA9624-90C8-4236-8883-EDFA0D92C724}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CBDA9624-90C8-4236-8883-EDFA0D92C724}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CBDA9624-90C8-4236-8883-EDFA0D92C724}.Release|Any CPU.Build.0 = Release|Any CPU + {7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CF29A1C-AAE7-46E2-B1BE-40CEE7632A7B}.Release|Any CPU.Build.0 = Release|Any CPU + {17494B7E-CD64-46FF-A75B-9ED56488213F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17494B7E-CD64-46FF-A75B-9ED56488213F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17494B7E-CD64-46FF-A75B-9ED56488213F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17494B7E-CD64-46FF-A75B-9ED56488213F}.Release|Any CPU.Build.0 = Release|Any CPU + {64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64157E8E-5D3C-4DC5-A2B5-5272DAEA83D2}.Release|Any CPU.Build.0 = Release|Any CPU + {FED8B31F-94BB-48AF-9A0A-03C777BD805B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FED8B31F-94BB-48AF-9A0A-03C777BD805B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FED8B31F-94BB-48AF-9A0A-03C777BD805B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FED8B31F-94BB-48AF-9A0A-03C777BD805B}.Release|Any CPU.Build.0 = Release|Any CPU + {9A567CB8-B318-42C0-B05F-B0746E50DBFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A567CB8-B318-42C0-B05F-B0746E50DBFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A567CB8-B318-42C0-B05F-B0746E50DBFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A567CB8-B318-42C0-B05F-B0746E50DBFD}.Release|Any CPU.Build.0 = Release|Any CPU + {DD5D3579-50B5-4ECE-AE54-2C67E66B8E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD5D3579-50B5-4ECE-AE54-2C67E66B8E09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD5D3579-50B5-4ECE-AE54-2C67E66B8E09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD5D3579-50B5-4ECE-AE54-2C67E66B8E09}.Release|Any CPU.Build.0 = Release|Any CPU + {572E9C48-D5F4-4D27-825F-6BBC504E9526}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {572E9C48-D5F4-4D27-825F-6BBC504E9526}.Debug|Any CPU.Build.0 = Debug|Any CPU + {572E9C48-D5F4-4D27-825F-6BBC504E9526}.Release|Any CPU.ActiveCfg = Release|Any CPU + {572E9C48-D5F4-4D27-825F-6BBC504E9526}.Release|Any CPU.Build.0 = Release|Any CPU + {826D5FBF-95C3-42EE-BACD-0CA38B6FEC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {826D5FBF-95C3-42EE-BACD-0CA38B6FEC73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {826D5FBF-95C3-42EE-BACD-0CA38B6FEC73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {826D5FBF-95C3-42EE-BACD-0CA38B6FEC73}.Release|Any CPU.Build.0 = Release|Any CPU + {7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FACB7D5-E0A4-43D4-8C61-CB0C39C8A7EF}.Release|Any CPU.Build.0 = Release|Any CPU + {A15EED32-12DF-40D3-AA8E-197F76D8A0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A15EED32-12DF-40D3-AA8E-197F76D8A0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A15EED32-12DF-40D3-AA8E-197F76D8A0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A15EED32-12DF-40D3-AA8E-197F76D8A0C5}.Release|Any CPU.Build.0 = Release|Any CPU + {D352661A-5F26-403B-9077-D536A57609E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D352661A-5F26-403B-9077-D536A57609E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D352661A-5F26-403B-9077-D536A57609E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D352661A-5F26-403B-9077-D536A57609E7}.Release|Any CPU.Build.0 = Release|Any CPU + {57AD446D-B3AF-4E48-AC43-01B65F590D98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57AD446D-B3AF-4E48-AC43-01B65F590D98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57AD446D-B3AF-4E48-AC43-01B65F590D98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57AD446D-B3AF-4E48-AC43-01B65F590D98}.Release|Any CPU.Build.0 = Release|Any CPU + {22DC3AC5-85F1-43C4-B9AA-16E9916F0890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22DC3AC5-85F1-43C4-B9AA-16E9916F0890}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22DC3AC5-85F1-43C4-B9AA-16E9916F0890}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22DC3AC5-85F1-43C4-B9AA-16E9916F0890}.Release|Any CPU.Build.0 = Release|Any CPU + {53D35175-9799-4535-8322-88BF2FCDD56E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53D35175-9799-4535-8322-88BF2FCDD56E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53D35175-9799-4535-8322-88BF2FCDD56E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53D35175-9799-4535-8322-88BF2FCDD56E}.Release|Any CPU.Build.0 = Release|Any CPU + {3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A471AEB-FCCB-43DF-9C04-F00FA9AAF81E}.Release|Any CPU.Build.0 = Release|Any CPU + {DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF14A751-0E6D-4B99-A6FB-F295B8C5E0FC}.Release|Any CPU.Build.0 = Release|Any CPU + {D374E357-D5DA-4958-9C8B-7EA512B19BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D374E357-D5DA-4958-9C8B-7EA512B19BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D374E357-D5DA-4958-9C8B-7EA512B19BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D374E357-D5DA-4958-9C8B-7EA512B19BEF}.Release|Any CPU.Build.0 = Release|Any CPU + {DD675156-B16E-44C8-854B-AEC717FF4DE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD675156-B16E-44C8-854B-AEC717FF4DE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD675156-B16E-44C8-854B-AEC717FF4DE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD675156-B16E-44C8-854B-AEC717FF4DE0}.Release|Any CPU.Build.0 = Release|Any CPU + {D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D148F4A7-06C8-4AE8-B0A9-1F5DE3A2EAF8}.Release|Any CPU.Build.0 = Release|Any CPU + {5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E285C4E-BE83-458A-84A9-3C1F8D9FAAF6}.Release|Any CPU.Build.0 = Release|Any CPU + {25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25441E1F-971D-4FF3-BA5A-2FBAAC3EB9FF}.Release|Any CPU.Build.0 = Release|Any CPU + {E565DD4A-0749-4F5E-8476-EF44D742E377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E565DD4A-0749-4F5E-8476-EF44D742E377}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E565DD4A-0749-4F5E-8476-EF44D742E377}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E565DD4A-0749-4F5E-8476-EF44D742E377}.Release|Any CPU.Build.0 = Release|Any CPU + {57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57DABE06-F0EF-4C7A-BC0C-791A3A5F45F5}.Release|Any CPU.Build.0 = Release|Any CPU + {15CB5F16-593B-460D-BDC3-134A56EF3B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15CB5F16-593B-460D-BDC3-134A56EF3B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15CB5F16-593B-460D-BDC3-134A56EF3B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15CB5F16-593B-460D-BDC3-134A56EF3B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {FC9FBADB-C525-4939-9E4E-20AB43DAF2D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC9FBADB-C525-4939-9E4E-20AB43DAF2D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC9FBADB-C525-4939-9E4E-20AB43DAF2D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC9FBADB-C525-4939-9E4E-20AB43DAF2D9}.Release|Any CPU.Build.0 = Release|Any CPU + {F1F93C9B-5169-40FB-A258-81EC914360EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1F93C9B-5169-40FB-A258-81EC914360EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1F93C9B-5169-40FB-A258-81EC914360EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1F93C9B-5169-40FB-A258-81EC914360EC}.Release|Any CPU.Build.0 = Release|Any CPU + {724E9C4C-A140-4815-88A4-2934BD67574F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {724E9C4C-A140-4815-88A4-2934BD67574F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {724E9C4C-A140-4815-88A4-2934BD67574F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {724E9C4C-A140-4815-88A4-2934BD67574F}.Release|Any CPU.Build.0 = Release|Any CPU + {CDC3E87D-26B7-45BA-87D4-D6417D64D9E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDC3E87D-26B7-45BA-87D4-D6417D64D9E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDC3E87D-26B7-45BA-87D4-D6417D64D9E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDC3E87D-26B7-45BA-87D4-D6417D64D9E5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {142469EC-D665-4FE2-845A-FDA69F9CC557} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D293A0E4-AE6C-4DF7-99AE-CC1A37BF4918} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {38B2B275-FB29-45C6-9E68-9ECEBC6BD874} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {CBDA9624-90C8-4236-8883-EDFA0D92C724} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F531A2FC-20AC-4B49-8C87-B9D69F2F2055} + SolutionGuid = {CD1065BC-8D4A-4559-BC8B-8FB6B73A6B15} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj b/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj index b322b78d7719..a89cd7202c08 100644 --- a/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +++ b/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj @@ -48,13 +48,13 @@ - + - + + Link="Common\Interop\Windows\Interop.GetFileType.cs" /> - diff --git a/src/libraries/System.IO.Ports/System.IO.Ports.sln b/src/libraries/System.IO.Ports/System.IO.Ports.sln index 5b45c8ef3686..e29c6823e8dd 100644 --- a/src/libraries/System.IO.Ports/System.IO.Ports.sln +++ b/src/libraries/System.IO.Ports/System.IO.Ports.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports.Tests", "tests\System.IO.Ports.Tests.csproj", "{4259DCE9-3480-40BB-B08A-64A2D446264B}" - ProjectSection(ProjectDependencies) = postProject - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E} = {187503F4-BEF9-4369-A1B2-E3DC5D564E4E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A3E471F9-5008-4FFC-B80D-4EF921E8CFB7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports", "src\System.IO.Ports.csproj", "{187503F4-BEF9-4369-A1B2-E3DC5D564E4E}" - ProjectSection(ProjectDependencies) = postProject - {75DE4259-43BB-4067-9F30-3AC920D51AEC} = {75DE4259-43BB-4067-9F30-3AC920D51AEC} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports", "ref\System.IO.Ports.csproj", "{75DE4259-43BB-4067-9F30-3AC920D51AEC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{757F4BE8-FB81-4C83-A710-39A2D3A260FA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{FB780119-1476-4079-B4EB-62BE92D85296}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{C5AFF6A1-4979-4C86-B19F-BD1E6848644B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports", "ref\System.IO.Ports.csproj", "{5594242D-5209-4F6F-AA08-44489B5B733F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports", "src\System.IO.Ports.csproj", "{DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Ports.Tests", "tests\System.IO.Ports.Tests.csproj", "{32AD9913-7FC8-499A-9712-A5128998BFDA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{78986AA5-18DB-4476-8E00-66EA8DDA8AF8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{7E68AD2F-437D-47A3-A68C-1286B995B33D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{6684D34A-0341-484F-83EC-BA75B2A6D230}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{8450CD44-620D-46D4-A054-769A9AC1E434}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{10D1B3BC-447C-4FE4-911F-9DCF087AFDCD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{4281B413-0586-452B-9152-8012BBEA6BBF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{AF080B51-C317-42B2-914D-6040C45D4E2B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encoding.CodePages", "..\System.Text.Encoding.CodePages\src\System.Text.Encoding.CodePages.csproj", "{50120440-409D-4B8A-B54C-F5FC637EF529}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{CA68C7E7-54DD-469A-A984-0AEF1781F4DF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{226F223B-4D79-42E9-A981-B174C1A00A4E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C3495454-3C91-43EE-A951-98AC2DF51479}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0B9440A3-B339-4E66-9ADC-8540AA4199BF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{89B8BDA8-551A-4338-85F1-67AD28370AB4}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A3E471F9-5008-4FFC-B80D-4EF921E8CFB7} = {C3495454-3C91-43EE-A951-98AC2DF51479} + {32AD9913-7FC8-499A-9712-A5128998BFDA} = {C3495454-3C91-43EE-A951-98AC2DF51479} + {0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {FB780119-1476-4079-B4EB-62BE92D85296} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {5594242D-5209-4F6F-AA08-44489B5B733F} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {78986AA5-18DB-4476-8E00-66EA8DDA8AF8} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {6684D34A-0341-484F-83EC-BA75B2A6D230} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {10D1B3BC-447C-4FE4-911F-9DCF087AFDCD} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {CA68C7E7-54DD-469A-A984-0AEF1781F4DF} = {0B9440A3-B339-4E66-9ADC-8540AA4199BF} + {757F4BE8-FB81-4C83-A710-39A2D3A260FA} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {C5AFF6A1-4979-4C86-B19F-BD1E6848644B} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {7E68AD2F-437D-47A3-A68C-1286B995B33D} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {8450CD44-620D-46D4-A054-769A9AC1E434} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {4281B413-0586-452B-9152-8012BBEA6BBF} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {AF080B51-C317-42B2-914D-6040C45D4E2B} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {50120440-409D-4B8A-B54C-F5FC637EF529} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + {226F223B-4D79-42E9-A981-B174C1A00A4E} = {89B8BDA8-551A-4338-85F1-67AD28370AB4} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4259DCE9-3480-40BB-B08A-64A2D446264B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4259DCE9-3480-40BB-B08A-64A2D446264B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4259DCE9-3480-40BB-B08A-64A2D446264B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4259DCE9-3480-40BB-B08A-64A2D446264B}.Release|Any CPU.Build.0 = Release|Any CPU - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E}.Release|Any CPU.Build.0 = Release|Any CPU - {75DE4259-43BB-4067-9F30-3AC920D51AEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75DE4259-43BB-4067-9F30-3AC920D51AEC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75DE4259-43BB-4067-9F30-3AC920D51AEC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75DE4259-43BB-4067-9F30-3AC920D51AEC}.Release|Any CPU.Build.0 = Release|Any CPU - {5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA}.Release|Any CPU.Build.0 = Release|Any CPU + {A3E471F9-5008-4FFC-B80D-4EF921E8CFB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3E471F9-5008-4FFC-B80D-4EF921E8CFB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3E471F9-5008-4FFC-B80D-4EF921E8CFB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3E471F9-5008-4FFC-B80D-4EF921E8CFB7}.Release|Any CPU.Build.0 = Release|Any CPU + {0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F8658BC-7FA7-45AF-A4FB-8E1D3AAD1908}.Release|Any CPU.Build.0 = Release|Any CPU + {757F4BE8-FB81-4C83-A710-39A2D3A260FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {757F4BE8-FB81-4C83-A710-39A2D3A260FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {757F4BE8-FB81-4C83-A710-39A2D3A260FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {757F4BE8-FB81-4C83-A710-39A2D3A260FA}.Release|Any CPU.Build.0 = Release|Any CPU + {FB780119-1476-4079-B4EB-62BE92D85296}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB780119-1476-4079-B4EB-62BE92D85296}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB780119-1476-4079-B4EB-62BE92D85296}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB780119-1476-4079-B4EB-62BE92D85296}.Release|Any CPU.Build.0 = Release|Any CPU + {34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34D1FA12-92E8-4FAB-9F50-1B068AFF3EE7}.Release|Any CPU.Build.0 = Release|Any CPU + {C5AFF6A1-4979-4C86-B19F-BD1E6848644B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5AFF6A1-4979-4C86-B19F-BD1E6848644B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5AFF6A1-4979-4C86-B19F-BD1E6848644B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5AFF6A1-4979-4C86-B19F-BD1E6848644B}.Release|Any CPU.Build.0 = Release|Any CPU + {5594242D-5209-4F6F-AA08-44489B5B733F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5594242D-5209-4F6F-AA08-44489B5B733F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5594242D-5209-4F6F-AA08-44489B5B733F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5594242D-5209-4F6F-AA08-44489B5B733F}.Release|Any CPU.Build.0 = Release|Any CPU + {DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBB69108-6DCB-49A0-9EFE-0A26DC3E6B9E}.Release|Any CPU.Build.0 = Release|Any CPU + {32AD9913-7FC8-499A-9712-A5128998BFDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32AD9913-7FC8-499A-9712-A5128998BFDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32AD9913-7FC8-499A-9712-A5128998BFDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32AD9913-7FC8-499A-9712-A5128998BFDA}.Release|Any CPU.Build.0 = Release|Any CPU + {78986AA5-18DB-4476-8E00-66EA8DDA8AF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78986AA5-18DB-4476-8E00-66EA8DDA8AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78986AA5-18DB-4476-8E00-66EA8DDA8AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78986AA5-18DB-4476-8E00-66EA8DDA8AF8}.Release|Any CPU.Build.0 = Release|Any CPU + {7E68AD2F-437D-47A3-A68C-1286B995B33D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E68AD2F-437D-47A3-A68C-1286B995B33D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E68AD2F-437D-47A3-A68C-1286B995B33D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E68AD2F-437D-47A3-A68C-1286B995B33D}.Release|Any CPU.Build.0 = Release|Any CPU + {6684D34A-0341-484F-83EC-BA75B2A6D230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6684D34A-0341-484F-83EC-BA75B2A6D230}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6684D34A-0341-484F-83EC-BA75B2A6D230}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6684D34A-0341-484F-83EC-BA75B2A6D230}.Release|Any CPU.Build.0 = Release|Any CPU + {8450CD44-620D-46D4-A054-769A9AC1E434}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8450CD44-620D-46D4-A054-769A9AC1E434}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8450CD44-620D-46D4-A054-769A9AC1E434}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8450CD44-620D-46D4-A054-769A9AC1E434}.Release|Any CPU.Build.0 = Release|Any CPU + {10D1B3BC-447C-4FE4-911F-9DCF087AFDCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10D1B3BC-447C-4FE4-911F-9DCF087AFDCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10D1B3BC-447C-4FE4-911F-9DCF087AFDCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10D1B3BC-447C-4FE4-911F-9DCF087AFDCD}.Release|Any CPU.Build.0 = Release|Any CPU + {4281B413-0586-452B-9152-8012BBEA6BBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4281B413-0586-452B-9152-8012BBEA6BBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4281B413-0586-452B-9152-8012BBEA6BBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4281B413-0586-452B-9152-8012BBEA6BBF}.Release|Any CPU.Build.0 = Release|Any CPU + {4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A8086FF-F2F3-4625-8EEE-22FB49FF7ACF}.Release|Any CPU.Build.0 = Release|Any CPU + {AF080B51-C317-42B2-914D-6040C45D4E2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF080B51-C317-42B2-914D-6040C45D4E2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF080B51-C317-42B2-914D-6040C45D4E2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF080B51-C317-42B2-914D-6040C45D4E2B}.Release|Any CPU.Build.0 = Release|Any CPU + {50120440-409D-4B8A-B54C-F5FC637EF529}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50120440-409D-4B8A-B54C-F5FC637EF529}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50120440-409D-4B8A-B54C-F5FC637EF529}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50120440-409D-4B8A-B54C-F5FC637EF529}.Release|Any CPU.Build.0 = Release|Any CPU + {CA68C7E7-54DD-469A-A984-0AEF1781F4DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA68C7E7-54DD-469A-A984-0AEF1781F4DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA68C7E7-54DD-469A-A984-0AEF1781F4DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA68C7E7-54DD-469A-A984-0AEF1781F4DF}.Release|Any CPU.Build.0 = Release|Any CPU + {226F223B-4D79-42E9-A981-B174C1A00A4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {226F223B-4D79-42E9-A981-B174C1A00A4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {226F223B-4D79-42E9-A981-B174C1A00A4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {226F223B-4D79-42E9-A981-B174C1A00A4E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4259DCE9-3480-40BB-B08A-64A2D446264B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {187503F4-BEF9-4369-A1B2-E3DC5D564E4E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {75DE4259-43BB-4067-9F30-3AC920D51AEC} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {5D4A4B8C-7DC1-4BAA-BE24-868664E8ECCA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6245C4C2-9217-41E3-A9FA-8118DA599D2B} + SolutionGuid = {54136FEA-7C5B-41E5-86EE-C5816F222DEE} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO.Ports/pkg/System.IO.Ports.pkgproj b/src/libraries/System.IO.Ports/pkg/System.IO.Ports.pkgproj index 6101910d7574..1344260b3276 100644 --- a/src/libraries/System.IO.Ports/pkg/System.IO.Ports.pkgproj +++ b/src/libraries/System.IO.Ports/pkg/System.IO.Ports.pkgproj @@ -2,12 +2,8 @@ - net461;netcoreapp2.0;$(AllXamarinFrameworks) + net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks) - - runtimes/win/lib/uap10.0.16299 - - diff --git a/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln b/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln index 95f5952e3ea2..8fe751b8ace3 100644 --- a/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln +++ b/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream.Tests", "tests\System.IO.UnmanagedMemoryStream.Tests.csproj", "{55F26FB1-D4AF-48CA-A470-83113AE7BFDB}" - ProjectSection(ProjectDependencies) = postProject - {BCF9255A-4321-4277-AD7D-F5094092C554} = {BCF9255A-4321-4277-AD7D-F5094092C554} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{074D8726-9CC3-43B5-9D28-1AD33A6100F7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream", "src\System.IO.UnmanagedMemoryStream.csproj", "{BCF9255A-4321-4277-AD7D-F5094092C554}" - ProjectSection(ProjectDependencies) = postProject - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E} = {C2D9E102-8E1D-4942-BA72-A55B152A5D0E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream", "ref\System.IO.UnmanagedMemoryStream.csproj", "{C2D9E102-8E1D-4942-BA72-A55B152A5D0E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{393BED6B-E473-4F7B-AD8C-3FA46327B09E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream", "ref\System.IO.UnmanagedMemoryStream.csproj", "{9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream", "src\System.IO.UnmanagedMemoryStream.csproj", "{658B1534-3B9E-4108-9AFE-161562723E9D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.UnmanagedMemoryStream.Tests", "tests\System.IO.UnmanagedMemoryStream.Tests.csproj", "{D14DC8D4-F45E-412D-AE98-CA07F900347B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{90EE22E9-504E-4CC3-BF8A-F08515FCD8C6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D7A11210-8298-43E5-B414-3019CC7E1A79}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B890249B-B590-4323-B1F6-0C1AB8E02D68}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8B05F6AF-E8A3-4A60-9EC1-90447B02A368}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E93BBBCD-CE36-4375-BE87-5958364BC773}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FF595B2-380D-4E4E-9323-919879B92415}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{1C319AEF-D516-48F5-8F90-E52AA14E5ECA}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {074D8726-9CC3-43B5-9D28-1AD33A6100F7} = {E93BBBCD-CE36-4375-BE87-5958364BC773} + {658B1534-3B9E-4108-9AFE-161562723E9D} = {E93BBBCD-CE36-4375-BE87-5958364BC773} + {B890249B-B590-4323-B1F6-0C1AB8E02D68} = {E93BBBCD-CE36-4375-BE87-5958364BC773} + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E} = {4FF595B2-380D-4E4E-9323-919879B92415} + {D14DC8D4-F45E-412D-AE98-CA07F900347B} = {4FF595B2-380D-4E4E-9323-919879B92415} + {393BED6B-E473-4F7B-AD8C-3FA46327B09E} = {1C319AEF-D516-48F5-8F90-E52AA14E5ECA} + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F} = {1C319AEF-D516-48F5-8F90-E52AA14E5ECA} + {D7A11210-8298-43E5-B414-3019CC7E1A79} = {1C319AEF-D516-48F5-8F90-E52AA14E5ECA} + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368} = {1C319AEF-D516-48F5-8F90-E52AA14E5ECA} + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F} = {1C319AEF-D516-48F5-8F90-E52AA14E5ECA} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {55F26FB1-D4AF-48CA-A470-83113AE7BFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55F26FB1-D4AF-48CA-A470-83113AE7BFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55F26FB1-D4AF-48CA-A470-83113AE7BFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55F26FB1-D4AF-48CA-A470-83113AE7BFDB}.Release|Any CPU.Build.0 = Release|Any CPU - {BCF9255A-4321-4277-AD7D-F5094092C554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BCF9255A-4321-4277-AD7D-F5094092C554}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BCF9255A-4321-4277-AD7D-F5094092C554}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BCF9255A-4321-4277-AD7D-F5094092C554}.Release|Any CPU.Build.0 = Release|Any CPU - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E}.Release|Any CPU.Build.0 = Release|Any CPU - {90EE22E9-504E-4CC3-BF8A-F08515FCD8C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90EE22E9-504E-4CC3-BF8A-F08515FCD8C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90EE22E9-504E-4CC3-BF8A-F08515FCD8C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90EE22E9-504E-4CC3-BF8A-F08515FCD8C6}.Release|Any CPU.Build.0 = Release|Any CPU + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|Any CPU.ActiveCfg = Debug|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|Any CPU.Build.0 = Debug|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|x64.ActiveCfg = Debug|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|x64.Build.0 = Debug|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|x86.ActiveCfg = Debug|x86 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Debug|x86.Build.0 = Debug|x86 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|Any CPU.ActiveCfg = Release|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|Any CPU.Build.0 = Release|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|x64.ActiveCfg = Release|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|x64.Build.0 = Release|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|x86.ActiveCfg = Release|x86 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Release|x86.Build.0 = Release|x86 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|Any CPU.ActiveCfg = Checked|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|Any CPU.Build.0 = Checked|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|x64.ActiveCfg = Checked|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|x64.Build.0 = Checked|x64 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|x86.ActiveCfg = Checked|x86 + {074D8726-9CC3-43B5-9D28-1AD33A6100F7}.Checked|x86.Build.0 = Checked|x86 + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|x64.Build.0 = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Debug|x86.Build.0 = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|Any CPU.Build.0 = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|x64.ActiveCfg = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|x64.Build.0 = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|x86.ActiveCfg = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Release|x86.Build.0 = Release|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Checked|x64.ActiveCfg = Debug|Any CPU + {7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}.Checked|x86.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|x64.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|x64.Build.0 = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|x86.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Debug|x86.Build.0 = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|Any CPU.Build.0 = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|x64.ActiveCfg = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|x64.Build.0 = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|x86.ActiveCfg = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Release|x86.Build.0 = Release|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Checked|x64.ActiveCfg = Debug|Any CPU + {393BED6B-E473-4F7B-AD8C-3FA46327B09E}.Checked|x86.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|x64.Build.0 = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Debug|x86.Build.0 = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|Any CPU.Build.0 = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|x64.ActiveCfg = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|x64.Build.0 = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|x86.ActiveCfg = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Release|x86.Build.0 = Release|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Checked|x64.ActiveCfg = Debug|Any CPU + {9ED000E5-2F8D-4B49-85BD-70E34AB2A26F}.Checked|x86.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|x64.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|x64.Build.0 = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|x86.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Debug|x86.Build.0 = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|Any CPU.Build.0 = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|x64.ActiveCfg = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|x64.Build.0 = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|x86.ActiveCfg = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Release|x86.Build.0 = Release|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Checked|x64.ActiveCfg = Debug|Any CPU + {658B1534-3B9E-4108-9AFE-161562723E9D}.Checked|x86.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|x64.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|x64.Build.0 = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|x86.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Debug|x86.Build.0 = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|Any CPU.Build.0 = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|x64.ActiveCfg = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|x64.Build.0 = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|x86.ActiveCfg = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Release|x86.Build.0 = Release|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Checked|x64.ActiveCfg = Debug|Any CPU + {D14DC8D4-F45E-412D-AE98-CA07F900347B}.Checked|x86.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|x64.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|x64.Build.0 = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|x86.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Debug|x86.Build.0 = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|Any CPU.Build.0 = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|x64.ActiveCfg = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|x64.Build.0 = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|x86.ActiveCfg = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Release|x86.Build.0 = Release|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Checked|x64.ActiveCfg = Debug|Any CPU + {D7A11210-8298-43E5-B414-3019CC7E1A79}.Checked|x86.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|x64.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|x64.Build.0 = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|x86.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Debug|x86.Build.0 = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|Any CPU.Build.0 = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|x64.ActiveCfg = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|x64.Build.0 = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|x86.ActiveCfg = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Release|x86.Build.0 = Release|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Checked|x64.ActiveCfg = Debug|Any CPU + {B890249B-B590-4323-B1F6-0C1AB8E02D68}.Checked|x86.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|x64.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|x64.Build.0 = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|x86.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Debug|x86.Build.0 = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|Any CPU.Build.0 = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|x64.ActiveCfg = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|x64.Build.0 = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|x86.ActiveCfg = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Release|x86.Build.0 = Release|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Checked|x64.ActiveCfg = Debug|Any CPU + {8B05F6AF-E8A3-4A60-9EC1-90447B02A368}.Checked|x86.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|x64.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|x64.Build.0 = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|x86.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Debug|x86.Build.0 = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|Any CPU.Build.0 = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|x64.ActiveCfg = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|x64.Build.0 = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|x86.ActiveCfg = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Release|x86.Build.0 = Release|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Checked|x64.ActiveCfg = Debug|Any CPU + {5FA5C83E-7DF5-4596-A5F8-DC7C8E7EE05F}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {55F26FB1-D4AF-48CA-A470-83113AE7BFDB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BCF9255A-4321-4277-AD7D-F5094092C554} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C2D9E102-8E1D-4942-BA72-A55B152A5D0E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {90EE22E9-504E-4CC3-BF8A-F08515FCD8C6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9E1FBBA6-089F-4262-ACA7-F928D3CB379C} + SolutionGuid = {819EC888-7F7A-4501-AC44-653366DC0DB8} EndGlobalSection EndGlobal diff --git a/src/libraries/System.IO/System.IO.sln b/src/libraries/System.IO/System.IO.sln index 061a9f392d2a..fa248eb5af82 100644 --- a/src/libraries/System.IO/System.IO.sln +++ b/src/libraries/System.IO/System.IO.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Tests", "tests\System.IO.Tests.csproj", "{BC2E1649-291D-412E-9529-EDDA94FA7AD6}" - ProjectSection(ProjectDependencies) = postProject - {5471BFE8-8071-466F-838E-5ADAA779E742} = {5471BFE8-8071-466F-838E-5ADAA779E742} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D11D3624-1322-45D1-A604-7E68CDB85BE8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO", "src\System.IO.csproj", "{5471BFE8-8071-466F-838E-5ADAA779E742}" - ProjectSection(ProjectDependencies) = postProject - {4ADD9456-A929-4254-B8A2-16FC628ABFDA} = {4ADD9456-A929-4254-B8A2-16FC628ABFDA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B96C7401-C6F9-447A-B95B-879CA5C7B982}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO", "ref\System.IO.csproj", "{4ADD9456-A929-4254-B8A2-16FC628ABFDA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO", "ref\System.IO.csproj", "{CB000FA4-3F31-4695-B221-60D59BEC0A5E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO", "src\System.IO.csproj", "{0769544B-1A5D-4D74-94FD-899DF6C39D62}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Tests", "tests\System.IO.Tests.csproj", "{72923407-7B7B-44A8-BCA6-2DB562835A8F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{602525FF-EE47-4938-8979-32DC962109E4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{55332A79-1F66-4557-98D7-7583A70E69E0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{AA5E80B2-A0AA-46F1-B319-5B528BAC382B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{0308343D-9E8A-42C8-8456-7BA3A6F3BE3B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D0D1CDAC-16F8-4382-A219-74A513CC1790}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5AD2C433-C661-4AD1-BD9F-D164ADC43512}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9FDAA57A-696B-4CB1-99AE-BCDF91848B75}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D9FD8082-D04C-4DA8-9F4C-261D1C65A6D3}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D11D3624-1322-45D1-A604-7E68CDB85BE8} = {5AD2C433-C661-4AD1-BD9F-D164ADC43512} + {72923407-7B7B-44A8-BCA6-2DB562835A8F} = {5AD2C433-C661-4AD1-BD9F-D164ADC43512} + {B96C7401-C6F9-447A-B95B-879CA5C7B982} = {9FDAA57A-696B-4CB1-99AE-BCDF91848B75} + {CB000FA4-3F31-4695-B221-60D59BEC0A5E} = {9FDAA57A-696B-4CB1-99AE-BCDF91848B75} + {602525FF-EE47-4938-8979-32DC962109E4} = {9FDAA57A-696B-4CB1-99AE-BCDF91848B75} + {0308343D-9E8A-42C8-8456-7BA3A6F3BE3B} = {9FDAA57A-696B-4CB1-99AE-BCDF91848B75} + {D0D1CDAC-16F8-4382-A219-74A513CC1790} = {9FDAA57A-696B-4CB1-99AE-BCDF91848B75} + {0769544B-1A5D-4D74-94FD-899DF6C39D62} = {D9FD8082-D04C-4DA8-9F4C-261D1C65A6D3} + {AA5E80B2-A0AA-46F1-B319-5B528BAC382B} = {D9FD8082-D04C-4DA8-9F4C-261D1C65A6D3} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC2E1649-291D-412E-9529-EDDA94FA7AD6}.Release|Any CPU.Build.0 = Release|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5471BFE8-8071-466F-838E-5ADAA779E742}.Release|Any CPU.Build.0 = Release|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4ADD9456-A929-4254-B8A2-16FC628ABFDA}.Release|Any CPU.Build.0 = Release|Any CPU - {55332A79-1F66-4557-98D7-7583A70E69E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55332A79-1F66-4557-98D7-7583A70E69E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55332A79-1F66-4557-98D7-7583A70E69E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55332A79-1F66-4557-98D7-7583A70E69E0}.Release|Any CPU.Build.0 = Release|Any CPU + {D11D3624-1322-45D1-A604-7E68CDB85BE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D11D3624-1322-45D1-A604-7E68CDB85BE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D11D3624-1322-45D1-A604-7E68CDB85BE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D11D3624-1322-45D1-A604-7E68CDB85BE8}.Release|Any CPU.Build.0 = Release|Any CPU + {B96C7401-C6F9-447A-B95B-879CA5C7B982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B96C7401-C6F9-447A-B95B-879CA5C7B982}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B96C7401-C6F9-447A-B95B-879CA5C7B982}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B96C7401-C6F9-447A-B95B-879CA5C7B982}.Release|Any CPU.Build.0 = Release|Any CPU + {CB000FA4-3F31-4695-B221-60D59BEC0A5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB000FA4-3F31-4695-B221-60D59BEC0A5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB000FA4-3F31-4695-B221-60D59BEC0A5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB000FA4-3F31-4695-B221-60D59BEC0A5E}.Release|Any CPU.Build.0 = Release|Any CPU + {0769544B-1A5D-4D74-94FD-899DF6C39D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0769544B-1A5D-4D74-94FD-899DF6C39D62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0769544B-1A5D-4D74-94FD-899DF6C39D62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0769544B-1A5D-4D74-94FD-899DF6C39D62}.Release|Any CPU.Build.0 = Release|Any CPU + {72923407-7B7B-44A8-BCA6-2DB562835A8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72923407-7B7B-44A8-BCA6-2DB562835A8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72923407-7B7B-44A8-BCA6-2DB562835A8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72923407-7B7B-44A8-BCA6-2DB562835A8F}.Release|Any CPU.Build.0 = Release|Any CPU + {602525FF-EE47-4938-8979-32DC962109E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {602525FF-EE47-4938-8979-32DC962109E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {602525FF-EE47-4938-8979-32DC962109E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {602525FF-EE47-4938-8979-32DC962109E4}.Release|Any CPU.Build.0 = Release|Any CPU + {AA5E80B2-A0AA-46F1-B319-5B528BAC382B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA5E80B2-A0AA-46F1-B319-5B528BAC382B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA5E80B2-A0AA-46F1-B319-5B528BAC382B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA5E80B2-A0AA-46F1-B319-5B528BAC382B}.Release|Any CPU.Build.0 = Release|Any CPU + {0308343D-9E8A-42C8-8456-7BA3A6F3BE3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0308343D-9E8A-42C8-8456-7BA3A6F3BE3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0308343D-9E8A-42C8-8456-7BA3A6F3BE3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0308343D-9E8A-42C8-8456-7BA3A6F3BE3B}.Release|Any CPU.Build.0 = Release|Any CPU + {D0D1CDAC-16F8-4382-A219-74A513CC1790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0D1CDAC-16F8-4382-A219-74A513CC1790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0D1CDAC-16F8-4382-A219-74A513CC1790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0D1CDAC-16F8-4382-A219-74A513CC1790}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BC2E1649-291D-412E-9529-EDDA94FA7AD6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5471BFE8-8071-466F-838E-5ADAA779E742} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4ADD9456-A929-4254-B8A2-16FC628ABFDA} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {55332A79-1F66-4557-98D7-7583A70E69E0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E6964E6C-E54F-4BA8-A2C5-941226478E2C} + SolutionGuid = {C3EF571A-C18D-483F-9EFC-CDB71C73548E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Linq.Expressions/System.Linq.Expressions.sln b/src/libraries/System.Linq.Expressions/System.Linq.Expressions.sln index dec408083821..ca4edd1913dc 100644 --- a/src/libraries/System.Linq.Expressions/System.Linq.Expressions.sln +++ b/src/libraries/System.Linq.Expressions/System.Linq.Expressions.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions.Tests", "tests\System.Linq.Expressions.Tests.csproj", "{4B4AA59B-89F9-4A34-B3C3-C97EF531EE00}" - ProjectSection(ProjectDependencies) = postProject - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787} = {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8E74EBBC-51CD-4D60-A560-B7A97CB3D388}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions", "src\System.Linq.Expressions.csproj", "{AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787}" - ProjectSection(ProjectDependencies) = postProject - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427} = {33B6ACE2-0B53-4054-8BF6-482F9E0E9427} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{748BBF35-2377-4BBA-B496-5A6699CF2F9D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions", "ref\System.Linq.Expressions.csproj", "{33B6ACE2-0B53-4054-8BF6-482F9E0E9427}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions", "ref\System.Linq.Expressions.csproj", "{F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions", "src\System.Linq.Expressions.csproj", "{1312B533-04ED-4268-8DAF-A7C69BC870A4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Expressions.Tests", "tests\System.Linq.Expressions.Tests.csproj", "{CAFF697E-0A65-49BA-9902-79D7D3B00326}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7A587E5E-D061-419C-AB5C-EC15243D5AC1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9F4AAFD2-64AD-4E84-821D-A3DAC415EB33}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{6FF12D47-9E45-48BD-9864-1D3CC2B7DF28}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{113A39A7-DD13-4AED-8573-3F27C171B8EB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6C1FC019-C0DE-42FC-B344-EFCC2C8A4692}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{106F102E-304B-4B9B-9602-D918D28A683A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BE6BDBA3-B3E0-4D1F-8E38-1C9C502AB179}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8E74EBBC-51CD-4D60-A560-B7A97CB3D388} = {6C1FC019-C0DE-42FC-B344-EFCC2C8A4692} + {CAFF697E-0A65-49BA-9902-79D7D3B00326} = {6C1FC019-C0DE-42FC-B344-EFCC2C8A4692} + {748BBF35-2377-4BBA-B496-5A6699CF2F9D} = {106F102E-304B-4B9B-9602-D918D28A683A} + {F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7} = {106F102E-304B-4B9B-9602-D918D28A683A} + {7A587E5E-D061-419C-AB5C-EC15243D5AC1} = {106F102E-304B-4B9B-9602-D918D28A683A} + {6FF12D47-9E45-48BD-9864-1D3CC2B7DF28} = {106F102E-304B-4B9B-9602-D918D28A683A} + {113A39A7-DD13-4AED-8573-3F27C171B8EB} = {106F102E-304B-4B9B-9602-D918D28A683A} + {1312B533-04ED-4268-8DAF-A7C69BC870A4} = {BE6BDBA3-B3E0-4D1F-8E38-1C9C502AB179} + {9F4AAFD2-64AD-4E84-821D-A3DAC415EB33} = {BE6BDBA3-B3E0-4D1F-8E38-1C9C502AB179} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B4AA59B-89F9-4A34-B3C3-C97EF531EE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B4AA59B-89F9-4A34-B3C3-C97EF531EE00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B4AA59B-89F9-4A34-B3C3-C97EF531EE00}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B4AA59B-89F9-4A34-B3C3-C97EF531EE00}.Release|Any CPU.Build.0 = Release|Any CPU - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787}.Release|Any CPU.Build.0 = Release|Any CPU - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427}.Release|Any CPU.Build.0 = Release|Any CPU - {4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2}.Release|Any CPU.Build.0 = Release|Any CPU + {8E74EBBC-51CD-4D60-A560-B7A97CB3D388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E74EBBC-51CD-4D60-A560-B7A97CB3D388}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E74EBBC-51CD-4D60-A560-B7A97CB3D388}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E74EBBC-51CD-4D60-A560-B7A97CB3D388}.Release|Any CPU.Build.0 = Release|Any CPU + {748BBF35-2377-4BBA-B496-5A6699CF2F9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {748BBF35-2377-4BBA-B496-5A6699CF2F9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {748BBF35-2377-4BBA-B496-5A6699CF2F9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {748BBF35-2377-4BBA-B496-5A6699CF2F9D}.Release|Any CPU.Build.0 = Release|Any CPU + {F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3817B5F-98D8-4BE8-8C00-0C166EFBC2B7}.Release|Any CPU.Build.0 = Release|Any CPU + {1312B533-04ED-4268-8DAF-A7C69BC870A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1312B533-04ED-4268-8DAF-A7C69BC870A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1312B533-04ED-4268-8DAF-A7C69BC870A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1312B533-04ED-4268-8DAF-A7C69BC870A4}.Release|Any CPU.Build.0 = Release|Any CPU + {CAFF697E-0A65-49BA-9902-79D7D3B00326}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAFF697E-0A65-49BA-9902-79D7D3B00326}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAFF697E-0A65-49BA-9902-79D7D3B00326}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAFF697E-0A65-49BA-9902-79D7D3B00326}.Release|Any CPU.Build.0 = Release|Any CPU + {7A587E5E-D061-419C-AB5C-EC15243D5AC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A587E5E-D061-419C-AB5C-EC15243D5AC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A587E5E-D061-419C-AB5C-EC15243D5AC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A587E5E-D061-419C-AB5C-EC15243D5AC1}.Release|Any CPU.Build.0 = Release|Any CPU + {9F4AAFD2-64AD-4E84-821D-A3DAC415EB33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F4AAFD2-64AD-4E84-821D-A3DAC415EB33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F4AAFD2-64AD-4E84-821D-A3DAC415EB33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F4AAFD2-64AD-4E84-821D-A3DAC415EB33}.Release|Any CPU.Build.0 = Release|Any CPU + {6FF12D47-9E45-48BD-9864-1D3CC2B7DF28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FF12D47-9E45-48BD-9864-1D3CC2B7DF28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FF12D47-9E45-48BD-9864-1D3CC2B7DF28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FF12D47-9E45-48BD-9864-1D3CC2B7DF28}.Release|Any CPU.Build.0 = Release|Any CPU + {113A39A7-DD13-4AED-8573-3F27C171B8EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {113A39A7-DD13-4AED-8573-3F27C171B8EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {113A39A7-DD13-4AED-8573-3F27C171B8EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {113A39A7-DD13-4AED-8573-3F27C171B8EB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4B4AA59B-89F9-4A34-B3C3-C97EF531EE00} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AEF718E9-D4FC-418F-A7AE-ED6B2C7B3787} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {33B6ACE2-0B53-4054-8BF6-482F9E0E9427} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {4E9A4CF1-81A5-4876-B23A-7B3CE8AF99A2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5D603D7D-D3BB-4FC0-8AEE-E3F4B0526975} + SolutionGuid = {AF9218A4-1E73-408C-BEF5-0300BD9DDEB0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Linq.Expressions/ref/System.Linq.Expressions.cs b/src/libraries/System.Linq.Expressions/ref/System.Linq.Expressions.cs index 09923d433d67..bf467f927d4f 100644 --- a/src/libraries/System.Linq.Expressions/ref/System.Linq.Expressions.cs +++ b/src/libraries/System.Linq.Expressions/ref/System.Linq.Expressions.cs @@ -834,7 +834,7 @@ public sealed partial class Expression : System.Linq.Expressions.Lamb public new TDelegate Compile() { throw null; } public new TDelegate Compile(bool preferInterpretation) { throw null; } public new TDelegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) { throw null; } - public System.Linq.Expressions.Expression? Update(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable? parameters) { throw null; } + public System.Linq.Expressions.Expression Update(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable? parameters) { throw null; } } public sealed partial class GotoExpression : System.Linq.Expressions.Expression { @@ -1008,7 +1008,7 @@ public partial class MethodCallExpression : System.Linq.Expressions.Expression, public sealed override System.Type Type { get { throw null; } } protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) { throw null; } System.Linq.Expressions.Expression System.Linq.Expressions.IArgumentProvider.GetArgument(int index) { throw null; } - public System.Linq.Expressions.MethodCallExpression Update(System.Linq.Expressions.Expression @object, System.Collections.Generic.IEnumerable? arguments) { throw null; } + public System.Linq.Expressions.MethodCallExpression Update(System.Linq.Expressions.Expression? @object, System.Collections.Generic.IEnumerable? arguments) { throw null; } } public partial class NewArrayExpression : System.Linq.Expressions.Expression { diff --git a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs index aab1e749747c..ce0cb7eb0327 100644 --- a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs +++ b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs @@ -183,7 +183,7 @@ private void EmitInvocationExpression(Expression expr, CompilationFlags flags) if (typeof(LambdaExpression).IsAssignableFrom(expr.Type)) { // if the invoke target is a lambda expression tree, first compile it into a delegate - expr = Expression.Call(expr, expr.Type.GetMethod("Compile", Array.Empty())!); + expr = Expression.Call(expr, expr.Type.GetMethod("Compile", Type.EmptyTypes)!); } EmitMethodCall(expr, expr.Type.GetInvokeMethod(), node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitExpressionStart); diff --git a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Interpreter/LightCompiler.cs b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Interpreter/LightCompiler.cs index 534a3f736988..6f9f915169e4 100644 --- a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Interpreter/LightCompiler.cs +++ b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Interpreter/LightCompiler.cs @@ -2671,7 +2671,7 @@ private void CompileInvocationExpression(Expression expr) if (typeof(LambdaExpression).IsAssignableFrom(node.Expression.Type)) { - MethodInfo compMethod = node.Expression.Type.GetMethod("Compile", Array.Empty())!; + MethodInfo compMethod = node.Expression.Type.GetMethod("Compile", Type.EmptyTypes)!; CompileMethodCallExpression( Expression.Call( node.Expression, diff --git a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs index 30ccac84af71..8f50c40fd7d3 100644 --- a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs +++ b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs @@ -219,7 +219,7 @@ public new TDelegate Compile(bool preferInterpretation) /// The property of the result. /// The property of the result. /// This expression if no children changed, or an expression with the updated children. - public Expression? Update(Expression body, IEnumerable? parameters) + public Expression Update(Expression body, IEnumerable? parameters) { if (body == Body) { diff --git a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/MethodCallExpression.cs b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/MethodCallExpression.cs index 9217c5efbf98..05155a1646c8 100644 --- a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/MethodCallExpression.cs +++ b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/MethodCallExpression.cs @@ -59,7 +59,7 @@ internal MethodCallExpression(MethodInfo method) /// The property of the result. /// The property of the result. /// This expression if no children changed, or an expression with the updated children. - public MethodCallExpression Update(Expression @object, IEnumerable? arguments) + public MethodCallExpression Update(Expression? @object, IEnumerable? arguments) { if (@object == Object) { diff --git a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/StackGuard.cs b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/StackGuard.cs index 22115b00c244..6bd919bc5fcf 100644 --- a/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/StackGuard.cs +++ b/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/StackGuard.cs @@ -28,43 +28,35 @@ public bool TryEnterOnCurrentStack() throw new InsufficientExecutionStackException(); } - public void RunOnEmptyStack(Action action, T1 arg1, T2 arg2) - { + public void RunOnEmptyStack(Action action, T1 arg1, T2 arg2) => RunOnEmptyStackCore(s => { - var t = (Tuple, T1, T2>)s; + var t = ((Action, T1, T2))s; t.Item1(t.Item2, t.Item3); return default(object); - }, Tuple.Create(action, arg1, arg2)); - } + }, (action, arg1, arg2)); - public void RunOnEmptyStack(Action action, T1 arg1, T2 arg2, T3 arg3) - { + public void RunOnEmptyStack(Action action, T1 arg1, T2 arg2, T3 arg3) => RunOnEmptyStackCore(s => { - var t = (Tuple, T1, T2, T3>)s; + var t = ((Action, T1, T2, T3))s; t.Item1(t.Item2, t.Item3, t.Item4); return default(object); - }, Tuple.Create(action, arg1, arg2, arg3)); - } + }, (action, arg1, arg2, arg3)); - public R RunOnEmptyStack(Func action, T1 arg1, T2 arg2) - { - return RunOnEmptyStackCore(s => + public R RunOnEmptyStack(Func action, T1 arg1, T2 arg2) => + RunOnEmptyStackCore(s => { - var t = (Tuple, T1, T2>)s; + var t = ((Func, T1, T2))s; return t.Item1(t.Item2, t.Item3); - }, Tuple.Create(action, arg1, arg2)); - } + }, (action, arg1, arg2)); - public R RunOnEmptyStack(Func action, T1 arg1, T2 arg2, T3 arg3) - { - return RunOnEmptyStackCore(s => + public R RunOnEmptyStack(Func action, T1 arg1, T2 arg2, T3 arg3) => + RunOnEmptyStackCore(s => { - var t = (Tuple, T1, T2, T3>)s; + var t = ((Func, T1, T2, T3))s; return t.Item1(t.Item2, t.Item3, t.Item4); - }, Tuple.Create(action, arg1, arg2, arg3)); - } + }, (action, arg1, arg2, arg3)); private R RunOnEmptyStackCore(Func action, object state) { diff --git a/src/libraries/System.Linq.Expressions/tests/DelegateType/DelegateCreationTests.cs b/src/libraries/System.Linq.Expressions/tests/DelegateType/DelegateCreationTests.cs index 264edef5ad3c..9237cf4ee61d 100644 --- a/src/libraries/System.Linq.Expressions/tests/DelegateType/DelegateCreationTests.cs +++ b/src/libraries/System.Linq.Expressions/tests/DelegateType/DelegateCreationTests.cs @@ -41,7 +41,7 @@ public static IEnumerable ExcessiveLengthOpenGenericTypeArgs() public static IEnumerable EmptyTypeArgs() { - yield return new object[] { Array.Empty() }; + yield return new object[] { Type.EmptyTypes }; } public static IEnumerable ByRefTypeArgs() diff --git a/src/libraries/System.Linq.Expressions/tests/ExceptionHandling/ExceptionHandlingExpressions.cs b/src/libraries/System.Linq.Expressions/tests/ExceptionHandling/ExceptionHandlingExpressions.cs index dea5dfc3c092..d9d1d951a441 100644 --- a/src/libraries/System.Linq.Expressions/tests/ExceptionHandling/ExceptionHandlingExpressions.cs +++ b/src/libraries/System.Linq.Expressions/tests/ExceptionHandling/ExceptionHandlingExpressions.cs @@ -258,7 +258,7 @@ public void CatchFromExternallyThrownString(bool useInterpreter) ModuleBuilder module = assembly.DefineDynamicModule("Name"); TypeBuilder type = module.DefineType("Type"); MethodBuilder throwingMethod = type.DefineMethod( - "WillThrow", MethodAttributes.Public | MethodAttributes.Static, typeof(void), Array.Empty()); + "WillThrow", MethodAttributes.Public | MethodAttributes.Static, typeof(void), Type.EmptyTypes); ILGenerator ilGen = throwingMethod.GetILGenerator(); ilGen.Emit(OpCodes.Ldstr, "An Exceptional Exception!"); ilGen.Emit(OpCodes.Throw); @@ -887,7 +887,7 @@ public void FilterBeforeInnerFinally(bool useInterpreter) */ ConstantExpression builder = Expression.Constant(sb); - Type[] noTypes = Array.Empty(); + Type[] noTypes = Type.EmptyTypes; TryExpression tryExp = Expression.TryCatch( Expression.TryFinally( Expression.Block( @@ -911,7 +911,7 @@ public void FilterBeforeInnerFault(bool useInterpreter) { StringBuilder sb = new StringBuilder(); ConstantExpression builder = Expression.Constant(sb); - Type[] noTypes = Array.Empty(); + Type[] noTypes = Type.EmptyTypes; TryExpression tryExp = Expression.TryCatch( Expression.TryFault( Expression.Block( diff --git a/src/libraries/System.Linq.Parallel/Directory.Build.props b/src/libraries/System.Linq.Parallel/Directory.Build.props index e8d65546d0c8..7c0e0c24870d 100644 --- a/src/libraries/System.Linq.Parallel/Directory.Build.props +++ b/src/libraries/System.Linq.Parallel/Directory.Build.props @@ -2,5 +2,6 @@ Microsoft + browser diff --git a/src/libraries/System.Linq.Parallel/System.Linq.Parallel.sln b/src/libraries/System.Linq.Parallel/System.Linq.Parallel.sln index c578e19ea0dc..594adf74e9ee 100644 --- a/src/libraries/System.Linq.Parallel/System.Linq.Parallel.sln +++ b/src/libraries/System.Linq.Parallel/System.Linq.Parallel.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel.Tests", "tests\System.Linq.Parallel.Tests.csproj", "{A7074928-82C3-4739-88FE-9B528977950C}" - ProjectSection(ProjectDependencies) = postProject - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD} = {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{FEAB4813-8FCB-4B06-8CA1-7743EA517F97}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel", "src\System.Linq.Parallel.csproj", "{BE28323E-327A-4E0F-B7F9-16AB7EAB59DD}" - ProjectSection(ProjectDependencies) = postProject - {670405FE-3828-436E-A668-A0F0B88B57A4} = {670405FE-3828-436E-A668-A0F0B88B57A4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9EE9A9E0-2E35-4231-AF1F-6E720D84D332}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel", "ref\System.Linq.Parallel.csproj", "{670405FE-3828-436E-A668-A0F0B88B57A4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel", "ref\System.Linq.Parallel.csproj", "{6201BF54-B81C-456D-BF3E-46C3404E720E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel", "src\System.Linq.Parallel.csproj", "{CDF79D0D-248D-48A5-A698-00D34FBA64E1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Parallel.Tests", "tests\System.Linq.Parallel.Tests.csproj", "{0B9B4D1C-998E-4323-84E9-02400EFFBC05}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{E5C01929-0B7E-46D0-9F93-8C61BD619601}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CCA17684-51B3-44EF-A369-FE4B439E9F36}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{1D74FA0C-9114-45B7-985C-E81B9A367931}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B885FA51-5CE4-43BF-845A-BA70DB91F864}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8A7C63F8-EBE3-4ECF-BAAA-2C390A623493}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0176FFAC-555D-47C6-9E39-596405537EBE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3A8E315E-74CC-46B4-9F02-2727619CDE00}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {FEAB4813-8FCB-4B06-8CA1-7743EA517F97} = {8A7C63F8-EBE3-4ECF-BAAA-2C390A623493} + {0B9B4D1C-998E-4323-84E9-02400EFFBC05} = {8A7C63F8-EBE3-4ECF-BAAA-2C390A623493} + {9EE9A9E0-2E35-4231-AF1F-6E720D84D332} = {0176FFAC-555D-47C6-9E39-596405537EBE} + {6201BF54-B81C-456D-BF3E-46C3404E720E} = {0176FFAC-555D-47C6-9E39-596405537EBE} + {E5C01929-0B7E-46D0-9F93-8C61BD619601} = {0176FFAC-555D-47C6-9E39-596405537EBE} + {4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0} = {0176FFAC-555D-47C6-9E39-596405537EBE} + {B885FA51-5CE4-43BF-845A-BA70DB91F864} = {0176FFAC-555D-47C6-9E39-596405537EBE} + {CDF79D0D-248D-48A5-A698-00D34FBA64E1} = {3A8E315E-74CC-46B4-9F02-2727619CDE00} + {1D74FA0C-9114-45B7-985C-E81B9A367931} = {3A8E315E-74CC-46B4-9F02-2727619CDE00} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A7074928-82C3-4739-88FE-9B528977950C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7074928-82C3-4739-88FE-9B528977950C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7074928-82C3-4739-88FE-9B528977950C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7074928-82C3-4739-88FE-9B528977950C}.Release|Any CPU.Build.0 = Release|Any CPU - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD}.Release|Any CPU.Build.0 = Release|Any CPU - {670405FE-3828-436E-A668-A0F0B88B57A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {670405FE-3828-436E-A668-A0F0B88B57A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {670405FE-3828-436E-A668-A0F0B88B57A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {670405FE-3828-436E-A668-A0F0B88B57A4}.Release|Any CPU.Build.0 = Release|Any CPU - {CCA17684-51B3-44EF-A369-FE4B439E9F36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCA17684-51B3-44EF-A369-FE4B439E9F36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCA17684-51B3-44EF-A369-FE4B439E9F36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCA17684-51B3-44EF-A369-FE4B439E9F36}.Release|Any CPU.Build.0 = Release|Any CPU + {FEAB4813-8FCB-4B06-8CA1-7743EA517F97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEAB4813-8FCB-4B06-8CA1-7743EA517F97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEAB4813-8FCB-4B06-8CA1-7743EA517F97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEAB4813-8FCB-4B06-8CA1-7743EA517F97}.Release|Any CPU.Build.0 = Release|Any CPU + {9EE9A9E0-2E35-4231-AF1F-6E720D84D332}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EE9A9E0-2E35-4231-AF1F-6E720D84D332}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EE9A9E0-2E35-4231-AF1F-6E720D84D332}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EE9A9E0-2E35-4231-AF1F-6E720D84D332}.Release|Any CPU.Build.0 = Release|Any CPU + {6201BF54-B81C-456D-BF3E-46C3404E720E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6201BF54-B81C-456D-BF3E-46C3404E720E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6201BF54-B81C-456D-BF3E-46C3404E720E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6201BF54-B81C-456D-BF3E-46C3404E720E}.Release|Any CPU.Build.0 = Release|Any CPU + {CDF79D0D-248D-48A5-A698-00D34FBA64E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDF79D0D-248D-48A5-A698-00D34FBA64E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDF79D0D-248D-48A5-A698-00D34FBA64E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDF79D0D-248D-48A5-A698-00D34FBA64E1}.Release|Any CPU.Build.0 = Release|Any CPU + {0B9B4D1C-998E-4323-84E9-02400EFFBC05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B9B4D1C-998E-4323-84E9-02400EFFBC05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B9B4D1C-998E-4323-84E9-02400EFFBC05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B9B4D1C-998E-4323-84E9-02400EFFBC05}.Release|Any CPU.Build.0 = Release|Any CPU + {E5C01929-0B7E-46D0-9F93-8C61BD619601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5C01929-0B7E-46D0-9F93-8C61BD619601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5C01929-0B7E-46D0-9F93-8C61BD619601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5C01929-0B7E-46D0-9F93-8C61BD619601}.Release|Any CPU.Build.0 = Release|Any CPU + {1D74FA0C-9114-45B7-985C-E81B9A367931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D74FA0C-9114-45B7-985C-E81B9A367931}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D74FA0C-9114-45B7-985C-E81B9A367931}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D74FA0C-9114-45B7-985C-E81B9A367931}.Release|Any CPU.Build.0 = Release|Any CPU + {4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DE5AA83-68F0-482E-96BB-AA1B0E42D0F0}.Release|Any CPU.Build.0 = Release|Any CPU + {B885FA51-5CE4-43BF-845A-BA70DB91F864}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B885FA51-5CE4-43BF-845A-BA70DB91F864}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B885FA51-5CE4-43BF-845A-BA70DB91F864}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B885FA51-5CE4-43BF-845A-BA70DB91F864}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A7074928-82C3-4739-88FE-9B528977950C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BE28323E-327A-4E0F-B7F9-16AB7EAB59DD} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {670405FE-3828-436E-A668-A0F0B88B57A4} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {CCA17684-51B3-44EF-A369-FE4B439E9F36} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CB4C5E0B-9F5A-494C-B631-D4921B68AFCC} + SolutionGuid = {872BA41A-3769-426E-AB70-515BC1724FC0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Linq.Queryable/System.Linq.Queryable.sln b/src/libraries/System.Linq.Queryable/System.Linq.Queryable.sln index 9d1d07ed6875..1c6361f517ca 100644 --- a/src/libraries/System.Linq.Queryable/System.Linq.Queryable.sln +++ b/src/libraries/System.Linq.Queryable/System.Linq.Queryable.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable.Tests", "tests\System.Linq.Queryable.Tests.csproj", "{7B88D79B-B799-4116-A7D0-AED572540CD4}" - ProjectSection(ProjectDependencies) = postProject - {BE12B753-C130-4B68-86E3-877F1AEE52C0} = {BE12B753-C130-4B68-86E3-877F1AEE52C0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{51EBF7EB-BE6B-4141-89A6-7F069CFF7E46}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable", "src\System.Linq.Queryable.csproj", "{BE12B753-C130-4B68-86E3-877F1AEE52C0}" - ProjectSection(ProjectDependencies) = postProject - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB} = {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{63F57A63-361E-48ED-93B8-3916E69FB504}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable", "ref\System.Linq.Queryable.csproj", "{61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable", "ref\System.Linq.Queryable.csproj", "{3C8FC554-3184-46F3-9AFC-C11507020B5F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable", "src\System.Linq.Queryable.csproj", "{EC9BDC43-2701-4942-AFAC-FED0555B60C9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Queryable.Tests", "tests\System.Linq.Queryable.Tests.csproj", "{40A8D49D-B8A3-4780-84D0-C6DBF37BF91E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9F5939EC-E5D9-4330-922C-C6BC297AF2D7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F8489E40-A57F-484B-AF45-BDEAC122E1D0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1A65D35D-A006-4DAF-AC24-43925BED798F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{7BC3BABD-F858-4C89-9D91-F5B5E93CAF33}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D4432745-DF32-404C-9C71-C28A2D676120}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BA64A575-4A84-42D2-B67E-24FB8B0808E2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9BB73014-B612-4DB8-ACE0-04C2B320A3A4}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {51EBF7EB-BE6B-4141-89A6-7F069CFF7E46} = {D4432745-DF32-404C-9C71-C28A2D676120} + {40A8D49D-B8A3-4780-84D0-C6DBF37BF91E} = {D4432745-DF32-404C-9C71-C28A2D676120} + {63F57A63-361E-48ED-93B8-3916E69FB504} = {BA64A575-4A84-42D2-B67E-24FB8B0808E2} + {3C8FC554-3184-46F3-9AFC-C11507020B5F} = {BA64A575-4A84-42D2-B67E-24FB8B0808E2} + {975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E} = {BA64A575-4A84-42D2-B67E-24FB8B0808E2} + {1A65D35D-A006-4DAF-AC24-43925BED798F} = {BA64A575-4A84-42D2-B67E-24FB8B0808E2} + {7BC3BABD-F858-4C89-9D91-F5B5E93CAF33} = {BA64A575-4A84-42D2-B67E-24FB8B0808E2} + {EC9BDC43-2701-4942-AFAC-FED0555B60C9} = {9BB73014-B612-4DB8-ACE0-04C2B320A3A4} + {F8489E40-A57F-484B-AF45-BDEAC122E1D0} = {9BB73014-B612-4DB8-ACE0-04C2B320A3A4} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7B88D79B-B799-4116-A7D0-AED572540CD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B88D79B-B799-4116-A7D0-AED572540CD4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B88D79B-B799-4116-A7D0-AED572540CD4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B88D79B-B799-4116-A7D0-AED572540CD4}.Release|Any CPU.Build.0 = Release|Any CPU - {BE12B753-C130-4B68-86E3-877F1AEE52C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE12B753-C130-4B68-86E3-877F1AEE52C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE12B753-C130-4B68-86E3-877F1AEE52C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE12B753-C130-4B68-86E3-877F1AEE52C0}.Release|Any CPU.Build.0 = Release|Any CPU - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB}.Release|Any CPU.Build.0 = Release|Any CPU - {9F5939EC-E5D9-4330-922C-C6BC297AF2D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F5939EC-E5D9-4330-922C-C6BC297AF2D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F5939EC-E5D9-4330-922C-C6BC297AF2D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F5939EC-E5D9-4330-922C-C6BC297AF2D7}.Release|Any CPU.Build.0 = Release|Any CPU + {51EBF7EB-BE6B-4141-89A6-7F069CFF7E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51EBF7EB-BE6B-4141-89A6-7F069CFF7E46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51EBF7EB-BE6B-4141-89A6-7F069CFF7E46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51EBF7EB-BE6B-4141-89A6-7F069CFF7E46}.Release|Any CPU.Build.0 = Release|Any CPU + {63F57A63-361E-48ED-93B8-3916E69FB504}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63F57A63-361E-48ED-93B8-3916E69FB504}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63F57A63-361E-48ED-93B8-3916E69FB504}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63F57A63-361E-48ED-93B8-3916E69FB504}.Release|Any CPU.Build.0 = Release|Any CPU + {3C8FC554-3184-46F3-9AFC-C11507020B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C8FC554-3184-46F3-9AFC-C11507020B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C8FC554-3184-46F3-9AFC-C11507020B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C8FC554-3184-46F3-9AFC-C11507020B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {EC9BDC43-2701-4942-AFAC-FED0555B60C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC9BDC43-2701-4942-AFAC-FED0555B60C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC9BDC43-2701-4942-AFAC-FED0555B60C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC9BDC43-2701-4942-AFAC-FED0555B60C9}.Release|Any CPU.Build.0 = Release|Any CPU + {40A8D49D-B8A3-4780-84D0-C6DBF37BF91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40A8D49D-B8A3-4780-84D0-C6DBF37BF91E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40A8D49D-B8A3-4780-84D0-C6DBF37BF91E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40A8D49D-B8A3-4780-84D0-C6DBF37BF91E}.Release|Any CPU.Build.0 = Release|Any CPU + {975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {975DC1AB-9FE0-40A8-9D7F-14FB69F1D17E}.Release|Any CPU.Build.0 = Release|Any CPU + {F8489E40-A57F-484B-AF45-BDEAC122E1D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8489E40-A57F-484B-AF45-BDEAC122E1D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8489E40-A57F-484B-AF45-BDEAC122E1D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8489E40-A57F-484B-AF45-BDEAC122E1D0}.Release|Any CPU.Build.0 = Release|Any CPU + {1A65D35D-A006-4DAF-AC24-43925BED798F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A65D35D-A006-4DAF-AC24-43925BED798F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A65D35D-A006-4DAF-AC24-43925BED798F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A65D35D-A006-4DAF-AC24-43925BED798F}.Release|Any CPU.Build.0 = Release|Any CPU + {7BC3BABD-F858-4C89-9D91-F5B5E93CAF33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BC3BABD-F858-4C89-9D91-F5B5E93CAF33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BC3BABD-F858-4C89-9D91-F5B5E93CAF33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BC3BABD-F858-4C89-9D91-F5B5E93CAF33}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7B88D79B-B799-4116-A7D0-AED572540CD4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BE12B753-C130-4B68-86E3-877F1AEE52C0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {61C35AD0-AC18-44C4-A63C-BBCE2C75C0BB} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9F5939EC-E5D9-4330-922C-C6BC297AF2D7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {78DFDD37-5C9A-4B27-933B-72BED51D7743} + SolutionGuid = {EF81B838-4913-4654-BE99-E88F7656DE81} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Linq/System.Linq.sln b/src/libraries/System.Linq/System.Linq.sln index 8577d4ab5cf1..8643244fc6d5 100644 --- a/src/libraries/System.Linq/System.Linq.sln +++ b/src/libraries/System.Linq/System.Linq.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Tests", "tests\System.Linq.Tests.csproj", "{7C70BB15-870B-4946-8098-625DACD645A6}" - ProjectSection(ProjectDependencies) = postProject - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1} = {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{AF1B1B01-A4EC-45F4-AE51-CC1FA7892181}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq", "src\System.Linq.csproj", "{CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1}" - ProjectSection(ProjectDependencies) = postProject - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81} = {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E5F5B9CF-770F-438A-9595-7CF25F08C648}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq", "ref\System.Linq.csproj", "{E09DDC3B-0BBC-4275-A9DD-B366F4F02B81}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq", "ref\System.Linq.csproj", "{7E4C1F09-B4F2-470E-9E7B-2C386E93D657}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq", "src\System.Linq.csproj", "{14B966BB-CE23-4432-ADBB-89974389AC1D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Linq.Tests", "tests\System.Linq.Tests.csproj", "{80A4051B-4A36-4A8B-BA43-A5AB8AA959F3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8CC68C91-F169-4EAF-8DDA-963CD883B415}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{6EF5B962-4321-4D67-A560-E82B739AEAF4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CC926427-E13D-4C13-9FE8-9F4C048623B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{889F50AF-92F7-4076-9E76-0E3F1E7B7DFC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BE321AE5-D1E7-4E44-A961-702FD1CE4A45}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F7E8A1CD-9690-4DD6-9A11-945F5E1C6631}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2B45D427-3B70-47ED-A35D-1E329C687995}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {AF1B1B01-A4EC-45F4-AE51-CC1FA7892181} = {BE321AE5-D1E7-4E44-A961-702FD1CE4A45} + {80A4051B-4A36-4A8B-BA43-A5AB8AA959F3} = {BE321AE5-D1E7-4E44-A961-702FD1CE4A45} + {E5F5B9CF-770F-438A-9595-7CF25F08C648} = {F7E8A1CD-9690-4DD6-9A11-945F5E1C6631} + {7E4C1F09-B4F2-470E-9E7B-2C386E93D657} = {F7E8A1CD-9690-4DD6-9A11-945F5E1C6631} + {21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53} = {F7E8A1CD-9690-4DD6-9A11-945F5E1C6631} + {CC926427-E13D-4C13-9FE8-9F4C048623B7} = {F7E8A1CD-9690-4DD6-9A11-945F5E1C6631} + {889F50AF-92F7-4076-9E76-0E3F1E7B7DFC} = {F7E8A1CD-9690-4DD6-9A11-945F5E1C6631} + {14B966BB-CE23-4432-ADBB-89974389AC1D} = {2B45D427-3B70-47ED-A35D-1E329C687995} + {6EF5B962-4321-4D67-A560-E82B739AEAF4} = {2B45D427-3B70-47ED-A35D-1E329C687995} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7C70BB15-870B-4946-8098-625DACD645A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C70BB15-870B-4946-8098-625DACD645A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C70BB15-870B-4946-8098-625DACD645A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C70BB15-870B-4946-8098-625DACD645A6}.Release|Any CPU.Build.0 = Release|Any CPU - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1}.Release|Any CPU.Build.0 = Release|Any CPU - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81}.Release|Any CPU.Build.0 = Release|Any CPU - {8CC68C91-F169-4EAF-8DDA-963CD883B415}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CC68C91-F169-4EAF-8DDA-963CD883B415}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CC68C91-F169-4EAF-8DDA-963CD883B415}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CC68C91-F169-4EAF-8DDA-963CD883B415}.Release|Any CPU.Build.0 = Release|Any CPU + {AF1B1B01-A4EC-45F4-AE51-CC1FA7892181}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF1B1B01-A4EC-45F4-AE51-CC1FA7892181}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF1B1B01-A4EC-45F4-AE51-CC1FA7892181}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF1B1B01-A4EC-45F4-AE51-CC1FA7892181}.Release|Any CPU.Build.0 = Release|Any CPU + {E5F5B9CF-770F-438A-9595-7CF25F08C648}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5F5B9CF-770F-438A-9595-7CF25F08C648}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5F5B9CF-770F-438A-9595-7CF25F08C648}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5F5B9CF-770F-438A-9595-7CF25F08C648}.Release|Any CPU.Build.0 = Release|Any CPU + {7E4C1F09-B4F2-470E-9E7B-2C386E93D657}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E4C1F09-B4F2-470E-9E7B-2C386E93D657}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E4C1F09-B4F2-470E-9E7B-2C386E93D657}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E4C1F09-B4F2-470E-9E7B-2C386E93D657}.Release|Any CPU.Build.0 = Release|Any CPU + {14B966BB-CE23-4432-ADBB-89974389AC1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14B966BB-CE23-4432-ADBB-89974389AC1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14B966BB-CE23-4432-ADBB-89974389AC1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14B966BB-CE23-4432-ADBB-89974389AC1D}.Release|Any CPU.Build.0 = Release|Any CPU + {80A4051B-4A36-4A8B-BA43-A5AB8AA959F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80A4051B-4A36-4A8B-BA43-A5AB8AA959F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80A4051B-4A36-4A8B-BA43-A5AB8AA959F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80A4051B-4A36-4A8B-BA43-A5AB8AA959F3}.Release|Any CPU.Build.0 = Release|Any CPU + {21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21AED160-72CD-4B0C-A6B6-EEB5DBAF4A53}.Release|Any CPU.Build.0 = Release|Any CPU + {6EF5B962-4321-4D67-A560-E82B739AEAF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EF5B962-4321-4D67-A560-E82B739AEAF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EF5B962-4321-4D67-A560-E82B739AEAF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6EF5B962-4321-4D67-A560-E82B739AEAF4}.Release|Any CPU.Build.0 = Release|Any CPU + {CC926427-E13D-4C13-9FE8-9F4C048623B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC926427-E13D-4C13-9FE8-9F4C048623B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC926427-E13D-4C13-9FE8-9F4C048623B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC926427-E13D-4C13-9FE8-9F4C048623B7}.Release|Any CPU.Build.0 = Release|Any CPU + {889F50AF-92F7-4076-9E76-0E3F1E7B7DFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {889F50AF-92F7-4076-9E76-0E3F1E7B7DFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {889F50AF-92F7-4076-9E76-0E3F1E7B7DFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {889F50AF-92F7-4076-9E76-0E3F1E7B7DFC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7C70BB15-870B-4946-8098-625DACD645A6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CA488507-3B6E-4494-B7BE-7B4EEEB2C4D1} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {E09DDC3B-0BBC-4275-A9DD-B366F4F02B81} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {8CC68C91-F169-4EAF-8DDA-963CD883B415} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D671433C-CCEA-4551-8F80-3FFB386BCF74} + SolutionGuid = {A4970D79-BF1C-4343-9070-B409DBB69F93} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Linq/src/System/Linq/DefaultIfEmpty.cs b/src/libraries/System.Linq/src/System/Linq/DefaultIfEmpty.cs index a513a6eb7fe3..593a6b8a67b3 100644 --- a/src/libraries/System.Linq/src/System/Linq/DefaultIfEmpty.cs +++ b/src/libraries/System.Linq/src/System/Linq/DefaultIfEmpty.cs @@ -9,7 +9,7 @@ namespace System.Linq public static partial class Enumerable { public static IEnumerable DefaultIfEmpty(this IEnumerable source) => - DefaultIfEmpty(source, default!); + DefaultIfEmpty(source, default); public static IEnumerable DefaultIfEmpty(this IEnumerable source, TSource defaultValue) { diff --git a/src/libraries/System.Management/System.Management.sln b/src/libraries/System.Management/System.Management.sln index 769ae068c5e0..1f3fc6a1025b 100644 --- a/src/libraries/System.Management/System.Management.sln +++ b/src/libraries/System.Management/System.Management.sln @@ -1,60 +1,170 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management.Tests", "tests\System.Management.Tests.csproj", "{5456707C-489E-4562-846E-B9598569F6BE}" - ProjectSection(ProjectDependencies) = postProject - {950923D8-EC99-4F90-9BA6-8EB64582C555} = {950923D8-EC99-4F90-9BA6-8EB64582C555} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{45B6D324-6008-4A22-8AFD-1F96A2CF8CF3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management", "src\System.Management.csproj", "{950923D8-EC99-4F90-9BA6-8EB64582C555}" - ProjectSection(ProjectDependencies) = postProject - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB} = {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{EAF6A3C1-7B56-412F-90EA-C9B6212A71DC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management", "ref\System.Management.csproj", "{CA17270B-079F-4D52-97E8-C0C2E8B9D7DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{C6A273C2-6898-413B-A2E7-72BCB8B978FB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\ref\System.CodeDom.csproj", "{EAEFAF2D-A83D-4813-BD23-56009A3691D9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\src\System.CodeDom.csproj", "{7B9EB977-908A-43CB-B2FB-E4E34373F3BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{86F0F693-CDB8-411C-94C8-0CA8990ED56B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1A89E1EB-BD66-4F95-B4BA-A40927C738B3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{932532F7-2735-4196-9F0E-CE0794BF385A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{7D0A08FA-EF09-4C64-8676-A0CFD002A074}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management", "ref\System.Management.csproj", "{12233594-0AC7-45C7-B4E7-8DAF161A299E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management", "src\System.Management.csproj", "{D31C6457-B81D-4503-938B-93877DDDBDB5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Management.Tests", "tests\System.Management.Tests.csproj", "{7113AE59-F125-4378-B93A-9C5C1450B306}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{52002ED5-FD42-4D7D-9F05-DF35437D34B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{8725B39F-DB87-4980-95DD-3DD9C0C13F27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{C76091F8-D9A4-4C43-8780-C41045F6FF2B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{B198BB3E-C6E8-4E78-A6ED-D518941CAB65}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{915A2A15-1DE3-42B1-A5CA-8FD0C453CA79}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{5377455B-6988-4D08-8E05-275CCDB0BBD5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{C7C6E8BD-304B-499B-9A7E-E19CF4E3342C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{C96C5661-9E1F-41DD-AD33-F393C4F9D79B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{216FDF3D-191F-4BF4-A44E-652D5BBB25B4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {45B6D324-6008-4A22-8AFD-1F96A2CF8CF3} = {216FDF3D-191F-4BF4-A44E-652D5BBB25B4} + {7113AE59-F125-4378-B93A-9C5C1450B306} = {216FDF3D-191F-4BF4-A44E-652D5BBB25B4} + {EAF6A3C1-7B56-412F-90EA-C9B6212A71DC} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {EAEFAF2D-A83D-4813-BD23-56009A3691D9} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {86F0F693-CDB8-411C-94C8-0CA8990ED56B} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {932532F7-2735-4196-9F0E-CE0794BF385A} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {12233594-0AC7-45C7-B4E7-8DAF161A299E} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {52002ED5-FD42-4D7D-9F05-DF35437D34B0} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {C76091F8-D9A4-4C43-8780-C41045F6FF2B} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {915A2A15-1DE3-42B1-A5CA-8FD0C453CA79} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {C7C6E8BD-304B-499B-9A7E-E19CF4E3342C} = {CFFEB73A-7437-45BC-BA3D-82F5DD76D7DC} + {C6A273C2-6898-413B-A2E7-72BCB8B978FB} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {7B9EB977-908A-43CB-B2FB-E4E34373F3BF} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {7D0A08FA-EF09-4C64-8676-A0CFD002A074} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {D31C6457-B81D-4503-938B-93877DDDBDB5} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {8725B39F-DB87-4980-95DD-3DD9C0C13F27} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {B198BB3E-C6E8-4E78-A6ED-D518941CAB65} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {5377455B-6988-4D08-8E05-275CCDB0BBD5} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + {C96C5661-9E1F-41DD-AD33-F393C4F9D79B} = {4AEF3B24-55C6-4A04-A31D-8A7EB1428EB7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5456707C-489E-4562-846E-B9598569F6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5456707C-489E-4562-846E-B9598569F6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5456707C-489E-4562-846E-B9598569F6BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5456707C-489E-4562-846E-B9598569F6BE}.Release|Any CPU.Build.0 = Release|Any CPU - {950923D8-EC99-4F90-9BA6-8EB64582C555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {950923D8-EC99-4F90-9BA6-8EB64582C555}.Debug|Any CPU.Build.0 = Debug|Any CPU - {950923D8-EC99-4F90-9BA6-8EB64582C555}.Release|Any CPU.ActiveCfg = Release|Any CPU - {950923D8-EC99-4F90-9BA6-8EB64582C555}.Release|Any CPU.Build.0 = Release|Any CPU - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB}.Release|Any CPU.Build.0 = Release|Any CPU - {1A89E1EB-BD66-4F95-B4BA-A40927C738B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A89E1EB-BD66-4F95-B4BA-A40927C738B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A89E1EB-BD66-4F95-B4BA-A40927C738B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A89E1EB-BD66-4F95-B4BA-A40927C738B3}.Release|Any CPU.Build.0 = Release|Any CPU + {45B6D324-6008-4A22-8AFD-1F96A2CF8CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45B6D324-6008-4A22-8AFD-1F96A2CF8CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45B6D324-6008-4A22-8AFD-1F96A2CF8CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45B6D324-6008-4A22-8AFD-1F96A2CF8CF3}.Release|Any CPU.Build.0 = Release|Any CPU + {EAF6A3C1-7B56-412F-90EA-C9B6212A71DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAF6A3C1-7B56-412F-90EA-C9B6212A71DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAF6A3C1-7B56-412F-90EA-C9B6212A71DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAF6A3C1-7B56-412F-90EA-C9B6212A71DC}.Release|Any CPU.Build.0 = Release|Any CPU + {C6A273C2-6898-413B-A2E7-72BCB8B978FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6A273C2-6898-413B-A2E7-72BCB8B978FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6A273C2-6898-413B-A2E7-72BCB8B978FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6A273C2-6898-413B-A2E7-72BCB8B978FB}.Release|Any CPU.Build.0 = Release|Any CPU + {EAEFAF2D-A83D-4813-BD23-56009A3691D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAEFAF2D-A83D-4813-BD23-56009A3691D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAEFAF2D-A83D-4813-BD23-56009A3691D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAEFAF2D-A83D-4813-BD23-56009A3691D9}.Release|Any CPU.Build.0 = Release|Any CPU + {7B9EB977-908A-43CB-B2FB-E4E34373F3BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B9EB977-908A-43CB-B2FB-E4E34373F3BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B9EB977-908A-43CB-B2FB-E4E34373F3BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B9EB977-908A-43CB-B2FB-E4E34373F3BF}.Release|Any CPU.Build.0 = Release|Any CPU + {86F0F693-CDB8-411C-94C8-0CA8990ED56B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86F0F693-CDB8-411C-94C8-0CA8990ED56B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86F0F693-CDB8-411C-94C8-0CA8990ED56B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86F0F693-CDB8-411C-94C8-0CA8990ED56B}.Release|Any CPU.Build.0 = Release|Any CPU + {932532F7-2735-4196-9F0E-CE0794BF385A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {932532F7-2735-4196-9F0E-CE0794BF385A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {932532F7-2735-4196-9F0E-CE0794BF385A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {932532F7-2735-4196-9F0E-CE0794BF385A}.Release|Any CPU.Build.0 = Release|Any CPU + {7D0A08FA-EF09-4C64-8676-A0CFD002A074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D0A08FA-EF09-4C64-8676-A0CFD002A074}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D0A08FA-EF09-4C64-8676-A0CFD002A074}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D0A08FA-EF09-4C64-8676-A0CFD002A074}.Release|Any CPU.Build.0 = Release|Any CPU + {12233594-0AC7-45C7-B4E7-8DAF161A299E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12233594-0AC7-45C7-B4E7-8DAF161A299E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12233594-0AC7-45C7-B4E7-8DAF161A299E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12233594-0AC7-45C7-B4E7-8DAF161A299E}.Release|Any CPU.Build.0 = Release|Any CPU + {D31C6457-B81D-4503-938B-93877DDDBDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D31C6457-B81D-4503-938B-93877DDDBDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D31C6457-B81D-4503-938B-93877DDDBDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D31C6457-B81D-4503-938B-93877DDDBDB5}.Release|Any CPU.Build.0 = Release|Any CPU + {7113AE59-F125-4378-B93A-9C5C1450B306}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7113AE59-F125-4378-B93A-9C5C1450B306}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7113AE59-F125-4378-B93A-9C5C1450B306}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7113AE59-F125-4378-B93A-9C5C1450B306}.Release|Any CPU.Build.0 = Release|Any CPU + {6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C1690B5-0B0F-4193-88AB-2E1CD77ACFDB}.Release|Any CPU.Build.0 = Release|Any CPU + {52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52D7D724-C8EE-4D4B-A5D4-AFB4FECCCAD6}.Release|Any CPU.Build.0 = Release|Any CPU + {52002ED5-FD42-4D7D-9F05-DF35437D34B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52002ED5-FD42-4D7D-9F05-DF35437D34B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52002ED5-FD42-4D7D-9F05-DF35437D34B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52002ED5-FD42-4D7D-9F05-DF35437D34B0}.Release|Any CPU.Build.0 = Release|Any CPU + {8725B39F-DB87-4980-95DD-3DD9C0C13F27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8725B39F-DB87-4980-95DD-3DD9C0C13F27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8725B39F-DB87-4980-95DD-3DD9C0C13F27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8725B39F-DB87-4980-95DD-3DD9C0C13F27}.Release|Any CPU.Build.0 = Release|Any CPU + {C76091F8-D9A4-4C43-8780-C41045F6FF2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C76091F8-D9A4-4C43-8780-C41045F6FF2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C76091F8-D9A4-4C43-8780-C41045F6FF2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C76091F8-D9A4-4C43-8780-C41045F6FF2B}.Release|Any CPU.Build.0 = Release|Any CPU + {B198BB3E-C6E8-4E78-A6ED-D518941CAB65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B198BB3E-C6E8-4E78-A6ED-D518941CAB65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B198BB3E-C6E8-4E78-A6ED-D518941CAB65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B198BB3E-C6E8-4E78-A6ED-D518941CAB65}.Release|Any CPU.Build.0 = Release|Any CPU + {915A2A15-1DE3-42B1-A5CA-8FD0C453CA79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {915A2A15-1DE3-42B1-A5CA-8FD0C453CA79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {915A2A15-1DE3-42B1-A5CA-8FD0C453CA79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {915A2A15-1DE3-42B1-A5CA-8FD0C453CA79}.Release|Any CPU.Build.0 = Release|Any CPU + {5377455B-6988-4D08-8E05-275CCDB0BBD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5377455B-6988-4D08-8E05-275CCDB0BBD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5377455B-6988-4D08-8E05-275CCDB0BBD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5377455B-6988-4D08-8E05-275CCDB0BBD5}.Release|Any CPU.Build.0 = Release|Any CPU + {C7C6E8BD-304B-499B-9A7E-E19CF4E3342C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C7C6E8BD-304B-499B-9A7E-E19CF4E3342C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C7C6E8BD-304B-499B-9A7E-E19CF4E3342C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C7C6E8BD-304B-499B-9A7E-E19CF4E3342C}.Release|Any CPU.Build.0 = Release|Any CPU + {C96C5661-9E1F-41DD-AD33-F393C4F9D79B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C96C5661-9E1F-41DD-AD33-F393C4F9D79B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C96C5661-9E1F-41DD-AD33-F393C4F9D79B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C96C5661-9E1F-41DD-AD33-F393C4F9D79B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5456707C-489E-4562-846E-B9598569F6BE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {950923D8-EC99-4F90-9BA6-8EB64582C555} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {CA17270B-079F-4D52-97E8-C0C2E8B9D7DB} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {1A89E1EB-BD66-4F95-B4BA-A40927C738B3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {37A7EF3B-1189-45B9-AA16-511BF8BFE57B} + SolutionGuid = {9D09EF76-3A6B-4481-95BC-9E56C3DCD30A} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Memory.Data/Directory.Build.props b/src/libraries/System.Memory.Data/Directory.Build.props new file mode 100644 index 000000000000..2923488dfd88 --- /dev/null +++ b/src/libraries/System.Memory.Data/Directory.Build.props @@ -0,0 +1,6 @@ + + + + Open + + diff --git a/src/libraries/System.Memory.Data/README.md b/src/libraries/System.Memory.Data/README.md new file mode 100644 index 000000000000..1044f2671817 --- /dev/null +++ b/src/libraries/System.Memory.Data/README.md @@ -0,0 +1,67 @@ +# System.Memory.Data library for .NET + +## Binary Data + The `BinaryData` type provides a lightweight abstraction for a payload of bytes. It provides convenient helper methods to get out commonly used primitives, such as streams, strings, or bytes. The assumption when converting to and from string is that the encoding is UTF-8. + + ### Data ownership + When using the `byte[]` or `ReadOnlyMemory` constructors or methods, `BinaryData` will wrap the passed in bytes. When using streams, strings, or rich model types that will be serialized as Json, the data is converted into bytes and will be maintained by `BinaryData`. Thus, if you are using bytes to create your instance of `BinaryData`, changes to the underlying data will be reflected in `BinaryData` as it does not copy the bytes. + + ### Usage + The main value of this type is its ability to easily convert from string to bytes to stream. This can greatly simplify API surface areas by exposing this type as opposed to numerous overloads or properties. + +To/From string: +```C# Snippet:BinaryDataToFromString +var data = new BinaryData("some data"); + +// ToString will decode the bytes using UTF-8 +Console.WriteLine(data.ToString()); // prints "some data" +``` + + To/From bytes: +```C# Snippet:BinaryDataToFromBytes +byte[] bytes = Encoding.UTF8.GetBytes("some data"); + +// Create BinaryData using a constructor ... +BinaryData data = new BinaryData(bytes); + +// Or using a static factory method. +data = BinaryData.FromBytes(bytes); + +// There is an implicit cast defined for ReadOnlyMemory +ReadOnlyMemory rom = data; + +// There is also an implicit cast defined for ReadOnlySpan +ReadOnlySpan ros = data; + +// there is also a ToMemory method that gives access to the ReadOnlyMemory. +rom = data.ToMemory(); + +// and a ToArray method that converts into a byte array. +byte[] array = data.ToArray(); +``` +To/From stream: +```C# Snippet:BinaryDataToFromStream +var bytes = Encoding.UTF8.GetBytes("some data"); +Stream stream = new MemoryStream(bytes); +var data = BinaryData.FromStream(stream); + +// Calling ToStream will give back a stream that is backed by ReadOnlyMemory, so it is not writable. +stream = data.ToStream(); +Console.WriteLine(stream.CanWrite); // prints false +``` + + `BinaryData` also can be used to integrate with `ObjectSerializer`. By default, the `JsonObjectSerializer` will be used, but any serializer deriving from `ObjectSerializer` can be used. +```C# Snippet:BinaryDataToFromCustomModel +var model = new CustomModel +{ + A = "some text", + B = 5, + C = true +}; + +var data = BinaryData.FromObjectAsJson(model); +model = data.ToObjectFromJson(); +``` + + + diff --git a/src/libraries/System.Memory.Data/System.Memory.Data.sln b/src/libraries/System.Memory.Data/System.Memory.Data.sln new file mode 100644 index 000000000000..ca60518a7cbf --- /dev/null +++ b/src/libraries/System.Memory.Data/System.Memory.Data.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30525.21 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory.Data", "src\System.Memory.Data.csproj", "{ACDB56AF-7B9F-4762-9764-D6FF09118D09}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{C69DBDA3-E371-432E-AAD0-DA66308D82EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory.Data", "ref\System.Memory.Data.csproj", "{ACB7E0BF-015F-43DC-A2F5-85506173B223}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EDB43406-2853-40F0-8D38-E5A5962CCB14}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D734C4F1-B996-425C-B756-CB27A2C3BB2C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory.Data.Tests", "tests\System.Memory.Data.Tests.csproj", "{804B5D44-05A3-491E-A6AB-35C592E6703E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ACDB56AF-7B9F-4762-9764-D6FF09118D09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACDB56AF-7B9F-4762-9764-D6FF09118D09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACDB56AF-7B9F-4762-9764-D6FF09118D09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACDB56AF-7B9F-4762-9764-D6FF09118D09}.Release|Any CPU.Build.0 = Release|Any CPU + {ACB7E0BF-015F-43DC-A2F5-85506173B223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACB7E0BF-015F-43DC-A2F5-85506173B223}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACB7E0BF-015F-43DC-A2F5-85506173B223}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACB7E0BF-015F-43DC-A2F5-85506173B223}.Release|Any CPU.Build.0 = Release|Any CPU + {804B5D44-05A3-491E-A6AB-35C592E6703E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {804B5D44-05A3-491E-A6AB-35C592E6703E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {804B5D44-05A3-491E-A6AB-35C592E6703E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {804B5D44-05A3-491E-A6AB-35C592E6703E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {ACDB56AF-7B9F-4762-9764-D6FF09118D09} = {EDB43406-2853-40F0-8D38-E5A5962CCB14} + {ACB7E0BF-015F-43DC-A2F5-85506173B223} = {C69DBDA3-E371-432E-AAD0-DA66308D82EE} + {804B5D44-05A3-491E-A6AB-35C592E6703E} = {D734C4F1-B996-425C-B756-CB27A2C3BB2C} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {01DAF96B-AF8E-4576-A1BC-57D19BDB317E} + EndGlobalSection +EndGlobal diff --git a/src/libraries/System.Memory.Data/pkg/System.Memory.Data.pkgproj b/src/libraries/System.Memory.Data/pkg/System.Memory.Data.pkgproj new file mode 100644 index 000000000000..f7170bd42191 --- /dev/null +++ b/src/libraries/System.Memory.Data/pkg/System.Memory.Data.pkgproj @@ -0,0 +1,9 @@ + + + + + net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks) + + + + \ No newline at end of file diff --git a/src/libraries/System.Memory.Data/ref/System.Memory.Data.cs b/src/libraries/System.Memory.Data/ref/System.Memory.Data.cs new file mode 100644 index 000000000000..ad36607e4426 --- /dev/null +++ b/src/libraries/System.Memory.Data/ref/System.Memory.Data.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// ------------------------------------------------------------------------------ +// Changes to this file must follow the https://aka.ms/api-review process. +// ------------------------------------------------------------------------------ + +namespace System +{ + public partial class BinaryData + { + public BinaryData(byte[] data) { } + public BinaryData(object? jsonSerializable, System.Text.Json.JsonSerializerOptions? options = null, System.Type? type = null) { } + public BinaryData(System.ReadOnlyMemory data) { } + public BinaryData(string data) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object? obj) { throw null; } + public static System.BinaryData FromBytes(byte[] data) { throw null; } + public static System.BinaryData FromBytes(System.ReadOnlyMemory data) { throw null; } + public static System.BinaryData FromObjectAsJson(T jsonSerializable, System.Text.Json.JsonSerializerOptions? options = null) { throw null; } + public static System.BinaryData FromStream(System.IO.Stream stream) { throw null; } + public static System.Threading.Tasks.Task FromStreamAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.BinaryData FromString(string data) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static implicit operator System.ReadOnlyMemory (System.BinaryData? data) { throw null; } + public static implicit operator System.ReadOnlySpan (System.BinaryData? data) { throw null; } + public byte[] ToArray() { throw null; } + public System.ReadOnlyMemory ToMemory() { throw null; } + public T ToObjectFromJson(System.Text.Json.JsonSerializerOptions? options = null) { throw null; } + public System.IO.Stream ToStream() { throw null; } + public override string ToString() { throw null; } + } +} diff --git a/src/libraries/System.Memory.Data/ref/System.Memory.Data.csproj b/src/libraries/System.Memory.Data/ref/System.Memory.Data.csproj new file mode 100644 index 000000000000..c5537ac47ec0 --- /dev/null +++ b/src/libraries/System.Memory.Data/ref/System.Memory.Data.csproj @@ -0,0 +1,13 @@ + + + net461;netstandard2.0 + enable + + + + + + + + + diff --git a/src/libraries/System.Utf8String.Experimental/src/Resources/Strings.resx b/src/libraries/System.Memory.Data/src/Resources/Strings.resx similarity index 69% rename from src/libraries/System.Utf8String.Experimental/src/Resources/Strings.resx rename to src/libraries/System.Memory.Data/src/Resources/Strings.resx index 3d5159021118..0636747bf984 100644 --- a/src/libraries/System.Utf8String.Experimental/src/Resources/Strings.resx +++ b/src/libraries/System.Memory.Data/src/Resources/Strings.resx @@ -1,4 +1,4 @@ - + - + diff --git a/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/NetworkAddressChange.UnknownUnix.cs b/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/NetworkAddressChange.UnknownUnix.cs index d22aa8b3a4af..cac7dc0a6601 100644 --- a/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/NetworkAddressChange.UnknownUnix.cs +++ b/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/NetworkAddressChange.UnknownUnix.cs @@ -1,10 +1,22 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Generic; +using System.Threading; + namespace System.Net.NetworkInformation { public partial class NetworkChange { + static NetworkChange() + { + // fake usage of static readonly fields to avoid getting CA1823 warning when we are compiling this partial. + var addressChangedSubscribers = new Dictionary(s_addressChangedSubscribers); + var availabilityChangedSubscribers = new Dictionary(s_availabilityChangedSubscribers); + NetworkAvailabilityEventArgs args = addressChangedSubscribers.Count > 0 ? s_availableEventArgs : s_notAvailableEventArgs; + ContextCallback callbackContext = s_runAddressChangedHandler != null ? s_runHandlerAvailable : s_runHandlerNotAvailable; + } + public static event NetworkAddressChangedEventHandler? NetworkAddressChanged { add { throw new PlatformNotSupportedException(); } diff --git a/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Connections.cs b/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Connections.cs index 5f2548e5102b..f48a231517ef 100644 --- a/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Connections.cs +++ b/src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Connections.cs @@ -42,8 +42,20 @@ internal static TcpConnectionInformation[] ParseActiveTcpConnectionsFromFiles(st string tcp6FileContents = File.ReadAllText(tcp6ConnectionsFile); string[] v6connections = tcp6FileContents.Split(s_newLineSeparator, StringSplitOptions.RemoveEmptyEntries); + // First line is header in each file. On WSL, this file may be empty. + int count = 0; + if (v4connections.Length > 0) + { + count += v4connections.Length - 1; + } + + if (v6connections.Length > 0) + { + count += v6connections.Length - 1; + } + // First line is header in each file. - TcpConnectionInformation[] connections = new TcpConnectionInformation[v4connections.Length + v6connections.Length - 2]; + TcpConnectionInformation[] connections = new TcpConnectionInformation[count]; int index = 0; int skip = 0; @@ -98,8 +110,20 @@ internal static IPEndPoint[] ParseActiveTcpListenersFromFiles(string tcp4Connect string tcp6FileContents = File.ReadAllText(tcp6ConnectionsFile); string[] v6connections = tcp6FileContents.Split(s_newLineSeparator, StringSplitOptions.RemoveEmptyEntries); + // First line is header in each file. On WSL, this file may be empty. + int count = 0; + if (v4connections.Length > 0) + { + count += v4connections.Length - 1; + } + + if (v6connections.Length > 0) + { + count += v6connections.Length - 1; + } + // First line is header in each file. - IPEndPoint[] endPoints = new IPEndPoint[v4connections.Length + v6connections.Length - 2]; + IPEndPoint[] endPoints = new IPEndPoint[count]; int index = 0; int skip = 0; @@ -154,8 +178,19 @@ public static IPEndPoint[] ParseActiveUdpListenersFromFiles(string udp4File, str string udp6FileContents = File.ReadAllText(udp6File); string[] v6connections = udp6FileContents.Split(s_newLineSeparator, StringSplitOptions.RemoveEmptyEntries); - // First line is header in each file. - IPEndPoint[] endPoints = new IPEndPoint[v4connections.Length + v6connections.Length - 2]; + // First line is header in each file. On WSL, this file may be empty. + int count = 0; + if (v4connections.Length > 0) + { + count += v4connections.Length - 1; + } + + if (v6connections.Length > 0) + { + count += v6connections.Length - 1; + } + + IPEndPoint[] endPoints = new IPEndPoint[count]; int index = 0; // UDP Connections diff --git a/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/ConnectionsParsingTests.cs b/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/ConnectionsParsingTests.cs index ce5cc0954383..6a5764c98d91 100644 --- a/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/ConnectionsParsingTests.cs +++ b/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/ConnectionsParsingTests.cs @@ -128,6 +128,22 @@ public void UdpListenersParsing() Assert.Equal(listeners[16], new IPEndPoint(IPAddress.Parse("fe80::215:5dff:fe00:402"), 123)); } + [Fact] + public void WSLListenersParsing() + { + // WSL1 may have files empty + string emptyFile = GetTestFilePath(); + FileUtil.NormalizeLineEndings("NetworkFiles/empty", emptyFile); + + IPEndPoint[] tcpListeners = StringParsingHelpers.ParseActiveTcpListenersFromFiles(emptyFile, emptyFile); + IPEndPoint[] udpListeners = StringParsingHelpers.ParseActiveUdpListenersFromFiles(emptyFile, emptyFile); + TcpConnectionInformation[] tcpConnections = StringParsingHelpers.ParseActiveTcpConnectionsFromFiles(emptyFile, emptyFile); + + Assert.Equal(0, tcpListeners.Length); + Assert.Equal(0, udpListeners.Length); + Assert.Equal(0, tcpConnections.Length); + } + private static void ValidateInfo(TcpConnectionInformation tcpConnectionInformation, IPEndPoint localEP, IPEndPoint remoteEP, TcpState state) { Assert.Equal(localEP, tcpConnectionInformation.LocalEndPoint); diff --git a/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/NetworkFiles/empty b/src/libraries/System.Net.NetworkInformation/tests/FunctionalTests/NetworkFiles/empty new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/src/libraries/System.Net.Ping/System.Net.Ping.sln b/src/libraries/System.Net.Ping/System.Net.Ping.sln index fe220d95b8d0..74cf24aaec62 100644 --- a/src/libraries/System.Net.Ping/System.Net.Ping.sln +++ b/src/libraries/System.Net.Ping/System.Net.Ping.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping.Functional.Tests", "tests\FunctionalTests\System.Net.Ping.Functional.Tests.csproj", "{43CE20B7-389B-41BB-8390-447521DF3BD4}" - ProjectSection(ProjectDependencies) = postProject - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD} = {85FD05E8-A4B1-4B89-ABED-33AFD200CABD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{37231AFF-11DE-41E7-85A7-F23D136D254E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping", "src\System.Net.Ping.csproj", "{85FD05E8-A4B1-4B89-ABED-33AFD200CABD}" - ProjectSection(ProjectDependencies) = postProject - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE} = {933C2AC2-1188-45D1-B0C1-08D6382DC0BE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FD7585AD-9162-445C-AE46-C8D201783E6D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping", "ref\System.Net.Ping.csproj", "{933C2AC2-1188-45D1-B0C1-08D6382DC0BE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping", "ref\System.Net.Ping.csproj", "{A16A6C85-DF86-44A1-9032-238C223A0AE0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping", "src\System.Net.Ping.csproj", "{65B08958-069E-4F8B-A996-2A987ACCAA49}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Ping.Functional.Tests", "tests\FunctionalTests\System.Net.Ping.Functional.Tests.csproj", "{E2A63467-3D66-448C-BF81-5DF684E02AD3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{948D0208-37D1-48B7-91AE-138D9A2C7751}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{32414BE5-0115-4393-8F5F-F7ABC3EC1905}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A4450C98-3F50-40E7-A4DE-BBEE9186BBA2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{2E973302-8A55-48F8-AFE1-69585525DD43}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9318DE2E-B10E-403D-9BC2-8433D71A0F39}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4D0ECFB1-F9C6-4BDD-B303-C392011DAC03}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6FD77420-2E46-4A66-AABD-246A29228E7A}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {37231AFF-11DE-41E7-85A7-F23D136D254E} = {9318DE2E-B10E-403D-9BC2-8433D71A0F39} + {E2A63467-3D66-448C-BF81-5DF684E02AD3} = {9318DE2E-B10E-403D-9BC2-8433D71A0F39} + {FD7585AD-9162-445C-AE46-C8D201783E6D} = {4D0ECFB1-F9C6-4BDD-B303-C392011DAC03} + {A16A6C85-DF86-44A1-9032-238C223A0AE0} = {4D0ECFB1-F9C6-4BDD-B303-C392011DAC03} + {948D0208-37D1-48B7-91AE-138D9A2C7751} = {4D0ECFB1-F9C6-4BDD-B303-C392011DAC03} + {A4450C98-3F50-40E7-A4DE-BBEE9186BBA2} = {4D0ECFB1-F9C6-4BDD-B303-C392011DAC03} + {2E973302-8A55-48F8-AFE1-69585525DD43} = {4D0ECFB1-F9C6-4BDD-B303-C392011DAC03} + {65B08958-069E-4F8B-A996-2A987ACCAA49} = {6FD77420-2E46-4A66-AABD-246A29228E7A} + {D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4} = {6FD77420-2E46-4A66-AABD-246A29228E7A} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {43CE20B7-389B-41BB-8390-447521DF3BD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43CE20B7-389B-41BB-8390-447521DF3BD4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43CE20B7-389B-41BB-8390-447521DF3BD4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43CE20B7-389B-41BB-8390-447521DF3BD4}.Release|Any CPU.Build.0 = Release|Any CPU - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD}.Release|Any CPU.Build.0 = Release|Any CPU - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE}.Release|Any CPU.Build.0 = Release|Any CPU - {32414BE5-0115-4393-8F5F-F7ABC3EC1905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {32414BE5-0115-4393-8F5F-F7ABC3EC1905}.Debug|Any CPU.Build.0 = Debug|Any CPU - {32414BE5-0115-4393-8F5F-F7ABC3EC1905}.Release|Any CPU.ActiveCfg = Release|Any CPU - {32414BE5-0115-4393-8F5F-F7ABC3EC1905}.Release|Any CPU.Build.0 = Release|Any CPU + {37231AFF-11DE-41E7-85A7-F23D136D254E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37231AFF-11DE-41E7-85A7-F23D136D254E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37231AFF-11DE-41E7-85A7-F23D136D254E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37231AFF-11DE-41E7-85A7-F23D136D254E}.Release|Any CPU.Build.0 = Release|Any CPU + {FD7585AD-9162-445C-AE46-C8D201783E6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD7585AD-9162-445C-AE46-C8D201783E6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD7585AD-9162-445C-AE46-C8D201783E6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD7585AD-9162-445C-AE46-C8D201783E6D}.Release|Any CPU.Build.0 = Release|Any CPU + {A16A6C85-DF86-44A1-9032-238C223A0AE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A16A6C85-DF86-44A1-9032-238C223A0AE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A16A6C85-DF86-44A1-9032-238C223A0AE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A16A6C85-DF86-44A1-9032-238C223A0AE0}.Release|Any CPU.Build.0 = Release|Any CPU + {65B08958-069E-4F8B-A996-2A987ACCAA49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65B08958-069E-4F8B-A996-2A987ACCAA49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65B08958-069E-4F8B-A996-2A987ACCAA49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65B08958-069E-4F8B-A996-2A987ACCAA49}.Release|Any CPU.Build.0 = Release|Any CPU + {E2A63467-3D66-448C-BF81-5DF684E02AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2A63467-3D66-448C-BF81-5DF684E02AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2A63467-3D66-448C-BF81-5DF684E02AD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2A63467-3D66-448C-BF81-5DF684E02AD3}.Release|Any CPU.Build.0 = Release|Any CPU + {948D0208-37D1-48B7-91AE-138D9A2C7751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {948D0208-37D1-48B7-91AE-138D9A2C7751}.Debug|Any CPU.Build.0 = Debug|Any CPU + {948D0208-37D1-48B7-91AE-138D9A2C7751}.Release|Any CPU.ActiveCfg = Release|Any CPU + {948D0208-37D1-48B7-91AE-138D9A2C7751}.Release|Any CPU.Build.0 = Release|Any CPU + {D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5C17482-80DE-4E7F-A4BB-E6D80CD5B2F4}.Release|Any CPU.Build.0 = Release|Any CPU + {A4450C98-3F50-40E7-A4DE-BBEE9186BBA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4450C98-3F50-40E7-A4DE-BBEE9186BBA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4450C98-3F50-40E7-A4DE-BBEE9186BBA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4450C98-3F50-40E7-A4DE-BBEE9186BBA2}.Release|Any CPU.Build.0 = Release|Any CPU + {2E973302-8A55-48F8-AFE1-69585525DD43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E973302-8A55-48F8-AFE1-69585525DD43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E973302-8A55-48F8-AFE1-69585525DD43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E973302-8A55-48F8-AFE1-69585525DD43}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {43CE20B7-389B-41BB-8390-447521DF3BD4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {85FD05E8-A4B1-4B89-ABED-33AFD200CABD} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {933C2AC2-1188-45D1-B0C1-08D6382DC0BE} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {32414BE5-0115-4393-8F5F-F7ABC3EC1905} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {BEA60158-FDD1-493C-B511-B97F5CEAA877} + SolutionGuid = {23612E2C-7AC3-4D7B-812D-44BB88E94278} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Primitives/System.Net.Primitives.sln b/src/libraries/System.Net.Primitives/System.Net.Primitives.sln index c7b547d4a667..90c962e9f87f 100644 --- a/src/libraries/System.Net.Primitives/System.Net.Primitives.sln +++ b/src/libraries/System.Net.Primitives/System.Net.Primitives.sln @@ -1,80 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.Functional.Tests", "tests\FunctionalTests\System.Net.Primitives.Functional.Tests.csproj", "{E671BC9F-A64C-4504-8B00-7A3215B99AF9}" - ProjectSection(ProjectDependencies) = postProject - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} = {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.Pal.Tests", "tests\PalTests\System.Net.Primitives.Pal.Tests.csproj", "{7860A11A-1841-4416-8A30-28EEEB42C6BB}" - ProjectSection(ProjectDependencies) = postProject - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} = {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.UnitTests.Tests", "tests\UnitTests\System.Net.Primitives.UnitTests.Tests.csproj", "{FCFF9C63-CE7A-476E-8241-7B7236FFDBFB}" - ProjectSection(ProjectDependencies) = postProject - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} = {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives", "ref\System.Net.Primitives.csproj", "{9CCAA49E-21F5-407B-807F-A26A5F01FCF1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives", "src\System.Net.Primitives.csproj", "{8772BC91-7B55-49B9-94FA-4B1BE5BEAB55}" - ProjectSection(ProjectDependencies) = postProject - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8} = {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives", "src\System.Net.Primitives.csproj", "{08C53516-56AB-4D3B-B22F-7DC1B27EA7CE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives", "ref\System.Net.Primitives.csproj", "{D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.Functional.Tests", "tests\FunctionalTests\System.Net.Primitives.Functional.Tests.csproj", "{AD1FDD2C-E553-4E7D-8D8F-945A1D520E28}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.Pal.Tests", "tests\PalTests\System.Net.Primitives.Pal.Tests.csproj", "{3D1D85E0-1680-4B9E-89BC-AB80CE222620}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Primitives.UnitTests.Tests", "tests\UnitTests\System.Net.Primitives.UnitTests.Tests.csproj", "{598326BD-BCA8-48EC-A897-602DF1F247A3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F1989258-F5D7-4056-9831-518BD04F5863}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{23FB257B-BD10-4593-990E-ECB78A676038}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8C06D2A0-E74F-47CE-826C-74C6895E7D23}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DD2443D9-670F-4CB2-9389-ABE147FAEA84}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7F76EB2C-7CDA-4326-8C99-15F577092450}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1DE25CF0-0FE0-4F84-823B-DDAB13E2ECDC}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4} = {DD2443D9-670F-4CB2-9389-ABE147FAEA84} + {AD1FDD2C-E553-4E7D-8D8F-945A1D520E28} = {DD2443D9-670F-4CB2-9389-ABE147FAEA84} + {3D1D85E0-1680-4B9E-89BC-AB80CE222620} = {DD2443D9-670F-4CB2-9389-ABE147FAEA84} + {598326BD-BCA8-48EC-A897-602DF1F247A3} = {DD2443D9-670F-4CB2-9389-ABE147FAEA84} + {F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3} = {7F76EB2C-7CDA-4326-8C99-15F577092450} + {9CCAA49E-21F5-407B-807F-A26A5F01FCF1} = {7F76EB2C-7CDA-4326-8C99-15F577092450} + {F1989258-F5D7-4056-9831-518BD04F5863} = {7F76EB2C-7CDA-4326-8C99-15F577092450} + {8C06D2A0-E74F-47CE-826C-74C6895E7D23} = {7F76EB2C-7CDA-4326-8C99-15F577092450} + {D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81} = {7F76EB2C-7CDA-4326-8C99-15F577092450} + {08C53516-56AB-4D3B-B22F-7DC1B27EA7CE} = {1DE25CF0-0FE0-4F84-823B-DDAB13E2ECDC} + {8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0} = {1DE25CF0-0FE0-4F84-823B-DDAB13E2ECDC} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E671BC9F-A64C-4504-8B00-7A3215B99AF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E671BC9F-A64C-4504-8B00-7A3215B99AF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E671BC9F-A64C-4504-8B00-7A3215B99AF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E671BC9F-A64C-4504-8B00-7A3215B99AF9}.Release|Any CPU.Build.0 = Release|Any CPU - {7860A11A-1841-4416-8A30-28EEEB42C6BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7860A11A-1841-4416-8A30-28EEEB42C6BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7860A11A-1841-4416-8A30-28EEEB42C6BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7860A11A-1841-4416-8A30-28EEEB42C6BB}.Release|Any CPU.Build.0 = Release|Any CPU - {FCFF9C63-CE7A-476E-8241-7B7236FFDBFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FCFF9C63-CE7A-476E-8241-7B7236FFDBFB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FCFF9C63-CE7A-476E-8241-7B7236FFDBFB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FCFF9C63-CE7A-476E-8241-7B7236FFDBFB}.Release|Any CPU.Build.0 = Release|Any CPU - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55}.Release|Any CPU.Build.0 = Release|Any CPU - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8}.Release|Any CPU.Build.0 = Release|Any CPU - {23FB257B-BD10-4593-990E-ECB78A676038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23FB257B-BD10-4593-990E-ECB78A676038}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23FB257B-BD10-4593-990E-ECB78A676038}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23FB257B-BD10-4593-990E-ECB78A676038}.Release|Any CPU.Build.0 = Release|Any CPU + {8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F70DCFE-9367-4427-9DFB-90C9C9D5D1B4}.Release|Any CPU.Build.0 = Release|Any CPU + {F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F40E099B-A1CD-4B8A-B2E9-E7E294E4BFA3}.Release|Any CPU.Build.0 = Release|Any CPU + {9CCAA49E-21F5-407B-807F-A26A5F01FCF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CCAA49E-21F5-407B-807F-A26A5F01FCF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CCAA49E-21F5-407B-807F-A26A5F01FCF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CCAA49E-21F5-407B-807F-A26A5F01FCF1}.Release|Any CPU.Build.0 = Release|Any CPU + {08C53516-56AB-4D3B-B22F-7DC1B27EA7CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08C53516-56AB-4D3B-B22F-7DC1B27EA7CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08C53516-56AB-4D3B-B22F-7DC1B27EA7CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08C53516-56AB-4D3B-B22F-7DC1B27EA7CE}.Release|Any CPU.Build.0 = Release|Any CPU + {AD1FDD2C-E553-4E7D-8D8F-945A1D520E28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD1FDD2C-E553-4E7D-8D8F-945A1D520E28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD1FDD2C-E553-4E7D-8D8F-945A1D520E28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD1FDD2C-E553-4E7D-8D8F-945A1D520E28}.Release|Any CPU.Build.0 = Release|Any CPU + {3D1D85E0-1680-4B9E-89BC-AB80CE222620}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D1D85E0-1680-4B9E-89BC-AB80CE222620}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D1D85E0-1680-4B9E-89BC-AB80CE222620}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D1D85E0-1680-4B9E-89BC-AB80CE222620}.Release|Any CPU.Build.0 = Release|Any CPU + {598326BD-BCA8-48EC-A897-602DF1F247A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {598326BD-BCA8-48EC-A897-602DF1F247A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {598326BD-BCA8-48EC-A897-602DF1F247A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {598326BD-BCA8-48EC-A897-602DF1F247A3}.Release|Any CPU.Build.0 = Release|Any CPU + {F1989258-F5D7-4056-9831-518BD04F5863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1989258-F5D7-4056-9831-518BD04F5863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1989258-F5D7-4056-9831-518BD04F5863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1989258-F5D7-4056-9831-518BD04F5863}.Release|Any CPU.Build.0 = Release|Any CPU + {8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D5C59E4-66E7-4DC5-B1D5-711D5D3265C0}.Release|Any CPU.Build.0 = Release|Any CPU + {8C06D2A0-E74F-47CE-826C-74C6895E7D23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C06D2A0-E74F-47CE-826C-74C6895E7D23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C06D2A0-E74F-47CE-826C-74C6895E7D23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C06D2A0-E74F-47CE-826C-74C6895E7D23}.Release|Any CPU.Build.0 = Release|Any CPU + {D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1F5690C-18B5-4CA9-A4B2-715DFEDDFF81}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E671BC9F-A64C-4504-8B00-7A3215B99AF9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7860A11A-1841-4416-8A30-28EEEB42C6BB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FCFF9C63-CE7A-476E-8241-7B7236FFDBFB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8772BC91-7B55-49B9-94FA-4B1BE5BEAB55} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D7A4CF9D-78AA-4140-83E3-6BC43EF2DBB8} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {23FB257B-BD10-4593-990E-ECB78A676038} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {ED70270A-6412-44A6-81B6-1156337C55DF} + SolutionGuid = {E0D36CFB-AD15-487D-A647-F12B577FC5DF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj b/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj index 14827f6ce6cf..60cd3de352d3 100644 --- a/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj +++ b/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj @@ -153,6 +153,7 @@ + diff --git a/src/libraries/System.Net.Primitives/src/System/Net/CookieContainer.cs b/src/libraries/System.Net.Primitives/src/System/Net/CookieContainer.cs index 9728030b8cd4..e64873c04f61 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/CookieContainer.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/CookieContainer.cs @@ -5,8 +5,6 @@ using System.Collections; using System.Collections.Generic; using System.Diagnostics; -using System.IO; -using System.Linq; using System.Net.NetworkInformation; using System.Text; diff --git a/src/libraries/System.Net.Quic/System.Net.Quic.sln b/src/libraries/System.Net.Quic/System.Net.Quic.sln index cf5fba5e1115..3d6fa4fc8524 100644 --- a/src/libraries/System.Net.Quic/System.Net.Quic.sln +++ b/src/libraries/System.Net.Quic/System.Net.Quic.sln @@ -1,53 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic.Functional.Tests", "tests\FunctionalTests\System.Net.Quic.Functional.Tests.csproj", "{C85CF035-7804-41FF-9557-48B7C948B58D}" - ProjectSection(ProjectDependencies) = postProject - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE} = {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{55C933AA-2735-4B38-A1DD-01A27467AB18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic", "src\System.Net.Quic.csproj", "{1D422B1D-D7C4-41B9-862D-EB3D98DF37DE}" - ProjectSection(ProjectDependencies) = postProject - {132BF813-FC40-4D39-8B6F-E55D7633F0ED} = {132BF813-FC40-4D39-8B6F-E55D7633F0ED} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{69CDCFD5-AA35-40D8-A437-ED1C06E9CA95}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic", "ref\System.Net.Quic.csproj", "{132BF813-FC40-4D39-8B6F-E55D7633F0ED}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic", "ref\System.Net.Quic.csproj", "{D7A52855-C6DE-4FD0-9CAF-E55F292C69E5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic", "src\System.Net.Quic.csproj", "{4F87758B-D1AF-4DE3-A9A2-68B1558C02B7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Quic.Functional.Tests", "tests\FunctionalTests\System.Net.Quic.Functional.Tests.csproj", "{E8E7DD3A-EC3F-4472-9F70-B515A3D11038}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7BB8C50D-4770-42CB-BE15-76AD623A5AE8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{833418C5-FEC9-482F-A0D6-69DFC332C1B6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E1CABA2F-48AD-49FA-B872-BEED78C51980}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BDA10542-BE94-4A73-9B5B-6BE5CE57F883}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4BABFE90-C818-4772-9D2E-B92F69E1FCDF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DAC0D00A-6EB0-4A72-94BB-EB90B3EE72A9}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {55C933AA-2735-4B38-A1DD-01A27467AB18} = {BDA10542-BE94-4A73-9B5B-6BE5CE57F883} + {E8E7DD3A-EC3F-4472-9F70-B515A3D11038} = {BDA10542-BE94-4A73-9B5B-6BE5CE57F883} + {69CDCFD5-AA35-40D8-A437-ED1C06E9CA95} = {4BABFE90-C818-4772-9D2E-B92F69E1FCDF} + {D7A52855-C6DE-4FD0-9CAF-E55F292C69E5} = {4BABFE90-C818-4772-9D2E-B92F69E1FCDF} + {7BB8C50D-4770-42CB-BE15-76AD623A5AE8} = {4BABFE90-C818-4772-9D2E-B92F69E1FCDF} + {833418C5-FEC9-482F-A0D6-69DFC332C1B6} = {4BABFE90-C818-4772-9D2E-B92F69E1FCDF} + {E1CABA2F-48AD-49FA-B872-BEED78C51980} = {4BABFE90-C818-4772-9D2E-B92F69E1FCDF} + {4F87758B-D1AF-4DE3-A9A2-68B1558C02B7} = {DAC0D00A-6EB0-4A72-94BB-EB90B3EE72A9} + {9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0} = {DAC0D00A-6EB0-4A72-94BB-EB90B3EE72A9} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C85CF035-7804-41FF-9557-48B7C948B58D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C85CF035-7804-41FF-9557-48B7C948B58D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C85CF035-7804-41FF-9557-48B7C948B58D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C85CF035-7804-41FF-9557-48B7C948B58D}.Release|Any CPU.Build.0 = Release|Any CPU - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE}.Release|Any CPU.Build.0 = Release|Any CPU - {132BF813-FC40-4D39-8B6F-E55D7633F0ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {132BF813-FC40-4D39-8B6F-E55D7633F0ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {132BF813-FC40-4D39-8B6F-E55D7633F0ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {132BF813-FC40-4D39-8B6F-E55D7633F0ED}.Release|Any CPU.Build.0 = Release|Any CPU + {55C933AA-2735-4B38-A1DD-01A27467AB18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55C933AA-2735-4B38-A1DD-01A27467AB18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55C933AA-2735-4B38-A1DD-01A27467AB18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55C933AA-2735-4B38-A1DD-01A27467AB18}.Release|Any CPU.Build.0 = Release|Any CPU + {69CDCFD5-AA35-40D8-A437-ED1C06E9CA95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69CDCFD5-AA35-40D8-A437-ED1C06E9CA95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69CDCFD5-AA35-40D8-A437-ED1C06E9CA95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69CDCFD5-AA35-40D8-A437-ED1C06E9CA95}.Release|Any CPU.Build.0 = Release|Any CPU + {D7A52855-C6DE-4FD0-9CAF-E55F292C69E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7A52855-C6DE-4FD0-9CAF-E55F292C69E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7A52855-C6DE-4FD0-9CAF-E55F292C69E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7A52855-C6DE-4FD0-9CAF-E55F292C69E5}.Release|Any CPU.Build.0 = Release|Any CPU + {4F87758B-D1AF-4DE3-A9A2-68B1558C02B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F87758B-D1AF-4DE3-A9A2-68B1558C02B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F87758B-D1AF-4DE3-A9A2-68B1558C02B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F87758B-D1AF-4DE3-A9A2-68B1558C02B7}.Release|Any CPU.Build.0 = Release|Any CPU + {E8E7DD3A-EC3F-4472-9F70-B515A3D11038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8E7DD3A-EC3F-4472-9F70-B515A3D11038}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8E7DD3A-EC3F-4472-9F70-B515A3D11038}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8E7DD3A-EC3F-4472-9F70-B515A3D11038}.Release|Any CPU.Build.0 = Release|Any CPU + {7BB8C50D-4770-42CB-BE15-76AD623A5AE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BB8C50D-4770-42CB-BE15-76AD623A5AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BB8C50D-4770-42CB-BE15-76AD623A5AE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BB8C50D-4770-42CB-BE15-76AD623A5AE8}.Release|Any CPU.Build.0 = Release|Any CPU + {9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D56BA9E-1B0D-4320-9FE9-A2D326A32BE0}.Release|Any CPU.Build.0 = Release|Any CPU + {833418C5-FEC9-482F-A0D6-69DFC332C1B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {833418C5-FEC9-482F-A0D6-69DFC332C1B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {833418C5-FEC9-482F-A0D6-69DFC332C1B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {833418C5-FEC9-482F-A0D6-69DFC332C1B6}.Release|Any CPU.Build.0 = Release|Any CPU + {E1CABA2F-48AD-49FA-B872-BEED78C51980}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1CABA2F-48AD-49FA-B872-BEED78C51980}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1CABA2F-48AD-49FA-B872-BEED78C51980}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1CABA2F-48AD-49FA-B872-BEED78C51980}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C85CF035-7804-41FF-9557-48B7C948B58D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1D422B1D-D7C4-41B9-862D-EB3D98DF37DE} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {132BF813-FC40-4D39-8B6F-E55D7633F0ED} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5100F629-0FAB-4C6F-9A54-95AE9565EE0D} + SolutionGuid = {4B59ACCA-7F0C-4062-AA79-B3D75EFACCCD} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Quic/src/Resources/Strings.resx b/src/libraries/System.Net.Quic/src/Resources/Strings.resx index a4c46ca4e38b..07035519efaa 100644 --- a/src/libraries/System.Net.Quic/src/Resources/Strings.resx +++ b/src/libraries/System.Net.Quic/src/Resources/Strings.resx @@ -121,7 +121,7 @@ Connection aborted by peer ({0}). - QUIC is not supported on this platform. See http://aka.ms/dotnetquic + QUIC is not supported on this platform. See https://aka.ms/dotnetquic Operation aborted. diff --git a/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs b/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs index 0069a234b92a..5379f1ff1ce0 100644 --- a/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs +++ b/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs @@ -225,7 +225,7 @@ internal override async ValueTask ReadAsync(Memory destination, Cance throw new InvalidOperationException("Reading is not allowed on stream."); } - if (NetEventSource.IsEnabled) + if (NetEventSource.Log.IsEnabled()) { NetEventSource.Info(this, $"[{GetHashCode()}] reading into Memory of '{destination.Length}' bytes."); } @@ -479,7 +479,7 @@ private void EnableReceive() private uint HandleEvent(ref StreamEvent evt) { - if (NetEventSource.IsEnabled) + if (NetEventSource.Log.IsEnabled()) { NetEventSource.Info(this, $"[{GetHashCode()}] handling event '{evt.Type}'."); } diff --git a/src/libraries/System.Net.Requests/System.Net.Requests.sln b/src/libraries/System.Net.Requests/System.Net.Requests.sln index 892a4809b70f..65301351f368 100644 --- a/src/libraries/System.Net.Requests/System.Net.Requests.sln +++ b/src/libraries/System.Net.Requests/System.Net.Requests.sln @@ -1,60 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{E520B5FD-C6FF-46CF-8079-6C8098013EA3}" - ProjectSection(ProjectDependencies) = postProject - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{050A566C-C468-4AFB-84E4-FFC421983961}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests", "src\System.Net.Requests.csproj", "{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}" - ProjectSection(ProjectDependencies) = postProject - {F86C715C-E37B-4853-869E-D696AB3DB057} = {F86C715C-E37B-4853-869E-D696AB3DB057} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{795C417F-4C60-4D41-B8B3-A993AF95D87D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{F86C715C-E37B-4853-869E-D696AB3DB057}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{60B3EE55-D545-4817-A57D-99F38CBCD1A8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests", "src\System.Net.Requests.csproj", "{CCD28DAE-FEF6-4732-A985-B814A95B3408}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{45338E1A-5586-40E6-97AF-709DBBB85AEC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4EC53679-7072-4827-A166-0222A076C358}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{BADB548A-7A51-4B52-8498-69B6C0A1FD77}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{47150272-2C30-4431-A492-73B37276D8FA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BE561981-8140-4E5F-B0B2-206FF98DC51F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CFDAD3E9-6754-4B65-A755-8368E9C7C5C5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5ED8235D-B875-451C-9A74-B28F2FB4D813}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {050A566C-C468-4AFB-84E4-FFC421983961} = {BE561981-8140-4E5F-B0B2-206FF98DC51F} + {45338E1A-5586-40E6-97AF-709DBBB85AEC} = {BE561981-8140-4E5F-B0B2-206FF98DC51F} + {795C417F-4C60-4D41-B8B3-A993AF95D87D} = {CFDAD3E9-6754-4B65-A755-8368E9C7C5C5} + {60B3EE55-D545-4817-A57D-99F38CBCD1A8} = {CFDAD3E9-6754-4B65-A755-8368E9C7C5C5} + {4EC53679-7072-4827-A166-0222A076C358} = {CFDAD3E9-6754-4B65-A755-8368E9C7C5C5} + {47150272-2C30-4431-A492-73B37276D8FA} = {CFDAD3E9-6754-4B65-A755-8368E9C7C5C5} + {9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A} = {CFDAD3E9-6754-4B65-A755-8368E9C7C5C5} + {CCD28DAE-FEF6-4732-A985-B814A95B3408} = {5ED8235D-B875-451C-9A74-B28F2FB4D813} + {BADB548A-7A51-4B52-8498-69B6C0A1FD77} = {5ED8235D-B875-451C-9A74-B28F2FB4D813} + {6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4} = {5ED8235D-B875-451C-9A74-B28F2FB4D813} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.Build.0 = Release|Any CPU - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.Build.0 = Release|Any CPU - {F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.Build.0 = Release|Any CPU - {B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E}.Release|Any CPU.Build.0 = Release|Any CPU + {050A566C-C468-4AFB-84E4-FFC421983961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {050A566C-C468-4AFB-84E4-FFC421983961}.Debug|Any CPU.Build.0 = Debug|Any CPU + {050A566C-C468-4AFB-84E4-FFC421983961}.Release|Any CPU.ActiveCfg = Release|Any CPU + {050A566C-C468-4AFB-84E4-FFC421983961}.Release|Any CPU.Build.0 = Release|Any CPU + {795C417F-4C60-4D41-B8B3-A993AF95D87D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {795C417F-4C60-4D41-B8B3-A993AF95D87D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {795C417F-4C60-4D41-B8B3-A993AF95D87D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {795C417F-4C60-4D41-B8B3-A993AF95D87D}.Release|Any CPU.Build.0 = Release|Any CPU + {60B3EE55-D545-4817-A57D-99F38CBCD1A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60B3EE55-D545-4817-A57D-99F38CBCD1A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60B3EE55-D545-4817-A57D-99F38CBCD1A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60B3EE55-D545-4817-A57D-99F38CBCD1A8}.Release|Any CPU.Build.0 = Release|Any CPU + {CCD28DAE-FEF6-4732-A985-B814A95B3408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCD28DAE-FEF6-4732-A985-B814A95B3408}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCD28DAE-FEF6-4732-A985-B814A95B3408}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCD28DAE-FEF6-4732-A985-B814A95B3408}.Release|Any CPU.Build.0 = Release|Any CPU + {45338E1A-5586-40E6-97AF-709DBBB85AEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45338E1A-5586-40E6-97AF-709DBBB85AEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45338E1A-5586-40E6-97AF-709DBBB85AEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45338E1A-5586-40E6-97AF-709DBBB85AEC}.Release|Any CPU.Build.0 = Release|Any CPU + {4EC53679-7072-4827-A166-0222A076C358}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EC53679-7072-4827-A166-0222A076C358}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EC53679-7072-4827-A166-0222A076C358}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EC53679-7072-4827-A166-0222A076C358}.Release|Any CPU.Build.0 = Release|Any CPU + {BADB548A-7A51-4B52-8498-69B6C0A1FD77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BADB548A-7A51-4B52-8498-69B6C0A1FD77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BADB548A-7A51-4B52-8498-69B6C0A1FD77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BADB548A-7A51-4B52-8498-69B6C0A1FD77}.Release|Any CPU.Build.0 = Release|Any CPU + {47150272-2C30-4431-A492-73B37276D8FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47150272-2C30-4431-A492-73B37276D8FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47150272-2C30-4431-A492-73B37276D8FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47150272-2C30-4431-A492-73B37276D8FA}.Release|Any CPU.Build.0 = Release|Any CPU + {9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D14A15A-A8F3-4FE9-91CC-1B9CEA484B6A}.Release|Any CPU.Build.0 = Release|Any CPU + {6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D8841E2-0FE2-4476-BE4B-5BC29D85AAE4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E520B5FD-C6FF-46CF-8079-6C8098013EA3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F86C715C-E37B-4853-869E-D696AB3DB057} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B0F5B1D3-AD4E-4FB4-B35C-414BEB5B1D9E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {05B55060-524A-407F-A69E-BD06F6EBCFF3} + SolutionGuid = {D33CD477-CBDE-47CC-BDAB-7E9469CE3549} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs index 4abc37427c0c..f124d686cf01 100644 --- a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs +++ b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs @@ -511,12 +511,12 @@ public void TimeOut_SetThenGet_ValuesMatch(Uri remoteServer) } [Fact] - public async Task Timeout_SetTenMillisecondsOnLoopback_ThrowsWebException() + public async Task Timeout_Set30MillisecondsOnLoopback_ThrowsWebException() { await LoopbackServer.CreateServerAsync((server, url) => { HttpWebRequest request = WebRequest.CreateHttp(url); - request.Timeout = 10; // ms. + request.Timeout = 30; // ms. var sw = Stopwatch.StartNew(); WebException exception = Assert.Throws(() => request.GetResponse()); diff --git a/src/libraries/System.Net.Security/System.Net.Security.sln b/src/libraries/System.Net.Security/System.Net.Security.sln index f3222d308933..6ca2cc55112a 100644 --- a/src/libraries/System.Net.Security/System.Net.Security.sln +++ b/src/libraries/System.Net.Security/System.Net.Security.sln @@ -1,70 +1,128 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security.Tests", "tests\FunctionalTests\System.Net.Security.Tests.csproj", "{A55A2B9A-830F-4330-A0E7-02A9FB30ABD2}" - ProjectSection(ProjectDependencies) = postProject - {89F37791-6254-4D60-AB96-ACD3CCA0E771} = {89F37791-6254-4D60-AB96-ACD3CCA0E771} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{16B2F746-485C-4A15-883E-ABF2C885DD2A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security.Unit.Tests", "tests\UnitTests\System.Net.Security.Unit.Tests.csproj", "{0D174EA9-9E61-4519-8D31-7BD2331A1982}" - ProjectSection(ProjectDependencies) = postProject - {89F37791-6254-4D60-AB96-ACD3CCA0E771} = {89F37791-6254-4D60-AB96-ACD3CCA0E771} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security", "src\System.Net.Security.csproj", "{89F37791-6254-4D60-AB96-ACD3CCA0E771}" - ProjectSection(ProjectDependencies) = postProject - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8} = {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{441D4079-55B4-4C47-A0E5-1330DC9A31CB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security", "ref\System.Net.Security.csproj", "{A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security", "ref\System.Net.Security.csproj", "{97493212-ADF3-46AF-8669-F038964CDA22}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security", "src\System.Net.Security.csproj", "{20F20695-DB18-47EB-A005-AA432ADCF865}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security.Enterprise.Tests", "tests\EnterpriseTests\System.Net.Security.Enterprise.Tests.csproj", "{3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security.Tests", "tests\FunctionalTests\System.Net.Security.Tests.csproj", "{39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3C4504D2-95D0-4F41-9BC7-8335C3A0CF59}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Security.Unit.Tests", "tests\UnitTests\System.Net.Security.Unit.Tests.csproj", "{E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4379D1FD-1473-4F17-9AC6-85B02EA83250}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{754403CE-ECFC-4EBA-8540-BEB67476FF9F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{EFC33B10-5B46-4529-B70D-B4A50D36534A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "..\System.Security.Cryptography.OpenSsl\ref\System.Security.Cryptography.OpenSsl.csproj", "{B65FD865-2DDA-468F-82AE-39E7EDBBB142}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "..\System.Security.Cryptography.OpenSsl\src\System.Security.Cryptography.OpenSsl.csproj", "{E0D760D1-21BC-468F-B599-858ECFF4AB1D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{2D2AF982-F335-4326-A07D-43DF801D1FB9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8E18C47A-BFA7-4D32-ABD1-DECCA3D35C8F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{AE1750EC-129B-4EBE-B1A1-0E320044389B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {16B2F746-485C-4A15-883E-ABF2C885DD2A} = {8E18C47A-BFA7-4D32-ABD1-DECCA3D35C8F} + {3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D} = {8E18C47A-BFA7-4D32-ABD1-DECCA3D35C8F} + {39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28} = {8E18C47A-BFA7-4D32-ABD1-DECCA3D35C8F} + {E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA} = {8E18C47A-BFA7-4D32-ABD1-DECCA3D35C8F} + {5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {97493212-ADF3-46AF-8669-F038964CDA22} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {4379D1FD-1473-4F17-9AC6-85B02EA83250} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {EFC33B10-5B46-4529-B70D-B4A50D36534A} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {B65FD865-2DDA-468F-82AE-39E7EDBBB142} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {2D2AF982-F335-4326-A07D-43DF801D1FB9} = {AE1750EC-129B-4EBE-B1A1-0E320044389B} + {441D4079-55B4-4C47-A0E5-1330DC9A31CB} = {DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8} + {20F20695-DB18-47EB-A005-AA432ADCF865} = {DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8} + {754403CE-ECFC-4EBA-8540-BEB67476FF9F} = {DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8} + {E0D760D1-21BC-468F-B599-858ECFF4AB1D} = {DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8} + {80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1} = {DF50962D-38D3-4E65-ABD5-FBAC1E8E22A8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A55A2B9A-830F-4330-A0E7-02A9FB30ABD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A55A2B9A-830F-4330-A0E7-02A9FB30ABD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A55A2B9A-830F-4330-A0E7-02A9FB30ABD2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A55A2B9A-830F-4330-A0E7-02A9FB30ABD2}.Release|Any CPU.Build.0 = Release|Any CPU - {0D174EA9-9E61-4519-8D31-7BD2331A1982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D174EA9-9E61-4519-8D31-7BD2331A1982}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D174EA9-9E61-4519-8D31-7BD2331A1982}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D174EA9-9E61-4519-8D31-7BD2331A1982}.Release|Any CPU.Build.0 = Release|Any CPU - {89F37791-6254-4D60-AB96-ACD3CCA0E771}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89F37791-6254-4D60-AB96-ACD3CCA0E771}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89F37791-6254-4D60-AB96-ACD3CCA0E771}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89F37791-6254-4D60-AB96-ACD3CCA0E771}.Release|Any CPU.Build.0 = Release|Any CPU - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8}.Release|Any CPU.Build.0 = Release|Any CPU - {3C4504D2-95D0-4F41-9BC7-8335C3A0CF59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C4504D2-95D0-4F41-9BC7-8335C3A0CF59}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C4504D2-95D0-4F41-9BC7-8335C3A0CF59}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C4504D2-95D0-4F41-9BC7-8335C3A0CF59}.Release|Any CPU.Build.0 = Release|Any CPU + {16B2F746-485C-4A15-883E-ABF2C885DD2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16B2F746-485C-4A15-883E-ABF2C885DD2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16B2F746-485C-4A15-883E-ABF2C885DD2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16B2F746-485C-4A15-883E-ABF2C885DD2A}.Release|Any CPU.Build.0 = Release|Any CPU + {5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BDA6E43-2F8B-4C1A-97B1-CB4DB07CE5F1}.Release|Any CPU.Build.0 = Release|Any CPU + {441D4079-55B4-4C47-A0E5-1330DC9A31CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {441D4079-55B4-4C47-A0E5-1330DC9A31CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {441D4079-55B4-4C47-A0E5-1330DC9A31CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {441D4079-55B4-4C47-A0E5-1330DC9A31CB}.Release|Any CPU.Build.0 = Release|Any CPU + {97493212-ADF3-46AF-8669-F038964CDA22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97493212-ADF3-46AF-8669-F038964CDA22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97493212-ADF3-46AF-8669-F038964CDA22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97493212-ADF3-46AF-8669-F038964CDA22}.Release|Any CPU.Build.0 = Release|Any CPU + {20F20695-DB18-47EB-A005-AA432ADCF865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20F20695-DB18-47EB-A005-AA432ADCF865}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20F20695-DB18-47EB-A005-AA432ADCF865}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20F20695-DB18-47EB-A005-AA432ADCF865}.Release|Any CPU.Build.0 = Release|Any CPU + {3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B8B3E64-BF3B-46E6-8203-AA6D7D6A0F6D}.Release|Any CPU.Build.0 = Release|Any CPU + {39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39FCDE49-DBC3-442B-8B3E-8A5FDCAE8B28}.Release|Any CPU.Build.0 = Release|Any CPU + {E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E67AFB3A-4DEC-48A3-9B78-02FFAC7FF0EA}.Release|Any CPU.Build.0 = Release|Any CPU + {4379D1FD-1473-4F17-9AC6-85B02EA83250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4379D1FD-1473-4F17-9AC6-85B02EA83250}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4379D1FD-1473-4F17-9AC6-85B02EA83250}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4379D1FD-1473-4F17-9AC6-85B02EA83250}.Release|Any CPU.Build.0 = Release|Any CPU + {754403CE-ECFC-4EBA-8540-BEB67476FF9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {754403CE-ECFC-4EBA-8540-BEB67476FF9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {754403CE-ECFC-4EBA-8540-BEB67476FF9F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {754403CE-ECFC-4EBA-8540-BEB67476FF9F}.Release|Any CPU.Build.0 = Release|Any CPU + {EFC33B10-5B46-4529-B70D-B4A50D36534A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFC33B10-5B46-4529-B70D-B4A50D36534A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFC33B10-5B46-4529-B70D-B4A50D36534A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFC33B10-5B46-4529-B70D-B4A50D36534A}.Release|Any CPU.Build.0 = Release|Any CPU + {B65FD865-2DDA-468F-82AE-39E7EDBBB142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B65FD865-2DDA-468F-82AE-39E7EDBBB142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B65FD865-2DDA-468F-82AE-39E7EDBBB142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B65FD865-2DDA-468F-82AE-39E7EDBBB142}.Release|Any CPU.Build.0 = Release|Any CPU + {E0D760D1-21BC-468F-B599-858ECFF4AB1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0D760D1-21BC-468F-B599-858ECFF4AB1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0D760D1-21BC-468F-B599-858ECFF4AB1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0D760D1-21BC-468F-B599-858ECFF4AB1D}.Release|Any CPU.Build.0 = Release|Any CPU + {2D2AF982-F335-4326-A07D-43DF801D1FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D2AF982-F335-4326-A07D-43DF801D1FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D2AF982-F335-4326-A07D-43DF801D1FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D2AF982-F335-4326-A07D-43DF801D1FB9}.Release|Any CPU.Build.0 = Release|Any CPU + {80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80F5CE39-D33D-4CDD-ACD2-FA7597B6CBB1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A55A2B9A-830F-4330-A0E7-02A9FB30ABD2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0D174EA9-9E61-4519-8D31-7BD2331A1982} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {89F37791-6254-4D60-AB96-ACD3CCA0E771} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {A7488FC0-9A8F-4EF9-BC3E-C5EBA47E13F8} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3C4504D2-95D0-4F41-9BC7-8335C3A0CF59} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5681D01F-0E3B-4BB3-9251-B78F91819933} + SolutionGuid = {4803416B-CE32-4730-905F-645A9B766D2B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs index df02d7dea51e..3b19cd600a82 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs @@ -231,7 +231,7 @@ private SecurityStatusPal PrivateDecryptData(byte[]? buffer, ref int offset, ref return task.ContinueWith((t, s) => { - var tuple = (Tuple)s!; + var tuple = ((SslStream, ValueStopwatch))s!; SslStream thisRef = tuple.Item1; ValueStopwatch stopwatch = tuple.Item2; @@ -247,7 +247,7 @@ private SecurityStatusPal PrivateDecryptData(byte[]? buffer, ref int offset, ref t.GetAwaiter().GetResult(); } }, - state: Tuple.Create(this, stopwatch), + state: (this, stopwatch), cancellationToken: default, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Current); diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.Windows.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.Windows.cs index 0827eca16d57..fcb84b2dda6a 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.Windows.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.Windows.cs @@ -62,7 +62,7 @@ private SslStreamCertificateContext(X509Certificate2 target, X509Certificate2[] { store.Dispose(); store = null; - if (NetEventSource.IsEnabled) + if (NetEventSource.Log.IsEnabled()) { NetEventSource.Error(this, $"Failed to open certificate store for intermediates."); } diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs index 4cba3232be53..37f3e03eee1e 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs @@ -33,7 +33,7 @@ public static SslStreamCertificateContext Create(X509Certificate2 target, X509Ce chain.ChainPolicy.DisableCertificateDownloads = offline; bool chainStatus = chain.Build(target); - if (!chainStatus && NetEventSource.IsEnabled) + if (!chainStatus && NetEventSource.Log.IsEnabled()) { NetEventSource.Error(null, $"Failed to build chain for {target.Subject}"); } diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamPal.Windows.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamPal.Windows.cs index 89b474fe4bf4..b93e89957bc7 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamPal.Windows.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamPal.Windows.cs @@ -216,7 +216,7 @@ public static unsafe SafeFreeCredentials AcquireCredentialsHandleSchCredentials( credential.paCred = &certificateHandle; } - if (NetEventSource.IsEnabled) NetEventSource.Info($"flags=({flags}), ProtocolFlags=({protocolFlags}), EncryptionPolicy={policy}"); + if (NetEventSource.Log.IsEnabled()) NetEventSource.Info($"flags=({flags}), ProtocolFlags=({protocolFlags}), EncryptionPolicy={policy}"); if (protocolFlags != 0) { diff --git a/src/libraries/System.Net.ServicePoint/System.Net.ServicePoint.sln b/src/libraries/System.Net.ServicePoint/System.Net.ServicePoint.sln index 79b72b370b37..d469c1a093b3 100644 --- a/src/libraries/System.Net.ServicePoint/System.Net.ServicePoint.sln +++ b/src/libraries/System.Net.ServicePoint/System.Net.ServicePoint.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint.Tests", "tests\System.Net.ServicePoint.Tests.csproj", "{DC3BBD1F-37C8-40B2-B248-E12E8D0D146B}" - ProjectSection(ProjectDependencies) = postProject - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3} = {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1A05E494-230E-439C-9912-33B1A01D0A31}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint", "src\System.Net.ServicePoint.csproj", "{AD68DD5E-DEBF-48A0-B619-FBF65F502BC3}" - ProjectSection(ProjectDependencies) = postProject - {273A0AE8-6298-4382-9572-E39ACEB458A0} = {273A0AE8-6298-4382-9572-E39ACEB458A0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint", "ref\System.Net.ServicePoint.csproj", "{273A0AE8-6298-4382-9572-E39ACEB458A0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint", "ref\System.Net.ServicePoint.csproj", "{024702F2-6C9B-483E-A229-22F8FB97517C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint", "src\System.Net.ServicePoint.csproj", "{3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.ServicePoint.Tests", "tests\System.Net.ServicePoint.Tests.csproj", "{550C82C8-F7C2-4EB6-B2C0-87523C2E6640}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C542898D-30FA-4F30-B440-84116642DC97}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1177A8A7-6548-4227-A342-176235C265D7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{911D1E25-6359-452E-B1B3-900A8BF68532}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{1EB51DBF-B7C8-4C55-81DA-9566C5A64393}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F1E9E414-4398-4867-B059-A89975DF1CB6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{E066E627-8939-403E-8296-8EADF4FDF3A2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{511570D0-A027-4F79-B093-2F3E1E63525B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6D0D9659-467D-4424-9E96-A12BE5226064}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1A05E494-230E-439C-9912-33B1A01D0A31} = {E066E627-8939-403E-8296-8EADF4FDF3A2} + {550C82C8-F7C2-4EB6-B2C0-87523C2E6640} = {E066E627-8939-403E-8296-8EADF4FDF3A2} + {AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D} = {511570D0-A027-4F79-B093-2F3E1E63525B} + {024702F2-6C9B-483E-A229-22F8FB97517C} = {511570D0-A027-4F79-B093-2F3E1E63525B} + {C542898D-30FA-4F30-B440-84116642DC97} = {511570D0-A027-4F79-B093-2F3E1E63525B} + {1EB51DBF-B7C8-4C55-81DA-9566C5A64393} = {511570D0-A027-4F79-B093-2F3E1E63525B} + {F1E9E414-4398-4867-B059-A89975DF1CB6} = {511570D0-A027-4F79-B093-2F3E1E63525B} + {3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A} = {6D0D9659-467D-4424-9E96-A12BE5226064} + {911D1E25-6359-452E-B1B3-900A8BF68532} = {6D0D9659-467D-4424-9E96-A12BE5226064} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DC3BBD1F-37C8-40B2-B248-E12E8D0D146B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DC3BBD1F-37C8-40B2-B248-E12E8D0D146B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC3BBD1F-37C8-40B2-B248-E12E8D0D146B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DC3BBD1F-37C8-40B2-B248-E12E8D0D146B}.Release|Any CPU.Build.0 = Release|Any CPU - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3}.Release|Any CPU.Build.0 = Release|Any CPU - {273A0AE8-6298-4382-9572-E39ACEB458A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {273A0AE8-6298-4382-9572-E39ACEB458A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {273A0AE8-6298-4382-9572-E39ACEB458A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {273A0AE8-6298-4382-9572-E39ACEB458A0}.Release|Any CPU.Build.0 = Release|Any CPU - {1177A8A7-6548-4227-A342-176235C265D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1177A8A7-6548-4227-A342-176235C265D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1177A8A7-6548-4227-A342-176235C265D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1177A8A7-6548-4227-A342-176235C265D7}.Release|Any CPU.Build.0 = Release|Any CPU + {1A05E494-230E-439C-9912-33B1A01D0A31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A05E494-230E-439C-9912-33B1A01D0A31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A05E494-230E-439C-9912-33B1A01D0A31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A05E494-230E-439C-9912-33B1A01D0A31}.Release|Any CPU.Build.0 = Release|Any CPU + {AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFDD949B-F3EE-487E-A0D0-8EC79CE4EC8D}.Release|Any CPU.Build.0 = Release|Any CPU + {024702F2-6C9B-483E-A229-22F8FB97517C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {024702F2-6C9B-483E-A229-22F8FB97517C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {024702F2-6C9B-483E-A229-22F8FB97517C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {024702F2-6C9B-483E-A229-22F8FB97517C}.Release|Any CPU.Build.0 = Release|Any CPU + {3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AE6973A-7E59-4F78-8B3F-FFBFEF38D89A}.Release|Any CPU.Build.0 = Release|Any CPU + {550C82C8-F7C2-4EB6-B2C0-87523C2E6640}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {550C82C8-F7C2-4EB6-B2C0-87523C2E6640}.Debug|Any CPU.Build.0 = Debug|Any CPU + {550C82C8-F7C2-4EB6-B2C0-87523C2E6640}.Release|Any CPU.ActiveCfg = Release|Any CPU + {550C82C8-F7C2-4EB6-B2C0-87523C2E6640}.Release|Any CPU.Build.0 = Release|Any CPU + {C542898D-30FA-4F30-B440-84116642DC97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C542898D-30FA-4F30-B440-84116642DC97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C542898D-30FA-4F30-B440-84116642DC97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C542898D-30FA-4F30-B440-84116642DC97}.Release|Any CPU.Build.0 = Release|Any CPU + {911D1E25-6359-452E-B1B3-900A8BF68532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {911D1E25-6359-452E-B1B3-900A8BF68532}.Debug|Any CPU.Build.0 = Debug|Any CPU + {911D1E25-6359-452E-B1B3-900A8BF68532}.Release|Any CPU.ActiveCfg = Release|Any CPU + {911D1E25-6359-452E-B1B3-900A8BF68532}.Release|Any CPU.Build.0 = Release|Any CPU + {1EB51DBF-B7C8-4C55-81DA-9566C5A64393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EB51DBF-B7C8-4C55-81DA-9566C5A64393}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EB51DBF-B7C8-4C55-81DA-9566C5A64393}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EB51DBF-B7C8-4C55-81DA-9566C5A64393}.Release|Any CPU.Build.0 = Release|Any CPU + {F1E9E414-4398-4867-B059-A89975DF1CB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1E9E414-4398-4867-B059-A89975DF1CB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1E9E414-4398-4867-B059-A89975DF1CB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1E9E414-4398-4867-B059-A89975DF1CB6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {DC3BBD1F-37C8-40B2-B248-E12E8D0D146B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AD68DD5E-DEBF-48A0-B619-FBF65F502BC3} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {273A0AE8-6298-4382-9572-E39ACEB458A0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {1177A8A7-6548-4227-A342-176235C265D7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {8123B8CF-5D6E-4E2E-9665-C42DF84583F9} + SolutionGuid = {2DB03DED-414C-43AC-A6FD-748FEB8492EB} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.ServicePoint/ref/System.Net.ServicePoint.cs b/src/libraries/System.Net.ServicePoint/ref/System.Net.ServicePoint.cs index d7adfc5a1484..f26d234238f7 100644 --- a/src/libraries/System.Net.ServicePoint/ref/System.Net.ServicePoint.cs +++ b/src/libraries/System.Net.ServicePoint/ref/System.Net.ServicePoint.cs @@ -48,6 +48,7 @@ public partial class ServicePointManager public static int DefaultConnectionLimit { get { throw null; } set { } } public static int DnsRefreshTimeout { get { throw null; } set { } } public static bool EnableDnsRoundRobin { get { throw null; } set { } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static System.Net.Security.EncryptionPolicy EncryptionPolicy { get { throw null; } } public static bool Expect100Continue { get { throw null; } set { } } public static int MaxServicePointIdleTime { get { throw null; } set { } } diff --git a/src/libraries/System.Net.ServicePoint/src/System/Net/ServicePointManager.cs b/src/libraries/System.Net.ServicePoint/src/System/Net/ServicePointManager.cs index 267610d2d675..eb278644472e 100644 --- a/src/libraries/System.Net.ServicePoint/src/System/Net/ServicePointManager.cs +++ b/src/libraries/System.Net.ServicePoint/src/System/Net/ServicePointManager.cs @@ -4,6 +4,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Net.Security; +using System.Runtime.Versioning; using System.Threading; namespace System.Net @@ -102,6 +103,7 @@ public static int DnsRefreshTimeout public static bool CheckCertificateRevocationList { get; set; } + [UnsupportedOSPlatform("browser")] public static EncryptionPolicy EncryptionPolicy { get; } = EncryptionPolicy.RequireEncryption; [Obsolete(Obsoletions.WebRequestMessage, DiagnosticId = Obsoletions.WebRequestDiagId, UrlFormat = Obsoletions.SharedUrlFormat)] diff --git a/src/libraries/System.Net.Sockets/System.Net.Sockets.sln b/src/libraries/System.Net.Sockets/System.Net.Sockets.sln index 0a7ca12783d7..eddddc0213fd 100644 --- a/src/libraries/System.Net.Sockets/System.Net.Sockets.sln +++ b/src/libraries/System.Net.Sockets/System.Net.Sockets.sln @@ -1,60 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29721.122 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets.Tests", "tests\FunctionalTests\System.Net.Sockets.Tests.csproj", "{8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6}" - ProjectSection(ProjectDependencies) = postProject - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B} = {43311AFB-D7C4-4E5A-B1DE-855407F90D1B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{AEDCC778-C0D1-4155-9DD2-45EBF160CDA0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets", "src\System.Net.Sockets.csproj", "{43311AFB-D7C4-4E5A-B1DE-855407F90D1B}" - ProjectSection(ProjectDependencies) = postProject - {834E3534-6A11-4A8D-923F-35C1E71CCEC3} = {834E3534-6A11-4A8D-923F-35C1E71CCEC3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D42990B6-304B-4B4A-8D6D-87984F34CFE1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets", "ref\System.Net.Sockets.csproj", "{834E3534-6A11-4A8D-923F-35C1E71CCEC3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets", "ref\System.Net.Sockets.csproj", "{FDFDE647-E25F-4B21-B002-4EEEFC42EFA1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets", "src\System.Net.Sockets.csproj", "{FD313302-FE04-414E-8A62-3BC8894115C1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Sockets.Tests", "tests\FunctionalTests\System.Net.Sockets.Tests.csproj", "{69A7DCCE-B05B-44F3-B7BC-17A90759D1A2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C746C235-7771-46F2-80B3-A67E0C62E436}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{3234071E-7F94-4471-8D29-F376DACD8130}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{409C2A8A-664D-47FE-90B7-019ABCC79111}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{82926A80-3AE9-4739-A4E2-6B309234D5D5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{BB5EAF65-3E22-4872-91CF-D33ACF12A6F1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A2F4B32C-FB25-48FB-BE4D-060677BAF635}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{089E56CC-B717-4B90-84DF-F2932B6635CC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EC8CA334-FA4B-4D25-88CF-405BEA3B0B42}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {AEDCC778-C0D1-4155-9DD2-45EBF160CDA0} = {A2F4B32C-FB25-48FB-BE4D-060677BAF635} + {69A7DCCE-B05B-44F3-B7BC-17A90759D1A2} = {A2F4B32C-FB25-48FB-BE4D-060677BAF635} + {D42990B6-304B-4B4A-8D6D-87984F34CFE1} = {089E56CC-B717-4B90-84DF-F2932B6635CC} + {FDFDE647-E25F-4B21-B002-4EEEFC42EFA1} = {089E56CC-B717-4B90-84DF-F2932B6635CC} + {C746C235-7771-46F2-80B3-A67E0C62E436} = {089E56CC-B717-4B90-84DF-F2932B6635CC} + {409C2A8A-664D-47FE-90B7-019ABCC79111} = {089E56CC-B717-4B90-84DF-F2932B6635CC} + {82926A80-3AE9-4739-A4E2-6B309234D5D5} = {089E56CC-B717-4B90-84DF-F2932B6635CC} + {FD313302-FE04-414E-8A62-3BC8894115C1} = {EC8CA334-FA4B-4D25-88CF-405BEA3B0B42} + {3234071E-7F94-4471-8D29-F376DACD8130} = {EC8CA334-FA4B-4D25-88CF-405BEA3B0B42} + {BB5EAF65-3E22-4872-91CF-D33ACF12A6F1} = {EC8CA334-FA4B-4D25-88CF-405BEA3B0B42} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6}.Release|Any CPU.Build.0 = Release|Any CPU - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B}.Release|Any CPU.Build.0 = Release|Any CPU - {834E3534-6A11-4A8D-923F-35C1E71CCEC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {834E3534-6A11-4A8D-923F-35C1E71CCEC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {834E3534-6A11-4A8D-923F-35C1E71CCEC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {834E3534-6A11-4A8D-923F-35C1E71CCEC3}.Release|Any CPU.Build.0 = Release|Any CPU - {5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E}.Release|Any CPU.Build.0 = Release|Any CPU + {AEDCC778-C0D1-4155-9DD2-45EBF160CDA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AEDCC778-C0D1-4155-9DD2-45EBF160CDA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AEDCC778-C0D1-4155-9DD2-45EBF160CDA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AEDCC778-C0D1-4155-9DD2-45EBF160CDA0}.Release|Any CPU.Build.0 = Release|Any CPU + {D42990B6-304B-4B4A-8D6D-87984F34CFE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D42990B6-304B-4B4A-8D6D-87984F34CFE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D42990B6-304B-4B4A-8D6D-87984F34CFE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D42990B6-304B-4B4A-8D6D-87984F34CFE1}.Release|Any CPU.Build.0 = Release|Any CPU + {FDFDE647-E25F-4B21-B002-4EEEFC42EFA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDFDE647-E25F-4B21-B002-4EEEFC42EFA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDFDE647-E25F-4B21-B002-4EEEFC42EFA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDFDE647-E25F-4B21-B002-4EEEFC42EFA1}.Release|Any CPU.Build.0 = Release|Any CPU + {FD313302-FE04-414E-8A62-3BC8894115C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD313302-FE04-414E-8A62-3BC8894115C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD313302-FE04-414E-8A62-3BC8894115C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD313302-FE04-414E-8A62-3BC8894115C1}.Release|Any CPU.Build.0 = Release|Any CPU + {69A7DCCE-B05B-44F3-B7BC-17A90759D1A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69A7DCCE-B05B-44F3-B7BC-17A90759D1A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69A7DCCE-B05B-44F3-B7BC-17A90759D1A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69A7DCCE-B05B-44F3-B7BC-17A90759D1A2}.Release|Any CPU.Build.0 = Release|Any CPU + {C746C235-7771-46F2-80B3-A67E0C62E436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C746C235-7771-46F2-80B3-A67E0C62E436}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C746C235-7771-46F2-80B3-A67E0C62E436}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C746C235-7771-46F2-80B3-A67E0C62E436}.Release|Any CPU.Build.0 = Release|Any CPU + {3234071E-7F94-4471-8D29-F376DACD8130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3234071E-7F94-4471-8D29-F376DACD8130}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3234071E-7F94-4471-8D29-F376DACD8130}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3234071E-7F94-4471-8D29-F376DACD8130}.Release|Any CPU.Build.0 = Release|Any CPU + {409C2A8A-664D-47FE-90B7-019ABCC79111}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {409C2A8A-664D-47FE-90B7-019ABCC79111}.Debug|Any CPU.Build.0 = Debug|Any CPU + {409C2A8A-664D-47FE-90B7-019ABCC79111}.Release|Any CPU.ActiveCfg = Release|Any CPU + {409C2A8A-664D-47FE-90B7-019ABCC79111}.Release|Any CPU.Build.0 = Release|Any CPU + {82926A80-3AE9-4739-A4E2-6B309234D5D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82926A80-3AE9-4739-A4E2-6B309234D5D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82926A80-3AE9-4739-A4E2-6B309234D5D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82926A80-3AE9-4739-A4E2-6B309234D5D5}.Release|Any CPU.Build.0 = Release|Any CPU + {BB5EAF65-3E22-4872-91CF-D33ACF12A6F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB5EAF65-3E22-4872-91CF-D33ACF12A6F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB5EAF65-3E22-4872-91CF-D33ACF12A6F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB5EAF65-3E22-4872-91CF-D33ACF12A6F1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8CBA022C-635F-4C8D-9D29-CD8AAC68C8E6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {43311AFB-D7C4-4E5A-B1DE-855407F90D1B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {834E3534-6A11-4A8D-923F-35C1E71CCEC3} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {5BE7D6FF-0B45-4D54-B831-7EEA1EBAF40E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6E33D5E2-B9BF-49D1-99FA-3C9AC3412636} + SolutionGuid = {BA222465-FBD4-4377-8A8A-783BF85E01F7} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs index 4c9fb5731334..3f8e8a75fa55 100644 --- a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs +++ b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs @@ -692,9 +692,9 @@ protected override void OnCompleted(SocketAsyncEventArgs _) _executionContext = null; ExecutionContext.Run(ec, runState => { - var t = (Tuple, object>)runState!; + var t = ((AwaitableSocketAsyncEventArgs, Action, object))runState!; t.Item1.InvokeContinuation(t.Item2, t.Item3, forceAsync: false, requiresExecutionContextFlow: false); - }, Tuple.Create(this, c, continuationState)); + }, (this, c, continuationState)); } } } @@ -865,9 +865,9 @@ private void InvokeContinuation(Action continuation, object? state, boo { sc.Post(s => { - var t = (Tuple, object>)s!; + var t = ((Action, object))s!; t.Item1(t.Item2); - }, Tuple.Create(continuation, state)); + }, (continuation, state)); } else { diff --git a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs index 89a9bfffb1bc..bda1217e01f2 100644 --- a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs +++ b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.cs @@ -813,11 +813,17 @@ async Task Core(MultiConnectSocketAsyncEventArgs internalArgs, Task } // Complete the operation. - if (SocketsTelemetry.Log.IsEnabled() && !_disableTelemetry) LogBytesTransferEvents(_connectSocket?.SocketType, SocketAsyncOperation.Connect, internalArgs.BytesTransferred); + if (SocketsTelemetry.Log.IsEnabled() && !_disableTelemetry) + { + LogBytesTransferEvents(_connectSocket?.SocketType, SocketAsyncOperation.Connect, internalArgs.BytesTransferred); + AfterConnectAcceptTelemetry(); + } Complete(); - // If the caller is treating this operation as pending, own the completion. + // Clean up after our temporary arguments. internalArgs.Dispose(); + + // If the caller is treating this operation as pending, own the completion. if (!internalArgs.ReachedCoordinationPointFirst()) { // Regardless of _flowExecutionContext, context will have been flown through this async method, as that's part @@ -825,7 +831,7 @@ async Task Core(MultiConnectSocketAsyncEventArgs internalArgs, Task // the completion callback. This method may have even mutated the ExecutionContext, in which case for telemetry // we need those mutations to be surfaced as part of this callback, so that logging performed here sees those // mutations (e.g. to the current Activity). - OnCompletedInternal(); + OnCompleted(this); } } } diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/InlineCompletions.Unix.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/InlineCompletions.Unix.cs index a8c9d93d960f..63103ab7faea 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/InlineCompletions.Unix.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/InlineCompletions.Unix.cs @@ -28,11 +28,11 @@ public void InlineSocketContinuations() await new AcceptEap(null).Accept_ConcurrentAcceptsAfterConnects_Success(5); // Send/Receive tests - await new SendReceiveEap(null).SendRecv_Stream_TCP(IPAddress.Loopback, useMultipleBuffers: false); - await new SendReceiveEap(null).SendRecv_Stream_TCP_MultipleConcurrentReceives(IPAddress.Loopback, useMultipleBuffers: false); - await new SendReceiveEap(null).SendRecv_Stream_TCP_MultipleConcurrentSends(IPAddress.Loopback, useMultipleBuffers: false); - await new SendReceiveEap(null).TcpReceiveSendGetsCanceledByDispose(receiveOrSend: true, ipv6Server: false, dualModeClient: false); - await new SendReceiveEap(null).TcpReceiveSendGetsCanceledByDispose(receiveOrSend: false, ipv6Server: false, dualModeClient: false); + await new SendReceive_Eap(null).SendRecv_Stream_TCP(IPAddress.Loopback, useMultipleBuffers: false); + await new SendReceive_Eap(null).SendRecv_Stream_TCP_MultipleConcurrentReceives(IPAddress.Loopback, useMultipleBuffers: false); + await new SendReceive_Eap(null).SendRecv_Stream_TCP_MultipleConcurrentSends(IPAddress.Loopback, useMultipleBuffers: false); + await new SendReceive_Eap(null).TcpReceiveSendGetsCanceledByDispose(receiveOrSend: true, ipv6Server: false, dualModeClient: false); + await new SendReceive_Eap(null).TcpReceiveSendGetsCanceledByDispose(receiveOrSend: false, ipv6Server: false, dualModeClient: false); }, options).Dispose(); } } diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/LoggingTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/LoggingTest.cs index 77f12d7679c2..a683bc3544c0 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/LoggingTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/LoggingTest.cs @@ -44,17 +44,17 @@ public void EventSource_EventsRaisedAsExpected() { // Invoke several tests to execute code paths while tracing is enabled - new SendReceiveSync(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); - new SendReceiveSync(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); + new SendReceive_Sync(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); + new SendReceive_Sync(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); - new SendReceiveTask(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); - new SendReceiveTask(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); + new SendReceive_Task(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); + new SendReceive_Task(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); - new SendReceiveEap(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); - new SendReceiveEap(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); + new SendReceive_Eap(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); + new SendReceive_Eap(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); - new SendReceiveApm(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); - new SendReceiveApm(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); + new SendReceive_Apm(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).GetAwaiter(); + new SendReceive_Apm(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).GetAwaiter(); new NetworkStreamTest().CopyToAsync_AllDataCopied(4096, true).GetAwaiter().GetResult(); new NetworkStreamTest().Timeout_Roundtrips().GetAwaiter().GetResult(); diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs similarity index 71% rename from src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs rename to src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs index ad2c3f7376f5..dfef96ef16a9 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs @@ -7,7 +7,6 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.DotNet.RemoteExecutor; -using Microsoft.DotNet.XUnitExtensions; using Xunit; using Xunit.Abstractions; using Xunit.Sdk; @@ -45,91 +44,6 @@ public async Task InvalidArguments_Throws(int? length, int offset, int count) } } - public static IEnumerable LoopbackWithBool => - from addr in Loopbacks - from b in new[] { false, true } - select new object[] { addr[0], b }; - - [ActiveIssue("https://github.com/dotnet/runtime/issues/1712")] - [OuterLoop] - [Theory] - [MemberData(nameof(LoopbackWithBool))] - public async Task SendToRecvFrom_Datagram_UDP(IPAddress loopbackAddress, bool useClone) - { - IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; - - const int DatagramSize = 256; - const int DatagramsToSend = 256; - const int AckTimeout = 10000; - const int TestTimeout = 30000; - - using var origLeft = new Socket(leftAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); - using var origRight = new Socket(rightAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); - origLeft.BindToAnonymousPort(leftAddress); - origRight.BindToAnonymousPort(rightAddress); - - using var left = useClone ? new Socket(origLeft.SafeHandle) : origLeft; - using var right = useClone ? new Socket(origRight.SafeHandle) : origRight; - - var leftEndpoint = (IPEndPoint)left.LocalEndPoint; - var rightEndpoint = (IPEndPoint)right.LocalEndPoint; - - var receiverAck = new SemaphoreSlim(0); - var senderAck = new SemaphoreSlim(0); - - _output.WriteLine($"{DateTime.Now}: Sending data from {rightEndpoint} to {leftEndpoint}"); - - var receivedChecksums = new uint?[DatagramsToSend]; - Task leftThread = Task.Run(async () => - { - EndPoint remote = leftEndpoint.Create(leftEndpoint.Serialize()); - var recvBuffer = new byte[DatagramSize]; - for (int i = 0; i < DatagramsToSend; i++) - { - SocketReceiveFromResult result = await ReceiveFromAsync( - left, new ArraySegment(recvBuffer), remote); - Assert.Equal(DatagramSize, result.ReceivedBytes); - Assert.Equal(rightEndpoint, result.RemoteEndPoint); - - int datagramId = recvBuffer[0]; - Assert.Null(receivedChecksums[datagramId]); - receivedChecksums[datagramId] = Fletcher32.Checksum(recvBuffer, 0, result.ReceivedBytes); - - receiverAck.Release(); - bool gotAck = await senderAck.WaitAsync(TestTimeout); - Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {TestTimeout} for senderAck in iteration {i}"); - } - }); - - var sentChecksums = new uint[DatagramsToSend]; - using (right) - { - var random = new Random(); - var sendBuffer = new byte[DatagramSize]; - for (int i = 0; i < DatagramsToSend; i++) - { - random.NextBytes(sendBuffer); - sendBuffer[0] = (byte)i; - - int sent = await SendToAsync(right, new ArraySegment(sendBuffer), leftEndpoint); - - bool gotAck = await receiverAck.WaitAsync(AckTimeout); - Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {AckTimeout} for receiverAck in iteration {i} after sending {sent}. Receiver is in {leftThread.Status}"); - senderAck.Release(); - - Assert.Equal(DatagramSize, sent); - sentChecksums[i] = Fletcher32.Checksum(sendBuffer, 0, sent); - } - } - - await leftThread; - for (int i = 0; i < DatagramsToSend; i++) - { - Assert.NotNull(receivedChecksums[i]); - Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); - } - } - [OuterLoop] [Theory] [MemberData(nameof(LoopbacksAndBuffers))] @@ -1156,439 +1070,9 @@ public async Task TcpPeerReceivesFinOnShutdownWithPendingData() } } - public class SendReceive - { - [Fact] - public void SendRecvIovMaxTcp_Success() - { - // sending/receiving more than IOV_MAX segments causes EMSGSIZE on some platforms. - // This is handled internally for stream sockets so this error shouldn't surface. - - // Use more than IOV_MAX (1024 on Linux & macOS) segments. - const int SegmentCount = 2400; - using (var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) - { - server.BindToAnonymousPort(IPAddress.Loopback); - server.Listen(1); - - var sendBuffer = new byte[SegmentCount]; - Task serverProcessingTask = Task.Run(() => - { - using (Socket acceptSocket = server.Accept()) - { - // send data as SegmentCount (> IOV_MAX) 1-byte segments. - var sendSegments = new List>(); - for (int i = 0; i < SegmentCount; i++) - { - sendBuffer[i] = (byte)i; - sendSegments.Add(new ArraySegment(sendBuffer, i, 1)); - } - SocketError error; - // Send blocks until all segments are sent. - int bytesSent = acceptSocket.Send(sendSegments, SocketFlags.None, out error); - - Assert.Equal(SegmentCount, bytesSent); - Assert.Equal(SocketError.Success, error); - - acceptSocket.Shutdown(SocketShutdown.Send); - } - }); - - using (var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) - { - client.Connect(server.LocalEndPoint); - - // receive data as 1-byte segments. - var receiveBuffer = new byte[SegmentCount]; - var receiveSegments = new List>(); - for (int i = 0; i < SegmentCount; i++) - { - receiveSegments.Add(new ArraySegment(receiveBuffer, i, 1)); - } - var bytesReceivedTotal = 0; - do - { - SocketError error; - // Receive can return up to IOV_MAX segments. - int bytesReceived = client.Receive(receiveSegments, SocketFlags.None, out error); - bytesReceivedTotal += bytesReceived; - // Offset receiveSegments for next Receive. - receiveSegments.RemoveRange(0, bytesReceived); - - Assert.NotEqual(0, bytesReceived); - Assert.Equal(SocketError.Success, error); - } while (bytesReceivedTotal != SegmentCount); - - AssertExtensions.Equal(sendBuffer, receiveBuffer); - } - } - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] - public void SendIovMaxUdp_SuccessOrMessageSize() - { - // sending more than IOV_MAX segments causes EMSGSIZE on some platforms. - // We handle this for stream sockets by truncating. - // This test verifies we are not truncating non-stream sockets. - - // Use more than IOV_MAX (1024 on Linux & macOS) segments - // and less than Ethernet MTU. - const int SegmentCount = 1200; - using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) - { - socket.BindToAnonymousPort(IPAddress.Loopback); - // Use our own address as destination. - socket.Connect(socket.LocalEndPoint); - - var sendBuffer = new byte[SegmentCount]; - var sendSegments = new List>(); - for (int i = 0; i < SegmentCount; i++) - { - sendBuffer[i] = (byte)i; - sendSegments.Add(new ArraySegment(sendBuffer, i, 1)); - } - - SocketError error; - // send data as SegmentCount (> IOV_MAX) 1-byte segments. - int bytesSent = socket.Send(sendSegments, SocketFlags.None, out error); - if (error == SocketError.Success) - { - // platform sent message with > IOV_MAX segments - Assert.Equal(SegmentCount, bytesSent); - } - else - { - // platform returns EMSGSIZE - Assert.Equal(SocketError.MessageSize, error); - Assert.Equal(0, bytesSent); - } - } - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] - public async Task ReceiveIovMaxUdp_SuccessOrMessageSize() - { - // receiving more than IOV_MAX segments causes EMSGSIZE on some platforms. - // We handle this for stream sockets by truncating. - // This test verifies we are not truncating non-stream sockets. - - // Use more than IOV_MAX (1024 on Linux & macOS) segments - // and less than Ethernet MTU. - const int SegmentCount = 1200; - var sender = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); - sender.BindToAnonymousPort(IPAddress.Loopback); - var receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); - receiver.Connect(sender.LocalEndPoint); // only receive from sender - EndPoint receiverEndPoint = receiver.LocalEndPoint; - - Barrier b = new Barrier(2); - - Task receiveTask = Task.Run(() => - { - using (receiver) - { - var receiveBuffer = new byte[SegmentCount]; - var receiveSegments = new List>(); - for (int i = 0; i < SegmentCount; i++) - { - receiveSegments.Add(new ArraySegment(receiveBuffer, i, 1)); - } - // receive data as SegmentCount (> IOV_MAX) 1-byte segments. - SocketError error; - // Signal we are ready to receive. - b.SignalAndWait(); - int bytesReceived = receiver.Receive(receiveSegments, SocketFlags.None, out error); - - if (error == SocketError.Success) - { - // platform received message in > IOV_MAX segments - Assert.Equal(SegmentCount, bytesReceived); - } - else - { - // platform returns EMSGSIZE - Assert.Equal(SocketError.MessageSize, error); - Assert.Equal(0, bytesReceived); - } - } - }); - - using (sender) - { - sender.Connect(receiverEndPoint); - - // Synchronize and wait for receiving task to be ready. - b.SignalAndWait(); - - var sendBuffer = new byte[SegmentCount]; - for (int i = 0; i < 10; i++) // UDPRedundancy - { - int bytesSent = sender.Send(sendBuffer); - Assert.Equal(SegmentCount, bytesSent); - await Task.WhenAny(receiveTask, Task.Delay(3)); - if (receiveTask.IsCompleted) - { - break; - } - } - } - - Assert.True(receiveTask.IsCompleted); - await receiveTask; - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] - [PlatformSpecific(~TestPlatforms.Windows)] // All data is sent, even when very large (100M). - public void SocketSendWouldBlock_ReturnsBytesSent() - { - using (var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) - using (var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) - { - // listen - server.BindToAnonymousPort(IPAddress.Loopback); - server.Listen(1); - // connect - client.Connect(server.LocalEndPoint); - // accept - using (Socket socket = server.Accept()) - { - // We send a large amount of data but don't read it. - // A chunck will be sent, attempts to send more will return SocketError.WouldBlock. - // Socket.Send must return the success of the partial send. - socket.Blocking = false; - var data = new byte[5_000_000]; - SocketError error; - int bytesSent = socket.Send(data, 0, data.Length, SocketFlags.None, out error); - - Assert.Equal(SocketError.Success, error); - Assert.InRange(bytesSent, 1, data.Length - 1); - } - } - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] - [PlatformSpecific(TestPlatforms.AnyUnix)] - public async Task Socket_ReceiveFlags_Success() - { - using (var sender = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) - using (var receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) - { - receiver.BindToAnonymousPort(IPAddress.Loopback); - sender.Connect(receiver.LocalEndPoint); - sender.SendBufferSize = 1500; - - var data = new byte[500]; - data[0] = data[499] = 1; - - Assert.Equal(500, sender.Send(data)); - data[0] = data[499] = 2; - Assert.Equal(500, sender.Send(data)); - - var tcs = new TaskCompletionSource(); - SocketAsyncEventArgs args = new SocketAsyncEventArgs(); - - var receiveBufer = new byte[600]; - receiveBufer[0] = data[499] = 0; - - args.SetBuffer(receiveBufer, 0, receiveBufer.Length); - args.Completed += delegate { tcs.SetResult(); }; - - // First peek at the message. - args.SocketFlags = SocketFlags.Peek; - if (receiver.ReceiveAsync(args)) - { - await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); - } - Assert.Equal(SocketFlags.None, args.SocketFlags); - Assert.Equal(1, receiveBufer[0]); - Assert.Equal(1, receiveBufer[499]); - receiveBufer[0] = receiveBufer[499] = 0; - - // Now, we should be able to get same message again. - tcs = new TaskCompletionSource(); - args.SocketFlags = SocketFlags.None; - if (receiver.ReceiveAsync(args)) - { - await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); - } - Assert.Equal(SocketFlags.None, args.SocketFlags); - Assert.Equal(1, receiveBufer[0]); - Assert.Equal(1, receiveBufer[499]); - receiveBufer[0] = receiveBufer[499] = 0; - - // Set buffer smaller than message. - tcs = new TaskCompletionSource(); - args.SetBuffer(receiveBufer, 0, 100); - if (receiver.ReceiveAsync(args)) - { - await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); - } - Assert.Equal(SocketFlags.Truncated, args.SocketFlags); - Assert.Equal(2, receiveBufer[0]); - - // There should be no more data. - Assert.Equal(0, receiver.Available); - } - } - } - - public sealed class SendReceiveUdpClient : MemberDatas - { - [OuterLoop] - [Theory] - [MemberData(nameof(Loopbacks))] - public async Task SendToRecvFromAsync_Datagram_UDP_UdpClient(IPAddress loopbackAddress) - { - IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; - - const int DatagramSize = 256; - const int DatagramsToSend = 256; - const int AckTimeout = 20000; - const int TestTimeout = 60000; - - using (var left = new UdpClient(new IPEndPoint(leftAddress, 0))) - using (var right = new UdpClient(new IPEndPoint(rightAddress, 0))) - { - var leftEndpoint = (IPEndPoint)left.Client.LocalEndPoint; - var rightEndpoint = (IPEndPoint)right.Client.LocalEndPoint; - - var receiverAck = new ManualResetEventSlim(); - var senderAck = new ManualResetEventSlim(); - - var receivedChecksums = new uint?[DatagramsToSend]; - int receivedDatagrams = 0; - - Task receiverTask = Task.Run(async () => - { - for (; receivedDatagrams < DatagramsToSend; receivedDatagrams++) - { - UdpReceiveResult result = await left.ReceiveAsync(); - - receiverAck.Set(); - Assert.True(senderAck.Wait(AckTimeout)); - senderAck.Reset(); - - Assert.Equal(DatagramSize, result.Buffer.Length); - Assert.Equal(rightEndpoint, result.RemoteEndPoint); - - int datagramId = (int)result.Buffer[0]; - Assert.Null(receivedChecksums[datagramId]); - - receivedChecksums[datagramId] = Fletcher32.Checksum(result.Buffer, 0, result.Buffer.Length); - } - }); - - var sentChecksums = new uint[DatagramsToSend]; - int sentDatagrams = 0; - - Task senderTask = Task.Run(async () => - { - var random = new Random(); - var sendBuffer = new byte[DatagramSize]; - - for (; sentDatagrams < DatagramsToSend; sentDatagrams++) - { - random.NextBytes(sendBuffer); - sendBuffer[0] = (byte)sentDatagrams; - - int sent = await right.SendAsync(sendBuffer, DatagramSize, leftEndpoint); - - Assert.True(receiverAck.Wait(AckTimeout)); - receiverAck.Reset(); - senderAck.Set(); - - Assert.Equal(DatagramSize, sent); - sentChecksums[sentDatagrams] = Fletcher32.Checksum(sendBuffer, 0, sent); - } - }); - - await (new[] { receiverTask, senderTask }).WhenAllOrAnyFailed(TestTimeout); - for (int i = 0; i < DatagramsToSend; i++) - { - Assert.NotNull(receivedChecksums[i]); - Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); - } - } - } - } - - public sealed class SendReceiveListener : MemberDatas - { - [OuterLoop] - [Theory] - [MemberData(nameof(Loopbacks))] - public async Task SendRecvAsync_TcpListener_TcpClient(IPAddress listenAt) - { - const int BytesToSend = 123456; - const int ListenBacklog = 1; - const int LingerTime = 10; - const int TestTimeout = 30000; - - var listener = new TcpListener(listenAt, 0); - listener.Start(ListenBacklog); - - int bytesReceived = 0; - var receivedChecksum = new Fletcher32(); - Task serverTask = Task.Run(async () => - { - using (TcpClient remote = await listener.AcceptTcpClientAsync()) - using (NetworkStream stream = remote.GetStream()) - { - var recvBuffer = new byte[256]; - while (true) - { - int received = await stream.ReadAsync(recvBuffer, 0, recvBuffer.Length); - if (received == 0) - { - break; - } - - bytesReceived += received; - receivedChecksum.Add(recvBuffer, 0, received); - } - } - }); - - int bytesSent = 0; - var sentChecksum = new Fletcher32(); - Task clientTask = Task.Run(async () => - { - var clientEndpoint = (IPEndPoint)listener.LocalEndpoint; - - using (var client = new TcpClient(clientEndpoint.AddressFamily)) - { - await client.ConnectAsync(clientEndpoint.Address, clientEndpoint.Port); - - using (NetworkStream stream = client.GetStream()) - { - var random = new Random(); - var sendBuffer = new byte[512]; - for (int remaining = BytesToSend, sent = 0; remaining > 0; remaining -= sent) - { - random.NextBytes(sendBuffer); - - sent = Math.Min(sendBuffer.Length, remaining); - await stream.WriteAsync(sendBuffer, 0, sent); - - bytesSent += sent; - sentChecksum.Add(sendBuffer, 0, sent); - } - - client.LingerState = new LingerOption(true, LingerTime); - } - } - }); - - await (new[] { serverTask, clientTask }).WhenAllOrAnyFailed(TestTimeout); - - Assert.Equal(bytesSent, bytesReceived); - Assert.Equal(sentChecksum.Sum, receivedChecksum.Sum); - } - } - - public sealed class SendReceiveSync : SendReceive + public sealed class SendReceive_Sync : SendReceive { - public SendReceiveSync(ITestOutputHelper output) : base(output) { } + public SendReceive_Sync(ITestOutputHelper output) : base(output) { } [OuterLoop] [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] @@ -1641,39 +1125,39 @@ select Task.Factory.StartNew(() => pair.Item1.Receive(new byte[1]), Cancellation } } - public sealed class SendReceiveSyncForceNonBlocking : SendReceive + public sealed class SendReceive_SyncForceNonBlocking : SendReceive { - public SendReceiveSyncForceNonBlocking(ITestOutputHelper output) : base(output) {} + public SendReceive_SyncForceNonBlocking(ITestOutputHelper output) : base(output) {} } - public sealed class SendReceiveApm : SendReceive + public sealed class SendReceive_Apm : SendReceive { - public SendReceiveApm(ITestOutputHelper output) : base(output) {} + public SendReceive_Apm(ITestOutputHelper output) : base(output) {} } - public sealed class SendReceiveTask : SendReceive + public sealed class SendReceive_Task : SendReceive { - public SendReceiveTask(ITestOutputHelper output) : base(output) {} + public SendReceive_Task(ITestOutputHelper output) : base(output) {} } - public sealed class SendReceiveEap : SendReceive + public sealed class SendReceive_Eap : SendReceive { - public SendReceiveEap(ITestOutputHelper output) : base(output) {} + public SendReceive_Eap(ITestOutputHelper output) : base(output) {} } - public sealed class SendReceiveSpanSync : SendReceive + public sealed class SendReceive_SpanSync : SendReceive { - public SendReceiveSpanSync(ITestOutputHelper output) : base(output) { } + public SendReceive_SpanSync(ITestOutputHelper output) : base(output) { } } - public sealed class SendReceiveSpanSyncForceNonBlocking : SendReceive + public sealed class SendReceive_SpanSyncForceNonBlocking : SendReceive { - public SendReceiveSpanSyncForceNonBlocking(ITestOutputHelper output) : base(output) { } + public SendReceive_SpanSyncForceNonBlocking(ITestOutputHelper output) : base(output) { } } - public sealed class SendReceiveMemoryArrayTask : SendReceive + public sealed class SendReceive_MemoryArrayTask : SendReceive { - public SendReceiveMemoryArrayTask(ITestOutputHelper output) : base(output) { } + public SendReceive_MemoryArrayTask(ITestOutputHelper output) : base(output) { } [Fact] public async Task Precanceled_Throws() @@ -1859,8 +1343,8 @@ public async Task BlockingAsyncContinuations_OperationsStillCompleteSuccessfully } } - public sealed class SendReceiveMemoryNativeTask : SendReceive + public sealed class SendReceive_MemoryNativeTask : SendReceive { - public SendReceiveMemoryNativeTask(ITestOutputHelper output) : base(output) { } + public SendReceive_MemoryNativeTask(ITestOutputHelper output) : base(output) { } } } diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveMisc.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveMisc.cs new file mode 100644 index 000000000000..4fa40e5d7e9c --- /dev/null +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveMisc.cs @@ -0,0 +1,286 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +namespace System.Net.Sockets.Tests +{ + public class SendReceiveMisc + { + [Fact] + public void SendRecvIovMaxTcp_Success() + { + // sending/receiving more than IOV_MAX segments causes EMSGSIZE on some platforms. + // This is handled internally for stream sockets so this error shouldn't surface. + + // Use more than IOV_MAX (1024 on Linux & macOS) segments. + const int SegmentCount = 2400; + using (var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) + { + server.BindToAnonymousPort(IPAddress.Loopback); + server.Listen(1); + + var sendBuffer = new byte[SegmentCount]; + Task serverProcessingTask = Task.Run(() => + { + using (Socket acceptSocket = server.Accept()) + { + // send data as SegmentCount (> IOV_MAX) 1-byte segments. + var sendSegments = new List>(); + for (int i = 0; i < SegmentCount; i++) + { + sendBuffer[i] = (byte)i; + sendSegments.Add(new ArraySegment(sendBuffer, i, 1)); + } + SocketError error; + // Send blocks until all segments are sent. + int bytesSent = acceptSocket.Send(sendSegments, SocketFlags.None, out error); + + Assert.Equal(SegmentCount, bytesSent); + Assert.Equal(SocketError.Success, error); + + acceptSocket.Shutdown(SocketShutdown.Send); + } + }); + + using (var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) + { + client.Connect(server.LocalEndPoint); + + // receive data as 1-byte segments. + var receiveBuffer = new byte[SegmentCount]; + var receiveSegments = new List>(); + for (int i = 0; i < SegmentCount; i++) + { + receiveSegments.Add(new ArraySegment(receiveBuffer, i, 1)); + } + var bytesReceivedTotal = 0; + do + { + SocketError error; + // Receive can return up to IOV_MAX segments. + int bytesReceived = client.Receive(receiveSegments, SocketFlags.None, out error); + bytesReceivedTotal += bytesReceived; + // Offset receiveSegments for next Receive. + receiveSegments.RemoveRange(0, bytesReceived); + + Assert.NotEqual(0, bytesReceived); + Assert.Equal(SocketError.Success, error); + } while (bytesReceivedTotal != SegmentCount); + + AssertExtensions.Equal(sendBuffer, receiveBuffer); + } + } + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] + public void SendIovMaxUdp_SuccessOrMessageSize() + { + // sending more than IOV_MAX segments causes EMSGSIZE on some platforms. + // We handle this for stream sockets by truncating. + // This test verifies we are not truncating non-stream sockets. + + // Use more than IOV_MAX (1024 on Linux & macOS) segments + // and less than Ethernet MTU. + const int SegmentCount = 1200; + using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + { + socket.BindToAnonymousPort(IPAddress.Loopback); + // Use our own address as destination. + socket.Connect(socket.LocalEndPoint); + + var sendBuffer = new byte[SegmentCount]; + var sendSegments = new List>(); + for (int i = 0; i < SegmentCount; i++) + { + sendBuffer[i] = (byte)i; + sendSegments.Add(new ArraySegment(sendBuffer, i, 1)); + } + + SocketError error; + // send data as SegmentCount (> IOV_MAX) 1-byte segments. + int bytesSent = socket.Send(sendSegments, SocketFlags.None, out error); + if (error == SocketError.Success) + { + // platform sent message with > IOV_MAX segments + Assert.Equal(SegmentCount, bytesSent); + } + else + { + // platform returns EMSGSIZE + Assert.Equal(SocketError.MessageSize, error); + Assert.Equal(0, bytesSent); + } + } + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] + public async Task ReceiveIovMaxUdp_SuccessOrMessageSize() + { + // receiving more than IOV_MAX segments causes EMSGSIZE on some platforms. + // We handle this for stream sockets by truncating. + // This test verifies we are not truncating non-stream sockets. + + // Use more than IOV_MAX (1024 on Linux & macOS) segments + // and less than Ethernet MTU. + const int SegmentCount = 1200; + var sender = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + sender.BindToAnonymousPort(IPAddress.Loopback); + var receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + receiver.Connect(sender.LocalEndPoint); // only receive from sender + EndPoint receiverEndPoint = receiver.LocalEndPoint; + + Barrier b = new Barrier(2); + + Task receiveTask = Task.Run(() => + { + using (receiver) + { + var receiveBuffer = new byte[SegmentCount]; + var receiveSegments = new List>(); + for (int i = 0; i < SegmentCount; i++) + { + receiveSegments.Add(new ArraySegment(receiveBuffer, i, 1)); + } + // receive data as SegmentCount (> IOV_MAX) 1-byte segments. + SocketError error; + // Signal we are ready to receive. + b.SignalAndWait(); + int bytesReceived = receiver.Receive(receiveSegments, SocketFlags.None, out error); + + if (error == SocketError.Success) + { + // platform received message in > IOV_MAX segments + Assert.Equal(SegmentCount, bytesReceived); + } + else + { + // platform returns EMSGSIZE + Assert.Equal(SocketError.MessageSize, error); + Assert.Equal(0, bytesReceived); + } + } + }); + + using (sender) + { + sender.Connect(receiverEndPoint); + + // Synchronize and wait for receiving task to be ready. + b.SignalAndWait(); + + var sendBuffer = new byte[SegmentCount]; + for (int i = 0; i < 10; i++) // UDPRedundancy + { + int bytesSent = sender.Send(sendBuffer); + Assert.Equal(SegmentCount, bytesSent); + await Task.WhenAny(receiveTask, Task.Delay(3)); + if (receiveTask.IsCompleted) + { + break; + } + } + } + + Assert.True(receiveTask.IsCompleted); + await receiveTask; + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] + [PlatformSpecific(~TestPlatforms.Windows)] // All data is sent, even when very large (100M). + public void SocketSendWouldBlock_ReturnsBytesSent() + { + using (var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) + using (var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) + { + // listen + server.BindToAnonymousPort(IPAddress.Loopback); + server.Listen(1); + // connect + client.Connect(server.LocalEndPoint); + // accept + using (Socket socket = server.Accept()) + { + // We send a large amount of data but don't read it. + // A chunck will be sent, attempts to send more will return SocketError.WouldBlock. + // Socket.Send must return the success of the partial send. + socket.Blocking = false; + var data = new byte[5_000_000]; + SocketError error; + int bytesSent = socket.Send(data, 0, data.Length, SocketFlags.None, out error); + + Assert.Equal(SocketError.Success, error); + Assert.InRange(bytesSent, 1, data.Length - 1); + } + } + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsSubsystemForLinux))] // [ActiveIssue("https://github.com/dotnet/runtime/issues/18258")] + [PlatformSpecific(TestPlatforms.AnyUnix)] + public async Task Socket_ReceiveFlags_Success() + { + using (var sender = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + using (var receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + { + receiver.BindToAnonymousPort(IPAddress.Loopback); + sender.Connect(receiver.LocalEndPoint); + sender.SendBufferSize = 1500; + + var data = new byte[500]; + data[0] = data[499] = 1; + + Assert.Equal(500, sender.Send(data)); + data[0] = data[499] = 2; + Assert.Equal(500, sender.Send(data)); + + var tcs = new TaskCompletionSource(); + SocketAsyncEventArgs args = new SocketAsyncEventArgs(); + + var receiveBufer = new byte[600]; + receiveBufer[0] = data[499] = 0; + + args.SetBuffer(receiveBufer, 0, receiveBufer.Length); + args.Completed += delegate { tcs.SetResult(); }; + + // First peek at the message. + args.SocketFlags = SocketFlags.Peek; + if (receiver.ReceiveAsync(args)) + { + await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); + } + Assert.Equal(SocketFlags.None, args.SocketFlags); + Assert.Equal(1, receiveBufer[0]); + Assert.Equal(1, receiveBufer[499]); + receiveBufer[0] = receiveBufer[499] = 0; + + // Now, we should be able to get same message again. + tcs = new TaskCompletionSource(); + args.SocketFlags = SocketFlags.None; + if (receiver.ReceiveAsync(args)) + { + await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); + } + Assert.Equal(SocketFlags.None, args.SocketFlags); + Assert.Equal(1, receiveBufer[0]); + Assert.Equal(1, receiveBufer[499]); + receiveBufer[0] = receiveBufer[499] = 0; + + // Set buffer smaller than message. + tcs = new TaskCompletionSource(); + args.SetBuffer(receiveBufer, 0, 100); + if (receiver.ReceiveAsync(args)) + { + await tcs.Task.TimeoutAfter(TestSettings.PassingTestTimeout); + } + Assert.Equal(SocketFlags.Truncated, args.SocketFlags); + Assert.Equal(2, receiveBufer[0]); + + // There should be no more data. + Assert.Equal(0, receiver.Available); + } + } + } +} diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs new file mode 100644 index 000000000000..02cb9a09abd9 --- /dev/null +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs @@ -0,0 +1,147 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace System.Net.Sockets.Tests +{ + [Collection(nameof(NoParallelTests))] + public abstract class SendReceiveNonParallel : SocketTestHelperBase where T : SocketHelperBase, new() + { + public SendReceiveNonParallel(ITestOutputHelper output) : base(output) { } + + public static IEnumerable LoopbackWithBool => + from addr in Loopbacks + from b in new[] { false, true } + select new object[] { addr[0], b }; + + [OuterLoop("Serial execution of all variants takes long")] + [Theory] + [MemberData(nameof(LoopbackWithBool))] + public async Task SendToRecvFrom_Datagram_UDP(IPAddress loopbackAddress, bool useClone) + { + IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; + + const int DatagramSize = 256; + const int DatagramsToSend = 256; + const int ReceiverAckTimeout = 5000; + const int SenderAckTimeout = 10000; + + using var origLeft = new Socket(leftAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); + using var origRight = new Socket(rightAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); + origLeft.BindToAnonymousPort(leftAddress); + origRight.BindToAnonymousPort(rightAddress); + + using var left = useClone ? new Socket(origLeft.SafeHandle) : origLeft; + using var right = useClone ? new Socket(origRight.SafeHandle) : origRight; + + var leftEndpoint = (IPEndPoint)left.LocalEndPoint; + var rightEndpoint = (IPEndPoint)right.LocalEndPoint; + + var receiverAck = new SemaphoreSlim(0); + var senderAck = new SemaphoreSlim(0); + + _output.WriteLine($"{DateTime.Now}: Sending data from {rightEndpoint} to {leftEndpoint}"); + + var receivedChecksums = new uint?[DatagramsToSend]; + Task leftThread = Task.Run(async () => + { + EndPoint remote = leftEndpoint.Create(leftEndpoint.Serialize()); + var recvBuffer = new byte[DatagramSize]; + for (int i = 0; i < DatagramsToSend; i++) + { + SocketReceiveFromResult result = await ReceiveFromAsync( + left, new ArraySegment(recvBuffer), remote); + Assert.Equal(DatagramSize, result.ReceivedBytes); + Assert.Equal(rightEndpoint, result.RemoteEndPoint); + + int datagramId = recvBuffer[0]; + Assert.Null(receivedChecksums[datagramId]); + receivedChecksums[datagramId] = Fletcher32.Checksum(recvBuffer, 0, result.ReceivedBytes); + + receiverAck.Release(); + bool gotAck = await senderAck.WaitAsync(SenderAckTimeout); + Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {SenderAckTimeout} for senderAck in iteration {i}"); + } + }); + + var sentChecksums = new uint[DatagramsToSend]; + using (right) + { + var random = new Random(); + var sendBuffer = new byte[DatagramSize]; + for (int i = 0; i < DatagramsToSend; i++) + { + random.NextBytes(sendBuffer); + sendBuffer[0] = (byte)i; + + int sent = await SendToAsync(right, new ArraySegment(sendBuffer), leftEndpoint); + + bool gotAck = await receiverAck.WaitAsync(ReceiverAckTimeout); + Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {ReceiverAckTimeout} for receiverAck in iteration {i} after sending {sent}. Receiver is in {leftThread.Status}"); + senderAck.Release(); + + Assert.Equal(DatagramSize, sent); + sentChecksums[i] = Fletcher32.Checksum(sendBuffer, 0, sent); + } + } + + await leftThread; + for (int i = 0; i < DatagramsToSend; i++) + { + Assert.NotNull(receivedChecksums[i]); + Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); + } + } + } + + public sealed class SendReceiveNonParallel_Sync : SendReceiveNonParallel + { + public SendReceiveNonParallel_Sync(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SyncForceNonBlocking : SendReceiveNonParallel + { + public SendReceiveNonParallel_SyncForceNonBlocking(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Apm : SendReceiveNonParallel + { + public SendReceiveNonParallel_Apm(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Task : SendReceiveNonParallel + { + public SendReceiveNonParallel_Task(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Eap : SendReceiveNonParallel + { + public SendReceiveNonParallel_Eap(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SpanSync : SendReceiveNonParallel + { + public SendReceiveNonParallel_SpanSync(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SpanSyncForceNonBlocking : SendReceiveNonParallel + { + public SendReceiveNonParallel_SpanSyncForceNonBlocking(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_MemoryArrayTask : SendReceiveNonParallel + { + public SendReceiveNonParallel_MemoryArrayTask(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_MemoryNativeTask : SendReceiveNonParallel + { + public SendReceiveNonParallel_MemoryNativeTask(ITestOutputHelper output) : base(output) { } + } +} diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveTcpClient.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveTcpClient.cs new file mode 100644 index 000000000000..503055d98ab0 --- /dev/null +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveTcpClient.cs @@ -0,0 +1,82 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Threading.Tasks; +using Xunit; + +namespace System.Net.Sockets.Tests +{ + public sealed class SendReceiveTcpClient : MemberDatas + { + [OuterLoop] + [Theory] + [MemberData(nameof(Loopbacks))] + public async Task SendRecvAsync_TcpListener_TcpClient(IPAddress listenAt) + { + const int BytesToSend = 123456; + const int ListenBacklog = 1; + const int LingerTime = 10; + const int TestTimeout = 30000; + + var listener = new TcpListener(listenAt, 0); + listener.Start(ListenBacklog); + + int bytesReceived = 0; + var receivedChecksum = new Fletcher32(); + Task serverTask = Task.Run(async () => + { + using (TcpClient remote = await listener.AcceptTcpClientAsync()) + using (NetworkStream stream = remote.GetStream()) + { + var recvBuffer = new byte[256]; + while (true) + { + int received = await stream.ReadAsync(recvBuffer, 0, recvBuffer.Length); + if (received == 0) + { + break; + } + + bytesReceived += received; + receivedChecksum.Add(recvBuffer, 0, received); + } + } + }); + + int bytesSent = 0; + var sentChecksum = new Fletcher32(); + Task clientTask = Task.Run(async () => + { + var clientEndpoint = (IPEndPoint)listener.LocalEndpoint; + + using (var client = new TcpClient(clientEndpoint.AddressFamily)) + { + await client.ConnectAsync(clientEndpoint.Address, clientEndpoint.Port); + + using (NetworkStream stream = client.GetStream()) + { + var random = new Random(); + var sendBuffer = new byte[512]; + for (int remaining = BytesToSend, sent = 0; remaining > 0; remaining -= sent) + { + random.NextBytes(sendBuffer); + + sent = Math.Min(sendBuffer.Length, remaining); + await stream.WriteAsync(sendBuffer, 0, sent); + + bytesSent += sent; + sentChecksum.Add(sendBuffer, 0, sent); + } + + client.LingerState = new LingerOption(true, LingerTime); + } + } + }); + + await (new[] { serverTask, clientTask }).WhenAllOrAnyFailed(TestTimeout); + + Assert.Equal(bytesSent, bytesReceived); + Assert.Equal(sentChecksum.Sum, receivedChecksum.Sum); + } + } +} diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveUdpClient.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveUdpClient.cs new file mode 100644 index 000000000000..ce83af9bb677 --- /dev/null +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveUdpClient.cs @@ -0,0 +1,89 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +namespace System.Net.Sockets.Tests +{ + public sealed class SendReceiveUdpClient : MemberDatas + { + [OuterLoop] + [Theory] + [MemberData(nameof(Loopbacks))] + public async Task SendToRecvFromAsync_Datagram_UDP_UdpClient(IPAddress loopbackAddress) + { + IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; + + const int DatagramSize = 256; + const int DatagramsToSend = 256; + const int AckTimeout = 20000; + const int TestTimeout = 60000; + + using (var left = new UdpClient(new IPEndPoint(leftAddress, 0))) + using (var right = new UdpClient(new IPEndPoint(rightAddress, 0))) + { + var leftEndpoint = (IPEndPoint)left.Client.LocalEndPoint; + var rightEndpoint = (IPEndPoint)right.Client.LocalEndPoint; + + var receiverAck = new ManualResetEventSlim(); + var senderAck = new ManualResetEventSlim(); + + var receivedChecksums = new uint?[DatagramsToSend]; + int receivedDatagrams = 0; + + Task receiverTask = Task.Run(async () => + { + for (; receivedDatagrams < DatagramsToSend; receivedDatagrams++) + { + UdpReceiveResult result = await left.ReceiveAsync(); + + receiverAck.Set(); + Assert.True(senderAck.Wait(AckTimeout)); + senderAck.Reset(); + + Assert.Equal(DatagramSize, result.Buffer.Length); + Assert.Equal(rightEndpoint, result.RemoteEndPoint); + + int datagramId = (int)result.Buffer[0]; + Assert.Null(receivedChecksums[datagramId]); + + receivedChecksums[datagramId] = Fletcher32.Checksum(result.Buffer, 0, result.Buffer.Length); + } + }); + + var sentChecksums = new uint[DatagramsToSend]; + int sentDatagrams = 0; + + Task senderTask = Task.Run(async () => + { + var random = new Random(); + var sendBuffer = new byte[DatagramSize]; + + for (; sentDatagrams < DatagramsToSend; sentDatagrams++) + { + random.NextBytes(sendBuffer); + sendBuffer[0] = (byte)sentDatagrams; + + int sent = await right.SendAsync(sendBuffer, DatagramSize, leftEndpoint); + + Assert.True(receiverAck.Wait(AckTimeout)); + receiverAck.Reset(); + senderAck.Set(); + + Assert.Equal(DatagramSize, sent); + sentChecksums[sentDatagrams] = Fletcher32.Checksum(sendBuffer, 0, sent); + } + }); + + await (new[] { receiverTask, senderTask }).WhenAllOrAnyFailed(TestTimeout); + for (int i = 0; i < DatagramsToSend; i++) + { + Assert.NotNull(receivedChecksums[i]); + Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); + } + } + } + } +} diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj b/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj index fee81761de6f..e2522c8009bc 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj @@ -34,7 +34,11 @@ - + + + + + diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs index 144557c77636..d007ab14bfa4 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs @@ -349,17 +349,17 @@ public void EventSource_EventsRaisedAsExpected() { // Invoke several tests to execute code paths while tracing is enabled - await new SendReceiveSync(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); - await new SendReceiveSync(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); + await new SendReceive_Sync(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); + await new SendReceive_Sync(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); - await new SendReceiveTask(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); - await new SendReceiveTask(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); + await new SendReceive_Task(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); + await new SendReceive_Task(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); - await new SendReceiveEap(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); - await new SendReceiveEap(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); + await new SendReceive_Eap(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); + await new SendReceive_Eap(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); - await new SendReceiveApm(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); - await new SendReceiveApm(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); + await new SendReceive_Apm(null).SendRecv_Stream_TCP(IPAddress.Loopback, false).ConfigureAwait(false); + await new SendReceive_Apm(null).SendRecv_Stream_TCP(IPAddress.Loopback, true).ConfigureAwait(false); await new SendReceiveUdpClient().SendToRecvFromAsync_Datagram_UDP_UdpClient(IPAddress.Loopback).ConfigureAwait(false); await new SendReceiveUdpClient().SendToRecvFromAsync_Datagram_UDP_UdpClient(IPAddress.Loopback).ConfigureAwait(false); diff --git a/src/libraries/System.Net.WebClient/System.Net.WebClient.sln b/src/libraries/System.Net.WebClient/System.Net.WebClient.sln index 4275afa56d2c..aca45419e20a 100644 --- a/src/libraries/System.Net.WebClient/System.Net.WebClient.sln +++ b/src/libraries/System.Net.WebClient/System.Net.WebClient.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient.Tests", "tests\System.Net.WebClient.Tests.csproj", "{D2348221-084D-4076-91BF-C24D28E7D386}" - ProjectSection(ProjectDependencies) = postProject - {EA25218A-0470-44CC-BDF0-3E74D5848BD8} = {EA25218A-0470-44CC-BDF0-3E74D5848BD8} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C2828D1D-8EBC-4971-91F9-3FF259066D01}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient", "src\System.Net.WebClient.csproj", "{EA25218A-0470-44CC-BDF0-3E74D5848BD8}" - ProjectSection(ProjectDependencies) = postProject - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45} = {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E0BB2749-DD10-43D9-A8DB-F72A8D2424CD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient", "ref\System.Net.WebClient.csproj", "{03D6021D-CB0B-43BD-83A5-7FDEDB39AE45}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient", "ref\System.Net.WebClient.csproj", "{F1689AFC-F672-4407-B5C9-3515C301CF31}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient", "src\System.Net.WebClient.csproj", "{18F1E6CD-3568-4042-9EC3-6430FD60EC3A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebClient.Tests", "tests\System.Net.WebClient.Tests.csproj", "{F9889BAD-7D20-4581-9F91-7490EBF5F9CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8DBDE7C2-5866-409F-B3BB-9C8B506F1003}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{36E7ABB6-B312-4826-A16F-6391B4C36265}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{39B64124-E091-48D6-B3CB-B358AE7788EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{80561BDE-49C3-451B-9B27-29A68D789AE3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{FA3F6156-19AE-4A14-836A-4E544F8CAE82}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CB2BA4CC-A572-4FF5-B49C-11CE86BFCA20}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{45C71015-7D4B-415A-A5B1-82101F4E6107}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3685AD2E-E4D3-40EA-A291-310D651CB47D}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C2828D1D-8EBC-4971-91F9-3FF259066D01} = {CB2BA4CC-A572-4FF5-B49C-11CE86BFCA20} + {F9889BAD-7D20-4581-9F91-7490EBF5F9CA} = {CB2BA4CC-A572-4FF5-B49C-11CE86BFCA20} + {E0BB2749-DD10-43D9-A8DB-F72A8D2424CD} = {45C71015-7D4B-415A-A5B1-82101F4E6107} + {F1689AFC-F672-4407-B5C9-3515C301CF31} = {45C71015-7D4B-415A-A5B1-82101F4E6107} + {8DBDE7C2-5866-409F-B3BB-9C8B506F1003} = {45C71015-7D4B-415A-A5B1-82101F4E6107} + {80561BDE-49C3-451B-9B27-29A68D789AE3} = {45C71015-7D4B-415A-A5B1-82101F4E6107} + {FA3F6156-19AE-4A14-836A-4E544F8CAE82} = {45C71015-7D4B-415A-A5B1-82101F4E6107} + {18F1E6CD-3568-4042-9EC3-6430FD60EC3A} = {3685AD2E-E4D3-40EA-A291-310D651CB47D} + {39B64124-E091-48D6-B3CB-B358AE7788EE} = {3685AD2E-E4D3-40EA-A291-310D651CB47D} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D2348221-084D-4076-91BF-C24D28E7D386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2348221-084D-4076-91BF-C24D28E7D386}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2348221-084D-4076-91BF-C24D28E7D386}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2348221-084D-4076-91BF-C24D28E7D386}.Release|Any CPU.Build.0 = Release|Any CPU - {EA25218A-0470-44CC-BDF0-3E74D5848BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA25218A-0470-44CC-BDF0-3E74D5848BD8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EA25218A-0470-44CC-BDF0-3E74D5848BD8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EA25218A-0470-44CC-BDF0-3E74D5848BD8}.Release|Any CPU.Build.0 = Release|Any CPU - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45}.Release|Any CPU.Build.0 = Release|Any CPU - {36E7ABB6-B312-4826-A16F-6391B4C36265}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36E7ABB6-B312-4826-A16F-6391B4C36265}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36E7ABB6-B312-4826-A16F-6391B4C36265}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36E7ABB6-B312-4826-A16F-6391B4C36265}.Release|Any CPU.Build.0 = Release|Any CPU + {C2828D1D-8EBC-4971-91F9-3FF259066D01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2828D1D-8EBC-4971-91F9-3FF259066D01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2828D1D-8EBC-4971-91F9-3FF259066D01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2828D1D-8EBC-4971-91F9-3FF259066D01}.Release|Any CPU.Build.0 = Release|Any CPU + {E0BB2749-DD10-43D9-A8DB-F72A8D2424CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0BB2749-DD10-43D9-A8DB-F72A8D2424CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0BB2749-DD10-43D9-A8DB-F72A8D2424CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0BB2749-DD10-43D9-A8DB-F72A8D2424CD}.Release|Any CPU.Build.0 = Release|Any CPU + {F1689AFC-F672-4407-B5C9-3515C301CF31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1689AFC-F672-4407-B5C9-3515C301CF31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1689AFC-F672-4407-B5C9-3515C301CF31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1689AFC-F672-4407-B5C9-3515C301CF31}.Release|Any CPU.Build.0 = Release|Any CPU + {18F1E6CD-3568-4042-9EC3-6430FD60EC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18F1E6CD-3568-4042-9EC3-6430FD60EC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18F1E6CD-3568-4042-9EC3-6430FD60EC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18F1E6CD-3568-4042-9EC3-6430FD60EC3A}.Release|Any CPU.Build.0 = Release|Any CPU + {F9889BAD-7D20-4581-9F91-7490EBF5F9CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9889BAD-7D20-4581-9F91-7490EBF5F9CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9889BAD-7D20-4581-9F91-7490EBF5F9CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9889BAD-7D20-4581-9F91-7490EBF5F9CA}.Release|Any CPU.Build.0 = Release|Any CPU + {8DBDE7C2-5866-409F-B3BB-9C8B506F1003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DBDE7C2-5866-409F-B3BB-9C8B506F1003}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DBDE7C2-5866-409F-B3BB-9C8B506F1003}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DBDE7C2-5866-409F-B3BB-9C8B506F1003}.Release|Any CPU.Build.0 = Release|Any CPU + {39B64124-E091-48D6-B3CB-B358AE7788EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39B64124-E091-48D6-B3CB-B358AE7788EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39B64124-E091-48D6-B3CB-B358AE7788EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39B64124-E091-48D6-B3CB-B358AE7788EE}.Release|Any CPU.Build.0 = Release|Any CPU + {80561BDE-49C3-451B-9B27-29A68D789AE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80561BDE-49C3-451B-9B27-29A68D789AE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80561BDE-49C3-451B-9B27-29A68D789AE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80561BDE-49C3-451B-9B27-29A68D789AE3}.Release|Any CPU.Build.0 = Release|Any CPU + {FA3F6156-19AE-4A14-836A-4E544F8CAE82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA3F6156-19AE-4A14-836A-4E544F8CAE82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA3F6156-19AE-4A14-836A-4E544F8CAE82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA3F6156-19AE-4A14-836A-4E544F8CAE82}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {D2348221-084D-4076-91BF-C24D28E7D386} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {EA25218A-0470-44CC-BDF0-3E74D5848BD8} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {03D6021D-CB0B-43BD-83A5-7FDEDB39AE45} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {36E7ABB6-B312-4826-A16F-6391B4C36265} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5B937922-D833-49BA-8532-EF076BE10482} + SolutionGuid = {22B7F474-635F-4C3B-A730-3BBE6C176F12} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.sln b/src/libraries/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.sln index 6a9e0291d1f9..c898e17b01f9 100644 --- a/src/libraries/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.sln +++ b/src/libraries/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection.Tests", "tests\System.Net.WebHeaderCollection.Tests.csproj", "{F8C21EE8-B271-4014-B9D9-B2C31520AF3F}" - ProjectSection(ProjectDependencies) = postProject - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48} = {C7DB0DF2-9CF2-42FB-89A7-450550B52C48} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection", "src\System.Net.WebHeaderCollection.csproj", "{C7DB0DF2-9CF2-42FB-89A7-450550B52C48}" - ProjectSection(ProjectDependencies) = postProject - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2} = {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7BD9E469-1854-4D21-B7FB-74C98A7D2361}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection", "ref\System.Net.WebHeaderCollection.csproj", "{99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection", "ref\System.Net.WebHeaderCollection.csproj", "{2050FA72-2FB5-4057-B33A-7716064BE254}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection", "src\System.Net.WebHeaderCollection.csproj", "{0C54036A-68E7-4D87-AE77-72279D8DC116}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebHeaderCollection.Tests", "tests\System.Net.WebHeaderCollection.Tests.csproj", "{D9180DE2-C834-47A6-B5E9-B95A5EE7FA76}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7B2FD545-81F8-4604-825A-070AAB9A01CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F475AC54-2107-4CBB-9C91-EE668E770DFB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D0417262-7CF9-4DCB-8738-9294EF18C71A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{7F7BB520-112B-4C69-B32C-EEE7C64CB449}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{911C4A6D-9202-4D5B-9F79-4264480BE8DD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{42F44289-A9B4-4970-ABAD-D53900F92E56}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A5240341-B58B-4B3C-BC2A-51048E1CE0E6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3} = {911C4A6D-9202-4D5B-9F79-4264480BE8DD} + {D9180DE2-C834-47A6-B5E9-B95A5EE7FA76} = {911C4A6D-9202-4D5B-9F79-4264480BE8DD} + {7BD9E469-1854-4D21-B7FB-74C98A7D2361} = {42F44289-A9B4-4970-ABAD-D53900F92E56} + {2050FA72-2FB5-4057-B33A-7716064BE254} = {42F44289-A9B4-4970-ABAD-D53900F92E56} + {7B2FD545-81F8-4604-825A-070AAB9A01CA} = {42F44289-A9B4-4970-ABAD-D53900F92E56} + {D0417262-7CF9-4DCB-8738-9294EF18C71A} = {42F44289-A9B4-4970-ABAD-D53900F92E56} + {7F7BB520-112B-4C69-B32C-EEE7C64CB449} = {42F44289-A9B4-4970-ABAD-D53900F92E56} + {0C54036A-68E7-4D87-AE77-72279D8DC116} = {A5240341-B58B-4B3C-BC2A-51048E1CE0E6} + {ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE} = {A5240341-B58B-4B3C-BC2A-51048E1CE0E6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F8C21EE8-B271-4014-B9D9-B2C31520AF3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8C21EE8-B271-4014-B9D9-B2C31520AF3F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8C21EE8-B271-4014-B9D9-B2C31520AF3F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8C21EE8-B271-4014-B9D9-B2C31520AF3F}.Release|Any CPU.Build.0 = Release|Any CPU - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48}.Release|Any CPU.Build.0 = Release|Any CPU - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2}.Release|Any CPU.Build.0 = Release|Any CPU - {F475AC54-2107-4CBB-9C91-EE668E770DFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F475AC54-2107-4CBB-9C91-EE668E770DFB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F475AC54-2107-4CBB-9C91-EE668E770DFB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F475AC54-2107-4CBB-9C91-EE668E770DFB}.Release|Any CPU.Build.0 = Release|Any CPU + {90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90C9B7BA-9AA1-49DA-8DB1-5E7CC8A304D3}.Release|Any CPU.Build.0 = Release|Any CPU + {7BD9E469-1854-4D21-B7FB-74C98A7D2361}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BD9E469-1854-4D21-B7FB-74C98A7D2361}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BD9E469-1854-4D21-B7FB-74C98A7D2361}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BD9E469-1854-4D21-B7FB-74C98A7D2361}.Release|Any CPU.Build.0 = Release|Any CPU + {2050FA72-2FB5-4057-B33A-7716064BE254}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2050FA72-2FB5-4057-B33A-7716064BE254}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2050FA72-2FB5-4057-B33A-7716064BE254}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2050FA72-2FB5-4057-B33A-7716064BE254}.Release|Any CPU.Build.0 = Release|Any CPU + {0C54036A-68E7-4D87-AE77-72279D8DC116}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C54036A-68E7-4D87-AE77-72279D8DC116}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C54036A-68E7-4D87-AE77-72279D8DC116}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C54036A-68E7-4D87-AE77-72279D8DC116}.Release|Any CPU.Build.0 = Release|Any CPU + {D9180DE2-C834-47A6-B5E9-B95A5EE7FA76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9180DE2-C834-47A6-B5E9-B95A5EE7FA76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9180DE2-C834-47A6-B5E9-B95A5EE7FA76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9180DE2-C834-47A6-B5E9-B95A5EE7FA76}.Release|Any CPU.Build.0 = Release|Any CPU + {7B2FD545-81F8-4604-825A-070AAB9A01CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B2FD545-81F8-4604-825A-070AAB9A01CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B2FD545-81F8-4604-825A-070AAB9A01CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B2FD545-81F8-4604-825A-070AAB9A01CA}.Release|Any CPU.Build.0 = Release|Any CPU + {ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECFA0770-73C5-4EEE-A51F-8A2DDFEB04BE}.Release|Any CPU.Build.0 = Release|Any CPU + {D0417262-7CF9-4DCB-8738-9294EF18C71A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0417262-7CF9-4DCB-8738-9294EF18C71A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0417262-7CF9-4DCB-8738-9294EF18C71A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0417262-7CF9-4DCB-8738-9294EF18C71A}.Release|Any CPU.Build.0 = Release|Any CPU + {7F7BB520-112B-4C69-B32C-EEE7C64CB449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F7BB520-112B-4C69-B32C-EEE7C64CB449}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F7BB520-112B-4C69-B32C-EEE7C64CB449}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F7BB520-112B-4C69-B32C-EEE7C64CB449}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F8C21EE8-B271-4014-B9D9-B2C31520AF3F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C7DB0DF2-9CF2-42FB-89A7-450550B52C48} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {99180E9D-F72D-4EF5-8F0E-79C6B29C3FA2} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F475AC54-2107-4CBB-9C91-EE668E770DFB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {17DAFDBC-B0D5-4B75-B598-686C2D64FB38} + SolutionGuid = {EFEE317E-9BE9-4733-A847-E0DBA00099CF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebHeaderCollection/src/System.Net.WebHeaderCollection.csproj b/src/libraries/System.Net.WebHeaderCollection/src/System.Net.WebHeaderCollection.csproj index 3d060d6ebc3c..d52760c4c646 100644 --- a/src/libraries/System.Net.WebHeaderCollection/src/System.Net.WebHeaderCollection.csproj +++ b/src/libraries/System.Net.WebHeaderCollection/src/System.Net.WebHeaderCollection.csproj @@ -23,7 +23,6 @@ - diff --git a/src/libraries/System.Net.WebHeaderCollection/src/System/Net/HeaderInfoTable.cs b/src/libraries/System.Net.WebHeaderCollection/src/System/Net/HeaderInfoTable.cs index c0a7f92ac8e1..4e23fcc418ae 100644 --- a/src/libraries/System.Net.WebHeaderCollection/src/System/Net/HeaderInfoTable.cs +++ b/src/libraries/System.Net.WebHeaderCollection/src/System/Net/HeaderInfoTable.cs @@ -4,7 +4,6 @@ using System.Collections; using System.Collections.Generic; using System.Diagnostics; -using System.Linq; namespace System.Net { diff --git a/src/libraries/System.Net.WebProxy/System.Net.WebProxy.sln b/src/libraries/System.Net.WebProxy/System.Net.WebProxy.sln index 953cc47adcda..336bbf18a12f 100644 --- a/src/libraries/System.Net.WebProxy/System.Net.WebProxy.sln +++ b/src/libraries/System.Net.WebProxy/System.Net.WebProxy.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy.Tests", "tests\System.Net.WebProxy.Tests.csproj", "{0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B}" - ProjectSection(ProjectDependencies) = postProject - {6C18AD20-E20F-4652-83E3-D24E4670530D} = {6C18AD20-E20F-4652-83E3-D24E4670530D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4F05FFEE-F76C-440A-8A56-CFDCE04DABAE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy", "src\System.Net.WebProxy.csproj", "{6C18AD20-E20F-4652-83E3-D24E4670530D}" - ProjectSection(ProjectDependencies) = postProject - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C} = {B7B008FB-2C9F-4111-887C-E3FEC284FE3C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E04B4081-F66B-464A-95A0-7528175F5F8E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy", "ref\System.Net.WebProxy.csproj", "{B7B008FB-2C9F-4111-887C-E3FEC284FE3C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy", "ref\System.Net.WebProxy.csproj", "{D9D40485-7AAE-474C-833A-C21021A823BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy", "src\System.Net.WebProxy.csproj", "{C841B625-5802-40BE-850C-FA935E3D6E9A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebProxy.Tests", "tests\System.Net.WebProxy.Tests.csproj", "{80A28FFF-68C8-431B-83BE-F04E3155F16A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{7C5F423B-BC8E-4E59-A583-8DABB439A1FB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F5ADFF8C-383D-4528-A04A-1B3957BCCB84}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{F6E02031-4EF4-4413-B6E9-D87D2D475C95}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CA79C4D6-81F3-41F8-90A6-14965C3AD68C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4E06FCCE-8BF1-446C-A9BA-955A2880BFC2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{EEF8E64B-1C5B-48E4-BF7A-82D460D2197B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A594CB37-60CA-4BCC-84FE-A613E0C43037}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {4F05FFEE-F76C-440A-8A56-CFDCE04DABAE} = {4E06FCCE-8BF1-446C-A9BA-955A2880BFC2} + {80A28FFF-68C8-431B-83BE-F04E3155F16A} = {4E06FCCE-8BF1-446C-A9BA-955A2880BFC2} + {E04B4081-F66B-464A-95A0-7528175F5F8E} = {EEF8E64B-1C5B-48E4-BF7A-82D460D2197B} + {D9D40485-7AAE-474C-833A-C21021A823BF} = {EEF8E64B-1C5B-48E4-BF7A-82D460D2197B} + {7C5F423B-BC8E-4E59-A583-8DABB439A1FB} = {EEF8E64B-1C5B-48E4-BF7A-82D460D2197B} + {F6E02031-4EF4-4413-B6E9-D87D2D475C95} = {EEF8E64B-1C5B-48E4-BF7A-82D460D2197B} + {CA79C4D6-81F3-41F8-90A6-14965C3AD68C} = {EEF8E64B-1C5B-48E4-BF7A-82D460D2197B} + {C841B625-5802-40BE-850C-FA935E3D6E9A} = {A594CB37-60CA-4BCC-84FE-A613E0C43037} + {F5ADFF8C-383D-4528-A04A-1B3957BCCB84} = {A594CB37-60CA-4BCC-84FE-A613E0C43037} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B}.Release|Any CPU.Build.0 = Release|Any CPU - {6C18AD20-E20F-4652-83E3-D24E4670530D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C18AD20-E20F-4652-83E3-D24E4670530D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C18AD20-E20F-4652-83E3-D24E4670530D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C18AD20-E20F-4652-83E3-D24E4670530D}.Release|Any CPU.Build.0 = Release|Any CPU - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C}.Release|Any CPU.Build.0 = Release|Any CPU - {5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6}.Release|Any CPU.Build.0 = Release|Any CPU + {4F05FFEE-F76C-440A-8A56-CFDCE04DABAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F05FFEE-F76C-440A-8A56-CFDCE04DABAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F05FFEE-F76C-440A-8A56-CFDCE04DABAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F05FFEE-F76C-440A-8A56-CFDCE04DABAE}.Release|Any CPU.Build.0 = Release|Any CPU + {E04B4081-F66B-464A-95A0-7528175F5F8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E04B4081-F66B-464A-95A0-7528175F5F8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E04B4081-F66B-464A-95A0-7528175F5F8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E04B4081-F66B-464A-95A0-7528175F5F8E}.Release|Any CPU.Build.0 = Release|Any CPU + {D9D40485-7AAE-474C-833A-C21021A823BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9D40485-7AAE-474C-833A-C21021A823BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9D40485-7AAE-474C-833A-C21021A823BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9D40485-7AAE-474C-833A-C21021A823BF}.Release|Any CPU.Build.0 = Release|Any CPU + {C841B625-5802-40BE-850C-FA935E3D6E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C841B625-5802-40BE-850C-FA935E3D6E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C841B625-5802-40BE-850C-FA935E3D6E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C841B625-5802-40BE-850C-FA935E3D6E9A}.Release|Any CPU.Build.0 = Release|Any CPU + {80A28FFF-68C8-431B-83BE-F04E3155F16A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80A28FFF-68C8-431B-83BE-F04E3155F16A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80A28FFF-68C8-431B-83BE-F04E3155F16A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80A28FFF-68C8-431B-83BE-F04E3155F16A}.Release|Any CPU.Build.0 = Release|Any CPU + {7C5F423B-BC8E-4E59-A583-8DABB439A1FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C5F423B-BC8E-4E59-A583-8DABB439A1FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C5F423B-BC8E-4E59-A583-8DABB439A1FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C5F423B-BC8E-4E59-A583-8DABB439A1FB}.Release|Any CPU.Build.0 = Release|Any CPU + {F5ADFF8C-383D-4528-A04A-1B3957BCCB84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5ADFF8C-383D-4528-A04A-1B3957BCCB84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5ADFF8C-383D-4528-A04A-1B3957BCCB84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5ADFF8C-383D-4528-A04A-1B3957BCCB84}.Release|Any CPU.Build.0 = Release|Any CPU + {F6E02031-4EF4-4413-B6E9-D87D2D475C95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6E02031-4EF4-4413-B6E9-D87D2D475C95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6E02031-4EF4-4413-B6E9-D87D2D475C95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6E02031-4EF4-4413-B6E9-D87D2D475C95}.Release|Any CPU.Build.0 = Release|Any CPU + {CA79C4D6-81F3-41F8-90A6-14965C3AD68C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA79C4D6-81F3-41F8-90A6-14965C3AD68C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA79C4D6-81F3-41F8-90A6-14965C3AD68C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA79C4D6-81F3-41F8-90A6-14965C3AD68C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0DB204CE-1CB8-4CC2-A2E3-43DA93DC898B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6C18AD20-E20F-4652-83E3-D24E4670530D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B7B008FB-2C9F-4111-887C-E3FEC284FE3C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {5C611D1A-D8AC-49DB-8F9A-ECB14EAD93B6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5040A311-873C-4028-AC88-72EB1FCCCB83} + SolutionGuid = {91AA499B-9713-4B53-A6A7-7035C7C72935} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs b/src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs index b853be87dade..a5db1a07205d 100644 --- a/src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs +++ b/src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs @@ -6,6 +6,7 @@ using System.Globalization; using System.Net.NetworkInformation; using System.Runtime.Serialization; +using System.Runtime.Versioning; using System.Text.RegularExpressions; namespace System.Net @@ -160,6 +161,7 @@ private bool IsLocal(Uri host) string hostString = host.Host; +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/43751 if (IPAddress.TryParse(hostString, out IPAddress? hostAddress)) { return IPAddress.IsLoopback(hostAddress) || IsAddressLocal(hostAddress); @@ -174,11 +176,13 @@ private bool IsLocal(Uri host) // If it matches the primary domain, it's local. (Whether or not the hostname matches.) string local = "." + IPGlobalProperties.GetIPGlobalProperties().DomainName; +#pragma warning restore CA1416 // Validate platform compatibility return local.Length == (hostString.Length - dot) && string.Compare(local, 0, hostString, dot, local.Length, StringComparison.OrdinalIgnoreCase) == 0; } + [UnsupportedOSPlatform("browser")] private static bool IsAddressLocal(IPAddress ipAddress) { // Perf note: The .NET Framework caches this and then uses network change notifications to track diff --git a/src/libraries/System.Net.WebSockets.Client/System.Net.WebSockets.Client.sln b/src/libraries/System.Net.WebSockets.Client/System.Net.WebSockets.Client.sln index 3aeb14b47d92..ed370c11c608 100644 --- a/src/libraries/System.Net.WebSockets.Client/System.Net.WebSockets.Client.sln +++ b/src/libraries/System.Net.WebSockets.Client/System.Net.WebSockets.Client.sln @@ -1,60 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client.Tests", "tests\System.Net.WebSockets.Client.Tests.csproj", "{7C395A91-D955-444C-98BF-D3F809A56CE1}" - ProjectSection(ProjectDependencies) = postProject - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B} = {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B615DEB1-354C-4357-987A-BBA921E5A712}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client", "src\System.Net.WebSockets.Client.csproj", "{B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B}" - ProjectSection(ProjectDependencies) = postProject - {F282B57E-2E1E-422B-8AC2-88145E37B809} = {F282B57E-2E1E-422B-8AC2-88145E37B809} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7046884A-A00C-45B3-A5D2-BC9F568465ED}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client", "ref\System.Net.WebSockets.Client.csproj", "{F282B57E-2E1E-422B-8AC2-88145E37B809}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client", "ref\System.Net.WebSockets.Client.csproj", "{BEA5BC2C-12D1-4D01-8D2C-5029578BD066}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client", "src\System.Net.WebSockets.Client.csproj", "{0CD4C24D-7746-46F0-8D47-A396882B5468}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Client.Tests", "tests\System.Net.WebSockets.Client.Tests.csproj", "{90E8DA45-66F3-491E-B408-82AB85EEAB76}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Runtime.InteropServices.JavaScript", "..\System.Private.Runtime.InteropServices.JavaScript\src\System.Private.Runtime.InteropServices.JavaScript.csproj", "{8CD4D190-F656-4970-9AE9-4A9F8B30A2F8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7E207B06-C3D0-4F00-A061-7E9C45C9EC13}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{6B9721B2-00D0-41EC-96B9-6428CF1830CF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{59A23CAB-D098-495F-A467-74C7553FF5BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{0EF05CAA-49A3-4CC5-B169-60BB35AC98D5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{997875EB-F2FC-4F79-B161-9823D4D1C18C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4824034D-5A36-4D34-8AD4-AEF40E91F5E2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E22371DB-C57D-4EAA-9A5B-E71779A7D104}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B615DEB1-354C-4357-987A-BBA921E5A712} = {4824034D-5A36-4D34-8AD4-AEF40E91F5E2} + {90E8DA45-66F3-491E-B408-82AB85EEAB76} = {4824034D-5A36-4D34-8AD4-AEF40E91F5E2} + {7046884A-A00C-45B3-A5D2-BC9F568465ED} = {E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1} + {BEA5BC2C-12D1-4D01-8D2C-5029578BD066} = {E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1} + {6B9721B2-00D0-41EC-96B9-6428CF1830CF} = {E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1} + {0EF05CAA-49A3-4CC5-B169-60BB35AC98D5} = {E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1} + {997875EB-F2FC-4F79-B161-9823D4D1C18C} = {E431BEDD-FBEF-4A0F-91ED-2F96505E7DA1} + {0CD4C24D-7746-46F0-8D47-A396882B5468} = {E22371DB-C57D-4EAA-9A5B-E71779A7D104} + {8CD4D190-F656-4970-9AE9-4A9F8B30A2F8} = {E22371DB-C57D-4EAA-9A5B-E71779A7D104} + {59A23CAB-D098-495F-A467-74C7553FF5BB} = {E22371DB-C57D-4EAA-9A5B-E71779A7D104} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7C395A91-D955-444C-98BF-D3F809A56CE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C395A91-D955-444C-98BF-D3F809A56CE1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C395A91-D955-444C-98BF-D3F809A56CE1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C395A91-D955-444C-98BF-D3F809A56CE1}.Release|Any CPU.Build.0 = Release|Any CPU - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B}.Release|Any CPU.Build.0 = Release|Any CPU - {F282B57E-2E1E-422B-8AC2-88145E37B809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F282B57E-2E1E-422B-8AC2-88145E37B809}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F282B57E-2E1E-422B-8AC2-88145E37B809}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F282B57E-2E1E-422B-8AC2-88145E37B809}.Release|Any CPU.Build.0 = Release|Any CPU - {7E207B06-C3D0-4F00-A061-7E9C45C9EC13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E207B06-C3D0-4F00-A061-7E9C45C9EC13}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E207B06-C3D0-4F00-A061-7E9C45C9EC13}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E207B06-C3D0-4F00-A061-7E9C45C9EC13}.Release|Any CPU.Build.0 = Release|Any CPU + {B615DEB1-354C-4357-987A-BBA921E5A712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B615DEB1-354C-4357-987A-BBA921E5A712}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B615DEB1-354C-4357-987A-BBA921E5A712}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B615DEB1-354C-4357-987A-BBA921E5A712}.Release|Any CPU.Build.0 = Release|Any CPU + {7046884A-A00C-45B3-A5D2-BC9F568465ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7046884A-A00C-45B3-A5D2-BC9F568465ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7046884A-A00C-45B3-A5D2-BC9F568465ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7046884A-A00C-45B3-A5D2-BC9F568465ED}.Release|Any CPU.Build.0 = Release|Any CPU + {BEA5BC2C-12D1-4D01-8D2C-5029578BD066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEA5BC2C-12D1-4D01-8D2C-5029578BD066}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEA5BC2C-12D1-4D01-8D2C-5029578BD066}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEA5BC2C-12D1-4D01-8D2C-5029578BD066}.Release|Any CPU.Build.0 = Release|Any CPU + {0CD4C24D-7746-46F0-8D47-A396882B5468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CD4C24D-7746-46F0-8D47-A396882B5468}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CD4C24D-7746-46F0-8D47-A396882B5468}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CD4C24D-7746-46F0-8D47-A396882B5468}.Release|Any CPU.Build.0 = Release|Any CPU + {90E8DA45-66F3-491E-B408-82AB85EEAB76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90E8DA45-66F3-491E-B408-82AB85EEAB76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90E8DA45-66F3-491E-B408-82AB85EEAB76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90E8DA45-66F3-491E-B408-82AB85EEAB76}.Release|Any CPU.Build.0 = Release|Any CPU + {8CD4D190-F656-4970-9AE9-4A9F8B30A2F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CD4D190-F656-4970-9AE9-4A9F8B30A2F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CD4D190-F656-4970-9AE9-4A9F8B30A2F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CD4D190-F656-4970-9AE9-4A9F8B30A2F8}.Release|Any CPU.Build.0 = Release|Any CPU + {6B9721B2-00D0-41EC-96B9-6428CF1830CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B9721B2-00D0-41EC-96B9-6428CF1830CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B9721B2-00D0-41EC-96B9-6428CF1830CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B9721B2-00D0-41EC-96B9-6428CF1830CF}.Release|Any CPU.Build.0 = Release|Any CPU + {59A23CAB-D098-495F-A467-74C7553FF5BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59A23CAB-D098-495F-A467-74C7553FF5BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59A23CAB-D098-495F-A467-74C7553FF5BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59A23CAB-D098-495F-A467-74C7553FF5BB}.Release|Any CPU.Build.0 = Release|Any CPU + {0EF05CAA-49A3-4CC5-B169-60BB35AC98D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EF05CAA-49A3-4CC5-B169-60BB35AC98D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EF05CAA-49A3-4CC5-B169-60BB35AC98D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EF05CAA-49A3-4CC5-B169-60BB35AC98D5}.Release|Any CPU.Build.0 = Release|Any CPU + {997875EB-F2FC-4F79-B161-9823D4D1C18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {997875EB-F2FC-4F79-B161-9823D4D1C18C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {997875EB-F2FC-4F79-B161-9823D4D1C18C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {997875EB-F2FC-4F79-B161-9823D4D1C18C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7C395A91-D955-444C-98BF-D3F809A56CE1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B8AD98AE-84C3-4313-B3F1-EE8BD5BFF69B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F282B57E-2E1E-422B-8AC2-88145E37B809} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7E207B06-C3D0-4F00-A061-7E9C45C9EC13} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0998F457-1A03-4825-96F4-9B6EFC1F08EF} + SolutionGuid = {D91D7DC5-24CC-4716-A357-8170C4EB1C32} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs index c07cd8f01e79..b767c3149bee 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs +++ b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs @@ -301,7 +301,6 @@ private void NativeCleanup() public override void Dispose() { - System.Diagnostics.Debug.WriteLine("BrowserWebSocket::Dispose"); int priorState = Interlocked.Exchange(ref _state, (int)InternalState.Disposed); if (priorState == (int)InternalState.Disposed) { @@ -357,15 +356,29 @@ public override Task SendAsync(ArraySegment buffer, WebSocketMessageType m WebSocketValidate.ValidateArraySegment(buffer, nameof(buffer)); - _writeBuffer ??= new MemoryStream(); - _writeBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); - if (!endOfMessage) + { + _writeBuffer ??= new MemoryStream(); + _writeBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); return Task.CompletedTask; + } - MemoryStream writtenBuffer = _writeBuffer; + MemoryStream? writtenBuffer = _writeBuffer; _writeBuffer = null; + if (writtenBuffer is not null) + { + writtenBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); + if (writtenBuffer.TryGetBuffer(out var tmpBuffer)) + { + buffer = tmpBuffer; + } + else + { + buffer = writtenBuffer.ToArray(); + } + } + try { switch (messageType) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs b/src/libraries/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs index 8065bc3b38ae..a11c4aa9f473 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs @@ -17,6 +17,7 @@ public class ClientWebSocketOptionsTests : ClientWebSocketTestBase public ClientWebSocketOptionsTests(ITestOutputHelper output) : base(output) { } [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // Credentials not supported on browser public static void UseDefaultCredentials_Roundtrips() { var cws = new ClientWebSocket(); @@ -28,6 +29,7 @@ public static void UseDefaultCredentials_Roundtrips() } [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // Proxy not supported on browser public static void Proxy_Roundtrips() { var cws = new ClientWebSocket(); @@ -99,6 +101,7 @@ public async Task Proxy_ConnectThruProxy_Success(Uri server) } [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // Buffer not supported on browser public static void SetBuffer_InvalidArgs_Throws() { // Recreate the minimum WebSocket buffer size values from the .NET Framework version of WebSocket, @@ -120,6 +123,7 @@ public static void SetBuffer_InvalidArgs_Throws() } [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // KeepAlive not supported on browser public static void KeepAliveInterval_Roundtrips() { var cws = new ClientWebSocket(); @@ -138,6 +142,7 @@ public static void KeepAliveInterval_Roundtrips() } [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // Certificates not supported on browser public void RemoteCertificateValidationCallback_Roundtrips() { using (var cws = new ClientWebSocket()) @@ -157,6 +162,7 @@ public void RemoteCertificateValidationCallback_Roundtrips() [ConditionalTheory(nameof(WebSocketsSupported))] [InlineData(false)] [InlineData(true)] + [PlatformSpecific(~TestPlatforms.Browser)] // Certificates not supported on browser public async Task RemoteCertificateValidationCallback_PassedRemoteCertificateInfo(bool secure) { if (PlatformDetection.IsWindows7) @@ -193,6 +199,7 @@ public async Task RemoteCertificateValidationCallback_PassedRemoteCertificateInf [OuterLoop("Connects to remote service")] [ConditionalFact(nameof(WebSocketsSupported))] + [PlatformSpecific(~TestPlatforms.Browser)] // Credentials not supported on browser public async Task ClientCertificates_ValidCertificate_ServerReceivesCertificateAndConnectAsyncSucceeds() { if (PlatformDetection.IsWindows7) @@ -230,6 +237,7 @@ public async Task ClientCertificates_ValidCertificate_ServerReceivesCertificateA [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] [InlineData("ws://")] [InlineData("wss://")] + [PlatformSpecific(~TestPlatforms.Browser)] // Credentials not supported on browser public async Task NonSecureConnect_ConnectThruProxy_CONNECTisUsed(string connectionType) { if (PlatformDetection.IsWindows7) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/CloseTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/CloseTest.cs index 7bdffd25e99b..a803d4cb021f 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/CloseTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/CloseTest.cs @@ -327,6 +327,7 @@ public async Task CloseAsync_DuringConcurrentReceiveAsync_ExpectedStates(Uri ser [ConditionalFact(nameof(WebSocketsSupported))] [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] public async Task CloseAsync_CancelableEvenWhenPendingReceive_Throws() { var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); diff --git a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs index 265db6d6c416..45c94e416442 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs @@ -89,6 +89,7 @@ public async Task ConnectAsync_AddCustomHeaders_Success(Uri server) [ConditionalFact(nameof(WebSocketsSupported))] [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] public async Task ConnectAsync_AddHostHeader_Success() { string expectedHost = null; @@ -208,6 +209,7 @@ public async Task ConnectAsync_PassMultipleSubProtocols_ServerRequires_Connectio [ConditionalFact(nameof(WebSocketsSupported))] [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] public async Task ConnectAsync_NonStandardRequestHeaders_HeadersAddedWithoutValidation() { await LoopbackServer.CreateClientAndServerAsync(async uri => @@ -246,6 +248,7 @@ public async Task ConnectAndCloseAsync_UseProxyServer_ExpectedClosedState(Uri se } [ConditionalFact(nameof(WebSocketsSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/44720", TestPlatforms.Browser)] public async Task ConnectAsync_CancellationRequestedBeforeConnect_ThrowsOperationCanceledException() { using (var clientSocket = new ClientWebSocket()) @@ -259,6 +262,7 @@ public async Task ConnectAsync_CancellationRequestedBeforeConnect_ThrowsOperatio [ConditionalFact(nameof(WebSocketsSupported))] [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] public async Task ConnectAsync_CancellationRequestedAfterConnect_ThrowsOperationCanceledException() { var releaseServer = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); diff --git a/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs index 163fc2b530e3..5bfc2c911d75 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/SendReceiveTest.cs @@ -389,6 +389,7 @@ public async Task SendReceive_Concurrent_Success(Uri server) [OuterLoop("Uses external servers")] [ConditionalFact(nameof(WebSocketsSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] public async Task SendReceive_ConnectionClosedPrematurely_ReceiveAsyncFailsAndWebSocketStateUpdated() { var options = new LoopbackServer.Options { WebSocketEndpoint = true }; diff --git a/src/libraries/System.Net.WebSockets.WebSocketProtocol/Directory.Build.props b/src/libraries/System.Net.WebSockets.WebSocketProtocol/Directory.Build.props index bdcfca3b543c..1db5968484c1 100644 --- a/src/libraries/System.Net.WebSockets.WebSocketProtocol/Directory.Build.props +++ b/src/libraries/System.Net.WebSockets.WebSocketProtocol/Directory.Build.props @@ -2,5 +2,6 @@ Open + true \ No newline at end of file diff --git a/src/libraries/System.Net.WebSockets.WebSocketProtocol/System.Net.WebSockets.WebSocketProtocol.sln b/src/libraries/System.Net.WebSockets.WebSocketProtocol/System.Net.WebSockets.WebSocketProtocol.sln index 7a82f47f3cba..0a4115b62628 100644 --- a/src/libraries/System.Net.WebSockets.WebSocketProtocol/System.Net.WebSockets.WebSocketProtocol.sln +++ b/src/libraries/System.Net.WebSockets.WebSocketProtocol/System.Net.WebSockets.WebSocketProtocol.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol.Tests", "tests\System.Net.WebSockets.WebSocketProtocol.Tests.csproj", "{CF73547B-07D2-4290-A14A-CA2A354F4D21}" - ProjectSection(ProjectDependencies) = postProject - {747BE014-7C1D-4460-95AF-B41C35717165} = {747BE014-7C1D-4460-95AF-B41C35717165} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B6EF5109-6DE6-4CE3-879D-060AA8698540}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "src\System.Net.WebSockets.WebSocketProtocol.csproj", "{747BE014-7C1D-4460-95AF-B41C35717165}" - ProjectSection(ProjectDependencies) = postProject - {203345A4-0E3B-43C1-ADEB-FF493E578063} = {203345A4-0E3B-43C1-ADEB-FF493E578063} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{BFA2FE9A-920B-4A51-B6A7-571FCE6FF542}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "ref\System.Net.WebSockets.WebSocketProtocol.csproj", "{203345A4-0E3B-43C1-ADEB-FF493E578063}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "ref\System.Net.WebSockets.WebSocketProtocol.csproj", "{753243E4-C9B5-4E5C-8FBA-1211B63C435A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "src\System.Net.WebSockets.WebSocketProtocol.csproj", "{F9419A4B-8CBA-4609-BC2A-8596087CD3B0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol.Tests", "tests\System.Net.WebSockets.WebSocketProtocol.Tests.csproj", "{EA24382F-2448-4217-8682-E213A6EF868F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{ABE7DC67-F098-409C-B28C-A59CBEE888F3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{49E51E8D-40CE-4215-9D2A-751423B0C782}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{D6B4EB67-A972-4252-9F8C-C53FA38730E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{FE98CB0A-9BF7-4FBF-A792-9F89F532CE43}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{22F639F5-413A-41A2-A66D-E8E6876C007C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CBA116A5-3B17-4ED8-9F82-E3E1A36E0424}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7825E342-AA06-40BC-89BD-BBC88DD3C2FE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CBD1A8B6-B9E0-4D3D-9DEC-D95B022A8C23}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B6EF5109-6DE6-4CE3-879D-060AA8698540} = {CBA116A5-3B17-4ED8-9F82-E3E1A36E0424} + {EA24382F-2448-4217-8682-E213A6EF868F} = {CBA116A5-3B17-4ED8-9F82-E3E1A36E0424} + {BFA2FE9A-920B-4A51-B6A7-571FCE6FF542} = {7825E342-AA06-40BC-89BD-BBC88DD3C2FE} + {753243E4-C9B5-4E5C-8FBA-1211B63C435A} = {7825E342-AA06-40BC-89BD-BBC88DD3C2FE} + {ABE7DC67-F098-409C-B28C-A59CBEE888F3} = {7825E342-AA06-40BC-89BD-BBC88DD3C2FE} + {FE98CB0A-9BF7-4FBF-A792-9F89F532CE43} = {7825E342-AA06-40BC-89BD-BBC88DD3C2FE} + {22F639F5-413A-41A2-A66D-E8E6876C007C} = {7825E342-AA06-40BC-89BD-BBC88DD3C2FE} + {F9419A4B-8CBA-4609-BC2A-8596087CD3B0} = {CBD1A8B6-B9E0-4D3D-9DEC-D95B022A8C23} + {D6B4EB67-A972-4252-9F8C-C53FA38730E6} = {CBD1A8B6-B9E0-4D3D-9DEC-D95B022A8C23} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CF73547B-07D2-4290-A14A-CA2A354F4D21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF73547B-07D2-4290-A14A-CA2A354F4D21}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF73547B-07D2-4290-A14A-CA2A354F4D21}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF73547B-07D2-4290-A14A-CA2A354F4D21}.Release|Any CPU.Build.0 = Release|Any CPU - {747BE014-7C1D-4460-95AF-B41C35717165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {747BE014-7C1D-4460-95AF-B41C35717165}.Debug|Any CPU.Build.0 = Debug|Any CPU - {747BE014-7C1D-4460-95AF-B41C35717165}.Release|Any CPU.ActiveCfg = Release|Any CPU - {747BE014-7C1D-4460-95AF-B41C35717165}.Release|Any CPU.Build.0 = Release|Any CPU - {203345A4-0E3B-43C1-ADEB-FF493E578063}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {203345A4-0E3B-43C1-ADEB-FF493E578063}.Debug|Any CPU.Build.0 = Debug|Any CPU - {203345A4-0E3B-43C1-ADEB-FF493E578063}.Release|Any CPU.ActiveCfg = Release|Any CPU - {203345A4-0E3B-43C1-ADEB-FF493E578063}.Release|Any CPU.Build.0 = Release|Any CPU - {49E51E8D-40CE-4215-9D2A-751423B0C782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49E51E8D-40CE-4215-9D2A-751423B0C782}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49E51E8D-40CE-4215-9D2A-751423B0C782}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49E51E8D-40CE-4215-9D2A-751423B0C782}.Release|Any CPU.Build.0 = Release|Any CPU + {B6EF5109-6DE6-4CE3-879D-060AA8698540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6EF5109-6DE6-4CE3-879D-060AA8698540}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6EF5109-6DE6-4CE3-879D-060AA8698540}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6EF5109-6DE6-4CE3-879D-060AA8698540}.Release|Any CPU.Build.0 = Release|Any CPU + {BFA2FE9A-920B-4A51-B6A7-571FCE6FF542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFA2FE9A-920B-4A51-B6A7-571FCE6FF542}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFA2FE9A-920B-4A51-B6A7-571FCE6FF542}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFA2FE9A-920B-4A51-B6A7-571FCE6FF542}.Release|Any CPU.Build.0 = Release|Any CPU + {753243E4-C9B5-4E5C-8FBA-1211B63C435A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {753243E4-C9B5-4E5C-8FBA-1211B63C435A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {753243E4-C9B5-4E5C-8FBA-1211B63C435A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {753243E4-C9B5-4E5C-8FBA-1211B63C435A}.Release|Any CPU.Build.0 = Release|Any CPU + {F9419A4B-8CBA-4609-BC2A-8596087CD3B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9419A4B-8CBA-4609-BC2A-8596087CD3B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9419A4B-8CBA-4609-BC2A-8596087CD3B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9419A4B-8CBA-4609-BC2A-8596087CD3B0}.Release|Any CPU.Build.0 = Release|Any CPU + {EA24382F-2448-4217-8682-E213A6EF868F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA24382F-2448-4217-8682-E213A6EF868F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA24382F-2448-4217-8682-E213A6EF868F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA24382F-2448-4217-8682-E213A6EF868F}.Release|Any CPU.Build.0 = Release|Any CPU + {ABE7DC67-F098-409C-B28C-A59CBEE888F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABE7DC67-F098-409C-B28C-A59CBEE888F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABE7DC67-F098-409C-B28C-A59CBEE888F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABE7DC67-F098-409C-B28C-A59CBEE888F3}.Release|Any CPU.Build.0 = Release|Any CPU + {D6B4EB67-A972-4252-9F8C-C53FA38730E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6B4EB67-A972-4252-9F8C-C53FA38730E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6B4EB67-A972-4252-9F8C-C53FA38730E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6B4EB67-A972-4252-9F8C-C53FA38730E6}.Release|Any CPU.Build.0 = Release|Any CPU + {FE98CB0A-9BF7-4FBF-A792-9F89F532CE43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE98CB0A-9BF7-4FBF-A792-9F89F532CE43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE98CB0A-9BF7-4FBF-A792-9F89F532CE43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE98CB0A-9BF7-4FBF-A792-9F89F532CE43}.Release|Any CPU.Build.0 = Release|Any CPU + {22F639F5-413A-41A2-A66D-E8E6876C007C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F639F5-413A-41A2-A66D-E8E6876C007C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22F639F5-413A-41A2-A66D-E8E6876C007C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22F639F5-413A-41A2-A66D-E8E6876C007C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CF73547B-07D2-4290-A14A-CA2A354F4D21} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {747BE014-7C1D-4460-95AF-B41C35717165} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {203345A4-0E3B-43C1-ADEB-FF493E578063} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {49E51E8D-40CE-4215-9D2A-751423B0C782} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4F6D2B92-3839-4CC5-90AE-515946FB09D7} + SolutionGuid = {BC6A06B6-892F-402D-80A3-24138262A1A2} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebSockets.WebSocketProtocol/ref/System.Net.WebSockets.WebSocketProtocol.cs b/src/libraries/System.Net.WebSockets.WebSocketProtocol/ref/System.Net.WebSockets.WebSocketProtocol.cs index 7b6113f06d6a..295705fdf90a 100644 --- a/src/libraries/System.Net.WebSockets.WebSocketProtocol/ref/System.Net.WebSockets.WebSocketProtocol.cs +++ b/src/libraries/System.Net.WebSockets.WebSocketProtocol/ref/System.Net.WebSockets.WebSocketProtocol.cs @@ -6,6 +6,7 @@ namespace System.Net.WebSockets { + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static partial class WebSocketProtocol { public static System.Net.WebSockets.WebSocket CreateFromStream(System.IO.Stream stream, bool isServer, string? subProtocol, System.TimeSpan keepAliveInterval) { throw null; } diff --git a/src/libraries/System.Net.WebSockets.WebSocketProtocol/src/System/Net/WebSockets/WebSocketProtocol.cs b/src/libraries/System.Net.WebSockets.WebSocketProtocol/src/System/Net/WebSockets/WebSocketProtocol.cs index 49e3196964bd..1178e70d760c 100644 --- a/src/libraries/System.Net.WebSockets.WebSocketProtocol/src/System/Net/WebSockets/WebSocketProtocol.cs +++ b/src/libraries/System.Net.WebSockets.WebSocketProtocol/src/System/Net/WebSockets/WebSocketProtocol.cs @@ -2,10 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.IO; +using System.Runtime.Versioning; using System.Threading; namespace System.Net.WebSockets { + [UnsupportedOSPlatform("browser")] public static class WebSocketProtocol { public static WebSocket CreateFromStream( diff --git a/src/libraries/System.Net.WebSockets/System.Net.WebSockets.sln b/src/libraries/System.Net.WebSockets/System.Net.WebSockets.sln index 9451e96b9a4e..e13f478766c4 100644 --- a/src/libraries/System.Net.WebSockets/System.Net.WebSockets.sln +++ b/src/libraries/System.Net.WebSockets/System.Net.WebSockets.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Tests", "tests\System.Net.WebSockets.Tests.csproj", "{0887C5AD-1BE1-4898-94CD-FE2104E04A4A}" - ProjectSection(ProjectDependencies) = postProject - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1} = {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{069D7B60-D002-4FEC-BE53-62C75EBF823B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets", "src\System.Net.WebSockets.csproj", "{B0C83201-EC32-4E8D-9DE4-EEF41E052DA1}" - ProjectSection(ProjectDependencies) = postProject - {A2F08695-A550-4AA2-806D-E5E7D86D8F25} = {A2F08695-A550-4AA2-806D-E5E7D86D8F25} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D16DE6EE-7A32-4CAC-8343-D3701A561BAF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets", "ref\System.Net.WebSockets.csproj", "{A2F08695-A550-4AA2-806D-E5E7D86D8F25}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets", "ref\System.Net.WebSockets.csproj", "{0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets", "src\System.Net.WebSockets.csproj", "{D701D3C7-0CCD-4245-97C4-A90F3972DFDC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.Tests", "tests\System.Net.WebSockets.Tests.csproj", "{5886B73F-4547-4C88-AD69-8D29668CB05B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{15277055-A68B-4BA4-8195-8360EF13906D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{73A86BB2-173F-42C6-8546-0A6128965A4A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{FFB1986E-EE56-45B7-8948-07580991D7CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{82846B99-F928-40A3-AA06-C9617A1CC378}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BB82EC64-FCCD-4732-AEBA-006EF3E8704D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E6BC8137-73F9-4748-9325-D54B3AE9F8FA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{89CCAAD5-B52B-457A-A148-9FC7D672DA30}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {069D7B60-D002-4FEC-BE53-62C75EBF823B} = {BB82EC64-FCCD-4732-AEBA-006EF3E8704D} + {5886B73F-4547-4C88-AD69-8D29668CB05B} = {BB82EC64-FCCD-4732-AEBA-006EF3E8704D} + {D16DE6EE-7A32-4CAC-8343-D3701A561BAF} = {E6BC8137-73F9-4748-9325-D54B3AE9F8FA} + {0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD} = {E6BC8137-73F9-4748-9325-D54B3AE9F8FA} + {15277055-A68B-4BA4-8195-8360EF13906D} = {E6BC8137-73F9-4748-9325-D54B3AE9F8FA} + {82846B99-F928-40A3-AA06-C9617A1CC378} = {E6BC8137-73F9-4748-9325-D54B3AE9F8FA} + {1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A} = {E6BC8137-73F9-4748-9325-D54B3AE9F8FA} + {D701D3C7-0CCD-4245-97C4-A90F3972DFDC} = {89CCAAD5-B52B-457A-A148-9FC7D672DA30} + {FFB1986E-EE56-45B7-8948-07580991D7CC} = {89CCAAD5-B52B-457A-A148-9FC7D672DA30} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0887C5AD-1BE1-4898-94CD-FE2104E04A4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0887C5AD-1BE1-4898-94CD-FE2104E04A4A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0887C5AD-1BE1-4898-94CD-FE2104E04A4A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0887C5AD-1BE1-4898-94CD-FE2104E04A4A}.Release|Any CPU.Build.0 = Release|Any CPU - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1}.Release|Any CPU.Build.0 = Release|Any CPU - {A2F08695-A550-4AA2-806D-E5E7D86D8F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2F08695-A550-4AA2-806D-E5E7D86D8F25}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2F08695-A550-4AA2-806D-E5E7D86D8F25}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2F08695-A550-4AA2-806D-E5E7D86D8F25}.Release|Any CPU.Build.0 = Release|Any CPU - {73A86BB2-173F-42C6-8546-0A6128965A4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73A86BB2-173F-42C6-8546-0A6128965A4A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73A86BB2-173F-42C6-8546-0A6128965A4A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73A86BB2-173F-42C6-8546-0A6128965A4A}.Release|Any CPU.Build.0 = Release|Any CPU + {069D7B60-D002-4FEC-BE53-62C75EBF823B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {069D7B60-D002-4FEC-BE53-62C75EBF823B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {069D7B60-D002-4FEC-BE53-62C75EBF823B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {069D7B60-D002-4FEC-BE53-62C75EBF823B}.Release|Any CPU.Build.0 = Release|Any CPU + {D16DE6EE-7A32-4CAC-8343-D3701A561BAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D16DE6EE-7A32-4CAC-8343-D3701A561BAF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D16DE6EE-7A32-4CAC-8343-D3701A561BAF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D16DE6EE-7A32-4CAC-8343-D3701A561BAF}.Release|Any CPU.Build.0 = Release|Any CPU + {0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C3B9B1F-0C70-4ECE-83A7-21FD93E328CD}.Release|Any CPU.Build.0 = Release|Any CPU + {D701D3C7-0CCD-4245-97C4-A90F3972DFDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D701D3C7-0CCD-4245-97C4-A90F3972DFDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D701D3C7-0CCD-4245-97C4-A90F3972DFDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D701D3C7-0CCD-4245-97C4-A90F3972DFDC}.Release|Any CPU.Build.0 = Release|Any CPU + {5886B73F-4547-4C88-AD69-8D29668CB05B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5886B73F-4547-4C88-AD69-8D29668CB05B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5886B73F-4547-4C88-AD69-8D29668CB05B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5886B73F-4547-4C88-AD69-8D29668CB05B}.Release|Any CPU.Build.0 = Release|Any CPU + {15277055-A68B-4BA4-8195-8360EF13906D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15277055-A68B-4BA4-8195-8360EF13906D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15277055-A68B-4BA4-8195-8360EF13906D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15277055-A68B-4BA4-8195-8360EF13906D}.Release|Any CPU.Build.0 = Release|Any CPU + {FFB1986E-EE56-45B7-8948-07580991D7CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFB1986E-EE56-45B7-8948-07580991D7CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFB1986E-EE56-45B7-8948-07580991D7CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFB1986E-EE56-45B7-8948-07580991D7CC}.Release|Any CPU.Build.0 = Release|Any CPU + {82846B99-F928-40A3-AA06-C9617A1CC378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82846B99-F928-40A3-AA06-C9617A1CC378}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82846B99-F928-40A3-AA06-C9617A1CC378}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82846B99-F928-40A3-AA06-C9617A1CC378}.Release|Any CPU.Build.0 = Release|Any CPU + {1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FC9CE9B-C1D5-4424-95F7-B28B698EAE4A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0887C5AD-1BE1-4898-94CD-FE2104E04A4A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B0C83201-EC32-4E8D-9DE4-EEF41E052DA1} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {A2F08695-A550-4AA2-806D-E5E7D86D8F25} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {73A86BB2-173F-42C6-8546-0A6128965A4A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {07264E78-33B3-44EB-A0C4-74722F839494} + SolutionGuid = {78E8A71E-2CB4-4C05-8DBB-C926F44A9393} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Net.WebSockets/ref/System.Net.WebSockets.cs b/src/libraries/System.Net.WebSockets/ref/System.Net.WebSockets.cs index e4ff945bb5b6..ca1e25ea2128 100644 --- a/src/libraries/System.Net.WebSockets/ref/System.Net.WebSockets.cs +++ b/src/libraries/System.Net.WebSockets/ref/System.Net.WebSockets.cs @@ -26,8 +26,10 @@ public abstract partial class WebSocket : System.IDisposable public abstract System.Threading.Tasks.Task CloseAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string? statusDescription, System.Threading.CancellationToken cancellationToken); public abstract System.Threading.Tasks.Task CloseOutputAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string? statusDescription, System.Threading.CancellationToken cancellationToken); public static System.ArraySegment CreateClientBuffer(int receiveBufferSize, int sendBufferSize) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public static System.Net.WebSockets.WebSocket CreateClientWebSocket(System.IO.Stream innerStream, string? subProtocol, int receiveBufferSize, int sendBufferSize, System.TimeSpan keepAliveInterval, bool useZeroMaskingKey, System.ArraySegment internalBuffer) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static System.Net.WebSockets.WebSocket CreateFromStream(System.IO.Stream stream, bool isServer, string? subProtocol, System.TimeSpan keepAliveInterval) { throw null; } public static System.ArraySegment CreateServerBuffer(int receiveBufferSize) { throw null; } public abstract void Dispose(); diff --git a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/WebSocket.cs b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/WebSocket.cs index 3bd6835a16f1..14732fb6b77c 100644 --- a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/WebSocket.cs +++ b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/WebSocket.cs @@ -5,6 +5,7 @@ using System.ComponentModel; using System.IO; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Threading; using System.Threading.Tasks; @@ -133,6 +134,7 @@ public static ArraySegment CreateServerBuffer(int receiveBufferSize) /// The agreed upon sub-protocol that was used when creating the connection. /// The keep-alive interval to use, or to disable keep-alives. /// The created . + [UnsupportedOSPlatform("browser")] public static WebSocket CreateFromStream(Stream stream, bool isServer, string? subProtocol, TimeSpan keepAliveInterval) { if (stream == null) @@ -172,6 +174,7 @@ public static void RegisterPrefixes() throw new PlatformNotSupportedException(); } + [UnsupportedOSPlatform("browser")] [EditorBrowsable(EditorBrowsableState.Never)] public static WebSocket CreateClientWebSocket(Stream innerStream, string? subProtocol, int receiveBufferSize, int sendBufferSize, diff --git a/src/libraries/System.Numerics.Tensors/System.Numerics.Tensors.sln b/src/libraries/System.Numerics.Tensors/System.Numerics.Tensors.sln index 8ca1b49eb5f0..22ef1928771a 100644 --- a/src/libraries/System.Numerics.Tensors/System.Numerics.Tensors.sln +++ b/src/libraries/System.Numerics.Tensors/System.Numerics.Tensors.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors.Tests", "tests\System.Numerics.Tensors.Tests.csproj", "{D4718CD3-8492-4734-94B7-E31A39AA6275}" - ProjectSection(ProjectDependencies) = postProject - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805} = {BE0F13BE-9140-49A8-9FDD-994D0D8A3805} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9F20CEA1-2216-4432-BBBD-F01E05D17F23}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors", "src\System.Numerics.Tensors.csproj", "{BE0F13BE-9140-49A8-9FDD-994D0D8A3805}" - ProjectSection(ProjectDependencies) = postProject - {F64208FC-83DA-4C94-973F-1DDDE4354AFF} = {F64208FC-83DA-4C94-973F-1DDDE4354AFF} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{28AF88E2-78C7-452C-94B1-88CF7ABF2659}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors", "ref\System.Numerics.Tensors.csproj", "{F64208FC-83DA-4C94-973F-1DDDE4354AFF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors", "ref\System.Numerics.Tensors.csproj", "{21CB448A-3882-4337-B416-D1A3E0BCFFC5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors", "src\System.Numerics.Tensors.csproj", "{848DD000-3D22-4A25-A9D9-05AFF857A116}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Tensors.Tests", "tests\System.Numerics.Tensors.Tests.csproj", "{4AF6A02D-82C8-4898-9EDF-01F107C25061}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{76BF756D-3975-4A7B-A0A6-43A73C4EBAF7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B95060C1-814D-464A-84AE-20BF996BA413}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8322B024-AD5D-454C-8BD3-745161270B82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B9C46415-E355-42EE-897A-D555CEF46584}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{315EA734-1279-42CD-A704-59BB1F6AB1AC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F1596B06-5B29-4B28-9007-C513358ACDEA}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {9F20CEA1-2216-4432-BBBD-F01E05D17F23} = {B9C46415-E355-42EE-897A-D555CEF46584} + {4AF6A02D-82C8-4898-9EDF-01F107C25061} = {B9C46415-E355-42EE-897A-D555CEF46584} + {28AF88E2-78C7-452C-94B1-88CF7ABF2659} = {315EA734-1279-42CD-A704-59BB1F6AB1AC} + {21CB448A-3882-4337-B416-D1A3E0BCFFC5} = {315EA734-1279-42CD-A704-59BB1F6AB1AC} + {AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C} = {315EA734-1279-42CD-A704-59BB1F6AB1AC} + {8322B024-AD5D-454C-8BD3-745161270B82} = {315EA734-1279-42CD-A704-59BB1F6AB1AC} + {E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F} = {315EA734-1279-42CD-A704-59BB1F6AB1AC} + {848DD000-3D22-4A25-A9D9-05AFF857A116} = {F1596B06-5B29-4B28-9007-C513358ACDEA} + {B95060C1-814D-464A-84AE-20BF996BA413} = {F1596B06-5B29-4B28-9007-C513358ACDEA} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D4718CD3-8492-4734-94B7-E31A39AA6275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4718CD3-8492-4734-94B7-E31A39AA6275}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4718CD3-8492-4734-94B7-E31A39AA6275}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4718CD3-8492-4734-94B7-E31A39AA6275}.Release|Any CPU.Build.0 = Release|Any CPU - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805}.Release|Any CPU.Build.0 = Release|Any CPU - {F64208FC-83DA-4C94-973F-1DDDE4354AFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F64208FC-83DA-4C94-973F-1DDDE4354AFF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F64208FC-83DA-4C94-973F-1DDDE4354AFF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F64208FC-83DA-4C94-973F-1DDDE4354AFF}.Release|Any CPU.Build.0 = Release|Any CPU - {76BF756D-3975-4A7B-A0A6-43A73C4EBAF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76BF756D-3975-4A7B-A0A6-43A73C4EBAF7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76BF756D-3975-4A7B-A0A6-43A73C4EBAF7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76BF756D-3975-4A7B-A0A6-43A73C4EBAF7}.Release|Any CPU.Build.0 = Release|Any CPU + {9F20CEA1-2216-4432-BBBD-F01E05D17F23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F20CEA1-2216-4432-BBBD-F01E05D17F23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F20CEA1-2216-4432-BBBD-F01E05D17F23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F20CEA1-2216-4432-BBBD-F01E05D17F23}.Release|Any CPU.Build.0 = Release|Any CPU + {28AF88E2-78C7-452C-94B1-88CF7ABF2659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28AF88E2-78C7-452C-94B1-88CF7ABF2659}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28AF88E2-78C7-452C-94B1-88CF7ABF2659}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28AF88E2-78C7-452C-94B1-88CF7ABF2659}.Release|Any CPU.Build.0 = Release|Any CPU + {21CB448A-3882-4337-B416-D1A3E0BCFFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21CB448A-3882-4337-B416-D1A3E0BCFFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21CB448A-3882-4337-B416-D1A3E0BCFFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21CB448A-3882-4337-B416-D1A3E0BCFFC5}.Release|Any CPU.Build.0 = Release|Any CPU + {848DD000-3D22-4A25-A9D9-05AFF857A116}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {848DD000-3D22-4A25-A9D9-05AFF857A116}.Debug|Any CPU.Build.0 = Debug|Any CPU + {848DD000-3D22-4A25-A9D9-05AFF857A116}.Release|Any CPU.ActiveCfg = Release|Any CPU + {848DD000-3D22-4A25-A9D9-05AFF857A116}.Release|Any CPU.Build.0 = Release|Any CPU + {4AF6A02D-82C8-4898-9EDF-01F107C25061}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AF6A02D-82C8-4898-9EDF-01F107C25061}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AF6A02D-82C8-4898-9EDF-01F107C25061}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4AF6A02D-82C8-4898-9EDF-01F107C25061}.Release|Any CPU.Build.0 = Release|Any CPU + {AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB5F9E86-6849-463D-B7B6-9BAF0A73BE6C}.Release|Any CPU.Build.0 = Release|Any CPU + {B95060C1-814D-464A-84AE-20BF996BA413}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B95060C1-814D-464A-84AE-20BF996BA413}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B95060C1-814D-464A-84AE-20BF996BA413}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B95060C1-814D-464A-84AE-20BF996BA413}.Release|Any CPU.Build.0 = Release|Any CPU + {8322B024-AD5D-454C-8BD3-745161270B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8322B024-AD5D-454C-8BD3-745161270B82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8322B024-AD5D-454C-8BD3-745161270B82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8322B024-AD5D-454C-8BD3-745161270B82}.Release|Any CPU.Build.0 = Release|Any CPU + {E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3CFD6D4-3EA5-459F-B2D7-6C4D1699BB8F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {D4718CD3-8492-4734-94B7-E31A39AA6275} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BE0F13BE-9140-49A8-9FDD-994D0D8A3805} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F64208FC-83DA-4C94-973F-1DDDE4354AFF} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {76BF756D-3975-4A7B-A0A6-43A73C4EBAF7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {13D12508-D252-4FD4-A8AA-1DD44F666914} + SolutionGuid = {10A5F2C3-5230-4916-9D4D-BBDB94851037} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln b/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln index 3b4bf8bc133e..850c9665498d 100644 --- a/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln +++ b/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors.Tests", "tests\System.Numerics.Vectors.Tests.csproj", "{99E1E564-0EF4-4E33-BECE-8ABE64771349}" - ProjectSection(ProjectDependencies) = postProject - {53134B0C-0D57-481B-B84E-D1991E8D54FF} = {53134B0C-0D57-481B-B84E-D1991E8D54FF} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{634A3B2B-09F5-4810-B630-ADE4D36C47DF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "src\System.Numerics.Vectors.csproj", "{53134B0C-0D57-481B-B84E-D1991E8D54FF}" - ProjectSection(ProjectDependencies) = postProject - {650277B5-9423-4ACE-BB54-2659995B21C7} = {650277B5-9423-4ACE-BB54-2659995B21C7} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "ref\System.Numerics.Vectors.csproj", "{650277B5-9423-4ACE-BB54-2659995B21C7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9805AA59-A72D-4D20-BBCE-EBD90DC7840A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "ref\System.Numerics.Vectors.csproj", "{5B2027FA-F43A-4E80-880F-B3A7A2720AA7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "src\System.Numerics.Vectors.csproj", "{ED450846-85A0-4CED-B4D9-9EB769CF794B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors.Tests", "tests\System.Numerics.Vectors.Tests.csproj", "{B38797B1-BB45-4B30-9D4F-79D9F4B3735B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F76DBC64-9523-462D-ACA0-8E9452155D7C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{BD5C16FE-CAAA-45CB-91F3-C66A2493C518}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D47BF410-2A81-48E2-A7E5-CE29794B572C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{453F2E85-9FFF-4833-BB86-1B8E73191756}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7A13467C-8469-4562-B00F-C4D61E8A1855}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {634A3B2B-09F5-4810-B630-ADE4D36C47DF} = {D47BF410-2A81-48E2-A7E5-CE29794B572C} + {ED450846-85A0-4CED-B4D9-9EB769CF794B} = {D47BF410-2A81-48E2-A7E5-CE29794B572C} + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598} = {D47BF410-2A81-48E2-A7E5-CE29794B572C} + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F} = {453F2E85-9FFF-4833-BB86-1B8E73191756} + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B} = {453F2E85-9FFF-4833-BB86-1B8E73191756} + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A} = {7A13467C-8469-4562-B00F-C4D61E8A1855} + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7} = {7A13467C-8469-4562-B00F-C4D61E8A1855} + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237} = {7A13467C-8469-4562-B00F-C4D61E8A1855} + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F} = {7A13467C-8469-4562-B00F-C4D61E8A1855} + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518} = {7A13467C-8469-4562-B00F-C4D61E8A1855} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {99E1E564-0EF4-4E33-BECE-8ABE64771349}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99E1E564-0EF4-4E33-BECE-8ABE64771349}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99E1E564-0EF4-4E33-BECE-8ABE64771349}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99E1E564-0EF4-4E33-BECE-8ABE64771349}.Release|Any CPU.Build.0 = Release|Any CPU - {53134B0C-0D57-481B-B84E-D1991E8D54FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53134B0C-0D57-481B-B84E-D1991E8D54FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53134B0C-0D57-481B-B84E-D1991E8D54FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53134B0C-0D57-481B-B84E-D1991E8D54FF}.Release|Any CPU.Build.0 = Release|Any CPU - {650277B5-9423-4ACE-BB54-2659995B21C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {650277B5-9423-4ACE-BB54-2659995B21C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {650277B5-9423-4ACE-BB54-2659995B21C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {650277B5-9423-4ACE-BB54-2659995B21C7}.Release|Any CPU.Build.0 = Release|Any CPU - {F76DBC64-9523-462D-ACA0-8E9452155D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F76DBC64-9523-462D-ACA0-8E9452155D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F76DBC64-9523-462D-ACA0-8E9452155D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F76DBC64-9523-462D-ACA0-8E9452155D7C}.Release|Any CPU.Build.0 = Release|Any CPU + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|Any CPU.ActiveCfg = Debug|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|Any CPU.Build.0 = Debug|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|x64.ActiveCfg = Debug|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|x64.Build.0 = Debug|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|x86.ActiveCfg = Debug|x86 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Debug|x86.Build.0 = Debug|x86 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|Any CPU.ActiveCfg = Release|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|Any CPU.Build.0 = Release|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|x64.ActiveCfg = Release|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|x64.Build.0 = Release|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|x86.ActiveCfg = Release|x86 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Release|x86.Build.0 = Release|x86 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|Any CPU.ActiveCfg = Checked|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|Any CPU.Build.0 = Checked|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|x64.ActiveCfg = Checked|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|x64.Build.0 = Checked|x64 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|x86.ActiveCfg = Checked|x86 + {634A3B2B-09F5-4810-B630-ADE4D36C47DF}.Checked|x86.Build.0 = Checked|x86 + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|x64.Build.0 = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Debug|x86.Build.0 = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|Any CPU.Build.0 = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|x64.ActiveCfg = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|x64.Build.0 = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|x86.ActiveCfg = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Release|x86.Build.0 = Release|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Checked|x64.ActiveCfg = Debug|Any CPU + {9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}.Checked|x86.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|x64.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|x64.Build.0 = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|x86.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Debug|x86.Build.0 = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|Any CPU.Build.0 = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|x64.ActiveCfg = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|x64.Build.0 = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|x86.ActiveCfg = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Release|x86.Build.0 = Release|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Checked|x64.ActiveCfg = Debug|Any CPU + {9805AA59-A72D-4D20-BBCE-EBD90DC7840A}.Checked|x86.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|x64.Build.0 = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Debug|x86.Build.0 = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|Any CPU.Build.0 = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|x64.ActiveCfg = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|x64.Build.0 = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|x86.ActiveCfg = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Release|x86.Build.0 = Release|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Checked|x64.ActiveCfg = Debug|Any CPU + {5B2027FA-F43A-4E80-880F-B3A7A2720AA7}.Checked|x86.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|x64.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|x64.Build.0 = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|x86.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Debug|x86.Build.0 = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|Any CPU.Build.0 = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|x64.ActiveCfg = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|x64.Build.0 = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|x86.ActiveCfg = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Release|x86.Build.0 = Release|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Checked|x64.ActiveCfg = Debug|Any CPU + {ED450846-85A0-4CED-B4D9-9EB769CF794B}.Checked|x86.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|x64.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|x64.Build.0 = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|x86.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Debug|x86.Build.0 = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|Any CPU.Build.0 = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|x64.ActiveCfg = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|x64.Build.0 = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|x86.ActiveCfg = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Release|x86.Build.0 = Release|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Checked|x64.ActiveCfg = Debug|Any CPU + {B38797B1-BB45-4B30-9D4F-79D9F4B3735B}.Checked|x86.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|x64.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|x64.Build.0 = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Debug|x86.Build.0 = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|Any CPU.Build.0 = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|x64.ActiveCfg = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|x64.Build.0 = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|x86.ActiveCfg = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Release|x86.Build.0 = Release|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Checked|x64.ActiveCfg = Debug|Any CPU + {DFC21F4E-EC4F-4310-A4DA-B7094AA4D237}.Checked|x86.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|x64.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|x64.Build.0 = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|x86.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Debug|x86.Build.0 = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|Any CPU.Build.0 = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|x64.ActiveCfg = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|x64.Build.0 = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|x86.ActiveCfg = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Release|x86.Build.0 = Release|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Checked|x64.ActiveCfg = Debug|Any CPU + {7FAD5E59-D362-4ED6-B3D5-FAD9CD5A2598}.Checked|x86.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|x64.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|x64.Build.0 = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|x86.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Debug|x86.Build.0 = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|Any CPU.Build.0 = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|x64.ActiveCfg = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|x64.Build.0 = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|x86.ActiveCfg = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Release|x86.Build.0 = Release|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Checked|x64.ActiveCfg = Debug|Any CPU + {875DAA4F-1BC0-4EE2-9A04-EDD2FC5C773F}.Checked|x86.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|x64.Build.0 = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Debug|x86.Build.0 = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|Any CPU.Build.0 = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|x64.ActiveCfg = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|x64.Build.0 = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|x86.ActiveCfg = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Release|x86.Build.0 = Release|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Checked|x64.ActiveCfg = Debug|Any CPU + {BD5C16FE-CAAA-45CB-91F3-C66A2493C518}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {99E1E564-0EF4-4E33-BECE-8ABE64771349} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {53134B0C-0D57-481B-B84E-D1991E8D54FF} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {650277B5-9423-4ACE-BB54-2659995B21C7} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F76DBC64-9523-462D-ACA0-8E9452155D7C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F2CB0F70-E844-44DE-9DD8-3A2B72365B73} + SolutionGuid = {F9EDC1DC-52BE-4C40-90D2-41EE6FB7FA5C} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Numerics.Vectors/ref/System.Numerics.Vectors.cs b/src/libraries/System.Numerics.Vectors/ref/System.Numerics.Vectors.cs index ea873ba3cecd..7e293b8fce23 100644 --- a/src/libraries/System.Numerics.Vectors/ref/System.Numerics.Vectors.cs +++ b/src/libraries/System.Numerics.Vectors/ref/System.Numerics.Vectors.cs @@ -269,32 +269,32 @@ public static partial class Vector public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, T right) where T : struct { throw null; } public static System.Numerics.Vector Multiply(T left, System.Numerics.Vector right) where T : struct { throw null; } - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) { throw null; } + public static System.Numerics.Vector Narrow(System.Numerics.Vector low, System.Numerics.Vector high) { throw null; } public static System.Numerics.Vector Negate(System.Numerics.Vector value) where T : struct { throw null; } public static System.Numerics.Vector OnesComplement(System.Numerics.Vector value) where T : struct { throw null; } public static System.Numerics.Vector SquareRoot(System.Numerics.Vector value) where T : struct { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct { throw null; } [System.CLSCompliantAttribute(false)] - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } [System.CLSCompliantAttribute(false)] - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) { throw null; } + public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector low, out System.Numerics.Vector high) { throw null; } public static System.Numerics.Vector Xor(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct { throw null; } } public partial struct Vector2 : System.IEquatable, System.IFormattable diff --git a/src/libraries/System.ObjectModel/System.ObjectModel.sln b/src/libraries/System.ObjectModel/System.ObjectModel.sln index a1680a0a5ace..17ba7ec98152 100644 --- a/src/libraries/System.ObjectModel/System.ObjectModel.sln +++ b/src/libraries/System.ObjectModel/System.ObjectModel.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel.Tests", "tests\System.ObjectModel.Tests.csproj", "{43841228-2A2B-4215-B97F-33006995E486}" - ProjectSection(ProjectDependencies) = postProject - {F24D3391-2928-4E83-AADE-A4461E5CAE50} = {F24D3391-2928-4E83-AADE-A4461E5CAE50} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel", "src\System.ObjectModel.csproj", "{F24D3391-2928-4E83-AADE-A4461E5CAE50}" - ProjectSection(ProjectDependencies) = postProject - {72CD7613-337A-41C1-BE90-391973C25201} = {72CD7613-337A-41C1-BE90-391973C25201} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{56FEBF5C-674B-4A94-9D90-41F0D2A1194A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel", "ref\System.ObjectModel.csproj", "{72CD7613-337A-41C1-BE90-391973C25201}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel", "ref\System.ObjectModel.csproj", "{E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel", "src\System.ObjectModel.csproj", "{583024EB-8FC7-45E3-9C37-85BE43FBD28A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ObjectModel.Tests", "tests\System.ObjectModel.Tests.csproj", "{9DB5C0B8-959E-4B0A-99A6-88452FD3C10C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{35855258-C164-48D6-B7FE-DC585C39999C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{2084D0AE-A603-47F7-8A4F-F7E749C0D372}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3DFC0A93-5140-4A1D-83A3-E91DF87AE03C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C34C040D-16BA-4413-AEFF-341C522127E2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B} = {3DFC0A93-5140-4A1D-83A3-E91DF87AE03C} + {9DB5C0B8-959E-4B0A-99A6-88452FD3C10C} = {3DFC0A93-5140-4A1D-83A3-E91DF87AE03C} + {56FEBF5C-674B-4A94-9D90-41F0D2A1194A} = {1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4} + {E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC} = {1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4} + {D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D} = {1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4} + {2084D0AE-A603-47F7-8A4F-F7E749C0D372} = {1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4} + {B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9} = {1D2CFB21-25C1-45FF-8ADA-2AAE6C857CE4} + {583024EB-8FC7-45E3-9C37-85BE43FBD28A} = {C34C040D-16BA-4413-AEFF-341C522127E2} + {35855258-C164-48D6-B7FE-DC585C39999C} = {C34C040D-16BA-4413-AEFF-341C522127E2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {43841228-2A2B-4215-B97F-33006995E486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43841228-2A2B-4215-B97F-33006995E486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43841228-2A2B-4215-B97F-33006995E486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43841228-2A2B-4215-B97F-33006995E486}.Release|Any CPU.Build.0 = Release|Any CPU - {F24D3391-2928-4E83-AADE-A4461E5CAE50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F24D3391-2928-4E83-AADE-A4461E5CAE50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F24D3391-2928-4E83-AADE-A4461E5CAE50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F24D3391-2928-4E83-AADE-A4461E5CAE50}.Release|Any CPU.Build.0 = Release|Any CPU - {72CD7613-337A-41C1-BE90-391973C25201}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72CD7613-337A-41C1-BE90-391973C25201}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72CD7613-337A-41C1-BE90-391973C25201}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72CD7613-337A-41C1-BE90-391973C25201}.Release|Any CPU.Build.0 = Release|Any CPU - {AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4}.Release|Any CPU.Build.0 = Release|Any CPU + {D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D225A590-69FD-4C99-B9D0-2DEF5AEA6C2B}.Release|Any CPU.Build.0 = Release|Any CPU + {56FEBF5C-674B-4A94-9D90-41F0D2A1194A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56FEBF5C-674B-4A94-9D90-41F0D2A1194A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56FEBF5C-674B-4A94-9D90-41F0D2A1194A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56FEBF5C-674B-4A94-9D90-41F0D2A1194A}.Release|Any CPU.Build.0 = Release|Any CPU + {E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E13B9A3B-BA99-4FA3-9959-B95E14DCB9BC}.Release|Any CPU.Build.0 = Release|Any CPU + {583024EB-8FC7-45E3-9C37-85BE43FBD28A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {583024EB-8FC7-45E3-9C37-85BE43FBD28A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {583024EB-8FC7-45E3-9C37-85BE43FBD28A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {583024EB-8FC7-45E3-9C37-85BE43FBD28A}.Release|Any CPU.Build.0 = Release|Any CPU + {9DB5C0B8-959E-4B0A-99A6-88452FD3C10C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DB5C0B8-959E-4B0A-99A6-88452FD3C10C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DB5C0B8-959E-4B0A-99A6-88452FD3C10C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DB5C0B8-959E-4B0A-99A6-88452FD3C10C}.Release|Any CPU.Build.0 = Release|Any CPU + {D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3517194-C2D7-4B7F-87D2-BEA0DBD00A4D}.Release|Any CPU.Build.0 = Release|Any CPU + {35855258-C164-48D6-B7FE-DC585C39999C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35855258-C164-48D6-B7FE-DC585C39999C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35855258-C164-48D6-B7FE-DC585C39999C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35855258-C164-48D6-B7FE-DC585C39999C}.Release|Any CPU.Build.0 = Release|Any CPU + {2084D0AE-A603-47F7-8A4F-F7E749C0D372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2084D0AE-A603-47F7-8A4F-F7E749C0D372}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2084D0AE-A603-47F7-8A4F-F7E749C0D372}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2084D0AE-A603-47F7-8A4F-F7E749C0D372}.Release|Any CPU.Build.0 = Release|Any CPU + {B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B11FCEEA-14D3-4B43-9801-51EF0C4D8EB9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {43841228-2A2B-4215-B97F-33006995E486} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F24D3391-2928-4E83-AADE-A4461E5CAE50} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {72CD7613-337A-41C1-BE90-391973C25201} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {AC5BDF0E-CD13-4179-A8FE-84DC188F0FC4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9FC2F4B8-40FE-4938-9AEE-5D4DDC4E6456} + SolutionGuid = {485C729C-EB7F-4DE2-AE84-428EB1D65902} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Shared.xml b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Shared.xml index 9831ce9b6e2d..3b2cd77a1a5d 100644 --- a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Shared.xml +++ b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.Shared.xml @@ -18,5 +18,8 @@ + + + diff --git a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml index dda85d233600..f13541318ac6 100644 --- a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml +++ b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml @@ -83,7 +83,7 @@ ILLink IL2026 member - M:System.StartupHookProvider.CallStartupHook(System.StartupHookProvider.StartupHookNameOrPath) + M:System.StartupHookProvider.ProcessStartupHooks() ILLink diff --git a/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs b/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs index b3aa37ad891e..a6502f2d7e30 100644 --- a/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs +++ b/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs @@ -42,8 +42,6 @@ public static bool Exists([NotNullWhen(true)] string? path) return InternalExists(path); } catch (ArgumentException) { } - catch (NotSupportedException) { } // Security can throw this on ":" - catch (SecurityException) { } catch (IOException) { } catch (UnauthorizedAccessException) { } diff --git a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx index 5b12e4715ebb..1f0f79373d45 100644 --- a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx +++ b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx @@ -362,7 +362,7 @@ Property Get method was not found. - Byte array for GUID must be exactly {0} bytes long. + Byte array for Guid must be exactly {0} bytes long. Handle does not support asynchronous operations. The parameters to the FileStream constructor may need to be changed to indicate that the handle was opened synchronously (that is, it was not opened for overlapped I/O). @@ -1381,9 +1381,6 @@ Uninitialized Strings cannot be created. - - The object's type must not be a Windows Runtime type. - The object's type must be __ComObject or derived from __ComObject. @@ -1504,9 +1501,6 @@ Field '{0}' in TypedReferences cannot be static. - - The type must not be a Windows Runtime type. - The specified type must be visible from COM. @@ -1549,9 +1543,6 @@ The length of the name exceeds the maximum limit. - - Cannot marshal type '{0}' to Windows Runtime. Only 'System.RuntimeType' is supported. - MethodOverride's body must be from this type. @@ -2395,15 +2386,6 @@ Object cannot be stored in an array of this type. - - Object in an IPropertyValue is of type '{0}' which cannot be convereted to a '{1}' due to array element '{2}': {3}. - - - Object in an IPropertyValue is of type '{0}' with value '{1}', which cannot be converted to a '{2}'. - - - Object in an IPropertyValue is of type '{0}', which cannot be converted to a '{1}'. - AsyncFlowControl objects can be used to restore flow only on a Context that had its flow suppressed. @@ -2563,9 +2545,6 @@ This operation is only valid on generic types. - - Adding or removing event handlers dynamically is not supported on WinRT events. - This API is not available when the concurrent GC is enabled. @@ -2819,7 +2798,7 @@ Delegates that are not of type MulticastDelegate may not be combined. - An assembly (probably "{1}") must be rewritten using the code contracts binary rewriter (CCRewrite) because it is calling Contract.{0} and the CONTRACTS_FULL symbol is defined. Remove any explicit definitions of the CONTRACTS_FULL symbol from your project and rebuild. CCRewrite can be downloaded from http://go.microsoft.com/fwlink/?LinkID=169180. \r\nAfter the rewriter is installed, it can be enabled in Visual Studio from the project's Properties page on the Code Contracts pane. Ensure that "Perform Runtime Contract Checking" is enabled, which will define CONTRACTS_FULL. + An assembly (probably "{1}") must be rewritten using the code contracts binary rewriter (CCRewrite) because it is calling Contract.{0} and the CONTRACTS_FULL symbol is defined. Remove any explicit definitions of the CONTRACTS_FULL symbol from your project and rebuild. CCRewrite can be downloaded from https://go.microsoft.com/fwlink/?LinkID=169180. \r\nAfter the rewriter is installed, it can be enabled in Visual Studio from the project's Properties page on the Code Contracts pane. Ensure that "Perform Runtime Contract Checking" is enabled, which will define CONTRACTS_FULL. This non-CLS method is not implemented. @@ -2863,9 +2842,6 @@ A non-collectible assembly may not reference a collectible assembly. - - WinRT Interop is not supported for collectible types. - CreateInstance cannot be used with an object of type TypeBuilder. @@ -3136,9 +3112,6 @@ Strong-name signing is not supported on this platform. - - Windows Runtime is not supported on this operating system. - This API is specific to the way in which Windows handles asynchronous I/O, and is not supported on this platform. @@ -3440,7 +3413,7 @@ An attempt was made to transition a task to a final state when it had already completed. - Failed to set the specified COM apartment state. + Failed to set the specified COM apartment state. Current apartment state '{0}'. Use CompressedStack.(Capture/Run) instead. diff --git a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems index 159721414fde..ed4e0b619de5 100644 --- a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems +++ b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems @@ -1022,6 +1022,7 @@ + @@ -1353,8 +1354,8 @@ Common\Interop\Windows\Kernel32\Interop.GetCurrentDirectory.cs - - Common\Interop\Windows\Kernel32\Interop.GetCurrentProcess_IntPtr.cs + + Common\Interop\Windows\Kernel32\Interop.GetCurrentProcess.cs Common\Interop\Windows\Kernel32\Interop.GetCurrentProcessId.cs @@ -1623,7 +1624,6 @@ - @@ -1829,7 +1829,6 @@ - @@ -1853,11 +1852,14 @@ Link="Common\System\IO\StringParser.cs" /> + + @@ -1954,24 +1956,4 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/libraries/System.Private.CoreLib/src/System/AggregateException.cs b/src/libraries/System.Private.CoreLib/src/System/AggregateException.cs index 14bc2f56436f..0fc24781a167 100644 --- a/src/libraries/System.Private.CoreLib/src/System/AggregateException.cs +++ b/src/libraries/System.Private.CoreLib/src/System/AggregateException.cs @@ -21,15 +21,15 @@ namespace System [System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] public class AggregateException : Exception { - private readonly ReadOnlyCollection m_innerExceptions; // Complete set of exceptions. Do not rename (binary serialization) + private readonly Exception[] _innerExceptions; // Complete set of exceptions. + private ReadOnlyCollection? _rocView; // separate from _innerExceptions to enable trimming if InnerExceptions isn't used /// /// Initializes a new instance of the class. /// public AggregateException() - : base(SR.AggregateException_ctor_DefaultMessage) + : this(SR.AggregateException_ctor_DefaultMessage) { - m_innerExceptions = new ReadOnlyCollection(Array.Empty()); } /// @@ -40,7 +40,7 @@ public AggregateException() public AggregateException(string? message) : base(message) { - m_innerExceptions = new ReadOnlyCollection(Array.Empty()); + _innerExceptions = Array.Empty(); } /// @@ -59,7 +59,7 @@ public AggregateException(string? message, Exception innerException) throw new ArgumentNullException(nameof(innerException)); } - m_innerExceptions = new ReadOnlyCollection(new Exception[] { innerException }); + _innerExceptions = new[] { innerException }; } /// @@ -101,9 +101,7 @@ public AggregateException(string? message, Exception innerException) /// An element of is /// null. public AggregateException(string? message, IEnumerable innerExceptions) - // If it's already an IList, pass that along (a defensive copy will be made in the delegated ctor). If it's null, just pass along - // null typed correctly. Otherwise, create an IList from the enumerable and pass that along. - : this(message, innerExceptions as IList ?? (innerExceptions == null ? (List)null! : new List(innerExceptions))) + : this(message, innerExceptions == null ? null : new List(innerExceptions).ToArray(), cloneExceptions: false) { } @@ -118,43 +116,29 @@ public AggregateException(string? message, IEnumerable innerException /// An element of is /// null. public AggregateException(string? message, params Exception[] innerExceptions) : - this(message, (IList)innerExceptions) + this(message, innerExceptions, cloneExceptions: true) { } - /// - /// Allocates a new aggregate exception with the specified message and list of inner exceptions. - /// - /// The error message that explains the reason for the exception. - /// The exceptions that are the cause of the current exception. - /// The argument - /// is null. - /// An element of is - /// null. - private AggregateException(string? message, IList innerExceptions) - : base(message, innerExceptions != null && innerExceptions.Count > 0 ? innerExceptions[0] : null) + private AggregateException(string? message, Exception[]? innerExceptions, bool cloneExceptions) : + base(message, innerExceptions?.Length > 0 ? innerExceptions[0] : null) { if (innerExceptions == null) { throw new ArgumentNullException(nameof(innerExceptions)); } - // Copy exceptions to our internal array and validate them. We must copy them, - // because we're going to put them into a ReadOnlyCollection which simply reuses - // the list passed in to it. We don't want callers subsequently mutating. - Exception[] exceptionsCopy = new Exception[innerExceptions.Count]; + _innerExceptions = cloneExceptions ? new Exception[innerExceptions.Length] : innerExceptions; - for (int i = 0; i < exceptionsCopy.Length; i++) + for (int i = 0; i < _innerExceptions.Length; i++) { - exceptionsCopy[i] = innerExceptions[i]; + _innerExceptions[i] = innerExceptions[i]; - if (exceptionsCopy[i] == null) + if (innerExceptions[i] == null) { throw new ArgumentException(SR.AggregateException_ctor_InnerExceptionNull); } } - - m_innerExceptions = new ReadOnlyCollection(exceptionsCopy); } /// @@ -168,7 +152,7 @@ private AggregateException(string? message, IList innerExceptions) /// is null. /// An element of is /// null. - internal AggregateException(IEnumerable innerExceptionInfos) : + internal AggregateException(List innerExceptionInfos) : this(SR.AggregateException_ctor_DefaultMessage, innerExceptionInfos) { } @@ -186,54 +170,16 @@ private AggregateException(string? message, IList innerExceptions) /// is null. /// An element of is /// null. - internal AggregateException(string message, IEnumerable innerExceptionInfos) - // If it's already an IList, pass that along (a defensive copy will be made in the delegated ctor). If it's null, just pass along - // null typed correctly. Otherwise, create an IList from the enumerable and pass that along. - : this(message, innerExceptionInfos as IList ?? - (innerExceptionInfos == null ? - (List)null! : - new List(innerExceptionInfos))) - { - } - - /// - /// Allocates a new aggregate exception with the specified message and list of inner - /// exception dispatch info objects. - /// - /// The error message that explains the reason for the exception. - /// - /// Information about the exceptions that are the cause of the current exception. - /// - /// The argument - /// is null. - /// An element of is - /// null. - private AggregateException(string message, IList innerExceptionInfos) - : base(message, innerExceptionInfos != null && innerExceptionInfos.Count > 0 && innerExceptionInfos[0] != null ? - innerExceptionInfos[0].SourceException : null) + internal AggregateException(string message, List innerExceptionInfos) + : base(message, innerExceptionInfos.Count != 0 ? innerExceptionInfos[0].SourceException : null) { - if (innerExceptionInfos == null) - { - throw new ArgumentNullException(nameof(innerExceptionInfos)); - } + _innerExceptions = new Exception[innerExceptionInfos.Count]; - // Copy exceptions to our internal array and validate them. We must copy them, - // because we're going to put them into a ReadOnlyCollection which simply reuses - // the list passed in to it. We don't want callers subsequently mutating. - Exception[] exceptionsCopy = new Exception[innerExceptionInfos.Count]; - - for (int i = 0; i < exceptionsCopy.Length; i++) + for (int i = 0; i < _innerExceptions.Length; i++) { - ExceptionDispatchInfo edi = innerExceptionInfos[i]; - if (edi != null) exceptionsCopy[i] = edi.SourceException; - - if (exceptionsCopy[i] == null) - { - throw new ArgumentException(SR.AggregateException_ctor_InnerExceptionNull); - } + _innerExceptions[i] = innerExceptionInfos[i].SourceException; + Debug.Assert(_innerExceptions[i] != null); } - - m_innerExceptions = new ReadOnlyCollection(exceptionsCopy); } /// @@ -248,18 +194,13 @@ private AggregateException(string message, IList innerExc protected AggregateException(SerializationInfo info, StreamingContext context) : base(info, context) { - if (info == null) - { - throw new ArgumentNullException(nameof(info)); - } - - Exception[]? innerExceptions = info.GetValue("InnerExceptions", typeof(Exception[])) as Exception[]; + Exception[]? innerExceptions = info.GetValue("InnerExceptions", typeof(Exception[])) as Exception[]; // Do not rename (binary serialization) if (innerExceptions is null) { throw new SerializationException(SR.AggregateException_DeserializationFailure); } - m_innerExceptions = new ReadOnlyCollection(innerExceptions); + _innerExceptions = innerExceptions; } /// @@ -275,9 +216,7 @@ public override void GetObjectData(SerializationInfo info, StreamingContext cont { base.GetObjectData(info, context); - Exception[] innerExceptions = new Exception[m_innerExceptions.Count]; - m_innerExceptions.CopyTo(innerExceptions, 0); - info.AddValue("InnerExceptions", innerExceptions, typeof(Exception[])); + info.AddValue("InnerExceptions", _innerExceptions, typeof(Exception[])); // Do not rename (binary serialization) } /// @@ -302,7 +241,7 @@ public override Exception GetBaseException() /// Gets a read-only collection of the instances that caused the /// current exception. /// - public ReadOnlyCollection InnerExceptions => m_innerExceptions; + public ReadOnlyCollection InnerExceptions => _rocView ??= new ReadOnlyCollection(_innerExceptions); /// @@ -332,21 +271,21 @@ public void Handle(Func predicate) } List? unhandledExceptions = null; - for (int i = 0; i < m_innerExceptions.Count; i++) + for (int i = 0; i < _innerExceptions.Length; i++) { // If the exception was not handled, lazily allocate a list of unhandled // exceptions (to be rethrown later) and add it. - if (!predicate(m_innerExceptions[i])) + if (!predicate(_innerExceptions[i])) { unhandledExceptions ??= new List(); - unhandledExceptions.Add(m_innerExceptions[i]); + unhandledExceptions.Add(_innerExceptions[i]); } } // If there are unhandled exceptions remaining, throw them. if (unhandledExceptions != null) { - throw new AggregateException(Message, unhandledExceptions); + throw new AggregateException(Message, unhandledExceptions.ToArray(), cloneExceptions: false); } } @@ -400,7 +339,7 @@ public AggregateException Flatten() } } - return new AggregateException(GetType() == typeof(AggregateException) ? base.Message : Message, flattenedExceptions); + return new AggregateException(GetType() == typeof(AggregateException) ? base.Message : Message, flattenedExceptions.ToArray(), cloneExceptions: false); } /// Gets a message that describes the exception. @@ -408,7 +347,7 @@ public override string Message { get { - if (m_innerExceptions.Count == 0) + if (_innerExceptions.Length == 0) { return base.Message; } @@ -416,10 +355,10 @@ public override string Message StringBuilder sb = StringBuilderCache.Acquire(); sb.Append(base.Message); sb.Append(' '); - for (int i = 0; i < m_innerExceptions.Count; i++) + for (int i = 0; i < _innerExceptions.Length; i++) { sb.Append('('); - sb.Append(m_innerExceptions[i].Message); + sb.Append(_innerExceptions[i].Message); sb.Append(") "); } sb.Length--; @@ -436,14 +375,14 @@ public override string ToString() StringBuilder text = new StringBuilder(); text.Append(base.ToString()); - for (int i = 0; i < m_innerExceptions.Count; i++) + for (int i = 0; i < _innerExceptions.Length; i++) { - if (m_innerExceptions[i] == InnerException) + if (_innerExceptions[i] == InnerException) continue; // Already logged in base.ToString() text.Append(Environment.NewLineConst + InnerExceptionPrefix); text.AppendFormat(CultureInfo.InvariantCulture, SR.AggregateException_InnerException, i); - text.Append(m_innerExceptions[i].ToString()); + text.Append(_innerExceptions[i].ToString()); text.Append("<---"); text.AppendLine(); } @@ -460,6 +399,8 @@ public override string ToString() /// /// See https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-debuggerdisplay-attribute /// - private int InnerExceptionCount => InnerExceptions.Count; + internal int InnerExceptionCount => _innerExceptions.Length; + + internal Exception[] InternalInnerExceptions => _innerExceptions; } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Char8.cs b/src/libraries/System.Private.CoreLib/src/System/Char8.cs deleted file mode 100644 index 9dfdbc81215a..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Char8.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System -{ - /// - /// Represents a UTF-8 code unit, the elemental type of . - /// - public readonly struct Char8 : IComparable, IEquatable - { - private readonly byte _value; - - private Char8(byte value) - { - _value = value; - } - - public static bool operator ==(Char8 left, Char8 right) => left._value == right._value; - public static bool operator !=(Char8 left, Char8 right) => left._value != right._value; - public static bool operator <(Char8 left, Char8 right) => left._value < right._value; - public static bool operator <=(Char8 left, Char8 right) => left._value <= right._value; - public static bool operator >(Char8 left, Char8 right) => left._value > right._value; - public static bool operator >=(Char8 left, Char8 right) => left._value >= right._value; - - // Operators from Utf8Char to - // TODO: Once C# gets support for checked operators, we should add those here. - - public static implicit operator byte(Char8 value) => value._value; - [CLSCompliant(false)] - public static explicit operator sbyte(Char8 value) => (sbyte)value._value; // explicit because can integer overflow - public static explicit operator char(Char8 value) => (char)value._value; // explicit because don't want to encourage char conversion - public static implicit operator short(Char8 value) => value._value; - [CLSCompliant(false)] - public static implicit operator ushort(Char8 value) => value._value; - public static implicit operator int(Char8 value) => value._value; - [CLSCompliant(false)] - public static implicit operator uint(Char8 value) => value._value; - public static implicit operator long(Char8 value) => value._value; - [CLSCompliant(false)] - public static implicit operator ulong(Char8 value) => value._value; - - // Operators from to Char8; most are explicit because narrowing conversions could be lossy - // TODO: Once C# gets support for checked operators, we should add those here. - - public static implicit operator Char8(byte value) => new Char8(value); - [CLSCompliant(false)] - public static explicit operator Char8(sbyte value) => new Char8((byte)value); - public static explicit operator Char8(char value) => new Char8((byte)value); - public static explicit operator Char8(short value) => new Char8((byte)value); - [CLSCompliant(false)] - public static explicit operator Char8(ushort value) => new Char8((byte)value); - public static explicit operator Char8(int value) => new Char8((byte)value); - [CLSCompliant(false)] - public static explicit operator Char8(uint value) => new Char8((byte)value); - public static explicit operator Char8(long value) => new Char8((byte)value); - [CLSCompliant(false)] - public static explicit operator Char8(ulong value) => new Char8((byte)value); - - public int CompareTo(Char8 other) => this._value.CompareTo(other._value); - - public override bool Equals(object? obj) => (obj is Char8 other) && (this == other); - public bool Equals(Char8 other) => this == other; - - public override int GetHashCode() => _value; - - public override string ToString() => _value.ToString("X2"); - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs index 168959d83386..30db6049d22f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs @@ -80,31 +80,6 @@ internal OrdinalIgnoreCaseComparer(IEqualityComparer wrappedComparer) public override bool Equals(string? x, string? y) => string.EqualsOrdinalIgnoreCase(x, y); - public override int GetHashCode(string? obj) - { - if (obj is null) - { - return 0; - } - - // The Ordinal version of Marvin32 operates over bytes, so convert - // char count -> byte count. Guaranteed not to integer overflow. - return Marvin.ComputeHash32( - ref Unsafe.As(ref obj.GetRawStringData()), - (uint)obj.Length * sizeof(char), - _seed.p0, _seed.p1); - } - } - - private sealed class RandomizedOrdinalIgnoreCaseComparer : RandomizedStringEqualityComparer - { - internal RandomizedOrdinalIgnoreCaseComparer(IEqualityComparer underlyingComparer) - : base(underlyingComparer) - { - } - - public override bool Equals(string? x, string? y) => string.EqualsOrdinalIgnoreCase(x, y); - public override int GetHashCode(string? obj) { if (obj is null) diff --git a/src/libraries/System.Private.CoreLib/src/System/DefaultBinder.cs b/src/libraries/System.Private.CoreLib/src/System/DefaultBinder.cs index 8b5b1c31c6ff..6b275ff8b21c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/DefaultBinder.cs +++ b/src/libraries/System.Private.CoreLib/src/System/DefaultBinder.cs @@ -189,7 +189,7 @@ partial class DefaultBinder : Binder #region Match method by parameter type for (j = 0; j < argsToCheck; j++) { -#region Classic argument coersion checks +#region Classic argument coercion checks // get the formal type pCls = par[j].ParameterType; diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs index effc21fd61ad..e6ce6fda4a38 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs @@ -6,6 +6,7 @@ using System.Diagnostics; #endif using System.Collections.Generic; +using System.Runtime.Versioning; using System.Threading; #if ES_BUILD_STANDALONE @@ -14,6 +15,7 @@ namespace Microsoft.Diagnostics.Tracing namespace System.Diagnostics.Tracing #endif { + [UnsupportedOSPlatform("browser")] internal class CounterGroup { private readonly EventSource _eventSource; diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/DiagnosticCounter.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/DiagnosticCounter.cs index c2c7e20b347f..16724c371c49 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/DiagnosticCounter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/DiagnosticCounter.cs @@ -6,6 +6,7 @@ using System.Diagnostics; #endif using System.Collections.Generic; +using System.Runtime.Versioning; using System.Text; using System.Threading; @@ -19,6 +20,7 @@ namespace System.Diagnostics.Tracing /// DiagnosticCounter is an abstract class that serves as the parent class for various Counter* classes, /// namely EventCounter, PollingCounter, IncrementingEventCounter, and IncrementingPollingCounter. /// + [UnsupportedOSPlatform("browser")] public abstract class DiagnosticCounter : IDisposable { /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventCounter.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventCounter.cs index 9d14c881e183..2f4489afc9e6 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventCounter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventCounter.cs @@ -6,6 +6,7 @@ using System.Diagnostics; #endif using System.Diagnostics.CodeAnalysis; +using System.Runtime.Versioning; using System.Threading; #if ES_BUILD_STANDALONE @@ -23,6 +24,7 @@ namespace System.Diagnostics.Tracing /// See https://github.com/dotnet/runtime/blob/master/src/libraries/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestEventCounter.cs /// which shows tests, which are also useful in seeing actual use. /// + [UnsupportedOSPlatform("browser")] public partial class EventCounter : DiagnosticCounter { /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventProvider.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventProvider.cs index 99fd30455092..d66b9f44eac5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventProvider.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventProvider.cs @@ -82,7 +82,7 @@ internal SessionInfo(int sessionIdBit_, int etwSessionId_) private byte m_level; // Tracing Level private long m_anyKeywordMask; // Trace Enable Flags private long m_allKeywordMask; // Match all keyword - private List? m_liveSessions; // current live sessions (Tuple) + private List? m_liveSessions; // current live sessions (KeyValuePair) private bool m_enabled; // Enabled flag from Trace callback private string? m_providerName; // Control name private Guid m_providerId; // Control Guid @@ -256,7 +256,7 @@ public virtual void Close() m_anyKeywordMask = anyKeyword; m_allKeywordMask = allKeyword; - List> sessionsChanged = GetSessions(); + List> sessionsChanged = GetSessions(); // The GetSessions() logic was here to support the idea that different ETW sessions // could have different user-defined filters. (I believe it is currently broken but that is another matter.) @@ -268,13 +268,13 @@ public virtual void Close() // All this session based logic should be reviewed and likely removed, but that is a larger // change that needs more careful staging. if (sessionsChanged.Count == 0) - sessionsChanged.Add(new Tuple(new SessionInfo(0, 0), true)); + sessionsChanged.Add(new KeyValuePair(new SessionInfo(0, 0), true)); - foreach (Tuple session in sessionsChanged) + foreach (KeyValuePair session in sessionsChanged) { - int sessionChanged = session.Item1.sessionIdBit; - int etwSessionId = session.Item1.etwSessionId; - bool bEnabling = session.Item2; + int sessionChanged = session.Key.sessionIdBit; + int etwSessionId = session.Key.etwSessionId; + bool bEnabling = session.Value; skipFinalOnControllerCommand = true; args = null; // reinitialize args for every session... @@ -374,7 +374,7 @@ private static int FindNull(byte[] buffer, int idx) /// ETW session that was added or remove, and the bool specifies whether the /// session was added or whether it was removed from the set. /// - private List> GetSessions() + private List> GetSessions() { List? liveSessionList = null; @@ -383,7 +383,7 @@ private static int FindNull(byte[] buffer, int idx) GetSessionInfoCallback(etwSessionId, matchAllKeywords, ref sessionList), ref liveSessionList); - List> changedSessionList = new List>(); + List> changedSessionList = new List>(); // first look for sessions that have gone away (or have changed) // (present in the m_liveSessions but not in the new liveSessionList) @@ -394,7 +394,7 @@ private static int FindNull(byte[] buffer, int idx) int idx; if ((idx = IndexOfSessionInList(liveSessionList, s.etwSessionId)) < 0 || (liveSessionList![idx].sessionIdBit != s.sessionIdBit)) - changedSessionList.Add(Tuple.Create(s, false)); + changedSessionList.Add(new KeyValuePair(s, false)); } } // next look for sessions that were created since the last callback (or have changed) @@ -406,7 +406,7 @@ private static int FindNull(byte[] buffer, int idx) int idx; if ((idx = IndexOfSessionInList(m_liveSessions, s.etwSessionId)) < 0 || (m_liveSessions![idx].sessionIdBit != s.sessionIdBit)) - changedSessionList.Add(Tuple.Create(s, true)); + changedSessionList.Add(new KeyValuePair(s, true)); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs index e3d0c2b4a9e7..a5171d45a7bf 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs @@ -1481,12 +1481,12 @@ private unsafe void Initialize(Guid eventSourceGuid, string eventSourceName, str #endif #if FEATURE_MANAGED_ETW // Register the provider with ETW - var etwProvider = new OverideEventProvider(this, EventProviderType.ETW); + var etwProvider = new OverrideEventProvider(this, EventProviderType.ETW); etwProvider.Register(this); #endif #if FEATURE_PERFTRACING // Register the provider with EventPipe - var eventPipeProvider = new OverideEventProvider(this, EventProviderType.EventPipe); + var eventPipeProvider = new OverrideEventProvider(this, EventProviderType.EventPipe); lock (EventListener.EventListenersLock) { eventPipeProvider.Register(this); @@ -2444,9 +2444,9 @@ internal static EventOpcode GetOpcodeWithDefault(EventOpcode opcode, string? eve /// /// This class lets us hook the 'OnEventCommand' from the eventSource. /// - private class OverideEventProvider : EventProvider + private class OverrideEventProvider : EventProvider { - public OverideEventProvider(EventSource eventSource, EventProviderType providerType) + public OverrideEventProvider(EventSource eventSource, EventProviderType providerType) : base(providerType) { this.m_eventSource = eventSource; @@ -3278,10 +3278,15 @@ private static bool AttributeTypeNamesMatch(Type attributeType, Type reflectedAt } } #endif - string eventKey = "event_" + eventName; - string? msg = manifest.GetLocalizedMessage(eventKey, CultureInfo.CurrentUICulture, etwFormat: false); - // overwrite inline message with the localized message - if (msg != null) eventAttribute.Message = msg; + if (manifest.HasResources) + { + string eventKey = "event_" + eventName; + if (manifest.GetLocalizedMessage(eventKey, CultureInfo.CurrentUICulture, etwFormat: false) is string msg) + { + // overwrite inline message with the localized message + eventAttribute.Message = msg; + } + } AddEventDescriptor(ref eventData, eventName, eventAttribute, args, hasRelatedActivityID); } @@ -3769,12 +3774,12 @@ private bool SelfDescribingEvents // Dispatching state internal volatile EventDispatcher? m_Dispatchers; // Linked list of code:EventDispatchers we write the data to (we also do ETW specially) #if FEATURE_MANAGED_ETW - private volatile OverideEventProvider m_etwProvider = null!; // This hooks up ETW commands to our 'OnEventCommand' callback + private volatile OverrideEventProvider m_etwProvider = null!; // This hooks up ETW commands to our 'OnEventCommand' callback #endif #if FEATURE_PERFTRACING private object? m_createEventLock; private IntPtr m_writeEventStringEventHandle = IntPtr.Zero; - private volatile OverideEventProvider m_eventPipeProvider = null!; + private volatile OverrideEventProvider m_eventPipeProvider = null!; #endif private bool m_completelyInited; // The EventSource constructor has returned without exception. private Exception? m_constructionException; // If there was an exception construction, this is it @@ -5366,11 +5371,11 @@ public void StartEvent(string eventName, EventAttribute eventAttribute) numParams = 0; byteArrArgIndices = null; - events.Append(" Errors => errors; + public bool HasResources => resources != null; + /// /// When validating an event source it adds the error to the error collection. /// When not validating it throws an exception if runtimeCritical is "true". @@ -5516,6 +5535,10 @@ public void ManifestError(string msg, bool runtimeCritical = false) private string CreateManifestString() { +#if !ES_BUILD_STANDALONE + Span ulongHexScratch = stackalloc char[16]; // long enough for ulong.MaxValue formatted as hex +#endif + #if FEATURE_MANAGED_ETW_CHANNELS // Write out the channels if (channelTab != null) @@ -5530,7 +5553,6 @@ private string CreateManifestString() ChannelInfo channelInfo = kvpair.Value; string? channelType = null; - const string ElementName = "channel"; bool enabled = false; string? fullName = null; #if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS @@ -5557,24 +5579,20 @@ private string CreateManifestString() fullName ??= providerName + "/" + channelInfo.Name; - sb.Append(" <").Append(ElementName); - sb.Append(" chid=\"").Append(channelInfo.Name).Append('"'); - sb.Append(" name=\"").Append(fullName).Append('"'); - if (ElementName == "channel") // not applicable to importChannels. - { - Debug.Assert(channelInfo.Name != null); - WriteMessageAttrib(sb, "channel", channelInfo.Name, null); - sb.Append(" value=\"").Append(channel).Append('"'); - if (channelType != null) - sb.Append(" type=\"").Append(channelType).Append('"'); - sb.Append(" enabled=\"").Append(enabled ? "true" : "false").Append('"'); + sb.Append(" "); } sb.AppendLine(" "); @@ -5625,7 +5643,14 @@ private string CreateManifestString() // TODO: Warn people about the dropping of values. if (isbitmap && ((hexValue & (hexValue - 1)) != 0 || hexValue == 0)) continue; - sb.Append(" hexValueFormatted = ulongHexScratch.Slice(0, charsWritten); +#endif + sb.Append(" "); anyValuesWritten = true; @@ -5667,7 +5692,13 @@ private string CreateManifestString() { sb.Append(" "); +#if ES_BUILD_STANDALONE + string keywordFormatted = keyword.ToString("x", CultureInfo.InvariantCulture); +#else + keyword.TryFormat(ulongHexScratch, out int charsWritten, "x"); + Span keywordFormatted = ulongHexScratch.Slice(0, charsWritten); +#endif + sb.Append(" mask=\"0x").Append(keywordFormatted).AppendLine("\"/>"); } sb.AppendLine(" "); } @@ -5724,18 +5755,21 @@ private void WriteNameAndMessageAttribs(StringBuilder stringBuilder, string elem } private void WriteMessageAttrib(StringBuilder stringBuilder, string elementName, string name, string? value) { - string key = elementName + "_" + name; + string? key = null; + // See if the user wants things localized. if (resources != null) { // resource fallback: strings in the neutral culture will take precedence over inline strings - string? localizedString = resources.GetString(key, CultureInfo.InvariantCulture); - if (localizedString != null) + key = elementName + "_" + name; + if (resources.GetString(key, CultureInfo.InvariantCulture) is string localizedString) value = localizedString; } + if (value == null) return; + key ??= elementName + "_" + name; stringBuilder.Append(" message=\"$(string.").Append(key).Append(")\""); if (stringTab.TryGetValue(key, out string? prevValue) && !prevValue.Equals(value)) @@ -5768,9 +5802,23 @@ private void WriteMessageAttrib(StringBuilder stringBuilder, string elementName, return value; } - private static string GetLevelName(EventLevel level) + private static void AppendLevelName(StringBuilder sb, EventLevel level) { - return (((int)level >= 16) ? "" : "win:") + level.ToString(); + if ((int)level < 16) + { + sb.Append("win:"); + } + + sb.Append(level switch // avoid boxing that comes from level.ToString() + { + EventLevel.LogAlways => nameof(EventLevel.LogAlways), + EventLevel.Critical => nameof(EventLevel.Critical), + EventLevel.Error => nameof(EventLevel.Error), + EventLevel.Warning => nameof(EventLevel.Warning), + EventLevel.Informational => nameof(EventLevel.Informational), + EventLevel.Verbose => nameof(EventLevel.Verbose), + _ => ((int)level).ToString() + }); } #if FEATURE_MANAGED_ETW_CHANNELS @@ -5851,7 +5899,7 @@ private string GetTaskName(EventTask task, string eventName) return ret; } - private string GetKeywords(ulong keywords, string eventName) + private void AppendKeywords(StringBuilder sb, ulong keywords, string eventName) { #if FEATURE_MANAGED_ETW_CHANNELS // ignore keywords associate with channels @@ -5859,7 +5907,7 @@ private string GetKeywords(ulong keywords, string eventName) keywords &= ~ValidPredefinedChannelKeywords; #endif - string ret = ""; + bool appended = false; for (ulong bit = 1; bit != 0; bit <<= 1) { if ((keywords & bit) != 0) @@ -5877,12 +5925,19 @@ private string GetKeywords(ulong keywords, string eventName) ManifestError(SR.Format(SR.EventSource_UndefinedKeyword, "0x" + bit.ToString("x", CultureInfo.CurrentCulture), eventName), true); keyword = string.Empty; } - if (ret.Length != 0 && keyword.Length != 0) - ret += " "; - ret += keyword; + + if (keyword.Length != 0) + { + if (appended) + { + sb.Append(' '); + } + + sb.Append(keyword); + appended = true; + } } } - return ret; } private string GetTypeName(Type type) diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingEventCounter.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingEventCounter.cs index 8d3d37895610..4b4d08ec738b 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingEventCounter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingEventCounter.cs @@ -9,6 +9,8 @@ #if ES_BUILD_STANDALONE namespace Microsoft.Diagnostics.Tracing #else +using System.Runtime.Versioning; + namespace System.Diagnostics.Tracing #endif { @@ -18,6 +20,9 @@ namespace System.Diagnostics.Tracing /// It does not calculate statistics like mean, standard deviation, etc. because it only accumulates /// the counter value. /// +#if NETCOREAPP + [UnsupportedOSPlatform("browser")] +#endif public partial class IncrementingEventCounter : DiagnosticCounter { /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingPollingCounter.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingPollingCounter.cs index 3854d1c93cce..d18e5ad6f93c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingPollingCounter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingPollingCounter.cs @@ -8,6 +8,8 @@ #if ES_BUILD_STANDALONE namespace Microsoft.Diagnostics.Tracing #else +using System.Runtime.Versioning; + namespace System.Diagnostics.Tracing #endif { @@ -19,6 +21,9 @@ namespace System.Diagnostics.Tracing /// Unlike IncrementingEventCounter, this takes in a polling callback that it can call to update /// its own metric periodically. /// +#if NETCOREAPP + [UnsupportedOSPlatform("browser")] +#endif public partial class IncrementingPollingCounter : DiagnosticCounter { /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/PollingCounter.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/PollingCounter.cs index 12f0349067f0..d2b88669b21a 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/PollingCounter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/PollingCounter.cs @@ -8,6 +8,8 @@ #if ES_BUILD_STANDALONE namespace Microsoft.Diagnostics.Tracing #else +using System.Runtime.Versioning; + namespace System.Diagnostics.Tracing #endif { @@ -17,6 +19,9 @@ namespace System.Diagnostics.Tracing /// function to collect metrics on its own rather than the user having to call WriteMetric() /// every time. /// +#if NETCOREAPP + [UnsupportedOSPlatform("browser")] +#endif public partial class PollingCounter : DiagnosticCounter { /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Enum.cs b/src/libraries/System.Private.CoreLib/src/System/Enum.cs index d69077cfb9c5..e8377f593bb7 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Enum.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Enum.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Buffers.Binary; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; @@ -63,26 +64,38 @@ private string ValueToString() private string ValueToHexString() { ref byte data = ref this.GetRawData(); + Span bytes = stackalloc byte[8]; + int length; switch (InternalGetCorElementType()) { case CorElementType.ELEMENT_TYPE_I1: case CorElementType.ELEMENT_TYPE_U1: - return data.ToString("X2", null); + bytes[0] = data; + length = 1; + break; case CorElementType.ELEMENT_TYPE_BOOLEAN: - return Convert.ToByte(Unsafe.As(ref data)).ToString("X2", null); + return data != 0 ? "01" : "00"; case CorElementType.ELEMENT_TYPE_I2: case CorElementType.ELEMENT_TYPE_U2: case CorElementType.ELEMENT_TYPE_CHAR: - return Unsafe.As(ref data).ToString("X4", null); + BinaryPrimitives.WriteUInt16BigEndian(bytes, Unsafe.As(ref data)); + length = 2; + break; case CorElementType.ELEMENT_TYPE_I4: case CorElementType.ELEMENT_TYPE_U4: - return Unsafe.As(ref data).ToString("X8", null); + BinaryPrimitives.WriteUInt32BigEndian(bytes, Unsafe.As(ref data)); + length = 4; + break; case CorElementType.ELEMENT_TYPE_I8: case CorElementType.ELEMENT_TYPE_U8: - return Unsafe.As(ref data).ToString("X16", null); + BinaryPrimitives.WriteUInt64BigEndian(bytes, Unsafe.As(ref data)); + length = 8; + break; default: throw new InvalidOperationException(SR.InvalidOperation_UnknownEnumType); } + + return HexConverter.ToString(bytes.Slice(0, length), HexConverter.Casing.Upper); } private static string ValueToHexString(object value) @@ -91,7 +104,7 @@ private static string ValueToHexString(object value) { TypeCode.SByte => ((byte)(sbyte)value).ToString("X2", null), TypeCode.Byte => ((byte)value).ToString("X2", null), - TypeCode.Boolean => Convert.ToByte((bool)value).ToString("X2", null), // direct cast from bool to byte is not allowed + TypeCode.Boolean => ((bool)value) ? "01" : "00", TypeCode.Int16 => ((ushort)(short)value).ToString("X4", null), TypeCode.UInt16 => ((ushort)value).ToString("X4", null), TypeCode.Char => ((ushort)(char)value).ToString("X4", null), @@ -129,19 +142,17 @@ private static string ValueToHexString(object value) } else // These are flags OR'ed together (We treat everything as unsigned types) { - return InternalFlagsFormat(enumType, enumInfo, value); + return InternalFlagsFormat(enumInfo, value); } } private static string? InternalFlagsFormat(RuntimeType enumType, ulong result) { - return InternalFlagsFormat(enumType, GetEnumInfo(enumType), result); + return InternalFlagsFormat(GetEnumInfo(enumType), result); } - private static string? InternalFlagsFormat(RuntimeType enumType, EnumInfo enumInfo, ulong resultValue) + private static string? InternalFlagsFormat(EnumInfo enumInfo, ulong resultValue) { - Debug.Assert(enumType != null); - string[] names = enumInfo.Names; ulong[] values = enumInfo.Values; Debug.Assert(names.Length == values.Length); @@ -245,10 +256,10 @@ internal static ulong ToUInt64(object value) { TypeCode.SByte => (ulong)(sbyte)value, TypeCode.Byte => (byte)value, - TypeCode.Boolean => Convert.ToByte((bool)value), // direct cast from bool to byte is not allowed + TypeCode.Boolean => (bool)value ? 1UL : 0UL, TypeCode.Int16 => (ulong)(short)value, TypeCode.UInt16 => (ushort)value, - TypeCode.Char => (ushort)(char)value, + TypeCode.Char => (char)value, TypeCode.UInt32 => (uint)value, TypeCode.Int32 => (ulong)(int)value, TypeCode.UInt64 => (ulong)value, @@ -263,7 +274,7 @@ internal static ulong ToUInt64(object value) { TypeCode.SByte => (ulong)Unsafe.As(ref value), TypeCode.Byte => Unsafe.As(ref value), - TypeCode.Boolean => Convert.ToByte(Unsafe.As(ref value)), + TypeCode.Boolean => Unsafe.As(ref value) ? 1UL : 0UL, TypeCode.Int16 => (ulong)Unsafe.As(ref value), TypeCode.UInt16 => Unsafe.As(ref value), TypeCode.Char => Unsafe.As(ref value), @@ -934,7 +945,7 @@ private ulong ToUInt64() case CorElementType.ELEMENT_TYPE_U1: return data; case CorElementType.ELEMENT_TYPE_BOOLEAN: - return Convert.ToUInt64(Unsafe.As(ref data), CultureInfo.InvariantCulture); + return data != 0 ? 1UL : 0UL; case CorElementType.ELEMENT_TYPE_I2: return (ulong)Unsafe.As(ref data); case CorElementType.ELEMENT_TYPE_U2: @@ -1197,7 +1208,7 @@ DateTime IConvertible.ToDateTime(IFormatProvider? provider) object IConvertible.ToType(Type type, IFormatProvider? provider) { - return Convert.DefaultToType((IConvertible)this, type, provider); + return Convert.DefaultToType(this, type, provider); } #endregion @@ -1234,7 +1245,7 @@ object IConvertible.ToType(Type type, IFormatProvider? provider) InternalBoxEnum(ValidateRuntimeType(enumType), value); private static object ToObject(Type enumType, bool value) => - InternalBoxEnum(ValidateRuntimeType(enumType), value ? 1 : 0); + InternalBoxEnum(ValidateRuntimeType(enumType), value ? 1L : 0L); #endregion diff --git a/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs index 6e5e7ebc050b..4ce955a3c401 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs @@ -37,20 +37,21 @@ private static string GetFolderPathCore(SpecialFolder folder, SpecialFolderOptio { return string.Empty; } - else - { - Debug.Assert(option == SpecialFolderOption.Create); - Func createDirectory = LazyInitializer.EnsureInitialized(ref s_directoryCreateDirectory, static () => - { - Type dirType = Type.GetType("System.IO.Directory, System.IO.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: true)!; - MethodInfo mi = dirType.GetMethod("CreateDirectory", BindingFlags.Public | BindingFlags.Static)!; - return mi.CreateDelegate>(); - }); - createDirectory(path); + Debug.Assert(option == SpecialFolderOption.Create); - return path; + Func? createDirectory = Volatile.Read(ref s_directoryCreateDirectory); + if (createDirectory is null) + { + Type dirType = Type.GetType("System.IO.Directory, System.IO.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: true)!; + MethodInfo mi = dirType.GetMethod("CreateDirectory", BindingFlags.Public | BindingFlags.Static)!; + createDirectory = mi.CreateDelegate>(); + Volatile.Write(ref s_directoryCreateDirectory, createDirectory); } + + createDirectory(path); + + return path; } private static string GetFolderPathCoreWithoutValidation(SpecialFolder folder) diff --git a/src/libraries/System.Private.CoreLib/src/System/Environment.SunOS.cs b/src/libraries/System.Private.CoreLib/src/System/Environment.SunOS.cs new file mode 100644 index 000000000000..fb7ff75cb2e6 --- /dev/null +++ b/src/libraries/System.Private.CoreLib/src/System/Environment.SunOS.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System +{ + public static partial class Environment + { + public static long WorkingSet => + (long)(Interop.procfs.TryReadProcessStatusInfo(ProcessId, out Interop.procfs.ProcessStatusInfo status) ? status.ResidentSetSize : 0); + } +} diff --git a/src/libraries/System.Private.CoreLib/src/System/Environment.Variables.Windows.cs b/src/libraries/System.Private.CoreLib/src/System/Environment.Variables.Windows.cs index 15f027c202e6..382021ea055c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Environment.Variables.Windows.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Environment.Variables.Windows.cs @@ -58,93 +58,68 @@ private static void SetEnvironmentVariableCore(string variable, string? value) public static unsafe IDictionary GetEnvironmentVariables() { - char* pStrings = Interop.Kernel32.GetEnvironmentStrings(); - if (pStrings == null) + // Format for GetEnvironmentStrings is: + // [=HiddenVar=value\0]* [Variable=value\0]* \0 + // See the description of Environment Blocks in MSDN's CreateProcess + // page (null-terminated array of null-terminated strings). Note + // the =HiddenVar's aren't always at the beginning. + + // Copy strings out, parsing into pairs and inserting into the table. + // The first few environment variable entries start with an '='. + // The current working directory of every drive (except for those drives + // you haven't cd'ed into in your DOS window) are stored in the + // environment block (as =C:=pwd) and the program's exit code is + // as well (=ExitCode=00000000). + + char* stringPtr = Interop.Kernel32.GetEnvironmentStringsW(); + if (stringPtr == null) { throw new OutOfMemoryException(); } try { - // Format for GetEnvironmentStrings is: - // [=HiddenVar=value\0]* [Variable=value\0]* \0 - // See the description of Environment Blocks in MSDN's - // CreateProcess page (null-terminated array of null-terminated strings). - - // Search for terminating \0\0 (two unicode \0's). - char* p = pStrings; - while (!(*p == '\0' && *(p + 1) == '\0')) - { - p++; - } - Span block = new Span(pStrings, (int)(p - pStrings + 1)); - - // Format for GetEnvironmentStrings is: - // (=HiddenVar=value\0 | Variable=value\0)* \0 - // See the description of Environment Blocks in MSDN's - // CreateProcess page (null-terminated array of null-terminated strings). - // Note the =HiddenVar's aren't always at the beginning. - - // Copy strings out, parsing into pairs and inserting into the table. - // The first few environment variable entries start with an '='. - // The current working directory of every drive (except for those drives - // you haven't cd'ed into in your DOS window) are stored in the - // environment block (as =C:=pwd) and the program's exit code is - // as well (=ExitCode=00000000). - var results = new Hashtable(); - for (int i = 0; i < block.Length; i++) - { - int startKey = i; - // Skip to key. On some old OS, the environment block can be corrupted. - // Some will not have '=', so we need to check for '\0'. - while (block[i] != '=' && block[i] != '\0') + char* currentPtr = stringPtr; + while (true) + { + int variableLength = string.wcslen(currentPtr); + if (variableLength == 0) { - i++; + break; } - if (block[i] == '\0') - { - continue; - } + var variable = new ReadOnlySpan(currentPtr, variableLength); - // Skip over environment variables starting with '=' - if (i - startKey == 0) + // Find the = separating the key and value. We skip entries that begin with =. We also skip entries that don't + // have =, which can happen on some older OSes when the environment block gets corrupted. + int i = variable.IndexOf('='); + if (i > 0) { - while (block[i] != 0) + // Add the key and value. + string key = new string(variable.Slice(0, i)); + string value = new string(variable.Slice(i + 1)); + try { - i++; + // Add may throw if the environment block was corrupted leading to duplicate entries. + // We allow such throws and eat them (rather than proactively checking for duplication) + // to provide a non-fatal notification about the corruption. + results.Add(key, value); } - - continue; + catch (ArgumentException) { } } - string key = new string(block.Slice(startKey, i - startKey)); - i++; // skip over '=' - - int startValue = i; - while (block[i] != 0) - { - i++; // Read to end of this entry - } - - string value = new string(block.Slice(startValue, i - startValue)); // skip over 0 handled by for loop's i++ - try - { - results.Add(key, value); - } - catch (ArgumentException) - { - // Throw and catch intentionally to provide non-fatal notification about corrupted environment block - } + // Move to the end of this variable, after its terminator. + currentPtr += variableLength + 1; } + return results; } finally { - bool success = Interop.Kernel32.FreeEnvironmentStrings(pStrings); - Debug.Assert(success); + Interop.BOOL success = Interop.Kernel32.FreeEnvironmentStringsW(stringPtr); + Debug.Assert(success != Interop.BOOL.FALSE); } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs index faa339fcc300..855d11a0fcb6 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs @@ -235,11 +235,48 @@ private static int IcuGetGeoId(string cultureName) return geoId == -1 ? CultureData.Invariant.GeoId : geoId; } + private const uint DigitSubstitutionMask = 0x0000FFFF; + private const uint ListSeparatorMask = 0xFFFF0000; + private static int IcuGetDigitSubstitution(string cultureName) { Debug.Assert(!GlobalizationMode.UseNls); - int digitSubstitution = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitution); - return digitSubstitution == -1 ? (int) DigitShapes.None : digitSubstitution; + int digitSubstitution = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitutionOrListSeparator); + return digitSubstitution == -1 ? (int) DigitShapes.None : (int)(digitSubstitution & DigitSubstitutionMask); + } + + private static string IcuGetListSeparator(string? cultureName) + { + Debug.Assert(!GlobalizationMode.UseNls); + Debug.Assert(cultureName != null); + + int separator = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitutionOrListSeparator); + if (separator != -1) + { + switch (separator & ListSeparatorMask) + { + case IcuLocaleData.CommaSep: + return ","; + + case IcuLocaleData.SemicolonSep: + return ";"; + + case IcuLocaleData.ArabicCommaSep: + return "\u060C"; + + case IcuLocaleData.ArabicSemicolonSep: + return "\u061B"; + + case IcuLocaleData.DoubleCommaSep: + return ",,"; + + default: + Debug.Assert(false, "[CultureData.IcuGetListSeparator] Unexpected ListSeparator value."); + break; + } + } + + return ","; // default separator } private static string IcuGetThreeLetterWindowsLanguageName(string cultureName) diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs index 939c16e4d8d9..76e95e087dd3 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs @@ -1378,7 +1378,7 @@ internal int MeasurementSystem /// list Separator /// (user can override) /// - internal string ListSeparator => _sListSeparator ??= GetLocaleInfoCoreUserOverride(LocaleStringData.ListSeparator); + internal string ListSeparator => _sListSeparator ??= ShouldUseUserOverrideNlsData ? NlsGetLocaleInfo(LocaleStringData.ListSeparator) : IcuGetListSeparator(_sWindowsName); /// /// AM designator diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs index 6cf5e4ca2fdf..5a071799bbb0 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs @@ -496,6 +496,42 @@ public virtual CultureInfo Parent CultureInfo culture; string parentName = _cultureData.ParentName; + if (parentName == "zh") + { + if (_name.Length == 5 && _name[2] == '-') + { + // We need to keep the parent chain for the zh cultures as follows to preserve the resource lookup compatability + // zh-CN -> zh-Hans -> zh -> Invariant + // zh-HK -> zh-Hant -> zh -> Invariant + // zh-MO -> zh-Hant -> zh -> Invariant + // zh-SG -> zh-Hans -> zh -> Invariant + // zh-TW -> zh-Hant -> zh -> Invariant + + if ((_name[3] == 'C' && _name[4] == 'N' ) || // zh-CN + (_name[3] == 'S' && _name[4] == 'G' )) // zh-SG + { + parentName = "zh-Hans"; + } + else if ((_name[3] == 'H' && _name[4] == 'K' ) || // zh-HK + (_name[3] == 'M' && _name[4] == 'O' ) || // zh-MO + (_name[3] == 'T' && _name[4] == 'W' )) // zh-TW + { + parentName = "zh-Hant"; + } + } + else if (_name.Length > 8 && _name.AsSpan(2, 4).Equals("-Han", StringComparison.Ordinal) && _name[7] == '-') // cultures like zh-Hant-* and zh-Hans-* + { + if (_name[6] == 't') // zh-Hant-* + { + parentName = "zh-Hant"; + } + else if (_name[6] == 's') // zh-Hans-* + { + parentName = "zh-Hans"; + } + } + } + if (string.IsNullOrEmpty(parentName)) { culture = InvariantCulture; diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs index 0c122978e603..99cdc9775c9a 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs @@ -17,7 +17,7 @@ internal enum IcuLocaleDataParts MacCodePage = 3, EbcdicCodePage = 4, GeoId = 5, - DigitSubstitution = 6, + DigitSubstitutionOrListSeparator = 6, SpecificLocaleIndex = 7, ConsoleLocaleIndex = 8 } @@ -2639,876 +2639,883 @@ internal static class IcuLocaleData }; private const int NUMERIC_LOCALE_DATA_COUNT_PER_ROW = 9; + + internal const int CommaSep = 0 << 16; + internal const int SemicolonSep = 1 << 16; + internal const int ArabicCommaSep = 2 << 16; + internal const int ArabicSemicolonSep = 3 << 16; + internal const int DoubleCommaSep = 4 << 16; + // s_nameIndexToNumericData is mapping from index in s_localeNamesIndices to locale data. // each row in the table will have the following data: - // Lcid, Ansi codepage, Oem codepage, MAC codepage, EBCDIC codepage, Geo Id, Digit Substitution, specific locale index, Console locale index + // Lcid, Ansi codepage, Oem codepage, MAC codepage, EBCDIC codepage, Geo Id, Digit Substitution | ListSeparator, specific locale index, Console locale index private static readonly int[] s_nameIndexToNumericData = new int[] { - // Lcid, Ansi CP, Oem CP, MAC CP, EBCDIC CP, Geo Id, digit substitution, Specific culture index, keyboard Id, Console locale index // index - locale name - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 3 , 240 , // 0 - aa - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 , 1 , 240 , // 1 - aa-dj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 2 , 240 , // 2 - aa-er - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 3 , 240 , // 3 - aa-et - 0x36 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 6 , 6 , // 4 - af - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 , 5 , 240 , // 5 - af-na - 0x436 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 6 , 6 , // 6 - af-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 8 , 240 , // 7 - agq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 8 , 240 , // 8 - agq-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 10 , 240 , // 9 - ak - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 10 , 240 , // 10 - ak-gh - 0x5e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 12 , 143 , // 11 - am - 0x45e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 12 , 143 , // 12 - am-et - 0x1 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 33 , 143 , // 13 - ar - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x989e, 0 , 14 , 240 , // 14 - ar-001 - 0x3801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xe0 , 0 , 15 , 143 , // 15 - ar-ae - 0x3c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x11 , 0 , 16 , 143 , // 16 - ar-bh - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3e , 0 , 17 , 240 , // 17 - ar-dj - 0x1401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x4 , 1 , 18 , 300 , // 18 - ar-dz - 0xc01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x43 , 0 , 19 , 143 , // 19 - ar-eg - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x47 , 0 , 20 , 240 , // 20 - ar-er - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x75 , 0 , 21 , 240 , // 21 - ar-il - 0x801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 22 , 143 , // 22 - ar-iq - 0x2c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x7e , 0 , 23 , 143 , // 23 - ar-jo - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x32 , 0 , 24 , 240 , // 24 - ar-km - 0x3401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x88 , 0 , 25 , 143 , // 25 - ar-kw - 0x3001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x8b , 0 , 26 , 143 , // 26 - ar-lb - 0x1001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x94 , 1 , 27 , 143 , // 27 - ar-ly - 0x1801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 28 , 300 , // 28 - ar-ma - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa2 , 0 , 29 , 240 , // 29 - ar-mr - 0x2001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa4 , 0 , 30 , 143 , // 30 - ar-om - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xb8 , 0 , 31 , 240 , // 31 - ar-ps - 0x4001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xc5 , 0 , 32 , 143 , // 32 - ar-qa - 0x401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 33 , 143 , // 33 - ar-sa - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xdb , 0 , 34 , 240 , // 34 - ar-sd - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xd8 , 0 , 35 , 240 , // 35 - ar-so - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x114 , 0 , 36 , 240 , // 36 - ar-ss - 0x2801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xde , 0 , 37 , 143 , // 37 - ar-sy - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x29 , 0 , 38 , 240 , // 38 - ar-td - 0x1c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xea , 1 , 39 , 300 , // 39 - ar-tn - 0x2401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x105 , 0 , 40 , 143 , // 40 - ar-ye - 0x7a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 42 , 42 , // 41 - arn - 0x47a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 42 , 42 , // 42 - arn-cl - 0x4d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 44 , 143 , // 43 - as - 0x44d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 44 , 143 , // 44 - as-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 46 , 240 , // 45 - asa - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 46 , 240 , // 46 - asa-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 , 48 , 240 , // 47 - ast - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 , 48 , 240 , // 48 - ast-es - 0x2c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 49 - az - 0x742c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 , 51 , 51 , // 50 - az-cyrl - 0x82c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 , 51 , 51 , // 51 - az-cyrl-az - 0x782c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 52 - az-latn - 0x42c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 53 - az-latn-az - 0x6d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 55 , 55 , // 54 - ba - 0x46d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 55 , 55 , // 55 - ba-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 57 , 240 , // 56 - bas - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 57 , 240 , // 57 - bas-cm - 0x23 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 , 59 , 59 , // 58 - be - 0x423 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 , 59 , 59 , // 59 - be-by - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 , 61 , 240 , // 60 - bem - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 , 61 , 240 , // 61 - bem-zm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 63 , 240 , // 62 - bez - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 63 , 240 , // 63 - bez-tz - 0x2 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 , 65 , 65 , // 64 - bg - 0x402 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 , 65 , 65 , // 65 - bg-bg - 0x66 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 67 , 240 , // 66 - bin - 0x466 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 67 , 240 , // 67 - bin-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 68 - bm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 69 - bm-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 70 - bm-latn-ml - 0x45 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 , 72 , 143 , // 71 - bn - 0x845 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 , 72 , 143 , // 72 - bn-bd - 0x445 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 73 , 143 , // 73 - bn-in - 0x51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 75 , 143 , // 74 - bo - 0x451 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 75 , 143 , // 75 - bo-cn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 76 , 240 , // 76 - bo-in - 0x7e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 78 , 78 , // 77 - br - 0x47e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 78 , 78 , // 78 - br-fr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 80 , 240 , // 79 - brx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 80 , 240 , // 80 - brx-in - 0x781a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 81 - bs - 0x641a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 , 83 , 83 , // 82 - bs-cyrl - 0x201a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 , 83 , 83 , // 83 - bs-cyrl-ba - 0x681a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 84 - bs-latn - 0x141a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 85 - bs-latn-ba - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 87 , 240 , // 86 - byn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 87 , 240 , // 87 - byn-er - 0x3 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 90 , 90 , // 88 - ca - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x8 , 1 , 89 , 240 , // 89 - ca-ad - 0x403 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 90 , 90 , // 90 - ca-es - 0x803 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 91 , 90 , // 91 - ca-es-valencia - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x54 , 1 , 92 , 240 , // 92 - ca-fr - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x76 , 1 , 93 , 240 , // 93 - ca-it - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 95 , 240 , // 94 - ce - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 95 , 240 , // 95 - ce-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 97 , 240 , // 96 - cgg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 97 , 240 , // 97 - cgg-ug - 0x5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 98 - chr - 0x7c5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 99 - chr-cher - 0x45c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 100 - chr-cher-us - 0x83 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 102 , 102 , // 101 - co - 0x483 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 102 , 102 , // 102 - co-fr - 0x5 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 , 104 , 104 , // 103 - cs - 0x405 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 , 104 , 104 , // 104 - cs-cz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 106 , 240 , // 105 - cu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 106 , 240 , // 106 - cu-ru - 0x52 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 108 , 108 , // 107 - cy - 0x452 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 108 , 108 , // 108 - cy-gb - 0x6 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 , 110 , 110 , // 109 - da - 0x406 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 , 110 , 110 , // 110 - da-dk - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x5d , 1 , 111 , 240 , // 111 - da-gl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 113 , 240 , // 112 - dav - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 113 , 240 , // 113 - dav-ke - 0x7 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 114 - de - 0xc07 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xe , 1 , 115 , 115 , // 115 - de-at - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x15 , 1 , 116 , 240 , // 116 - de-be - 0x807 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 117 , 117 , // 117 - de-ch - 0x407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 118 - de-de - 0x10407, 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 119 - de-de_phoneb - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 120 , 240 , // 120 - de-it - 0x1407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x91 , 1 , 121 , 121 , // 121 - de-li - 0x1007 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x93 , 1 , 122 , 122 , // 122 - de-lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 124 , 240 , // 123 - dje - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 124 , 240 , // 124 - dje-ne - 0x7c2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 126 , 126 , // 125 - dsb - 0x82e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 126 , 126 , // 126 - dsb-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 128 , 240 , // 127 - dua - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 128 , 240 , // 128 - dua-cm - 0x65 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 , 130 , 143 , // 129 - dv - 0x465 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 , 130 , 143 , // 130 - dv-mv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 , 132 , 240 , // 131 - dyo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 , 132 , 240 , // 132 - dyo-sn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 , 134 , 240 , // 133 - dz - 0xc51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 , 134 , 240 , // 134 - dz-bt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 136 , 240 , // 135 - ebu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 136 , 240 , // 136 - ebu-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 138 , 240 , // 137 - ee - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 138 , 240 , // 138 - ee-gh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe8 , 1 , 139 , 240 , // 139 - ee-tg - 0x8 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 , 142 , 142 , // 140 - el - 0x1000 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x3b , 1 , 141 , 240 , // 141 - el-cy - 0x408 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 , 142 , 142 , // 142 - el-gr - 0x9 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 240 , 240 , // 143 - en - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x989e, 1 , 144 , 240 , // 144 - en-001 - 0x2409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 145 , 145 , // 145 - en-029 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x292d, 1 , 146 , 240 , // 146 - en-150 - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x2 , 1 , 147 , 240 , // 147 - en-ag - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12c , 1 , 148 , 240 , // 148 - en-ai - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa , 1 , 149 , 240 , // 149 - en-as - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe , 1 , 150 , 240 , // 150 - en-at - 0xc09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc , 1 , 151 , 151 , // 151 - en-au - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12 , 1 , 152 , 240 , // 152 - en-bb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 , 153 , 240 , // 153 - en-be - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 154 , 240 , // 154 - en-bi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14 , 1 , 155 , 240 , // 155 - en-bm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x16 , 1 , 156 , 240 , // 156 - en-bs - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 , 157 , 240 , // 157 - en-bw - 0x2809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x18 , 1 , 158 , 158 , // 158 - en-bz - 0x1009 , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 159 , 159 , // 159 - en-ca - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x137 , 1 , 160 , 240 , // 160 - en-cc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 161 , 240 , // 161 - en-ch - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x138 , 1 , 162 , 240 , // 162 - en-ck - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x31 , 1 , 163 , 240 , // 163 - en-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x135 , 1 , 164 , 240 , // 164 - en-cx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b , 1 , 165 , 240 , // 165 - en-cy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 166 , 240 , // 166 - en-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 , 167 , 240 , // 167 - en-dk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3f , 1 , 168 , 240 , // 168 - en-dm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x47 , 1 , 169 , 240 , // 169 - en-er - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4d , 1 , 170 , 240 , // 170 - en-fi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x4e , 1 , 171 , 240 , // 171 - en-fj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13b , 1 , 172 , 240 , // 172 - en-fk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x50 , 1 , 173 , 240 , // 173 - en-fm - 0x809 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 174 , 174 , // 174 - en-gb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5b , 1 , 175 , 240 , // 175 - en-gd - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x144 , 1 , 176 , 240 , // 176 - en-gg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x59 , 1 , 177 , 240 , // 177 - en-gh - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5a , 1 , 178 , 240 , // 178 - en-gi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x56 , 1 , 179 , 240 , // 179 - en-gm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x142 , 1 , 180 , 240 , // 180 - en-gu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x65 , 1 , 181 , 240 , // 181 - en-gy - 0x3c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x68 , 1 , 182 , 240 , // 182 - en-hk - 0x3809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 183 , 240 , // 183 - en-id - 0x1809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 184 , 184 , // 184 - en-ie - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x75 , 1 , 185 , 240 , // 185 - en-il - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3b16, 1 , 186 , 240 , // 186 - en-im - 0x4009 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x71 , 1 , 187 , 187 , // 187 - en-in - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x72 , 1 , 188 , 240 , // 188 - en-io - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x148 , 1 , 189 , 240 , // 189 - en-je - 0x2009 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 , 190 , 190 , // 190 - en-jm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x81 , 1 , 191 , 240 , // 191 - en-ke - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x85 , 1 , 192 , 240 , // 192 - en-ki - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcf , 1 , 193 , 240 , // 193 - en-kn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x133 , 1 , 194 , 240 , // 194 - en-ky - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xda , 1 , 195 , 240 , // 195 - en-lc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x8e , 1 , 196 , 240 , // 196 - en-lr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x92 , 1 , 197 , 240 , // 197 - en-ls - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x95 , 1 , 198 , 240 , // 198 - en-mg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc7 , 1 , 199 , 240 , // 199 - en-mh - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 , 200 , 240 , // 200 - en-mo - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x151 , 1 , 201 , 240 , // 201 - en-mp - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14c , 1 , 202 , 240 , // 202 - en-ms - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa3 , 1 , 203 , 240 , // 203 - en-mt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa0 , 1 , 204 , 240 , // 204 - en-mu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9c , 1 , 205 , 240 , // 205 - en-mw - 0x4409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xa7 , 1 , 206 , 206 , // 206 - en-my - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 , 207 , 240 , // 207 - en-na - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x150 , 1 , 208 , 240 , // 208 - en-nf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 209 , 240 , // 209 - en-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 , 210 , 240 , // 210 - en-nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb4 , 1 , 211 , 240 , // 211 - en-nr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14f , 1 , 212 , 240 , // 212 - en-nu - 0x1409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb7 , 1 , 213 , 213 , // 213 - en-nz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc2 , 1 , 214 , 240 , // 214 - en-pg - 0x3409 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 215 , 215 , // 215 - en-ph - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xbe , 1 , 216 , 240 , // 216 - en-pk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x153 , 1 , 217 , 240 , // 217 - en-pn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xca , 1 , 218 , 240 , // 218 - en-pr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc3 , 1 , 219 , 240 , // 219 - en-pw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcc , 1 , 220 , 240 , // 220 - en-rw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x1e , 1 , 221 , 240 , // 221 - en-sb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd0 , 1 , 222 , 240 , // 222 - en-sc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdb , 1 , 223 , 240 , // 223 - en-sd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdd , 1 , 224 , 240 , // 224 - en-se - 0x4809 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xd7 , 1 , 225 , 225 , // 225 - en-sg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x157 , 1 , 226 , 240 , // 226 - en-sh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd4 , 1 , 227 , 240 , // 227 - en-si - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd5 , 1 , 228 , 240 , // 228 - en-sl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x114 , 1 , 229 , 240 , // 229 - en-ss - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 , 230 , 240 , // 230 - en-sx - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x104 , 1 , 231 , 240 , // 231 - en-sz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15d , 1 , 232 , 240 , // 232 - en-tc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15b , 1 , 233 , 240 , // 233 - en-tk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe7 , 1 , 234 , 240 , // 234 - en-to - 0x2c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe1 , 1 , 235 , 235 , // 235 - en-tt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xec , 1 , 236 , 240 , // 236 - en-tv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xef , 1 , 237 , 240 , // 237 - en-tz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf0 , 1 , 238 , 240 , // 238 - en-ug - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d40, 1 , 239 , 240 , // 239 - en-um - 0x409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 240 , 240 , // 240 - en-us - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf8 , 1 , 241 , 240 , // 241 - en-vc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15f , 1 , 242 , 240 , // 242 - en-vg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfc , 1 , 243 , 240 , // 243 - en-vi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xae , 1 , 244 , 240 , // 244 - en-vu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x103 , 1 , 245 , 240 , // 245 - en-ws - 0x1c09 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xd1 , 1 , 246 , 246 , // 246 - en-za - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x107 , 1 , 247 , 240 , // 247 - en-zm - 0x3009 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x108 , 1 , 248 , 248 , // 248 - en-zw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 250 , 240 , // 249 - eo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 250 , 240 , // 250 - eo-001 - 0xa , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 262 , 262 , // 251 - es - 0x580a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x9a55d41, 1 , 252 , 240 , // 252 - es-419 - 0x2c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb , 1 , 253 , 253 , // 253 - es-ar - 0x400a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 254 , 254 , // 254 - es-bo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x20 , 1 , 255 , 240 , // 255 - es-br - 0x340a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 256 , 256 , // 256 - es-cl - 0x240a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x33 , 1 , 257 , 257 , // 257 - es-co - 0x140a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x36 , 1 , 258 , 258 , // 258 - es-cr - 0x5c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x38 , 1 , 259 , 240 , // 259 - es-cu - 0x1c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x41 , 1 , 260 , 260 , // 260 - es-do - 0x300a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 , 261 , 261 , // 261 - es-ec - 0xc0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 262 , 262 , // 262 - es-es - 0x40a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 263 , 263 , // 263 - es-es_tradnl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x45 , 1 , 264 , 240 , // 264 - es-gq - 0x100a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 265 , 265 , // 265 - es-gt - 0x480a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x6a , 1 , 266 , 266 , // 266 - es-hn - 0x80a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xa6 , 1 , 267 , 267 , // 267 - es-mx - 0x4c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb6 , 1 , 268 , 268 , // 268 - es-ni - 0x180a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc0 , 1 , 269 , 269 , // 269 - es-pa - 0x280a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 , 270 , 270 , // 270 - es-pe - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc9 , 1 , 271 , 240 , // 271 - es-ph - 0x500a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xca , 1 , 272 , 272 , // 272 - es-pr - 0x3c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 273 , 273 , // 273 - es-py - 0x440a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x48 , 1 , 274 , 274 , // 274 - es-sv - 0x540a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf4 , 1 , 275 , 275 , // 275 - es-us - 0x380a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf6 , 1 , 276 , 276 , // 276 - es-uy - 0x200a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf9 , 1 , 277 , 277 , // 277 - es-ve - 0x25 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 , 279 , 279 , // 278 - et - 0x425 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 , 279 , 279 , // 279 - et-ee - 0x2d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 , 281 , 240 , // 280 - eu - 0x42d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 , 281 , 240 , // 281 - eu-es - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 283 , 240 , // 282 - ewo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 283 , 240 , // 283 - ewo-cm - 0x29 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 , 285 , 143 , // 284 - fa - 0x429 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 , 285 , 143 , // 285 - fa-ir - 0x67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 286 - ff - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 , 287 , 240 , // 287 - ff-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 , 288 , 240 , // 288 - ff-gn - 0x7c67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 289 - ff-latn - 0x867 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 290 - ff-latn-sn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 , 291 , 240 , // 291 - ff-mr - 0x467 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xaf , 1 , 292 , 240 , // 292 - ff-ng - 0xb , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 294 , 294 , // 293 - fi - 0x40b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 294 , 294 , // 294 - fi-fi - 0x64 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 296 , 296 , // 295 - fil - 0x464 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 296 , 296 , // 296 - fil-ph - 0x38 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 , 299 , 299 , // 297 - fo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 , 298 , 240 , // 298 - fo-dk - 0x438 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 , 299 , 299 , // 299 - fo-fo - 0xc , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 316 , 316 , // 300 - fr - 0x1c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x993248, 1 , 301 , 316 , // 301 - fr-029 - 0x80c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x15 , 1 , 302 , 302 , // 302 - fr-be - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xf5 , 1 , 303 , 240 , // 303 - fr-bf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x26 , 1 , 304 , 240 , // 304 - fr-bi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x1c , 1 , 305 , 240 , // 305 - fr-bj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9a55c4f, 1 , 306 , 240 , // 306 - fr-bl - 0xc0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x27 , 1 , 307 , 307 , // 307 - fr-ca - 0x240c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2c , 1 , 308 , 240 , // 308 - fr-cd - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x37 , 1 , 309 , 240 , // 309 - fr-cf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2b , 1 , 310 , 240 , // 310 - fr-cg - 0x100c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 311 , 311 , // 311 - fr-ch - 0x300c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x77 , 1 , 312 , 240 , // 312 - fr-ci - 0x2c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 , 313 , 240 , // 313 - fr-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x3e , 1 , 314 , 240 , // 314 - fr-dj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 315 , 240 , // 315 - fr-dz - 0x40c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 316 , 316 , // 316 - fr-fr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x57 , 1 , 317 , 240 , // 317 - fr-ga - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13d , 1 , 318 , 240 , // 318 - fr-gf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 , 319 , 240 , // 319 - fr-gn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x141 , 1 , 320 , 240 , // 320 - fr-gp - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x45 , 1 , 321 , 240 , // 321 - fr-gq - 0x3c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x67 , 1 , 322 , 240 , // 322 - fr-ht - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x32 , 1 , 323 , 240 , // 323 - fr-km - 0x140c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 324 , 324 , // 324 - fr-lu - 0x380c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9f , 1 , 325 , 240 , // 325 - fr-ma - 0x180c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9e , 1 , 326 , 326 , // 326 - fr-mc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x7bda, 1 , 327 , 240 , // 327 - fr-mf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x95 , 1 , 328 , 240 , // 328 - fr-mg - 0x340c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9d , 1 , 329 , 240 , // 329 - fr-ml - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14a , 1 , 330 , 240 , // 330 - fr-mq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 , 331 , 240 , // 331 - fr-mr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa0 , 1 , 332 , 240 , // 332 - fr-mu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14e , 1 , 333 , 240 , // 333 - fr-nc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xad , 1 , 334 , 240 , // 334 - fr-ne - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13e , 1 , 335 , 240 , // 335 - fr-pf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xce , 1 , 336 , 240 , // 336 - fr-pm - 0x200c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xc6 , 1 , 337 , 240 , // 337 - fr-re - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xcc , 1 , 338 , 240 , // 338 - fr-rw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd0 , 1 , 339 , 240 , // 339 - fr-sc - 0x280c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 340 , 240 , // 340 - fr-sn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xde , 1 , 341 , 240 , // 341 - fr-sy - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x29 , 1 , 342 , 240 , // 342 - fr-td - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xe8 , 1 , 343 , 240 , // 343 - fr-tg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xea , 1 , 344 , 240 , // 344 - fr-tn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xae , 1 , 345 , 240 , // 345 - fr-vu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x160 , 1 , 346 , 240 , // 346 - fr-wf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14b , 1 , 347 , 240 , // 347 - fr-yt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 349 , 240 , // 348 - fur - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 349 , 240 , // 349 - fur-it - 0x62 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 351 , 351 , // 350 - fy - 0x462 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 351 , 351 , // 351 - fy-nl - 0x3c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 353 , 353 , // 352 - ga - 0x83c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 353 , 353 , // 353 - ga-ie - 0x91 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 355 , 355 , // 354 - gd - 0x491 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 355 , 355 , // 355 - gd-gb - 0x56 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 357 , 357 , // 356 - gl - 0x456 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 357 , 357 , // 357 - gl-es - 0x74 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 359 , 359 , // 358 - gn - 0x474 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 359 , 359 , // 359 - gn-py - 0x84 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 361 , 240 , // 360 - gsw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 361 , 240 , // 361 - gsw-ch - 0x484 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 362 , 362 , // 362 - gsw-fr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x91 , 1 , 363 , 240 , // 363 - gsw-li - 0x47 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 365 , 143 , // 364 - gu - 0x447 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 365 , 143 , // 365 - gu-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 367 , 240 , // 366 - guz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 367 , 240 , // 367 - guz-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 , 369 , 240 , // 368 - gv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 , 369 , 240 , // 369 - gv-im - 0x68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 370 - ha - 0x7c68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 371 - ha-latn - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x59 , 1 , 372 , 240 , // 372 - ha-latn-gh - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xad , 1 , 373 , 240 , // 373 - ha-latn-ne - 0x468 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 374 - ha-latn-ng - 0x75 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 376 , 376 , // 375 - haw - 0x475 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 376 , 376 , // 376 - haw-us - 0xd , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 , 378 , 143 , // 377 - he - 0x40d , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 , 378 , 143 , // 378 - he-il - 0x39 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 380 , 143 , // 379 - hi - 0x439 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 380 , 143 , // 380 - hi-in - 0x1a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 , 383 , 383 , // 381 - hr - 0x101a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 382 , 382 , // 382 - hr-ba - 0x41a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 , 383 , 383 , // 383 - hr-hr - 0x2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 385 , 385 , // 384 - hsb - 0x42e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 385 , 385 , // 385 - hsb-de - 0xe , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 386 - hu - 0x40e , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 387 - hu-hu - 0x1040e, 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 388 - hu-hu_technl - 0x2b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 , 390 , 390 , // 389 - hy - 0x42b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 , 390 , 390 , // 390 - hy-am - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 , 393 , 240 , // 391 - ia - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 392 , 240 , // 392 - ia-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 , 393 , 240 , // 393 - ia-fr - 0x69 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 395 , 240 , // 394 - ibb - 0x469 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 395 , 240 , // 395 - ibb-ng - 0x21 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 397 , 397 , // 396 - id - 0x421 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 397 , 397 , // 397 - id-id - 0x70 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 399 , 399 , // 398 - ig - 0x470 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 399 , 399 , // 399 - ig-ng - 0x78 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 401 , 143 , // 400 - ii - 0x478 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 401 , 143 , // 401 - ii-cn - 0xf , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 , 403 , 403 , // 402 - is - 0x40f , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 , 403 , 403 , // 403 - is-is - 0x10 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 , 406 , 406 , // 404 - it - 0x810 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdf , 1 , 405 , 405 , // 405 - it-ch - 0x410 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 , 406 , 406 , // 406 - it-it - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0xd6 , 1 , 407 , 240 , // 407 - it-sm - 0x5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 408 - iu - 0x785d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 , 410 , 143 , // 409 - iu-cans - 0x45d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 , 410 , 143 , // 410 - iu-cans-ca - 0x7c5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 411 - iu-latn - 0x85d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 412 - iu-latn-ca - 0x11 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 413 - ja - 0x411 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 414 - ja-jp - 0x40411, 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 415 - ja-jp_radstr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 417 , 240 , // 416 - jgo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 417 , 240 , // 417 - jgo-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 419 , 240 , // 418 - jmc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 419 , 240 , // 419 - jmc-tz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 420 - jv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 422 , 424 , // 421 - jv-java - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 422 , 424 , // 422 - jv-java-id - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 423 - jv-latn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 424 - jv-latn-id - 0x37 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 425 - ka - 0x437 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 426 - ka-ge - 0x10437, 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 427 - ka-ge_modern - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 , 429 , 240 , // 428 - kab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 , 429 , 240 , // 429 - kab-dz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 431 , 240 , // 430 - kam - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 431 , 240 , // 431 - kam-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 433 , 240 , // 432 - kde - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 433 , 240 , // 433 - kde-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 , 435 , 240 , // 434 - kea - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 , 435 , 240 , // 435 - kea-cv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 437 , 240 , // 436 - khq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 437 , 240 , // 437 - khq-ml - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 439 , 240 , // 438 - ki - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 439 , 240 , // 439 - ki-ke - 0x3f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 , 441 , 441 , // 440 - kk - 0x43f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 , 441 , 441 , // 441 - kk-kz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 443 , 240 , // 442 - kkj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 443 , 240 , // 443 - kkj-cm - 0x6f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 , 445 , 445 , // 444 - kl - 0x46f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 , 445 , 445 , // 445 - kl-gl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 447 , 240 , // 446 - kln - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 447 , 240 , // 447 - kln-ke - 0x53 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 , 449 , 143 , // 448 - km - 0x453 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 , 449 , 143 , // 449 - km-kh - 0x4b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 451 , 143 , // 450 - kn - 0x44b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 451 , 143 , // 451 - kn-in - 0x12 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 , 454 , 454 , // 452 - ko - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x83 , 1 , 453 , 240 , // 453 - ko-kp - 0x412 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 , 454 , 454 , // 454 - ko-kr - 0x57 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 456 , 143 , // 455 - kok - 0x457 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 456 , 143 , // 456 - kok-in - 0x71 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 458 , 240 , // 457 - kr - 0x471 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 458 , 240 , // 458 - kr-ng - 0x60 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 459 - ks - 0x460 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 460 - ks-arab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 461 - ks-arab-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 463 , 187 , // 462 - ks-deva - 0x860 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 463 , 187 , // 463 - ks-deva-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 465 , 240 , // 464 - ksb - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 465 , 240 , // 465 - ksb-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 467 , 240 , // 466 - ksf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 467 , 240 , // 467 - ksf-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 469 , 240 , // 468 - ksh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 469 , 240 , // 469 - ksh-de - 0x92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 470 - ku - 0x7c92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 471 - ku-arab - 0x492 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 472 - ku-arab-iq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 0 , 473 , 240 , // 473 - ku-arab-ir - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 , 475 , 240 , // 474 - kw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 , 475 , 240 , // 475 - kw-gb - 0x40 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 , 477 , 477 , // 476 - ky - 0x440 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 , 477 , 477 , // 477 - ky-kg - 0x76 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 , 479 , 143 , // 478 - la - 0x476 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 , 479 , 143 , // 479 - la-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 481 , 240 , // 480 - lag - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 481 , 240 , // 481 - lag-tz - 0x6e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 483 , 483 , // 482 - lb - 0x46e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 483 , 483 , // 483 - lb-lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 485 , 240 , // 484 - lg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 485 , 240 , // 485 - lg-ug - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 487 , 240 , // 486 - lkt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 487 , 240 , // 487 - lkt-us - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 490 , 240 , // 488 - ln - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9 , 1 , 489 , 240 , // 489 - ln-ao - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 490 , 240 , // 490 - ln-cd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 491 , 240 , // 491 - ln-cf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2b , 1 , 492 , 240 , // 492 - ln-cg - 0x54 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 , 494 , 143 , // 493 - lo - 0x454 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 , 494 , 143 , // 494 - lo-la - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 497 , 240 , // 495 - lrc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x79 , 2 , 496 , 240 , // 496 - lrc-iq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 497 , 240 , // 497 - lrc-ir - 0x27 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 , 499 , 499 , // 498 - lt - 0x427 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 , 499 , 499 , // 499 - lt-lt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 501 , 240 , // 500 - lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 501 , 240 , // 501 - lu-cd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 503 , 240 , // 502 - luo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 503 , 240 , // 503 - luo-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 505 , 240 , // 504 - luy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 505 , 240 , // 505 - luy-ke - 0x26 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 , 507 , 507 , // 506 - lv - 0x426 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 , 507 , 507 , // 507 - lv-lv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 509 , 240 , // 508 - mas - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 509 , 240 , // 509 - mas-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 510 , 240 , // 510 - mas-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 512 , 240 , // 511 - mer - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 512 , 240 , // 512 - mer-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 , 514 , 240 , // 513 - mfe - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 , 514 , 240 , // 514 - mfe-mu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 , 516 , 240 , // 515 - mg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 , 516 , 240 , // 516 - mg-mg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 518 , 240 , // 517 - mgh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 518 , 240 , // 518 - mgh-mz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 520 , 240 , // 519 - mgo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 520 , 240 , // 520 - mgo-cm - 0x81 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 , 522 , 522 , // 521 - mi - 0x481 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 , 522 , 522 , // 522 - mi-nz - 0x2f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 , 524 , 524 , // 523 - mk - 0x42f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 , 524 , 524 , // 524 - mk-mk - 0x4c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 526 , 143 , // 525 - ml - 0x44c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 526 , 143 , // 526 - ml-in - 0x50 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 527 - mn - 0x7850 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 528 - mn-cyrl - 0x450 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 529 - mn-mn - 0x7c50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 531 , 531 , // 530 - mn-mong - 0x850 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 531 , 531 , // 531 - mn-mong-cn - 0xc50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9a , 1 , 532 , 532 , // 532 - mn-mong-mn - 0x58 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 534 , 187 , // 533 - mni - 0x458 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 534 , 187 , // 534 - mni-in - 0x7c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 536 , 240 , // 535 - moh - 0x47c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 536 , 240 , // 536 - moh-ca - 0x4e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 538 , 143 , // 537 - mr - 0x44e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 538 , 143 , // 538 - mr-in - 0x3e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 , 541 , 541 , // 539 - ms - 0x83e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x25 , 1 , 540 , 540 , // 540 - ms-bn - 0x43e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 , 541 , 541 , // 541 - ms-my - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd7 , 1 , 542 , 240 , // 542 - ms-sg - 0x3a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 , 544 , 544 , // 543 - mt - 0x43a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 , 544 , 544 , // 544 - mt-mt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 546 , 240 , // 545 - mua - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 546 , 240 , // 546 - mua-cm - 0x55 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 , 548 , 240 , // 547 - my - 0x455 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 , 548 , 240 , // 548 - my-mm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 550 , 240 , // 549 - mzn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 550 , 240 , // 550 - mzn-ir - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 , 552 , 240 , // 551 - naq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 , 552 , 240 , // 552 - naq-na - 0x7c14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 553 - nb - 0x414 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 554 - nb-no - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xdc , 1 , 555 , 240 , // 555 - nb-sj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 557 , 240 , // 556 - nd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 557 , 240 , // 557 - nd-zw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 559 , 240 , // 558 - nds - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 559 , 240 , // 559 - nds-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 , 560 , 240 , // 560 - nds-nl - 0x61 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 , 563 , 143 , // 561 - ne - 0x861 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 562 , 240 , // 562 - ne-in - 0x461 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 , 563 , 143 , // 563 - ne-np - 0x13 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 569 , 569 , // 564 - nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12e , 1 , 565 , 240 , // 565 - nl-aw - 0x813 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 , 566 , 566 , // 566 - nl-be - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d42, 1 , 567 , 240 , // 567 - nl-bq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x111 , 1 , 568 , 240 , // 568 - nl-cw - 0x413 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 569 , 569 , // 569 - nl-nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb5 , 1 , 570 , 240 , // 570 - nl-sr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 , 571 , 240 , // 571 - nl-sx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 573 , 240 , // 572 - nmg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 573 , 240 , // 573 - nmg-cm - 0x7814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 575 , 575 , // 574 - nn - 0x814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 575 , 575 , // 575 - nn-no - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 577 , 240 , // 576 - nnh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 577 , 240 , // 577 - nnh-cm - 0x14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 578 - no - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 , 580 , 143 , // 579 - nqo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 , 580 , 143 , // 580 - nqo-gn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 582 , 240 , // 581 - nr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 582 , 240 , // 582 - nr-za - 0x6c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 584 , 584 , // 583 - nso - 0x46c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 584 , 584 , // 584 - nso-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 , 586 , 240 , // 585 - nus - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 , 586 , 240 , // 586 - nus-ss - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 588 , 240 , // 587 - nyn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 588 , 240 , // 588 - nyn-ug - 0x82 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 590 , 590 , // 589 - oc - 0x482 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 590 , 590 , // 590 - oc-fr - 0x72 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 592 , 240 , // 591 - om - 0x472 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 592 , 240 , // 592 - om-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 593 , 240 , // 593 - om-ke - 0x48 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 595 , 143 , // 594 - or - 0x448 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 595 , 143 , // 595 - or-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 597 , 240 , // 596 - os - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 597 , 240 , // 597 - os-ge - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 598 , 240 , // 598 - os-ru - 0x46 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 602 , 143 , // 599 - pa - 0x7c46 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 601 , 143 , // 600 - pa-arab - 0x846 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 601 , 143 , // 601 - pa-arab-pk - 0x446 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 602 , 143 , // 602 - pa-in - 0x79 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 604 , 145 , // 603 - pap - 0x479 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 604 , 145 , // 604 - pap-029 - 0x15 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 , 606 , 606 , // 605 - pl - 0x415 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 , 606 , 606 , // 606 - pl-pl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 608 , 240 , // 607 - prg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 608 , 240 , // 608 - prg-001 - 0x8c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 , 610 , 143 , // 609 - prs - 0x48c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 , 610 , 143 , // 610 - prs-af - 0x63 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 612 , 143 , // 611 - ps - 0x463 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 612 , 143 , // 612 - ps-af - 0x16 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 , 615 , 615 , // 613 - pt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9 , 1 , 614 , 240 , // 614 - pt-ao - 0x416 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 , 615 , 615 , // 615 - pt-br - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 616 , 240 , // 616 - pt-ch - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x39 , 1 , 617 , 240 , // 617 - pt-cv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x45 , 1 , 618 , 240 , // 618 - pt-gq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc4 , 1 , 619 , 240 , // 619 - pt-gw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x93 , 1 , 620 , 240 , // 620 - pt-lu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 , 621 , 240 , // 621 - pt-mo - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa8 , 1 , 622 , 240 , // 622 - pt-mz - 0x816 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc1 , 1 , 623 , 623 , // 623 - pt-pt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe9 , 1 , 624 , 240 , // 624 - pt-st - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f60e7, 1 , 625 , 240 , // 625 - pt-tl - 0x901 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 , 626 , 190 , // 626 - qps-latn-x-sh - 0x501 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xf4 , 1 , 627 , 627 , // 627 - qps-ploc - 0x5fe , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 628 , 628 , // 628 - qps-ploca - 0x9ff , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 629 , 143 , // 629 - qps-plocm - 0x86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 630 - quc - 0x7c86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 631 - quc-latn - 0x486 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 632 - quc-latn-gt - 0x6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 634 , 634 , // 633 - quz - 0x46b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 634 , 634 , // 634 - quz-bo - 0x86b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 , 635 , 635 , // 635 - quz-ec - 0xc6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 , 636 , 636 , // 636 - quz-pe - 0x17 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 638 , 638 , // 637 - rm - 0x417 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 638 , 638 , // 638 - rm-ch - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 640 , 240 , // 639 - rn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 640 , 240 , // 640 - rn-bi - 0x18 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 , 643 , 643 , // 641 - ro - 0x818 , 0x4e2 , 0x354 , 0x2 , 0x1f4 , 0x98 , 1 , 642 , 240 , // 642 - ro-md - 0x418 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 , 643 , 643 , // 643 - ro-ro - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 645 , 240 , // 644 - rof - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 645 , 240 , // 645 - rof-tz - 0x19 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 651 , 651 , // 646 - ru - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x1d , 1 , 647 , 240 , // 647 - ru-by - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x82 , 1 , 648 , 240 , // 648 - ru-kg - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x89 , 1 , 649 , 240 , // 649 - ru-kz - 0x819 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x98 , 1 , 650 , 240 , // 650 - ru-md - 0x419 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 651 , 651 , // 651 - ru-ru - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0xf1 , 1 , 652 , 240 , // 652 - ru-ua - 0x87 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 , 654 , 654 , // 653 - rw - 0x487 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 , 654 , 654 , // 654 - rw-rw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 656 , 240 , // 655 - rwk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 656 , 240 , // 656 - rwk-tz - 0x4f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 658 , 143 , // 657 - sa - 0x44f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 658 , 143 , // 658 - sa-in - 0x85 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 660 , 660 , // 659 - sah - 0x485 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 660 , 660 , // 660 - sah-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 662 , 240 , // 661 - saq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 662 , 240 , // 662 - saq-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 664 , 240 , // 663 - sbp - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 664 , 240 , // 664 - sbp-tz - 0x59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 665 - sd - 0x7c59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 666 - sd-arab - 0x859 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 667 - sd-arab-pk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 669 , 187 , // 668 - sd-deva - 0x459 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 669 , 187 , // 669 - sd-deva-in - 0x3b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 672 , 672 , // 670 - se - 0xc3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 671 , 671 , // 671 - se-fi - 0x43b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 672 , 672 , // 672 - se-no - 0x83b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 673 , 673 , // 673 - se-se - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 675 , 240 , // 674 - seh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 675 , 240 , // 675 - seh-mz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 677 , 240 , // 676 - ses - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 677 , 240 , // 677 - ses-ml - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 679 , 240 , // 678 - sg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 679 , 240 , // 679 - sg-cf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 680 - shi - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 682 , 240 , // 681 - shi-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 682 , 240 , // 682 - shi-latn-ma - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 683 - shi-tfng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 684 - shi-tfng-ma - 0x5b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 686 , 143 , // 685 - si - 0x45b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 686 , 143 , // 686 - si-lk - 0x1b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 , 688 , 688 , // 687 - sk - 0x41b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 , 688 , 688 , // 688 - sk-sk - 0x24 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 , 690 , 690 , // 689 - sl - 0x424 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 , 690 , 690 , // 690 - sl-si - 0x783b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 693 , 693 , // 691 - sma - 0x183b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 692 , 692 , // 692 - sma-no - 0x1c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 693 , 693 , // 693 - sma-se - 0x7c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 696 , 696 , // 694 - smj - 0x103b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 695 , 695 , // 695 - smj-no - 0x143b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 696 , 696 , // 696 - smj-se - 0x703b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 698 , 698 , // 697 - smn - 0x243b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 698 , 698 , // 698 - smn-fi - 0x743b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 700 , 700 , // 699 - sms - 0x203b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 700 , 700 , // 700 - sms-fi - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 701 - sn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 702 - sn-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 703 - sn-latn-zw - 0x77 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 , 708 , 240 , // 704 - so - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 , 705 , 240 , // 705 - so-dj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 706 , 240 , // 706 - so-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 707 , 240 , // 707 - so-ke - 0x477 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 , 708 , 240 , // 708 - so-so - 0x1c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 , 710 , 710 , // 709 - sq - 0x41c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 , 710 , 710 , // 710 - sq-al - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x4ca2, 1 , 711 , 240 , // 711 - sq-mk - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x974941, 1 , 712 , 240 , // 712 - sq-xk - 0x7c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 713 - sr - 0x6c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 , 718 , 718 , // 714 - sr-cyrl - 0x1c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x19 , 1 , 715 , 715 , // 715 - sr-cyrl-ba - 0xc1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10d , 1 , 716 , 716 , // 716 - sr-cyrl-cs - 0x301a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10e , 1 , 717 , 717 , // 717 - sr-cyrl-me - 0x281a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 , 718 , 718 , // 718 - sr-cyrl-rs - 0x1000 , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x974941, 1 , 719 , 240 , // 719 - sr-cyrl-xk - 0x701a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 720 - sr-latn - 0x181a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 721 , 721 , // 721 - sr-latn-ba - 0x81a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10d , 1 , 722 , 722 , // 722 - sr-latn-cs - 0x2c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10e , 1 , 723 , 723 , // 723 - sr-latn-me - 0x241a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 724 - sr-latn-rs - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x974941, 1 , 725 , 240 , // 725 - sr-latn-xk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 728 , 240 , // 726 - ss - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x104 , 1 , 727 , 240 , // 727 - ss-sz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 728 , 240 , // 728 - ss-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 730 , 240 , // 729 - ssy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 730 , 240 , // 730 - ssy-er - 0x30 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 733 , 240 , // 731 - st - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x92 , 1 , 732 , 240 , // 732 - st-ls - 0x430 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 733 , 240 , // 733 - st-za - 0x1d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 737 , 737 , // 734 - sv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x9906f5, 1 , 735 , 240 , // 735 - sv-ax - 0x81d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 736 , 736 , // 736 - sv-fi - 0x41d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 737 , 737 , // 737 - sv-se - 0x41 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 , 740 , 740 , // 738 - sw - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x2c , 1 , 739 , 740 , // 739 - sw-cd - 0x441 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 , 740 , 740 , // 740 - sw-ke - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xef , 1 , 741 , 240 , // 741 - sw-tz - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xf0 , 1 , 742 , 240 , // 742 - sw-ug - 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 , 744 , 240 , // 743 - swc - 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 , 744 , 240 , // 744 - swc-cd - 0x5a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 , 746 , 143 , // 745 - syr - 0x45a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 , 746 , 143 , // 746 - syr-sy - 0x49 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 748 , 143 , // 747 - ta - 0x449 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 748 , 143 , // 748 - ta-in - 0x849 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 749 , 143 , // 749 - ta-lk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa7 , 1 , 750 , 240 , // 750 - ta-my - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd7 , 1 , 751 , 240 , // 751 - ta-sg - 0x4a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 753 , 143 , // 752 - te - 0x44a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 753 , 143 , // 753 - te-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 756 , 240 , // 754 - teo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 755 , 240 , // 755 - teo-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 756 , 240 , // 756 - teo-ug - 0x28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 757 - tg - 0x7c28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 758 - tg-cyrl - 0x428 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 759 - tg-cyrl-tj - 0x1e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 , 761 , 143 , // 760 - th - 0x41e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 , 761 , 143 , // 761 - th-th - 0x73 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 763 , 143 , // 762 - ti - 0x873 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 763 , 143 , // 763 - ti-er - 0x473 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 764 , 143 , // 764 - ti-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 766 , 240 , // 765 - tig - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 766 , 240 , // 766 - tig-er - 0x42 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 , 768 , 768 , // 767 - tk - 0x442 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 , 768 , 768 , // 768 - tk-tm - 0x32 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 771 , 771 , // 769 - tn - 0x832 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 , 770 , 770 , // 770 - tn-bw - 0x432 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 771 , 771 , // 771 - tn-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 , 773 , 240 , // 772 - to - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 , 773 , 240 , // 773 - to-to - 0x1f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 , 776 , 776 , // 774 - tr - 0x1000 , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x3b , 1 , 775 , 240 , // 775 - tr-cy - 0x41f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 , 776 , 776 , // 776 - tr-tr - 0x31 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 778 , 240 , // 777 - ts - 0x431 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 778 , 240 , // 778 - ts-za - 0x44 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 780 , 780 , // 779 - tt - 0x444 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 780 , 780 , // 780 - tt-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 782 , 240 , // 781 - twq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 782 , 240 , // 782 - twq-ne - 0x5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 783 - tzm - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 785 , 240 , // 784 - tzm-arab - 0x45f , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 785 , 240 , // 785 - tzm-arab-ma - 0x7c5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 786 - tzm-latn - 0x85f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 787 - tzm-latn-dz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 788 , 240 , // 788 - tzm-latn-ma - 0x785f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 790 , 316 , // 789 - tzm-tfng - 0x105f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 790 , 316 , // 790 - tzm-tfng-ma - 0x80 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 , 792 , 143 , // 791 - ug - 0x480 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 , 792 , 143 , // 792 - ug-cn - 0x22 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 , 794 , 794 , // 793 - uk - 0x422 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 , 794 , 794 , // 794 - uk-ua - 0x20 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 , 797 , 143 , // 795 - ur - 0x820 , 0x4e8 , 0x2d0 , 0x2 , 0x1f4 , 0x71 , 2 , 796 , 240 , // 796 - ur-in - 0x420 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 , 797 , 143 , // 797 - ur-pk - 0x43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 798 - uz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 800 , 240 , // 799 - uz-arab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 800 , 240 , // 800 - uz-arab-af - 0x7843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 , 802 , 802 , // 801 - uz-cyrl - 0x843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 , 802 , 802 , // 802 - uz-cyrl-uz - 0x7c43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 803 - uz-latn - 0x443 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 804 - uz-latn-uz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 805 - vai - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 807 , 240 , // 806 - vai-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 807 , 240 , // 807 - vai-latn-lr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 808 - vai-vaii - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 809 - vai-vaii-lr - 0x33 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 811 , 240 , // 810 - ve - 0x433 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 811 , 240 , // 811 - ve-za - 0x2a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 , 813 , 143 , // 812 - vi - 0x42a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 , 813 , 143 , // 813 - vi-vn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 815 , 240 , // 814 - vo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 815 , 240 , // 815 - vo-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 817 , 240 , // 816 - vun - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 817 , 240 , // 817 - vun-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 819 , 240 , // 818 - wae - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 819 , 240 , // 819 - wae-ch - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 821 , 240 , // 820 - wal - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 821 , 240 , // 821 - wal-et - 0x88 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 823 , 823 , // 822 - wo - 0x488 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 823 , 823 , // 823 - wo-sn - 0x1007f, 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , -1 , -1 , // 824 - x-iv_mathan - 0x34 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 826 , 826 , // 825 - xh - 0x434 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 826 , 826 , // 826 - xh-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 828 , 240 , // 827 - xog - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 828 , 240 , // 828 - xog-ug - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 830 , 240 , // 829 - yav - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 830 , 240 , // 830 - yav-cm - 0x3d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 832 , 240 , // 831 - yi - 0x43d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 832 , 240 , // 832 - yi-001 - 0x6a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 835 , 835 , // 833 - yo - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x1c , 1 , 834 , 240 , // 834 - yo-bj - 0x46a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 835 , 835 , // 835 - yo-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 , 837 , 240 , // 836 - yue - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 , 837 , 240 , // 837 - yue-hk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 838 - zgh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 839 - zgh-tfng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 840 - zgh-tfng-ma - 0x7804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 841 - zh - 0x4 , 0x3a8 , 0x3a8 , 0x0 , 0x1f4 , 0x2d , 1 , 844 , 844 , // 842 - zh-chs - 0x7c04 , 0x3b6 , 0x3b6 , 0x0 , 0x1f4 , 0x68 , 1 , 851 , 851 , // 843 - zh-cht - 0x804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 844 - zh-cn - 0x50804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 845 - zh-cn_phoneb - 0x20804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 846 - zh-cn_stroke - 0x4 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 847 - zh-hans - 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x68 , 1 , 848 , 240 , // 848 - zh-hans-hk - 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x97 , 1 , 849 , 240 , // 849 - zh-hans-mo - 0x7c04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 850 - zh-hant - 0xc04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 851 - zh-hk - 0x40c04, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 852 - zh-hk_radstr - 0x1404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 853 - zh-mo - 0x41404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 854 - zh-mo_radstr - 0x21404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 855 - zh-mo_stroke - 0x1004 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 856 - zh-sg - 0x51004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 857 - zh-sg_phoneb - 0x21004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 858 - zh-sg_stroke - 0x404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 859 - zh-tw - 0x30404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 860 - zh-tw_pronun - 0x40404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 861 - zh-tw_radstr - 0x35 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 863 , 863 , // 862 - zu - 0x435 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 863 , 863 , // 863 - zu-za + // Lcid, Ansi CP, Oem CP, MAC CP, EBCDIC CP, Geo Id, digit substitution | ListSeparator, Specific culture index, Console locale index // index - locale name + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 3 , 240 , // 0 - aa + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 | SemicolonSep , 1 , 240 , // 1 - aa-dj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 2 , 240 , // 2 - aa-er + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 3 , 240 , // 3 - aa-et + 0x36 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 6 , 6 , // 4 - af + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 | SemicolonSep , 5 , 240 , // 5 - af-na + 0x436 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 6 , 6 , // 6 - af-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 8 , 240 , // 7 - agq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 8 , 240 , // 8 - agq-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 10 , 240 , // 9 - ak + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 10 , 240 , // 10 - ak-gh + 0x5e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 12 , 143 , // 11 - am + 0x45e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 12 , 143 , // 12 - am-et + 0x1 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 33 , 143 , // 13 - ar + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x989e, 0 | SemicolonSep , 14 , 240 , // 14 - ar-001 + 0x3801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xe0 , 0 | SemicolonSep , 15 , 143 , // 15 - ar-ae + 0x3c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x11 , 0 | SemicolonSep , 16 , 143 , // 16 - ar-bh + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3e , 0 | SemicolonSep , 17 , 240 , // 17 - ar-dj + 0x1401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x4 , 1 | SemicolonSep , 18 , 300 , // 18 - ar-dz + 0xc01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x43 , 0 | SemicolonSep , 19 , 143 , // 19 - ar-eg + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x47 , 0 | SemicolonSep , 20 , 240 , // 20 - ar-er + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x75 , 0 | SemicolonSep , 21 , 240 , // 21 - ar-il + 0x801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | SemicolonSep , 22 , 143 , // 22 - ar-iq + 0x2c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x7e , 0 | SemicolonSep , 23 , 143 , // 23 - ar-jo + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x32 , 0 | SemicolonSep , 24 , 240 , // 24 - ar-km + 0x3401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x88 , 0 | SemicolonSep , 25 , 143 , // 25 - ar-kw + 0x3001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x8b , 0 | SemicolonSep , 26 , 143 , // 26 - ar-lb + 0x1001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x94 , 1 | SemicolonSep , 27 , 143 , // 27 - ar-ly + 0x1801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 28 , 300 , // 28 - ar-ma + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa2 , 0 | SemicolonSep , 29 , 240 , // 29 - ar-mr + 0x2001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa4 , 0 | SemicolonSep , 30 , 143 , // 30 - ar-om + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xb8 , 0 | SemicolonSep , 31 , 240 , // 31 - ar-ps + 0x4001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xc5 , 0 | SemicolonSep , 32 , 143 , // 32 - ar-qa + 0x401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 33 , 143 , // 33 - ar-sa + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xdb , 0 | SemicolonSep , 34 , 240 , // 34 - ar-sd + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xd8 , 0 | SemicolonSep , 35 , 240 , // 35 - ar-so + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x114 , 0 | SemicolonSep , 36 , 240 , // 36 - ar-ss + 0x2801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xde , 0 | SemicolonSep , 37 , 143 , // 37 - ar-sy + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x29 , 0 | SemicolonSep , 38 , 240 , // 38 - ar-td + 0x1c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xea , 1 | SemicolonSep , 39 , 300 , // 39 - ar-tn + 0x2401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x105 , 0 | SemicolonSep , 40 , 143 , // 40 - ar-ye + 0x7a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | CommaSep , 42 , 42 , // 41 - arn + 0x47a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | CommaSep , 42 , 42 , // 42 - arn-cl + 0x4d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 44 , 143 , // 43 - as + 0x44d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 44 , 143 , // 44 - as-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 46 , 240 , // 45 - asa + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 46 , 240 , // 46 - asa-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 48 , 240 , // 47 - ast + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 48 , 240 , // 48 - ast-es + 0x2c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 49 - az + 0x742c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 | SemicolonSep , 51 , 51 , // 50 - az-cyrl + 0x82c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 | SemicolonSep , 51 , 51 , // 51 - az-cyrl-az + 0x782c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 52 - az-latn + 0x42c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 53 - az-latn-az + 0x6d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 55 , 55 , // 54 - ba + 0x46d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 55 , 55 , // 55 - ba-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 57 , 240 , // 56 - bas + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 57 , 240 , // 57 - bas-cm + 0x23 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 | SemicolonSep , 59 , 59 , // 58 - be + 0x423 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 | SemicolonSep , 59 , 59 , // 59 - be-by + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 | SemicolonSep , 61 , 240 , // 60 - bem + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 | SemicolonSep , 61 , 240 , // 61 - bem-zm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 63 , 240 , // 62 - bez + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 63 , 240 , // 63 - bez-tz + 0x2 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 | SemicolonSep , 65 , 65 , // 64 - bg + 0x402 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 | SemicolonSep , 65 , 65 , // 65 - bg-bg + 0x66 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 67 , 240 , // 66 - bin + 0x466 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 67 , 240 , // 67 - bin-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 68 - bm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 69 - bm-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 70 - bm-latn-ml + 0x45 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 | CommaSep , 72 , 143 , // 71 - bn + 0x845 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 | CommaSep , 72 , 143 , // 72 - bn-bd + 0x445 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 73 , 143 , // 73 - bn-in + 0x51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 75 , 143 , // 74 - bo + 0x451 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 75 , 143 , // 75 - bo-cn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 76 , 240 , // 76 - bo-in + 0x7e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 78 , 78 , // 77 - br + 0x47e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 78 , 78 , // 78 - br-fr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 80 , 240 , // 79 - brx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 80 , 240 , // 80 - brx-in + 0x781a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 81 - bs + 0x641a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 83 , 83 , // 82 - bs-cyrl + 0x201a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 83 , 83 , // 83 - bs-cyrl-ba + 0x681a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 84 - bs-latn + 0x141a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 85 - bs-latn-ba + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 87 , 240 , // 86 - byn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 87 , 240 , // 87 - byn-er + 0x3 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 90 , 90 , // 88 - ca + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x8 , 1 | SemicolonSep , 89 , 240 , // 89 - ca-ad + 0x403 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 90 , 90 , // 90 - ca-es + 0x803 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 91 , 90 , // 91 - ca-es-valencia + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 92 , 240 , // 92 - ca-fr + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 93 , 240 , // 93 - ca-it + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 95 , 240 , // 94 - ce + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 95 , 240 , // 95 - ce-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 97 , 240 , // 96 - cgg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 97 , 240 , // 97 - cgg-ug + 0x5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 98 - chr + 0x7c5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 99 - chr-cher + 0x45c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 100 - chr-cher-us + 0x83 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 102 , 102 , // 101 - co + 0x483 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 102 , 102 , // 102 - co-fr + 0x5 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 | SemicolonSep , 104 , 104 , // 103 - cs + 0x405 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 | SemicolonSep , 104 , 104 , // 104 - cs-cz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 106 , 240 , // 105 - cu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 106 , 240 , // 106 - cu-ru + 0x52 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 108 , 108 , // 107 - cy + 0x452 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 108 , 108 , // 108 - cy-gb + 0x6 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 | SemicolonSep , 110 , 110 , // 109 - da + 0x406 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 | SemicolonSep , 110 , 110 , // 110 - da-dk + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x5d , 1 | SemicolonSep , 111 , 240 , // 111 - da-gl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 113 , 240 , // 112 - dav + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 113 , 240 , // 113 - dav-ke + 0x7 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 114 - de + 0xc07 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xe , 1 | SemicolonSep , 115 , 115 , // 115 - de-at + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x15 , 1 | SemicolonSep , 116 , 240 , // 116 - de-be + 0x807 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 117 , 117 , // 117 - de-ch + 0x407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 118 - de-de + 0x10407, 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 119 - de-de_phoneb + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 120 , 240 , // 120 - de-it + 0x1407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x91 , 1 | SemicolonSep , 121 , 121 , // 121 - de-li + 0x1007 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x93 , 1 | SemicolonSep , 122 , 122 , // 122 - de-lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 124 , 240 , // 123 - dje + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 124 , 240 , // 124 - dje-ne + 0x7c2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 126 , 126 , // 125 - dsb + 0x82e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 126 , 126 , // 126 - dsb-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 128 , 240 , // 127 - dua + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 128 , 240 , // 128 - dua-cm + 0x65 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 | ArabicCommaSep , 130 , 143 , // 129 - dv + 0x465 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 | ArabicCommaSep , 130 , 143 , // 130 - dv-mv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 | SemicolonSep , 132 , 240 , // 131 - dyo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 | SemicolonSep , 132 , 240 , // 132 - dyo-sn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 | SemicolonSep , 134 , 240 , // 133 - dz + 0xc51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 | SemicolonSep , 134 , 240 , // 134 - dz-bt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 136 , 240 , // 135 - ebu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 136 , 240 , // 136 - ebu-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 138 , 240 , // 137 - ee + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 138 , 240 , // 138 - ee-gh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe8 , 1 | SemicolonSep , 139 , 240 , // 139 - ee-tg + 0x8 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 | SemicolonSep , 142 , 142 , // 140 - el + 0x1000 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x3b , 1 | SemicolonSep , 141 , 240 , // 141 - el-cy + 0x408 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 | SemicolonSep , 142 , 142 , // 142 - el-gr + 0x9 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , 240 , 240 , // 143 - en + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x989e, 1 | CommaSep , 144 , 240 , // 144 - en-001 + 0x2409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 145 , 145 , // 145 - en-029 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x292d, 1 | CommaSep , 146 , 240 , // 146 - en-150 + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x2 , 1 | CommaSep , 147 , 240 , // 147 - en-ag + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12c , 1 | CommaSep , 148 , 240 , // 148 - en-ai + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa , 1 | CommaSep , 149 , 240 , // 149 - en-as + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe , 1 | CommaSep , 150 , 240 , // 150 - en-at + 0xc09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc , 1 | CommaSep , 151 , 151 , // 151 - en-au + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12 , 1 | CommaSep , 152 , 240 , // 152 - en-bb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 | CommaSep , 153 , 240 , // 153 - en-be + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | CommaSep , 154 , 240 , // 154 - en-bi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14 , 1 | CommaSep , 155 , 240 , // 155 - en-bm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x16 , 1 | CommaSep , 156 , 240 , // 156 - en-bs + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 | CommaSep , 157 , 240 , // 157 - en-bw + 0x2809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x18 , 1 | CommaSep , 158 , 158 , // 158 - en-bz + 0x1009 , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 159 , 159 , // 159 - en-ca + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x137 , 1 | CommaSep , 160 , 240 , // 160 - en-cc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | CommaSep , 161 , 240 , // 161 - en-ch + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x138 , 1 | CommaSep , 162 , 240 , // 162 - en-ck + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x31 , 1 | CommaSep , 163 , 240 , // 163 - en-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x135 , 1 | CommaSep , 164 , 240 , // 164 - en-cx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b , 1 | CommaSep , 165 , 240 , // 165 - en-cy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | CommaSep , 166 , 240 , // 166 - en-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 | CommaSep , 167 , 240 , // 167 - en-dk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3f , 1 | CommaSep , 168 , 240 , // 168 - en-dm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x47 , 1 | CommaSep , 169 , 240 , // 169 - en-er + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4d , 1 | CommaSep , 170 , 240 , // 170 - en-fi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x4e , 1 | CommaSep , 171 , 240 , // 171 - en-fj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13b , 1 | CommaSep , 172 , 240 , // 172 - en-fk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x50 , 1 | CommaSep , 173 , 240 , // 173 - en-fm + 0x809 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | CommaSep , 174 , 174 , // 174 - en-gb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5b , 1 | CommaSep , 175 , 240 , // 175 - en-gd + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x144 , 1 | CommaSep , 176 , 240 , // 176 - en-gg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x59 , 1 | CommaSep , 177 , 240 , // 177 - en-gh + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5a , 1 | CommaSep , 178 , 240 , // 178 - en-gi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x56 , 1 | CommaSep , 179 , 240 , // 179 - en-gm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x142 , 1 | CommaSep , 180 , 240 , // 180 - en-gu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x65 , 1 | CommaSep , 181 , 240 , // 181 - en-gy + 0x3c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x68 , 1 | CommaSep , 182 , 240 , // 182 - en-hk + 0x3809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 183 , 240 , // 183 - en-id + 0x1809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | CommaSep , 184 , 184 , // 184 - en-ie + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x75 , 1 | CommaSep , 185 , 240 , // 185 - en-il + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3b16, 1 | CommaSep , 186 , 240 , // 186 - en-im + 0x4009 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x71 , 1 | CommaSep , 187 , 187 , // 187 - en-in + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x72 , 1 | CommaSep , 188 , 240 , // 188 - en-io + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x148 , 1 | CommaSep , 189 , 240 , // 189 - en-je + 0x2009 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 | CommaSep , 190 , 190 , // 190 - en-jm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x81 , 1 | CommaSep , 191 , 240 , // 191 - en-ke + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x85 , 1 | CommaSep , 192 , 240 , // 192 - en-ki + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcf , 1 | CommaSep , 193 , 240 , // 193 - en-kn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x133 , 1 | CommaSep , 194 , 240 , // 194 - en-ky + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xda , 1 | CommaSep , 195 , 240 , // 195 - en-lc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x8e , 1 | CommaSep , 196 , 240 , // 196 - en-lr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x92 , 1 | CommaSep , 197 , 240 , // 197 - en-ls + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x95 , 1 | CommaSep , 198 , 240 , // 198 - en-mg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc7 , 1 | CommaSep , 199 , 240 , // 199 - en-mh + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 | CommaSep , 200 , 240 , // 200 - en-mo + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x151 , 1 | CommaSep , 201 , 240 , // 201 - en-mp + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14c , 1 | CommaSep , 202 , 240 , // 202 - en-ms + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa3 , 1 | CommaSep , 203 , 240 , // 203 - en-mt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa0 , 1 | CommaSep , 204 , 240 , // 204 - en-mu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9c , 1 | CommaSep , 205 , 240 , // 205 - en-mw + 0x4409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xa7 , 1 | CommaSep , 206 , 206 , // 206 - en-my + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 | CommaSep , 207 , 240 , // 207 - en-na + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x150 , 1 | CommaSep , 208 , 240 , // 208 - en-nf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | CommaSep , 209 , 240 , // 209 - en-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 | CommaSep , 210 , 240 , // 210 - en-nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb4 , 1 | CommaSep , 211 , 240 , // 211 - en-nr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14f , 1 | CommaSep , 212 , 240 , // 212 - en-nu + 0x1409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb7 , 1 | CommaSep , 213 , 213 , // 213 - en-nz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc2 , 1 | CommaSep , 214 , 240 , // 214 - en-pg + 0x3409 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | CommaSep , 215 , 215 , // 215 - en-ph + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xbe , 1 | CommaSep , 216 , 240 , // 216 - en-pk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x153 , 1 | CommaSep , 217 , 240 , // 217 - en-pn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xca , 1 | CommaSep , 218 , 240 , // 218 - en-pr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc3 , 1 | CommaSep , 219 , 240 , // 219 - en-pw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcc , 1 | CommaSep , 220 , 240 , // 220 - en-rw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x1e , 1 | CommaSep , 221 , 240 , // 221 - en-sb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd0 , 1 | CommaSep , 222 , 240 , // 222 - en-sc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdb , 1 | CommaSep , 223 , 240 , // 223 - en-sd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdd , 1 | CommaSep , 224 , 240 , // 224 - en-se + 0x4809 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xd7 , 1 | CommaSep , 225 , 225 , // 225 - en-sg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x157 , 1 | CommaSep , 226 , 240 , // 226 - en-sh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd4 , 1 | CommaSep , 227 , 240 , // 227 - en-si + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd5 , 1 | CommaSep , 228 , 240 , // 228 - en-sl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x114 , 1 | CommaSep , 229 , 240 , // 229 - en-ss + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 | CommaSep , 230 , 240 , // 230 - en-sx + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x104 , 1 | CommaSep , 231 , 240 , // 231 - en-sz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15d , 1 | CommaSep , 232 , 240 , // 232 - en-tc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15b , 1 | CommaSep , 233 , 240 , // 233 - en-tk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe7 , 1 | CommaSep , 234 , 240 , // 234 - en-to + 0x2c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe1 , 1 | CommaSep , 235 , 235 , // 235 - en-tt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xec , 1 | CommaSep , 236 , 240 , // 236 - en-tv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xef , 1 | CommaSep , 237 , 240 , // 237 - en-tz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf0 , 1 | CommaSep , 238 , 240 , // 238 - en-ug + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d40,1 | CommaSep , 239 , 240 , // 239 - en-um + 0x409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , 240 , 240 , // 240 - en-us + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf8 , 1 | CommaSep , 241 , 240 , // 241 - en-vc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15f , 1 | CommaSep , 242 , 240 , // 242 - en-vg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfc , 1 | CommaSep , 243 , 240 , // 243 - en-vi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xae , 1 | CommaSep , 244 , 240 , // 244 - en-vu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x103 , 1 | CommaSep , 245 , 240 , // 245 - en-ws + 0x1c09 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xd1 , 1 | CommaSep , 246 , 246 , // 246 - en-za + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x107 , 1 | CommaSep , 247 , 240 , // 247 - en-zm + 0x3009 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x108 , 1 | CommaSep , 248 , 248 , // 248 - en-zw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 250 , 240 , // 249 - eo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 250 , 240 , // 250 - eo-001 + 0xa , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 262 , 262 , // 251 - es + 0x580a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x9a55d41, 1 | SemicolonSep , 252 , 240 , // 252 - es-419 + 0x2c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb , 1 | SemicolonSep , 253 , 253 , // 253 - es-ar + 0x400a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | SemicolonSep , 254 , 254 , // 254 - es-bo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x20 , 1 | SemicolonSep , 255 , 240 , // 255 - es-br + 0x340a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | SemicolonSep , 256 , 256 , // 256 - es-cl + 0x240a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x33 , 1 | SemicolonSep , 257 , 257 , // 257 - es-co + 0x140a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x36 , 1 | SemicolonSep , 258 , 258 , // 258 - es-cr + 0x5c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x38 , 1 | SemicolonSep , 259 , 240 , // 259 - es-cu + 0x1c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x41 , 1 | SemicolonSep , 260 , 260 , // 260 - es-do + 0x300a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 | SemicolonSep , 261 , 261 , // 261 - es-ec + 0xc0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 262 , 262 , // 262 - es-es + 0x40a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 263 , 263 , // 263 - es-es_tradnl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x45 , 1 | SemicolonSep , 264 , 240 , // 264 - es-gq + 0x100a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | SemicolonSep , 265 , 265 , // 265 - es-gt + 0x480a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x6a , 1 | SemicolonSep , 266 , 266 , // 266 - es-hn + 0x80a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xa6 , 1 | CommaSep , 267 , 267 , // 267 - es-mx + 0x4c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb6 , 1 | SemicolonSep , 268 , 268 , // 268 - es-ni + 0x180a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc0 , 1 | SemicolonSep , 269 , 269 , // 269 - es-pa + 0x280a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 | SemicolonSep , 270 , 270 , // 270 - es-pe + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc9 , 1 | SemicolonSep , 271 , 240 , // 271 - es-ph + 0x500a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xca , 1 | SemicolonSep , 272 , 272 , // 272 - es-pr + 0x3c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | SemicolonSep , 273 , 273 , // 273 - es-py + 0x440a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x48 , 1 | SemicolonSep , 274 , 274 , // 274 - es-sv + 0x540a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf4 , 1 | CommaSep , 275 , 275 , // 275 - es-us + 0x380a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf6 , 1 | SemicolonSep , 276 , 276 , // 276 - es-uy + 0x200a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf9 , 1 | SemicolonSep , 277 , 277 , // 277 - es-ve + 0x25 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 | SemicolonSep , 279 , 279 , // 278 - et + 0x425 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 | SemicolonSep , 279 , 279 , // 279 - et-ee + 0x2d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 281 , 240 , // 280 - eu + 0x42d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 281 , 240 , // 281 - eu-es + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 283 , 240 , // 282 - ewo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 283 , 240 , // 283 - ewo-cm + 0x29 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 | ArabicSemicolonSep, 285 , 143 , // 284 - fa + 0x429 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 | ArabicSemicolonSep, 285 , 143 , // 285 - fa-ir + 0x67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 286 - ff + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 | SemicolonSep , 287 , 240 , // 287 - ff-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 | SemicolonSep , 288 , 240 , // 288 - ff-gn + 0x7c67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 289 - ff-latn + 0x867 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 290 - ff-latn-sn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 | SemicolonSep , 291 , 240 , // 291 - ff-mr + 0x467 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xaf , 1 | SemicolonSep , 292 , 240 , // 292 - ff-ng + 0xb , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 294 , 294 , // 293 - fi + 0x40b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 294 , 294 , // 294 - fi-fi + 0x64 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | SemicolonSep , 296 , 296 , // 295 - fil + 0x464 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | SemicolonSep , 296 , 296 , // 296 - fil-ph + 0x38 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 | SemicolonSep , 299 , 299 , // 297 - fo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 | SemicolonSep , 298 , 240 , // 298 - fo-dk + 0x438 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 | SemicolonSep , 299 , 299 , // 299 - fo-fo + 0xc , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 316 , 316 , // 300 - fr + 0x1c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x993248, 1 | SemicolonSep , 301 , 316 , // 301 - fr-029 + 0x80c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x15 , 1 | SemicolonSep , 302 , 302 , // 302 - fr-be + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xf5 , 1 | SemicolonSep , 303 , 240 , // 303 - fr-bf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x26 , 1 | SemicolonSep , 304 , 240 , // 304 - fr-bi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x1c , 1 | SemicolonSep , 305 , 240 , // 305 - fr-bj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9a55c4f, 1 | SemicolonSep , 306 , 240 , // 306 - fr-bl + 0xc0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x27 , 1 | SemicolonSep , 307 , 307 , // 307 - fr-ca + 0x240c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2c , 1 | SemicolonSep , 308 , 240 , // 308 - fr-cd + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x37 , 1 | SemicolonSep , 309 , 240 , // 309 - fr-cf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2b , 1 | SemicolonSep , 310 , 240 , // 310 - fr-cg + 0x100c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 311 , 311 , // 311 - fr-ch + 0x300c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x77 , 1 | SemicolonSep , 312 , 240 , // 312 - fr-ci + 0x2c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 | SemicolonSep , 313 , 240 , // 313 - fr-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x3e , 1 | SemicolonSep , 314 , 240 , // 314 - fr-dj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 315 , 240 , // 315 - fr-dz + 0x40c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 316 , 316 , // 316 - fr-fr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x57 , 1 | SemicolonSep , 317 , 240 , // 317 - fr-ga + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13d , 1 | SemicolonSep , 318 , 240 , // 318 - fr-gf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 | SemicolonSep , 319 , 240 , // 319 - fr-gn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x141 , 1 | SemicolonSep , 320 , 240 , // 320 - fr-gp + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x45 , 1 | SemicolonSep , 321 , 240 , // 321 - fr-gq + 0x3c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x67 , 1 | SemicolonSep , 322 , 240 , // 322 - fr-ht + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x32 , 1 | SemicolonSep , 323 , 240 , // 323 - fr-km + 0x140c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 324 , 324 , // 324 - fr-lu + 0x380c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9f , 1 | SemicolonSep , 325 , 240 , // 325 - fr-ma + 0x180c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9e , 1 | SemicolonSep , 326 , 326 , // 326 - fr-mc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x7bda, 1 | SemicolonSep , 327 , 240 , // 327 - fr-mf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x95 , 1 | SemicolonSep , 328 , 240 , // 328 - fr-mg + 0x340c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9d , 1 | SemicolonSep , 329 , 240 , // 329 - fr-ml + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14a , 1 | SemicolonSep , 330 , 240 , // 330 - fr-mq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 | SemicolonSep , 331 , 240 , // 331 - fr-mr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa0 , 1 | SemicolonSep , 332 , 240 , // 332 - fr-mu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14e , 1 | SemicolonSep , 333 , 240 , // 333 - fr-nc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xad , 1 | SemicolonSep , 334 , 240 , // 334 - fr-ne + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13e , 1 | SemicolonSep , 335 , 240 , // 335 - fr-pf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xce , 1 | SemicolonSep , 336 , 240 , // 336 - fr-pm + 0x200c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xc6 , 1 | SemicolonSep , 337 , 240 , // 337 - fr-re + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xcc , 1 | SemicolonSep , 338 , 240 , // 338 - fr-rw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd0 , 1 | SemicolonSep , 339 , 240 , // 339 - fr-sc + 0x280c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 340 , 240 , // 340 - fr-sn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xde , 1 | SemicolonSep , 341 , 240 , // 341 - fr-sy + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x29 , 1 | SemicolonSep , 342 , 240 , // 342 - fr-td + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xe8 , 1 | SemicolonSep , 343 , 240 , // 343 - fr-tg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xea , 1 | SemicolonSep , 344 , 240 , // 344 - fr-tn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xae , 1 | SemicolonSep , 345 , 240 , // 345 - fr-vu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x160 , 1 | SemicolonSep , 346 , 240 , // 346 - fr-wf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14b , 1 | SemicolonSep , 347 , 240 , // 347 - fr-yt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 349 , 240 , // 348 - fur + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 349 , 240 , // 349 - fur-it + 0x62 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 351 , 351 , // 350 - fy + 0x462 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 351 , 351 , // 351 - fy-nl + 0x3c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | SemicolonSep , 353 , 353 , // 352 - ga + 0x83c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | SemicolonSep , 353 , 353 , // 353 - ga-ie + 0x91 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 355 , 355 , // 354 - gd + 0x491 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 355 , 355 , // 355 - gd-gb + 0x56 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 357 , 357 , // 356 - gl + 0x456 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 357 , 357 , // 357 - gl-es + 0x74 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | CommaSep , 359 , 359 , // 358 - gn + 0x474 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | CommaSep , 359 , 359 , // 359 - gn-py + 0x84 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 361 , 240 , // 360 - gsw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 361 , 240 , // 361 - gsw-ch + 0x484 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 362 , 362 , // 362 - gsw-fr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x91 , 1 | SemicolonSep , 363 , 240 , // 363 - gsw-li + 0x47 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 365 , 143 , // 364 - gu + 0x447 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 365 , 143 , // 365 - gu-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 367 , 240 , // 366 - guz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 367 , 240 , // 367 - guz-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 | SemicolonSep , 369 , 240 , // 368 - gv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 | SemicolonSep , 369 , 240 , // 369 - gv-im + 0x68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 370 - ha + 0x7c68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 371 - ha-latn + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x59 , 1 | SemicolonSep , 372 , 240 , // 372 - ha-latn-gh + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xad , 1 | SemicolonSep , 373 , 240 , // 373 - ha-latn-ne + 0x468 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 374 - ha-latn-ng + 0x75 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | SemicolonSep , 376 , 376 , // 375 - haw + 0x475 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | SemicolonSep , 376 , 376 , // 376 - haw-us + 0xd , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 | CommaSep , 378 , 143 , // 377 - he + 0x40d , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 | CommaSep , 378 , 143 , // 378 - he-il + 0x39 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 380 , 143 , // 379 - hi + 0x439 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 380 , 143 , // 380 - hi-in + 0x1a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 | SemicolonSep , 383 , 383 , // 381 - hr + 0x101a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 382 , 382 , // 382 - hr-ba + 0x41a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 | SemicolonSep , 383 , 383 , // 383 - hr-hr + 0x2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 385 , 385 , // 384 - hsb + 0x42e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 385 , 385 , // 385 - hsb-de + 0xe , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 386 - hu + 0x40e , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 387 - hu-hu + 0x1040e, 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 388 - hu-hu_technl + 0x2b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 | CommaSep , 390 , 390 , // 389 - hy + 0x42b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 | CommaSep , 390 , 390 , // 390 - hy-am + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 393 , 240 , // 391 - ia + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 392 , 240 , // 392 - ia-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 393 , 240 , // 393 - ia-fr + 0x69 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 395 , 240 , // 394 - ibb + 0x469 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 395 , 240 , // 395 - ibb-ng + 0x21 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 397 , 397 , // 396 - id + 0x421 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 397 , 397 , // 397 - id-id + 0x70 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 399 , 399 , // 398 - ig + 0x470 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 399 , 399 , // 399 - ig-ng + 0x78 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | SemicolonSep , 401 , 143 , // 400 - ii + 0x478 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | SemicolonSep , 401 , 143 , // 401 - ii-cn + 0xf , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 | SemicolonSep , 403 , 403 , // 402 - is + 0x40f , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 | SemicolonSep , 403 , 403 , // 403 - is-is + 0x10 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 | SemicolonSep , 406 , 406 , // 404 - it + 0x810 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdf , 1 | SemicolonSep , 405 , 405 , // 405 - it-ch + 0x410 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 | SemicolonSep , 406 , 406 , // 406 - it-it + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0xd6 , 1 | SemicolonSep , 407 , 240 , // 407 - it-sm + 0x5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 408 - iu + 0x785d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 | CommaSep , 410 , 143 , // 409 - iu-cans + 0x45d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 | CommaSep , 410 , 143 , // 410 - iu-cans-ca + 0x7c5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 411 - iu-latn + 0x85d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 412 - iu-latn-ca + 0x11 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 413 - ja + 0x411 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 414 - ja-jp + 0x40411, 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 415 - ja-jp_radstr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 417 , 240 , // 416 - jgo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 417 , 240 , // 417 - jgo-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 419 , 240 , // 418 - jmc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 419 , 240 , // 419 - jmc-tz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 420 - jv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 422 , 424 , // 421 - jv-java + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 422 , 424 , // 422 - jv-java-id + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 423 - jv-latn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 424 - jv-latn-id + 0x37 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 425 - ka + 0x437 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 426 - ka-ge + 0x10437, 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 427 - ka-ge_modern + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 | SemicolonSep , 429 , 240 , // 428 - kab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 | SemicolonSep , 429 , 240 , // 429 - kab-dz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 431 , 240 , // 430 - kam + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 431 , 240 , // 431 - kam-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 433 , 240 , // 432 - kde + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 433 , 240 , // 433 - kde-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 | SemicolonSep , 435 , 240 , // 434 - kea + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 | SemicolonSep , 435 , 240 , // 435 - kea-cv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 437 , 240 , // 436 - khq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 437 , 240 , // 437 - khq-ml + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 439 , 240 , // 438 - ki + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 439 , 240 , // 439 - ki-ke + 0x3f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 441 , 441 , // 440 - kk + 0x43f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 441 , 441 , // 441 - kk-kz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 443 , 240 , // 442 - kkj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 443 , 240 , // 443 - kkj-cm + 0x6f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 | SemicolonSep , 445 , 445 , // 444 - kl + 0x46f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 | SemicolonSep , 445 , 445 , // 445 - kl-gl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 447 , 240 , // 446 - kln + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 447 , 240 , // 447 - kln-ke + 0x53 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 | CommaSep , 449 , 143 , // 448 - km + 0x453 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 | CommaSep , 449 , 143 , // 449 - km-kh + 0x4b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 451 , 143 , // 450 - kn + 0x44b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 451 , 143 , // 451 - kn-in + 0x12 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 | CommaSep , 454 , 454 , // 452 - ko + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x83 , 1 | SemicolonSep , 453 , 240 , // 453 - ko-kp + 0x412 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 | CommaSep , 454 , 454 , // 454 - ko-kr + 0x57 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 456 , 143 , // 455 - kok + 0x457 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 456 , 143 , // 456 - kok-in + 0x71 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 458 , 240 , // 457 - kr + 0x471 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 458 , 240 , // 458 - kr-ng + 0x60 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 459 - ks + 0x460 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 460 - ks-arab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 461 - ks-arab-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 463 , 187 , // 462 - ks-deva + 0x860 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 463 , 187 , // 463 - ks-deva-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 465 , 240 , // 464 - ksb + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 465 , 240 , // 465 - ksb-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 467 , 240 , // 466 - ksf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 467 , 240 , // 467 - ksf-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 469 , 240 , // 468 - ksh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 469 , 240 , // 469 - ksh-de + 0x92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 470 - ku + 0x7c92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 471 - ku-arab + 0x492 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 472 - ku-arab-iq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 0 | SemicolonSep , 473 , 240 , // 473 - ku-arab-ir + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 | SemicolonSep , 475 , 240 , // 474 - kw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 | SemicolonSep , 475 , 240 , // 475 - kw-gb + 0x40 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 | SemicolonSep , 477 , 477 , // 476 - ky + 0x440 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 | SemicolonSep , 477 , 477 , // 477 - ky-kg + 0x76 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 | CommaSep , 479 , 143 , // 478 - la + 0x476 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 | CommaSep , 479 , 143 , // 479 - la-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 481 , 240 , // 480 - lag + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 481 , 240 , // 481 - lag-tz + 0x6e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 483 , 483 , // 482 - lb + 0x46e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 483 , 483 , // 483 - lb-lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 485 , 240 , // 484 - lg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 485 , 240 , // 485 - lg-ug + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | SemicolonSep , 487 , 240 , // 486 - lkt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | SemicolonSep , 487 , 240 , // 487 - lkt-us + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 490 , 240 , // 488 - ln + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9 , 1 | SemicolonSep , 489 , 240 , // 489 - ln-ao + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 490 , 240 , // 490 - ln-cd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 491 , 240 , // 491 - ln-cf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2b , 1 | SemicolonSep , 492 , 240 , // 492 - ln-cg + 0x54 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 | SemicolonSep , 494 , 143 , // 493 - lo + 0x454 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 | SemicolonSep , 494 , 143 , // 494 - lo-la + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 497 , 240 , // 495 - lrc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x79 , 2 | SemicolonSep , 496 , 240 , // 496 - lrc-iq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 497 , 240 , // 497 - lrc-ir + 0x27 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 | SemicolonSep , 499 , 499 , // 498 - lt + 0x427 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 | SemicolonSep , 499 , 499 , // 499 - lt-lt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 501 , 240 , // 500 - lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 501 , 240 , // 501 - lu-cd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 503 , 240 , // 502 - luo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 503 , 240 , // 503 - luo-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 505 , 240 , // 504 - luy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 505 , 240 , // 505 - luy-ke + 0x26 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 | SemicolonSep , 507 , 507 , // 506 - lv + 0x426 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 | SemicolonSep , 507 , 507 , // 507 - lv-lv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 509 , 240 , // 508 - mas + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 509 , 240 , // 509 - mas-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 510 , 240 , // 510 - mas-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 512 , 240 , // 511 - mer + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 512 , 240 , // 512 - mer-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 | SemicolonSep , 514 , 240 , // 513 - mfe + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 | SemicolonSep , 514 , 240 , // 514 - mfe-mu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 | SemicolonSep , 516 , 240 , // 515 - mg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 | SemicolonSep , 516 , 240 , // 516 - mg-mg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 518 , 240 , // 517 - mgh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 518 , 240 , // 518 - mgh-mz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 520 , 240 , // 519 - mgo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 520 , 240 , // 520 - mgo-cm + 0x81 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 | CommaSep , 522 , 522 , // 521 - mi + 0x481 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 | CommaSep , 522 , 522 , // 522 - mi-nz + 0x2f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 | SemicolonSep , 524 , 524 , // 523 - mk + 0x42f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 | SemicolonSep , 524 , 524 , // 524 - mk-mk + 0x4c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 526 , 143 , // 525 - ml + 0x44c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 526 , 143 , // 526 - ml-in + 0x50 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 527 - mn + 0x7850 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 528 - mn-cyrl + 0x450 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 529 - mn-mn + 0x7c50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 531 , 531 , // 530 - mn-mong + 0x850 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 531 , 531 , // 531 - mn-mong-cn + 0xc50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9a , 1 | CommaSep , 532 , 532 , // 532 - mn-mong-mn + 0x58 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 534 , 187 , // 533 - mni + 0x458 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 534 , 187 , // 534 - mni-in + 0x7c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 536 , 240 , // 535 - moh + 0x47c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 536 , 240 , // 536 - moh-ca + 0x4e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 538 , 143 , // 537 - mr + 0x44e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 538 , 143 , // 538 - mr-in + 0x3e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 | SemicolonSep , 541 , 541 , // 539 - ms + 0x83e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x25 , 1 | SemicolonSep , 540 , 540 , // 540 - ms-bn + 0x43e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 | SemicolonSep , 541 , 541 , // 541 - ms-my + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd7 , 1 | SemicolonSep , 542 , 240 , // 542 - ms-sg + 0x3a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 | SemicolonSep , 544 , 544 , // 543 - mt + 0x43a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 | SemicolonSep , 544 , 544 , // 544 - mt-mt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 546 , 240 , // 545 - mua + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 546 , 240 , // 546 - mua-cm + 0x55 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 | SemicolonSep , 548 , 240 , // 547 - my + 0x455 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 | SemicolonSep , 548 , 240 , // 548 - my-mm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 550 , 240 , // 549 - mzn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 550 , 240 , // 550 - mzn-ir + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 | SemicolonSep , 552 , 240 , // 551 - naq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 | SemicolonSep , 552 , 240 , // 552 - naq-na + 0x7c14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 553 - nb + 0x414 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 554 - nb-no + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xdc , 1 | SemicolonSep , 555 , 240 , // 555 - nb-sj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 557 , 240 , // 556 - nd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 557 , 240 , // 557 - nd-zw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 559 , 240 , // 558 - nds + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 559 , 240 , // 559 - nds-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 | SemicolonSep , 560 , 240 , // 560 - nds-nl + 0x61 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 | CommaSep , 563 , 143 , // 561 - ne + 0x861 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 562 , 240 , // 562 - ne-in + 0x461 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 | CommaSep , 563 , 143 , // 563 - ne-np + 0x13 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 569 , 569 , // 564 - nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12e , 1 | SemicolonSep , 565 , 240 , // 565 - nl-aw + 0x813 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 | SemicolonSep , 566 , 566 , // 566 - nl-be + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d42, 1 | SemicolonSep , 567 , 240 , // 567 - nl-bq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x111 , 1 | SemicolonSep , 568 , 240 , // 568 - nl-cw + 0x413 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 569 , 569 , // 569 - nl-nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb5 , 1 | SemicolonSep , 570 , 240 , // 570 - nl-sr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 | SemicolonSep , 571 , 240 , // 571 - nl-sx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 573 , 240 , // 572 - nmg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 573 , 240 , // 573 - nmg-cm + 0x7814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 575 , 575 , // 574 - nn + 0x814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 575 , 575 , // 575 - nn-no + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 577 , 240 , // 576 - nnh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 577 , 240 , // 577 - nnh-cm + 0x14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 578 - no + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 | ArabicCommaSep , 580 , 143 , // 579 - nqo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 | ArabicCommaSep , 580 , 143 , // 580 - nqo-gn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 582 , 240 , // 581 - nr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 582 , 240 , // 582 - nr-za + 0x6c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 584 , 584 , // 583 - nso + 0x46c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 584 , 584 , // 584 - nso-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 | SemicolonSep , 586 , 240 , // 585 - nus + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 | SemicolonSep , 586 , 240 , // 586 - nus-ss + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 588 , 240 , // 587 - nyn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 588 , 240 , // 588 - nyn-ug + 0x82 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 590 , 590 , // 589 - oc + 0x482 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 590 , 590 , // 590 - oc-fr + 0x72 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 592 , 240 , // 591 - om + 0x472 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 592 , 240 , // 592 - om-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 593 , 240 , // 593 - om-ke + 0x48 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 595 , 143 , // 594 - or + 0x448 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 595 , 143 , // 595 - or-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 597 , 240 , // 596 - os + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 597 , 240 , // 597 - os-ge + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 598 , 240 , // 598 - os-ru + 0x46 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 602 , 143 , // 599 - pa + 0x7c46 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 601 , 143 , // 600 - pa-arab + 0x846 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 601 , 143 , // 601 - pa-arab-pk + 0x446 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 602 , 143 , // 602 - pa-in + 0x79 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 604 , 145 , // 603 - pap + 0x479 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 604 , 145 , // 604 - pap-029 + 0x15 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 | SemicolonSep , 606 , 606 , // 605 - pl + 0x415 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 | SemicolonSep , 606 , 606 , // 606 - pl-pl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 608 , 240 , // 607 - prg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 608 , 240 , // 608 - prg-001 + 0x8c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 | SemicolonSep , 610 , 143 , // 609 - prs + 0x48c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 | SemicolonSep , 610 , 143 , // 610 - prs-af + 0x63 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 612 , 143 , // 611 - ps + 0x463 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 612 , 143 , // 612 - ps-af + 0x16 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 | SemicolonSep , 615 , 615 , // 613 - pt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9 , 1 | SemicolonSep , 614 , 240 , // 614 - pt-ao + 0x416 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 | SemicolonSep , 615 , 615 , // 615 - pt-br + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 616 , 240 , // 616 - pt-ch + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x39 , 1 | SemicolonSep , 617 , 240 , // 617 - pt-cv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x45 , 1 | SemicolonSep , 618 , 240 , // 618 - pt-gq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc4 , 1 | SemicolonSep , 619 , 240 , // 619 - pt-gw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x93 , 1 | SemicolonSep , 620 , 240 , // 620 - pt-lu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 | SemicolonSep , 621 , 240 , // 621 - pt-mo + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa8 , 1 | SemicolonSep , 622 , 240 , // 622 - pt-mz + 0x816 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc1 , 1 | SemicolonSep , 623 , 623 , // 623 - pt-pt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe9 , 1 | SemicolonSep , 624 , 240 , // 624 - pt-st + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f60e7,1| SemicolonSep , 625 , 240 , // 625 - pt-tl + 0x901 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 | CommaSep , 626 , 190 , // 626 - qps-latn-x-sh + 0x501 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xf4 , 1 | DoubleCommaSep , 627 , 627 , // 627 - qps-ploc + 0x5fe , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 628 , 628 , // 628 - qps-ploca + 0x9ff , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 629 , 143 , // 629 - qps-plocm + 0x86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 630 - quc + 0x7c86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 631 - quc-latn + 0x486 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 632 - quc-latn-gt + 0x6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | CommaSep , 634 , 634 , // 633 - quz + 0x46b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | CommaSep , 634 , 634 , // 634 - quz-bo + 0x86b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 | CommaSep , 635 , 635 , // 635 - quz-ec + 0xc6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 | CommaSep , 636 , 636 , // 636 - quz-pe + 0x17 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 638 , 638 , // 637 - rm + 0x417 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 638 , 638 , // 638 - rm-ch + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | SemicolonSep , 640 , 240 , // 639 - rn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | SemicolonSep , 640 , 240 , // 640 - rn-bi + 0x18 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 | SemicolonSep , 643 , 643 , // 641 - ro + 0x818 , 0x4e2 , 0x354 , 0x2 , 0x1f4 , 0x98 , 1 | SemicolonSep , 642 , 240 , // 642 - ro-md + 0x418 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 | SemicolonSep , 643 , 643 , // 643 - ro-ro + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 645 , 240 , // 644 - rof + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 645 , 240 , // 645 - rof-tz + 0x19 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 651 , 651 , // 646 - ru + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x1d , 1 | SemicolonSep , 647 , 240 , // 647 - ru-by + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x82 , 1 | SemicolonSep , 648 , 240 , // 648 - ru-kg + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 649 , 240 , // 649 - ru-kz + 0x819 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x98 , 1 | SemicolonSep , 650 , 240 , // 650 - ru-md + 0x419 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 651 , 651 , // 651 - ru-ru + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0xf1 , 1 | SemicolonSep , 652 , 240 , // 652 - ru-ua + 0x87 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 | SemicolonSep , 654 , 654 , // 653 - rw + 0x487 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 | SemicolonSep , 654 , 654 , // 654 - rw-rw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 656 , 240 , // 655 - rwk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 656 , 240 , // 656 - rwk-tz + 0x4f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 658 , 143 , // 657 - sa + 0x44f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 658 , 143 , // 658 - sa-in + 0x85 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 660 , 660 , // 659 - sah + 0x485 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 660 , 660 , // 660 - sah-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 662 , 240 , // 661 - saq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 662 , 240 , // 662 - saq-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 664 , 240 , // 663 - sbp + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 664 , 240 , // 664 - sbp-tz + 0x59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 665 - sd + 0x7c59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 666 - sd-arab + 0x859 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 667 - sd-arab-pk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 669 , 187 , // 668 - sd-deva + 0x459 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 669 , 187 , // 669 - sd-deva-in + 0x3b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 672 , 672 , // 670 - se + 0xc3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 671 , 671 , // 671 - se-fi + 0x43b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 672 , 672 , // 672 - se-no + 0x83b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 673 , 673 , // 673 - se-se + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 675 , 240 , // 674 - seh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 675 , 240 , // 675 - seh-mz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 677 , 240 , // 676 - ses + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 677 , 240 , // 677 - ses-ml + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 679 , 240 , // 678 - sg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 679 , 240 , // 679 - sg-cf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 680 - shi + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 682 , 240 , // 681 - shi-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 682 , 240 , // 682 - shi-latn-ma + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 683 - shi-tfng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 684 - shi-tfng-ma + 0x5b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 686 , 143 , // 685 - si + 0x45b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 686 , 143 , // 686 - si-lk + 0x1b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 | SemicolonSep , 688 , 688 , // 687 - sk + 0x41b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 | SemicolonSep , 688 , 688 , // 688 - sk-sk + 0x24 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 | SemicolonSep , 690 , 690 , // 689 - sl + 0x424 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 | SemicolonSep , 690 , 690 , // 690 - sl-si + 0x783b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 693 , 693 , // 691 - sma + 0x183b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 692 , 692 , // 692 - sma-no + 0x1c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 693 , 693 , // 693 - sma-se + 0x7c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 696 , 696 , // 694 - smj + 0x103b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 695 , 695 , // 695 - smj-no + 0x143b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 696 , 696 , // 696 - smj-se + 0x703b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 698 , 698 , // 697 - smn + 0x243b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 698 , 698 , // 698 - smn-fi + 0x743b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 700 , 700 , // 699 - sms + 0x203b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 700 , 700 , // 700 - sms-fi + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 701 - sn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 702 - sn-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 703 - sn-latn-zw + 0x77 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 | SemicolonSep , 708 , 240 , // 704 - so + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 | SemicolonSep , 705 , 240 , // 705 - so-dj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 706 , 240 , // 706 - so-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 707 , 240 , // 707 - so-ke + 0x477 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 | SemicolonSep , 708 , 240 , // 708 - so-so + 0x1c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 | SemicolonSep , 710 , 710 , // 709 - sq + 0x41c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 | SemicolonSep , 710 , 710 , // 710 - sq-al + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x4ca2, 1 | SemicolonSep , 711 , 240 , // 711 - sq-mk + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x974941, 1 | SemicolonSep , 712 , 240 , // 712 - sq-xk + 0x7c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 713 - sr + 0x6c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 | SemicolonSep , 718 , 718 , // 714 - sr-cyrl + 0x1c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x19 , 1 | SemicolonSep , 715 , 715 , // 715 - sr-cyrl-ba + 0xc1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10d , 1 | SemicolonSep , 716 , 716 , // 716 - sr-cyrl-cs + 0x301a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10e , 1 | SemicolonSep , 717 , 717 , // 717 - sr-cyrl-me + 0x281a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 | SemicolonSep , 718 , 718 , // 718 - sr-cyrl-rs + 0x1000 , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x974941, 1 | SemicolonSep , 719 , 240 , // 719 - sr-cyrl-xk + 0x701a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 720 - sr-latn + 0x181a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 721 , 721 , // 721 - sr-latn-ba + 0x81a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10d , 1 | SemicolonSep , 722 , 722 , // 722 - sr-latn-cs + 0x2c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10e , 1 | SemicolonSep , 723 , 723 , // 723 - sr-latn-me + 0x241a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 724 - sr-latn-rs + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x974941, 1 | SemicolonSep , 725 , 240 , // 725 - sr-latn-xk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 728 , 240 , // 726 - ss + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x104 , 1 | SemicolonSep , 727 , 240 , // 727 - ss-sz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 728 , 240 , // 728 - ss-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 730 , 240 , // 729 - ssy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 730 , 240 , // 730 - ssy-er + 0x30 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 733 , 240 , // 731 - st + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x92 , 1 | SemicolonSep , 732 , 240 , // 732 - st-ls + 0x430 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 733 , 240 , // 733 - st-za + 0x1d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 737 , 737 , // 734 - sv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x9906f5, 1 | SemicolonSep , 735 , 240 , // 735 - sv-ax + 0x81d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 736 , 736 , // 736 - sv-fi + 0x41d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 737 , 737 , // 737 - sv-se + 0x41 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 | SemicolonSep , 740 , 740 , // 738 - sw + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x2c , 1 | SemicolonSep , 739 , 740 , // 739 - sw-cd + 0x441 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 | SemicolonSep , 740 , 740 , // 740 - sw-ke + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xef , 1 | SemicolonSep , 741 , 240 , // 741 - sw-tz + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xf0 , 1 | SemicolonSep , 742 , 240 , // 742 - sw-ug + 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 | CommaSep , 744 , 240 , // 743 - swc + 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 | SemicolonSep , 744 , 240 , // 744 - swc-cd + 0x5a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 | CommaSep , 746 , 143 , // 745 - syr + 0x45a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 | CommaSep , 746 , 143 , // 746 - syr-sy + 0x49 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 748 , 143 , // 747 - ta + 0x449 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 748 , 143 , // 748 - ta-in + 0x849 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 749 , 143 , // 749 - ta-lk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa7 , 1 | SemicolonSep , 750 , 240 , // 750 - ta-my + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd7 , 1 | SemicolonSep , 751 , 240 , // 751 - ta-sg + 0x4a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 753 , 143 , // 752 - te + 0x44a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 753 , 143 , // 753 - te-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 756 , 240 , // 754 - teo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 755 , 240 , // 755 - teo-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 756 , 240 , // 756 - teo-ug + 0x28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 757 - tg + 0x7c28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 758 - tg-cyrl + 0x428 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 759 - tg-cyrl-tj + 0x1e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 | CommaSep , 761 , 143 , // 760 - th + 0x41e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 | CommaSep , 761 , 143 , // 761 - th-th + 0x73 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 763 , 143 , // 762 - ti + 0x873 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 763 , 143 , // 763 - ti-er + 0x473 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 764 , 143 , // 764 - ti-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 766 , 240 , // 765 - tig + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 766 , 240 , // 766 - tig-er + 0x42 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 | SemicolonSep , 768 , 768 , // 767 - tk + 0x442 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 | SemicolonSep , 768 , 768 , // 768 - tk-tm + 0x32 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 771 , 771 , // 769 - tn + 0x832 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 | SemicolonSep , 770 , 770 , // 770 - tn-bw + 0x432 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 771 , 771 , // 771 - tn-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 | SemicolonSep , 773 , 240 , // 772 - to + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 | SemicolonSep , 773 , 240 , // 773 - to-to + 0x1f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 | SemicolonSep , 776 , 776 , // 774 - tr + 0x1000 , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x3b , 1 | SemicolonSep , 775 , 240 , // 775 - tr-cy + 0x41f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 | SemicolonSep , 776 , 776 , // 776 - tr-tr + 0x31 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 778 , 240 , // 777 - ts + 0x431 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 778 , 240 , // 778 - ts-za + 0x44 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 780 , 780 , // 779 - tt + 0x444 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 780 , 780 , // 780 - tt-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 782 , 240 , // 781 - twq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 782 , 240 , // 782 - twq-ne + 0x5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 783 - tzm + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 785 , 240 , // 784 - tzm-arab + 0x45f , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 785 , 240 , // 785 - tzm-arab-ma + 0x7c5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 786 - tzm-latn + 0x85f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 787 - tzm-latn-dz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 788 , 240 , // 788 - tzm-latn-ma + 0x785f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 790 , 316 , // 789 - tzm-tfng + 0x105f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 790 , 316 , // 790 - tzm-tfng-ma + 0x80 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 | CommaSep , 792 , 143 , // 791 - ug + 0x480 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 | CommaSep , 792 , 143 , // 792 - ug-cn + 0x22 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 | SemicolonSep , 794 , 794 , // 793 - uk + 0x422 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 | SemicolonSep , 794 , 794 , // 794 - uk-ua + 0x20 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 | SemicolonSep , 797 , 143 , // 795 - ur + 0x820 , 0x4e8 , 0x2d0 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 796 , 240 , // 796 - ur-in + 0x420 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 | SemicolonSep , 797 , 143 , // 797 - ur-pk + 0x43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 798 - uz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 800 , 240 , // 799 - uz-arab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 800 , 240 , // 800 - uz-arab-af + 0x7843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 | SemicolonSep , 802 , 802 , // 801 - uz-cyrl + 0x843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 | SemicolonSep , 802 , 802 , // 802 - uz-cyrl-uz + 0x7c43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 803 - uz-latn + 0x443 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 804 - uz-latn-uz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 805 - vai + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 807 , 240 , // 806 - vai-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 807 , 240 , // 807 - vai-latn-lr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 808 - vai-vaii + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 809 - vai-vaii-lr + 0x33 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 811 , 240 , // 810 - ve + 0x433 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 811 , 240 , // 811 - ve-za + 0x2a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 | CommaSep , 813 , 143 , // 812 - vi + 0x42a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 | CommaSep , 813 , 143 , // 813 - vi-vn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 815 , 240 , // 814 - vo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 815 , 240 , // 815 - vo-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 817 , 240 , // 816 - vun + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 817 , 240 , // 817 - vun-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 819 , 240 , // 818 - wae + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 819 , 240 , // 819 - wae-ch + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 821 , 240 , // 820 - wal + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 821 , 240 , // 821 - wal-et + 0x88 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 823 , 823 , // 822 - wo + 0x488 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 823 , 823 , // 823 - wo-sn + 0x1007f, 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , -1 , -1 , // 824 - x-iv_mathan + 0x34 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 826 , 826 , // 825 - xh + 0x434 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 826 , 826 , // 826 - xh-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 828 , 240 , // 827 - xog + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 828 , 240 , // 828 - xog-ug + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 830 , 240 , // 829 - yav + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 830 , 240 , // 830 - yav-cm + 0x3d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 832 , 240 , // 831 - yi + 0x43d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 832 , 240 , // 832 - yi-001 + 0x6a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 835 , 835 , // 833 - yo + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x1c , 1 | SemicolonSep , 834 , 240 , // 834 - yo-bj + 0x46a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 835 , 835 , // 835 - yo-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 | CommaSep , 837 , 240 , // 836 - yue + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 | CommaSep , 837 , 240 , // 837 - yue-hk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 838 - zgh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 839 - zgh-tfng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 840 - zgh-tfng-ma + 0x7804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 841 - zh + 0x4 , 0x3a8 , 0x3a8 , 0x0 , 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 842 - zh-chs + 0x7c04 , 0x3b6 , 0x3b6 , 0x0 , 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 843 - zh-cht + 0x804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 844 - zh-cn + 0x50804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 845 - zh-cn_phoneb + 0x20804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 846 - zh-cn_stroke + 0x4 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 847 - zh-hans + 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x68 , 1 | SemicolonSep , 848 , 240 , // 848 - zh-hans-hk + 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x97 , 1 | SemicolonSep , 849 , 240 , // 849 - zh-hans-mo + 0x7c04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 850 - zh-hant + 0xc04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 851 - zh-hk + 0x40c04, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 852 - zh-hk_radstr + 0x1404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 853 - zh-mo + 0x41404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 854 - zh-mo_radstr + 0x21404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 855 - zh-mo_stroke + 0x1004 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 856 - zh-sg + 0x51004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 857 - zh-sg_phoneb + 0x21004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 858 - zh-sg_stroke + 0x404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 859 - zh-tw + 0x30404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 860 - zh-tw_pronun + 0x40404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 861 - zh-tw_radstr + 0x35 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 863 , 863 , // 862 - zu + 0x435 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 863 , 863 , // 863 - zu-za }; // s_lcids list all supported lcids. used to binary search and we use the index of the matched lcid to diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/StringInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/StringInfo.cs index c395e92d247a..85352ecb13ca 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/StringInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/StringInfo.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Text.Unicode; @@ -95,16 +94,52 @@ public string SubstringByTextElements(int startingTextElement, int lengthInTextE return String[start..end]; } + /// + /// Returns the first text element (extended grapheme cluster) that occurs in the input string. + /// + /// The input string to analyze. + /// The substring corresponding to the first text element within , + /// or the empty string if is empty. + /// is null. public static string GetNextTextElement(string str) => GetNextTextElement(str, 0); /// - /// Returns the str containing the next text element in str starting at - /// index index. If index is not supplied, then it will start at the beginning - /// of str. It recognizes a base character plus one or more combining - /// characters or a properly formed surrogate pair as a text element. - /// See also the ParseCombiningCharacters() and the ParseSurrogates() methods. + /// Returns the first text element (extended grapheme cluster) that occurs in the input string + /// starting at the specified index. /// + /// The input string to analyze. + /// The char offset in at which to begin analysis. + /// The substring corresponding to the first text element within starting + /// at index , or the empty string if corresponds to + /// the end of . + /// is null. + /// is negative or beyond the end of . public static string GetNextTextElement(string str, int index) + { + int nextTextElementLength = GetNextTextElementLength(str, index); + return str.Substring(index, nextTextElementLength); + } + + /// + /// Returns the length of the first text element (extended grapheme cluster) that occurs in the input string. + /// + /// The input string to analyze. + /// The length (in chars) of the substring corresponding to the first text element within , + /// or 0 if is empty. + /// is null. + public static int GetNextTextElementLength(string str) => GetNextTextElementLength(str, 0); + + /// + /// Returns the length of the first text element (extended grapheme cluster) that occurs in the input string + /// starting at the specified index. + /// + /// The input string to analyze. + /// The char offset in at which to begin analysis. + /// The length (in chars) of the substring corresponding to the first text element within starting + /// at index , or 0 if corresponds to the end of . + /// is null. + /// is negative or beyond the end of . + public static int GetNextTextElementLength(string str, int index) { if (str is null) { @@ -115,9 +150,17 @@ public static string GetNextTextElement(string str, int index) ThrowHelper.ThrowArgumentOutOfRange_IndexException(); } - return str.Substring(index, TextSegmentationUtility.GetLengthOfFirstUtf16ExtendedGraphemeCluster(str.AsSpan(index))); + return GetNextTextElementLength(str.AsSpan(index)); } + /// + /// Returns the length of the first text element (extended grapheme cluster) that occurs in the input span. + /// + /// The input span to analyze. + /// The length (in chars) of the substring corresponding to the first text element within , + /// or 0 if is empty. + public static int GetNextTextElementLength(ReadOnlySpan str) => TextSegmentationUtility.GetLengthOfFirstUtf16ExtendedGraphemeCluster(str); + public static TextElementEnumerator GetTextElementEnumerator(string str) => GetTextElementEnumerator(str, 0); public static TextElementEnumerator GetTextElementEnumerator(string str, int index) @@ -153,44 +196,19 @@ public static int[] ParseCombiningCharacters(string str) ThrowHelper.ThrowArgumentNullException(ExceptionArgument.str); } - // This method is optimized for small-ish strings. - // If a large string is seen we'll go down a slower code path. - - if (str.Length > 256) - { - return ParseCombiningCharactersForLargeString(str); - } - - Span baseOffsets = stackalloc int[str.Length]; - int graphemeClusterCount = 0; - + ValueListBuilder builder = new ValueListBuilder(stackalloc int[64]); // 64 arbitrarily chosen ReadOnlySpan remaining = str; - while (!remaining.IsEmpty) - { - baseOffsets[graphemeClusterCount++] = str.Length - remaining.Length; - remaining = remaining.Slice(TextSegmentationUtility.GetLengthOfFirstUtf16ExtendedGraphemeCluster(remaining)); - } - - return baseOffsets.Slice(0, graphemeClusterCount).ToArray(); - } - - private static int[] ParseCombiningCharactersForLargeString(string str) - { - Debug.Assert(str != null); - - // If we have a large string, we may as well take the hit of using a List - // instead of trying the stackalloc optimizations we have for smaller strings. - List baseOffsets = new List(); - - ReadOnlySpan remaining = str; while (!remaining.IsEmpty) { - baseOffsets.Add(str.Length - remaining.Length); - remaining = remaining.Slice(TextSegmentationUtility.GetLengthOfFirstUtf16ExtendedGraphemeCluster(remaining)); + builder.Append(str.Length - remaining.Length); // a new extended grapheme cluster begins at this offset + remaining = remaining.Slice(GetNextTextElementLength(remaining)); // consume this cluster } - return baseOffsets.ToArray(); + int[] retVal = builder.AsSpan().ToArray(); + builder.Dispose(); + + return retVal; } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/TextInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/TextInfo.cs index 06d9ac7e0418..109ebde2c24d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/TextInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/TextInfo.cs @@ -37,7 +37,7 @@ private enum Tristate : byte private Tristate _isAsciiCasingSameAsInvariant = Tristate.NotInitialized; // Invariant text info - internal static readonly TextInfo Invariant = new TextInfo(CultureData.Invariant, readOnly: true); + internal static readonly TextInfo Invariant = new TextInfo(CultureData.Invariant, readOnly: true) { _isAsciiCasingSameAsInvariant = Tristate.True }; internal TextInfo(CultureData cultureData) { diff --git a/src/libraries/System.Private.CoreLib/src/System/Guid.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/Guid.Unix.cs index f7fc4c014a54..e60d36464116 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Guid.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Guid.Unix.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Internal.Runtime.CompilerServices; + namespace System { public partial struct Guid @@ -26,9 +28,9 @@ public static unsafe Guid NewGuid() unchecked { // time_hi_and_version - g._c = (short)((g._c & ~VersionMask) | RandomGuidVersion); + Unsafe.AsRef(in g._c) = (short)((g._c & ~VersionMask) | RandomGuidVersion); // clock_seq_hi_and_reserved - g._d = (byte)((g._d & ~ClockSeqHiAndReservedMask) | ClockSeqHiAndReservedValue); + Unsafe.AsRef(in g._d) = (byte)((g._d & ~ClockSeqHiAndReservedMask) | ClockSeqHiAndReservedValue); } return g; diff --git a/src/libraries/System.Private.CoreLib/src/System/Guid.cs b/src/libraries/System.Private.CoreLib/src/System/Guid.cs index 72450625f1be..81a9910ee337 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Guid.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Guid.cs @@ -5,6 +5,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; +using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; @@ -17,21 +18,21 @@ namespace System [Serializable] [NonVersionable] // This only applies to field layout [TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] - public partial struct Guid : IFormattable, IComparable, IComparable, IEquatable, ISpanFormattable + public readonly partial struct Guid : IFormattable, IComparable, IComparable, IEquatable, ISpanFormattable { public static readonly Guid Empty; - private int _a; // Do not rename (binary serialization) - private short _b; // Do not rename (binary serialization) - private short _c; // Do not rename (binary serialization) - private byte _d; // Do not rename (binary serialization) - private byte _e; // Do not rename (binary serialization) - private byte _f; // Do not rename (binary serialization) - private byte _g; // Do not rename (binary serialization) - private byte _h; // Do not rename (binary serialization) - private byte _i; // Do not rename (binary serialization) - private byte _j; // Do not rename (binary serialization) - private byte _k; // Do not rename (binary serialization) + private readonly int _a; // Do not rename (binary serialization) + private readonly short _b; // Do not rename (binary serialization) + private readonly short _c; // Do not rename (binary serialization) + private readonly byte _d; // Do not rename (binary serialization) + private readonly byte _e; // Do not rename (binary serialization) + private readonly byte _f; // Do not rename (binary serialization) + private readonly byte _g; // Do not rename (binary serialization) + private readonly byte _h; // Do not rename (binary serialization) + private readonly byte _i; // Do not rename (binary serialization) + private readonly byte _j; // Do not rename (binary serialization) + private readonly byte _k; // Do not rename (binary serialization) // Creates a new guid from an array of bytes. public Guid(byte[] b) : @@ -133,17 +134,39 @@ private enum GuidParseThrowStyle : byte } // This will store the result of the parsing. And it will eventually be used to construct a Guid instance. + // We'll eventually reinterpret_cast<> a GuidResult as a Guid, so we need to give it a sequential + // layout and ensure that its early fields match the layout of Guid exactly. + [StructLayout(LayoutKind.Explicit)] private struct GuidResult { + [FieldOffset(0)] + internal uint _a; + [FieldOffset(4)] + internal uint _bc; + [FieldOffset(4)] + internal ushort _b; + [FieldOffset(6)] + internal ushort _c; + [FieldOffset(8)] + internal uint _defg; + [FieldOffset(8)] + internal ushort _de; + [FieldOffset(8)] + internal byte _d; + [FieldOffset(10)] + internal ushort _fg; + [FieldOffset(12)] + internal uint _hijk; + + [FieldOffset(16)] private readonly GuidParseThrowStyle _throwStyle; - internal Guid _parsedGuid; internal GuidResult(GuidParseThrowStyle canThrow) : this() { _throwStyle = canThrow; } - internal void SetFailure(bool overflow, string failureMessageID) + internal readonly void SetFailure(bool overflow, string failureMessageID) { if (_throwStyle == GuidParseThrowStyle.None) { @@ -162,6 +185,12 @@ internal void SetFailure(bool overflow, string failureMessageID) throw new FormatException(SR.GetResourceString(failureMessageID)); } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public readonly Guid ToGuid() + { + return Unsafe.As(ref Unsafe.AsRef(in this)); + } } // Creates a new guid based on the value in the string. The value is made up @@ -182,7 +211,7 @@ public Guid(string g) bool success = TryParseGuid(g, ref result); Debug.Assert(success, "GuidParseThrowStyle.All means throw on all failures"); - this = result._parsedGuid; + this = result.ToGuid(); } public static Guid Parse(string input) => @@ -194,7 +223,7 @@ public static Guid Parse(ReadOnlySpan input) bool success = TryParseGuid(input, ref result); Debug.Assert(success, "GuidParseThrowStyle.AllButOverflow means throw on all failures"); - return result._parsedGuid; + return result.ToGuid(); } public static bool TryParse([NotNullWhen(true)] string? input, out Guid result) @@ -213,7 +242,7 @@ public static bool TryParse(ReadOnlySpan input, out Guid result) var parseResult = new GuidResult(GuidParseThrowStyle.None); if (TryParseGuid(input, ref parseResult)) { - result = parseResult._parsedGuid; + result = parseResult.ToGuid(); return true; } else @@ -249,7 +278,7 @@ public static Guid ParseExact(ReadOnlySpan input, ReadOnlySpan forma _ => throw new FormatException(SR.Format_InvalidGuidFormatSpecification), }; Debug.Assert(success, "GuidParseThrowStyle.AllButOverflow means throw on all failures"); - return result._parsedGuid; + return result.ToGuid(); } public static bool TryParseExact([NotNullWhen(true)] string? input, [NotNullWhen(true)] string? format, out Guid result) @@ -300,7 +329,7 @@ public static bool TryParseExact(ReadOnlySpan input, ReadOnlySpan fo if (success) { - result = parseResult._parsedGuid; + result = parseResult.ToGuid(); return true; } else @@ -333,7 +362,7 @@ private static bool TryParseGuid(ReadOnlySpan guidString, ref GuidResult r } // Two helpers used for parsing components: - // - uint.TryParse(..., NumberStyles.AllowHexSpecifier, ...) + // - Number.TryParseUInt32HexNumberStyle(..., NumberStyles.AllowHexSpecifier, ...) // Used when we expect the entire provided span to be filled with and only with hex digits and no overflow is possible // - TryParseHex // Used when the component may have an optional '+' and "0x" prefix, when it may overflow, etc. @@ -373,33 +402,29 @@ private static bool TryParseExactD(ReadOnlySpan guidString, ref GuidResult return false; } - ref Guid g = ref result._parsedGuid; - - if (TryParseHex(guidString.Slice(0, 8), out Unsafe.As(ref g._a)) && // _a + if (TryParseHex(guidString.Slice(0, 8), out result._a) && // _a TryParseHex(guidString.Slice(9, 4), out uint uintTmp)) // _b { - g._b = (short)uintTmp; + result._b = (ushort)uintTmp; if (TryParseHex(guidString.Slice(14, 4), out uintTmp)) // _c { - g._c = (short)uintTmp; + result._c = (ushort)uintTmp; if (TryParseHex(guidString.Slice(19, 4), out uintTmp)) // _d, _e { - g._d = (byte)(uintTmp >> 8); - g._e = (byte)uintTmp; + // _d, _e must be stored as a big-endian ushort + result._de = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness((ushort)uintTmp) : (ushort)uintTmp; if (TryParseHex(guidString.Slice(24, 4), out uintTmp)) // _f, _g { - g._f = (byte)(uintTmp >> 8); - g._g = (byte)uintTmp; + // _f, _g must be stored as a big-endian ushort + result._fg = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness((ushort)uintTmp) : (ushort)uintTmp; - if (uint.TryParse(guidString.Slice(28, 8), NumberStyles.AllowHexSpecifier, null, out uintTmp)) // _h, _i, _j, _k + if (Number.TryParseUInt32HexNumberStyle(guidString.Slice(28, 8), NumberStyles.AllowHexSpecifier, out uintTmp) == Number.ParsingStatus.OK) // _h, _i, _j, _k { - g._h = (byte)(uintTmp >> 24); - g._i = (byte)(uintTmp >> 16); - g._j = (byte)(uintTmp >> 8); - g._k = (byte)uintTmp; + // _h, _i, _j, _k must be stored as a big-endian uint + result._hijk = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness(uintTmp) : uintTmp; return true; } @@ -422,27 +447,24 @@ private static bool TryParseExactN(ReadOnlySpan guidString, ref GuidResult return false; } - ref Guid g = ref result._parsedGuid; - - if (uint.TryParse(guidString.Slice(0, 8), NumberStyles.AllowHexSpecifier, null, out Unsafe.As(ref g._a)) && // _a - uint.TryParse(guidString.Slice(8, 8), NumberStyles.AllowHexSpecifier, null, out uint uintTmp)) // _b, _c + if (Number.TryParseUInt32HexNumberStyle(guidString.Slice(0, 8), NumberStyles.AllowHexSpecifier, out result._a) == Number.ParsingStatus.OK && // _a + Number.TryParseUInt32HexNumberStyle(guidString.Slice(8, 8), NumberStyles.AllowHexSpecifier, out uint uintTmp) == Number.ParsingStatus.OK) // _b, _c { - g._b = (short)(uintTmp >> 16); - g._c = (short)uintTmp; + // _b, _c are independently in machine-endian order + if (BitConverter.IsLittleEndian) { uintTmp = BitOperations.RotateRight(uintTmp, 16); } + result._bc = uintTmp; - if (uint.TryParse(guidString.Slice(16, 8), NumberStyles.AllowHexSpecifier, null, out uintTmp)) // _d, _e, _f, _g + if (Number.TryParseUInt32HexNumberStyle(guidString.Slice(16, 8), NumberStyles.AllowHexSpecifier, out uintTmp) == Number.ParsingStatus.OK) // _d, _e, _f, _g { - g._d = (byte)(uintTmp >> 24); - g._e = (byte)(uintTmp >> 16); - g._f = (byte)(uintTmp >> 8); - g._g = (byte)uintTmp; + // _d, _e, _f, _g must be stored as a big-endian uint + if (BitConverter.IsLittleEndian) { uintTmp = BinaryPrimitives.ReverseEndianness(uintTmp); } + result._defg = uintTmp; - if (uint.TryParse(guidString.Slice(24, 8), NumberStyles.AllowHexSpecifier, null, out uintTmp)) // _h, _i, _j, _k + if (Number.TryParseUInt32HexNumberStyle(guidString.Slice(24, 8), NumberStyles.AllowHexSpecifier, out uintTmp) == Number.ParsingStatus.OK) // _h, _i, _j, _k { - g._h = (byte)(uintTmp >> 24); - g._i = (byte)(uintTmp >> 16); - g._j = (byte)(uintTmp >> 8); - g._k = (byte)uintTmp; + // _h, _i, _j, _k must be stored as big-endian uint + if (BitConverter.IsLittleEndian) { uintTmp = BinaryPrimitives.ReverseEndianness(uintTmp); } + result._hijk = uintTmp; return true; } @@ -507,7 +529,7 @@ private static bool TryParseExactX(ReadOnlySpan guidString, ref GuidResult } bool overflow = false; - if (!TryParseHex(guidString.Slice(numStart, numLen), out Unsafe.As(ref result._parsedGuid._a), ref overflow) || overflow) + if (!TryParseHex(guidString.Slice(numStart, numLen), out result._a, ref overflow) || overflow) { result.SetFailure(overflow, overflow ? nameof(SR.Overflow_UInt32) : nameof(SR.Format_GuidInvalidChar)); return false; @@ -529,7 +551,7 @@ private static bool TryParseExactX(ReadOnlySpan guidString, ref GuidResult } // Read in the number - if (!TryParseHex(guidString.Slice(numStart, numLen), out result._parsedGuid._b, ref overflow) || overflow) + if (!TryParseHex(guidString.Slice(numStart, numLen), out result._b, ref overflow) || overflow) { result.SetFailure(overflow, overflow ? nameof(SR.Overflow_UInt32) : nameof(SR.Format_GuidInvalidChar)); return false; @@ -551,7 +573,7 @@ private static bool TryParseExactX(ReadOnlySpan guidString, ref GuidResult } // Read in the number - if (!TryParseHex(guidString.Slice(numStart, numLen), out result._parsedGuid._c, ref overflow) || overflow) + if (!TryParseHex(guidString.Slice(numStart, numLen), out result._c, ref overflow) || overflow) { result.SetFailure(overflow, overflow ? nameof(SR.Overflow_UInt32) : nameof(SR.Format_GuidInvalidChar)); return false; @@ -611,7 +633,7 @@ private static bool TryParseExactX(ReadOnlySpan guidString, ref GuidResult nameof(SR.Format_GuidInvalidChar)); return false; } - Unsafe.Add(ref result._parsedGuid._d, i) = (byte)byteVal; + Unsafe.Add(ref result._d, i) = (byte)byteVal; } // Check for last '}' @@ -631,10 +653,10 @@ private static bool TryParseExactX(ReadOnlySpan guidString, ref GuidResult return true; } - private static bool TryParseHex(ReadOnlySpan guidString, out short result, ref bool overflow) + private static bool TryParseHex(ReadOnlySpan guidString, out ushort result, ref bool overflow) { bool success = TryParseHex(guidString, out uint tmp, ref overflow); - result = (short)tmp; + result = (ushort)tmp; return success; } @@ -728,7 +750,7 @@ public byte[] ToByteArray() var g = new byte[16]; if (BitConverter.IsLittleEndian) { - MemoryMarshal.TryWrite(g, ref this); + MemoryMarshal.TryWrite(g, ref Unsafe.AsRef(in this)); } else { @@ -742,7 +764,7 @@ public bool TryWriteBytes(Span destination) { if (BitConverter.IsLittleEndian) { - return MemoryMarshal.TryWrite(destination, ref this); + return MemoryMarshal.TryWrite(destination, ref Unsafe.AsRef(in this)); } // slower path for BigEndian @@ -769,33 +791,27 @@ public bool TryWriteBytes(Span destination) public override int GetHashCode() { // Simply XOR all the bits of the GUID 32 bits at a time. - return _a ^ Unsafe.Add(ref _a, 1) ^ Unsafe.Add(ref _a, 2) ^ Unsafe.Add(ref _a, 3); + ref int r = ref Unsafe.AsRef(in _a); + return r ^ Unsafe.Add(ref r, 1) ^ Unsafe.Add(ref r, 2) ^ Unsafe.Add(ref r, 3); } // Returns true if and only if the guid represented // by o is the same as this instance. - public override bool Equals(object? o) - { - Guid g; - // Check that o is a Guid first - if (o == null || !(o is Guid)) - return false; - else g = (Guid)o; + public override bool Equals(object? o) => o is Guid g && EqualsCore(this, g); - // Now compare each of the elements - return g._a == _a && - Unsafe.Add(ref g._a, 1) == Unsafe.Add(ref _a, 1) && - Unsafe.Add(ref g._a, 2) == Unsafe.Add(ref _a, 2) && - Unsafe.Add(ref g._a, 3) == Unsafe.Add(ref _a, 3); - } + public bool Equals(Guid g) => EqualsCore(this, g); - public bool Equals(Guid g) + private static bool EqualsCore(in Guid left, in Guid right) { - // Now compare each of the elements - return g._a == _a && - Unsafe.Add(ref g._a, 1) == Unsafe.Add(ref _a, 1) && - Unsafe.Add(ref g._a, 2) == Unsafe.Add(ref _a, 2) && - Unsafe.Add(ref g._a, 3) == Unsafe.Add(ref _a, 3); + ref int rA = ref Unsafe.AsRef(in left._a); + ref int rB = ref Unsafe.AsRef(in right._a); + + // Compare each element + + return rA == rB + && Unsafe.Add(ref rA, 1) == Unsafe.Add(ref rB, 1) + && Unsafe.Add(ref rA, 2) == Unsafe.Add(ref rB, 2) + && Unsafe.Add(ref rA, 3) == Unsafe.Add(ref rB, 3); } private static int GetResult(uint me, uint them) => me < them ? -1 : 1; @@ -930,18 +946,9 @@ public int CompareTo(Guid value) return 0; } - public static bool operator ==(Guid a, Guid b) => - a._a == b._a && - Unsafe.Add(ref a._a, 1) == Unsafe.Add(ref b._a, 1) && - Unsafe.Add(ref a._a, 2) == Unsafe.Add(ref b._a, 2) && - Unsafe.Add(ref a._a, 3) == Unsafe.Add(ref b._a, 3); - - public static bool operator !=(Guid a, Guid b) => - // Now compare each of the elements - a._a != b._a || - Unsafe.Add(ref a._a, 1) != Unsafe.Add(ref b._a, 1) || - Unsafe.Add(ref a._a, 2) != Unsafe.Add(ref b._a, 2) || - Unsafe.Add(ref a._a, 3) != Unsafe.Add(ref b._a, 3); + public static bool operator ==(Guid a, Guid b) => EqualsCore(a, b); + + public static bool operator !=(Guid a, Guid b) => !EqualsCore(a, b); public string ToString(string? format) { diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/BufferedStream.cs b/src/libraries/System.Private.CoreLib/src/System/IO/BufferedStream.cs index fac7f93f687b..bc1ea7647037 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/BufferedStream.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/BufferedStream.cs @@ -58,14 +58,6 @@ public sealed class BufferedStream : Stream // (perf optimization for successive reads of the same size) // Removing a private default constructor is a breaking change for the DataDebugSerializer. // Because this ctor was here previously we need to keep it around. - private SemaphoreSlim? _asyncActiveSemaphore; - - internal SemaphoreSlim LazyEnsureAsyncActiveSemaphoreInitialized() - { - // Lazily-initialize _asyncActiveSemaphore. As we're never accessing the SemaphoreSlim's - // WaitHandle, we don't need to worry about Disposing it. - return LazyInitializer.EnsureInitialized(ref _asyncActiveSemaphore, () => new SemaphoreSlim(1, 1)); - } public BufferedStream(Stream stream) : this(stream, DefaultBufferSize) @@ -329,8 +321,7 @@ private async Task FlushAsyncInternal(CancellationToken cancellationToken) { Debug.Assert(_stream != null); - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); - await sem.WaitAsync(cancellationToken).ConfigureAwait(false); + await EnsureAsyncActiveSemaphoreInitialized().WaitAsync(cancellationToken).ConfigureAwait(false); try { if (_writePos > 0) @@ -371,7 +362,7 @@ private async Task FlushAsyncInternal(CancellationToken cancellationToken) } finally { - sem.Release(); + _asyncActiveSemaphore.Release(); } } @@ -616,7 +607,7 @@ public override Task ReadAsync(byte[] buffer, int offset, int count, Cancel // Try to satisfy the request from the buffer synchronously. But still need a sem-lock in case that another // Async IO Task accesses the buffer concurrently. If we fail to acquire the lock without waiting, make this // an Async operation. - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); + SemaphoreSlim sem = EnsureAsyncActiveSemaphoreInitialized(); Task semaphoreLockTask = sem.WaitAsync(cancellationToken); if (semaphoreLockTask.IsCompletedSuccessfully) { @@ -667,7 +658,7 @@ public override ValueTask ReadAsync(Memory buffer, CancellationToken EnsureCanRead(); int bytesFromBuffer = 0; - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); + SemaphoreSlim sem = EnsureAsyncActiveSemaphoreInitialized(); Task semaphoreLockTask = sem.WaitAsync(cancellationToken); if (semaphoreLockTask.IsCompletedSuccessfully) { @@ -706,6 +697,7 @@ public override ValueTask ReadAsync(Memory buffer, CancellationToken Debug.Assert(_stream != null); Debug.Assert(_stream.CanRead); Debug.Assert(_bufferSize > 0); + Debug.Assert(_asyncActiveSemaphore != null); Debug.Assert(semaphoreLockTask != null); // Employ async waiting based on the same synchronization used in BeginRead of the abstract Stream. @@ -750,8 +742,7 @@ public override ValueTask ReadAsync(Memory buffer, CancellationToken } finally { - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); - sem.Release(); + _asyncActiveSemaphore.Release(); } } @@ -1042,7 +1033,7 @@ public override ValueTask WriteAsync(ReadOnlyMemory buffer, CancellationTo EnsureCanWrite(); // Try to satisfy the request from the buffer synchronously. - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); + SemaphoreSlim sem = EnsureAsyncActiveSemaphoreInitialized(); Task semaphoreLockTask = sem.WaitAsync(cancellationToken); if (semaphoreLockTask.IsCompletedSuccessfully) { @@ -1087,6 +1078,7 @@ public override ValueTask WriteAsync(ReadOnlyMemory buffer, CancellationTo Debug.Assert(_stream != null); Debug.Assert(_stream.CanWrite); Debug.Assert(_bufferSize > 0); + Debug.Assert(_asyncActiveSemaphore != null); Debug.Assert(semaphoreLockTask != null); // See the LARGE COMMENT in Write(..) for the explanation of the write buffer algorithm. @@ -1161,8 +1153,7 @@ public override ValueTask WriteAsync(ReadOnlyMemory buffer, CancellationTo } finally { - SemaphoreSlim sem = LazyEnsureAsyncActiveSemaphoreInitialized(); - sem.Release(); + _asyncActiveSemaphore.Release(); } } @@ -1299,7 +1290,7 @@ private async Task CopyToAsyncCore(Stream destination, int bufferSize, Cancellat Debug.Assert(_stream != null); // Synchronize async operations as does Read/WriteAsync. - await LazyEnsureAsyncActiveSemaphoreInitialized().WaitAsync(cancellationToken).ConfigureAwait(false); + await EnsureAsyncActiveSemaphoreInitialized().WaitAsync(cancellationToken).ConfigureAwait(false); try { int readBytes = _readLen - _readPos; @@ -1321,7 +1312,10 @@ private async Task CopyToAsyncCore(Stream destination, int bufferSize, Cancellat // Our buffer is now clear. Copy data directly from the source stream to the destination stream. await _stream.CopyToAsync(destination, bufferSize, cancellationToken).ConfigureAwait(false); } - finally { _asyncActiveSemaphore!.Release(); } + finally + { + _asyncActiveSemaphore.Release(); + } } } // class BufferedStream } // namespace diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Unix.cs index a411b09746be..38dc6d2d0117 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Unix.cs @@ -4,6 +4,7 @@ using Microsoft.Win32.SafeHandles; using System.Diagnostics; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Threading; using System.Threading.Tasks; @@ -333,7 +334,9 @@ private void FlushOSBuffer() private void FlushWriteBufferForWriteByte() { +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/44542 _asyncState?.Wait(); +#pragma warning restore CA1416 try { FlushWriteBuffer(); } finally { _asyncState?.Release(); } } @@ -349,47 +352,6 @@ private void FlushWriteBuffer() } } - /// Asynchronously clears all buffers for this stream, causing any buffered data to be written to the underlying device. - /// The token to monitor for cancellation requests. - /// A task that represents the asynchronous flush operation. - private Task FlushAsyncInternal(CancellationToken cancellationToken) - { - if (cancellationToken.IsCancellationRequested) - { - return Task.FromCanceled(cancellationToken); - } - if (_fileHandle.IsClosed) - { - throw Error.GetFileNotOpen(); - } - - // As with Win32FileStream, flush the buffers synchronously to avoid race conditions. - try - { - FlushInternalBuffer(); - } - catch (Exception e) - { - return Task.FromException(e); - } - - // We then separately flush to disk asynchronously. This is only - // necessary if we support writing; otherwise, we're done. - if (CanWrite) - { - return Task.Factory.StartNew( - static state => ((FileStream)state!).FlushOSBuffer(), - this, - cancellationToken, - TaskCreationOptions.DenyChildAttach, - TaskScheduler.Default); - } - else - { - return Task.CompletedTask; - } - } - /// Sets the length of this stream to the given value. /// The new length of the stream. private void SetLengthInternal(long value) @@ -583,7 +545,9 @@ private unsafe int ReadNative(Span buffer) /// Reads from the file handle into the buffer, overwriting anything in it. private int FillReadBufferForReadByte() { +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/44542 _asyncState?.Wait(); +#pragma warning restore CA1416 try { return ReadNative(_buffer); } finally { _asyncState?.Release(); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Windows.cs b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Windows.cs index 22ffd8005a69..6e7b5480509e 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Windows.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.Windows.cs @@ -1547,34 +1547,6 @@ public void UnsafeOnCompleted(Action continuation) } } - private Task FlushAsyncInternal(CancellationToken cancellationToken) - { - if (cancellationToken.IsCancellationRequested) - return Task.FromCanceled(cancellationToken); - - if (_fileHandle.IsClosed) - throw Error.GetFileNotOpen(); - - // TODO: https://github.com/dotnet/runtime/issues/27643 (stop doing this synchronous work!!). - // The always synchronous data transfer between the OS and the internal buffer is intentional - // because this is needed to allow concurrent async IO requests. Concurrent data transfer - // between the OS and the internal buffer will result in race conditions. Since FlushWrite and - // FlushRead modify internal state of the stream and transfer data between the OS and the - // internal buffer, they cannot be truly async. We will, however, flush the OS file buffers - // asynchronously because it doesn't modify any internal state of the stream and is potentially - // a long running process. - try - { - FlushInternalBuffer(); - } - catch (Exception e) - { - return Task.FromException(e); - } - - return Task.CompletedTask; - } - private void LockInternal(long position, long length) { int positionLow = unchecked((int)(position)); diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs index 460496561575..415419f85b4b 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs @@ -298,6 +298,40 @@ public override Task FlushAsync(CancellationToken cancellationToken) return FlushAsyncInternal(cancellationToken); } + /// Asynchronously clears all buffers for this stream, causing any buffered data to be written to the underlying device. + /// The token to monitor for cancellation requests. + /// A task that represents the asynchronous flush operation. + private Task FlushAsyncInternal(CancellationToken cancellationToken) + { + if (cancellationToken.IsCancellationRequested) + { + return Task.FromCanceled(cancellationToken); + } + if (_fileHandle.IsClosed) + { + throw Error.GetFileNotOpen(); + } + + // TODO: https://github.com/dotnet/runtime/issues/27643 (stop doing this synchronous work!!). + // The always synchronous data transfer between the OS and the internal buffer is intentional + // because this is needed to allow concurrent async IO requests. Concurrent data transfer + // between the OS and the internal buffer will result in race conditions. Since FlushWrite and + // FlushRead modify internal state of the stream and transfer data between the OS and the + // internal buffer, they cannot be truly async. We will, however, flush the OS file buffers + // asynchronously because it doesn't modify any internal state of the stream and is potentially + // a long running process. + try + { + FlushInternalBuffer(); + } + catch (Exception e) + { + return Task.FromException(e); + } + + return Task.CompletedTask; + } + public override int Read(byte[] buffer, int offset, int count) { ValidateReadWriteArgs(buffer, offset, count); diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs index a34ec709b6da..6a364614ef99 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs @@ -3,6 +3,7 @@ using System.Buffers; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Threading; @@ -14,13 +15,18 @@ public abstract partial class Stream : MarshalByRefObject, IDisposable, IAsyncDi { public static readonly Stream Null = new NullStream(); - /// To implement Async IO operations on streams that don't support async IO - private SemaphoreSlim? _asyncActiveSemaphore; + /// To serialize async operations on streams that don't implement their own. + private protected SemaphoreSlim? _asyncActiveSemaphore; - internal SemaphoreSlim EnsureAsyncActiveSemaphoreInitialized() => + [MemberNotNull(nameof(_asyncActiveSemaphore))] + private protected SemaphoreSlim EnsureAsyncActiveSemaphoreInitialized() => // Lazily-initialize _asyncActiveSemaphore. As we're never accessing the SemaphoreSlim's // WaitHandle, we don't need to worry about Disposing it in the case of a race condition. - LazyInitializer.EnsureInitialized(ref _asyncActiveSemaphore, () => new SemaphoreSlim(1, 1)); +#pragma warning disable CS8774 // We lack a NullIffNull annotation for Volatile.Read + Volatile.Read(ref _asyncActiveSemaphore) ?? +#pragma warning restore CS8774 + Interlocked.CompareExchange(ref _asyncActiveSemaphore, new SemaphoreSlim(1, 1), null) ?? + _asyncActiveSemaphore; public abstract bool CanRead { get; } public abstract bool CanWrite { get; } @@ -212,7 +218,9 @@ public virtual ValueTask DisposeAsync() } else { +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/44543 semaphore.Wait(); +#pragma warning restore CA1416 } // Create the task to asynchronously do a Read. This task serves both @@ -367,7 +375,9 @@ private struct ReadWriteParameters // struct for arguments to Read and Write cal } else { +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/44543 semaphore.Wait(); // synchronously wait here +#pragma warning restore CA1416 } // Create the task to asynchronously do a Write. This task serves both diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs b/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs index ed71b29e4258..7b1004b0800c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs @@ -471,18 +471,18 @@ public override void WriteLine(string? value) } [MethodImpl(MethodImplOptions.NoInlining)] // prevent WriteSpan from bloating call sites - public override void WriteLine(ReadOnlySpan value) + public override void WriteLine(ReadOnlySpan buffer) { if (GetType() == typeof(StreamWriter)) { CheckAsyncTaskInProgress(); - WriteSpan(value, appendNewLine: true); + WriteSpan(buffer, appendNewLine: true); } else { // If a derived class may have overridden existing WriteLine behavior, // we need to make sure we use it. - base.WriteLine(value); + base.WriteLine(buffer); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/TextReader.cs b/src/libraries/System.Private.CoreLib/src/System/IO/TextReader.cs index 8321c525d2a2..05211d6dc7a3 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/TextReader.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/TextReader.cs @@ -249,20 +249,16 @@ public virtual Task ReadAsync(char[] buffer, int index, int count) ReadAsync(array.Array!, array.Offset, array.Count) : Task.Factory.StartNew(static state => { - var t = (Tuple>)state!; + var t = (TupleSlim>)state!; return t.Item1.Read(t.Item2.Span); - }, Tuple.Create(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); + }, new TupleSlim>(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); - internal virtual ValueTask ReadAsyncInternal(Memory buffer, CancellationToken cancellationToken) - { - var tuple = new Tuple>(this, buffer); - return new ValueTask(Task.Factory.StartNew(static state => + internal virtual ValueTask ReadAsyncInternal(Memory buffer, CancellationToken cancellationToken) => + new ValueTask(Task.Factory.StartNew(static state => { - var t = (Tuple>)state!; + var t = (TupleSlim>)state!; return t.Item1.Read(t.Item2.Span); - }, - tuple, cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); - } + }, new TupleSlim>(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); public virtual Task ReadBlockAsync(char[] buffer, int index, int count) { @@ -287,9 +283,9 @@ public virtual Task ReadBlockAsync(char[] buffer, int index, int count) ReadBlockAsync(array.Array!, array.Offset, array.Count) : Task.Factory.StartNew(static state => { - var t = (Tuple>)state!; + var t = (TupleSlim>)state!; return t.Item1.ReadBlock(t.Item2.Span); - }, Tuple.Create(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); + }, new TupleSlim>(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default)); internal async ValueTask ReadBlockAsyncInternal(Memory buffer, CancellationToken cancellationToken) { diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs b/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs index 65e94282e5d2..762d1881df7c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs @@ -538,27 +538,19 @@ public virtual void WriteLine(string format, params object?[] arg) } #region Task based Async APIs - public virtual Task WriteAsync(char value) - { - var tuple = new Tuple(this, value); - return Task.Factory.StartNew(static state => + public virtual Task WriteAsync(char value) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.Write(t.Item2); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, value), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - public virtual Task WriteAsync(string? value) - { - var tuple = new Tuple(this, value); - return Task.Factory.StartNew(static state => + public virtual Task WriteAsync(string? value) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.Write(t.Item2); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, value), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); /// /// Equivalent to WriteAsync(stringBuilder.ToString()) however it uses the @@ -592,16 +584,12 @@ public Task WriteAsync(char[]? buffer) return WriteAsync(buffer, 0, buffer.Length); } - public virtual Task WriteAsync(char[] buffer, int index, int count) - { - var tuple = new Tuple(this, buffer, index, count); - return Task.Factory.StartNew(static state => + public virtual Task WriteAsync(char[] buffer, int index, int count) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.Write(t.Item2, t.Item3, t.Item4); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, buffer, index, count), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); public virtual Task WriteAsync(ReadOnlyMemory buffer, CancellationToken cancellationToken = default) => cancellationToken.IsCancellationRequested ? Task.FromCanceled(cancellationToken) : @@ -609,31 +597,23 @@ public virtual Task WriteAsync(char[] buffer, int index, int count) WriteAsync(array.Array!, array.Offset, array.Count) : Task.Factory.StartNew(static state => { - var t = (Tuple>)state!; + var t = (TupleSlim>)state!; t.Item1.Write(t.Item2.Span); - }, Tuple.Create(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); + }, new TupleSlim>(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - public virtual Task WriteLineAsync(char value) - { - var tuple = new Tuple(this, value); - return Task.Factory.StartNew(static state => + public virtual Task WriteLineAsync(char value) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.WriteLine(t.Item2); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, value), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - public virtual Task WriteLineAsync(string? value) - { - var tuple = new Tuple(this, value); - return Task.Factory.StartNew(static state => + public virtual Task WriteLineAsync(string? value) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.WriteLine(t.Item2); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, value), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); /// /// Equivalent to WriteLineAsync(stringBuilder.ToString()) however it uses the @@ -668,16 +648,12 @@ public Task WriteLineAsync(char[]? buffer) return WriteLineAsync(buffer, 0, buffer.Length); } - public virtual Task WriteLineAsync(char[] buffer, int index, int count) - { - var tuple = new Tuple(this, buffer, index, count); - return Task.Factory.StartNew(static state => + public virtual Task WriteLineAsync(char[] buffer, int index, int count) => + Task.Factory.StartNew(static state => { - var t = (Tuple)state!; + var t = (TupleSlim)state!; t.Item1.WriteLine(t.Item2, t.Item3, t.Item4); - }, - tuple, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); - } + }, new TupleSlim(this, buffer, index, count), CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); public virtual Task WriteLineAsync(ReadOnlyMemory buffer, CancellationToken cancellationToken = default) => cancellationToken.IsCancellationRequested ? Task.FromCanceled(cancellationToken) : @@ -685,9 +661,9 @@ public virtual Task WriteLineAsync(char[] buffer, int index, int count) WriteLineAsync(array.Array!, array.Offset, array.Count) : Task.Factory.StartNew(static state => { - var t = (Tuple>)state!; + var t = (TupleSlim>)state!; t.Item1.WriteLine(t.Item2.Span); - }, Tuple.Create(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); + }, new TupleSlim>(this, buffer), cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); public virtual Task WriteLineAsync() { diff --git a/src/libraries/System.Private.CoreLib/src/System/Memory.cs b/src/libraries/System.Private.CoreLib/src/System/Memory.cs index c93dfc4baed1..531ec481e044 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Memory.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Memory.cs @@ -166,9 +166,6 @@ internal Memory(object? obj, int start, int length) // 'obj is T[]' below also handles things like int[] <-> uint[] being convertible Debug.Assert((obj == null) || (typeof(T) == typeof(char) && obj is string) -#if FEATURE_UTF8STRING - || ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && obj is Utf8String) -#endif // FEATURE_UTF8STRING || (obj is T[]) || (obj is MemoryManager)); @@ -218,14 +215,6 @@ public override string ToString() { return (_object is string str) ? str.Substring(_index, _length) : Span.ToString(); } -#if FEATURE_UTF8STRING - else if (typeof(T) == typeof(Char8)) - { - // TODO_UTF8STRING: Call into optimized transcoding routine when it's available. - Span span = Span; - return Encoding.UTF8.GetString(new ReadOnlySpan(ref Unsafe.As(ref MemoryMarshal.GetReference(span)), span.Length)); - } -#endif // FEATURE_UTF8STRING return string.Format("System.Memory<{0}>[{1}]", typeof(T).Name, _length); } @@ -302,13 +291,6 @@ public unsafe Span Span refToReturn = ref Unsafe.As(ref Unsafe.As(tmpObject).GetRawStringData()); lengthOfUnderlyingSpan = Unsafe.As(tmpObject).Length; } -#if FEATURE_UTF8STRING - else if ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && tmpObject.GetType() == typeof(Utf8String)) - { - refToReturn = ref Unsafe.As(ref Unsafe.As(tmpObject).DangerousGetMutableReference()); - lengthOfUnderlyingSpan = Unsafe.As(tmpObject).Length; - } -#endif // FEATURE_UTF8STRING else if (RuntimeHelpers.ObjectHasComponentSize(tmpObject)) { // We know the object is not null, it's not a string, and it is variable-length. The only @@ -423,14 +405,6 @@ public unsafe MemoryHandle Pin() ref char stringData = ref Unsafe.Add(ref s.GetRawStringData(), _index); return new MemoryHandle(Unsafe.AsPointer(ref stringData), handle); } -#if FEATURE_UTF8STRING - else if ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && tmpObject is Utf8String utf8String) - { - GCHandle handle = GCHandle.Alloc(tmpObject, GCHandleType.Pinned); - ref byte stringData = ref utf8String.DangerousGetMutableReference(_index); - return new MemoryHandle(Unsafe.AsPointer(ref stringData), handle); - } -#endif // FEATURE_UTF8STRING else if (RuntimeHelpers.ObjectHasComponentSize(tmpObject)) { // 'tmpObject is T[]' below also handles things like int[] <-> uint[] being convertible diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.Parsing.cs b/src/libraries/System.Private.CoreLib/src/System/Number.Parsing.cs index 0d7133bc027e..3abb9dfd8715 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.Parsing.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.Parsing.cs @@ -1096,7 +1096,7 @@ internal static ParsingStatus TryParseUInt32IntegerStyle(ReadOnlySpan valu } /// Parses uint limited to styles that make up NumberStyles.HexNumber. - private static ParsingStatus TryParseUInt32HexNumberStyle(ReadOnlySpan value, NumberStyles styles, out uint result) + internal static ParsingStatus TryParseUInt32HexNumberStyle(ReadOnlySpan value, NumberStyles styles, out uint result) { Debug.Assert((styles & ~NumberStyles.HexNumber) == 0, "Only handles subsets of HexNumber format"); diff --git a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Unix.cs index d85004c39946..f4d8b7a4bdf1 100644 --- a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Unix.cs @@ -14,10 +14,10 @@ internal static partial class PasteArguments /// internal static string Paste(IEnumerable arguments, bool pasteFirstArgumentUsingArgV0Rules) { - var stringBuilder = new StringBuilder(); + var stringBuilder = new ValueStringBuilder(stackalloc char[256]); foreach (string argument in arguments) { - AppendArgument(stringBuilder, argument); + AppendArgument(ref stringBuilder, argument); } return stringBuilder.ToString(); } diff --git a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Windows.cs b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Windows.cs index fb1394fa4e12..06f7e9d43dd4 100644 --- a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Windows.cs +++ b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.Windows.cs @@ -14,7 +14,7 @@ internal static partial class PasteArguments /// internal static string Paste(IEnumerable arguments, bool pasteFirstArgumentUsingArgV0Rules) { - var stringBuilder = new StringBuilder(); + var stringBuilder = new ValueStringBuilder(stackalloc char[256]); foreach (string argument in arguments) { @@ -53,7 +53,7 @@ internal static string Paste(IEnumerable arguments, bool pasteFirstArgum } else { - AppendArgument(stringBuilder, argument); + AppendArgument(ref stringBuilder, argument); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.cs b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.cs index 189d2f1bf056..39008fc10106 100644 --- a/src/libraries/System.Private.CoreLib/src/System/PasteArguments.cs +++ b/src/libraries/System.Private.CoreLib/src/System/PasteArguments.cs @@ -7,7 +7,7 @@ namespace System { internal static partial class PasteArguments { - internal static void AppendArgument(StringBuilder stringBuilder, string argument) + internal static void AppendArgument(ref ValueStringBuilder stringBuilder, string argument) { if (stringBuilder.Length != 0) { diff --git a/src/libraries/System.Private.CoreLib/src/System/ReadOnlyMemory.cs b/src/libraries/System.Private.CoreLib/src/System/ReadOnlyMemory.cs index e26612c07ef6..105273a66492 100644 --- a/src/libraries/System.Private.CoreLib/src/System/ReadOnlyMemory.cs +++ b/src/libraries/System.Private.CoreLib/src/System/ReadOnlyMemory.cs @@ -101,9 +101,6 @@ internal ReadOnlyMemory(object? obj, int start, int length) // 'obj is T[]' below also handles things like int[] <-> uint[] being convertible Debug.Assert((obj == null) || (typeof(T) == typeof(char) && obj is string) -#if FEATURE_UTF8STRING - || ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && obj is Utf8String) -#endif // FEATURE_UTF8STRING || (obj is T[]) || (obj is MemoryManager)); @@ -147,14 +144,6 @@ public override string ToString() { return (_object is string str) ? str.Substring(_index, _length) : Span.ToString(); } -#if FEATURE_UTF8STRING - else if (typeof(T) == typeof(Char8)) - { - // TODO_UTF8STRING: Call into optimized transcoding routine when it's available. - ReadOnlySpan span = Span; - return Encoding.UTF8.GetString(new ReadOnlySpan(ref Unsafe.As(ref MemoryMarshal.GetReference(span)), span.Length)); - } -#endif // FEATURE_UTF8STRING return string.Format("System.ReadOnlyMemory<{0}>[{1}]", typeof(T).Name, _length); } @@ -224,13 +213,6 @@ public unsafe ReadOnlySpan Span refToReturn = ref Unsafe.As(ref Unsafe.As(tmpObject).GetRawStringData()); lengthOfUnderlyingSpan = Unsafe.As(tmpObject).Length; } -#if FEATURE_UTF8STRING - else if ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && tmpObject.GetType() == typeof(Utf8String)) - { - refToReturn = ref Unsafe.As(ref Unsafe.As(tmpObject).DangerousGetMutableReference()); - lengthOfUnderlyingSpan = Unsafe.As(tmpObject).Length; - } -#endif // FEATURE_UTF8STRING else if (RuntimeHelpers.ObjectHasComponentSize(tmpObject)) { // We know the object is not null, it's not a string, and it is variable-length. The only @@ -338,14 +320,6 @@ public unsafe MemoryHandle Pin() ref char stringData = ref Unsafe.Add(ref s.GetRawStringData(), _index); return new MemoryHandle(Unsafe.AsPointer(ref stringData), handle); } -#if FEATURE_UTF8STRING - else if ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && tmpObject is Utf8String utf8String) - { - GCHandle handle = GCHandle.Alloc(tmpObject, GCHandleType.Pinned); - ref byte stringData = ref utf8String.DangerousGetMutableReference(_index); - return new MemoryHandle(Unsafe.AsPointer(ref stringData), handle); - } -#endif // FEATURE_UTF8STRING else if (RuntimeHelpers.ObjectHasComponentSize(tmpObject)) { // 'tmpObject is T[]' below also handles things like int[] <-> uint[] being convertible diff --git a/src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.cs b/src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.cs index 465fc78674df..38fea0090ca9 100644 --- a/src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.cs +++ b/src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.cs @@ -319,13 +319,6 @@ public override string ToString() { return new string(new ReadOnlySpan(ref Unsafe.As(ref _pointer.Value), _length)); } -#if FEATURE_UTF8STRING - else if (typeof(T) == typeof(Char8)) - { - // TODO_UTF8STRING: Call into optimized transcoding routine when it's available. - return Encoding.UTF8.GetString(new ReadOnlySpan(ref Unsafe.As(ref _pointer.Value), _length)); - } -#endif // FEATURE_UTF8STRING return string.Format("System.ReadOnlySpan<{0}>[{1}]", typeof(T).Name, _length); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/ParameterInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/ParameterInfo.cs index c9ec1cfb7dd2..bae3bdea9ff3 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/ParameterInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/ParameterInfo.cs @@ -46,8 +46,8 @@ public virtual object[] GetCustomAttributes(Type attributeType, bool inherit) return Array.Empty(); } - public virtual Type[] GetOptionalCustomModifiers() => Array.Empty(); - public virtual Type[] GetRequiredCustomModifiers() => Array.Empty(); + public virtual Type[] GetOptionalCustomModifiers() => Type.EmptyTypes; + public virtual Type[] GetRequiredCustomModifiers() => Type.EmptyTypes; public virtual int MetadataToken => MetadataToken_ParamDef; diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/PropertyInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/PropertyInfo.cs index c13ad761a075..1208a88b6b3d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/PropertyInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/PropertyInfo.cs @@ -33,8 +33,8 @@ public abstract class PropertyInfo : MemberInfo public MethodInfo? GetSetMethod() => GetSetMethod(nonPublic: false); public abstract MethodInfo? GetSetMethod(bool nonPublic); - public virtual Type[] GetOptionalCustomModifiers() => Array.Empty(); - public virtual Type[] GetRequiredCustomModifiers() => Array.Empty(); + public virtual Type[] GetOptionalCustomModifiers() => Type.EmptyTypes; + public virtual Type[] GetRequiredCustomModifiers() => Type.EmptyTypes; [DebuggerHidden] [DebuggerStepThrough] diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureGenericParameterType.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureGenericParameterType.cs index dcc0fa88211c..58662a655a49 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureGenericParameterType.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureGenericParameterType.cs @@ -30,8 +30,8 @@ protected SignatureGenericParameterType(int position) internal sealed override SignatureType? ElementType => null; public sealed override int GetArrayRank() => throw new ArgumentException(SR.Argument_HasToBeArrayClass); public sealed override Type GetGenericTypeDefinition() => throw new InvalidOperationException(SR.InvalidOperation_NotGenericType); - public sealed override Type[] GetGenericArguments() => Array.Empty(); - public sealed override Type[] GenericTypeArguments => Array.Empty(); + public sealed override Type[] GetGenericArguments() => Type.EmptyTypes; + public sealed override Type[] GenericTypeArguments => Type.EmptyTypes; public sealed override int GenericParameterPosition => _position; public abstract override string Name { get; } public sealed override string? Namespace => null; diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureHasElementType.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureHasElementType.cs index 9c4d73d5b189..4226d61270ad 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureHasElementType.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/SignatureHasElementType.cs @@ -31,8 +31,8 @@ protected SignatureHasElementType(SignatureType elementType) internal sealed override SignatureType? ElementType => _elementType; public abstract override int GetArrayRank(); public sealed override Type GetGenericTypeDefinition() => throw new InvalidOperationException(SR.InvalidOperation_NotGenericType); - public sealed override Type[] GetGenericArguments() => Array.Empty(); - public sealed override Type[] GenericTypeArguments => Array.Empty(); + public sealed override Type[] GetGenericArguments() => Type.EmptyTypes; + public sealed override Type[] GenericTypeArguments => Type.EmptyTypes; public sealed override int GenericParameterPosition => throw new InvalidOperationException(SR.Arg_NotGenericParameter); public sealed override string Name => _elementType.Name + Suffix; public sealed override string? Namespace => _elementType.Namespace; diff --git a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.Core.cs b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.Core.cs index bb2cea4df749..03f1be63d143 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.Core.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.Core.cs @@ -49,7 +49,7 @@ private object DeserializeObject(int typeIndex) throw new NotSupportedException(SR.NotSupported_ResourceObjectSerialization); } - if (_binaryFormatter == null) + if (Volatile.Read(ref _binaryFormatter) is null) { if (!InitializeBinaryFormatter()) { @@ -78,24 +78,23 @@ private bool InitializeBinaryFormatter() // If BinaryFormatter support is disabled for the app, the linker will replace this entire // method body with "return false;", skipping all reflection code below. - LazyInitializer.EnsureInitialized(ref s_binaryFormatterType, static () => - Type.GetType("System.Runtime.Serialization.Formatters.Binary.BinaryFormatter, System.Runtime.Serialization.Formatters, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", - throwOnError: true)!); - - LazyInitializer.EnsureInitialized(ref s_deserializeMethod, static () => + if (Volatile.Read(ref s_binaryFormatterType) is null || Volatile.Read(ref s_deserializeMethod) is null) { - MethodInfo binaryFormatterDeserialize = s_binaryFormatterType!.GetMethod("Deserialize", new Type[] { typeof(Stream) })!; - - // create an unbound delegate that can accept a BinaryFormatter instance as object - return (Func)typeof(ResourceReader) - .GetMethod(nameof(CreateUntypedDelegate), BindingFlags.NonPublic | BindingFlags.Static)! - .MakeGenericMethod(s_binaryFormatterType) - .Invoke(null, new object[] { binaryFormatterDeserialize })!; - }); + Type binaryFormatterType = Type.GetType("System.Runtime.Serialization.Formatters.Binary.BinaryFormatter, System.Runtime.Serialization.Formatters", throwOnError: true)!; + MethodInfo? binaryFormatterDeserialize = binaryFormatterType.GetMethod("Deserialize", new[] { typeof(Stream) }); + Func? deserializeMethod = (Func?) + typeof(ResourceReader) + .GetMethod(nameof(CreateUntypedDelegate), BindingFlags.NonPublic | BindingFlags.Static) + ?.MakeGenericMethod(binaryFormatterType) + .Invoke(null, new[] { binaryFormatterDeserialize }); + + Interlocked.CompareExchange(ref s_binaryFormatterType, binaryFormatterType, null); + Interlocked.CompareExchange(ref s_deserializeMethod, deserializeMethod, null); + } - _binaryFormatter = Activator.CreateInstance(s_binaryFormatterType!)!; + Volatile.Write(ref _binaryFormatter, Activator.CreateInstance(s_binaryFormatterType!)); - return true; // initialization successful + return s_deserializeMethod != null; } // generic method that we specialize at runtime once we've loaded the BinaryFormatter type diff --git a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.cs b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.cs index 0ab52cc06124..54c921a643af 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceReader.cs @@ -27,26 +27,16 @@ namespace System.Resources // default file format. // - internal struct ResourceLocator + internal readonly struct ResourceLocator { - internal object? _value; // Can be null. - internal int _dataPos; - internal ResourceLocator(int dataPos, object? value) { - _dataPos = dataPos; - _value = value; + DataPosition = dataPos; + Value = value; } - internal int DataPosition => _dataPos; - - // Allows adding in profiling data in a future version, or a special - // resource profiling build. We could also use WeakReference. - internal object? Value - { - get => _value; - set => _value = value; - } + internal int DataPosition { get; } + internal object? Value { get; } internal static bool CanCache(ResourceTypeCode value) { @@ -800,8 +790,12 @@ private void _ReadResources() // Read RuntimeResourceSet header // Do file version check int version = _store.ReadInt32(); - if (version != RuntimeResourceSet.Version && version != 1) - throw new ArgumentException(SR.Format(SR.Arg_ResourceFileUnsupportedVersion, RuntimeResourceSet.Version, version)); + + // File format version number + const int CurrentVersion = 2; + + if (version != CurrentVersion && version != 1) + throw new ArgumentException(SR.Format(SR.Arg_ResourceFileUnsupportedVersion, CurrentVersion, version)); _version = version; _numResources = _store.ReadInt32(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceSet.cs b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceSet.cs index 6ad05b686929..63df6029e027 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceSet.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Resources/ResourceSet.cs @@ -1,18 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -/*============================================================ -** -** -** -** -** -** Purpose: Culture-specific collection of resources. -** -** -===========================================================*/ - using System.Collections; +using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO; @@ -29,15 +19,15 @@ namespace System.Resources public class ResourceSet : IDisposable, IEnumerable { protected IResourceReader Reader = null!; - internal Hashtable? Table; - private Hashtable? _caseInsensitiveTable; // For case-insensitive lookups. + private Dictionary? _table; + private Dictionary? _caseInsensitiveTable; // For case-insensitive lookups. protected ResourceSet() { // To not inconvenience people subclassing us, we should allocate a new // hashtable here just so that Table is set to something. - Table = new Hashtable(); + _table = new Dictionary(); } // For RuntimeResourceSet, ignore the Table parameter - it's a wasted @@ -96,7 +86,7 @@ protected virtual void Dispose(bool disposing) } Reader = null!; _caseInsensitiveTable = null; - Table = null; + _table = null; } public void Dispose() @@ -134,10 +124,12 @@ IEnumerator IEnumerable.GetEnumerator() private IDictionaryEnumerator GetEnumeratorHelper() { - Hashtable? copyOfTable = Table; // Avoid a race with Dispose - if (copyOfTable == null) + IDictionary? copyOfTableAsIDictionary = _table; // Avoid a race with Dispose + if (copyOfTableAsIDictionary == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - return copyOfTable.GetEnumerator(); + + // Use IDictionary.GetEnumerator() for backward compatibility. Callers expect the enumerator to return DictionaryEntry instances. + return copyOfTableAsIDictionary.GetEnumerator(); } // Look up a string value for a resource given its name. @@ -145,48 +137,37 @@ private IDictionaryEnumerator GetEnumeratorHelper() public virtual string? GetString(string name) { object? obj = GetObjectInternal(name); - try - { - return (string?)obj; - } - catch (InvalidCastException) - { - throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResourceNotString_Name, name)); - } + if (obj is string s) + return s; + + if (obj is null) + return null; + + throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResourceNotString_Name, name)); } public virtual string? GetString(string name, bool ignoreCase) { - object? obj; - string? s; - // Case-sensitive lookup - obj = GetObjectInternal(name); - try - { - s = (string?)obj; - } - catch (InvalidCastException) - { + object? obj = GetObjectInternal(name); + if (obj is string s) + return s; + + if (obj is not null) throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResourceNotString_Name, name)); - } - // case-sensitive lookup succeeded - if (s != null || !ignoreCase) - { - return s; - } + if (!ignoreCase) + return null; // Try doing a case-insensitive lookup obj = GetCaseInsensitiveObjectInternal(name); - try - { - return (string?)obj; - } - catch (InvalidCastException) - { - throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResourceNotString_Name, name)); - } + if (obj is string si) + return si; + + if (obj is null) + return null; + + throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResourceNotString_Name, name)); } // Look up an object value for a resource given its name. @@ -208,13 +189,12 @@ private IDictionaryEnumerator GetEnumeratorHelper() protected virtual void ReadResources() { - Debug.Assert(Table != null); + Debug.Assert(_table != null); Debug.Assert(Reader != null); IDictionaryEnumerator en = Reader.GetEnumerator(); while (en.MoveNext()) { - object? value = en.Value; - Table.Add(en.Key, value); + _table.Add(en.Key, en.Value); } // While technically possible to close the Reader here, don't close it // to help with some WinRes lifetime issues. @@ -225,35 +205,38 @@ protected virtual void ReadResources() if (name == null) throw new ArgumentNullException(nameof(name)); - Hashtable? copyOfTable = Table; // Avoid a race with Dispose + Dictionary? copyOfTable = _table; // Avoid a race with Dispose if (copyOfTable == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - return copyOfTable[name]; + copyOfTable.TryGetValue(name, out object? value); + return value; } private object? GetCaseInsensitiveObjectInternal(string name) { - Hashtable? copyOfTable = Table; // Avoid a race with Dispose + Dictionary? copyOfTable = _table; // Avoid a race with Dispose if (copyOfTable == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - Hashtable? caseTable = _caseInsensitiveTable; // Avoid a race condition with Close + Dictionary? caseTable = _caseInsensitiveTable; // Avoid a race condition with Close if (caseTable == null) { - caseTable = new Hashtable(StringComparer.OrdinalIgnoreCase); - - IDictionaryEnumerator en = copyOfTable.GetEnumerator(); - while (en.MoveNext()) + caseTable = new Dictionary(copyOfTable.Count, StringComparer.OrdinalIgnoreCase); + foreach (var item in copyOfTable) { - caseTable.Add(en.Key, en.Value); + if (item.Key is not string s) + continue; + + caseTable.Add(s, item.Value); } _caseInsensitiveTable = caseTable; } - return caseTable[name]; + caseTable.TryGetValue(name, out object? value); + return value; } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Resources/RuntimeResourceSet.cs b/src/libraries/System.Private.CoreLib/src/System/Resources/RuntimeResourceSet.cs index f6de75e7e3e9..90c55d9f3040 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Resources/RuntimeResourceSet.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Resources/RuntimeResourceSet.cs @@ -1,18 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -/*============================================================ -** -** -** -** -** -** Purpose: CultureInfo-specific collection of resources. -** -** -===========================================================*/ - -#nullable enable using System.Collections; using System.Collections.Generic; using System.Diagnostics; @@ -169,8 +157,6 @@ namespace System.Resources #endif sealed class RuntimeResourceSet : ResourceSet, IEnumerable { - internal const int Version = 2; // File format version number - // Cache for resources. Key is the resource name, which can be cached // for arbitrarily long times, since the object is usually a string // literal that will live for the lifetime of the appdomain. The @@ -178,7 +164,7 @@ sealed class RuntimeResourceSet : ResourceSet, IEnumerable private Dictionary? _resCache; - // For our special load-on-demand reader, cache the cast. The + // For our special load-on-demand reader. The // RuntimeResourceSet's implementation knows how to treat this reader specially. private ResourceReader? _defaultReader; @@ -189,32 +175,19 @@ sealed class RuntimeResourceSet : ResourceSet, IEnumerable // don't exist. private Dictionary? _caseInsensitiveTable; - // If we're not using our custom reader, then enumerate through all - // the resources once, adding them into the table. - private bool _haveReadFromReader; - #if !RESOURCES_EXTENSIONS - internal RuntimeResourceSet(string fileName) : base(false) + internal RuntimeResourceSet(string fileName) : + this(new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { - _resCache = new Dictionary(FastResourceComparer.Default); - Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); - _defaultReader = new ResourceReader(stream, _resCache, false); - Reader = _defaultReader; } - internal RuntimeResourceSet(Stream stream, bool permitDeserialization = false) : base(false) + internal RuntimeResourceSet(Stream stream, bool permitDeserialization = false) : + base(false) { _resCache = new Dictionary(FastResourceComparer.Default); _defaultReader = new ResourceReader(stream, _resCache, permitDeserialization); - Reader = _defaultReader; } #else - private -#if NETFRAMEWORK - new -#endif - IResourceReader Reader => _defaultReader!; - internal RuntimeResourceSet(IResourceReader reader) : // explicitly do not call IResourceReader constructor since it caches all resources // the purpose of RuntimeResourceSet is to lazily load and cache. @@ -235,32 +208,18 @@ internal RuntimeResourceSet(Stream stream, bool permitDeserialization = false) : protected override void Dispose(bool disposing) { - if (Reader == null) + if (_defaultReader is null) return; if (disposing) { - lock (Reader) - { - _resCache = null; - if (_defaultReader != null) - { - _defaultReader.Close(); - _defaultReader = null; - } - _caseInsensitiveTable = null; - // Set Reader to null to avoid a race in GetObject. - base.Dispose(disposing); - } - } - else - { - // Just to make sure we always clear these fields in the future... - _resCache = null; - _caseInsensitiveTable = null; - _defaultReader = null; - base.Dispose(disposing); + _defaultReader?.Close(); } + + _defaultReader = null; + _resCache = null; + _caseInsensitiveTable = null; + base.Dispose(disposing); } public override IDictionaryEnumerator GetEnumerator() @@ -275,14 +234,13 @@ IEnumerator IEnumerable.GetEnumerator() private IDictionaryEnumerator GetEnumeratorHelper() { - IResourceReader copyOfReader = Reader; - if (copyOfReader == null || _resCache == null) + ResourceReader? reader = _defaultReader; + if (reader is null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - return copyOfReader.GetEnumerator(); + return reader.GetEnumerator(); } - public override string? GetString(string key) { object? o = GetObject(key, false, true); @@ -309,158 +267,104 @@ private IDictionaryEnumerator GetEnumeratorHelper() { if (key == null) throw new ArgumentNullException(nameof(key)); - if (Reader == null || _resCache == null) + + ResourceReader? reader = _defaultReader; + Dictionary? cache = _resCache; + if (reader is null || cache is null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - object? value = null; - ResourceLocator resLocation; + object? value; + ResourceLocator resEntry; - lock (Reader) + lock (cache) { - if (Reader == null) - throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - - if (_defaultReader != null) + // Find the offset within the data section + int dataPos; + if (cache.TryGetValue(key, out resEntry)) { - // Find the offset within the data section - int dataPos = -1; - if (_resCache.TryGetValue(key, out resLocation)) - { - value = resLocation.Value; - dataPos = resLocation.DataPosition; - } + value = resEntry.Value; + if (value != null) + return value; - if (dataPos == -1 && value == null) - { - dataPos = _defaultReader.FindPosForResource(key); - } + // When data type cannot be cached + dataPos = resEntry.DataPosition; + return isString ? reader.LoadString(dataPos) : reader.LoadObject(dataPos, out _); + } - if (dataPos != -1 && value == null) - { - Debug.Assert(dataPos >= 0, "data section offset cannot be negative!"); - // Normally calling LoadString or LoadObject requires - // taking a lock. Note that in this case, we took a - // lock on the entire RuntimeResourceSet, which is - // sufficient since we never pass this ResourceReader - // to anyone else. - ResourceTypeCode typeCode; - if (isString) - { - value = _defaultReader.LoadString(dataPos); - typeCode = ResourceTypeCode.String; - } - else - { - value = _defaultReader.LoadObject(dataPos, out typeCode); - } - - resLocation = new ResourceLocator(dataPos, (ResourceLocator.CanCache(typeCode)) ? value : null); - lock (_resCache) - { - _resCache[key] = resLocation; - } - } + dataPos = reader.FindPosForResource(key); + if (dataPos >= 0) + { + value = ReadValue(reader, dataPos, isString, out resEntry); + cache[key] = resEntry; + return value; + } + } - if (value != null || !ignoreCase) - { - return value; // may be null - } - } // if (_defaultReader != null) + if (!ignoreCase) + { + return null; + } - // At this point, we either don't have our default resource reader - // or we haven't found the particular resource we're looking for - // and may have to search for it in a case-insensitive way. - if (!_haveReadFromReader) - { - // If necessary, init our case insensitive hash table. - if (ignoreCase) - { - _caseInsensitiveTable ??= new Dictionary(StringComparer.OrdinalIgnoreCase); - } + // We haven't found the particular resource we're looking for + // and may have to search for it in a case-insensitive way. + bool initialize = false; + Dictionary? caseInsensitiveTable = _caseInsensitiveTable; + if (caseInsensitiveTable == null) + { + caseInsensitiveTable = new Dictionary(StringComparer.OrdinalIgnoreCase); + initialize = true; + } - if (_defaultReader == null) - { - IDictionaryEnumerator en = Reader.GetEnumerator(); - while (en.MoveNext()) - { - DictionaryEntry entry = en.Entry; - string readKey = (string)entry.Key; - ResourceLocator resLoc = new ResourceLocator(-1, entry.Value); - _resCache.Add(readKey, resLoc); - if (ignoreCase) - { - Debug.Assert(_caseInsensitiveTable != null); - _caseInsensitiveTable.Add(readKey, resLoc); - } - } - // Only close the reader if it is NOT our default one, - // since we need it around to resolve ResourceLocators. - if (!ignoreCase) - Reader.Close(); - } - else - { - Debug.Assert(ignoreCase, "This should only happen for case-insensitive lookups"); - Debug.Assert(_caseInsensitiveTable != null); - ResourceReader.ResourceEnumerator en = _defaultReader.GetEnumeratorInternal(); - while (en.MoveNext()) - { - // Note: Always ask for the resource key before the data position. - string currentKey = (string)en.Key; - int dataPos = en.DataPosition; - ResourceLocator resLoc = new ResourceLocator(dataPos, null); - _caseInsensitiveTable.Add(currentKey, resLoc); - } - } - _haveReadFromReader = true; - } - object? obj = null; - bool found = false; - bool keyInWrongCase = false; - if (_defaultReader != null) - { - if (_resCache.TryGetValue(key, out resLocation)) - { - found = true; - obj = ResolveResourceLocator(resLocation, key, _resCache, keyInWrongCase); - } - } - if (!found && ignoreCase) + lock (caseInsensitiveTable) + { + if (initialize) { - Debug.Assert(_caseInsensitiveTable != null); - if (_caseInsensitiveTable.TryGetValue(key, out resLocation)) + ResourceReader.ResourceEnumerator en = reader.GetEnumeratorInternal(); + while (en.MoveNext()) { - found = true; - keyInWrongCase = true; - obj = ResolveResourceLocator(resLocation, key, _resCache, keyInWrongCase); + // The resource key must be read before the data position. + string currentKey = (string)en.Key; + ResourceLocator resLoc = new ResourceLocator(en.DataPosition, null); + caseInsensitiveTable.Add(currentKey, resLoc); } + + _caseInsensitiveTable = caseInsensitiveTable; } - return obj; - } // lock(Reader) + + if (!caseInsensitiveTable.TryGetValue(key, out resEntry)) + return null; + + if (resEntry.Value != null) + return resEntry.Value; + + value = ReadValue(reader, resEntry.DataPosition, isString, out resEntry); + + if (resEntry.Value != null) + caseInsensitiveTable[key] = resEntry; + } + + return value; } - // The last parameter indicates whether the lookup required a - // case-insensitive lookup to succeed, indicating we shouldn't add - // the ResourceLocation to our case-sensitive cache. - private object? ResolveResourceLocator(ResourceLocator resLocation, string key, Dictionary copyOfCache, bool keyInWrongCase) + private static object? ReadValue (ResourceReader reader, int dataPos, bool isString, out ResourceLocator locator) { - // We need to explicitly resolve loosely linked manifest - // resources, and we need to resolve ResourceLocators with null objects. - object? value = resLocation.Value; - if (value == null) + object? value; + ResourceTypeCode typeCode; + + // Normally calling LoadString or LoadObject requires + // taking a lock. Note that in this case, we took a + // lock before calling this method. + if (isString) { - ResourceTypeCode typeCode; - lock (Reader) - { - Debug.Assert(_defaultReader != null); - value = _defaultReader.LoadObject(resLocation.DataPosition, out typeCode); - } - if (!keyInWrongCase && ResourceLocator.CanCache(typeCode)) - { - resLocation.Value = value; - copyOfCache[key] = resLocation; - } + value = reader.LoadString(dataPos); + typeCode = ResourceTypeCode.String; } + else + { + value = reader.LoadObject(dataPos, out typeCode); + } + + locator = new ResourceLocator(dataPos, ResourceLocator.CanCache(typeCode) ? value : null); return value; } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/TaskAwaiter.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/TaskAwaiter.cs index e5eddb76ee9d..b26b993623f1 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/TaskAwaiter.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/TaskAwaiter.cs @@ -36,7 +36,7 @@ // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -using System.Collections.ObjectModel; +using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.Tracing; using System.Runtime.ExceptionServices; @@ -175,7 +175,7 @@ private static void ThrowForNonSuccess(Task task) // If the task faulted, throw its first exception, // even if it contained more than one. case TaskStatus.Faulted: - ReadOnlyCollection edis = task.GetExceptionDispatchInfos(); + List edis = task.GetExceptionDispatchInfos(); if (edis.Count > 0) { edis[0].Throw(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs index 83e0d7db3b33..3a76f44da15f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs @@ -245,9 +245,6 @@ public static bool TryGetArray(ReadOnlyMemory memory, out ArraySegment if (obj != null && !( (typeof(T) == typeof(char) && obj.GetType() == typeof(string)) -#if FEATURE_UTF8STRING - || ((typeof(T) == typeof(byte) || typeof(T) == typeof(Char8)) && obj.GetType() == typeof(Utf8String)) -#endif // FEATURE_UTF8STRING )) { if (RuntimeHelpers.ObjectHasComponentSize(obj)) diff --git a/src/libraries/System.Private.CoreLib/src/System/RuntimeType.cs b/src/libraries/System.Private.CoreLib/src/System/RuntimeType.cs index e30ad7b66a00..6bc3ddf5cc82 100644 --- a/src/libraries/System.Private.CoreLib/src/System/RuntimeType.cs +++ b/src/libraries/System.Private.CoreLib/src/System/RuntimeType.cs @@ -194,23 +194,36 @@ protected override TypeCode GetTypeCodeImpl() typeCode = TypeCode.Single; break; case CorElementType.ELEMENT_TYPE_R8: typeCode = TypeCode.Double; break; +#if !CORECLR + case CorElementType.ELEMENT_TYPE_STRING: + typeCode = TypeCode.String; break; +#endif case CorElementType.ELEMENT_TYPE_VALUETYPE: - if (this == Convert.ConvertTypes[(int)TypeCode.Decimal]) + if (ReferenceEquals(this, typeof(decimal))) typeCode = TypeCode.Decimal; - else if (this == Convert.ConvertTypes[(int)TypeCode.DateTime]) + else if (ReferenceEquals(this, typeof(DateTime))) typeCode = TypeCode.DateTime; else if (IsEnum) - typeCode = GetTypeCode(Enum.GetUnderlyingType(this)); + typeCode = GetTypeCode(Enum.InternalGetUnderlyingType(this)); else typeCode = TypeCode.Object; break; default: - if (this == Convert.ConvertTypes[(int)TypeCode.DBNull]) - typeCode = TypeCode.DBNull; - else if (this == Convert.ConvertTypes[(int)TypeCode.String]) +#if CORECLR + // GetSignatureCorElementType returns E_T_CLASS for E_T_STRING + if (ReferenceEquals(this, typeof(string))) + { typeCode = TypeCode.String; - else - typeCode = TypeCode.Object; + break; + } +#endif + if (ReferenceEquals(this, typeof(DBNull))) + { + typeCode = TypeCode.DBNull; + break; + } + + typeCode = TypeCode.Object; break; } diff --git a/src/libraries/System.Private.CoreLib/src/System/Span.cs b/src/libraries/System.Private.CoreLib/src/System/Span.cs index 735380233d9a..e82ca80a44a5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Span.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Span.cs @@ -399,13 +399,6 @@ public override string ToString() { return new string(new ReadOnlySpan(ref Unsafe.As(ref _pointer.Value), _length)); } -#if FEATURE_UTF8STRING - else if (typeof(T) == typeof(Char8)) - { - // TODO_UTF8STRING: Call into optimized transcoding routine when it's available. - return Encoding.UTF8.GetString(new ReadOnlySpan(ref Unsafe.As(ref _pointer.Value), _length)); - } -#endif // FEATURE_UTF8STRING return string.Format("System.Span<{0}>[{1}]", typeof(T).Name, _length); } diff --git a/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs b/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs index 44deea83bf00..bab6ff424b5b 100644 --- a/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs +++ b/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs @@ -1,11 +1,13 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Buffers; using System.Diagnostics; using System.Globalization; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Text.Unicode; using Internal.Runtime.CompilerServices; @@ -834,42 +836,96 @@ internal unsafe int GetNonRandomizedHashCode() } } - // Use this if and only if 'Denial of Service' attacks are not a concern (i.e. never used for free-form user input), - // or are otherwise mitigated internal unsafe int GetNonRandomizedHashCodeOrdinalIgnoreCase() { + uint hash1 = (5381 << 16) + 5381; + uint hash2 = hash1; + fixed (char* src = &_firstChar) { Debug.Assert(src[this.Length] == '\0', "src[this.Length] == '\\0'"); - Debug.Assert(((int)src) % 4 == 0, "Managed string should start at 4 bytes boundary"); + Debug.Assert(((int) src) % 4 == 0, "Managed string should start at 4 bytes boundary"); - uint hash1 = (5381 << 16) + 5381; - uint hash2 = hash1; - - uint* ptr = (uint*)src; + uint* ptr = (uint*) src; int length = this.Length; // We "normalize to lowercase" every char by ORing with 0x0020. This casts // a very wide net because it will change, e.g., '^' to '~'. But that should // be ok because we expect this to be very rare in practice. - const uint NormalizeToLowercase = 0x0020_0020u; // valid both for big-endian and for little-endian while (length > 2) { + uint p0 = ptr[0]; + uint p1 = ptr[1]; + if (!Utf16Utility.AllCharsInUInt32AreAscii(p0 | p1)) + { + goto NotAscii; + } + length -= 4; // Where length is 4n-1 (e.g. 3,7,11,15,19) this additionally consumes the null terminator - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (ptr[0] | NormalizeToLowercase); - hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[1] | NormalizeToLowercase); + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (p0 | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (p1 | NormalizeToLowercase); ptr += 2; } if (length > 0) { + uint p0 = ptr[0]; + if (!Utf16Utility.AllCharsInUInt32AreAscii(p0)) + { + goto NotAscii; + } + // Where length is 4n-3 (e.g. 1,5,9,13,17) this additionally consumes the null terminator - hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[0] | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (p0 | NormalizeToLowercase); + } + } + + return (int)(hash1 + (hash2 * 1566083941)); + + NotAscii: + return GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow(this); + + static int GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow(string str) + { + int length = str.Length; + char[]? borrowedArr = null; + // Important: leave an additional space for '\0' + Span scratch = (uint)length < 64 ? + stackalloc char[64] : (borrowedArr = ArrayPool.Shared.Rent(length + 1)); + + int charsWritten = System.Globalization.Ordinal.ToUpperOrdinal(str, scratch); + Debug.Assert(charsWritten == length); + scratch[length] = '\0'; + + const uint NormalizeToLowercase = 0x0020_0020u; + uint hash1 = (5381 << 16) + 5381; + uint hash2 = hash1; + + // Duplicate the main loop, can be removed once JIT gets "Loop Unswitching" optimization + fixed (char* src = scratch) + { + uint* ptr = (uint*)src; + while (length > 2) + { + length -= 4; + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (ptr[0] | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[1] | NormalizeToLowercase); + ptr += 2; + } + + if (length > 0) + { + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[0] | NormalizeToLowercase); + } } + if (borrowedArr != null) + { + ArrayPool.Shared.Return(borrowedArr); + } return (int)(hash1 + (hash2 * 1566083941)); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.cs index 2ecb58c3782b..91db035d8ef5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.cs @@ -49,102 +49,5 @@ public static unsafe int GetIndexOfFirstInvalidUtf8Sequence(ReadOnlySpan u } } -#if FEATURE_UTF8STRING - /// - /// Returns a value stating whether contains only well-formed UTF-8 data. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static unsafe bool IsWellFormedUtf8(ReadOnlySpan utf8Data) - { - fixed (byte* pUtf8Data = &MemoryMarshal.GetReference(utf8Data)) - { - // The return value here will point to the end of the span if the data is well-formed. - byte* pFirstInvalidByte = GetPointerToFirstInvalidByte(pUtf8Data, utf8Data.Length, out int _, out _); - return (pFirstInvalidByte == (pUtf8Data + (uint)utf8Data.Length)); - } - } - - /// - /// Returns if it is null or contains only well-formed UTF-8 data; - /// otherwises allocates a new instance containing the same data as - /// but where all invalid UTF-8 sequences have been replaced - /// with U+FFFD. - /// - public static Utf8String ValidateAndFixupUtf8String(Utf8String value) - { - if (value.Length == 0) - { - return value; - } - - ReadOnlySpan valueAsBytes = value.AsBytes(); - - int idxOfFirstInvalidData = GetIndexOfFirstInvalidUtf8Sequence(valueAsBytes, out _); - if (idxOfFirstInvalidData < 0) - { - return value; - } - - // TODO_UTF8STRING: Replace this with the faster implementation once it's available. - // (The faster implementation is in the dev/utf8string_bak branch currently.) - - MemoryStream memStream = new MemoryStream(); -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - memStream.Write(valueAsBytes.Slice(0, idxOfFirstInvalidData)); - - valueAsBytes = valueAsBytes.Slice(idxOfFirstInvalidData); - do - { - if (Rune.DecodeFromUtf8(valueAsBytes, out _, out int bytesConsumed) == OperationStatus.Done) - { - // Valid scalar value - copy data as-is to MemoryStream - memStream.Write(valueAsBytes.Slice(0, bytesConsumed)); - } - else - { - // Invalid scalar value - copy U+FFFD to MemoryStream - memStream.Write(ReplacementCharSequence); - } - - valueAsBytes = valueAsBytes.Slice(bytesConsumed); - } while (!valueAsBytes.IsEmpty); -#else - if (!MemoryMarshal.TryGetArray(value.AsMemoryBytes(), out ArraySegment valueArraySegment)) - { - Debug.Fail("Utf8String on netstandard should always be backed by an array."); - } - - memStream.Write(valueArraySegment.Array, valueArraySegment.Offset, idxOfFirstInvalidData); - - valueArraySegment = new ArraySegment( - valueArraySegment.Array, - idxOfFirstInvalidData, - valueArraySegment.Count - idxOfFirstInvalidData); - do - { - if (Rune.DecodeFromUtf8(valueArraySegment, out _, out int bytesConsumed) == OperationStatus.Done) - { - // Valid scalar value - copy data as-is to MemoryStream - memStream.Write(valueArraySegment.Array, valueArraySegment.Offset, bytesConsumed); - } - else - { - // Invalid scalar value - copy U+FFFD to MemoryStream - memStream.Write(ReplacementCharSequence, 0, ReplacementCharSequence.Length); - } - - valueArraySegment = new ArraySegment( - valueArraySegment.Array, - valueArraySegment.Offset + bytesConsumed, - valueArraySegment.Count - bytesConsumed); - } while (valueArraySegment.Count > 0); -#endif - - bool success = memStream.TryGetBuffer(out ArraySegment memStreamBuffer); - Debug.Assert(success, "Couldn't get underlying MemoryStream buffer."); - - return Utf8String.UnsafeCreateWithoutValidation(memStreamBuffer); - } -#endif // FEATURE_UTF8STRING } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Comparison.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Comparison.cs deleted file mode 100644 index ed42f474ee8a..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Comparison.cs +++ /dev/null @@ -1,231 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Text.Unicode; - -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - public static bool operator ==(Utf8Span left, Utf8Span right) => Equals(left, right); - public static bool operator !=(Utf8Span left, Utf8Span right) => !Equals(left, right); - - public int CompareTo(Utf8Span other) - { - // TODO_UTF8STRING: This is ordinal, but String.CompareTo uses CurrentCulture. - // Is this acceptable? - - return Utf8StringComparer.Ordinal.Compare(this, other); - } - - public int CompareTo(Utf8Span other, StringComparison comparison) - { - // TODO_UTF8STRING: We can avoid the virtual dispatch by moving the switch into this method. - - return Utf8StringComparer.FromComparison(comparison).Compare(this, other); - } - - /// - /// Returns a value stating whether the current instance contains - /// . An ordinal comparison is used. - /// - public bool Contains(char value) - { - return Rune.TryCreate(value, out Rune rune) && Contains(rune); - } - - /// - /// Returns a value stating whether the current instance contains - /// . The specified comparison is used. - /// - public bool Contains(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && Contains(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance contains - /// the specified . An ordinal comparison is used. - /// - public bool Contains(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - - return (this.Bytes.IndexOf(runeBytes.Slice(0, runeBytesWritten)) >= 0); - } - - /// - /// Returns a value stating whether the current instance contains - /// the specified . The specified comparison is used. - /// - public bool Contains(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return this.ToString().Contains(value.ToString(), comparison); -#else - return this.ToString().IndexOf(value.ToString(), comparison) >= 0; -#endif - } - - /// - /// Returns a value stating whether the current instance contains . - /// An ordinal comparison is used. - /// - public bool Contains(Utf8Span value) - { - return (this.Bytes.IndexOf(value.Bytes) >= 0); - } - - /// - /// Returns a value stating whether the current instance contains . - /// The specified comparison is used. - /// - public bool Contains(Utf8Span value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return this.ToString().Contains(value.ToString(), comparison); -#else - return this.ToString().IndexOf(value.ToString(), comparison) >= 0; -#endif - } - - /// - /// Returns a value stating whether the current instance ends with - /// . An ordinal comparison is used. - /// - public bool EndsWith(char value) - { - return Rune.TryCreate(value, out Rune rune) && EndsWith(rune); - } - - /// - /// Returns a value stating whether the current instance ends with - /// . The specified comparison is used. - /// - public bool EndsWith(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && EndsWith(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance ends with - /// the specified . An ordinal comparison is used. - /// - public bool EndsWith(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - - return this.Bytes.EndsWith(runeBytes.Slice(0, runeBytesWritten)); - } - - /// - /// Returns a value stating whether the current instance ends with - /// the specified . The specified comparison is used. - /// - public bool EndsWith(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return this.ToString().EndsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance ends with . - /// An ordinal comparison is used. - /// - public bool EndsWith(Utf8Span value) - { - return this.Bytes.EndsWith(value.Bytes); - } - - /// - /// Returns a value stating whether the current instance ends with . - /// The specified comparison is used. - /// - public bool EndsWith(Utf8Span value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return this.ToString().EndsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance begins with - /// . An ordinal comparison is used. - /// - public bool StartsWith(char value) - { - return Rune.TryCreate(value, out Rune rune) && StartsWith(rune); - } - - /// - /// Returns a value stating whether the current instance begins with - /// . The specified comparison is used. - /// - public bool StartsWith(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && StartsWith(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance begins with - /// the specified . An ordinal comparison is used. - /// - public bool StartsWith(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - - return this.Bytes.StartsWith(runeBytes.Slice(0, runeBytesWritten)); - } - - /// - /// Returns a value stating whether the current instance begins with - /// the specified . The specified comparison is used. - /// - public bool StartsWith(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return this.ToString().StartsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance begins with . - /// An ordinal comparison is used. - /// - public bool StartsWith(Utf8Span value) - { - return this.Bytes.StartsWith(value.Bytes); - } - - /// - /// Returns a value stating whether the current instance begins with . - /// The specified comparison is used. - /// - public bool StartsWith(Utf8Span value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return this.ToString().StartsWith(value.ToString(), comparison); - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Conversion.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Conversion.cs deleted file mode 100644 index 23535043af54..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Conversion.cs +++ /dev/null @@ -1,325 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Diagnostics; -using System.Globalization; -using System.Runtime.InteropServices; -using System.Text.Unicode; - -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - /// - /// Returns a new instance which represents this instance - /// normalized using the specified Unicode normalization form. - /// - /// - /// The original is left unchanged by this operation. - /// - public Utf8String Normalize(NormalizationForm normalizationForm = NormalizationForm.FormC) - { - // TODO_UTF8STRING: Reduce allocations in this code path. - - return new Utf8String(this.ToString().Normalize(normalizationForm)); - } - - /// - /// Converts this to the desired Unicode normalization form, writing the - /// UTF-8 result to the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the normalization operation. - /// - /// - /// The original is left unchanged by this operation. Note that the the required - /// length of may be longer or shorter (in terms of UTF-8 byte count) - /// than the input . - /// - public int Normalize(Span destination, NormalizationForm normalizationForm = NormalizationForm.FormC) - { - // TODO_UTF8STRING: Reduce allocations in this code path. - - ReadOnlySpan normalized = this.ToString().Normalize(normalizationForm).AsSpan(); - OperationStatus status = Utf8.FromUtf16(normalized, destination, out int _, out int bytesWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "Normalize shouldn't have produced malformed Unicode string."); - - if (status != OperationStatus.Done) - { - bytesWritten = -1; // "destination too small" - } - - return bytesWritten; - } - - /// - /// Returns the entire as an array of UTF-8 bytes. - /// - public byte[] ToByteArray() => Bytes.ToArray(); - - /// - /// Converts this to a . - /// - public unsafe char[] ToCharArray() - { - if (IsEmpty) - { - return Array.Empty(); - } - - // TODO_UTF8STRING: Since we know the underlying data is immutable, well-formed UTF-8, - // we can perform transcoding using an optimized code path that skips all safety checks. - // We should also consider skipping the two-pass if possible. - - fixed (byte* pbUtf8 = &DangerousGetMutableReference()) - { - byte* pbUtf8Invalid = Utf8Utility.GetPointerToFirstInvalidByte(pbUtf8, this.Length, out int utf16CodeUnitCountAdjustment, out _); - Debug.Assert(pbUtf8Invalid == pbUtf8 + this.Length, "Invalid UTF-8 data seen in buffer."); - - char[] asUtf16 = new char[this.Length + utf16CodeUnitCountAdjustment]; - fixed (char* pbUtf16 = asUtf16) - { - OperationStatus status = Utf8Utility.TranscodeToUtf16(pbUtf8, this.Length, pbUtf16, asUtf16.Length, out byte* pbUtf8End, out char* pchUtf16End); - Debug.Assert(status == OperationStatus.Done, "The buffer changed out from under us unexpectedly?"); - Debug.Assert(pbUtf8End == pbUtf8 + this.Length, "The buffer changed out from under us unexpectedly?"); - Debug.Assert(pchUtf16End == pbUtf16 + asUtf16.Length, "The buffer changed out from under us unexpectedly?"); - - return asUtf16; - } - } - } - - /// - /// Converts this instance to its UTF-16 equivalent, writing the result into - /// the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the transcoding operation. - /// - public int ToChars(Span destination) - { - OperationStatus status = Utf8.ToUtf16(Bytes, destination, out int _, out int charsWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "Utf8Spans shouldn't contain ill-formed UTF-8 data."); - - if (status != OperationStatus.Done) - { - charsWritten = -1; // "destination too small" - } - - return charsWritten; - } - - /// - /// Returns a new instance which represents this instance - /// converted to lowercase using . - /// - /// - /// The original is left unchanged by this operation. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToLower(CultureInfo culture) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - if (culture is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.culture); - } - - return new Utf8String(this.ToString().ToLower(culture)); - } - - /// - /// Converts this to lowercase using , writing the - /// UTF-8 result to the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the case conversion operation. - /// - /// - /// The original is left unchanged by this operation. Note that the the required - /// length of may be longer or shorter (in terms of UTF-8 byte count) - /// than the input . - /// - public int ToLower(Span destination, CultureInfo culture) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - if (culture is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.culture); - } - - ReadOnlySpan asLower = this.ToString().ToLower(culture).AsSpan(); - OperationStatus status = Utf8.FromUtf16(asLower, destination, out int _, out int bytesWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "ToLower shouldn't have produced malformed Unicode string."); - - if (status != OperationStatus.Done) - { - bytesWritten = -1; // "destination too small" - } - - return bytesWritten; - } - - /// - /// Returns a new instance which represents this instance - /// converted to lowercase using the invariant culture. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToLowerInvariant() - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - return new Utf8String(this.ToString().ToLowerInvariant()); - } - - /// - /// Converts this to lowercase using the invariant culture, writing the - /// UTF-8 result to the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the case conversion operation. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the the required - /// length of may be longer or shorter (in terms of UTF-8 byte count) - /// than the input . - /// - public int ToLowerInvariant(Span destination) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - ReadOnlySpan asLowerInvariant = this.ToString().ToLowerInvariant().AsSpan(); - OperationStatus status = Utf8.FromUtf16(asLowerInvariant, destination, out int _, out int bytesWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "ToLowerInvariant shouldn't have produced malformed Unicode string."); - - if (status != OperationStatus.Done) - { - bytesWritten = -1; // "destination too small" - } - - return bytesWritten; - } - - /// - /// Returns a new instance which represents this instance - /// converted to uppercase using . - /// - /// - /// The original is left unchanged by this operation. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToUpper(CultureInfo culture) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - if (culture is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.culture); - } - - return new Utf8String(this.ToString().ToUpper(culture)); - } - - /// - /// Converts this to uppercase using , writing the - /// UTF-8 result to the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the case conversion operation. - /// - /// - /// The original is left unchanged by this operation. Note that the the required - /// length of may be longer or shorter (in terms of UTF-8 byte count) - /// than the input . - /// - public int ToUpper(Span destination, CultureInfo culture) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - if (culture is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.culture); - } - - ReadOnlySpan asUpper = this.ToString().ToUpper(culture).AsSpan(); - OperationStatus status = Utf8.FromUtf16(asUpper, destination, out int _, out int bytesWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "ToUpper shouldn't have produced malformed Unicode string."); - - if (status != OperationStatus.Done) - { - bytesWritten = -1; // "destination too small" - } - - return bytesWritten; - } - - /// - /// Returns a new instance which represents this instance - /// converted to uppercase using the invariant culture. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToUpperInvariant() - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - return new Utf8String(this.ToString().ToUpperInvariant()); - } - - /// - /// Converts this to uppercase using the invariant culture, writing the - /// UTF-8 result to the buffer . - /// - /// - /// The number of bytes written to , or -1 if - /// is not large enough to hold the result of the case conversion operation. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the the required - /// length of may be longer or shorter (in terms of UTF-8 byte count) - /// than the input . - /// - public int ToUpperInvariant(Span destination) - { - // TODO_UTF8STRING: Avoid intermediate allocations. - - ReadOnlySpan asUpperInvariant = this.ToString().ToUpperInvariant().AsSpan(); - OperationStatus status = Utf8.FromUtf16(asUpperInvariant, destination, out int _, out int bytesWritten, replaceInvalidSequences: false, isFinalBlock: true); - - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.DestinationTooSmall, "ToUpperInvariant shouldn't have produced malformed Unicode string."); - - if (status != OperationStatus.Done) - { - bytesWritten = -1; // "destination too small" - } - - return bytesWritten; - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Enumeration.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Enumeration.cs deleted file mode 100644 index 422a12ed109f..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Enumeration.cs +++ /dev/null @@ -1,136 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Diagnostics; - -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - public CharEnumerable Chars => new CharEnumerable(this); - public RuneEnumerable Runes => new RuneEnumerable(this); - - public readonly ref struct CharEnumerable - { - private readonly Utf8Span _span; - - internal CharEnumerable(Utf8Span span) - { - _span = span; - } - - public Enumerator GetEnumerator() => new Enumerator(_span); - - public ref struct Enumerator - { - private uint _currentCharPair; - private ReadOnlySpan _remainingUtf8Bytes; - - internal Enumerator(Utf8Span span) - { - _currentCharPair = default; - _remainingUtf8Bytes = span.Bytes; - } - - public char Current => (char)_currentCharPair; - - public bool MoveNext() - { - // We don't need to worry about tearing since this enumerator is a ref struct. - - if (_currentCharPair > char.MaxValue) - { - // There was a surrogate pair smuggled in here from a previous operation. - // Shift out the high surrogate value and return immediately. - - _currentCharPair >>= 16; - return true; - } - - if (_remainingUtf8Bytes.IsEmpty) - { - return false; - } - - // TODO_UTF8STRING: Since we assume Utf8String instances are well-formed, we may instead - // call an optimized version of the "decode" routine below which skips well-formedness checks. - - OperationStatus status = Rune.DecodeFromUtf8(_remainingUtf8Bytes, out Rune currentRune, out int bytesConsumed); - Debug.Assert(status == OperationStatus.Done, "Somebody fed us invalid data?"); - - if (currentRune.IsBmp) - { - // Common case - BMP scalar value. - - _currentCharPair = (uint)currentRune.Value; - } - else - { - // Uncommon case - supplementary plane (astral) scalar value. - // We'll smuggle the two UTF-16 code units into a single 32-bit value, - // with the leading surrogate packed into the low 16 bits of the value, - // and the trailing surrogate packed into the high 16 bits of the value. - - UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar((uint)currentRune.Value, out char leadingCodeUnit, out char trailingCodeUnit); - _currentCharPair = (uint)leadingCodeUnit + ((uint)trailingCodeUnit << 16); - } - - // TODO_UTF8STRING: We can consider unsafe slicing below if we wish since we know we're - // not going to overrun the end of the span. - - _remainingUtf8Bytes = _remainingUtf8Bytes.Slice(bytesConsumed); - return true; - } - } - } - - public readonly ref struct RuneEnumerable - { - private readonly Utf8Span _span; - - internal RuneEnumerable(Utf8Span span) - { - _span = span; - } - - public Enumerator GetEnumerator() => new Enumerator(_span); - - public ref struct Enumerator - { - private Rune _currentRune; - private ReadOnlySpan _remainingUtf8Bytes; - - internal Enumerator(Utf8Span span) - { - _currentRune = default; - _remainingUtf8Bytes = span.Bytes; - } - - public Rune Current => _currentRune; - - public bool MoveNext() - { - // We don't need to worry about tearing since this enumerator is a ref struct. - - if (_remainingUtf8Bytes.IsEmpty) - { - return false; - } - - // TODO_UTF8STRING: Since we assume Utf8Span instances are well-formed, we may instead - // call an optimized version of the "decode" routine below which skips well-formedness checks. - - OperationStatus status = Rune.DecodeFromUtf8(_remainingUtf8Bytes, out _currentRune, out int bytesConsumed); - Debug.Assert(status == OperationStatus.Done, "Somebody fed us invalid data?"); - - // TODO_UTF8STRING: We can consider unsafe slicing below if we wish since we know we're - // not going to overrun the end of the span. - - _remainingUtf8Bytes = _remainingUtf8Bytes.Slice(bytesConsumed); - return true; - } - } - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Manipulation.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Manipulation.cs deleted file mode 100644 index a0b874af5ea6..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Manipulation.cs +++ /dev/null @@ -1,521 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Text.Unicode; - -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - public SplitResult Split(char separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - if (!Rune.TryCreate(separator, out Rune rune)) - { - throw new ArgumentOutOfRangeException( - paramName: nameof(separator), - message: SR.ArgumentOutOfRange_Utf16SurrogatesDisallowed); - } - - Utf8String.CheckSplitOptions(options); - - return new SplitResult(this, rune, options); - } - - public SplitResult Split(Rune separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - Utf8String.CheckSplitOptions(options); - - return new SplitResult(this, separator, options); - } - - public SplitResult Split(Utf8Span separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - if (separator.IsEmpty) - { - throw new ArgumentException( - paramName: nameof(separator), - message: SR.Argument_CannotBeEmptySpan); - } - - Utf8String.CheckSplitOptions(options); - - return new SplitResult(this, separator, options); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(char separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(char separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(Rune separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(Rune separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(Utf8Span separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(Utf8Span separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(char separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(char separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(Rune separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(Rune separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(Utf8Span separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, Empty)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(Utf8Span separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Trims whitespace from the beginning and the end of this , - /// returning a new containing the resulting slice. - /// - public Utf8Span Trim() => TrimHelper(TrimType.Both); - - /// - /// Trims whitespace from only the end of this , - /// returning a new containing the resulting slice. - /// - public Utf8Span TrimEnd() => TrimHelper(TrimType.Tail); - - internal Utf8Span TrimHelper(TrimType trimType) - { - ReadOnlySpan retSpan = Bytes; - - if ((trimType & TrimType.Head) != 0) - { - int indexOfFirstNonWhiteSpaceChar = Utf8Utility.GetIndexOfFirstNonWhiteSpaceChar(retSpan); - Debug.Assert((uint)indexOfFirstNonWhiteSpaceChar <= (uint)retSpan.Length); - - // TODO_UTF8STRING: Can use an unsafe slicing routine below if we need a perf boost. - - retSpan = retSpan.Slice(indexOfFirstNonWhiteSpaceChar); - } - - if ((trimType & TrimType.Tail) != 0) - { - int indexOfTrailingWhiteSpaceSequence = Utf8Utility.GetIndexOfTrailingWhiteSpaceSequence(retSpan); - Debug.Assert((uint)indexOfTrailingWhiteSpaceSequence <= (uint)retSpan.Length); - - // TODO_UTF8STRING: Can use an unsafe slicing routine below if we need a perf boost. - - retSpan = retSpan.Slice(0, indexOfTrailingWhiteSpaceSequence); - } - - return UnsafeCreateWithoutValidation(retSpan); - } - - /// - /// Trims whitespace from only the beginning of this , - /// returning a new containing the resulting slice. - /// - public Utf8Span TrimStart() => TrimHelper(TrimType.Head); - - [StructLayout(LayoutKind.Auto)] - public readonly ref struct SplitResult - { - private readonly State _state; - - internal SplitResult(Utf8Span source, Rune searchRune, Utf8StringSplitOptions splitOptions) - { - _state = new State - { - RemainingSearchSpace = source, - SearchRune = searchRune.Value, - SearchTerm = default, - SplitOptions = splitOptions - }; - } - - internal SplitResult(Utf8Span source, Utf8Span searchTerm, Utf8StringSplitOptions splitOptions) - { - _state = new State - { - RemainingSearchSpace = source, - SearchRune = -1, - SearchTerm = searchTerm, - SplitOptions = splitOptions - }; - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out item2); - TrimIfNeeded(ref item2); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out item3); - TrimIfNeeded(ref item3); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3, out Utf8Span item4) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out remainder); - _state.DeconstructHelper(in remainder, out item3, out item4); - TrimIfNeeded(ref item4); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3, out Utf8Span item4, out Utf8Span item5) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out remainder); - _state.DeconstructHelper(in remainder, out item3, out remainder); - _state.DeconstructHelper(in remainder, out item4, out item5); - TrimIfNeeded(ref item5); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3, out Utf8Span item4, out Utf8Span item5, out Utf8Span item6) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out remainder); - _state.DeconstructHelper(in remainder, out item3, out remainder); - _state.DeconstructHelper(in remainder, out item4, out remainder); - _state.DeconstructHelper(in remainder, out item5, out item6); - TrimIfNeeded(ref item6); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3, out Utf8Span item4, out Utf8Span item5, out Utf8Span item6, out Utf8Span item7) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out remainder); - _state.DeconstructHelper(in remainder, out item3, out remainder); - _state.DeconstructHelper(in remainder, out item4, out remainder); - _state.DeconstructHelper(in remainder, out item5, out remainder); - _state.DeconstructHelper(in remainder, out item6, out item7); - TrimIfNeeded(ref item7); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span item1, out Utf8Span item2, out Utf8Span item3, out Utf8Span item4, out Utf8Span item5, out Utf8Span item6, out Utf8Span item7, out Utf8Span item8) - { - _state.DeconstructHelper(in _state.RemainingSearchSpace, out item1, out Utf8Span remainder); - _state.DeconstructHelper(in remainder, out item2, out remainder); - _state.DeconstructHelper(in remainder, out item3, out remainder); - _state.DeconstructHelper(in remainder, out item4, out remainder); - _state.DeconstructHelper(in remainder, out item5, out remainder); - _state.DeconstructHelper(in remainder, out item6, out remainder); - _state.DeconstructHelper(in remainder, out item7, out item8); - TrimIfNeeded(ref item8); - } - - public Enumerator GetEnumerator() => new Enumerator(this); - - private void TrimIfNeeded(ref Utf8Span span) - { - if ((_state.SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - span = span.Trim(); - } - } - - [StructLayout(LayoutKind.Auto)] - public ref struct Enumerator - { - private const Utf8StringSplitOptions HALT_ENUMERATION = (Utf8StringSplitOptions)int.MinValue; - - private Utf8Span _current; - private State _state; - - internal Enumerator(SplitResult result) - { - _current = default; - _state = result._state; // copy by value - } - - public Utf8Span Current => _current; - - public bool MoveNext() - { - // Happy path: if the search term was found, then the two 'out' fields below are overwritten with - // the contents of the (before, after) tuple, and we can return right away. - - if (_state.DeconstructHelper(in _state.RemainingSearchSpace, out _current, out _state.RemainingSearchSpace)) - { - return true; - } - - // At this point, the search term was not found within the search space. '_current' contains the last - // bit of data after the final occurrence of the search term. We'll also set a flag saying that we've - // completed enumeration. - - if (_current.IsEmpty && (_state.SplitOptions & Utf8StringSplitOptions.RemoveEmptyEntries) != 0) - { - return false; - } - - if ((_state.SplitOptions & HALT_ENUMERATION) != 0) - { - return false; - } - - _state.SplitOptions |= HALT_ENUMERATION; // prevents yielding forever at end of split - - return true; - } - } - - [StructLayout(LayoutKind.Auto)] - private ref struct State // fully mutable - { - internal Utf8Span RemainingSearchSpace; - internal int SearchRune; // -1 if not specified, takes less space than "Rune?" - internal Utf8Span SearchTerm; - internal Utf8StringSplitOptions SplitOptions; - - // Returns 'true' if a match was found, 'false' otherwise. - internal readonly bool DeconstructHelper(in Utf8Span source, out Utf8Span firstItem, out Utf8Span remainder) - { - // n.b. Our callers might pass the same reference for 'source' and 'remainder'. - // We need to take care not to read 'source' after writing 'remainder'. - - bool wasMatchFound; - ref readonly Utf8Span searchSpan = ref source; - - while (true) - { - if (searchSpan.IsEmpty) - { - firstItem = searchSpan; - remainder = default; - wasMatchFound = false; - break; - } - - Range matchRange; - - if (SearchRune >= 0) - { -#if NETCOREAPP3_0 - wasMatchFound = searchSpan.TryFind(new Rune((uint)SearchRune), out matchRange); -#else - wasMatchFound = searchSpan.TryFind(Rune.UnsafeCreate((uint)SearchRune), out matchRange); -#endif - } - else - { - wasMatchFound = searchSpan.TryFind(SearchTerm, out matchRange); - } - - if (!wasMatchFound) - { - // If no match was found, we move 'source' to 'firstItem', trim if necessary, and return right away. - - firstItem = searchSpan; - - if ((SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - firstItem = firstItem.Trim(); - } - - remainder = default; - } - else - { - // Otherwise, if a match was found, split the result across 'firstItem' and 'remainder', - // applying trimming if necessary. - - firstItem = searchSpan[..matchRange.Start]; // TODO_UTF8STRING: Could use unsafe slicing as optimization - remainder = searchSpan[matchRange.End..]; // TODO_UTF8STRING: Could use unsafe slicing as optimization - - if ((SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - firstItem = firstItem.Trim(); - } - - // If we're asked to remove empty entries, loop until there's a real value in 'firstItem'. - - if ((SplitOptions & Utf8StringSplitOptions.RemoveEmptyEntries) != 0 && firstItem.IsEmpty) - { - searchSpan = ref remainder; - continue; - } - } - - break; // loop only if explicit 'continue' statement was hit - } - - return wasMatchFound; - } - } - } - - [StructLayout(LayoutKind.Auto)] - public readonly ref struct SplitOnResult - { - // Used when there is no match. - internal SplitOnResult(Utf8Span originalSearchSpace) - { - Before = originalSearchSpace; - After = Empty; - } - - // Used when a match is found. - internal SplitOnResult(Utf8Span originalSearchSpace, Range searchTermMatchRange) - { - (int startIndex, int length) = searchTermMatchRange.GetOffsetAndLength(originalSearchSpace.Length); - - // TODO_UTF8STRING: The below indexer performs correctness checks. We can skip these checks (and even the - // bounds checks more generally) since we know the inputs are all valid and the containing struct is not - // subject to tearing. - - Before = originalSearchSpace[..startIndex]; - After = originalSearchSpace[(startIndex + length)..]; - } - - public Utf8Span After { get; } - public Utf8Span Before { get; } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8Span before, out Utf8Span after) - { - before = Before; - after = After; - } - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Searching.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Searching.cs deleted file mode 100644 index a004812e61a5..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.Searching.cs +++ /dev/null @@ -1,577 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Diagnostics; -using System.Globalization; -using System.Text.Unicode; - -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(char value, out Range range) - { - if (Rune.TryCreate(value, out Rune rune)) - { - return TryFind(rune, out range); - } - else - { - // Surrogate chars can't exist in well-formed UTF-8 data - bail immediately. - - range = default; - return false; - } - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(char value, StringComparison comparisonType, out Range range) - { - if (Rune.TryCreate(value, out Rune rune)) - { - return TryFind(rune, comparisonType, out range); - } - else - { - CheckStringComparison(comparisonType); - - // Surrogate chars can't exist in well-formed UTF-8 data - bail immediately. - - range = default; - return false; - } - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(Rune value, out Range range) - { - if (value.IsAscii) - { - // Special-case ASCII since it's a simple single byte search. - - int idx = Bytes.IndexOf((byte)value.Value); - if (idx < 0) - { - range = default; - return false; - } - else - { - range = idx..(idx + 1); - return true; - } - } - else - { - // Slower path: need to search a multi-byte sequence. - // TODO_UTF8STRING: As an optimization, we could use unsafe APIs below since we - // know Rune instances are well-formed and slicing is safe. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int utf8ByteLengthOfRune = value.EncodeToUtf8(runeBytes); - - return TryFind(UnsafeCreateWithoutValidation(runeBytes.Slice(0, utf8ByteLengthOfRune)), out range); - } - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(Rune value, StringComparison comparisonType, out Range range) - { - if (comparisonType == StringComparison.Ordinal) - { - return TryFind(value, out range); - } - else - { - // Slower path: not an ordinal comparison. - // TODO_UTF8STRING: As an optimization, we could use unsafe APIs below since we - // know Rune instances are well-formed and slicing is safe. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int utf8ByteLengthOfRune = value.EncodeToUtf8(runeBytes); - - return TryFind(UnsafeCreateWithoutValidation(runeBytes.Slice(0, utf8ByteLengthOfRune)), comparisonType, out range); - } - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(Utf8Span value, out Range range) - { - int idx; - - if (value.Bytes.Length == 1) - { - // Special-case ASCII since it's a simple single byte search. - - idx = this.Bytes.IndexOf(value.Bytes[0]); - } - else - { - // Slower path: need to search a multi-byte sequence. - - idx = this.Bytes.IndexOf(value.Bytes); - } - - if (idx < 0) - { - range = default; - return false; - } - else - { - range = idx..(idx + value.Bytes.Length); - return true; - } - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(Utf8Span value, StringComparison comparisonType, out Range range) => TryFind(value, comparisonType, out range, fromBeginning: true); - - private unsafe bool TryFind(Utf8Span value, StringComparison comparisonType, out Range range, bool fromBeginning) - { - CheckStringComparison(comparisonType); - - if (value.IsEmpty) - { - // sourceString.IndexOf/LastIndexOf(term, comparer) should return the minimum/maximum value index - // for which the expression "sourceString.Substring(index).StartsWith(term, comparer)" is true. - // The range we return to the caller should reflect this so that they can pull out the correct index. - - if (fromBeginning) - { - range = Index.Start..Index.Start; - } - else - { - range = Index.End..Index.End; - } - return true; - } - - if (this.IsEmpty) - { - range = default; - return false; - } - - CompareInfo compareInfo = default!; // will be overwritten if it matters - CompareOptions compareOptions = GetCaseCompareOfComparisonCulture(comparisonType); - - if (GlobalizationMode.Invariant) - { - // In the Invariant globalization mode, all comparisons are normalized to Ordinal or OrdinalIgnoreCase, - // and even in "ignore case" we only map [a-z] <-> [A-Z]. All other code points remain unmapped. - - // TODO_UTF8STRING: We should take advantage of the property described above to avoid the UTF-16 - // transcoding step entirely. - - if (compareOptions == CompareOptions.None) - { - return (fromBeginning) - ? TryFind(value, out range) - : TryFindLast(value, out range); // call the ordinal search routine - } - } - else - { - switch (comparisonType) - { - case StringComparison.Ordinal: - return (fromBeginning) - ? TryFind(value, out range) - : TryFindLast(value, out range); - - case StringComparison.OrdinalIgnoreCase: - // TODO_UTF8STRING: Can probably optimize this case. -#if SYSTEM_PRIVATE_CORELIB - compareInfo = CompareInfo.Invariant; -#else - compareInfo = CultureInfo.InvariantCulture.CompareInfo; -#endif - break; - - case StringComparison.CurrentCulture: - case StringComparison.CurrentCultureIgnoreCase: - compareInfo = CultureInfo.CurrentCulture.CompareInfo; - break; - - default: - Debug.Assert(comparisonType == StringComparison.InvariantCulture || comparisonType == StringComparison.InvariantCultureIgnoreCase); -#if SYSTEM_PRIVATE_CORELIB - compareInfo = CompareInfo.Invariant; -#else - compareInfo = CultureInfo.InvariantCulture.CompareInfo; -#endif - break; - } - } - - // TODO_UTF8STRING: Remove allocations below, and try to avoid the transcoding step if possible. - - string thisTranscodedToUtf16 = this.ToStringNoReplacement(); - string otherTranscodedToUtf16 = value.ToStringNoReplacement(); - - int idx, matchLength; - -#if SYSTEM_PRIVATE_CORELIB - if (GlobalizationMode.Invariant) - { - // If we got here, it meant we're doing an OrdinalIgnoreCase comparison. - - Debug.Assert(compareOptions == CompareOptions.IgnoreCase); - - idx = CompareInfo.InvariantIndexOf(thisTranscodedToUtf16, otherTranscodedToUtf16, ignoreCase: true, fromBeginning); - matchLength = otherTranscodedToUtf16.Length; // If there was a match, it involved only simple case folding. - } - else - { - idx = (fromBeginning) - ? compareInfo.IndexOf(thisTranscodedToUtf16, otherTranscodedToUtf16, compareOptions, out matchLength) - : compareInfo.LastIndexOf(thisTranscodedToUtf16, otherTranscodedToUtf16, compareOptions, out matchLength); - } -#else - Debug.Assert(comparisonType == StringComparison.OrdinalIgnoreCase); - - if (fromBeginning) - { - idx = compareInfo.IndexOf(thisTranscodedToUtf16, otherTranscodedToUtf16, 0, thisTranscodedToUtf16.Length, compareOptions); - } - else - { - idx = compareInfo.LastIndexOf(thisTranscodedToUtf16, otherTranscodedToUtf16, thisTranscodedToUtf16.Length, thisTranscodedToUtf16.Length, compareOptions); - } - matchLength = otherTranscodedToUtf16.Length; -#endif - - if (idx < 0) - { - // No match found. Bail out now. - - range = default; - return false; - } - - // If we reached this point, we found a match. The 'idx' local is the index in the source - // string (indexed by UTF-16 code units) where the match was found, and the 'matchLength' - // local is the number of chars in the source string which constitute the match. This length - // can be different than the length of the search string, as non-ordinal IndexOf operations - // follow Unicode full case folding semantics and might also normalize characters like - // digraphs. - -#if SYSTEM_PRIVATE_CORELIB - fixed (char* pThisTranscodedToUtf16 = &thisTranscodedToUtf16.GetRawStringData()) -#else - fixed (char* pThisTranscodedToUtf16 = thisTranscodedToUtf16) -#endif - { - // First, we need to convert the UTF-16 'idx' to its UTF-8 equivalent. - - char* pStoppedCounting = Utf16Utility.GetPointerToFirstInvalidChar(pThisTranscodedToUtf16, idx, out long utf8CodeUnitCountAdjustment, out _); - Debug.Assert(pStoppedCounting == pThisTranscodedToUtf16 + idx, "We shouldn't have generated an ill-formed UTF-16 temp string."); - Debug.Assert((ulong)(idx + utf8CodeUnitCountAdjustment) <= (uint)this.Bytes.Length, "Start index should be within the source UTF-8 data."); - - // Normally when we produce a UTF-8 code unit count from a UTF-16 source we - // need to perform 64-bit arithmetic so we don't overflow. But in this case - // we know the true original source was UTF-8, so its length is known already - // to fit into a signed 32-bit integer. So we'll perform an unchecked cast. - - int utf8StartIdx = idx + (int)utf8CodeUnitCountAdjustment; - - // Now we need to convert the UTF-16 'matchLength' to its UTF-8 equivalent. - - pStoppedCounting = Utf16Utility.GetPointerToFirstInvalidChar(pThisTranscodedToUtf16 + idx, matchLength, out utf8CodeUnitCountAdjustment, out _); - Debug.Assert(pStoppedCounting == pThisTranscodedToUtf16 + idx + matchLength, "We shouldn't have generated an ill-formed UTF-16 temp string."); - Debug.Assert((ulong)(utf8StartIdx + matchLength + utf8CodeUnitCountAdjustment) <= (uint)this.Bytes.Length, "End index should be within the source UTF-8 data."); - - int utf8EndIdx = utf8StartIdx + matchLength + (int)utf8CodeUnitCountAdjustment; - - // Some quick sanity checks on the return value before we return. - - Debug.Assert(0 <= utf8StartIdx); - Debug.Assert(utf8StartIdx <= utf8EndIdx); - Debug.Assert(utf8EndIdx <= this.Bytes.Length); - - range = utf8StartIdx..utf8EndIdx; - return true; - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(char value, out Range range) - { - if (Rune.TryCreate(value, out Rune rune)) - { - return TryFindLast(rune, out range); - } - else - { - // Surrogate chars can't exist in well-formed UTF-8 data - bail immediately. - - range = default; - return false; - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(char value, StringComparison comparisonType, out Range range) - { - if (Rune.TryCreate(value, out Rune rune)) - { - return TryFindLast(rune, comparisonType, out range); - } - else - { - CheckStringComparison(comparisonType); - - // Surrogate chars can't exist in well-formed UTF-8 data - bail immediately. - - range = default; - return false; - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(Rune value, out Range range) - { - if (value.IsAscii) - { - // Special-case ASCII since it's a simple single byte search. - - int idx = Bytes.LastIndexOf((byte)value.Value); - if (idx < 0) - { - range = default; - return false; - } - else - { - range = idx..(idx + 1); - return true; - } - } - else - { - // Slower path: need to search a multi-byte sequence. - // TODO_UTF8STRING: As an optimization, we could use unsafe APIs below since we - // know Rune instances are well-formed and slicing is safe. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int utf8ByteLengthOfRune = value.EncodeToUtf8(runeBytes); - - return TryFindLast(UnsafeCreateWithoutValidation(runeBytes.Slice(0, utf8ByteLengthOfRune)), out range); - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(Rune value, StringComparison comparisonType, out Range range) - { - if (comparisonType == StringComparison.Ordinal) - { - return TryFindLast(value, out range); - } - else - { - // Slower path: not an ordinal comparison. - // TODO_UTF8STRING: As an optimization, we could use unsafe APIs below since we - // know Rune instances are well-formed and slicing is safe. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int utf8ByteLengthOfRune = value.EncodeToUtf8(runeBytes); - - return TryFindLast(UnsafeCreateWithoutValidation(runeBytes.Slice(0, utf8ByteLengthOfRune)), comparisonType, out range); - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(Utf8Span value, out Range range) - { - int idx; - - if (value.Bytes.Length <= 1) - { - if (value.Bytes.Length == 1) - { - idx = this.Bytes.LastIndexOf(value.Bytes[0]); // special-case ASCII since it's a single byte search - } - else - { - idx = this.Length; // the last empty substring always occurs at the end of the buffer - } - } - else - { - // Slower path: need to search a multi-byte sequence. - - idx = this.Bytes.LastIndexOf(value.Bytes); - } - - if (idx < 0) - { - range = default; - return false; - } - else - { - range = idx..(idx + value.Bytes.Length); - return true; - } - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(Utf8Span value, StringComparison comparisonType, out Range range) => TryFind(value, comparisonType, out range, fromBeginning: false); - - private static void CheckStringComparison(StringComparison comparisonType) - { -#if SYSTEM_PRIVATE_CORELIB - string.CheckStringComparison(comparisonType); -#else - // Single comparison to check if comparisonType is within [CurrentCulture .. OrdinalIgnoreCase] - if ((uint)comparisonType > (uint)StringComparison.OrdinalIgnoreCase) - { - ThrowHelper.ThrowArgumentException(SR.NotSupported_StringComparison, ExceptionArgument.comparisonType); - } - - // There's no API that would allow getting the correct match length - // for other StringComparisons. - if (comparisonType != StringComparison.Ordinal && - comparisonType != StringComparison.OrdinalIgnoreCase) - { - ThrowHelper.ThrowNotSupportedException(SR.Utf8Span_TryFindOnlySupportsOrdinal); - } -#endif - } - - private static CompareOptions GetCaseCompareOfComparisonCulture(StringComparison comparisonType) - { -#if SYSTEM_PRIVATE_CORELIB - return string.GetCaseCompareOfComparisonCulture(comparisonType); -#else - Debug.Assert((uint)comparisonType <= (uint)StringComparison.OrdinalIgnoreCase); - - // Culture enums can be & with CompareOptions.IgnoreCase 0x01 to extract if IgnoreCase or CompareOptions.None 0x00 - // - // CompareOptions.None 0x00 - // CompareOptions.IgnoreCase 0x01 - // - // StringComparison.CurrentCulture: 0x00 - // StringComparison.InvariantCulture: 0x02 - // StringComparison.Ordinal 0x04 - // - // StringComparison.CurrentCultureIgnoreCase: 0x01 - // StringComparison.InvariantCultureIgnoreCase: 0x03 - // StringComparison.OrdinalIgnoreCase 0x05 - - return (CompareOptions)((int)comparisonType & (int)CompareOptions.IgnoreCase); -#endif - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.cs deleted file mode 100644 index fcd6d4f92cb2..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8Span.cs +++ /dev/null @@ -1,329 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.ComponentModel; -using System.Diagnostics; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text.Unicode; - -#if SYSTEM_PRIVATE_CORELIB -using Internal.Runtime.CompilerServices; -#endif - -#pragma warning disable 0809 //warning CS0809: Obsolete member 'Utf8Span.Equals(object)' overrides non-obsolete member 'object.Equals(object)' - -namespace System.Text -{ - [StructLayout(LayoutKind.Auto)] - public readonly ref partial struct Utf8Span - { - /// - /// Creates a from an existing instance. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public Utf8Span(Utf8String? value) - { - Bytes = Utf8Extensions.AsBytes(value); - } - - /// - /// Ctor for internal use only. Caller _must_ validate both invariants hold: - /// (a) the buffer represents well-formed UTF-8 data, and - /// (b) the buffer is immutable. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private Utf8Span(ReadOnlySpan rawData) - { - // In debug builds, we want to ensure that the callers really did validate - // the buffer for well-formedness. The entire line below is removed when - // compiling release builds. - - Debug.Assert(Utf8Utility.GetIndexOfFirstInvalidUtf8Sequence(rawData, out _) == -1); - - Bytes = rawData; - } - - public ReadOnlySpan Bytes { get; } - - public static Utf8Span Empty => default; - - public bool IsEmpty => Bytes.IsEmpty; - - /// - /// Returns the length (in UTF-8 code units, or s) of this instance. - /// - public int Length => Bytes.Length; - - public Utf8Span this[Range range] - { - get - { - (int offset, int length) = range.GetOffsetAndLength(Length); - - // Check for a split across a multi-byte subsequence on the way out. - // Reminder: Unlike Utf8String, we can't safely dereference past the end of the span. - - ref byte newRef = ref DangerousGetMutableReference(offset); - if (length > 0 && Utf8Utility.IsUtf8ContinuationByte(newRef)) - { - Utf8String.ThrowImproperStringSplit(); - } - - int endIdx = offset + length; - if (endIdx < Length && Utf8Utility.IsUtf8ContinuationByte(DangerousGetMutableReference(endIdx))) - { - Utf8String.ThrowImproperStringSplit(); - } - -#if SYSTEM_PRIVATE_CORELIB - return UnsafeCreateWithoutValidation(new ReadOnlySpan(ref newRef, length)); -#else - return UnsafeCreateWithoutValidation(Bytes.Slice(offset, length)); -#endif - } - } - - /// - /// Returns a mutable reference to the first byte of this - /// (or, if this is empty, to where the first byte would be). - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference() => ref MemoryMarshal.GetReference(Bytes); - - /// - /// Returns a mutable reference to the element at index - /// of this instance. The index is not bounds-checked. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference(int index) - { - Debug.Assert(index >= 0, "Caller should've performed bounds checking."); - return ref DangerousGetMutableReference((uint)index); - } - - /// - /// Returns a mutable reference to the element at index - /// of this instance. The index is not bounds-checked. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference(nuint index) - { - // Allow retrieving references to just past the end of the span (but shouldn't dereference this). - - Debug.Assert(index <= (uint)Length, "Caller should've performed bounds checking."); -#if SYSTEM_PRIVATE_CORELIB - return ref Unsafe.AddByteOffset(ref DangerousGetMutableReference(), index); -#else - return ref Unsafe.AddByteOffset(ref DangerousGetMutableReference(), (nint)index); -#endif - } - - public bool IsEmptyOrWhiteSpace() => (Utf8Utility.GetIndexOfFirstNonWhiteSpaceChar(Bytes) == Length); - - /// - /// This method is not supported as spans cannot be boxed. To compare two spans, use operator==. - /// - /// Always thrown by this method. - /// - /// - [Obsolete("Equals(object) on Utf8Span will always throw an exception. Use Equals(Utf8Span) or operator == instead.")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object? obj) - { - throw new NotSupportedException(SR.Utf8Span_CannotCallEqualsObject); - } - - public bool Equals(Utf8Span other) => Equals(this, other); - - public bool Equals(Utf8Span other, StringComparison comparison) => Equals(this, other, comparison); - - public static bool Equals(Utf8Span left, Utf8Span right) => left.Bytes.SequenceEqual(right.Bytes); - - public static bool Equals(Utf8Span left, Utf8Span right, StringComparison comparison) - { - // TODO_UTF8STRING: This perf can be improved, including removing - // the virtual dispatch by putting the switch directly in this method. - - return Utf8StringComparer.FromComparison(comparison).Equals(left, right); - } - - public override int GetHashCode() - { - // TODO_UTF8STRING: Consider whether this should use a different seed than String.GetHashCode. - // This method should only be called to calculate the hash code over spans that represent - // UTF-8 textual data, not over arbitrary binary sequences. - - ulong seed = Marvin.DefaultSeed; -#if SYSTEM_PRIVATE_CORELIB - return Marvin.ComputeHash32(ref MemoryMarshal.GetReference(Bytes), (uint)Length /* in bytes */, (uint)seed, (uint)(seed >> 32)); -#else - return Marvin.ComputeHash32(Bytes, seed); -#endif - } - - public int GetHashCode(StringComparison comparison) - { - // TODO_UTF8STRING: This perf can be improved, including removing - // the virtual dispatch by putting the switch directly in this method. - - return Utf8StringComparer.FromComparison(comparison).GetHashCode(this); - } - - /// - /// Returns if this UTF-8 text consists of all-ASCII data, - /// if there is any non-ASCII data within this UTF-8 text. - /// - /// - /// ASCII text is defined as text consisting only of scalar values in the range [ U+0000..U+007F ]. - /// Empty spans are considered to be all-ASCII. The runtime of this method is O(n). - /// - public bool IsAscii() - { - // TODO_UTF8STRING: Use an API that takes 'ref byte' instead of a 'byte*' as a parameter. - - unsafe - { - fixed (byte* pData = &MemoryMarshal.GetReference(Bytes)) - { - return (ASCIIUtility.GetIndexOfFirstNonAsciiByte(pData, (uint)Length) == (uint)Length); - } - } - } - - /// - /// Returns a value stating whether this instance is normalized - /// using the specified Unicode normalization form. - /// - /// The to check. - /// if this instance represents text - /// normalized under , otherwise . - public bool IsNormalized(NormalizationForm normalizationForm = NormalizationForm.FormC) - { - // TODO_UTF8STRING: Avoid allocations in this code path. - - return ToString().IsNormalized(normalizationForm); - } - - /// - /// Gets an immutable reference that can be used in a statement. Unlike - /// , the resulting reference is not guaranteed to be null-terminated. - /// - /// - /// If this instance is empty, returns . Dereferencing - /// such a reference will result in a being generated. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public ref readonly byte GetPinnableReference() - { - // This returns null if the underlying span is empty. The reason for this is that unlike - // Utf8String, these buffers are not guaranteed to be null-terminated, so it's not always - // safe or meaningful to dereference the element just past the end of the buffer. - - return ref Bytes.GetPinnableReference(); - } - - public override string ToString() - { - // TODO_UTF8STRING: Since we know the underlying data is immutable, well-formed UTF-8, - // we can perform transcoding using an optimized code path that skips all safety checks. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return Encoding.UTF8.GetString(Bytes); -#else - if (IsEmpty) - { - return string.Empty; - } - - unsafe - { - fixed (byte* pBytes = Bytes) - { - return Encoding.UTF8.GetString(pBytes, Length); - } - } -#endif - } - - /// - /// Converts this instance to a . - /// - /// - /// This routine throws if the underlying instance - /// contains invalid UTF-8 data. - /// - internal unsafe string ToStringNoReplacement() - { - // TODO_UTF8STRING: Optimize the call below, potentially by avoiding the two-pass. - - fixed (byte* pData = &MemoryMarshal.GetReference(Bytes)) - { - byte* pFirstInvalidByte = Utf8Utility.GetPointerToFirstInvalidByte(pData, Length, out int utf16CodeUnitCountAdjustment, out _); - if (pFirstInvalidByte != pData + (uint)Length) - { - // Saw bad UTF-8 data. - // TODO_UTF8STRING: Throw a better exception below? - - ThrowHelper.ThrowInvalidOperationException(); - } - - int utf16CharCount = Length + utf16CodeUnitCountAdjustment; - Debug.Assert(utf16CharCount <= Length && utf16CharCount >= 0); - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - // TODO_UTF8STRING: Can we call string.FastAllocate directly? - return string.Create(utf16CharCount, (pbData: (IntPtr)pData, cbData: Length), static (chars, state) => - { - OperationStatus status = Utf8.ToUtf16(new ReadOnlySpan((byte*)state.pbData, state.cbData), chars, out _, out _, replaceInvalidSequences: false); - Debug.Assert(status == OperationStatus.Done, "Did somebody mutate this Utf8String instance unexpectedly?"); - }); -#else - char[] buffer = ArrayPool.Shared.Rent(utf16CharCount); - try - { - fixed (char* pBuffer = buffer) - { - Encoding.UTF8.GetChars(pData, Length, pBuffer, utf16CharCount); - return new string(pBuffer, 0, utf16CharCount); - } - } - finally - { - ArrayPool.Shared.Return(buffer); - } -#endif - } - } - - public Utf8String ToUtf8String() - { - // TODO_UTF8STRING: Since we know the underlying data is immutable, well-formed UTF-8, - // we can perform transcoding using an optimized code path that skips all safety checks. - - return Utf8String.UnsafeCreateWithoutValidation(Bytes); - } - - /// - /// Wraps a instance around the provided , - /// skipping validation of the input data. - /// - /// - /// Callers must uphold the following two invariants: - /// - /// (a) consists only of well-formed UTF-8 data and does - /// not contain invalid or incomplete UTF-8 subsequences; and - /// (b) the contents of will not change for the duration - /// of the returned 's existence. - /// - /// If these invariants are not maintained, the runtime may exhibit undefined behavior. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Utf8Span UnsafeCreateWithoutValidation(ReadOnlySpan buffer) - { - return new Utf8Span(buffer); - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8StringComparer.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Utf8StringComparer.cs deleted file mode 100644 index 8e56da744259..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Utf8StringComparer.cs +++ /dev/null @@ -1,187 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; - -namespace System.Text -{ - internal abstract class Utf8StringComparer : IComparer, IEqualityComparer - { - // Nobody except for nested classes can create instances of this type. - private Utf8StringComparer() { } - - public static Utf8StringComparer CurrentCulture => new CultureAwareComparer(CultureInfo.CurrentCulture.CompareInfo, CompareOptions.None); - public static Utf8StringComparer CurrentCultureIgnoreCase => new CultureAwareComparer(CultureInfo.CurrentCulture.CompareInfo, CompareOptions.IgnoreCase); - public static Utf8StringComparer InvariantCulture => CultureAwareComparer.Invariant; - public static Utf8StringComparer InvariantCultureIgnoreCase => CultureAwareComparer.InvariantIgnoreCase; - public static Utf8StringComparer Ordinal => OrdinalComparer.Instance; - public static Utf8StringComparer OrdinalIgnoreCase => OrdinalIgnoreCaseComparer.Instance; - - public static Utf8StringComparer Create(CultureInfo culture, bool ignoreCase) => Create(culture, ignoreCase ? CompareOptions.IgnoreCase : CompareOptions.None); - - public static Utf8StringComparer Create(CultureInfo culture, CompareOptions options) - { - if (culture is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.culture); - } - - return new CultureAwareComparer(culture.CompareInfo, options); - } - - public static Utf8StringComparer FromComparison(StringComparison comparisonType) - { - return comparisonType switch - { - StringComparison.CurrentCulture => CurrentCulture, - StringComparison.CurrentCultureIgnoreCase => CurrentCultureIgnoreCase, - StringComparison.InvariantCulture => InvariantCulture, - StringComparison.InvariantCultureIgnoreCase => InvariantCultureIgnoreCase, - StringComparison.Ordinal => Ordinal, - StringComparison.OrdinalIgnoreCase => OrdinalIgnoreCase, - _ => throw new ArgumentException(SR.NotSupported_StringComparison, nameof(comparisonType)), - }; - } - - public abstract int Compare(Utf8String? x, Utf8String? y); - public abstract int Compare(Utf8Span x, Utf8Span y); - public abstract bool Equals(Utf8String? x, Utf8String? y); - public abstract bool Equals(Utf8Span x, Utf8Span y); -#pragma warning disable CS8614 // Remove warning disable when nullable attributes are respected - public abstract int GetHashCode(Utf8String obj); -#pragma warning restore CS8614 - public abstract int GetHashCode(Utf8Span obj); - - private sealed class CultureAwareComparer : Utf8StringComparer - { -#if SYSTEM_PRIVATE_CORELIB - internal static readonly CultureAwareComparer Invariant = new CultureAwareComparer(CompareInfo.Invariant, CompareOptions.None); - internal static readonly CultureAwareComparer InvariantIgnoreCase = new CultureAwareComparer(CompareInfo.Invariant, CompareOptions.IgnoreCase); -#else - internal static readonly CultureAwareComparer Invariant = new CultureAwareComparer(CultureInfo.InvariantCulture.CompareInfo, CompareOptions.None); - internal static readonly CultureAwareComparer InvariantIgnoreCase = new CultureAwareComparer(CultureInfo.InvariantCulture.CompareInfo, CompareOptions.IgnoreCase); -#endif - - private readonly CompareInfo _compareInfo; - private readonly CompareOptions _options; - - internal CultureAwareComparer(CompareInfo compareInfo, CompareOptions options) - { - Debug.Assert(compareInfo != null); - - _compareInfo = compareInfo; - _options = options; - } - - public override int Compare(Utf8String? x, Utf8String? y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return _compareInfo.Compare(x?.ToString(), y?.ToString(), _options); - } - - public override int Compare(Utf8Span x, Utf8Span y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return _compareInfo.Compare(x.ToString(), y.ToString(), _options); - } - - public override bool Equals(Utf8String? x, Utf8String? y) => Compare(x, y) == 0; - public override bool Equals(Utf8Span x, Utf8Span y) => Compare(x, y) == 0; - - public override int GetHashCode(Utf8String? obj) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return (obj is null) ? 0 : _compareInfo.GetHashCode(obj.ToString(), _options); - } - - public override int GetHashCode(Utf8Span obj) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return _compareInfo.GetHashCode(obj.ToString(), _options); - } - } - - private sealed class OrdinalComparer : Utf8StringComparer - { - public static readonly OrdinalComparer Instance = new OrdinalComparer(); - - // All accesses must be through the static factory. - private OrdinalComparer() { } - - public override int Compare(Utf8String? x, Utf8String? y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return string.CompareOrdinal(x?.ToString(), y?.ToString()); - } - - public override int Compare(Utf8Span x, Utf8Span y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return string.CompareOrdinal(x.ToString(), y.ToString()); - } - - public override bool Equals(Utf8String? x, Utf8String? y) => Utf8String.Equals(x, y); - public override bool Equals(Utf8Span x, Utf8Span y) => Utf8Span.Equals(x, y); - public override int GetHashCode(Utf8String obj) => obj.GetHashCode(); - public override int GetHashCode(Utf8Span obj) => obj.GetHashCode(); - } - - private sealed class OrdinalIgnoreCaseComparer : Utf8StringComparer - { - public static readonly OrdinalIgnoreCaseComparer Instance = new OrdinalIgnoreCaseComparer(); - - // All accesses must be through the static factory. - private OrdinalIgnoreCaseComparer() { } - - public override int Compare(Utf8String? x, Utf8String? y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.Compare(x?.ToString(), y?.ToString()); - } - - public override int Compare(Utf8Span x, Utf8Span y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.Compare(x.ToString(), y.ToString()); - } - - public override bool Equals(Utf8String? x, Utf8String? y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.Equals(x?.ToString(), y?.ToString()); - } - - public override bool Equals(Utf8Span x, Utf8Span y) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.Equals(x.ToString(), y.ToString()); - } - - public override int GetHashCode(Utf8String obj) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.GetHashCode(obj.ToString()); - } - - public override int GetHashCode(Utf8Span obj) - { - // TODO_UTF8STRING: Avoid the allocations below. - - return StringComparer.OrdinalIgnoreCase.GetHashCode(obj.ToString()); - } - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs index 18d7194fbd77..196956c57331 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs @@ -35,12 +35,6 @@ namespace System.Threading private readonly CancellationTokenSource? _source; // !! warning. If more fields are added, the assumptions in CreateLinkedToken may no longer be valid - private static readonly Action s_actionToActionObjShunt = obj => - { - Debug.Assert(obj is Action, $"Expected {typeof(Action)}, got {obj}"); - ((Action)obj)(); - }; - /// /// Returns an empty CancellationToken value. /// @@ -136,12 +130,7 @@ public CancellationToken(bool canceled) : this(canceled ? CancellationTokenSourc /// The instance that can /// be used to unregister the callback. /// is null. - public CancellationTokenRegistration Register(Action callback) => - Register( - s_actionToActionObjShunt, - callback ?? throw new ArgumentNullException(nameof(callback)), - useSynchronizationContext: false, - useExecutionContext: true); + public CancellationTokenRegistration Register(Action callback) => Register(callback, useSynchronizationContext: false); /// /// Registers a delegate that will be called when this @@ -167,7 +156,7 @@ public CancellationToken(bool canceled) : this(canceled ? CancellationTokenSourc /// is null. public CancellationTokenRegistration Register(Action callback, bool useSynchronizationContext) => Register( - s_actionToActionObjShunt, + (Action)(static obj => ((Action)obj!)()), callback ?? throw new ArgumentNullException(nameof(callback)), useSynchronizationContext, useExecutionContext: true); diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationTokenSource.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationTokenSource.cs index 9fb58d4ad3d7..19357cdb0c58 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationTokenSource.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationTokenSource.cs @@ -826,10 +826,9 @@ internal ValueTask WaitForCallbackToCompleteAsync(long id) // this work with a callback mechanism will add additional cost to other more common cases. return new ValueTask(Task.Factory.StartNew(static s => { - Debug.Assert(s is Tuple); - var state = (Tuple)s; + var state = (TupleSlim)s!; state.Item1.WaitForCallbackToComplete(state.Item2); - }, Tuple.Create(this, id), CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default)); + }, new TupleSlim(this, id), CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default)); } private sealed class Linked1CancellationTokenSource : CancellationTokenSource diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs index adacabad646b..91586eff5f42 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs @@ -24,17 +24,17 @@ namespace System.Threading public sealed class ExecutionContext : IDisposable, ISerializable { - internal static readonly ExecutionContext Default = new ExecutionContext(isDefault: true); - internal static readonly ExecutionContext DefaultFlowSuppressed = new ExecutionContext(AsyncLocalValueMap.Empty, Array.Empty(), isFlowSuppressed: true); + internal static readonly ExecutionContext Default = new ExecutionContext(); + private static volatile ExecutionContext? s_defaultFlowSuppressed; private readonly IAsyncLocalValueMap? m_localValues; private readonly IAsyncLocal[]? m_localChangeNotifications; private readonly bool m_isFlowSuppressed; private readonly bool m_isDefault; - private ExecutionContext(bool isDefault) + private ExecutionContext() { - m_isDefault = isDefault; + m_isDefault = true; } private ExecutionContext( @@ -88,9 +88,11 @@ public void GetObjectData(SerializationInfo info, StreamingContext context) if (m_localValues == null || AsyncLocalValueMap.IsEmpty(m_localValues)) { +#pragma warning disable CA1825 // Avoid unnecessary zero-length array allocations return isFlowSuppressed ? - DefaultFlowSuppressed : + (s_defaultFlowSuppressed ??= new ExecutionContext(AsyncLocalValueMap.Empty, new IAsyncLocal[0], isFlowSuppressed: true)) : null; // implies the default context +#pragma warning restore CA1825 } return new ExecutionContext(m_localValues, m_localChangeNotifications, isFlowSuppressed); diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/ManualResetEventSlim.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/ManualResetEventSlim.cs index 9af60a64ff75..4f88b6670e27 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/ManualResetEventSlim.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/ManualResetEventSlim.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; +using System.Runtime.Versioning; namespace System.Threading { @@ -357,6 +358,7 @@ public void Reset() /// The caller of this method blocks indefinitely until the current instance is set. The caller will /// return immediately if the event is currently in a set state. /// + [UnsupportedOSPlatform("browser")] public void Wait() { Wait(Timeout.Infinite, CancellationToken.None); @@ -377,6 +379,7 @@ public void Wait() /// The caller of this method blocks indefinitely until the current instance is set. The caller will /// return immediately if the event is currently in a set state. /// + [UnsupportedOSPlatform("browser")] public void Wait(CancellationToken cancellationToken) { Wait(Timeout.Infinite, cancellationToken); @@ -397,6 +400,7 @@ public void Wait(CancellationToken cancellationToken) /// /// The maximum number of waiters has been exceeded. /// + [UnsupportedOSPlatform("browser")] public bool Wait(TimeSpan timeout) { long totalMilliseconds = (long)timeout.TotalMilliseconds; @@ -428,6 +432,7 @@ public bool Wait(TimeSpan timeout) /// /// The maximum number of waiters has been exceeded. /// + [UnsupportedOSPlatform("browser")] public bool Wait(TimeSpan timeout, CancellationToken cancellationToken) { long totalMilliseconds = (long)timeout.TotalMilliseconds; @@ -452,6 +457,7 @@ public bool Wait(TimeSpan timeout, CancellationToken cancellationToken) /// /// The maximum number of waiters has been exceeded. /// + [UnsupportedOSPlatform("browser")] public bool Wait(int millisecondsTimeout) { return Wait(millisecondsTimeout, CancellationToken.None); @@ -475,6 +481,7 @@ public bool Wait(int millisecondsTimeout) /// /// was canceled. + [UnsupportedOSPlatform("browser")] public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken) { ThrowIfDisposed(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/SemaphoreSlim.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/SemaphoreSlim.cs index 4e9438112fba..dd573007ce21 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/SemaphoreSlim.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/SemaphoreSlim.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Runtime.CompilerServices; +using System.Runtime.Versioning; using System.Threading.Tasks; namespace System.Threading @@ -172,6 +173,7 @@ public SemaphoreSlim(int initialCount, int maxCount) /// /// The current instance has already been /// disposed. + [UnsupportedOSPlatform("browser")] public void Wait() { // Call wait with infinite timeout @@ -188,6 +190,7 @@ public void Wait() /// canceled. /// The current instance has already been /// disposed. + [UnsupportedOSPlatform("browser")] public void Wait(CancellationToken cancellationToken) { // Call wait with infinite timeout @@ -206,6 +209,7 @@ public void Wait(CancellationToken cancellationToken) /// is a negative /// number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater /// than . + [UnsupportedOSPlatform("browser")] public bool Wait(TimeSpan timeout) { // Validate the timeout @@ -236,6 +240,7 @@ public bool Wait(TimeSpan timeout) /// number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater /// than . /// was canceled. + [UnsupportedOSPlatform("browser")] public bool Wait(TimeSpan timeout, CancellationToken cancellationToken) { // Validate the timeout @@ -260,6 +265,7 @@ public bool Wait(TimeSpan timeout, CancellationToken cancellationToken) /// otherwise, false. /// is a /// negative number other than -1, which represents an infinite time-out. + [UnsupportedOSPlatform("browser")] public bool Wait(int millisecondsTimeout) { return Wait(millisecondsTimeout, CancellationToken.None); @@ -277,6 +283,7 @@ public bool Wait(int millisecondsTimeout) /// is a negative number other than -1, /// which represents an infinite time-out. /// was canceled. + [UnsupportedOSPlatform("browser")] public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken) { CheckDispose(); @@ -432,6 +439,7 @@ public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken) /// The start ticks to calculate the elapsed time /// The CancellationToken to observe. /// true if the monitor received a signal, false if the timeout expired + [UnsupportedOSPlatform("browser")] private bool WaitUntilCountOrTimeout(int millisecondsTimeout, uint startTime, CancellationToken cancellationToken) { int remainingWaitMilliseconds = Timeout.Infinite; diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs index cec1ef48a1c0..a8d80715ed3f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ConcurrentExclusiveSchedulerPair.cs @@ -143,9 +143,17 @@ public void Complete() public Task Completion => EnsureCompletionStateInitialized(); /// Gets the lazily-initialized completion state. - private CompletionState EnsureCompletionStateInitialized() => - // ValueLock not needed, but it's ok if it's held - LazyInitializer.EnsureInitialized(ref m_completionState, () => new CompletionState()); + private CompletionState EnsureCompletionStateInitialized() + { + return Volatile.Read(ref m_completionState) ?? InitializeCompletionState(); + + CompletionState InitializeCompletionState() + { + // ValueLock not needed, but it's ok if it's held + Interlocked.CompareExchange(ref m_completionState, new CompletionState(), null); + return m_completionState; + } + } /// Gets whether completion has been requested. private bool CompletionRequested => m_completionState != null && Volatile.Read(ref m_completionState.m_completionRequested); @@ -218,14 +226,15 @@ private void CompleteTaskAsync() /// The faulted worker task that's initiating the shutdown. private void FaultWithTask(Task faultedTask) { - Debug.Assert(faultedTask != null && faultedTask.IsFaulted && faultedTask.Exception!.InnerExceptions.Count > 0, + Debug.Assert(faultedTask != null && faultedTask.IsFaulted && faultedTask.Exception!.InnerExceptionCount > 0, "Needs a task in the faulted state and thus with exceptions."); ContractAssertMonitorStatus(ValueLock, held: true); + AggregateException faultedException = faultedTask.Exception; // Store the faulted task's exceptions CompletionState cs = EnsureCompletionStateInitialized(); - cs.m_exceptions ??= new List(); - cs.m_exceptions.AddRange(faultedTask.Exception.InnerExceptions); + cs.m_exceptions ??= new List(faultedException.InnerExceptionCount); + cs.m_exceptions.AddRange(faultedException.InternalInnerExceptions); // Now that we're doomed, request completion RequestCompletion(); @@ -493,11 +502,9 @@ void IThreadPoolWorkItem.Execute() /// A scheduler shim used to queue tasks to the pair and execute those tasks on request of the pair. /// [DebuggerDisplay("Count={CountForDebugger}, MaxConcurrencyLevel={m_maxConcurrencyLevel}, Id={Id}")] - [DebuggerTypeProxy(typeof(ConcurrentExclusiveTaskScheduler.DebugView))] + [DebuggerTypeProxy(typeof(DebugView))] private sealed class ConcurrentExclusiveTaskScheduler : TaskScheduler { - /// Cached delegate for invoking TryExecuteTaskShim. - private static readonly Func s_tryExecuteTaskShim = new Func(TryExecuteTaskShim); /// The parent pair. private readonly ConcurrentExclusiveSchedulerPair m_pair; /// The maximum concurrency level for the scheduler. @@ -624,7 +631,11 @@ private bool TryExecuteTaskInlineOnTargetScheduler(Task task) // is able to invoke the task, which might account for an additional but unavoidable delay. // Once it's done, we can return whether the task executed by returning the // shim task's Result, which is in turn the result of TryExecuteTask. - var t = new Task(s_tryExecuteTaskShim, Tuple.Create(this, task)); + var t = new Task(s => + { + var tuple = (TupleSlim)s!; + return tuple.Item1.TryExecuteTask(tuple.Item2); + }, new TupleSlim(this, task)); try { t.RunSynchronously(m_pair.m_underlyingTaskScheduler); @@ -639,20 +650,6 @@ private bool TryExecuteTaskInlineOnTargetScheduler(Task task) finally { t.Dispose(); } } - /// Shim used to invoke this.TryExecuteTask(task). - /// A tuple of the ConcurrentExclusiveTaskScheduler and the task to execute. - /// true if the task was successfully inlined; otherwise, false. - /// - /// This method is separated out not because of performance reasons but so that - /// the SecuritySafeCritical attribute may be employed. - /// - private static bool TryExecuteTaskShim(object? state) - { - Debug.Assert(state is Tuple); - var tuple = (Tuple)state; - return tuple.Item1.TryExecuteTask(tuple.Item2); - } - /// Gets for debugging purposes the tasks scheduled to this scheduler. /// An enumerable of the tasks queued. protected override IEnumerable GetScheduledTasks() { return m_tasks; } diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs index 2dff5a0ce62d..b51a51269f8d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs @@ -61,7 +61,7 @@ public class Task : Task /// A cached task for default(TResult). internal static readonly Task s_defaultResultTask = TaskCache.CreateCacheableTask(default); - private static readonly TaskFactory s_Factory = new TaskFactory(); + private static TaskFactory? s_Factory; // The value itself, if set. internal TResult? m_result; @@ -486,7 +486,10 @@ internal TResult GetResultCore(bool waitCompletionNotification) /// of , as would result from using /// the default constructor on the factory type. /// - public static new TaskFactory Factory => s_Factory; + public static new TaskFactory Factory => + Volatile.Read(ref s_Factory) ?? + Interlocked.CompareExchange(ref s_Factory, new TaskFactory(), null) ?? + s_Factory; /// /// Evaluates the value selector of the Task which is passed in as an object and stores the result. diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/FutureFactory.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/FutureFactory.cs index b2ca3898176c..0e9090a0c62f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/FutureFactory.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/FutureFactory.cs @@ -677,6 +677,7 @@ public Task FromAsync(IAsyncResult asyncResult, Func FromAsync(IAsyncResult asyncResult, Func continuation, object? state, short token case SynchronizationContext sc: sc.Post(static s => { - var tuple = (Tuple, object?>)s!; + var tuple = (TupleSlim, object?>)s!; tuple.Item1(tuple.Item2); - }, Tuple.Create(continuation, state)); + }, new TupleSlim, object?>(continuation, state)); break; case TaskScheduler ts: @@ -320,9 +320,9 @@ private void InvokeSchedulerContinuation() case SynchronizationContext sc: sc.Post(static s => { - var state = (Tuple, object?>)s!; + var state = (TupleSlim, object?>)s!; state.Item1(state.Item2); - }, Tuple.Create(_continuation, _continuationState)); + }, new TupleSlim, object?>(_continuation, _continuationState)); break; case TaskScheduler ts: diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs index 27a785f7e658..7e2fb0f4013e 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs @@ -15,6 +15,7 @@ using System.Diagnostics.Tracing; using System.Runtime.CompilerServices; using System.Runtime.ExceptionServices; +using System.Runtime.Versioning; using Internal.Runtime.CompilerServices; namespace System.Threading.Tasks @@ -192,12 +193,15 @@ internal static bool AddToActiveTasks(Task task) { Debug.Assert(task != null, "Null Task objects can't be added to the ActiveTasks collection"); - LazyInitializer.EnsureInitialized(ref s_currentActiveTasks, () => new Dictionary()); + Dictionary activeTasks = + Volatile.Read(ref s_currentActiveTasks) ?? + Interlocked.CompareExchange(ref s_currentActiveTasks, new Dictionary(), null) ?? + s_currentActiveTasks; int taskId = task.Id; - lock (s_currentActiveTasks) + lock (activeTasks) { - s_currentActiveTasks[taskId] = task; + activeTasks[taskId] = task; } // always return true to keep signature as bool for backwards compatibility return true; @@ -205,13 +209,14 @@ internal static bool AddToActiveTasks(Task task) internal static void RemoveFromActiveTasks(Task task) { - if (s_currentActiveTasks == null) + Dictionary? activeTasks = s_currentActiveTasks; + if (activeTasks is null) return; int taskId = task.Id; - lock (s_currentActiveTasks) + lock (activeTasks) { - s_currentActiveTasks.Remove(taskId); + activeTasks.Remove(taskId); } } @@ -630,15 +635,14 @@ private void AssignCancellationToken(CancellationToken cancellationToken, Task? // antecedent.RemoveCancellation(continuation) can be invoked. ctr = cancellationToken.UnsafeRegister(static t => { - var tuple = (Tuple)t!; + var tuple = (TupleSlim)t!; Task targetTask = tuple.Item1; Task antecedentTask = tuple.Item2; antecedentTask.RemoveContinuation(tuple.Item3); targetTask.InternalCancel(); - }, - new Tuple(this, antecedent, continuation)); + }, new TupleSlim(this, antecedent, continuation)); } props.m_cancellationRegistration = new StrongBox(ctr); @@ -1316,7 +1320,13 @@ internal bool IsCancellationRequested /// The initialized contingent properties object. internal ContingentProperties EnsureContingentPropertiesInitialized() { - return LazyInitializer.EnsureInitialized(ref m_contingentProperties, () => new ContingentProperties()); + return Volatile.Read(ref m_contingentProperties) ?? InitializeContingentProperties(); + + ContingentProperties InitializeContingentProperties() + { + Interlocked.CompareExchange(ref m_contingentProperties, new ContingentProperties(), null); + return m_contingentProperties; + } } /// @@ -1839,7 +1849,7 @@ internal void AddException(object exceptionObject, bool representsCancellation) } /// Gets the exception dispatch infos once the task has faulted. - internal ReadOnlyCollection GetExceptionDispatchInfos() + internal List GetExceptionDispatchInfos() { Debug.Assert(IsFaulted && ExceptionRecorded, "Must only be used when the task has faulted with exceptions."); return m_contingentProperties!.m_exceptionsHolder!.GetExceptionDispatchInfos(); @@ -2845,6 +2855,7 @@ private bool SpinThenBlockingWait(int millisecondsTimeout, CancellationToken can try { AddCompletionAction(mres, addBeforeOthers: true); +#pragma warning disable CA1416 // Validate platform compatibility, issue: https://github.com/dotnet/runtime/issues/44622 if (infiniteWait) { returnValue = mres.Wait(Timeout.Infinite, cancellationToken); @@ -2857,6 +2868,7 @@ private bool SpinThenBlockingWait(int millisecondsTimeout, CancellationToken can returnValue = mres.Wait((int)(millisecondsTimeout - elapsedTimeTicks), cancellationToken); } } +#pragma warning restore CA1416 } finally { @@ -4438,6 +4450,7 @@ private bool AddTaskContinuation(object tc, bool addBeforeOthers) /// At least one of the instances was canceled -or- an exception was thrown during /// the execution of at least one of the instances. /// + [UnsupportedOSPlatform("browser")] [MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger public static void WaitAll(params Task[] tasks) { @@ -4480,6 +4493,7 @@ public static void WaitAll(params Task[] tasks) /// infinite time-out -or- timeout is greater than /// . /// + [UnsupportedOSPlatform("browser")] [MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger public static bool WaitAll(Task[] tasks, TimeSpan timeout) { @@ -4518,6 +4532,7 @@ public static bool WaitAll(Task[] tasks, TimeSpan timeout) /// is a negative number other than -1, which represents an /// infinite time-out. /// + [UnsupportedOSPlatform("browser")] [MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger public static bool WaitAll(Task[] tasks, int millisecondsTimeout) { @@ -4546,6 +4561,7 @@ public static bool WaitAll(Task[] tasks, int millisecondsTimeout) /// /// The was canceled. /// + [UnsupportedOSPlatform("browser")] [MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger public static void WaitAll(Task[] tasks, CancellationToken cancellationToken) { @@ -4586,12 +4602,14 @@ public static void WaitAll(Task[] tasks, CancellationToken cancellationToken) /// /// The was canceled. /// + [UnsupportedOSPlatform("browser")] [MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger public static bool WaitAll(Task[] tasks, int millisecondsTimeout, CancellationToken cancellationToken) => WaitAllCore(tasks, millisecondsTimeout, cancellationToken); // Separated out to allow it to be optimized (caller is marked NoOptimization for VS parallel debugger // to be able to see the method on the stack and inspect arguments). + [UnsupportedOSPlatform("browser")] private static bool WaitAllCore(Task[] tasks, int millisecondsTimeout, CancellationToken cancellationToken) { if (tasks == null) @@ -4730,6 +4748,7 @@ private static void AddToList(T item, ref List? list, int initSize) /// The timeout. /// The cancellation token. /// true if all of the tasks completed; otherwise, false. + [UnsupportedOSPlatform("browser")] private static bool WaitAllBlockingCore(List tasks, int millisecondsTimeout, CancellationToken cancellationToken) { Debug.Assert(tasks != null, "Expected a non-null list of tasks"); @@ -4807,8 +4826,8 @@ internal static void AddExceptionsForCompletedTask(ref List? exceptio // this will make sure it won't throw again in the implicit wait t.UpdateExceptionObservedStatus(); - exceptions ??= new List(ex.InnerExceptions.Count); - exceptions.AddRange(ex.InnerExceptions); + exceptions ??= new List(ex.InnerExceptionCount); + exceptions.AddRange(ex.InternalInnerExceptions); } } @@ -6657,9 +6676,9 @@ private void InvokeCoreAsync(Task completingTask) ThreadPool.UnsafeQueueUserWorkItem(static state => { // InvokeCore(completingTask); - var tuple = (Tuple, Task>)state!; + var tuple = (TupleSlim, Task>)state!; tuple.Item1.InvokeCore(tuple.Item2); - }, Tuple.Create, Task>(this, completingTask)); + }, new TupleSlim, Task>(this, completingTask)); } /// Processes the outer task once it's completed. @@ -6709,7 +6728,7 @@ private bool TrySetFromTask(Task task, bool lookForOce) break; case TaskStatus.Faulted: - ReadOnlyCollection edis = task.GetExceptionDispatchInfos(); + List edis = task.GetExceptionDispatchInfos(); ExceptionDispatchInfo oceEdi; if (lookForOce && edis.Count > 0 && (oceEdi = edis[0]) != null && diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/TaskExceptionHolder.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/TaskExceptionHolder.cs index c3565cafbf5c..3c3e8092a421 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/TaskExceptionHolder.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/TaskExceptionHolder.cs @@ -277,17 +277,16 @@ internal AggregateException CreateExceptionObject(bool calledFromFinalizer, Exce } /// - /// Wraps the exception dispatch infos into a new read-only collection. By calling this method, - /// the holder assumes exceptions to have been "observed", such that the finalization + /// The holder assumes exceptions to have been "observed", such that the finalization /// check will be subsequently skipped. /// - internal ReadOnlyCollection GetExceptionDispatchInfos() + internal List GetExceptionDispatchInfos() { List? exceptions = m_faultExceptions; Debug.Assert(exceptions != null, "Expected an initialized list."); Debug.Assert(exceptions.Count > 0, "Expected at least one exception."); MarkAsHandled(false); - return new ReadOnlyCollection(exceptions); + return exceptions; } /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs index d6b85c503571..dbe39bf4e71f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs @@ -47,7 +47,9 @@ protected internal override void QueueTask(Task task) // Run LongRunning tasks on their own dedicated thread. Thread thread = new Thread(s_longRunningThreadWork); thread.IsBackground = true; // Keep this thread from blocking process shutdown +#if !TARGET_BROWSER thread.Start(task); +#endif } else { diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Unix.cs deleted file mode 100644 index c68be85516a5..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Unix.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Threading -{ - public sealed partial class Thread - { - private static Exception GetApartmentStateChangeFailedException() => new PlatformNotSupportedException(SR.PlatformNotSupported_ComInterop); - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Windows.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Windows.cs deleted file mode 100644 index 6bc647f80536..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.Windows.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Threading -{ - public sealed partial class Thread - { - private static Exception GetApartmentStateChangeFailedException() => - new InvalidOperationException(SR.Thread_ApartmentState_ChangeFailed); - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.cs index 0bfcc9433fd0..e0b497898267 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/Thread.cs @@ -295,13 +295,15 @@ public ApartmentState ApartmentState [SupportedOSPlatform("windows")] public void SetApartmentState(ApartmentState state) { - if (!TrySetApartmentState(state)) - { - throw GetApartmentStateChangeFailedException(); - } + SetApartmentState(state, throwOnError:true); } public bool TrySetApartmentState(ApartmentState state) + { + return SetApartmentState(state, throwOnError:false); + } + + private bool SetApartmentState(ApartmentState state, bool throwOnError) { switch (state) { @@ -314,7 +316,7 @@ public bool TrySetApartmentState(ApartmentState state) throw new ArgumentOutOfRangeException(nameof(state), SR.ArgumentOutOfRange_Enum); } - return TrySetApartmentStateUnchecked(state); + return SetApartmentStateUnchecked(state, throwOnError); } [Obsolete("Thread.GetCompressedStack is no longer supported. Please use the System.Threading.CompressedStack class")] diff --git a/src/libraries/System.Private.CoreLib/src/System/Tuple.cs b/src/libraries/System.Private.CoreLib/src/System/Tuple.cs index bb523a750e24..d6e87002d5d5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Tuple.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Tuple.cs @@ -114,10 +114,15 @@ public Tuple(T1 item1) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -131,10 +136,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -148,26 +158,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return comparer.GetHashCode(m_Item1!); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + + private int GetHashCode(IEqualityComparer comparer) + { + return comparer.GetHashCode(m_Item1!); + } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(')'); @@ -213,10 +234,15 @@ public Tuple(T1 item1, T2 item2) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -230,10 +256,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -251,26 +282,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!)); + } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -317,10 +359,15 @@ public Tuple(T1 item1, T2 item2, T3 item3) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -334,10 +381,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -359,26 +411,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!)); + } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -431,10 +494,15 @@ public Tuple(T1 item1, T2 item2, T3 item3, T4 item4) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -448,10 +516,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -477,26 +550,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!)); + } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -555,10 +639,15 @@ public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -572,10 +661,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -605,26 +699,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); + } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!)); } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -689,10 +794,15 @@ public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -706,10 +816,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -743,26 +858,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!), comparer.GetHashCode(m_Item6!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!), comparer.GetHashCode(m_Item6!)); + } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -833,10 +959,15 @@ public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -854,6 +985,11 @@ int IComparable.CompareTo(object? obj) } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -891,26 +1027,37 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { - return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!), comparer.GetHashCode(m_Item6!), comparer.GetHashCode(m_Item7!)); + return GetHashCode(comparer); } int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); + } + + private int GetHashCode(IEqualityComparer comparer) + { + return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1!), comparer.GetHashCode(m_Item2!), comparer.GetHashCode(m_Item3!), comparer.GetHashCode(m_Item4!), comparer.GetHashCode(m_Item5!), comparer.GetHashCode(m_Item6!), comparer.GetHashCode(m_Item7!)); } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); @@ -992,10 +1139,15 @@ public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item public override bool Equals(object? obj) { - return ((IStructuralEquatable)this).Equals(obj, EqualityComparer.Default); + return Equals(obj, EqualityComparer.Default); } bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) + { + return Equals(other, comparer); + } + + private bool Equals(object? other, IEqualityComparer comparer) { if (other == null) return false; @@ -1009,10 +1161,15 @@ bool IStructuralEquatable.Equals(object? other, IEqualityComparer comparer) int IComparable.CompareTo(object? obj) { - return ((IStructuralComparable)this).CompareTo(obj, Comparer.Default); + return CompareTo(obj, Comparer.Default); } int IStructuralComparable.CompareTo(object? other, IComparer comparer) + { + return CompareTo(other, comparer); + } + + private int CompareTo(object? other, IComparer comparer) { if (other == null) return 1; @@ -1054,10 +1211,15 @@ int IStructuralComparable.CompareTo(object? other, IComparer comparer) public override int GetHashCode() { - return ((IStructuralEquatable)this).GetHashCode(EqualityComparer.Default); + return GetHashCode(EqualityComparer.Default); } int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) + { + return GetHashCode(comparer); + } + + private int GetHashCode(IEqualityComparer comparer) { // We want to have a limited hash in this case. We'll use the last 8 elements of the tuple ITupleInternal t = (ITupleInternal)m_Rest; @@ -1088,16 +1250,22 @@ int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) int ITupleInternal.GetHashCode(IEqualityComparer comparer) { - return ((IStructuralEquatable)this).GetHashCode(comparer); + return GetHashCode(comparer); } + public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('('); - return ((ITupleInternal)this).ToString(sb); + return ToString(sb); } string ITupleInternal.ToString(StringBuilder sb) + { + return ToString(sb); + } + + private string ToString(StringBuilder sb) { sb.Append(m_Item1); sb.Append(", "); diff --git a/src/libraries/System.Private.CoreLib/src/System/TupleSlim.cs b/src/libraries/System.Private.CoreLib/src/System/TupleSlim.cs new file mode 100644 index 000000000000..250008a0be2d --- /dev/null +++ b/src/libraries/System.Private.CoreLib/src/System/TupleSlim.cs @@ -0,0 +1,53 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System +{ + /// Simple alternative to for use in corelib. + /// Exists to avoid the unnecessary size increase that may come from Tuple's additional surface area. + internal sealed class TupleSlim + { + public readonly T1 Item1; + public readonly T2 Item2; + + public TupleSlim(T1 item1, T2 item2) + { + Item1 = item1; + Item2 = item2; + } + } + + /// Simple alternative to for use in corelib. + /// Exists to avoid the unnecessary size increase that may come from Tuple's additional surface area. + internal sealed class TupleSlim + { + public readonly T1 Item1; + public readonly T2 Item2; + public readonly T3 Item3; + + public TupleSlim(T1 item1, T2 item2, T3 item3) + { + Item1 = item1; + Item2 = item2; + Item3 = item3; + } + } + + /// Simple alternative to for use in corelib. + /// Exists to avoid the unnecessary size increase that may come from Tuple's additional surface area. + internal sealed class TupleSlim + { + public readonly T1 Item1; + public readonly T2 Item2; + public readonly T3 Item3; + public readonly T4 Item4; + + public TupleSlim(T1 item1, T2 item2, T3 item3, T4 item4) + { + Item1 = item1; + Item2 = item2; + Item3 = item3; + Item4 = item4; + } + } +} diff --git a/src/libraries/System.Private.CoreLib/src/System/Type.cs b/src/libraries/System.Private.CoreLib/src/System/Type.cs index 9991def2f4b9..9f6d3cbe595b 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Type.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Type.cs @@ -60,7 +60,7 @@ public abstract partial class Type : MemberInfo, IReflect public virtual int GetArrayRank() => throw new NotSupportedException(SR.NotSupported_SubclassOverride); public virtual Type GetGenericTypeDefinition() => throw new NotSupportedException(SR.NotSupported_SubclassOverride); - public virtual Type[] GenericTypeArguments => (IsGenericType && !IsGenericTypeDefinition) ? GetGenericArguments() : Array.Empty(); + public virtual Type[] GenericTypeArguments => (IsGenericType && !IsGenericTypeDefinition) ? GetGenericArguments() : Type.EmptyTypes; public virtual Type[] GetGenericArguments() => throw new NotSupportedException(SR.NotSupported_SubclassOverride); public virtual int GenericParameterPosition => throw new InvalidOperationException(SR.Arg_NotGenericParameter); @@ -132,6 +132,27 @@ public virtual Type[] GetGenericParameterConstraints() [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] public ConstructorInfo? GetConstructor(Type[] types) => GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, types, null); + /// + /// Searches for a constructor whose parameters match the specified argument types, using the specified binding constraints. + /// + /// + /// A bitwise combination of the enumeration values that specify how the search is conducted. + /// -or- + /// Default to return null. + /// + /// + /// An array of Type objects representing the number, order, and type of the parameters for the constructor to get. + /// -or- + /// An empty array of the type (that is, Type[] types = Array.Empty{Type}()) to get a constructor that takes no parameters. + /// -or- + /// . + /// + /// + /// A object representing the constructor that matches the specified requirements, if found; otherwise, null. + /// + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] + public ConstructorInfo? GetConstructor(BindingFlags bindingAttr, Type[] types) => GetConstructor(bindingAttr, binder: null, types, modifiers: null); + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] public ConstructorInfo? GetConstructor(BindingFlags bindingAttr, Binder? binder, Type[] types, ParameterModifier[]? modifiers) => GetConstructor(bindingAttr, binder, CallingConventions.Any, types, modifiers); @@ -221,6 +242,24 @@ public virtual Type[] GetGenericParameterConstraints() return GetMethodImpl(name, bindingAttr, null, CallingConventions.Any, null, null); } + /// + /// Searches for the specified method whose parameters match the specified argument types, using the specified binding constraints. + /// + /// The string containing the name of the method to get. + /// + /// A bitwise combination of the enumeration values that specify how the search is conducted. + /// -or- + /// Default to return null. + /// + /// + /// An array of objects representing the number, order, and type of the parameters for the method to get. + /// -or- + /// An empty array of objects (as provided by the field) to get a method that takes no parameters. + /// + /// An object representing the method that matches the specified requirements, if found; otherwise, null. + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] + public MethodInfo? GetMethod(string name, BindingFlags bindingAttr, Type[] types) => GetMethod(name, bindingAttr, binder: null, types, modifiers: null); + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] public MethodInfo? GetMethod(string name, Type[] types) => GetMethod(name, types, null); @@ -385,15 +424,14 @@ public static Type[] GetTypeArray(object[] args) public static TypeCode GetTypeCode(Type? type) { - if (type == null) - return TypeCode.Empty; - return type.GetTypeCodeImpl(); + return type?.GetTypeCodeImpl() ?? TypeCode.Empty; } + protected virtual TypeCode GetTypeCodeImpl() { Type systemType = UnderlyingSystemType; - if (this != systemType && systemType != null) - return Type.GetTypeCode(systemType); + if (!ReferenceEquals(this, systemType) && systemType is not null) + return GetTypeCode(systemType); return TypeCode.Object; } diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Comparison.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Comparison.cs deleted file mode 100644 index df4f9fb32a0b..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Comparison.cs +++ /dev/null @@ -1,383 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.Unicode; - -namespace System -{ - public sealed partial class Utf8String - { - /* - * COMPARISON OF UTF-8 AGAINST UTF-16 - */ - - /// - /// Returns a value stating whether and - /// represent the same data. An ordinal comparison is performed scalar-by-scalar. - /// - /// - /// This method returns if both and - /// are null, or if both are empty. This method returns - /// if either input contains an ill-formed subsequence. Otherwise, this method returns - /// if and only if both arguments decode to the same Unicode scalar value sequence. - /// - public static bool AreEquivalent(Utf8String? utf8Text, string? utf16Text) - { - if (ReferenceEquals(utf8Text, utf16Text)) - { - return true; // both are null - } - - if (utf8Text is null || utf16Text is null) - { - return false; // null is never equivalent to non-null - } - - if (utf8Text.Length == 0 && utf16Text.Length == 0) - { - return true; // empty is equivalent to empty - } - - // Short-circuit: are the texts of sufficiently different lengths that - // they could never be equivalent? This check allows us to skip the - // normal decoding walk, which is O(n). - // - // The maximum length of a 'System.String' is around 1 billion elements, - // so we can perform the multiplication within an unsigned 32-bit domain. - - Debug.Assert((ulong)utf16Text.Length * MAX_UTF8_BYTES_PER_UTF16_CHAR <= uint.MaxValue, "Did somebody change the max. allowed string length?"); - - if (utf8Text.Length < utf16Text.Length - || ((uint)utf16Text.Length * MAX_UTF8_BYTES_PER_UTF16_CHAR < (uint)utf8Text.Length)) - { - return false; - } - - return AreEquivalentOrdinalSkipShortCircuitingChecks(utf8Text.AsBytes(), utf16Text.AsSpan()); - } - - /// - /// Returns a value stating whether and - /// represent the same data. An ordinal comparison is performed scalar-by-scalar. - /// - /// - /// This method returns if both and - /// are empty. This method returns - /// if either input contains an ill-formed subsequence. Otherwise, this method returns - /// if and only if both arguments decode to the same Unicode scalar value sequence. - /// - public static bool AreEquivalent(Utf8Span utf8Text, ReadOnlySpan utf16Text) => AreEquivalent(utf8Text.Bytes, utf16Text); - - /// - /// Returns a value stating whether and - /// represent the same data. An ordinal comparison is performed scalar-by-scalar. - /// - /// - /// This method returns if both and - /// are empty. This method returns - /// if either input contains an ill-formed subsequence. Otherwise, this method returns - /// if and only if both arguments decode to the same Unicode scalar value sequence. - /// - public static bool AreEquivalent(ReadOnlySpan utf8Text, ReadOnlySpan utf16Text) - { - if (utf8Text.Length == 0 && utf16Text.Length == 0) - { - // Don't use IsEmpty for this check; JIT can optimize "Length == 0" better - // for this particular scenario. - - return true; - } - - // Same check as the (Utf8String, string) overload. The primary difference is that - // since spans can be up to 2 billion elements in length, we need to perform - // the multiplication step in the unsigned 64-bit domain to avoid integer overflow. - - if (utf8Text.Length < utf16Text.Length - || ((ulong)(uint)utf16Text.Length * MAX_UTF8_BYTES_PER_UTF16_CHAR < (uint)utf8Text.Length)) - { - return false; - } - - return AreEquivalentOrdinalSkipShortCircuitingChecks(utf8Text, utf16Text); - } - - private static bool AreEquivalentOrdinalSkipShortCircuitingChecks(ReadOnlySpan utf8Text, ReadOnlySpan utf16Text) - { - while (!utf16Text.IsEmpty) - { - // If the next UTF-16 subsequence is malformed or incomplete, or if the next - // UTF-8 subsequence is malformed or incomplete, or if they don't decode to - // the exact same Unicode scalar value, fail. - // - // The Rune.DecodeFrom* APIs handle empty inputs just fine and return "Incomplete". - - // TODO_UTF8STRING: If we assume Utf8String contains well-formed UTF-8, we could - // create a version of this method that calls a faster implementation of DecodeFromUtf8. - // We'd need to be careful not to call that optimized routine if the user passed - // us a normal ROS that didn't originate from a Utf8String or similar. - - if (Rune.DecodeFromUtf16(utf16Text, out Rune scalarFromUtf16, out int charsConsumedJustNow) != OperationStatus.Done - || Rune.DecodeFromUtf8(utf8Text, out Rune scalarFromUtf8, out int bytesConsumedJustNow) != OperationStatus.Done - || scalarFromUtf16 != scalarFromUtf8) - { - return false; - } - - // TODO_UTF8STRING: As an optimization, we could perform unsafe slices below. - - utf16Text = utf16Text.Slice(charsConsumedJustNow); - utf8Text = utf8Text.Slice(bytesConsumedJustNow); - } - - // We decoded the entire UTF-16 input, and so far it has matched the decoded form - // of the UTF-8 input. Now just make sure we've also decoded the entirety of the - // UTF-8 data, otherwise the input strings aren't equivalent. - - return utf8Text.IsEmpty; - } - - /// - /// Returns a value stating whether the current instance contains - /// . An ordinal comparison is used. - /// - public bool Contains(char value) - { - return Rune.TryCreate(value, out Rune rune) && Contains(rune); - } - - /// - /// Returns a value stating whether the current instance contains - /// . The specified comparison is used. - /// - public bool Contains(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && Contains(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance contains - /// the specified . An ordinal comparison is used. - /// - public bool Contains(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - -#if SYSTEM_PRIVATE_CORELIB - return SpanHelpers.IndexOf( - ref DangerousGetMutableReference(), Length, - ref MemoryMarshal.GetReference(runeBytes), runeBytesWritten) >= 0; -#else - return GetSpan() - .IndexOf(runeBytes.Slice(0, runeBytesWritten)) >= 0; -#endif - } - - /// - /// Returns a value stating whether the current instance contains - /// the specified . The specified comparison is used. - /// - public bool Contains(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return ToString().Contains(value.ToString(), comparison); -#else - return ToString().IndexOf(value.ToString(), comparison) >= 0; -#endif - } - - /// - /// Returns a value stating whether the current instance contains . - /// An ordinal comparison is used. - /// - public bool Contains(Utf8String value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsBytes().IndexOf(value.AsBytes()) >= 0; - } - - /// - /// Returns a value stating whether the current instance contains . - /// The specified comparison is used. - /// - public bool Contains(Utf8String value, StringComparison comparison) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - // TODO_UTF8STRING: Optimize me to avoid allocations. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return ToString().Contains(value.ToString(), comparison); -#else - return ToString().IndexOf(value.ToString(), comparison) >= 0; -#endif - } - - /// - /// Returns a value stating whether the current instance ends with - /// . An ordinal comparison is used. - /// - public bool EndsWith(char value) - { - return Rune.TryCreate(value, out Rune rune) && EndsWith(rune); - } - - /// - /// Returns a value stating whether the current instance ends with - /// . The specified comparison is used. - /// - public bool EndsWith(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && EndsWith(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance ends with - /// the specified . An ordinal comparison is used. - /// - public bool EndsWith(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - - return this.AsBytes().EndsWith(runeBytes.Slice(0, runeBytesWritten)); - } - - /// - /// Returns a value stating whether the current instance ends with - /// the specified . The specified comparison is used. - /// - public bool EndsWith(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return ToString().EndsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance ends with . - /// An ordinal comparison is used. - /// - public bool EndsWith(Utf8String value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsBytes().EndsWith(value.AsBytes()); - } - - /// - /// Returns a value stating whether the current instance ends with . - /// The specified comparison is used. - /// - public bool EndsWith(Utf8String value, StringComparison comparison) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return ToString().EndsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance begins with - /// . An ordinal comparison is used. - /// - public bool StartsWith(char value) - { - return Rune.TryCreate(value, out Rune rune) && StartsWith(rune); - } - - /// - /// Returns a value stating whether the current instance begins with - /// . The specified comparison is used. - /// - public bool StartsWith(char value, StringComparison comparison) - { - return Rune.TryCreate(value, out Rune rune) && StartsWith(rune, comparison); - } - - /// - /// Returns a value stating whether the current instance begins with - /// the specified . An ordinal comparison is used. - /// - public bool StartsWith(Rune value) - { - // TODO_UTF8STRING: This should be split into two methods: - // One which operates on a single-byte (ASCII) search value, - // the other which operates on a multi-byte (non-ASCII) search value. - - Span runeBytes = stackalloc byte[Utf8Utility.MaxBytesPerScalar]; - int runeBytesWritten = value.EncodeToUtf8(runeBytes); - - return this.AsBytes().StartsWith(runeBytes.Slice(0, runeBytesWritten)); - } - - /// - /// Returns a value stating whether the current instance begins with - /// the specified . The specified comparison is used. - /// - public bool StartsWith(Rune value, StringComparison comparison) - { - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return ToString().StartsWith(value.ToString(), comparison); - } - - /// - /// Returns a value stating whether the current instance begins with . - /// An ordinal comparison is used. - /// - public bool StartsWith(Utf8String value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsBytes().StartsWith(value.AsBytes()); - } - - /// - /// Returns a value stating whether the current instance begins with . - /// The specified comparison is used. - /// - public bool StartsWith(Utf8String value, StringComparison comparison) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - // TODO_UTF8STRING: Optimize me to avoid allocations. - - return ToString().StartsWith(value.ToString(), comparison); - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Construction.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Construction.cs deleted file mode 100644 index 7508458d73ba..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Construction.cs +++ /dev/null @@ -1,547 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.Unicode; - -namespace System -{ - public sealed partial class Utf8String - { - private const int MAX_STACK_TRANSCODE_CHAR_COUNT = 128; - - // For values beyond U+FFFF, it's 4 UTF-8 bytes per 2 UTF-16 chars (2:1 ratio) - private const int MAX_UTF8_BYTES_PER_UTF16_CHAR = 3; - - /* - * STATIC FACTORIES - */ - - /// - /// Creates a instance from existing UTF-8 data. - /// - /// The existing data from which to create the new . - /// - /// When this method returns, contains a with the same contents as - /// if consists of well-formed UTF-8 data. Otherwise, . - /// - /// - /// if contains well-formed UTF-8 data and - /// contains the encapsulating a copy of that data. Otherwise, . - /// - /// - /// This method is a non-throwing equivalent of the constructor . - /// - public static bool TryCreateFrom(ReadOnlySpan buffer, [NotNullWhen(true)] out Utf8String? value) - { - if (buffer.IsEmpty) - { - value = Empty; // it's valid to create a Utf8String instance from an empty buffer; we'll return the Empty singleton - return true; - } - - // Create and populate the Utf8String instance. - - Utf8String newString = FastAllocateSkipZeroInit(buffer.Length); -#if SYSTEM_PRIVATE_CORELIB - Buffer.Memmove(ref newString.DangerousGetMutableReference(), ref MemoryMarshal.GetReference(buffer), (uint)buffer.Length); -#else - buffer.CopyTo(newString.DangerousGetMutableSpan()); -#endif - - // Now perform validation. - // Reminder: Perform validation over the copy, not over the source. - - if (Utf8Utility.IsWellFormedUtf8(newString.AsBytes())) - { - value = newString; - return true; - } - else - { - value = default; - return false; - } - } - - /// - /// Creates a instance from existing UTF-16 data, transcoding the - /// existing data to UTF-8 upon creation. - /// - /// The existing UTF-16 data from which to create a new . - /// - /// When this method returns, contains a with equivalent contents as - /// if consists of well-formed UTF-16 data. Otherwise, . - /// - /// - /// if contains well-formed UTF-16 data and - /// contains the encapsulating equivalent data (as UTF-8). Otherwise, . - /// - /// - /// This method is a non-throwing equivalent of the constructor . - /// - public static bool TryCreateFrom(ReadOnlySpan buffer, [NotNullWhen(true)] out Utf8String? value) - { - // Returning "false" from this method means only that the original input buffer didn't - // contain well-formed UTF-16 data. This method could fail in other ways, such as - // throwing an OutOfMemoryException if allocation of the output parameter fails. - - value = CreateFromUtf16Common(buffer, replaceInvalidSequences: false); - return !(value is null); - } - - /// - /// Creates a instance from existing UTF-8 data. - /// - /// The existing data from which to create the new . - /// - /// If contains any ill-formed UTF-8 subsequences, those subsequences will - /// be replaced with in the returned instance. - /// This may result in the returned having different contents (and thus a different - /// total byte length) than the source parameter . - /// - public static Utf8String CreateFromRelaxed(ReadOnlySpan buffer) - { - if (buffer.IsEmpty) - { - return Empty; - } - - // Create and populate the Utf8String instance. - - Utf8String newString = FastAllocateSkipZeroInit(buffer.Length); -#if SYSTEM_PRIVATE_CORELIB - Buffer.Memmove(ref newString.DangerousGetMutableReference(), ref MemoryMarshal.GetReference(buffer), (uint)buffer.Length); -#else - buffer.CopyTo(newString.DangerousGetMutableSpan()); -#endif - - // Now perform validation & fixup. - - return Utf8Utility.ValidateAndFixupUtf8String(newString); - } - - /// - /// Creates a instance from existing UTF-16 data. - /// - /// The existing data from which to create the new . - /// - /// If contains any ill-formed UTF-16 subsequences, those subsequences will - /// be replaced with in the returned instance. - /// This may result in the original string data not round-tripping properly; that is, calling - /// on the returned instance may produce a - /// whose contents differ from . - /// - public static Utf8String CreateFromRelaxed(ReadOnlySpan buffer) - { - Utf8String? newString = CreateFromUtf16Common(buffer, replaceInvalidSequences: true); - - if (newString is null) - { - // This shouldn't happen unless somebody mutated the input buffer in the middle - // of data processing. We just fail in this scenario rather than retrying. - - throw new ArgumentException( - message: SR.Utf8String_InputContainedMalformedUtf16, - paramName: nameof(buffer)); - } - - return newString; - } - - internal static Utf8String CreateFromRune(Rune value) - { - // Can skip zero-init since we're going to populate the entire buffer. - - Utf8String newString = FastAllocateSkipZeroInit(value.Utf8SequenceLength); - - if (value.IsAscii) - { - // Fast path: If an ASCII value, just allocate the one-byte string and fill in the single byte contents. - - newString.DangerousGetMutableReference() = (byte)value.Value; - return newString; - } - else - { - // Slow path: If not ASCII, allocate a string of the appropriate length and fill in the multi-byte contents. - - int bytesWritten = value.EncodeToUtf8(newString.DangerousGetMutableSpan()); - Debug.Assert(newString.Length == bytesWritten); - return newString; - } - } - - // Returns 'null' if the input buffer does not represent well-formed UTF-16 data and 'replaceInvalidSequences' is false. - private static Utf8String? CreateFromUtf16Common(ReadOnlySpan value, bool replaceInvalidSequences) - { - // Shortcut: Since we expect most strings to be small-ish, first try a one-pass - // operation where we transcode directly on to the stack and then copy the validated - // data into the new Utf8String instance. It's still O(n), but it should have a smaller - // constant factor than a typical "count + transcode" combo. - - OperationStatus status; - Utf8String newString; - - if (value.Length <= MAX_STACK_TRANSCODE_CHAR_COUNT /* in chars */) - { - if (value.IsEmpty) - { - return Empty; - } - - Span scratch = stackalloc byte[MAX_STACK_TRANSCODE_CHAR_COUNT * MAX_UTF8_BYTES_PER_UTF16_CHAR]; // largest possible expansion, as explained below - status = Utf8.FromUtf16(value, scratch, out _, out int scratchBytesWritten, replaceInvalidSequences); - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.InvalidData); - - if (status == OperationStatus.InvalidData) - { - return null; - } - - // At this point we know transcoding succeeded, so the original input data was well-formed. - // We'll memcpy the scratch buffer into the new Utf8String instance, which is very fast. - - newString = FastAllocateSkipZeroInit(scratchBytesWritten); - scratch.Slice(0, scratchBytesWritten).CopyTo(newString.DangerousGetMutableSpan()); - return newString; - } - - // First, determine how many UTF-8 bytes we'll need in order to represent this data. - // This also checks the input data for well-formedness. - - long utf8CodeUnitCountAdjustment; - - unsafe - { - fixed (char* pChars = &MemoryMarshal.GetReference(value)) - { - if (Utf16Utility.GetPointerToFirstInvalidChar(pChars, value.Length, out utf8CodeUnitCountAdjustment, out int _) != (pChars + (uint)value.Length)) - { - return null; - } - } - } - - // The max possible expansion transcoding UTF-16 to UTF-8 is that each input char corresponds - // to 3 UTF-8 bytes. This is most common in CJK languages. Since the input buffer could be - // up to int.MaxValue elements in length, we need to use a 64-bit value to hold the total - // required UTF-8 byte length. However, the VM places restrictions on how large a Utf8String - // instance can be, and the maximum allowed element count is just under int.MaxValue. (This - // mirrors the restrictions already in place for System.String.) The VM will throw an - // OutOfMemoryException if anybody tries to create a Utf8String instance larger than that, - // so if we detect any sort of overflow we'll end up passing int.MaxValue down to the allocation - // routine. This normalizes the OutOfMemoryException the caller sees. - - long totalUtf8BytesRequired = (uint)value.Length + utf8CodeUnitCountAdjustment; - if (totalUtf8BytesRequired > int.MaxValue) - { - totalUtf8BytesRequired = int.MaxValue; - } - - // We can get away with FastAllocateSkipZeroInit here because we're not going to return the - // new Utf8String instance to the caller if we don't overwrite every byte of the buffer. - - newString = FastAllocateSkipZeroInit((int)totalUtf8BytesRequired); - - // Now transcode the UTF-16 input into the newly allocated Utf8String's buffer. We can't call the - // "skip validation" transcoder because the caller could've mutated the input buffer between the - // initial counting step and the transcoding step below. - - status = Utf8.FromUtf16(value, newString.DangerousGetMutableSpan(), out _, out int bytesWritten, replaceInvalidSequences: false); - if (status != OperationStatus.Done || bytesWritten != newString.Length) - { - // Did somebody mutate our input buffer? Shouldn't be any other way this could happen. - - return null; - } - - return newString; - } - -#if !SYSTEM_PRIVATE_CORELIB - // Returns 'null' if the input buffer does not represent well-formed UTF-16 data and 'replaceInvalidSequences' is false. - private static byte[]? CreateBufferFromUtf16Common(ReadOnlySpan value, bool replaceInvalidSequences) - { - // Shortcut: Since we expect most strings to be small-ish, first try a one-pass - // operation where we transcode directly on to the stack and then copy the validated - // data into the new Utf8String instance. It's still O(n), but it should have a smaller - // constant factor than a typical "count + transcode" combo. - - OperationStatus status; - byte[] newBuffer; - - if (value.Length <= MAX_STACK_TRANSCODE_CHAR_COUNT /* in chars */) - { - if (value.IsEmpty) - { - return Utf8String.Empty._bytes; - } - - Span scratch = stackalloc byte[MAX_STACK_TRANSCODE_CHAR_COUNT * MAX_UTF8_BYTES_PER_UTF16_CHAR]; // largest possible expansion, as explained below - status = Utf8.FromUtf16(value, scratch, out _, out int scratchBytesWritten, replaceInvalidSequences); - Debug.Assert(status == OperationStatus.Done || status == OperationStatus.InvalidData); - - if (status == OperationStatus.InvalidData) - { - return null; - } - - // At this point we know transcoding succeeded, so the original input data was well-formed. - // We'll memcpy the scratch buffer into the new Utf8String instance, which is very fast. - - newBuffer = new byte[scratchBytesWritten + 1]; // null-terminated - scratch.Slice(0, scratchBytesWritten).CopyTo(newBuffer); - return newBuffer; - } - - // First, determine how many UTF-8 bytes we'll need in order to represent this data. - // This also checks the input data for well-formedness. - - long utf8CodeUnitCountAdjustment; - - unsafe - { - fixed (char* pChars = &MemoryMarshal.GetReference(value)) - { - if (Utf16Utility.GetPointerToFirstInvalidChar(pChars, value.Length, out utf8CodeUnitCountAdjustment, out int _) != (pChars + (uint)value.Length)) - { - return null; - } - } - } - - // The max possible expansion transcoding UTF-16 to UTF-8 is that each input char corresponds - // to 3 UTF-8 bytes. This is most common in CJK languages. Since the input buffer could be - // up to int.MaxValue elements in length, we need to use a 64-bit value to hold the total - // required UTF-8 byte length. However, the VM places restrictions on how large a Utf8String - // instance can be, and the maximum allowed element count is just under int.MaxValue. (This - // mirrors the restrictions already in place for System.String.) The VM will throw an - // OutOfMemoryException if anybody tries to create a Utf8String instance larger than that, - // so if we detect any sort of overflow we'll end up passing int.MaxValue down to the allocation - // routine. This normalizes the OutOfMemoryException the caller sees. - - long totalUtf8BytesRequired = (uint)value.Length + utf8CodeUnitCountAdjustment; - if (totalUtf8BytesRequired >= int.MaxValue) - { - totalUtf8BytesRequired = int.MaxValue - 1; - } - - // We can get away with FastAllocateSkipZeroInit here because we're not going to return the - // new Utf8String instance to the caller if we don't overwrite every byte of the buffer. - - newBuffer = new byte[(int)totalUtf8BytesRequired + 1]; // null-terminated - - // Now transcode the UTF-16 input into the newly allocated Utf8String's buffer. We can't call the - // "skip validation" transcoder because the caller could've mutated the input buffer between the - // initial counting step and the transcoding step below. - - status = Utf8.FromUtf16(value, newBuffer.AsSpan(0, newBuffer.Length - 1), out _, out int bytesWritten, replaceInvalidSequences: false); - if (status != OperationStatus.Done || bytesWritten != newBuffer.Length - 1) - { - // Did somebody mutate our input buffer? Shouldn't be any other way this could happen. - - return null; - } - - return newBuffer; - } -#endif // !SYSTEM_PRIVATE_CORELIB - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - /// - /// Creates a new instance, allowing the provided delegate to populate the - /// instance data of the returned object. - /// - /// Type of the state object provided to . - /// The length, in bytes, of the instance to create. - /// The state object to provide to . - /// The callback which will be invoked to populate the returned . - /// - /// Thrown if populates the buffer with ill-formed UTF-8 data. - /// - /// - /// The runtime will perform UTF-8 validation over the contents provided by the delegate. - /// If an invalid UTF-8 subsequence is detected, an exception is thrown. - /// - public static Utf8String Create(int length, TState state, SpanAction action) - { - if (length < 0) - { - ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum(); - } - - if (action is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.action); - } - - if (length == 0) - { - return Empty; // special-case empty input - } - - // Create and populate the Utf8String instance. - // Can't use FastAllocateSkipZeroInit here because we're handing the raw buffer to user code. - - Utf8String newString = FastAllocate(length); - action(newString.DangerousGetMutableSpan(), state); - - // Now perform validation. - - if (!Utf8Utility.IsWellFormedUtf8(newString.AsBytes())) - { - throw new ArgumentException( - message: SR.Utf8String_CallbackProvidedMalformedData, - paramName: nameof(action)); - } - - return newString; - } - - /// - /// Creates a new instance, allowing the provided delegate to populate the - /// instance data of the returned object. - /// - /// Type of the state object provided to . - /// The length, in bytes, of the instance to create. - /// The state object to provide to . - /// The callback which will be invoked to populate the returned . - /// - /// The runtime will perform UTF-8 validation over the contents provided by the delegate. - /// If an invalid UTF-8 subsequence is detected, the invalid subsequence is replaced with - /// in the returned instance. This could result in the returned instance - /// having a different byte length than specified by the parameter. - /// - public static Utf8String CreateRelaxed(int length, TState state, SpanAction action) - { - if (length < 0) - { - ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum(); - } - - if (action is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.action); - } - - if (length == 0) - { - return Empty; // special-case empty input - } - - // Create and populate the Utf8String instance. - // Can't use FastAllocateSkipZeroInit here because we're handing the raw buffer to user code. - - Utf8String newString = FastAllocate(length); - action(newString.DangerousGetMutableSpan(), state); - - // Now perform validation and fixup. - - return Utf8Utility.ValidateAndFixupUtf8String(newString); - } - - /// - /// Creates a new instance, allowing the provided delegate to populate the - /// instance data of the returned object. Please see remarks for important safety information about - /// this method. - /// - /// Type of the state object provided to . - /// The length, in bytes, of the instance to create. - /// The state object to provide to . - /// The callback which will be invoked to populate the returned . - /// - /// This factory method can be used as an optimization to skip the validation step that - /// normally performs. The contract - /// of this method requires that populate the buffer with well-formed UTF-8 - /// data, as contractually guarantees that it contains only well-formed UTF-8 data, - /// and runtime instability could occur if a caller violates this guarantee. - /// - public static Utf8String UnsafeCreateWithoutValidation(int length, TState state, SpanAction action) - { - if (length < 0) - { - ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum(); - } - - if (action is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.action); - } - - if (length == 0) - { - return Empty; // special-case empty input - } - - // Create and populate the Utf8String instance. - // Can't use FastAllocateSkipZeroInit here because we're handing the raw buffer to user code. - - Utf8String newString = FastAllocate(length); - action(newString.DangerousGetMutableSpan(), state); - - // The line below is removed entirely in release builds. - - Debug.Assert(Utf8Utility.IsWellFormedUtf8(newString.AsBytes()), "Callback populated the buffer with ill-formed UTF-8 data."); - - return newString; - } -#endif // !NETSTANDARD2_0 - - /// - /// Creates a new instance populated with a copy of the provided contents. - /// Please see remarks for important safety information about this method. - /// - /// The contents to copy to the new . - /// - /// This factory method can be used as an optimization to skip the validation step that the - /// constructors normally perform. The contract of this method requires that - /// contain only well-formed UTF-8 data, as - /// contractually guarantees that it contains only well-formed UTF-8 data, and runtime instability - /// could occur if a caller violates this guarantee. - /// - public static Utf8String UnsafeCreateWithoutValidation(ReadOnlySpan utf8Contents) - { - if (utf8Contents.IsEmpty) - { - return Empty; // special-case empty input - } - - // Create and populate the Utf8String instance. - - Utf8String newString = FastAllocateSkipZeroInit(utf8Contents.Length); - utf8Contents.CopyTo(newString.DangerousGetMutableSpan()); - // TODO_UTF8STRING: Zero-init was skipped above, but we didn't null-terminate the string - - // The line below is removed entirely in release builds. - - Debug.Assert(Utf8Utility.IsWellFormedUtf8(newString.AsBytes()), "Buffer contained ill-formed UTF-8 data."); - - return newString; - } - - /* - * HELPER METHODS - */ - - /// - /// Creates a new instance of the specified length. Actual storage allocated is "length + 1" bytes - /// because instances are null-terminated. Aside from the null terminator, the contents of the new - /// instance are not zero-inited. Use only with first-party APIs which we know for a fact will - /// initialize the entire contents of the Utf8String instance. - /// - /// - /// The implementation of this method checks its input argument for overflow. - /// - private static Utf8String FastAllocateSkipZeroInit(int length) - { - // TODO_UTF8STRING: Actually skip zero-init. - - return FastAllocate(length); - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Conversion.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Conversion.cs deleted file mode 100644 index 2e304e1a08b9..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Conversion.cs +++ /dev/null @@ -1,85 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Globalization; -using System.Text; - -namespace System -{ - public sealed partial class Utf8String - { - /// - /// Returns a value stating whether this instance is normalized - /// using the specified Unicode normalization form. - /// - /// The to check. - /// if this instance represents text - /// normalized under , otherwise . - public bool IsNormalized(NormalizationForm normalizationForm = NormalizationForm.FormC) - { - // TODO_UTF8STRING: Avoid allocations in this code path. - - return ToString().IsNormalized(normalizationForm); - } - - /// - /// Returns a new instance which represents this instance - /// normalized using the specified Unicode normalization form. - /// - /// - /// The original is left unchanged by this operation. - /// - public Utf8String Normalize(NormalizationForm normalizationForm = NormalizationForm.FormC) => this.AsSpanSkipNullCheck().Normalize(normalizationForm); - - /// - /// Converts this to a . - /// - public char[] ToCharArray() => this.AsSpanSkipNullCheck().ToCharArray(); - - /// - /// Returns a new instance which represents this instance - /// converted to lowercase using . - /// - /// - /// The original is left unchanged by this operation. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToLower(CultureInfo culture) => this.AsSpanSkipNullCheck().ToLower(culture); - - /// - /// Returns a new instance which represents this instance - /// converted to lowercase using the invariant culture. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToLowerInvariant() => this.AsSpanSkipNullCheck().ToLowerInvariant(); - - /// - /// Returns a new instance which represents this instance - /// converted to uppercase using . - /// - /// - /// The original is left unchanged by this operation. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToUpper(CultureInfo culture) => this.AsSpanSkipNullCheck().ToUpper(culture); - - /// - /// Returns a new instance which represents this instance - /// converted to uppercase using the invariant culture. - /// - /// - /// The original is left unchanged by this operation. For more information on the - /// invariant culture, see the property. Note that the returned - /// instance may be longer or shorter (in terms of UTF-8 byte count) than the - /// input . - /// - public Utf8String ToUpperInvariant() => this.AsSpanSkipNullCheck().ToUpperInvariant(); - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Enumeration.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Enumeration.cs deleted file mode 100644 index b52f2799d52b..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Enumeration.cs +++ /dev/null @@ -1,254 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; - -namespace System -{ - public sealed partial class Utf8String - { - /* - * ENUMERABLE PROPERTY ACCESSORS - */ - - /// - /// Allows enumeration over the individual UTF-8 bytes of this instance. - /// - public ByteEnumerable Bytes => new ByteEnumerable(this); - - /// - /// Allows enumeration over the UTF-16 code units (see ) which would result - /// from transcoding this instance to a UTF-16 . - /// - public CharEnumerable Chars => new CharEnumerable(this); - - /// - /// Allows enumeration over the Unicode scalar values (see ) which are - /// encoded by this instance. - /// - public RuneEnumerable Runes => new RuneEnumerable(this); - - /* - * ENUMERATORS - */ - - public readonly struct ByteEnumerable : IEnumerable - { - private readonly Utf8String _obj; - - internal ByteEnumerable(Utf8String obj) - { - _obj = obj; - } - - public Enumerator GetEnumerator() => new Enumerator(_obj); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - public struct Enumerator : IEnumerator - { - private readonly Utf8String _obj; - private int _nextByteIdx; - - internal Enumerator(Utf8String obj) - { - _obj = obj; - _nextByteIdx = 0; - Current = default; - } - - public byte Current { get; private set; } - - public bool MoveNext() - { - int nextByteIdx = _nextByteIdx; - ReadOnlySpan objAsBytes = _obj.AsBytesSkipNullCheck(); - - if ((uint)nextByteIdx < (uint)objAsBytes.Length) - { - Current = objAsBytes[nextByteIdx]; - _nextByteIdx = nextByteIdx + 1; - return true; - } - else - { - return false; - } - } - - void IDisposable.Dispose() - { - // intentionally no-op - } - - object IEnumerator.Current => Current; - - void IEnumerator.Reset() => throw NotImplemented.ByDesign; - } - } - - public readonly struct CharEnumerable : IEnumerable - { - private readonly Utf8String _obj; - - internal CharEnumerable(Utf8String obj) - { - _obj = obj; - } - - public Enumerator GetEnumerator() => new Enumerator(_obj); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - public struct Enumerator : IEnumerator - { - private readonly Utf8String _obj; - private uint _currentCharPair; - private int _nextByteIdx; - - internal Enumerator(Utf8String obj) - { - _obj = obj; - _currentCharPair = default; - _nextByteIdx = 0; - } - - public char Current => (char)_currentCharPair; - - public bool MoveNext() - { - // Make copies of fields to avoid tearing issues since we're - // about to perform unsafe accesses. - - uint currentCharPair = _currentCharPair; - if (currentCharPair > char.MaxValue) - { - // There was a surrogate pair smuggled in here from a previous operation. - // Shift out the high surrogate value and return immediately. - - _currentCharPair = currentCharPair >> 16; - return true; - } - - ReadOnlySpan bytes = _obj.AsBytesSkipNullCheck(); - int nextByteIdx = _nextByteIdx; - - if ((uint)nextByteIdx >= (uint)bytes.Length) - { - return false; // no more data - } - - // TODO_UTF8STRING: Can we skip correctness checks below? - // Perhaps not, this enumerator struct is potentially tearable. - - OperationStatus status = Rune.DecodeFromUtf8(bytes.Slice(nextByteIdx), out Rune currentRune, out int bytesConsumedJustNow); - Debug.Assert(status == OperationStatus.Done); - - _nextByteIdx = nextByteIdx + bytesConsumedJustNow; - - if (currentRune.IsBmp) - { - // Common case - BMP scalar value. - - _currentCharPair = (uint)currentRune.Value; - } - else - { - // Uncommon case - supplementary (astral) plane scalar value. - // We'll smuggle the two UTF-16 code units into a single 32-bit value, - // with the leading surrogate packed into the low 16 bits of the value, - // and the trailing surrogate packed into the high 16 bits of the value. - - UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar((uint)currentRune.Value, out char leadingCodeUnit, out char trailingCodeUnit); - _currentCharPair = (uint)leadingCodeUnit + ((uint)trailingCodeUnit << 16); - } - - return true; - } - - void IDisposable.Dispose() - { - // intentionally no-op - } - - object IEnumerator.Current => Current; - - void IEnumerator.Reset() => throw NotImplemented.ByDesign; - } - } - - public readonly struct RuneEnumerable : IEnumerable - { - private readonly Utf8String _obj; - - internal RuneEnumerable(Utf8String obj) - { - _obj = obj; - } - - public Enumerator GetEnumerator() => new Enumerator(_obj); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - public struct Enumerator : IEnumerator - { - private readonly Utf8String _obj; - private Rune _currentRune; - private int _nextByteIdx; - - internal Enumerator(Utf8String obj) - { - _obj = obj; - _currentRune = default; - _nextByteIdx = 0; - } - - public Rune Current => _currentRune; - - public bool MoveNext() - { - // Make copies of fields to avoid tearing issues since we're - // about to perform unsafe accesses. - - ReadOnlySpan bytes = _obj.AsBytesSkipNullCheck(); - int nextByteIdx = _nextByteIdx; - - if ((uint)nextByteIdx >= (uint)bytes.Length) - { - return false; // no more data - } - - bytes = bytes.Slice(nextByteIdx); - - // TODO_UTF8STRING: Can we skip correctness checks below? - // Perhaps not, this enumerator struct is potentially tearable. - - OperationStatus status = Rune.DecodeFromUtf8(bytes, out _currentRune, out int bytesConsumedJustNow); - Debug.Assert(status == OperationStatus.Done); - - _nextByteIdx = nextByteIdx + bytesConsumedJustNow; - return true; - } - - void IDisposable.Dispose() - { - // intentionally no-op - } - - object IEnumerator.Current => Current; - - void IEnumerator.Reset() => throw NotImplemented.ByDesign; - } - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs deleted file mode 100644 index affdaf7d2e04..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs +++ /dev/null @@ -1,767 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.Unicode; - -#if SYSTEM_PRIVATE_CORELIB -using Internal.Runtime.CompilerServices; -#endif - -namespace System -{ - public sealed partial class Utf8String - { - [StackTraceHidden] - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void CheckSplitOptions(Utf8StringSplitOptions options) - { - if ((uint)options > (uint)(Utf8StringSplitOptions.RemoveEmptyEntries | Utf8StringSplitOptions.TrimEntries)) - { - CheckSplitOptions_Throw(options); - } - } - - [StackTraceHidden] - private static void CheckSplitOptions_Throw(Utf8StringSplitOptions options) - { - throw new ArgumentOutOfRangeException( - paramName: nameof(options), - message: SR.Format(SR.Arg_EnumIllegalVal, (int)options)); - } - - /// - /// Substrings this without bounds checking. - /// - private Utf8String InternalSubstring(int startIndex, int length) - { - Debug.Assert(startIndex >= 0, "StartIndex cannot be negative."); - Debug.Assert(startIndex <= this.Length, "StartIndex cannot point beyond the end of the string (except to the null terminator)."); - Debug.Assert(length >= 0, "Length cannot be negative."); - Debug.Assert(startIndex + length <= this.Length, "StartIndex and Length cannot point beyond the end of the string."); - - Debug.Assert(length != 0 && length != this.Length, "Caller should handle Length boundary conditions."); - - // Since Utf8String instances must contain well-formed UTF-8 data, we cannot allow a substring such that - // either boundary of the new substring splits a multi-byte UTF-8 subsequence. Fortunately this is a very - // easy check: since we assume the original buffer consisted entirely of well-formed UTF-8 data, all we - // need to do is check that neither the substring we're about to create nor the substring that would - // follow immediately thereafter begins with a UTF-8 continuation byte. Should this occur, it means that - // the UTF-8 lead byte is in a prior substring, which would indicate a multi-byte sequence has been split. - // It's ok for us to dereference the element immediately after the end of the Utf8String instance since - // we know it's a null terminator. - - if (Utf8Utility.IsUtf8ContinuationByte(DangerousGetMutableReference(startIndex)) - || Utf8Utility.IsUtf8ContinuationByte(DangerousGetMutableReference(startIndex + length))) - { - ThrowImproperStringSplit(); - } - - Utf8String newString = FastAllocateSkipZeroInit(length); -#if SYSTEM_PRIVATE_CORELIB - Buffer.Memmove(ref newString.DangerousGetMutableReference(), ref this.DangerousGetMutableReference(startIndex), (uint)length); -#else - this.GetSpan().Slice(startIndex, length).CopyTo(newString.DangerousGetMutableSpan()); -#endif - - return newString; - } - - private Utf8String InternalSubstringWithoutCorrectnessChecks(int startIndex, int length) - { - Debug.Assert(startIndex >= 0, "StartIndex cannot be negative."); - Debug.Assert(startIndex <= this.Length, "StartIndex cannot point beyond the end of the string (except to the null terminator)."); - Debug.Assert(length >= 0, "Length cannot be negative."); - Debug.Assert(startIndex + length <= this.Length, "StartIndex and Length cannot point beyond the end of the string."); - - // In debug mode, perform the checks anyway. It's ok if we read just past the end of the - // Utf8String instance, since we'll just be reading the null terminator (which is safe). - - Debug.Assert(!Utf8Utility.IsUtf8ContinuationByte(DangerousGetMutableReference(startIndex)), "Somebody is trying to split this Utf8String improperly."); - Debug.Assert(!Utf8Utility.IsUtf8ContinuationByte(DangerousGetMutableReference(startIndex + length)), "Somebody is trying to split this Utf8String improperly."); - - if (length == 0) - { - return Empty; - } - else if (length == this.Length) - { - return this; - } - else - { - Utf8String newString = FastAllocateSkipZeroInit(length); -#if SYSTEM_PRIVATE_CORELIB - Buffer.Memmove(ref newString.DangerousGetMutableReference(), ref this.DangerousGetMutableReference(startIndex), (uint)length); -#else - this.GetSpan().Slice(startIndex, length).CopyTo(newString.DangerousGetMutableSpan()); -#endif - return newString; - } - } - - [StackTraceHidden] - internal static void ThrowImproperStringSplit() - { - throw new InvalidOperationException( - message: SR.Utf8String_CannotSplitMultibyteSubsequence); - } - - internal Utf8String Substring(int startIndex, int length) - { - ValidateStartIndexAndLength(startIndex, length); - - // Optimizations: since instances are immutable, we can return 'this' or the known - // Empty instance if the caller passed us a startIndex at the string boundary. - - if (length == 0) - { - return Empty; - } - - if (length == this.Length) - { - return this; - } - - return InternalSubstring(startIndex, length); - } - - public SplitResult Split(char separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - if (!Rune.TryCreate(separator, out Rune rune)) - { - throw new ArgumentOutOfRangeException( - paramName: nameof(separator), - message: SR.ArgumentOutOfRange_Utf16SurrogatesDisallowed); - } - - CheckSplitOptions(options); - - return new SplitResult(this, rune, options); - } - - public SplitResult Split(Rune separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - CheckSplitOptions(options); - - return new SplitResult(this, separator, options); - } - - public SplitResult Split(Utf8String separator, Utf8StringSplitOptions options = Utf8StringSplitOptions.None) - { - if (IsNullOrEmpty(separator)) - { - throw new ArgumentException( - paramName: nameof(separator), - message: SR.Argument_CannotBeNullOrEmpty); - } - - CheckSplitOptions(options); - - return new SplitResult(this, separator, options); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(char separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(char separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(Rune separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(Rune separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOn(Utf8String separator) - { - return TryFind(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOn(Utf8String separator, StringComparison comparisonType) - { - return TryFind(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(char separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(char separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(Rune separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(Rune separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// An ordinal search is performed. - /// - public SplitOnResult SplitOnLast(Utf8String separator) - { - return TryFindLast(separator, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Locates the last occurrence of within this instance, creating - /// instances which represent the data on either side of the separator. If is not found - /// within this instance, returns the tuple "(this, null)". - /// - /// - /// The search is performed using the specified . - /// - public SplitOnResult SplitOnLast(Utf8String separator, StringComparison comparisonType) - { - return TryFindLast(separator, comparisonType, out Range range) ? new SplitOnResult(this, range) : new SplitOnResult(this); - } - - /// - /// Trims whitespace from the beginning and the end of this , - /// returning a new containing the resulting slice. - /// - public Utf8String Trim() => TrimHelper(TrimType.Both); - - /// - /// Trims whitespace from only the end of this , - /// returning a new containing the resulting slice. - /// - public Utf8String TrimEnd() => TrimHelper(TrimType.Tail); - - private Utf8String TrimHelper(TrimType trimType) - { - Utf8Span trimmedSpan = this.AsSpan().TrimHelper(trimType); - - // Try to avoid allocating a new Utf8String instance if possible. - // Otherwise, allocate a new substring wrapped around the resulting slice. - - return (trimmedSpan.Length == this.Length) ? this : trimmedSpan.ToUtf8String(); - } - - /// - /// Trims whitespace from only the beginning of this , - /// returning a new containing the resulting slice. - /// - public Utf8String TrimStart() => TrimHelper(TrimType.Head); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - [StackTraceHidden] - private void ValidateStartIndexAndLength(int startIndex, int length) - { -#if TARGET_64BIT - // See comment in Span.Slice for how this works. - if ((ulong)(uint)startIndex + (ulong)(uint)length > (ulong)(uint)this.Length) - ThrowHelper.ThrowArgumentOutOfRangeException(); -#else - if ((uint)startIndex > (uint)this.Length || (uint)length > (uint)(this.Length - startIndex)) - ThrowHelper.ThrowArgumentOutOfRangeException(); -#endif - } - - [StructLayout(LayoutKind.Auto)] - public readonly struct SplitResult : IEnumerable - { - private readonly State _state; - - internal SplitResult(Utf8String source, Rune searchRune, Utf8StringSplitOptions splitOptions) - { - _state = new State - { - FullSearchSpace = source, - OffsetAtWhichToContinueSearch = 0, - SearchRune = searchRune.Value, - SearchTerm = default, - SplitOptions = splitOptions - }; - } - - internal SplitResult(Utf8String source, Utf8String searchTerm, Utf8StringSplitOptions splitOptions) - { - _state = new State - { - FullSearchSpace = source, - OffsetAtWhichToContinueSearch = 0, - SearchRune = -1, - SearchTerm = searchTerm, - SplitOptions = splitOptions - }; - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - item2 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - item3 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3, out Utf8String? item4) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item3 = TrimIfNeeded(nextItem); - - item4 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3, out Utf8String? item4, out Utf8String? item5) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item3 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item4 = TrimIfNeeded(nextItem); - - item5 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3, out Utf8String? item4, out Utf8String? item5, out Utf8String? item6) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item3 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item4 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item5 = TrimIfNeeded(nextItem); - - item6 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3, out Utf8String? item4, out Utf8String? item5, out Utf8String? item6, out Utf8String? item7) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item3 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item4 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item5 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item6 = TrimIfNeeded(nextItem); - - item7 = TrimIfNeeded(remainder); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String? item1, out Utf8String? item2, out Utf8String? item3, out Utf8String? item4, out Utf8String? item5, out Utf8String? item6, out Utf8String? item7, out Utf8String? item8) - { - _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span nextItem, out Utf8Span remainder); - item1 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item2 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item3 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item4 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item5 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item6 = TrimIfNeeded(nextItem); - - _state.DeconstructHelper(in remainder, out nextItem, out remainder); - item7 = TrimIfNeeded(nextItem); - - item8 = TrimIfNeeded(remainder); - } - - public Enumerator GetEnumerator() => new Enumerator(this); - - private unsafe Utf8String? TrimIfNeeded(Utf8Span span) - { - if ((_state.SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - span = span.Trim(); - } - - if (span.Length < _state.FullSearchSpace.Length) - { - if (!span.IsEmpty) - { - return span.ToUtf8String(); - } - else - { - // normalize empty spans to null if needed, otherwise normalize to Utf8String.Empty - - if ((_state.SplitOptions & Utf8StringSplitOptions.RemoveEmptyEntries) != 0 - || Unsafe.AreSame(ref span.DangerousGetMutableReference(), ref Unsafe.AsRef(null))) - { - return null; - } - - return Empty; - } - } - else - { - // Don't bother making a copy of the entire Utf8String instance; - // just return the original value. - - return _state.FullSearchSpace; - } - } - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - [StructLayout(LayoutKind.Auto)] - public struct Enumerator : IEnumerator - { - private const Utf8StringSplitOptions HALT_ENUMERATION = (Utf8StringSplitOptions)int.MinValue; - - private Utf8String? _current; - private State _state; - - internal Enumerator(SplitResult result) - { - _current = null; - _state = result._state; // copy by value - } - - public Utf8String? Current => _current; - - public bool MoveNext() - { - bool wasMatchFound = _state.DeconstructHelper(_state.GetRemainingSearchSpace(), out Utf8Span firstItem, out Utf8Span remainder); - - _current = (firstItem.IsEmpty) ? Empty : (firstItem.Length == _state.FullSearchSpace.Length) ? _state.FullSearchSpace : firstItem.ToUtf8String(); - _state.OffsetAtWhichToContinueSearch = _state.FullSearchSpace.Length - remainder.Length; - - if (wasMatchFound) - { - return true; - } - - // At this point, the search term was not found within the search space. '_current' contains the last - // bit of data after the final occurrence of the search term. We'll also set a flag saying that we've - // completed enumeration. - - if (firstItem.IsEmpty && (_state.SplitOptions & Utf8StringSplitOptions.RemoveEmptyEntries) != 0) - { - return false; - } - - if ((_state.SplitOptions & HALT_ENUMERATION) != 0) - { - return false; - } - - _state.SplitOptions |= HALT_ENUMERATION; // prevents yielding forever at end of split - - return true; - } - - void IDisposable.Dispose() - { - // no-op - } - - object? IEnumerator.Current => Current; - - void IEnumerator.Reset() - { - throw new NotSupportedException(); - } - } - - [StructLayout(LayoutKind.Auto)] - private struct State // fully mutable - { - internal Utf8String FullSearchSpace; - internal int OffsetAtWhichToContinueSearch; - internal int SearchRune; // -1 if not specified, takes less space than "Rune?" - internal Utf8String? SearchTerm; - internal Utf8StringSplitOptions SplitOptions; - - // Returns 'true' if a match was found, 'false' otherwise. - internal readonly bool DeconstructHelper(in Utf8Span source, out Utf8Span firstItem, out Utf8Span remainder) - { - // n.b. Our callers might pass the same reference for 'source' and 'remainder'. - // We need to take care not to read 'source' after writing 'remainder'. - - bool wasMatchFound; - ref readonly Utf8Span searchSpan = ref source; - - while (true) - { - if (searchSpan.IsEmpty) - { - firstItem = searchSpan; - remainder = default; - wasMatchFound = false; - break; - } - - Range matchRange; - - int searchRune = SearchRune; // local copy so as to avoid struct tearing - if (searchRune >= 0) - { -#if NETCOREAPP3_0 - wasMatchFound = searchSpan.TryFind(new Rune((uint)searchRune), out matchRange); -#else - wasMatchFound = searchSpan.TryFind(Rune.UnsafeCreate((uint)searchRune), out matchRange); -#endif - } - else - { - wasMatchFound = searchSpan.TryFind(SearchTerm, out matchRange); - } - - if (!wasMatchFound) - { - // If no match was found, we move 'source' to 'firstItem', trim if necessary, and return right away. - - firstItem = searchSpan; - - if ((SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - firstItem = firstItem.Trim(); - } - - remainder = default; - } - else - { - // Otherwise, if a match was found, split the result across 'firstItem' and 'remainder', - // applying trimming if necessary. - - firstItem = searchSpan[..matchRange.Start]; // TODO_UTF8STRING: Could use unsafe slicing as optimization - remainder = searchSpan[matchRange.End..]; // TODO_UTF8STRING: Could use unsafe slicing as optimization - - if ((SplitOptions & Utf8StringSplitOptions.TrimEntries) != 0) - { - firstItem = firstItem.Trim(); - } - - // If we're asked to remove empty entries, loop until there's a real value in 'firstItem'. - - if ((SplitOptions & Utf8StringSplitOptions.RemoveEmptyEntries) != 0 && firstItem.IsEmpty) - { - searchSpan = ref remainder; - continue; - } - } - - break; // loop only if explicit 'continue' statement was hit - } - - return wasMatchFound; - } - - internal Utf8Span GetRemainingSearchSpace() - { - // TODO_UTF8STRING: The slice below can be optimized by performing a specialized bounds check - // and multi-byte subsequence check, since we don't need to check the end of the span. - // If we do optimize this we need to remember to make local copies of the fields we're reading - // to guard against torn structs. - - return FullSearchSpace.AsSpanSkipNullCheck()[OffsetAtWhichToContinueSearch..]; - } - } - } - - [StructLayout(LayoutKind.Auto)] - public readonly struct SplitOnResult - { - // Used when there is no match. - internal SplitOnResult(Utf8String originalSearchSpace) - { - Before = originalSearchSpace; - After = null; - } - - // Used when a match is found. - internal SplitOnResult(Utf8String originalSearchSpace, Range searchTermMatchRange) - { - (int startIndex, int length) = searchTermMatchRange.GetOffsetAndLength(originalSearchSpace.Length); - - // TODO_UTF8STRING: The below indexer performs correctness checks. We can skip these checks (and even the - // bounds checks more generally) since we know the inputs are all valid and the containing struct is not - // subject to tearing. - - Before = originalSearchSpace[..startIndex]; - After = originalSearchSpace[(startIndex + length)..]; - } - - public Utf8String? After { get; } - public Utf8String Before { get; } - - [EditorBrowsable(EditorBrowsableState.Never)] - public void Deconstruct(out Utf8String before, out Utf8String? after) - { - before = Before; - after = After; - } - } - } -} - -#if !SYSTEM_PRIVATE_CORELIB -namespace System.Diagnostics -{ - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Struct, Inherited = false)] - internal sealed class StackTraceHiddenAttribute : Attribute - { - public StackTraceHiddenAttribute() { } - } -} -#endif diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Searching.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.Searching.cs deleted file mode 100644 index 166d87d73f72..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.Searching.cs +++ /dev/null @@ -1,186 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Text; - -namespace System -{ - public sealed partial class Utf8String - { - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(char value, out Range range) => this.AsSpanSkipNullCheck().TryFind(value, out range); - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(char value, StringComparison comparisonType, out Range range) => this.AsSpanSkipNullCheck().TryFind(value, comparisonType, out range); - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(Rune value, out Range range) => this.AsSpanSkipNullCheck().TryFind(value, out range); - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(Rune value, StringComparison comparisonType, out Range range) => this.AsSpanSkipNullCheck().TryFind(value, comparisonType, out range); - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFind(Utf8String value, out Range range) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsSpanSkipNullCheck().TryFind(value, out range); - } - - /// - /// Attempts to locate the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFind(Utf8String value, StringComparison comparisonType, out Range range) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsSpanSkipNullCheck().TryFind(value, comparisonType, out range); - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(char value, out Range range) => this.AsSpanSkipNullCheck().TryFindLast(value, out range); - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(char value, StringComparison comparisonType, out Range range) => this.AsSpanSkipNullCheck().TryFindLast(value, comparisonType, out range); - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(Rune value, out Range range) => this.AsSpanSkipNullCheck().TryFindLast(value, out range); - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(Rune value, StringComparison comparisonType, out Range range) => this.AsSpanSkipNullCheck().TryFindLast(value, comparisonType, out range); - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// An ordinal search is performed. - /// - public bool TryFindLast(Utf8String value, out Range range) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsSpanSkipNullCheck().TryFindLast(value, out range); - } - - /// - /// Attempts to locate the last occurrence of the target within this instance. - /// If is found, returns and sets to - /// the location where occurs within this instance. - /// If is not found, returns and sets - /// to . - /// - /// - /// The search is performed using the specified . - /// - public bool TryFindLast(Utf8String value, StringComparison comparisonType, out Range range) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - return this.AsSpanSkipNullCheck().TryFindLast(value, comparisonType, out range); - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8String.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8String.cs deleted file mode 100644 index 30b4cbd93dc6..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8String.cs +++ /dev/null @@ -1,280 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; -using System.Text; -using System.Text.Unicode; - -#if SYSTEM_PRIVATE_CORELIB -using Internal.Runtime.CompilerServices; -#endif - -namespace System -{ - /// - /// Represents an immutable string of UTF-8 code units. - /// - public sealed partial class Utf8String : IComparable, IEquatable - { - /* - * STATIC FIELDS - */ - - public static readonly Utf8String Empty = FastAllocate(0); - - /* - * OPERATORS - */ - - /// - /// Compares two instances for equality using a comparer. - /// - public static bool operator ==(Utf8String? left, Utf8String? right) => Equals(left, right); - - /// - /// Compares two instances for inequality using a comparer. - /// - public static bool operator !=(Utf8String? left, Utf8String? right) => !Equals(left, right); - - /// - /// Projects a instance as a . - /// - /// - public static implicit operator Utf8Span(Utf8String? value) => new Utf8Span(value); - - /* - * INDEXERS - */ - - public Utf8String this[Range range] - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - // The two lines immediately below provide no bounds checking. - // The Substring method we call will both perform a bounds check - // and check for an improper split across a multi-byte subsequence. - - int startIdx = range.Start.GetOffset(Length); - int endIdx = range.End.GetOffset(Length); - - return Substring(startIdx, endIdx - startIdx); - } - } - - /* - * METHODS - */ - - /// - /// Similar to , but skips the null check on the input. - /// Throws a if the input is null. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal Utf8Span AsSpanSkipNullCheck() - { - return Utf8Span.UnsafeCreateWithoutValidation(this.AsBytesSkipNullCheck()); - } - - public int CompareTo(Utf8String? other) - { - // TODO_UTF8STRING: This is ordinal, but String.CompareTo uses CurrentCulture. - // Is this acceptable? Should we perhaps just remove the interface? - - return Utf8StringComparer.Ordinal.Compare(this, other); - } - - public int CompareTo(Utf8String? other, StringComparison comparison) - { - // TODO_UTF8STRING: We can avoid the virtual dispatch by moving the switch into this method. - - return Utf8StringComparer.FromComparison(comparison).Compare(this, other); - } - - /// - /// Returns a mutable reference to the element at index - /// of this instance. The index is not bounds-checked. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference(int index) - { - Debug.Assert(index >= 0, "Caller should've performed bounds checking."); - return ref DangerousGetMutableReference((uint)index); - } - - /// - /// Returns a mutable reference to the element at index - /// of this instance. The index is not bounds-checked. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference(nuint index) - { - // Allow retrieving references to the null terminator. - - Debug.Assert(index <= (uint)Length, "Caller should've performed bounds checking."); -#if SYSTEM_PRIVATE_CORELIB - return ref Unsafe.AddByteOffset(ref DangerousGetMutableReference(), index); -#else - return ref Unsafe.AddByteOffset(ref DangerousGetMutableReference(), (nint)index); -#endif - } - - /// - /// Performs an equality comparison using a comparer. - /// - public override bool Equals(object? obj) - { - return (obj is Utf8String other) && this.Equals(other); - } - - /// - /// Performs an equality comparison using a comparer. - /// - public bool Equals(Utf8String? value) - { - // First, a very quick check for referential equality. - - if (ReferenceEquals(this, value)) - { - return true; - } - - // Otherwise, perform a simple bitwise equality check. - - return !(value is null) - && this.Length == value.Length -#if SYSTEM_PRIVATE_CORELIB - && SpanHelpers.SequenceEqual(ref this.DangerousGetMutableReference(), ref value.DangerousGetMutableReference(), (uint)Length); -#else - && this.GetSpan().SequenceEqual(value.GetSpan()); -#endif - } - - /// - /// Performs an equality comparison using the specified . - /// - public bool Equals(Utf8String? value, StringComparison comparison) => Equals(this, value, comparison); - - /// - /// Compares two instances using a comparer. - /// - public static bool Equals(Utf8String? left, Utf8String? right) - { - // First, a very quick check for referential equality. - - if (ReferenceEquals(left, right)) - { - return true; - } - - // Otherwise, perform a simple bitwise equality check. - - return !(left is null) - && !(right is null) - && left.Length == right.Length -#if SYSTEM_PRIVATE_CORELIB - && SpanHelpers.SequenceEqual(ref left.DangerousGetMutableReference(), ref right.DangerousGetMutableReference(), (uint)left.Length); -#else - && left.GetSpan().SequenceEqual(right.GetSpan()); -#endif - } - - /// - /// Performs an equality comparison using the specified . - /// - public static bool Equals(Utf8String? a, Utf8String? b, StringComparison comparison) - { - // TODO_UTF8STRING: This perf can be improved, including removing - // the virtual dispatch by putting the switch directly in this method. - - return Utf8StringComparer.FromComparison(comparison).Equals(a, b); - } - - /// - /// Returns a hash code using a comparison. - /// - public override int GetHashCode() - { - // TODO_UTF8STRING: Consider whether this should use a different seed than String.GetHashCode. - - ulong seed = Marvin.DefaultSeed; -#if SYSTEM_PRIVATE_CORELIB - return Marvin.ComputeHash32(ref DangerousGetMutableReference(), (uint)_length /* in bytes */, (uint)seed, (uint)(seed >> 32)); -#else - return Marvin.ComputeHash32(_bytes, seed); -#endif - } - - /// - /// Returns a hash code using the specified . - /// - public int GetHashCode(StringComparison comparison) - { - // TODO_UTF8STRING: This perf can be improved, including removing - // the virtual dispatch by putting the switch directly in this method. - - return Utf8StringComparer.FromComparison(comparison).GetHashCode(this); - } - - /// - /// Returns if this UTF-8 text consists of all-ASCII data, - /// if there is any non-ASCII data within this UTF-8 text. - /// - /// - /// ASCII text is defined as text consisting only of scalar values in the range [ U+0000..U+007F ]. - /// Empty strings are considered to be all-ASCII. The runtime of this method is O(n). - /// - public bool IsAscii() - { - return this.AsSpan().IsAscii(); - } - - /// - /// Returns if is or zero length; - /// otherwise. - /// - public static bool IsNullOrEmpty([NotNullWhen(false)] Utf8String? value) - { - // Copied from String.IsNullOrEmpty. See that method for detailed comments on why this pattern is used. - return (value is null || 0u >= (uint)value.Length) ? true : false; - } - - public static bool IsNullOrWhiteSpace([NotNullWhen(false)] Utf8String? value) - { - return (value is null) || value.AsSpan().IsEmptyOrWhiteSpace(); - } - - /// - /// Returns the entire as an array of UTF-8 bytes. - /// - public byte[] ToByteArray() => this.AsSpanSkipNullCheck().ToByteArray(); - - /// - /// Converts this instance to a . - /// - public override string ToString() - { - // TODO_UTF8STRING: Optimize the call below, potentially by avoiding the two-pass. - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - return Encoding.UTF8.GetString(this.AsBytesSkipNullCheck()); -#else - if (Length == 0) - { - return string.Empty; - } - - unsafe - { - fixed (byte* pBytes = this.AsBytesSkipNullCheck()) - { - return Encoding.UTF8.GetString(pBytes, Length); - } - } -#endif - } - } -} diff --git a/src/libraries/System.Private.CoreLib/src/System/Utf8StringSplitOptions.cs b/src/libraries/System.Private.CoreLib/src/System/Utf8StringSplitOptions.cs deleted file mode 100644 index 0a1426cfbaba..000000000000 --- a/src/libraries/System.Private.CoreLib/src/System/Utf8StringSplitOptions.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System -{ - // TODO_UTF8STRING: This should be removed and we should use regular StringSplitOptions - // once a 'TrimEntries' flag gets added to the type. - - [Flags] - public enum Utf8StringSplitOptions - { - None = 0, - RemoveEmptyEntries = 1, - TrimEntries = 2 - } -} diff --git a/src/libraries/System.Private.DataContractSerialization/System.Private.DataContractSerialization.sln b/src/libraries/System.Private.DataContractSerialization/System.Private.DataContractSerialization.sln index 62aa528b630f..5011baf87e3a 100644 --- a/src/libraries/System.Private.DataContractSerialization/System.Private.DataContractSerialization.sln +++ b/src/libraries/System.Private.DataContractSerialization/System.Private.DataContractSerialization.sln @@ -1,29 +1,26 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.DataContractSerialization", "src\System.Private.DataContractSerialization.csproj", "{6B4C1660-D158-4820-BE1C-D7A29CEBEC9B}" +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.DataContractSerialization", "src\System.Private.DataContractSerialization.csproj", "{493BBB98-5E20-46BE-A7DC-1584F39DE27D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0B1B03BE-655C-40D8-9A2C-569BC669E8C0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {493BBB98-5E20-46BE-A7DC-1584F39DE27D} = {0B1B03BE-655C-40D8-9A2C-569BC669E8C0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6B4C1660-D158-4820-BE1C-D7A29CEBEC9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B4C1660-D158-4820-BE1C-D7A29CEBEC9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B4C1660-D158-4820-BE1C-D7A29CEBEC9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B4C1660-D158-4820-BE1C-D7A29CEBEC9B}.Release|Any CPU.Build.0 = Release|Any CPU + {493BBB98-5E20-46BE-A7DC-1584F39DE27D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {493BBB98-5E20-46BE-A7DC-1584F39DE27D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {493BBB98-5E20-46BE-A7DC-1584F39DE27D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {493BBB98-5E20-46BE-A7DC-1584F39DE27D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6B4C1660-D158-4820-BE1C-D7A29CEBEC9B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5CFD48C9-7683-4E2D-9243-54E3362548B8} + SolutionGuid = {9D091569-CE23-4382-B8FC-D651959BAB25} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ClassDataContract.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ClassDataContract.cs index 22f02e15a972..36f35e3177d8 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ClassDataContract.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ClassDataContract.cs @@ -388,7 +388,7 @@ internal static bool IsNonAttributedTypeValidForSerialization(Type type) else { return (type.IsVisible && - type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Array.Empty(), null) != null); + type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, Type.EmptyTypes) != null); } } @@ -1368,7 +1368,7 @@ private void SetKeyValuePairAdapterFlags(Type type) { _isKeyValuePairAdapter = true; _keyValuePairGenericArguments = type.GetGenericArguments(); - _keyValuePairCtorInfo = type.GetConstructor(Globals.ScanAllMembers, null, new Type[] { Globals.TypeOfKeyValuePair.MakeGenericType(_keyValuePairGenericArguments) }, null); + _keyValuePairCtorInfo = type.GetConstructor(Globals.ScanAllMembers, new Type[] { Globals.TypeOfKeyValuePair.MakeGenericType(_keyValuePairGenericArguments) }); _getKeyValuePairMethodInfo = type.GetMethod("GetKeyValuePair", Globals.ScanAllMembers)!; } } @@ -1408,7 +1408,7 @@ internal bool IsScriptObject if (!IsISerializable) return null; - ConstructorInfo? ctor = UnderlyingType.GetConstructor(Globals.ScanAllMembers, null, SerInfoCtorArgs, null); + ConstructorInfo? ctor = UnderlyingType.GetConstructor(Globals.ScanAllMembers, SerInfoCtorArgs); if (ctor == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.Format(SR.SerializationInfo_ConstructorNotFound, DataContract.GetClrTypeFullName(UnderlyingType)))); @@ -1425,7 +1425,7 @@ internal bool IsScriptObject if (type.IsValueType) return null; - ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Array.Empty(), null); + ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, Type.EmptyTypes); if (ctor == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.Format(SR.NonAttributedSerializableTypesMustHaveDefaultConstructor, DataContract.GetClrTypeFullName(type)))); diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CodeGenerator.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CodeGenerator.cs index 132a76b6da6a..3362c7a7bf55 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CodeGenerator.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CodeGenerator.cs @@ -66,7 +66,7 @@ private static MethodInfo ObjectToString { if (s_objectToString == null) { - s_objectToString = typeof(object).GetMethod("ToString", Array.Empty()); + s_objectToString = typeof(object).GetMethod("ToString", Type.EmptyTypes); Debug.Assert(s_objectToString != null); } return s_objectToString; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CollectionDataContract.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CollectionDataContract.cs index 430e7ba45df9..66e671cfaeb6 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CollectionDataContract.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CollectionDataContract.cs @@ -883,7 +883,7 @@ internal Type GetCollectionElementType() enumeratorType = GetEnumeratorMethod.ReturnType; } - MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); + MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); if (getCurrentMethod == null) { if (enumeratorType.IsInterface) @@ -1145,7 +1145,7 @@ private static bool IsCollectionOrTryCreate(Type type, bool tryCreate, out DataC ConstructorInfo? defaultCtor = null; if (!type.IsValueType) { - defaultCtor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Array.Empty(), null); + defaultCtor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes); if (defaultCtor == null && constructorRequired) { // All collection types could be considered read-only collections except collection types that are marked [Serializable]. @@ -1331,7 +1331,7 @@ private static void GetCollectionMethods(Type type, Type interfaceType, Type[] a if (addMethodOnInterface) { - addMethod = type.GetMethod(Globals.AddMethodName, BindingFlags.Instance | BindingFlags.Public, null, addMethodTypeArray, null); + addMethod = type.GetMethod(Globals.AddMethodName, BindingFlags.Instance | BindingFlags.Public, addMethodTypeArray); if (addMethod == null || addMethod.GetParameters()[0].ParameterType != addMethodTypeArray[0]) { FindCollectionMethodsOnInterface(type, interfaceType, ref addMethod, ref getEnumeratorMethod); @@ -1359,12 +1359,12 @@ private static void GetCollectionMethods(Type type, Type interfaceType, Type[] a else { // GetMethod returns Add() method with parameter closest matching T in assignability/inheritance chain - addMethod = type.GetMethod(Globals.AddMethodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, addMethodTypeArray, null); + addMethod = type.GetMethod(Globals.AddMethodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, addMethodTypeArray); } if (getEnumeratorMethod == null) { - getEnumeratorMethod = type.GetMethod(Globals.GetEnumeratorMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); + getEnumeratorMethod = type.GetMethod(Globals.GetEnumeratorMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); if (getEnumeratorMethod == null || !Globals.TypeOfIEnumerator.IsAssignableFrom(getEnumeratorMethod.ReturnType)) { Type? ienumerableInterface = interfaceType.GetInterfaces().Where(t => t.FullName!.StartsWith("System.Collections.Generic.IEnumerable")).FirstOrDefault(); diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContract.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContract.cs index d720f0ef4f33..008658e6aad0 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContract.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContract.cs @@ -1126,7 +1126,7 @@ internal virtual bool IsPrimitive { if (!_parseMethodSet) { - MethodInfo? method = UnderlyingType.GetMethod(Globals.ParseMethodName, BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(string) }, null); + MethodInfo? method = UnderlyingType.GetMethod(Globals.ParseMethodName, BindingFlags.Public | BindingFlags.Static, new Type[] { typeof(string) }); if (method != null && method.ReturnType == UnderlyingType) { @@ -1979,7 +1979,7 @@ private static void ImportKnownTypeAttributes(Type? type, Dictionary if (methodName.Length == 0) DataContract.ThrowInvalidDataContractException(SR.Format(SR.KnownTypeAttributeEmptyString, DataContract.GetClrTypeFullName(type)), type); - MethodInfo? method = type.GetMethod(methodName, BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, null, Array.Empty(), null); + MethodInfo? method = type.GetMethod(methodName, BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, Type.EmptyTypes); if (method == null) DataContract.ThrowInvalidDataContractException(SR.Format(SR.KnownTypeAttributeUnknownMethod, methodName, DataContract.GetClrTypeFullName(type)), type); diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs index 53a1840c9cdc..30ae159058ff 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs @@ -162,7 +162,7 @@ public ReadOnlyCollection KnownTypes } else { - _knownTypeCollection = new ReadOnlyCollection(Array.Empty()); + _knownTypeCollection = new ReadOnlyCollection(Type.EmptyTypes); } } return _knownTypeCollection; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/DataContractJsonSerializer.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/DataContractJsonSerializer.cs index 604040e59e8d..ebf49e42ac6e 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/DataContractJsonSerializer.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/DataContractJsonSerializer.cs @@ -92,7 +92,7 @@ public ReadOnlyCollection KnownTypes } else { - _knownTypeCollection = new ReadOnlyCollection(Array.Empty()); + _knownTypeCollection = new ReadOnlyCollection(Type.EmptyTypes); } } return _knownTypeCollection; @@ -547,7 +547,7 @@ public ReadOnlyCollection KnownTypes } else { - _knownTypeCollection = new ReadOnlyCollection(Array.Empty()); + _knownTypeCollection = new ReadOnlyCollection(Type.EmptyTypes); } } return _knownTypeCollection; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatGeneratorStatics.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatGeneratorStatics.cs index 2ed0acc31cd1..ea6c9f016b29 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatGeneratorStatics.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatGeneratorStatics.cs @@ -96,7 +96,7 @@ public static PropertyInfo CollectionItemNameProperty public static ConstructorInfo ExtensionDataObjectCtor => s_extensionDataObjectCtor ?? (s_extensionDataObjectCtor = - typeof(ExtensionDataObject).GetConstructor(Globals.ScanAllMembers, null, Array.Empty(), null))!; + typeof(ExtensionDataObject).GetConstructor(Globals.ScanAllMembers, Type.EmptyTypes))!; public static PropertyInfo ExtensionDataProperty => s_extensionDataProperty ?? (s_extensionDataProperty = typeof(IExtensibleDataObject).GetProperty("ExtensionData")!); @@ -167,7 +167,7 @@ public static MethodInfo GetUninitializedObjectMethod { if (s_getUninitializedObjectMethod == null) { - s_getUninitializedObjectMethod = typeof(XmlFormatReaderGenerator).GetMethod("UnsafeGetUninitializedObject", Globals.ScanAllMembers, null, new Type[] { typeof(Type) }, null); + s_getUninitializedObjectMethod = typeof(XmlFormatReaderGenerator).GetMethod("UnsafeGetUninitializedObject", Globals.ScanAllMembers, new Type[] { typeof(Type) }); Debug.Assert(s_getUninitializedObjectMethod != null); } return s_getUninitializedObjectMethod; @@ -180,7 +180,7 @@ public static MethodInfo IsStartElementMethod0 { if (s_isStartElementMethod0 == null) { - s_isStartElementMethod0 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, Array.Empty(), null); + s_isStartElementMethod0 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_isStartElementMethod0 != null); } return s_isStartElementMethod0; @@ -192,7 +192,7 @@ public static MethodInfo IsStartElementMethod2 { if (s_isStartElementMethod2 == null) { - s_isStartElementMethod2 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null); + s_isStartElementMethod2 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }); Debug.Assert(s_isStartElementMethod2 != null); } return s_isStartElementMethod2; @@ -371,7 +371,7 @@ public static MethodInfo WriteAttributeStringMethod { if (s_writeAttributeStringMethod == null) { - s_writeAttributeStringMethod = typeof(XmlWriterDelegator).GetMethod("WriteAttributeString", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(string), typeof(string), typeof(string) }, null); + s_writeAttributeStringMethod = typeof(XmlWriterDelegator).GetMethod("WriteAttributeString", Globals.ScanAllMembers, new Type[] { typeof(string), typeof(string), typeof(string), typeof(string) }); Debug.Assert(s_writeAttributeStringMethod != null); } return s_writeAttributeStringMethod; @@ -383,7 +383,7 @@ public static MethodInfo WriteEndElementMethod { if (s_writeEndElementMethod == null) { - s_writeEndElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteEndElement", Globals.ScanAllMembers, null, Array.Empty(), null); + s_writeEndElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteEndElement", Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_writeEndElementMethod != null); } return s_writeEndElementMethod; @@ -431,7 +431,7 @@ public static MethodInfo WriteStartElementMethod { if (s_writeStartElementMethod == null) { - s_writeStartElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null); + s_writeStartElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }); Debug.Assert(s_writeStartElementMethod != null); } return s_writeStartElementMethod; @@ -444,7 +444,7 @@ public static MethodInfo WriteStartElementStringMethod { if (s_writeStartElementStringMethod == null) { - s_writeStartElementStringMethod = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(string) }, null); + s_writeStartElementStringMethod = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, new Type[] { typeof(string), typeof(string) }); Debug.Assert(s_writeStartElementStringMethod != null); } return s_writeStartElementStringMethod; @@ -457,7 +457,7 @@ public static MethodInfo ParseEnumMethod { if (s_parseEnumMethod == null) { - s_parseEnumMethod = typeof(Enum).GetMethod("Parse", BindingFlags.Static | BindingFlags.Public, null, new Type[] { typeof(Type), typeof(string) }, null); + s_parseEnumMethod = typeof(Enum).GetMethod("Parse", BindingFlags.Static | BindingFlags.Public, new Type[] { typeof(Type), typeof(string) }); Debug.Assert(s_parseEnumMethod != null); } return s_parseEnumMethod; @@ -470,7 +470,7 @@ public static MethodInfo GetJsonMemberNameMethod { if (s_getJsonMemberNameMethod == null) { - s_getJsonMemberNameMethod = typeof(XmlObjectSerializerReadContextComplexJson).GetMethod("GetJsonMemberName", Globals.ScanAllMembers, null, new Type[] { typeof(XmlReaderDelegator) }, null); + s_getJsonMemberNameMethod = typeof(XmlObjectSerializerReadContextComplexJson).GetMethod("GetJsonMemberName", Globals.ScanAllMembers, new Type[] { typeof(XmlReaderDelegator) }); Debug.Assert(s_getJsonMemberNameMethod != null); } return s_getJsonMemberNameMethod; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatReaderGenerator.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatReaderGenerator.cs index 477ad9a7bb48..47bd84821c9e 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatReaderGenerator.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatReaderGenerator.cs @@ -430,7 +430,7 @@ private void ResetExpectedElements(BitFlagsGenerator expectedElements, int index private void ReadISerializable(ClassDataContract classContract) { - ConstructorInfo? ctor = classContract.UnderlyingType.GetConstructor(Globals.ScanAllMembers, null, JsonFormatGeneratorStatics.SerInfoCtorArgs, null); + ConstructorInfo? ctor = classContract.UnderlyingType.GetConstructor(Globals.ScanAllMembers, JsonFormatGeneratorStatics.SerInfoCtorArgs); if (ctor == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.Format(SR.SerializationInfo_ConstructorNotFound, DataContract.GetClrTypeFullName(classContract.UnderlyingType)))); _ilg.LoadAddress(_objectLocal); @@ -573,11 +573,11 @@ private void ReadCollection(CollectionDataContract collectionContract) { case CollectionKind.GenericDictionary: type = Globals.TypeOfDictionaryGeneric.MakeGenericType(itemType.GetGenericArguments()); - constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Array.Empty(), null)!; + constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes)!; break; case CollectionKind.Dictionary: type = Globals.TypeOfHashtable; - constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Array.Empty(), null)!; + constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes)!; break; case CollectionKind.Collection: case CollectionKind.GenericCollection: diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatWriterGenerator.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatWriterGenerator.cs index 68eaefbc4575..5248b9420c30 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatWriterGenerator.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonFormatWriterGenerator.cs @@ -346,8 +346,8 @@ private void WriteCollection(CollectionDataContract collectionContract) { enumeratorType = collectionContract.GetEnumeratorMethod.ReturnType; } - MethodInfo? moveNextMethod = enumeratorType.GetMethod(Globals.MoveNextMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); - MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); + MethodInfo? moveNextMethod = enumeratorType.GetMethod(Globals.MoveNextMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); + MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); if (moveNextMethod == null || getCurrentMethod == null) { if (enumeratorType.IsInterface) @@ -388,7 +388,7 @@ private void WriteCollection(CollectionDataContract collectionContract) _ilg.Call(_objectLocal, collectionContract.GetEnumeratorMethod); if (isDictionary) { - ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, null, new Type[] { Globals.TypeOfIDictionaryEnumerator }, null)!; + ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, new Type[] { Globals.TypeOfIDictionaryEnumerator })!; _ilg.ConvertValue(collectionContract.GetEnumeratorMethod.ReturnType, Globals.TypeOfIDictionaryEnumerator); _ilg.New(dictEnumCtor); } @@ -396,7 +396,7 @@ private void WriteCollection(CollectionDataContract collectionContract) { Debug.Assert(keyValueTypes != null); Type ctorParam = Globals.TypeOfIEnumeratorGeneric.MakeGenericType(Globals.TypeOfKeyValuePair.MakeGenericType(keyValueTypes)); - ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, null, new Type[] { ctorParam }, null)!; + ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, new Type[] { ctorParam })!; _ilg.ConvertValue(collectionContract.GetEnumeratorMethod.ReturnType, ctorParam); _ilg.New(dictEnumCtor); } @@ -560,9 +560,7 @@ private bool TryWritePrimitiveArray(Type type, Type itemType, LocalBuilder value MethodInfo writeArrayMethodInfo = typeof(JsonWriterDelegator).GetMethod( writeArrayMethod, Globals.ScanAllMembers, - null, - new Type[] { type, typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, - null)!; + new Type[] { type, typeof(XmlDictionaryString), typeof(XmlDictionaryString) })!; _ilg.Call(_xmlWriterArg, writeArrayMethodInfo, value, itemName, null); return true; } diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/PrimitiveDataContract.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/PrimitiveDataContract.cs index 8bc6d130f359..c094c8d4fed4 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/PrimitiveDataContract.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/PrimitiveDataContract.cs @@ -56,9 +56,9 @@ internal MethodInfo XmlFormatWriterMethod if (_helper.XmlFormatWriterMethod == null) { if (UnderlyingType.IsValueType) - _helper.XmlFormatWriterMethod = typeof(XmlWriterDelegator).GetMethod(WriteMethodName, Globals.ScanAllMembers, null, new Type[] { UnderlyingType, typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null)!; + _helper.XmlFormatWriterMethod = typeof(XmlWriterDelegator).GetMethod(WriteMethodName, Globals.ScanAllMembers, new Type[] { UnderlyingType, typeof(XmlDictionaryString), typeof(XmlDictionaryString) })!; else - _helper.XmlFormatWriterMethod = typeof(XmlObjectSerializerWriteContext).GetMethod(WriteMethodName, Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), UnderlyingType, typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null)!; + _helper.XmlFormatWriterMethod = typeof(XmlObjectSerializerWriteContext).GetMethod(WriteMethodName, Globals.ScanAllMembers, new Type[] { typeof(XmlWriterDelegator), UnderlyingType, typeof(XmlDictionaryString), typeof(XmlDictionaryString) })!; } return _helper.XmlFormatWriterMethod; } @@ -71,9 +71,9 @@ internal MethodInfo XmlFormatContentWriterMethod if (_helper.XmlFormatContentWriterMethod == null) { if (UnderlyingType.IsValueType) - _helper.XmlFormatContentWriterMethod = typeof(XmlWriterDelegator).GetMethod(WriteMethodName, Globals.ScanAllMembers, null, new Type[] { UnderlyingType }, null)!; + _helper.XmlFormatContentWriterMethod = typeof(XmlWriterDelegator).GetMethod(WriteMethodName, Globals.ScanAllMembers, new Type[] { UnderlyingType })!; else - _helper.XmlFormatContentWriterMethod = typeof(XmlObjectSerializerWriteContext).GetMethod(WriteMethodName, Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), UnderlyingType }, null)!; + _helper.XmlFormatContentWriterMethod = typeof(XmlObjectSerializerWriteContext).GetMethod(WriteMethodName, Globals.ScanAllMembers, new Type[] { typeof(XmlWriterDelegator), UnderlyingType })!; } return _helper.XmlFormatContentWriterMethod; } diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionClassWriter.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionClassWriter.cs index 6253555eadd3..4b0f10bd2cfc 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionClassWriter.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionClassWriter.cs @@ -66,7 +66,7 @@ public void ReflectionWriteValue(XmlWriterDelegator xmlWriter, XmlObjectSerializ } else { - MethodInfo getValue = memberType.GetMethod("get_Value", Array.Empty())!; + MethodInfo getValue = memberType.GetMethod("get_Value", Type.EmptyTypes)!; memberValue = getValue.Invoke(memberValue, Array.Empty())!; memberType = memberValue.GetType(); } diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionReader.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionReader.cs index 284d45dc8dae..2b7103688045 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionReader.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ReflectionReader.cs @@ -441,7 +441,7 @@ private object ReflectionCreateCollection(CollectionDataContract collectionContr else if (collectionContract.Kind == CollectionKind.GenericDictionary && collectionContract.UnderlyingType.IsInterface) { Type type = Globals.TypeOfDictionaryGeneric.MakeGenericType(collectionContract.ItemType.GetGenericArguments()); - ConstructorInfo ci = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null)!; + ConstructorInfo ci = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes)!; object newGenericDict = ci.Invoke(Array.Empty()); return newGenericDict; } diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/SchemaExporter.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/SchemaExporter.cs index d372854bf115..3e1b22ad958e 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/SchemaExporter.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/SchemaExporter.cs @@ -603,7 +603,7 @@ private static bool InvokeSchemaProviderMethod(Type clrType, XmlSchemaSet schema } else { - MethodInfo? getMethod = clrType.GetMethod(methodName, /*BindingFlags.DeclaredOnly |*/ BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, null, new Type[] { typeof(XmlSchemaSet) }, null); + MethodInfo? getMethod = clrType.GetMethod(methodName, /*BindingFlags.DeclaredOnly |*/ BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, new Type[] { typeof(XmlSchemaSet) }); if (getMethod == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.Format(SR.MissingGetSchemaMethod, DataContract.GetClrTypeFullName(clrType), methodName))); diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlDataContract.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlDataContract.cs index e7c1950ada53..c8974ea1975f 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlDataContract.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlDataContract.cs @@ -241,7 +241,7 @@ internal bool IsTopLevelElementNullable if (type.IsValueType) return null; - ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Array.Empty(), null); + ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, Type.EmptyTypes); if (ctor == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.Format(SR.IXmlSerializableMustHaveDefaultConstructor, DataContract.GetClrTypeFullName(type)))); @@ -288,15 +288,11 @@ internal CreateXmlSerializableDelegate GenerateCreateXmlSerializableDelegate() MethodInfo? XName_op_Implicit = xName.GetMethod( "op_Implicit", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, - null, - new Type[] { typeof(string) }, - null + new Type[] { typeof(string) } ); ConstructorInfo? XElement_ctor = type.GetConstructor( BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, - null, - new Type[] { xName }, - null + new Type[] { xName } ); if (XName_op_Implicit != null && XElement_ctor != null) { diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatGeneratorStatics.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatGeneratorStatics.cs index 3cbcba6288fe..654ab81627bc 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatGeneratorStatics.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatGeneratorStatics.cs @@ -17,7 +17,7 @@ internal static MethodInfo WriteStartElementMethod2 { if (s_writeStartElementMethod2 == null) { - s_writeStartElementMethod2 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null); + s_writeStartElementMethod2 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }); Debug.Assert(s_writeStartElementMethod2 != null); } return s_writeStartElementMethod2; @@ -31,7 +31,7 @@ internal static MethodInfo WriteStartElementMethod3 { if (s_writeStartElementMethod3 == null) { - s_writeStartElementMethod3 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null); + s_writeStartElementMethod3 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, new Type[] { typeof(string), typeof(XmlDictionaryString), typeof(XmlDictionaryString) }); Debug.Assert(s_writeStartElementMethod3 != null); } return s_writeStartElementMethod3; @@ -45,7 +45,7 @@ internal static MethodInfo WriteEndElementMethod { if (s_writeEndElementMethod == null) { - s_writeEndElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteEndElement", Globals.ScanAllMembers, null, Array.Empty(), null); + s_writeEndElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteEndElement", Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_writeEndElementMethod != null); } return s_writeEndElementMethod; @@ -59,7 +59,7 @@ internal static MethodInfo WriteNamespaceDeclMethod { if (s_writeNamespaceDeclMethod == null) { - s_writeNamespaceDeclMethod = typeof(XmlWriterDelegator).GetMethod("WriteNamespaceDecl", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString) }, null); + s_writeNamespaceDeclMethod = typeof(XmlWriterDelegator).GetMethod("WriteNamespaceDecl", Globals.ScanAllMembers, new Type[] { typeof(XmlDictionaryString) }); Debug.Assert(s_writeNamespaceDeclMethod != null); } return s_writeNamespaceDeclMethod; @@ -77,7 +77,7 @@ internal static ConstructorInfo DictionaryEnumeratorCtor { if (s_dictionaryEnumeratorCtor == null) { - s_dictionaryEnumeratorCtor = typeof(CollectionDataContract.DictionaryEnumerator).GetConstructor(Globals.ScanAllMembers, null, new Type[] { Globals.TypeOfIDictionaryEnumerator }, null); + s_dictionaryEnumeratorCtor = typeof(CollectionDataContract.DictionaryEnumerator).GetConstructor(Globals.ScanAllMembers, new Type[] { Globals.TypeOfIDictionaryEnumerator }); Debug.Assert(s_dictionaryEnumeratorCtor != null); } return s_dictionaryEnumeratorCtor; @@ -133,7 +133,7 @@ internal static MethodInfo IsStartElementMethod2 { if (s_isStartElementMethod2 == null) { - s_isStartElementMethod2 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null); + s_isStartElementMethod2 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }); Debug.Assert(s_isStartElementMethod2 != null); } return s_isStartElementMethod2; @@ -147,7 +147,7 @@ internal static MethodInfo IsStartElementMethod0 { if (s_isStartElementMethod0 == null) { - s_isStartElementMethod0 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, Array.Empty(), null); + s_isStartElementMethod0 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_isStartElementMethod0 != null); } return s_isStartElementMethod0; @@ -161,7 +161,7 @@ internal static MethodInfo GetUninitializedObjectMethod { if (s_getUninitializedObjectMethod == null) { - s_getUninitializedObjectMethod = typeof(XmlFormatReaderGenerator).GetMethod("UnsafeGetUninitializedObject", Globals.ScanAllMembers, null, new Type[] { typeof(int) }, null); + s_getUninitializedObjectMethod = typeof(XmlFormatReaderGenerator).GetMethod("UnsafeGetUninitializedObject", Globals.ScanAllMembers, new Type[] { typeof(int) }); Debug.Assert(s_getUninitializedObjectMethod != null); } return s_getUninitializedObjectMethod; @@ -199,7 +199,7 @@ internal static PropertyInfo NodeTypeProperty private static ConstructorInfo? s_extensionDataObjectCtor; internal static ConstructorInfo ExtensionDataObjectCtor => s_extensionDataObjectCtor ?? (s_extensionDataObjectCtor = - typeof(ExtensionDataObject).GetConstructor(Globals.ScanAllMembers, null, Array.Empty(), null)!); + typeof(ExtensionDataObject).GetConstructor(Globals.ScanAllMembers, Type.EmptyTypes)!); private static ConstructorInfo? s_hashtableCtor; internal static ConstructorInfo HashtableCtor @@ -208,7 +208,7 @@ internal static ConstructorInfo HashtableCtor { if (s_hashtableCtor == null) { - s_hashtableCtor = Globals.TypeOfHashtable.GetConstructor(Globals.ScanAllMembers, null, Array.Empty(), null); + s_hashtableCtor = Globals.TypeOfHashtable.GetConstructor(Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_hashtableCtor != null); } return s_hashtableCtor; @@ -250,7 +250,7 @@ internal static MethodInfo StoreCollectionMemberInfoMethod { if (s_storeCollectionMemberInfoMethod == null) { - s_storeCollectionMemberInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("StoreCollectionMemberInfo", Globals.ScanAllMembers, null, new Type[] { typeof(object) }, null); + s_storeCollectionMemberInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("StoreCollectionMemberInfo", Globals.ScanAllMembers, new Type[] { typeof(object) }); Debug.Assert(s_storeCollectionMemberInfoMethod != null); } return s_storeCollectionMemberInfoMethod; @@ -264,7 +264,7 @@ internal static MethodInfo ResetCollectionMemberInfoMethod { if (s_resetCollectionMemberInfoMethod == null) { - s_resetCollectionMemberInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ResetCollectionMemberInfo", Globals.ScanAllMembers, null, Array.Empty(), null); + s_resetCollectionMemberInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ResetCollectionMemberInfo", Globals.ScanAllMembers, Type.EmptyTypes); Debug.Assert(s_resetCollectionMemberInfoMethod != null); } return s_resetCollectionMemberInfoMethod; @@ -348,7 +348,7 @@ internal static MethodInfo InternalDeserializeMethod { if (s_internalDeserializeMethod == null) { - s_internalDeserializeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("InternalDeserialize", Globals.ScanAllMembers, null, new Type[] { typeof(XmlReaderDelegator), typeof(int), typeof(RuntimeTypeHandle), typeof(string), typeof(string) }, null); + s_internalDeserializeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("InternalDeserialize", Globals.ScanAllMembers, new Type[] { typeof(XmlReaderDelegator), typeof(int), typeof(RuntimeTypeHandle), typeof(string), typeof(string) }); Debug.Assert(s_internalDeserializeMethod != null); } return s_internalDeserializeMethod; @@ -432,7 +432,7 @@ internal static MethodInfo ReadIfNullOrRefMethod { if (s_readIfNullOrRefMethod == null) { - s_readIfNullOrRefMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReadIfNullOrRef", Globals.ScanAllMembers, null, new Type[] { typeof(XmlReaderDelegator), typeof(Type), typeof(bool) }, null); + s_readIfNullOrRefMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReadIfNullOrRef", Globals.ScanAllMembers, new Type[] { typeof(XmlReaderDelegator), typeof(Type), typeof(bool) }); Debug.Assert(s_readIfNullOrRefMethod != null); } return s_readIfNullOrRefMethod; @@ -614,7 +614,7 @@ internal static MethodInfo CreateSerializationExceptionMethod { if (s_createSerializationExceptionMethod == null) { - s_createSerializationExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CreateSerializationException", Globals.ScanAllMembers, null, new Type[] { typeof(string) }, null); + s_createSerializationExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CreateSerializationException", Globals.ScanAllMembers, new Type[] { typeof(string) }); Debug.Assert(s_createSerializationExceptionMethod != null); } return s_createSerializationExceptionMethod; @@ -642,7 +642,7 @@ internal static MethodInfo CreateUnexpectedStateExceptionMethod { if (s_createUnexpectedStateExceptionMethod == null) { - s_createUnexpectedStateExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CreateUnexpectedStateException", Globals.ScanAllMembers, null, new Type[] { typeof(XmlNodeType), typeof(XmlReaderDelegator) }, null); + s_createUnexpectedStateExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CreateUnexpectedStateException", Globals.ScanAllMembers, new Type[] { typeof(XmlNodeType), typeof(XmlReaderDelegator) }); Debug.Assert(s_createUnexpectedStateExceptionMethod != null); } return s_createUnexpectedStateExceptionMethod; @@ -684,7 +684,7 @@ internal static MethodInfo WriteNullMethod { if (s_writeNullMethod == null) { - s_writeNullMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("WriteNull", Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), typeof(Type), typeof(bool) }, null); + s_writeNullMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("WriteNull", Globals.ScanAllMembers, new Type[] { typeof(XmlWriterDelegator), typeof(Type), typeof(bool) }); Debug.Assert(s_writeNullMethod != null); } return s_writeNullMethod; @@ -712,7 +712,7 @@ internal static MethodInfo IncrementCollectionCountMethod { if (s_incrementCollectionCountMethod == null) { - s_incrementCollectionCountMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("IncrementCollectionCount", Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), typeof(ICollection) }, null); + s_incrementCollectionCountMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("IncrementCollectionCount", Globals.ScanAllMembers, new Type[] { typeof(XmlWriterDelegator), typeof(ICollection) }); Debug.Assert(s_incrementCollectionCountMethod != null); } return s_incrementCollectionCountMethod; @@ -816,7 +816,7 @@ internal static MethodInfo IsMemberTypeSameAsMemberValue { if (s_isMemberTypeSameAsMemberValue == null) { - s_isMemberTypeSameAsMemberValue = typeof(XmlObjectSerializerWriteContext).GetMethod("IsMemberTypeSameAsMemberValue", Globals.ScanAllMembers, null, new Type[] { typeof(object), typeof(Type) }, null); + s_isMemberTypeSameAsMemberValue = typeof(XmlObjectSerializerWriteContext).GetMethod("IsMemberTypeSameAsMemberValue", Globals.ScanAllMembers, new Type[] { typeof(object), typeof(Type) }); Debug.Assert(s_isMemberTypeSameAsMemberValue != null); } return s_isMemberTypeSameAsMemberValue; @@ -1006,7 +1006,7 @@ internal static MethodInfo ThrowInvalidDataContractExceptionMethod { if (s_throwInvalidDataContractExceptionMethod == null) { - s_throwInvalidDataContractExceptionMethod = typeof(DataContract).GetMethod("ThrowInvalidDataContractException", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(Type) }, null); + s_throwInvalidDataContractExceptionMethod = typeof(DataContract).GetMethod("ThrowInvalidDataContractException", Globals.ScanAllMembers, new Type[] { typeof(string), typeof(Type) }); Debug.Assert(s_throwInvalidDataContractExceptionMethod != null); } return s_throwInvalidDataContractExceptionMethod; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatReaderGenerator.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatReaderGenerator.cs index 4e5ea78c3e34..9c5d3cf71059 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatReaderGenerator.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatReaderGenerator.cs @@ -596,7 +596,7 @@ private void ReadCollection(CollectionDataContract collectionContract) { case CollectionKind.GenericDictionary: type = Globals.TypeOfDictionaryGeneric.MakeGenericType(itemType.GetGenericArguments()); - constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null)!; + constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes)!; break; case CollectionKind.Dictionary: type = Globals.TypeOfHashtable; diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatWriterGenerator.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatWriterGenerator.cs index aa69ceb8e72e..0dc6946c5029 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatWriterGenerator.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/XmlFormatWriterGenerator.cs @@ -409,8 +409,8 @@ private void WriteCollection(CollectionDataContract collectionContract) { enumeratorType = collectionContract.GetEnumeratorMethod.ReturnType; } - MethodInfo? moveNextMethod = enumeratorType.GetMethod(Globals.MoveNextMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); - MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, null, Array.Empty(), null); + MethodInfo? moveNextMethod = enumeratorType.GetMethod(Globals.MoveNextMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); + MethodInfo? getCurrentMethod = enumeratorType.GetMethod(Globals.GetCurrentMethodName, BindingFlags.Instance | BindingFlags.Public, Type.EmptyTypes); if (moveNextMethod == null || getCurrentMethod == null) { if (enumeratorType.IsInterface) @@ -457,7 +457,7 @@ private void WriteCollection(CollectionDataContract collectionContract) else if (isGenericDictionary) { Type ctorParam = Globals.TypeOfIEnumeratorGeneric.MakeGenericType(Globals.TypeOfKeyValuePair.MakeGenericType(keyValueTypes!)); - ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, null, new Type[] { ctorParam }, null)!; + ConstructorInfo dictEnumCtor = enumeratorType.GetConstructor(Globals.ScanAllMembers, new Type[] { ctorParam })!; _ilg.ConvertValue(collectionContract.GetEnumeratorMethod.ReturnType, ctorParam); _ilg.New(dictEnumCtor); } @@ -576,7 +576,7 @@ private bool TryWritePrimitiveArray(Type type, Type itemType, LocalBuilder value _ilg.Load(value); _ilg.Load(itemName); _ilg.Load(itemNamespace); - _ilg.Call(typeof(XmlWriterDelegator).GetMethod(writeArrayMethod, Globals.ScanAllMembers, null, new Type[] { type, typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null)!); + _ilg.Call(typeof(XmlWriterDelegator).GetMethod(writeArrayMethod, Globals.ScanAllMembers, new Type[] { type, typeof(XmlDictionaryString), typeof(XmlDictionaryString) })!); return true; } return false; diff --git a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/System.Private.Runtime.InteropServices.JavaScript.sln b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/System.Private.Runtime.InteropServices.JavaScript.sln index eacf0032df3a..74b39fdd3763 100644 --- a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/System.Private.Runtime.InteropServices.JavaScript.sln +++ b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/System.Private.Runtime.InteropServices.JavaScript.sln @@ -1,61 +1,79 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ABCD5AB6-389B-466D-96E6-B41A671B7454}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1DEC417F-7040-470C-9C62-338CD4BB5FE2}" EndProject -Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "System.Private.Runtime.InteropServices.JavaScript.Tests", "tests\System.Private.Runtime.InteropServices.JavaScript.Tests.csproj", "{4F753464-0719-4559-9E0F-86175CECA903}" - ProjectSection(ProjectDependencies) = postProject - {644FCC7F-1478-4D30-BF66-40E0ADF8723C} = {644FCC7F-1478-4D30-BF66-40E0ADF8723C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Runtime.InteropServices.JavaScript", "src\System.Private.Runtime.InteropServices.JavaScript.csproj", "{1EF4B421-0137-4C27-A6D2-DFC2B09E52F0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Runtime.InteropServices.JavaScript", "src\System.Private.Runtime.InteropServices.JavaScript.csproj", "{644FCC7F-1478-4D30-BF66-40E0ADF8723C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Runtime.InteropServices.JavaScript.Tests", "tests\System.Private.Runtime.InteropServices.JavaScript.Tests.csproj", "{4A88DCA2-2A9F-4497-AE84-C15B81F21782}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{9B76030A-9DBD-401E-90B7-18111831B0D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F1642F23-C510-423E-8598-4B3A09DA28DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{78A01545-D36A-4A73-A262-5F95855D05AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{C29B30DE-C663-42CB-8AC5-81864613513A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{218A58FB-25F6-48C9-80D0-C170A3FB82FF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2481E1BC-8500-43A6-97D4-B4F1BDC5036B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B32D533A-E1EC-4A72-AB39-7F11E27091B4}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {ABCD5AB6-389B-466D-96E6-B41A671B7454} = {218A58FB-25F6-48C9-80D0-C170A3FB82FF} + {4A88DCA2-2A9F-4497-AE84-C15B81F21782} = {218A58FB-25F6-48C9-80D0-C170A3FB82FF} + {1DEC417F-7040-470C-9C62-338CD4BB5FE2} = {2481E1BC-8500-43A6-97D4-B4F1BDC5036B} + {9B76030A-9DBD-401E-90B7-18111831B0D9} = {2481E1BC-8500-43A6-97D4-B4F1BDC5036B} + {78A01545-D36A-4A73-A262-5F95855D05AE} = {2481E1BC-8500-43A6-97D4-B4F1BDC5036B} + {C29B30DE-C663-42CB-8AC5-81864613513A} = {2481E1BC-8500-43A6-97D4-B4F1BDC5036B} + {1EF4B421-0137-4C27-A6D2-DFC2B09E52F0} = {B32D533A-E1EC-4A72-AB39-7F11E27091B4} + {F1642F23-C510-423E-8598-4B3A09DA28DB} = {B32D533A-E1EC-4A72-AB39-7F11E27091B4} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.Build.0 = Release|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.Build.0 = Release|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Release|Any CPU.Build.0 = Release|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Release|Any CPU.Build.0 = Release|Any CPU - {4F753464-0719-4559-9E0F-86175CECA903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F753464-0719-4559-9E0F-86175CECA903}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F753464-0719-4559-9E0F-86175CECA903}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F753464-0719-4559-9E0F-86175CECA903}.Release|Any CPU.Build.0 = Release|Any CPU - {644FCC7F-1478-4D30-BF66-40E0ADF8723C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {644FCC7F-1478-4D30-BF66-40E0ADF8723C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {644FCC7F-1478-4D30-BF66-40E0ADF8723C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {644FCC7F-1478-4D30-BF66-40E0ADF8723C}.Release|Any CPU.Build.0 = Release|Any CPU + {ABCD5AB6-389B-466D-96E6-B41A671B7454}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABCD5AB6-389B-466D-96E6-B41A671B7454}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABCD5AB6-389B-466D-96E6-B41A671B7454}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABCD5AB6-389B-466D-96E6-B41A671B7454}.Release|Any CPU.Build.0 = Release|Any CPU + {1DEC417F-7040-470C-9C62-338CD4BB5FE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1DEC417F-7040-470C-9C62-338CD4BB5FE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1DEC417F-7040-470C-9C62-338CD4BB5FE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1DEC417F-7040-470C-9C62-338CD4BB5FE2}.Release|Any CPU.Build.0 = Release|Any CPU + {1EF4B421-0137-4C27-A6D2-DFC2B09E52F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EF4B421-0137-4C27-A6D2-DFC2B09E52F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EF4B421-0137-4C27-A6D2-DFC2B09E52F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EF4B421-0137-4C27-A6D2-DFC2B09E52F0}.Release|Any CPU.Build.0 = Release|Any CPU + {4A88DCA2-2A9F-4497-AE84-C15B81F21782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A88DCA2-2A9F-4497-AE84-C15B81F21782}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A88DCA2-2A9F-4497-AE84-C15B81F21782}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A88DCA2-2A9F-4497-AE84-C15B81F21782}.Release|Any CPU.Build.0 = Release|Any CPU + {9B76030A-9DBD-401E-90B7-18111831B0D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B76030A-9DBD-401E-90B7-18111831B0D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B76030A-9DBD-401E-90B7-18111831B0D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B76030A-9DBD-401E-90B7-18111831B0D9}.Release|Any CPU.Build.0 = Release|Any CPU + {F1642F23-C510-423E-8598-4B3A09DA28DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1642F23-C510-423E-8598-4B3A09DA28DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1642F23-C510-423E-8598-4B3A09DA28DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1642F23-C510-423E-8598-4B3A09DA28DB}.Release|Any CPU.Build.0 = Release|Any CPU + {78A01545-D36A-4A73-A262-5F95855D05AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78A01545-D36A-4A73-A262-5F95855D05AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78A01545-D36A-4A73-A262-5F95855D05AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78A01545-D36A-4A73-A262-5F95855D05AE}.Release|Any CPU.Build.0 = Release|Any CPU + {C29B30DE-C663-42CB-8AC5-81864613513A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C29B30DE-C663-42CB-8AC5-81864613513A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C29B30DE-C663-42CB-8AC5-81864613513A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C29B30DE-C663-42CB-8AC5-81864613513A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {96AF3242-A368-4F13-B006-A722CC3B8517} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {375E5A4A-9026-411E-9CD8-606874CFF7F0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4F753464-0719-4559-9E0F-86175CECA903} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {644FCC7F-1478-4D30-BF66-40E0ADF8723C} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2151451C-8B2A-44DB-881E-B922A4795A30} + SolutionGuid = {339DAF44-AC08-4D3B-BB34-6DA417E800E7} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.Uri/System.Private.Uri.sln b/src/libraries/System.Private.Uri/System.Private.Uri.sln index 3af73ec647fb..65923b8c6688 100644 --- a/src/libraries/System.Private.Uri/System.Private.Uri.sln +++ b/src/libraries/System.Private.Uri/System.Private.Uri.sln @@ -1,75 +1,231 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.ExtendedFunctional.Tests", "tests\ExtendedFunctionalTests\System.Private.Uri.ExtendedFunctional.Tests.csproj", "{7A93B8A0-E663-4CB1-B6A5-850E5EC56146}" - ProjectSection(ProjectDependencies) = postProject - {4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{C150B694-015F-48BD-8CB0-EFF1F7A84DCE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.Functional.Tests", "tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj", "{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}" - ProjectSection(ProjectDependencies) = postProject - {4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ADD88187-83E2-4EAF-BFB4-BC6249E76457}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.Unit.Tests", "tests\UnitTests\System.Private.Uri.Unit.Tests.csproj", "{96AF3242-A368-4F13-B006-A722CC3B8517}" - ProjectSection(ProjectDependencies) = postProject - {4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{66FDD25A-E319-4F85-9DD5-C228CDAA90A0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "src\System.Private.Uri.csproj", "{4AC5343E-6E31-4BA5-A795-0493AE7E9008}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "src\System.Private.Uri.csproj", "{98AC821B-892E-4F58-AF3D-503747FD6A8F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.ExtendedFunctional.Tests", "tests\ExtendedFunctionalTests\System.Private.Uri.ExtendedFunctional.Tests.csproj", "{37859855-7E5C-4772-B5D2-7029211EAB92}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.Functional.Tests", "tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj", "{BDD0866A-D856-40EE-A9D5-1DAC11095E42}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri.Unit.Tests", "tests\UnitTests\System.Private.Uri.Unit.Tests.csproj", "{650441DF-021A-45C3-9560-F9FDB3037A64}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{375E5A4A-9026-411E-9CD8-606874CFF7F0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F6024229-9D81-4C97-9655-398A1414A6DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{01EDF06D-BBBB-42D7-9414-A332292235D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{DF930761-5E7C-4853-BC50-1718D8CA332B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{49F66400-EFDB-4F6C-A517-E3C91B199567}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A0DB3B3D-8027-4639-8F47-83FDE0DB7BFA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{59C5B1B2-F1AD-4DE5-A69A-E24C7C4C2374}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{EB49EC6F-A043-47D2-B5EA-64E70D2F1085}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE} = {A0DB3B3D-8027-4639-8F47-83FDE0DB7BFA} + {98AC821B-892E-4F58-AF3D-503747FD6A8F} = {A0DB3B3D-8027-4639-8F47-83FDE0DB7BFA} + {01EDF06D-BBBB-42D7-9414-A332292235D3} = {A0DB3B3D-8027-4639-8F47-83FDE0DB7BFA} + {ADD88187-83E2-4EAF-BFB4-BC6249E76457} = {59C5B1B2-F1AD-4DE5-A69A-E24C7C4C2374} + {37859855-7E5C-4772-B5D2-7029211EAB92} = {59C5B1B2-F1AD-4DE5-A69A-E24C7C4C2374} + {BDD0866A-D856-40EE-A9D5-1DAC11095E42} = {59C5B1B2-F1AD-4DE5-A69A-E24C7C4C2374} + {650441DF-021A-45C3-9560-F9FDB3037A64} = {59C5B1B2-F1AD-4DE5-A69A-E24C7C4C2374} + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0} = {EB49EC6F-A043-47D2-B5EA-64E70D2F1085} + {F6024229-9D81-4C97-9655-398A1414A6DC} = {EB49EC6F-A043-47D2-B5EA-64E70D2F1085} + {DF930761-5E7C-4853-BC50-1718D8CA332B} = {EB49EC6F-A043-47D2-B5EA-64E70D2F1085} + {49F66400-EFDB-4F6C-A517-E3C91B199567} = {EB49EC6F-A043-47D2-B5EA-64E70D2F1085} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7A93B8A0-E663-4CB1-B6A5-850E5EC56146}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A93B8A0-E663-4CB1-B6A5-850E5EC56146}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A93B8A0-E663-4CB1-B6A5-850E5EC56146}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A93B8A0-E663-4CB1-B6A5-850E5EC56146}.Release|Any CPU.Build.0 = Release|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.Build.0 = Release|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.Build.0 = Release|Any CPU - {4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Release|Any CPU.Build.0 = Release|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5}.Release|Any CPU.Build.0 = Release|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {375E5A4A-9026-411E-9CD8-606874CFF7F0}.Release|Any CPU.Build.0 = Release|Any CPU + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|Any CPU.ActiveCfg = Debug|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|Any CPU.Build.0 = Debug|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|x64.ActiveCfg = Debug|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|x64.Build.0 = Debug|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|x86.ActiveCfg = Debug|x86 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Debug|x86.Build.0 = Debug|x86 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|Any CPU.ActiveCfg = Release|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|Any CPU.Build.0 = Release|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|x64.ActiveCfg = Release|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|x64.Build.0 = Release|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|x86.ActiveCfg = Release|x86 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Release|x86.Build.0 = Release|x86 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|Any CPU.ActiveCfg = Checked|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|Any CPU.Build.0 = Checked|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|x64.ActiveCfg = Checked|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|x64.Build.0 = Checked|x64 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|x86.ActiveCfg = Checked|x86 + {C150B694-015F-48BD-8CB0-EFF1F7A84DCE}.Checked|x86.Build.0 = Checked|x86 + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|x64.Build.0 = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Debug|x86.Build.0 = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|Any CPU.Build.0 = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|x64.ActiveCfg = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|x64.Build.0 = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|x86.ActiveCfg = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Release|x86.Build.0 = Release|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Checked|x64.ActiveCfg = Debug|Any CPU + {ADD88187-83E2-4EAF-BFB4-BC6249E76457}.Checked|x86.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|x64.Build.0 = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Debug|x86.Build.0 = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|Any CPU.Build.0 = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|x64.ActiveCfg = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|x64.Build.0 = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|x86.ActiveCfg = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Release|x86.Build.0 = Release|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Checked|x64.ActiveCfg = Debug|Any CPU + {66FDD25A-E319-4F85-9DD5-C228CDAA90A0}.Checked|x86.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|x64.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|x64.Build.0 = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|x86.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Debug|x86.Build.0 = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|Any CPU.Build.0 = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|x64.ActiveCfg = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|x64.Build.0 = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|x86.ActiveCfg = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Release|x86.Build.0 = Release|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Checked|x64.ActiveCfg = Debug|Any CPU + {98AC821B-892E-4F58-AF3D-503747FD6A8F}.Checked|x86.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|x64.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|x64.Build.0 = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|x86.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Debug|x86.Build.0 = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|Any CPU.Build.0 = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|x64.ActiveCfg = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|x64.Build.0 = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|x86.ActiveCfg = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Release|x86.Build.0 = Release|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Checked|x64.ActiveCfg = Debug|Any CPU + {37859855-7E5C-4772-B5D2-7029211EAB92}.Checked|x86.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|x64.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|x64.Build.0 = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|x86.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Debug|x86.Build.0 = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|Any CPU.Build.0 = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|x64.ActiveCfg = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|x64.Build.0 = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|x86.ActiveCfg = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Release|x86.Build.0 = Release|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Checked|x64.ActiveCfg = Debug|Any CPU + {BDD0866A-D856-40EE-A9D5-1DAC11095E42}.Checked|x86.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|x64.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|x64.Build.0 = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|x86.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Debug|x86.Build.0 = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|Any CPU.Build.0 = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|x64.ActiveCfg = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|x64.Build.0 = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|x86.ActiveCfg = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Release|x86.Build.0 = Release|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Checked|x64.ActiveCfg = Debug|Any CPU + {650441DF-021A-45C3-9560-F9FDB3037A64}.Checked|x86.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|x64.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|x64.Build.0 = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|x86.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Debug|x86.Build.0 = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|Any CPU.Build.0 = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|x64.ActiveCfg = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|x64.Build.0 = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|x86.ActiveCfg = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Release|x86.Build.0 = Release|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Checked|x64.ActiveCfg = Debug|Any CPU + {F6024229-9D81-4C97-9655-398A1414A6DC}.Checked|x86.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|x64.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|x64.Build.0 = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|x86.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Debug|x86.Build.0 = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|Any CPU.Build.0 = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|x64.ActiveCfg = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|x64.Build.0 = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|x86.ActiveCfg = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Release|x86.Build.0 = Release|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Checked|x64.ActiveCfg = Debug|Any CPU + {01EDF06D-BBBB-42D7-9414-A332292235D3}.Checked|x86.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|x64.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|x64.Build.0 = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|x86.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Debug|x86.Build.0 = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|Any CPU.Build.0 = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|x64.ActiveCfg = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|x64.Build.0 = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|x86.ActiveCfg = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Release|x86.Build.0 = Release|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Checked|x64.ActiveCfg = Debug|Any CPU + {DF930761-5E7C-4853-BC50-1718D8CA332B}.Checked|x86.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|x64.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|x64.Build.0 = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|x86.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Debug|x86.Build.0 = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|Any CPU.Build.0 = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|x64.ActiveCfg = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|x64.Build.0 = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|x86.ActiveCfg = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Release|x86.Build.0 = Release|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Checked|x64.ActiveCfg = Debug|Any CPU + {49F66400-EFDB-4F6C-A517-E3C91B199567}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7A93B8A0-E663-4CB1-B6A5-850E5EC56146} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {96AF3242-A368-4F13-B006-A722CC3B8517} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {CEFAB3B8-3B7F-4B6C-9A5F-2DCDD1A551B5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {375E5A4A-9026-411E-9CD8-606874CFF7F0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2151451C-8B2A-44DB-881E-B922A4795A30} + SolutionGuid = {EB54DAE5-7032-48C6-8714-21ED3B5B2D1E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.Xml.Linq/System.Private.Xml.Linq.sln b/src/libraries/System.Private.Xml.Linq/System.Private.Xml.Linq.sln index 80677c767304..3b0d8338433b 100644 --- a/src/libraries/System.Private.Xml.Linq/System.Private.Xml.Linq.sln +++ b/src/libraries/System.Private.Xml.Linq/System.Private.Xml.Linq.sln @@ -1,175 +1,191 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Axes.Tests", "tests\axes\System.Xml.Linq.Axes.Tests.csproj", "{6D9B0285-5E8A-4C20-9C53-9E2084EF64C4}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Events.Tests", "tests\events\System.Xml.Linq.Events.Tests.csproj", "{C560E194-5B14-4112-ABC6-3208491E53E6}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Misc.Tests", "tests\misc\System.Xml.Linq.Misc.Tests.csproj", "{35FA1FA9-A504-4B9E-93F0-E5D03C21BECA}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Properties.Tests", "tests\Properties\System.Xml.Linq.Properties.Tests.csproj", "{D24E2563-7A46-4368-94D4-B3A39E9EF1B5}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Schema.Extensions.Tests", "tests\Schema\System.Xml.Schema.Extensions.Tests.csproj", "{AFB408EA-2EF7-42B3-B98F-BA60F6481313}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.SDMSample.Tests", "tests\SDMSample\System.Xml.Linq.SDMSample.Tests.csproj", "{F6C73170-9333-4B52-B3FA-A536C5EA6A48}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Streaming.Tests", "tests\Streaming\System.Xml.Linq.Streaming.Tests.csproj", "{CB11B315-2567-4574-977D-89E3135243C4}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.TreeManipulation.Tests", "tests\TreeManipulation\System.Xml.Linq.TreeManipulation.Tests.csproj", "{10EFE488-FAB4-43DA-847D-FF057BFF52AC}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XDocument.Common", "tests\XDocument.Common\XDocument.Common.csproj", "{52666206-B6C9-49FA-A1D7-D0A0C68807B0}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XDocument.Test.ModuleCore", "tests\XDocument.Test.ModuleCore\XDocument.Test.ModuleCore.csproj", "{979510CE-9042-4F8D-9C74-EE03B89194CC}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.xNodeBuilder.Tests", "tests\xNodeBuilder\System.Xml.Linq.xNodeBuilder.Tests.csproj", "{5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.xNodeReader.Tests", "tests\xNodeReader\System.Xml.Linq.xNodeReader.Tests.csproj", "{6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument.Tests", "tests\XPath\XDocument\System.Xml.XPath.XDocument.Tests.csproj", "{10D52320-17B7-476E-BBD2-A1064DD38CBF}" - ProjectSection(ProjectDependencies) = postProject - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {BAC347A3-9841-44FC-B1E3-2344D1152C23} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "src\System.Private.Xml.Linq.csproj", "{BAC347A3-9841-44FC-B1E3-2344D1152C23}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{A62B2854-84B0-494C-A433-865E24232408}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleCore", "..\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj", "{FF12ED5F-0571-4DDB-B1E9-E36B23065870}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlCoreTest", "..\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj", "{20740FAE-E603-4B42-B1E1-E16F8212E9AA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDiff", "..\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj", "{096B8A3A-24EE-4A75-B5E1-9F584D9D74F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9FB88324-6915-4049-A298-554BE6EF9AAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D22408AB-0F46-49DE-B979-EAC88A29EB81}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "src\System.Private.Xml.Linq.csproj", "{61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Axes.Tests", "tests\axes\System.Xml.Linq.Axes.Tests.csproj", "{9865C9E7-0587-4023-8585-B96AE88C5FEC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Events.Tests", "tests\events\System.Xml.Linq.Events.Tests.csproj", "{21437332-971D-416D-9D2C-55DFA5CB88A2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Misc.Tests", "tests\misc\System.Xml.Linq.Misc.Tests.csproj", "{859DED50-8874-4472-93B3-49A7C3E315FA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Properties.Tests", "tests\Properties\System.Xml.Linq.Properties.Tests.csproj", "{386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Schema.Extensions.Tests", "tests\Schema\System.Xml.Schema.Extensions.Tests.csproj", "{9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.SDMSample.Tests", "tests\SDMSample\System.Xml.Linq.SDMSample.Tests.csproj", "{4AC95E62-1DBE-4017-A8EE-6FF27C56186A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.Streaming.Tests", "tests\Streaming\System.Xml.Linq.Streaming.Tests.csproj", "{E174C25D-F802-417F-ADB4-11E3712D6378}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.TreeManipulation.Tests", "tests\TreeManipulation\System.Xml.Linq.TreeManipulation.Tests.csproj", "{160D6CB5-B85B-4414-9252-EF58DEC303F2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XDocument.Common", "tests\XDocument.Common\XDocument.Common.csproj", "{C3FCD580-CB45-450C-8BFB-2E985C952338}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XDocument.Test.ModuleCore", "tests\XDocument.Test.ModuleCore\XDocument.Test.ModuleCore.csproj", "{0B05F02C-9E65-422F-8192-D06CAF7D6DD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.xNodeBuilder.Tests", "tests\xNodeBuilder\System.Xml.Linq.xNodeBuilder.Tests.csproj", "{146FEC0E-2AF0-47B4-8F95-8E64F91D1147}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Linq.xNodeReader.Tests", "tests\xNodeReader\System.Xml.Linq.xNodeReader.Tests.csproj", "{8720F0F6-D1E2-4699-8B83-638A85ACFB2E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument.Tests", "tests\XPath\XDocument\System.Xml.XPath.XDocument.Tests.csproj", "{557CBDC5-16E6-44FD-B34B-6386AFDC300D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{A4F479E3-A0AD-4646-BD4B-F3CD2C29046B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{28B0CB77-2187-4CCD-8190-283FCA9800B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F442C967-0D66-4EFF-8875-1D165AA80621}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{C4EF205E-7187-4245-968D-0BEAF5FD1705}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{DA4D68E6-A21C-425A-8728-6EF3A57348BA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E1C6C12F-E1F4-4420-B554-62F204C4C028}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7079B273-3194-4711-B4BB-2045A5CFBED5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {FF12ED5F-0571-4DDB-B1E9-E36B23065870} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {20740FAE-E603-4B42-B1E1-E16F8212E9AA} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {096B8A3A-24EE-4A75-B5E1-9F584D9D74F1} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {9FB88324-6915-4049-A298-554BE6EF9AAA} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {9865C9E7-0587-4023-8585-B96AE88C5FEC} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {21437332-971D-416D-9D2C-55DFA5CB88A2} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {859DED50-8874-4472-93B3-49A7C3E315FA} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {4AC95E62-1DBE-4017-A8EE-6FF27C56186A} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {E174C25D-F802-417F-ADB4-11E3712D6378} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {160D6CB5-B85B-4414-9252-EF58DEC303F2} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {C3FCD580-CB45-450C-8BFB-2E985C952338} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {0B05F02C-9E65-422F-8192-D06CAF7D6DD6} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {146FEC0E-2AF0-47B4-8F95-8E64F91D1147} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {8720F0F6-D1E2-4699-8B83-638A85ACFB2E} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {557CBDC5-16E6-44FD-B34B-6386AFDC300D} = {FAB95B67-71BE-4BFB-89F4-6DFF84AFD7AD} + {D22408AB-0F46-49DE-B979-EAC88A29EB81} = {E1C6C12F-E1F4-4420-B554-62F204C4C028} + {28B0CB77-2187-4CCD-8190-283FCA9800B1} = {E1C6C12F-E1F4-4420-B554-62F204C4C028} + {C4EF205E-7187-4245-968D-0BEAF5FD1705} = {E1C6C12F-E1F4-4420-B554-62F204C4C028} + {DA4D68E6-A21C-425A-8728-6EF3A57348BA} = {E1C6C12F-E1F4-4420-B554-62F204C4C028} + {61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD} = {7079B273-3194-4711-B4BB-2045A5CFBED5} + {A4F479E3-A0AD-4646-BD4B-F3CD2C29046B} = {7079B273-3194-4711-B4BB-2045A5CFBED5} + {F442C967-0D66-4EFF-8875-1D165AA80621} = {7079B273-3194-4711-B4BB-2045A5CFBED5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6D9B0285-5E8A-4C20-9C53-9E2084EF64C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D9B0285-5E8A-4C20-9C53-9E2084EF64C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D9B0285-5E8A-4C20-9C53-9E2084EF64C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D9B0285-5E8A-4C20-9C53-9E2084EF64C4}.Release|Any CPU.Build.0 = Release|Any CPU - {C560E194-5B14-4112-ABC6-3208491E53E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C560E194-5B14-4112-ABC6-3208491E53E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C560E194-5B14-4112-ABC6-3208491E53E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C560E194-5B14-4112-ABC6-3208491E53E6}.Release|Any CPU.Build.0 = Release|Any CPU - {35FA1FA9-A504-4B9E-93F0-E5D03C21BECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35FA1FA9-A504-4B9E-93F0-E5D03C21BECA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {35FA1FA9-A504-4B9E-93F0-E5D03C21BECA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {35FA1FA9-A504-4B9E-93F0-E5D03C21BECA}.Release|Any CPU.Build.0 = Release|Any CPU - {D24E2563-7A46-4368-94D4-B3A39E9EF1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D24E2563-7A46-4368-94D4-B3A39E9EF1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D24E2563-7A46-4368-94D4-B3A39E9EF1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D24E2563-7A46-4368-94D4-B3A39E9EF1B5}.Release|Any CPU.Build.0 = Release|Any CPU - {AFB408EA-2EF7-42B3-B98F-BA60F6481313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AFB408EA-2EF7-42B3-B98F-BA60F6481313}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AFB408EA-2EF7-42B3-B98F-BA60F6481313}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AFB408EA-2EF7-42B3-B98F-BA60F6481313}.Release|Any CPU.Build.0 = Release|Any CPU - {F6C73170-9333-4B52-B3FA-A536C5EA6A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F6C73170-9333-4B52-B3FA-A536C5EA6A48}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F6C73170-9333-4B52-B3FA-A536C5EA6A48}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F6C73170-9333-4B52-B3FA-A536C5EA6A48}.Release|Any CPU.Build.0 = Release|Any CPU - {CB11B315-2567-4574-977D-89E3135243C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB11B315-2567-4574-977D-89E3135243C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB11B315-2567-4574-977D-89E3135243C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB11B315-2567-4574-977D-89E3135243C4}.Release|Any CPU.Build.0 = Release|Any CPU - {10EFE488-FAB4-43DA-847D-FF057BFF52AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10EFE488-FAB4-43DA-847D-FF057BFF52AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10EFE488-FAB4-43DA-847D-FF057BFF52AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10EFE488-FAB4-43DA-847D-FF057BFF52AC}.Release|Any CPU.Build.0 = Release|Any CPU - {52666206-B6C9-49FA-A1D7-D0A0C68807B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52666206-B6C9-49FA-A1D7-D0A0C68807B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52666206-B6C9-49FA-A1D7-D0A0C68807B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52666206-B6C9-49FA-A1D7-D0A0C68807B0}.Release|Any CPU.Build.0 = Release|Any CPU - {979510CE-9042-4F8D-9C74-EE03B89194CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {979510CE-9042-4F8D-9C74-EE03B89194CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {979510CE-9042-4F8D-9C74-EE03B89194CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {979510CE-9042-4F8D-9C74-EE03B89194CC}.Release|Any CPU.Build.0 = Release|Any CPU - {5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D}.Release|Any CPU.Build.0 = Release|Any CPU - {6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1}.Release|Any CPU.Build.0 = Release|Any CPU - {10D52320-17B7-476E-BBD2-A1064DD38CBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10D52320-17B7-476E-BBD2-A1064DD38CBF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10D52320-17B7-476E-BBD2-A1064DD38CBF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10D52320-17B7-476E-BBD2-A1064DD38CBF}.Release|Any CPU.Build.0 = Release|Any CPU - {BAC347A3-9841-44FC-B1E3-2344D1152C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAC347A3-9841-44FC-B1E3-2344D1152C23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAC347A3-9841-44FC-B1E3-2344D1152C23}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAC347A3-9841-44FC-B1E3-2344D1152C23}.Release|Any CPU.Build.0 = Release|Any CPU - {6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091}.Release|Any CPU.Build.0 = Release|Any CPU - {A62B2854-84B0-494C-A433-865E24232408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A62B2854-84B0-494C-A433-865E24232408}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A62B2854-84B0-494C-A433-865E24232408}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A62B2854-84B0-494C-A433-865E24232408}.Release|Any CPU.Build.0 = Release|Any CPU + {FF12ED5F-0571-4DDB-B1E9-E36B23065870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF12ED5F-0571-4DDB-B1E9-E36B23065870}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF12ED5F-0571-4DDB-B1E9-E36B23065870}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF12ED5F-0571-4DDB-B1E9-E36B23065870}.Release|Any CPU.Build.0 = Release|Any CPU + {20740FAE-E603-4B42-B1E1-E16F8212E9AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20740FAE-E603-4B42-B1E1-E16F8212E9AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20740FAE-E603-4B42-B1E1-E16F8212E9AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20740FAE-E603-4B42-B1E1-E16F8212E9AA}.Release|Any CPU.Build.0 = Release|Any CPU + {096B8A3A-24EE-4A75-B5E1-9F584D9D74F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {096B8A3A-24EE-4A75-B5E1-9F584D9D74F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {096B8A3A-24EE-4A75-B5E1-9F584D9D74F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {096B8A3A-24EE-4A75-B5E1-9F584D9D74F1}.Release|Any CPU.Build.0 = Release|Any CPU + {9FB88324-6915-4049-A298-554BE6EF9AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FB88324-6915-4049-A298-554BE6EF9AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FB88324-6915-4049-A298-554BE6EF9AAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FB88324-6915-4049-A298-554BE6EF9AAA}.Release|Any CPU.Build.0 = Release|Any CPU + {D22408AB-0F46-49DE-B979-EAC88A29EB81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D22408AB-0F46-49DE-B979-EAC88A29EB81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D22408AB-0F46-49DE-B979-EAC88A29EB81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D22408AB-0F46-49DE-B979-EAC88A29EB81}.Release|Any CPU.Build.0 = Release|Any CPU + {61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61FD926A-2ED8-4CA5-8D75-854C8C9D9CCD}.Release|Any CPU.Build.0 = Release|Any CPU + {9865C9E7-0587-4023-8585-B96AE88C5FEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9865C9E7-0587-4023-8585-B96AE88C5FEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9865C9E7-0587-4023-8585-B96AE88C5FEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9865C9E7-0587-4023-8585-B96AE88C5FEC}.Release|Any CPU.Build.0 = Release|Any CPU + {21437332-971D-416D-9D2C-55DFA5CB88A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21437332-971D-416D-9D2C-55DFA5CB88A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21437332-971D-416D-9D2C-55DFA5CB88A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21437332-971D-416D-9D2C-55DFA5CB88A2}.Release|Any CPU.Build.0 = Release|Any CPU + {859DED50-8874-4472-93B3-49A7C3E315FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {859DED50-8874-4472-93B3-49A7C3E315FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {859DED50-8874-4472-93B3-49A7C3E315FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {859DED50-8874-4472-93B3-49A7C3E315FA}.Release|Any CPU.Build.0 = Release|Any CPU + {386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {386DCBD1-1C6F-4D8A-A9A7-D3C7CEC1F59A}.Release|Any CPU.Build.0 = Release|Any CPU + {9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E13FE06-372B-4E2B-8A3E-DAD793DFFFC8}.Release|Any CPU.Build.0 = Release|Any CPU + {4AC95E62-1DBE-4017-A8EE-6FF27C56186A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AC95E62-1DBE-4017-A8EE-6FF27C56186A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AC95E62-1DBE-4017-A8EE-6FF27C56186A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4AC95E62-1DBE-4017-A8EE-6FF27C56186A}.Release|Any CPU.Build.0 = Release|Any CPU + {E174C25D-F802-417F-ADB4-11E3712D6378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E174C25D-F802-417F-ADB4-11E3712D6378}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E174C25D-F802-417F-ADB4-11E3712D6378}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E174C25D-F802-417F-ADB4-11E3712D6378}.Release|Any CPU.Build.0 = Release|Any CPU + {160D6CB5-B85B-4414-9252-EF58DEC303F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {160D6CB5-B85B-4414-9252-EF58DEC303F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {160D6CB5-B85B-4414-9252-EF58DEC303F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {160D6CB5-B85B-4414-9252-EF58DEC303F2}.Release|Any CPU.Build.0 = Release|Any CPU + {C3FCD580-CB45-450C-8BFB-2E985C952338}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3FCD580-CB45-450C-8BFB-2E985C952338}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3FCD580-CB45-450C-8BFB-2E985C952338}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3FCD580-CB45-450C-8BFB-2E985C952338}.Release|Any CPU.Build.0 = Release|Any CPU + {0B05F02C-9E65-422F-8192-D06CAF7D6DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B05F02C-9E65-422F-8192-D06CAF7D6DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B05F02C-9E65-422F-8192-D06CAF7D6DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B05F02C-9E65-422F-8192-D06CAF7D6DD6}.Release|Any CPU.Build.0 = Release|Any CPU + {146FEC0E-2AF0-47B4-8F95-8E64F91D1147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {146FEC0E-2AF0-47B4-8F95-8E64F91D1147}.Debug|Any CPU.Build.0 = Debug|Any CPU + {146FEC0E-2AF0-47B4-8F95-8E64F91D1147}.Release|Any CPU.ActiveCfg = Release|Any CPU + {146FEC0E-2AF0-47B4-8F95-8E64F91D1147}.Release|Any CPU.Build.0 = Release|Any CPU + {8720F0F6-D1E2-4699-8B83-638A85ACFB2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8720F0F6-D1E2-4699-8B83-638A85ACFB2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8720F0F6-D1E2-4699-8B83-638A85ACFB2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8720F0F6-D1E2-4699-8B83-638A85ACFB2E}.Release|Any CPU.Build.0 = Release|Any CPU + {557CBDC5-16E6-44FD-B34B-6386AFDC300D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {557CBDC5-16E6-44FD-B34B-6386AFDC300D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {557CBDC5-16E6-44FD-B34B-6386AFDC300D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {557CBDC5-16E6-44FD-B34B-6386AFDC300D}.Release|Any CPU.Build.0 = Release|Any CPU + {A4F479E3-A0AD-4646-BD4B-F3CD2C29046B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4F479E3-A0AD-4646-BD4B-F3CD2C29046B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4F479E3-A0AD-4646-BD4B-F3CD2C29046B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4F479E3-A0AD-4646-BD4B-F3CD2C29046B}.Release|Any CPU.Build.0 = Release|Any CPU + {28B0CB77-2187-4CCD-8190-283FCA9800B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28B0CB77-2187-4CCD-8190-283FCA9800B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28B0CB77-2187-4CCD-8190-283FCA9800B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28B0CB77-2187-4CCD-8190-283FCA9800B1}.Release|Any CPU.Build.0 = Release|Any CPU + {F442C967-0D66-4EFF-8875-1D165AA80621}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F442C967-0D66-4EFF-8875-1D165AA80621}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F442C967-0D66-4EFF-8875-1D165AA80621}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F442C967-0D66-4EFF-8875-1D165AA80621}.Release|Any CPU.Build.0 = Release|Any CPU + {C4EF205E-7187-4245-968D-0BEAF5FD1705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4EF205E-7187-4245-968D-0BEAF5FD1705}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4EF205E-7187-4245-968D-0BEAF5FD1705}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4EF205E-7187-4245-968D-0BEAF5FD1705}.Release|Any CPU.Build.0 = Release|Any CPU + {DA4D68E6-A21C-425A-8728-6EF3A57348BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA4D68E6-A21C-425A-8728-6EF3A57348BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA4D68E6-A21C-425A-8728-6EF3A57348BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA4D68E6-A21C-425A-8728-6EF3A57348BA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6D9B0285-5E8A-4C20-9C53-9E2084EF64C4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C560E194-5B14-4112-ABC6-3208491E53E6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {35FA1FA9-A504-4B9E-93F0-E5D03C21BECA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D24E2563-7A46-4368-94D4-B3A39E9EF1B5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AFB408EA-2EF7-42B3-B98F-BA60F6481313} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F6C73170-9333-4B52-B3FA-A536C5EA6A48} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CB11B315-2567-4574-977D-89E3135243C4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {10EFE488-FAB4-43DA-847D-FF057BFF52AC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {52666206-B6C9-49FA-A1D7-D0A0C68807B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {979510CE-9042-4F8D-9C74-EE03B89194CC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5D4FB9ED-C3AC-4EFA-9FEE-619ED4B4B92D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6E1C5358-7F04-4791-8B5F-6A5A4E42ABF1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {10D52320-17B7-476E-BBD2-A1064DD38CBF} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BAC347A3-9841-44FC-B1E3-2344D1152C23} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6A0BD1D6-4D2F-4EBA-8879-CA3D275BD091} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A62B2854-84B0-494C-A433-865E24232408} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2051658A-0B9D-4CAB-B8B8-25E01EEC8E44} + SolutionGuid = {466CF638-AFDA-4A38-97EF-C87ED7B93443} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XDocumentType.cs b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XDocumentType.cs index 8bf4c83aa3f1..f9605ca14edd 100644 --- a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XDocumentType.cs +++ b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XDocumentType.cs @@ -15,7 +15,7 @@ public class XDocumentType : XNode private string _name; private string? _publicId; private string? _systemId; - private string _internalSubset; + private string? _internalSubset; /// /// Initializes an empty instance of the class. @@ -25,7 +25,7 @@ public XDocumentType(string name, string? publicId, string? systemId, string? in _name = XmlConvert.VerifyName(name); _publicId = publicId; _systemId = systemId; - _internalSubset = internalSubset ?? string.Empty; + _internalSubset = internalSubset; } /// @@ -54,8 +54,7 @@ internal XDocumentType(XmlReader r) /// /// Gets or sets the internal subset for this Document Type Definition (DTD). /// - [AllowNull] - public string InternalSubset + public string? InternalSubset { get { @@ -64,7 +63,7 @@ public string InternalSubset set { bool notify = NotifyChanging(this, XObjectChangeEventArgs.Value); - _internalSubset = value ?? string.Empty; + _internalSubset = value; if (notify) NotifyChanged(this, XObjectChangeEventArgs.Value); } } @@ -182,7 +181,7 @@ internal override int GetDeepHashCode() return _name.GetHashCode() ^ (_publicId != null ? _publicId.GetHashCode() : 0) ^ (_systemId != null ? _systemId.GetHashCode() : 0) ^ - _internalSubset.GetHashCode(); + (_internalSubset != null ? _internalSubset.GetHashCode() : 0); } } } diff --git a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XNodeReader.cs b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XNodeReader.cs index b1a4e58c1dbf..05bf4a0612fb 100644 --- a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XNodeReader.cs +++ b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Linq/XNodeReader.cs @@ -378,7 +378,7 @@ public override string Value case XmlNodeType.ProcessingInstruction: return ((XProcessingInstruction)o).Data; case XmlNodeType.DocumentType: - return ((XDocumentType)o).InternalSubset; + return ((XDocumentType)o).InternalSubset ?? string.Empty; default: return string.Empty; } diff --git a/src/libraries/System.Private.Xml.Linq/tests/Properties/FunctionalTests.cs b/src/libraries/System.Private.Xml.Linq/tests/Properties/FunctionalTests.cs index 5fdf219575e8..599ed303e23b 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/Properties/FunctionalTests.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/Properties/FunctionalTests.cs @@ -24,7 +24,7 @@ public static void RunTests() } module.Execute(); - Assert.Equal(0, module.FailCount); + Assert.False(module.HasFailures, module.GetFailuresInfo()); } #region Class public partial class PropertiesTests : XLinqTestCase diff --git a/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/SimpleObjectsCreation.cs b/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/SimpleObjectsCreation.cs index e3d5dec29fd3..d08ab554ed7a 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/SimpleObjectsCreation.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/SimpleObjectsCreation.cs @@ -933,7 +933,7 @@ public void DTDConstruct() TestLog.Compare(dtd.Name, data[0], "dtd.Name, data[0]"); TestLog.Compare(dtd.PublicId, data[1], "dtd.SystemId, data[1]"); TestLog.Compare(dtd.SystemId, data[2], "dtd.PublicId, data[2]"); - TestLog.Compare(dtd.InternalSubset, data[3], "dtd.InternalSubset, data[3]"); + TestLog.Compare(dtd.InternalSubset, data[3], data[3], "dtd.InternalSubset, data[3]"); TestLog.Compare(dtd.NodeType, XmlNodeType.DocumentType, "nodetype"); TestLog.Compare(dtd.ToString(), serial, "DTD construction"); } diff --git a/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/TreeManipulationTests.cs b/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/TreeManipulationTests.cs index 4596e873fb70..83e2dd75a341 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/TreeManipulationTests.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/TreeManipulation/TreeManipulationTests.cs @@ -429,7 +429,7 @@ private static void RunTestCase(TestItem testCase) module.AddChild(testCase); module.Execute(); - Assert.Equal(0, module.FailCount); + Assert.False(module.HasFailures, module.GetFailuresInfo()); } } } diff --git a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testcase.cs b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testcase.cs index 3000401dcea9..7018cf869eec 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testcase.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testcase.cs @@ -90,7 +90,7 @@ public override TestResult Execute() { System.Console.WriteLine(indent + var.Desc); System.Console.WriteLine(indent + " FAILED"); - module.FailCount++; + module.AddFailure(var.Desc); } else { @@ -116,7 +116,7 @@ public override TestResult Execute() System.Console.WriteLine(indent + var.Desc); System.Console.WriteLine(e); System.Console.WriteLine(indent + " FAILED"); - module.FailCount++; + module.AddFailure(var.Desc + Environment.NewLine + e.ToString()); } } } diff --git a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testmodule.cs b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testmodule.cs index cb69e19aaff8..f7adde640eab 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testmodule.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Test.ModuleCore/testmodule.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Text; namespace Microsoft.Test.ModuleCore { @@ -19,17 +20,15 @@ public abstract class TestModule : TestItem private int _ppass = 0; private int _pfail = 0; private int _pskip = 0; + private StringBuilder _failureInfo; public int PassCount { get { return _ppass; } set { _ppass = value; } } - public int FailCount - { - get { return _pfail; } - set { _pfail = value; } - } + public int FailCount => _pfail; + public bool HasFailures => _pfail > 0; public int SkipCount { @@ -37,6 +36,18 @@ public int SkipCount set { _pskip = value; } } + public void AddFailure(string description) + { + _failureInfo = _failureInfo ?? new StringBuilder(); + _failureInfo.AppendLine(description); + _pfail++; + } + + public string GetFailuresInfo() + { + return _failureInfo?.ToString() ?? string.Empty; + } + //Constructors public TestModule() : this(null, null) diff --git a/src/libraries/System.Private.Xml.Linq/tests/misc/FunctionalTests.cs b/src/libraries/System.Private.Xml.Linq/tests/misc/FunctionalTests.cs index bdfa01c4834b..fe3e152592e2 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/misc/FunctionalTests.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/misc/FunctionalTests.cs @@ -24,7 +24,7 @@ public static void RunTests() module.AddChild(new MiscTests() { Attribute = new TestCaseAttribute() { Name = "Misc", Desc = "XLinq Misc. Tests" } }); module.Execute(); - Assert.Equal(0, module.FailCount); + Assert.False(module.HasFailures, module.GetFailuresInfo()); } public partial class MiscTests : XLinqTestCase { diff --git a/src/libraries/System.Private.Xml.Linq/tests/xNodeBuilder/FunctionalTests.cs b/src/libraries/System.Private.Xml.Linq/tests/xNodeBuilder/FunctionalTests.cs index 717e0846f217..95a593037105 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/xNodeBuilder/FunctionalTests.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/xNodeBuilder/FunctionalTests.cs @@ -29,7 +29,7 @@ public static void RunTests() } module.Execute(); - Assert.Equal(0, module.FailCount); + Assert.False(module.HasFailures, module.GetFailuresInfo()); } #region Code diff --git a/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/FunctionalTests.cs b/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/FunctionalTests.cs index 3a94479c6686..49381eed5a54 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/FunctionalTests.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/FunctionalTests.cs @@ -26,7 +26,7 @@ public static void RunTests() module.AddChild(new XNodeReaderTests() { Attribute = new TestCaseAttribute() { Name = "XNodeReader", Desc = "XLinq XNodeReader Tests" } }); module.Execute(); - Assert.Equal(0, module.FailCount); + Assert.False(module.HasFailures, module.GetFailuresInfo()); } #region Class diff --git a/src/libraries/System.Private.Xml/System.Private.Xml.sln b/src/libraries/System.Private.Xml/System.Private.Xml.sln index 4abcd29f9590..2b992f3f58a7 100644 --- a/src/libraries/System.Private.Xml/System.Private.Xml.sln +++ b/src/libraries/System.Private.Xml/System.Private.Xml.sln @@ -1,318 +1,296 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Misc.Tests", "tests\Misc\System.Xml.Misc.Tests.csproj", "{A30BBA60-647C-4565-A42F-BE60B2CA2E8E}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.CharCheckingReader.Tests", "tests\Readers\CharCheckingReader\System.Xml.RW.CharCheckingReader.Tests.csproj", "{6DC15D23-8213-4700-9815-AD8DEED1CE5F}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.CustomReader.Tests", "tests\Readers\CustomReader\System.Xml.RW.CustomReader.Tests.csproj", "{B51913C2-478E-46AA-A523-521BD4593651}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.FactoryReader.Tests", "tests\Readers\FactoryReader\System.Xml.RW.FactoryReader.Tests.csproj", "{04C5492C-FA54-4F93-8698-44B8BB7C72E0}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.NameTable.Tests", "tests\Readers\NameTable\System.Xml.RW.NameTable.Tests.csproj", "{2CA30CA9-FADA-4AB6-81E3-EAE61EF44463}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.ReaderSettings.Tests", "tests\Readers\ReaderSettings\System.Xml.RW.ReaderSettings.Tests.csproj", "{54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.SubtreeReader.Tests", "tests\Readers\SubtreeReader\System.Xml.RW.SubtreeReader.Tests.csproj", "{6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.WrappedReader.Tests", "tests\Readers\WrappedReader\System.Xml.RW.WrappedReader.Tests.csproj", "{1C8F67D6-1953-49D3-B716-F298883A79C6}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.RwFactory.Tests", "tests\Writers\RwFactory\System.Xml.RW.RwFactory.Tests.csproj", "{95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlWriterApi.Tests", "tests\Writers\XmlWriterApi\System.Xml.RW.XmlWriterApi.Tests.csproj", "{E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlConvert.Tests", "tests\XmlConvert\System.Xml.RW.XmlConvert.Tests.csproj", "{3F18D20D-0267-4381-857B-EEDB7B3FC549}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument.Tests", "tests\XmlDocument\System.Xml.XmlDocument.Tests.csproj", "{7EAFC2D8-48D2-4A56-A9C6-6BADF2053499}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlNodeReader.Tests", "tests\XmlNodeReader\System.Xml.XmlNodeReader.Tests\System.Xml.XmlNodeReader.Tests.csproj", "{6C6F323D-054E-4723-9DEA-1C5E1E45DF88}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReader.ReadContentAs.Tests", "tests\XmlReader\ReadContentAs\System.Xml.RW.XmlReader.ReadContentAs.Tests.csproj", "{DA6A9B7F-F311-49A4-8BBE-42EF3152C37B}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReader.Tests", "tests\XmlReader\Tests\System.Xml.RW.XmlReader.Tests.csproj", "{507DB29F-74F5-4B34-A240-ABE7BD168DF6}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlSystemPathResolver.Tests", "tests\XmlReader\XmlResolver\System.Xml.RW.XmlSystemPathResolver.Tests.csproj", "{E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReaderLib", "tests\XmlReaderLib\System.Xml.RW.XmlReaderLib.csproj", "{F05DE950-CA99-42A8-B44D-E7DAA5C3C783}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlResolver.Tests", "tests\XmlResolver\System.Xml.XmlResolver.Tests\System.Xml.XmlResolver.Tests.csproj", "{F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSchemaSet.Tests", "tests\XmlSchema\XmlSchemaSet\System.Xml.XmlSchemaSet.Tests.csproj", "{9EDAADA8-B658-430F-97EE-CCA494883D86}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests", "tests\XmlSchema\XmlSchemaValidatorApi\System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests.csproj", "{B0F53AAA-4ABC-44B2-9331-D3802340DD20}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer.ReflectionOnly.Tests", "tests\XmlSerializer\ReflectionOnly\System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj", "{4050F1D1-1DD2-4B48-A17B-E3F955518C4B}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer.Tests", "tests\XmlSerializer\System.Xml.XmlSerializer.Tests.csproj", "{4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlWriter.Tests", "tests\XmlWriter\System.Xml.RW.XmlWriter.Tests.csproj", "{8CDE71C2-4DA4-4AF6-9897-CD953AE653C2}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument.Tests", "tests\XPath\XmlDocument\System.Xml.XPath.XmlDocument.Tests.csproj", "{7B57D5F1-4E6C-4280-AD5B-C71C73B66B11}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.Tests", "tests\XPath\XPathDocument\System.Xml.XPath.Tests.csproj", "{D0DF902A-2486-4A38-B7A7-232B9B6590E1}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Xsl.XslCompiledTransformApi.Tests", "tests\Xslt\XslCompiledTransformApi\System.Xml.Xsl.XslCompiledTransformApi.Tests.csproj", "{B01E2AE1-1B52-4518-B32E-016070356A7F}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XsltCompiler.Tests", "tests\Xslt\XsltCompiler\XsltCompiler.Tests.csproj", "{59B2167E-E2D6-4E7E-AFFE-4060E1F3843C}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Xsl.XslTransformApi.Tests", "tests\Xslt\XslTransformApi\System.Xml.Xsl.XslTransformApi.Tests.csproj", "{ACF79A18-2655-452C-B4AC-10125F0AD7A8}" - ProjectSection(ProjectDependencies) = postProject - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "src\System.Private.Xml.csproj", "{C427CE0D-0740-41F3-9C3A-552BEA3DDB0D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaseLibManaged", "..\Common\tests\System\Xml\BaseLibManaged\BaseLibManaged.csproj", "{301E53B9-AF30-4759-953B-8C2396D96E41}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleCore", "..\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj", "{497F8F6C-CE19-4B51-9A6E-5176231F22F3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlCoreTest", "..\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj", "{E9C8AF65-4553-42C7-8E8A-6EBC12B473B5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDiff", "..\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj", "{ADD6F934-4933-47A1-A700-AA63D6474097}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6222F04D-AF3C-4CA3-A564-F4FED0A60F64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{CA3E9C20-D073-4CC5-B288-25A2F19297E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "src\System.Private.Xml.csproj", "{B49AD269-3938-4F33-AEF8-029D3A94138F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Misc.Tests", "tests\Misc\System.Xml.Misc.Tests.csproj", "{A1DBA542-0E3C-4767-9BDB-58238C195856}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.CharCheckingReader.Tests", "tests\Readers\CharCheckingReader\System.Xml.RW.CharCheckingReader.Tests.csproj", "{EF288754-66B1-4E80-8044-2D69EBB0F121}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.CustomReader.Tests", "tests\Readers\CustomReader\System.Xml.RW.CustomReader.Tests.csproj", "{AE2A48D5-AA4E-4B0D-875B-2624B23D79E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.FactoryReader.Tests", "tests\Readers\FactoryReader\System.Xml.RW.FactoryReader.Tests.csproj", "{F0955347-9034-42BA-9924-E6245E813B6C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.NameTable.Tests", "tests\Readers\NameTable\System.Xml.RW.NameTable.Tests.csproj", "{6E1952A6-B2A2-4552-8BF9-19BF78005B8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.ReaderSettings.Tests", "tests\Readers\ReaderSettings\System.Xml.RW.ReaderSettings.Tests.csproj", "{760E5C8B-1DEE-485C-AC58-86723AF12749}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.SubtreeReader.Tests", "tests\Readers\SubtreeReader\System.Xml.RW.SubtreeReader.Tests.csproj", "{48D22D17-2757-43E8-9A8C-2C53165C7271}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.WrappedReader.Tests", "tests\Readers\WrappedReader\System.Xml.RW.WrappedReader.Tests.csproj", "{F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.RwFactory.Tests", "tests\Writers\RwFactory\System.Xml.RW.RwFactory.Tests.csproj", "{7D132F1D-BE7F-475A-8E03-5E1579DB79B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlWriterApi.Tests", "tests\Writers\XmlWriterApi\System.Xml.RW.XmlWriterApi.Tests.csproj", "{4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlConvert.Tests", "tests\XmlConvert\System.Xml.RW.XmlConvert.Tests.csproj", "{43C406AC-9304-4FE4-8A32-7C6C4286E1C6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument.Tests", "tests\XmlDocument\System.Xml.XmlDocument.Tests.csproj", "{6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlNodeReader.Tests", "tests\XmlNodeReader\System.Xml.XmlNodeReader.Tests\System.Xml.XmlNodeReader.Tests.csproj", "{ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReader.ReadContentAs.Tests", "tests\XmlReader\ReadContentAs\System.Xml.RW.XmlReader.ReadContentAs.Tests.csproj", "{64194137-008E-491D-9258-C07C0389ADB9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReader.Tests", "tests\XmlReader\Tests\System.Xml.RW.XmlReader.Tests.csproj", "{EA178A11-E0EF-456F-A7E6-D50B3296275B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlSystemPathResolver.Tests", "tests\XmlReader\XmlResolver\System.Xml.RW.XmlSystemPathResolver.Tests.csproj", "{70CFC896-B150-4DD7-86B0-3981A128CDA1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlReaderLib", "tests\XmlReaderLib\System.Xml.RW.XmlReaderLib.csproj", "{64441DE6-F486-411A-B965-F12785171B38}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlResolver.Tests", "tests\XmlResolver\System.Xml.XmlResolver.Tests\System.Xml.XmlResolver.Tests.csproj", "{8B8DF798-5C25-454A-9CE5-D2170BB91CA1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSchemaSet.Tests", "tests\XmlSchema\XmlSchemaSet\System.Xml.XmlSchemaSet.Tests.csproj", "{F8E21282-5C68-4F45-B25D-015A6473EDFA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests", "tests\XmlSchema\XmlSchemaValidatorApi\System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests.csproj", "{1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer.ReflectionOnly.Tests", "tests\XmlSerializer\ReflectionOnly\System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj", "{AD461557-2DDB-4A3C-8433-FFB5E31A5E6F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer.Tests", "tests\XmlSerializer\System.Xml.XmlSerializer.Tests.csproj", "{91C2929B-7AB0-4B58-84B4-BB6335140557}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.RW.XmlWriter.Tests", "tests\XmlWriter\System.Xml.RW.XmlWriter.Tests.csproj", "{8C42EA3F-0619-4541-ACC1-D667882A513D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument.Tests", "tests\XPath\XmlDocument\System.Xml.XPath.XmlDocument.Tests.csproj", "{8C4495D3-EC0D-49FB-B49F-31F326BE3B7C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.Tests", "tests\XPath\XPathDocument\System.Xml.XPath.Tests.csproj", "{2ACA294D-34E5-476C-B978-DE6FA028318E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Xsl.XslCompiledTransformApi.Tests", "tests\Xslt\XslCompiledTransformApi\System.Xml.Xsl.XslCompiledTransformApi.Tests.csproj", "{A2B94467-3E3E-4632-B76A-4820CF43EDA0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XsltCompiler.Tests", "tests\Xslt\XsltCompiler\XsltCompiler.Tests.csproj", "{4A49FD39-51EF-42F4-AEF9-C60880FC41B3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.Xsl.XslTransformApi.Tests", "tests\Xslt\XslTransformApi\System.Xml.Xsl.XslTransformApi.Tests.csproj", "{BBB6623D-BDF2-41B6-9165-A22A6C4D4159}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D85F5D9C-A068-4F04-B081-0A3E20CB5D49}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{8FB84342-2953-4B59-91B8-7BF3AE37172D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{80A7F7CE-9235-45CD-A195-E031AB3E1EAA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{090DA31F-6284-45AD-9010-EC6E96AFD07E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A9D6C907-39E4-4ECA-BA9B-2392B98C1D49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3795B225-029E-4C03-B593-1527DDF93182}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {301E53B9-AF30-4759-953B-8C2396D96E41} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {497F8F6C-CE19-4B51-9A6E-5176231F22F3} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {E9C8AF65-4553-42C7-8E8A-6EBC12B473B5} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {ADD6F934-4933-47A1-A700-AA63D6474097} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {6222F04D-AF3C-4CA3-A564-F4FED0A60F64} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {A1DBA542-0E3C-4767-9BDB-58238C195856} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {EF288754-66B1-4E80-8044-2D69EBB0F121} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {AE2A48D5-AA4E-4B0D-875B-2624B23D79E1} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {F0955347-9034-42BA-9924-E6245E813B6C} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {6E1952A6-B2A2-4552-8BF9-19BF78005B8D} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {760E5C8B-1DEE-485C-AC58-86723AF12749} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {48D22D17-2757-43E8-9A8C-2C53165C7271} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {7D132F1D-BE7F-475A-8E03-5E1579DB79B7} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {43C406AC-9304-4FE4-8A32-7C6C4286E1C6} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {64194137-008E-491D-9258-C07C0389ADB9} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {EA178A11-E0EF-456F-A7E6-D50B3296275B} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {70CFC896-B150-4DD7-86B0-3981A128CDA1} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {64441DE6-F486-411A-B965-F12785171B38} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {8B8DF798-5C25-454A-9CE5-D2170BB91CA1} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {F8E21282-5C68-4F45-B25D-015A6473EDFA} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {AD461557-2DDB-4A3C-8433-FFB5E31A5E6F} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {91C2929B-7AB0-4B58-84B4-BB6335140557} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {8C42EA3F-0619-4541-ACC1-D667882A513D} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {8C4495D3-EC0D-49FB-B49F-31F326BE3B7C} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {2ACA294D-34E5-476C-B978-DE6FA028318E} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {A2B94467-3E3E-4632-B76A-4820CF43EDA0} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {4A49FD39-51EF-42F4-AEF9-C60880FC41B3} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {BBB6623D-BDF2-41B6-9165-A22A6C4D4159} = {090DA31F-6284-45AD-9010-EC6E96AFD07E} + {CA3E9C20-D073-4CC5-B288-25A2F19297E8} = {A9D6C907-39E4-4ECA-BA9B-2392B98C1D49} + {D85F5D9C-A068-4F04-B081-0A3E20CB5D49} = {A9D6C907-39E4-4ECA-BA9B-2392B98C1D49} + {8FB84342-2953-4B59-91B8-7BF3AE37172D} = {A9D6C907-39E4-4ECA-BA9B-2392B98C1D49} + {80A7F7CE-9235-45CD-A195-E031AB3E1EAA} = {A9D6C907-39E4-4ECA-BA9B-2392B98C1D49} + {B49AD269-3938-4F33-AEF8-029D3A94138F} = {3795B225-029E-4C03-B593-1527DDF93182} + {742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7} = {3795B225-029E-4C03-B593-1527DDF93182} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A30BBA60-647C-4565-A42F-BE60B2CA2E8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A30BBA60-647C-4565-A42F-BE60B2CA2E8E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A30BBA60-647C-4565-A42F-BE60B2CA2E8E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A30BBA60-647C-4565-A42F-BE60B2CA2E8E}.Release|Any CPU.Build.0 = Release|Any CPU - {6DC15D23-8213-4700-9815-AD8DEED1CE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6DC15D23-8213-4700-9815-AD8DEED1CE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6DC15D23-8213-4700-9815-AD8DEED1CE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6DC15D23-8213-4700-9815-AD8DEED1CE5F}.Release|Any CPU.Build.0 = Release|Any CPU - {B51913C2-478E-46AA-A523-521BD4593651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B51913C2-478E-46AA-A523-521BD4593651}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B51913C2-478E-46AA-A523-521BD4593651}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B51913C2-478E-46AA-A523-521BD4593651}.Release|Any CPU.Build.0 = Release|Any CPU - {04C5492C-FA54-4F93-8698-44B8BB7C72E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C5492C-FA54-4F93-8698-44B8BB7C72E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C5492C-FA54-4F93-8698-44B8BB7C72E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C5492C-FA54-4F93-8698-44B8BB7C72E0}.Release|Any CPU.Build.0 = Release|Any CPU - {2CA30CA9-FADA-4AB6-81E3-EAE61EF44463}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CA30CA9-FADA-4AB6-81E3-EAE61EF44463}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2CA30CA9-FADA-4AB6-81E3-EAE61EF44463}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2CA30CA9-FADA-4AB6-81E3-EAE61EF44463}.Release|Any CPU.Build.0 = Release|Any CPU - {54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE}.Release|Any CPU.Build.0 = Release|Any CPU - {6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86}.Release|Any CPU.Build.0 = Release|Any CPU - {1C8F67D6-1953-49D3-B716-F298883A79C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1C8F67D6-1953-49D3-B716-F298883A79C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1C8F67D6-1953-49D3-B716-F298883A79C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1C8F67D6-1953-49D3-B716-F298883A79C6}.Release|Any CPU.Build.0 = Release|Any CPU - {95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7}.Release|Any CPU.Build.0 = Release|Any CPU - {E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE}.Release|Any CPU.Build.0 = Release|Any CPU - {3F18D20D-0267-4381-857B-EEDB7B3FC549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F18D20D-0267-4381-857B-EEDB7B3FC549}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F18D20D-0267-4381-857B-EEDB7B3FC549}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F18D20D-0267-4381-857B-EEDB7B3FC549}.Release|Any CPU.Build.0 = Release|Any CPU - {7EAFC2D8-48D2-4A56-A9C6-6BADF2053499}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7EAFC2D8-48D2-4A56-A9C6-6BADF2053499}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7EAFC2D8-48D2-4A56-A9C6-6BADF2053499}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7EAFC2D8-48D2-4A56-A9C6-6BADF2053499}.Release|Any CPU.Build.0 = Release|Any CPU - {6C6F323D-054E-4723-9DEA-1C5E1E45DF88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C6F323D-054E-4723-9DEA-1C5E1E45DF88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C6F323D-054E-4723-9DEA-1C5E1E45DF88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C6F323D-054E-4723-9DEA-1C5E1E45DF88}.Release|Any CPU.Build.0 = Release|Any CPU - {DA6A9B7F-F311-49A4-8BBE-42EF3152C37B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA6A9B7F-F311-49A4-8BBE-42EF3152C37B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA6A9B7F-F311-49A4-8BBE-42EF3152C37B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA6A9B7F-F311-49A4-8BBE-42EF3152C37B}.Release|Any CPU.Build.0 = Release|Any CPU - {507DB29F-74F5-4B34-A240-ABE7BD168DF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {507DB29F-74F5-4B34-A240-ABE7BD168DF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {507DB29F-74F5-4B34-A240-ABE7BD168DF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {507DB29F-74F5-4B34-A240-ABE7BD168DF6}.Release|Any CPU.Build.0 = Release|Any CPU - {E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B}.Release|Any CPU.Build.0 = Release|Any CPU - {F05DE950-CA99-42A8-B44D-E7DAA5C3C783}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F05DE950-CA99-42A8-B44D-E7DAA5C3C783}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F05DE950-CA99-42A8-B44D-E7DAA5C3C783}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F05DE950-CA99-42A8-B44D-E7DAA5C3C783}.Release|Any CPU.Build.0 = Release|Any CPU - {F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E}.Release|Any CPU.Build.0 = Release|Any CPU - {9EDAADA8-B658-430F-97EE-CCA494883D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EDAADA8-B658-430F-97EE-CCA494883D86}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EDAADA8-B658-430F-97EE-CCA494883D86}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EDAADA8-B658-430F-97EE-CCA494883D86}.Release|Any CPU.Build.0 = Release|Any CPU - {B0F53AAA-4ABC-44B2-9331-D3802340DD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0F53AAA-4ABC-44B2-9331-D3802340DD20}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0F53AAA-4ABC-44B2-9331-D3802340DD20}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0F53AAA-4ABC-44B2-9331-D3802340DD20}.Release|Any CPU.Build.0 = Release|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F955518C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F955518C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F955518C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F955518C4B}.Release|Any CPU.Build.0 = Release|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B}.Release|Any CPU.Build.0 = Release|Any CPU - {8CDE71C2-4DA4-4AF6-9897-CD953AE653C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CDE71C2-4DA4-4AF6-9897-CD953AE653C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CDE71C2-4DA4-4AF6-9897-CD953AE653C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CDE71C2-4DA4-4AF6-9897-CD953AE653C2}.Release|Any CPU.Build.0 = Release|Any CPU - {7B57D5F1-4E6C-4280-AD5B-C71C73B66B11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B57D5F1-4E6C-4280-AD5B-C71C73B66B11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B57D5F1-4E6C-4280-AD5B-C71C73B66B11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B57D5F1-4E6C-4280-AD5B-C71C73B66B11}.Release|Any CPU.Build.0 = Release|Any CPU - {D0DF902A-2486-4A38-B7A7-232B9B6590E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D0DF902A-2486-4A38-B7A7-232B9B6590E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D0DF902A-2486-4A38-B7A7-232B9B6590E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D0DF902A-2486-4A38-B7A7-232B9B6590E1}.Release|Any CPU.Build.0 = Release|Any CPU - {B01E2AE1-1B52-4518-B32E-016070356A7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B01E2AE1-1B52-4518-B32E-016070356A7F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B01E2AE1-1B52-4518-B32E-016070356A7F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B01E2AE1-1B52-4518-B32E-016070356A7F}.Release|Any CPU.Build.0 = Release|Any CPU - {59B2167E-E2D6-4E7E-AFFE-4060E1F3843C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {59B2167E-E2D6-4E7E-AFFE-4060E1F3843C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59B2167E-E2D6-4E7E-AFFE-4060E1F3843C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {59B2167E-E2D6-4E7E-AFFE-4060E1F3843C}.Release|Any CPU.Build.0 = Release|Any CPU - {ACF79A18-2655-452C-B4AC-10125F0AD7A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACF79A18-2655-452C-B4AC-10125F0AD7A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACF79A18-2655-452C-B4AC-10125F0AD7A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACF79A18-2655-452C-B4AC-10125F0AD7A8}.Release|Any CPU.Build.0 = Release|Any CPU - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D}.Release|Any CPU.Build.0 = Release|Any CPU - {DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B}.Release|Any CPU.Build.0 = Release|Any CPU + {301E53B9-AF30-4759-953B-8C2396D96E41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {301E53B9-AF30-4759-953B-8C2396D96E41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {301E53B9-AF30-4759-953B-8C2396D96E41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {301E53B9-AF30-4759-953B-8C2396D96E41}.Release|Any CPU.Build.0 = Release|Any CPU + {497F8F6C-CE19-4B51-9A6E-5176231F22F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {497F8F6C-CE19-4B51-9A6E-5176231F22F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {497F8F6C-CE19-4B51-9A6E-5176231F22F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {497F8F6C-CE19-4B51-9A6E-5176231F22F3}.Release|Any CPU.Build.0 = Release|Any CPU + {E9C8AF65-4553-42C7-8E8A-6EBC12B473B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9C8AF65-4553-42C7-8E8A-6EBC12B473B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9C8AF65-4553-42C7-8E8A-6EBC12B473B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9C8AF65-4553-42C7-8E8A-6EBC12B473B5}.Release|Any CPU.Build.0 = Release|Any CPU + {ADD6F934-4933-47A1-A700-AA63D6474097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADD6F934-4933-47A1-A700-AA63D6474097}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADD6F934-4933-47A1-A700-AA63D6474097}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADD6F934-4933-47A1-A700-AA63D6474097}.Release|Any CPU.Build.0 = Release|Any CPU + {6222F04D-AF3C-4CA3-A564-F4FED0A60F64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6222F04D-AF3C-4CA3-A564-F4FED0A60F64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6222F04D-AF3C-4CA3-A564-F4FED0A60F64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6222F04D-AF3C-4CA3-A564-F4FED0A60F64}.Release|Any CPU.Build.0 = Release|Any CPU + {CA3E9C20-D073-4CC5-B288-25A2F19297E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA3E9C20-D073-4CC5-B288-25A2F19297E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA3E9C20-D073-4CC5-B288-25A2F19297E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA3E9C20-D073-4CC5-B288-25A2F19297E8}.Release|Any CPU.Build.0 = Release|Any CPU + {B49AD269-3938-4F33-AEF8-029D3A94138F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B49AD269-3938-4F33-AEF8-029D3A94138F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B49AD269-3938-4F33-AEF8-029D3A94138F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B49AD269-3938-4F33-AEF8-029D3A94138F}.Release|Any CPU.Build.0 = Release|Any CPU + {A1DBA542-0E3C-4767-9BDB-58238C195856}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1DBA542-0E3C-4767-9BDB-58238C195856}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1DBA542-0E3C-4767-9BDB-58238C195856}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1DBA542-0E3C-4767-9BDB-58238C195856}.Release|Any CPU.Build.0 = Release|Any CPU + {EF288754-66B1-4E80-8044-2D69EBB0F121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF288754-66B1-4E80-8044-2D69EBB0F121}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF288754-66B1-4E80-8044-2D69EBB0F121}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF288754-66B1-4E80-8044-2D69EBB0F121}.Release|Any CPU.Build.0 = Release|Any CPU + {AE2A48D5-AA4E-4B0D-875B-2624B23D79E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE2A48D5-AA4E-4B0D-875B-2624B23D79E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE2A48D5-AA4E-4B0D-875B-2624B23D79E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE2A48D5-AA4E-4B0D-875B-2624B23D79E1}.Release|Any CPU.Build.0 = Release|Any CPU + {F0955347-9034-42BA-9924-E6245E813B6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0955347-9034-42BA-9924-E6245E813B6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0955347-9034-42BA-9924-E6245E813B6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0955347-9034-42BA-9924-E6245E813B6C}.Release|Any CPU.Build.0 = Release|Any CPU + {6E1952A6-B2A2-4552-8BF9-19BF78005B8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E1952A6-B2A2-4552-8BF9-19BF78005B8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E1952A6-B2A2-4552-8BF9-19BF78005B8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E1952A6-B2A2-4552-8BF9-19BF78005B8D}.Release|Any CPU.Build.0 = Release|Any CPU + {760E5C8B-1DEE-485C-AC58-86723AF12749}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {760E5C8B-1DEE-485C-AC58-86723AF12749}.Debug|Any CPU.Build.0 = Debug|Any CPU + {760E5C8B-1DEE-485C-AC58-86723AF12749}.Release|Any CPU.ActiveCfg = Release|Any CPU + {760E5C8B-1DEE-485C-AC58-86723AF12749}.Release|Any CPU.Build.0 = Release|Any CPU + {48D22D17-2757-43E8-9A8C-2C53165C7271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48D22D17-2757-43E8-9A8C-2C53165C7271}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48D22D17-2757-43E8-9A8C-2C53165C7271}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48D22D17-2757-43E8-9A8C-2C53165C7271}.Release|Any CPU.Build.0 = Release|Any CPU + {F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1EA6D30-052C-4BAF-A6C7-4B2A1F4A4AE5}.Release|Any CPU.Build.0 = Release|Any CPU + {7D132F1D-BE7F-475A-8E03-5E1579DB79B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D132F1D-BE7F-475A-8E03-5E1579DB79B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D132F1D-BE7F-475A-8E03-5E1579DB79B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D132F1D-BE7F-475A-8E03-5E1579DB79B7}.Release|Any CPU.Build.0 = Release|Any CPU + {4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EAFAB71-A5E3-41AB-8F84-EBD5D36DF9E5}.Release|Any CPU.Build.0 = Release|Any CPU + {43C406AC-9304-4FE4-8A32-7C6C4286E1C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43C406AC-9304-4FE4-8A32-7C6C4286E1C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43C406AC-9304-4FE4-8A32-7C6C4286E1C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43C406AC-9304-4FE4-8A32-7C6C4286E1C6}.Release|Any CPU.Build.0 = Release|Any CPU + {6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CDEE0F7-3E0E-4EDD-91B0-2B1A56ED6109}.Release|Any CPU.Build.0 = Release|Any CPU + {ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECEE9717-ECE3-4F62-8C65-CEED1A76DFDF}.Release|Any CPU.Build.0 = Release|Any CPU + {64194137-008E-491D-9258-C07C0389ADB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64194137-008E-491D-9258-C07C0389ADB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64194137-008E-491D-9258-C07C0389ADB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64194137-008E-491D-9258-C07C0389ADB9}.Release|Any CPU.Build.0 = Release|Any CPU + {EA178A11-E0EF-456F-A7E6-D50B3296275B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA178A11-E0EF-456F-A7E6-D50B3296275B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA178A11-E0EF-456F-A7E6-D50B3296275B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA178A11-E0EF-456F-A7E6-D50B3296275B}.Release|Any CPU.Build.0 = Release|Any CPU + {70CFC896-B150-4DD7-86B0-3981A128CDA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70CFC896-B150-4DD7-86B0-3981A128CDA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70CFC896-B150-4DD7-86B0-3981A128CDA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70CFC896-B150-4DD7-86B0-3981A128CDA1}.Release|Any CPU.Build.0 = Release|Any CPU + {64441DE6-F486-411A-B965-F12785171B38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64441DE6-F486-411A-B965-F12785171B38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64441DE6-F486-411A-B965-F12785171B38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64441DE6-F486-411A-B965-F12785171B38}.Release|Any CPU.Build.0 = Release|Any CPU + {8B8DF798-5C25-454A-9CE5-D2170BB91CA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B8DF798-5C25-454A-9CE5-D2170BB91CA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B8DF798-5C25-454A-9CE5-D2170BB91CA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B8DF798-5C25-454A-9CE5-D2170BB91CA1}.Release|Any CPU.Build.0 = Release|Any CPU + {F8E21282-5C68-4F45-B25D-015A6473EDFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8E21282-5C68-4F45-B25D-015A6473EDFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8E21282-5C68-4F45-B25D-015A6473EDFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8E21282-5C68-4F45-B25D-015A6473EDFA}.Release|Any CPU.Build.0 = Release|Any CPU + {1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C4E51A4-3349-4408-AB8F-3F0CCAAD72C6}.Release|Any CPU.Build.0 = Release|Any CPU + {AD461557-2DDB-4A3C-8433-FFB5E31A5E6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD461557-2DDB-4A3C-8433-FFB5E31A5E6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD461557-2DDB-4A3C-8433-FFB5E31A5E6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD461557-2DDB-4A3C-8433-FFB5E31A5E6F}.Release|Any CPU.Build.0 = Release|Any CPU + {91C2929B-7AB0-4B58-84B4-BB6335140557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91C2929B-7AB0-4B58-84B4-BB6335140557}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91C2929B-7AB0-4B58-84B4-BB6335140557}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91C2929B-7AB0-4B58-84B4-BB6335140557}.Release|Any CPU.Build.0 = Release|Any CPU + {8C42EA3F-0619-4541-ACC1-D667882A513D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C42EA3F-0619-4541-ACC1-D667882A513D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C42EA3F-0619-4541-ACC1-D667882A513D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C42EA3F-0619-4541-ACC1-D667882A513D}.Release|Any CPU.Build.0 = Release|Any CPU + {8C4495D3-EC0D-49FB-B49F-31F326BE3B7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C4495D3-EC0D-49FB-B49F-31F326BE3B7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C4495D3-EC0D-49FB-B49F-31F326BE3B7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C4495D3-EC0D-49FB-B49F-31F326BE3B7C}.Release|Any CPU.Build.0 = Release|Any CPU + {2ACA294D-34E5-476C-B978-DE6FA028318E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2ACA294D-34E5-476C-B978-DE6FA028318E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2ACA294D-34E5-476C-B978-DE6FA028318E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2ACA294D-34E5-476C-B978-DE6FA028318E}.Release|Any CPU.Build.0 = Release|Any CPU + {A2B94467-3E3E-4632-B76A-4820CF43EDA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2B94467-3E3E-4632-B76A-4820CF43EDA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2B94467-3E3E-4632-B76A-4820CF43EDA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2B94467-3E3E-4632-B76A-4820CF43EDA0}.Release|Any CPU.Build.0 = Release|Any CPU + {4A49FD39-51EF-42F4-AEF9-C60880FC41B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A49FD39-51EF-42F4-AEF9-C60880FC41B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A49FD39-51EF-42F4-AEF9-C60880FC41B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A49FD39-51EF-42F4-AEF9-C60880FC41B3}.Release|Any CPU.Build.0 = Release|Any CPU + {BBB6623D-BDF2-41B6-9165-A22A6C4D4159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBB6623D-BDF2-41B6-9165-A22A6C4D4159}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBB6623D-BDF2-41B6-9165-A22A6C4D4159}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBB6623D-BDF2-41B6-9165-A22A6C4D4159}.Release|Any CPU.Build.0 = Release|Any CPU + {D85F5D9C-A068-4F04-B081-0A3E20CB5D49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D85F5D9C-A068-4F04-B081-0A3E20CB5D49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D85F5D9C-A068-4F04-B081-0A3E20CB5D49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D85F5D9C-A068-4F04-B081-0A3E20CB5D49}.Release|Any CPU.Build.0 = Release|Any CPU + {742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {742BE9D1-C925-4B3D-8BCB-BF779B5B7AF7}.Release|Any CPU.Build.0 = Release|Any CPU + {8FB84342-2953-4B59-91B8-7BF3AE37172D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FB84342-2953-4B59-91B8-7BF3AE37172D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FB84342-2953-4B59-91B8-7BF3AE37172D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FB84342-2953-4B59-91B8-7BF3AE37172D}.Release|Any CPU.Build.0 = Release|Any CPU + {80A7F7CE-9235-45CD-A195-E031AB3E1EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80A7F7CE-9235-45CD-A195-E031AB3E1EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80A7F7CE-9235-45CD-A195-E031AB3E1EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80A7F7CE-9235-45CD-A195-E031AB3E1EAA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A30BBA60-647C-4565-A42F-BE60B2CA2E8E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6DC15D23-8213-4700-9815-AD8DEED1CE5F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B51913C2-478E-46AA-A523-521BD4593651} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {04C5492C-FA54-4F93-8698-44B8BB7C72E0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2CA30CA9-FADA-4AB6-81E3-EAE61EF44463} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {54B5F207-CC11-4AC3-B0D7-1E7A7E2F08DE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6DC919A7-CF8F-4CCD-A7E3-1AD9389FEC86} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1C8F67D6-1953-49D3-B716-F298883A79C6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {95C95878-A9CD-43D4-B1BB-D0DCAA54C3D7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E6DAD59F-7CB7-4E70-B4C5-FCCBC3376EDE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3F18D20D-0267-4381-857B-EEDB7B3FC549} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7EAFC2D8-48D2-4A56-A9C6-6BADF2053499} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6C6F323D-054E-4723-9DEA-1C5E1E45DF88} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {DA6A9B7F-F311-49A4-8BBE-42EF3152C37B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {507DB29F-74F5-4B34-A240-ABE7BD168DF6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E4BC1A16-AD0A-4F70-BD2E-3346A4D9BC2B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F05DE950-CA99-42A8-B44D-E7DAA5C3C783} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F011A6F5-BA48-4F8D-A20F-79CCE01CDE0E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {9EDAADA8-B658-430F-97EE-CCA494883D86} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B0F53AAA-4ABC-44B2-9331-D3802340DD20} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4050F1D1-1DD2-4B48-A17B-E3F955518C4B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4050F1D1-1DD2-4B48-A17B-E3F90DD18C4B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8CDE71C2-4DA4-4AF6-9897-CD953AE653C2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7B57D5F1-4E6C-4280-AD5B-C71C73B66B11} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D0DF902A-2486-4A38-B7A7-232B9B6590E1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B01E2AE1-1B52-4518-B32E-016070356A7F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {59B2167E-E2D6-4E7E-AFFE-4060E1F3843C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {ACF79A18-2655-452C-B4AC-10125F0AD7A8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C427CE0D-0740-41F3-9C3A-552BEA3DDB0D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {DBC272A5-C0EE-4FD3-B6F4-EF0C18DF168B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B6F8C99E-5430-4B46-8FCE-7AAAAEBA6A0C} + SolutionGuid = {80121011-1A73-45DC-80FC-B3727F3DF58C} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml index 2feabe05d6d3..95df6776ce7a 100644 --- a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml +++ b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml @@ -53,37 +53,37 @@ ILLink IL2070 member - M:System.Xml.Extensions.ExtensionMethods.GetConstructor(System.Type,System.Reflection.BindingFlags,System.Type[]) + M:System.Xml.Serialization.ReflectionAwareILGen.ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Boolean,System.Boolean) ILLink IL2070 member - M:System.Xml.Extensions.ExtensionMethods.GetMethod(System.Type,System.String,System.Reflection.BindingFlags,System.Type[]) + M:System.Xml.Serialization.ReflectionAwareILGen.ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type,System.Boolean) ILLink IL2070 member - M:System.Xml.Serialization.ReflectionAwareILGen.ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type,System.Boolean) + M:System.Xml.Serialization.ReflectionXmlSerializationHelper.GetMember(System.Type,System.String) ILLink IL2070 member - M:System.Xml.Serialization.ReflectionXmlSerializationHelper.GetMember(System.Type,System.String) + M:System.Xml.Serialization.ReflectionXmlSerializationReader.AddObjectsIntoTargetCollection(System.Object,System.Collections.Generic.List{System.Object},System.Type) ILLink IL2070 member - M:System.Xml.Serialization.ReflectionXmlSerializationReader.AddObjectsIntoTargetCollection(System.Object,System.Collections.Generic.List{System.Object},System.Type) + M:System.Xml.Serialization.ReflectionXmlSerializationReader.GetDefaultConstructor(System.Type) ILLink IL2070 member - M:System.Xml.Serialization.ReflectionXmlSerializationReader.GetDefaultConstructor(System.Type) + M:System.Xml.Serialization.SourceInfo.ConvertNullableValue(System.Type,System.Type) ILLink @@ -97,6 +97,12 @@ member M:System.Xml.Serialization.TypeExtensions.TryConvertTo(System.Type,System.Object,System.Object@) + + ILLink + IL2070 + member + M:System.Xml.Serialization.TypeScope.GetConstructorFlags(System.Type,System.Exception@) + ILLink IL2070 @@ -119,7 +125,7 @@ ILLink IL2070 member - M:System.Xml.Xsl.IlGen.XmlILConstructors.GetConstructor(System.Type) + M:System.Xml.Serialization.XmlReflectionImporter.GetMethodFromSchemaProvider(System.Xml.Serialization.XmlSchemaProviderAttribute,System.Type) ILLink @@ -131,7 +137,7 @@ ILLink IL2070 member - M:System.Xml.Xsl.IlGen.XmlILMethods.GetMethod(System.Type,System.String) + M:System.Xml.Xsl.IlGen.XmlILConstructors.GetConstructor(System.Type) ILLink @@ -143,13 +149,13 @@ ILLink IL2070 member - M:System.Xml.Xsl.Runtime.EarlyBoundInfo.#ctor(System.String,System.Type) + M:System.Xml.Xsl.IlGen.XmlILMethods.GetMethod(System.Type,System.String) ILLink IL2070 member - M:System.Xml.Xsl.Runtime.XsltMethods.GetMethod(System.Type,System.String) + M:System.Xml.Xsl.Runtime.EarlyBoundInfo.#ctor(System.String,System.Type) ILLink @@ -157,6 +163,12 @@ member M:System.Xml.Xsl.Runtime.XsltMethods.GetMethod(System.Type,System.String,System.Type[]) + + ILLink + IL2070 + member + M:System.Xml.Xsl.Runtime.XsltMethods.GetMethod(System.Type,System.String) + ILLink IL2070 @@ -205,6 +217,12 @@ member M:System.Xml.Serialization.FieldModel.#ctor(System.Reflection.MemberInfo,System.Type,System.Xml.Serialization.TypeDesc) + + ILLink + IL2075 + member + M:System.Xml.Serialization.ReflectionAwareILGen.ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type,System.Boolean) + ILLink IL2075 @@ -235,6 +253,12 @@ member T:System.Xml.Serialization.ReflectionXmlSerializationReader + + ILLink + IL2075 + member + M:System.Xml.Serialization.SourceInfo.InternalLoad(System.Type,System.Boolean) + ILLink IL2075 @@ -253,6 +277,42 @@ member M:System.Xml.Serialization.XmlReflectionImporter.GetChoiceIdentifierType(System.Xml.Serialization.XmlChoiceIdentifierAttribute,System.Xml.Serialization.StructModel,System.Boolean,System.String) + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateBaseSerializer(System.String,System.String,System.String,System.Xml.Serialization.CodeIdentifiers) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateGetSerializer(System.Collections.Generic.Dictionary{System.String,System.String},System.Xml.Serialization.XmlMapping[],System.Reflection.Emit.TypeBuilder) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateSerializerContract(System.String,System.Xml.Serialization.XmlMapping[],System.Type[],System.String,System.String[],System.String,System.String[],System.Collections.Generic.Dictionary{System.String,System.String}) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateTypedSerializer(System.String,System.String,System.Xml.Serialization.XmlMapping,System.Xml.Serialization.CodeIdentifiers,System.String,System.String,System.String) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateTypedSerializers(System.Collections.Generic.Dictionary{System.String,System.String},System.Reflection.Emit.TypeBuilder) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationReaderILGen.WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen.Member[],System.Xml.Serialization.XmlSerializationReaderILGen.Member,System.String,System.Reflection.Emit.LocalBuilder) + ILLink IL2075 @@ -265,6 +325,18 @@ member M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteArrayItems(System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.Xml.Serialization.TypeDesc,System.String,System.String) + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteCheckDefault(System.Xml.Serialization.SourceInfo,System.Object,System.Boolean) + + + ILLink + IL2075 + member + M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteElement(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.ElementAccessor,System.String,System.Boolean) + ILLink IL2075 @@ -289,6 +361,12 @@ member M:System.Xml.Serialization.SerializableMapping.RetrieveSerializableSchema + + ILLink + IL2080 + member + M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteText(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.TextAccessor) + ILLink IL2080 diff --git a/src/libraries/System.Private.Xml/src/Resources/Strings.resx b/src/libraries/System.Private.Xml/src/Resources/Strings.resx index 23846093ce58..f8cf992a22ae 100644 --- a/src/libraries/System.Private.Xml/src/Resources/Strings.resx +++ b/src/libraries/System.Private.Xml/src/Resources/Strings.resx @@ -3343,7 +3343,7 @@ Array of type {0} is not supported. - Type '{0}' cannot be serialized by XmlSerializer, serialization code for the type is missing. Consult the SDK documentation for adding it as a root serialization type. http://go.microsoft.com/fwlink/?LinkId=613136 + Type '{0}' cannot be serialized by XmlSerializer, serialization code for the type is missing. Consult the SDK documentation for adding it as a root serialization type. https://go.microsoft.com/fwlink/?LinkId=613136 Uppercase-First sorting option is not supported. diff --git a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj index 88eb30350cba..89f087972037 100644 --- a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +++ b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj @@ -8,7 +8,6 @@ - @@ -563,7 +562,6 @@ - diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/IDtdParserAdapterAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/IDtdParserAdapterAsync.cs index 6fab0228665c..40932548a9ae 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Core/IDtdParserAdapterAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/IDtdParserAdapterAsync.cs @@ -18,7 +18,7 @@ internal partial interface IDtdParserAdapter Task ParsePIAsync(StringBuilder? sb); Task ParseCommentAsync(StringBuilder? sb); - Task> PushEntityAsync(IDtdEntityInfo entity); + Task<(int, bool)> PushEntityAsync(IDtdEntityInfo entity); Task PushExternalSubsetAsync(string? systemId, string? publicId); } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs index 178c401897c4..646b3309d7c0 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs @@ -860,7 +860,7 @@ internal async Task DtdParserProxy_ParseCommentAsync(StringBuilder? sb) } } - internal async Task> DtdParserProxy_PushEntityAsync(IDtdEntityInfo entity) + internal async Task<(int, bool)> DtdParserProxy_PushEntityAsync(IDtdEntityInfo entity) { CheckAsyncCall(); int entityId; @@ -872,7 +872,7 @@ internal async Task DtdParserProxy_ParseCommentAsync(StringBuilder? sb) { entityId = -1; - return new Tuple(entityId, false); + return (entityId, false); } retValue = await PushExternalEntityAsync(entity).ConfigureAwait(false); } @@ -883,7 +883,7 @@ internal async Task DtdParserProxy_ParseCommentAsync(StringBuilder? sb) } entityId = _ps.entityId; - return new Tuple(entityId, retValue); + return (entityId, retValue); } // SxS: The caller did not provide any SxS sensitive name or resource. No resource is being exposed either. diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplHelpersAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplHelpersAsync.cs index 8662b036182a..e877cf316e07 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplHelpersAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplHelpersAsync.cs @@ -48,7 +48,7 @@ Task IDtdParserAdapter.ParseCommentAsync(StringBuilder? sb) return _reader.DtdParserProxy_ParseCommentAsync(sb); } - Task> IDtdParserAdapter.PushEntityAsync(IDtdEntityInfo entity) + Task<(int, bool)> IDtdParserAdapter.PushEntityAsync(IDtdEntityInfo entity) { return _reader.DtdParserProxy_PushEntityAsync(entity); } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XsdValidatingReaderAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XsdValidatingReaderAsync.cs index c7ef1391024f..daa599cecf44 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XsdValidatingReaderAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XsdValidatingReaderAsync.cs @@ -682,9 +682,8 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu return content.Item2; } - private async Task> InternalReadContentAsObjectTupleAsync(bool unwrapTypedValue) + private async Task<(string, object)> InternalReadContentAsObjectTupleAsync(bool unwrapTypedValue) { - Tuple tuple; string originalStringValue; XmlNodeType nodeType = this.NodeType; @@ -699,14 +698,12 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu originalStringValue = (schemaAttr.DefaultValue != null) ? schemaAttr.DefaultValue : schemaAttr.FixedValue!; } - tuple = new Tuple(originalStringValue, ReturnBoxedValue(_attributePSVI.typedAttributeValue, AttributeSchemaInfo.XmlType!, unwrapTypedValue)); - return tuple; + return (originalStringValue, ReturnBoxedValue(_attributePSVI.typedAttributeValue, AttributeSchemaInfo.XmlType!, unwrapTypedValue)); } else { // return string value - tuple = new Tuple(originalStringValue, this.Value); - return tuple; + return (originalStringValue, this.Value); } } else if (nodeType == XmlNodeType.EndElement) @@ -716,15 +713,13 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu Debug.Assert(_originalAtomicValueString != null); originalStringValue = _originalAtomicValueString; - tuple = new Tuple(originalStringValue, _atomicValue); - return tuple; + return (originalStringValue, _atomicValue); } else { originalStringValue = string.Empty; - tuple = new Tuple(originalStringValue, string.Empty); - return tuple; + return (originalStringValue, string.Empty); } } else @@ -739,8 +734,7 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu Debug.Assert(_originalAtomicValueString != null); originalStringValue = _originalAtomicValueString; - tuple = new Tuple(originalStringValue, value); - return tuple; + return (originalStringValue, value); } else { @@ -754,25 +748,24 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu originalStringValue = await InternalReadContentAsStringAsync().ConfigureAwait(false); } - tuple = new Tuple(originalStringValue, originalStringValue); - return tuple; + return (originalStringValue, originalStringValue); } } } - private Task> InternalReadElementContentAsObjectAsync() + private Task<(XmlSchemaType, object)> InternalReadElementContentAsObjectAsync() { return InternalReadElementContentAsObjectAsync(false); } - private async Task> InternalReadElementContentAsObjectAsync(bool unwrapTypedValue) + private async Task<(XmlSchemaType, object)> InternalReadElementContentAsObjectAsync(bool unwrapTypedValue) { var content = await InternalReadElementContentAsObjectTupleAsync(unwrapTypedValue).ConfigureAwait(false); - return new Tuple(content.Item1, content.Item3); + return (content.Item1, content.Item3); } - private async Task> InternalReadElementContentAsObjectTupleAsync(bool unwrapTypedValue) + private async Task<(XmlSchemaType, string, object)> InternalReadElementContentAsObjectTupleAsync(bool unwrapTypedValue) { XmlSchemaType? xmlType = null; string originalString; @@ -796,7 +789,7 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu xmlType = ElementXmlType; // Set this for default values await this.ReadAsync().ConfigureAwait(false); - return new Tuple(xmlType!, originalString, typedValue); + return (xmlType!, originalString, typedValue); } // move to content and read typed value @@ -851,7 +844,7 @@ private async Task InternalReadContentAsObjectAsync(bool unwrapTypedValu // move to next node await this.ReadAsync().ConfigureAwait(false); - return new Tuple(xmlType!, originalString, typedValue); + return (xmlType!, originalString, typedValue); } private async Task ReadTillEndElementAsync() diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Extensions/ExtensionMethods.cs b/src/libraries/System.Private.Xml/src/System/Xml/Extensions/ExtensionMethods.cs index d91034169fea..f2d955a6ef19 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Extensions/ExtensionMethods.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Extensions/ExtensionMethods.cs @@ -8,20 +8,6 @@ namespace System.Xml.Extensions { internal static class ExtensionMethods { - #region Contract compliance for System.Type - - internal static ConstructorInfo? GetConstructor(this Type type, BindingFlags bindingFlags, Type[] parameterTypes) - { - return type.GetConstructor(bindingFlags, null, parameterTypes, null); - } - - internal static MethodInfo? GetMethod(this Type type, string methodName, BindingFlags bindingFlags, Type[] parameterTypes) - { - return type.GetMethod(methodName, bindingFlags, null, parameterTypes, null); - } - - #endregion - internal static Uri ToUri(string s) { if (s != null && s.Length > 0) diff --git a/src/libraries/System.Private.Xml/src/System/Xml/NameTable.cs b/src/libraries/System.Private.Xml/src/System/Xml/NameTable.cs index 14575914d1f2..a4fc696917b2 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/NameTable.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/NameTable.cs @@ -195,8 +195,11 @@ internal string GetOrAddEntry(string str, int hashCode) internal static int ComputeHash32(string key) { - ReadOnlySpan bytes = MemoryMarshal.AsBytes(key.AsSpan()); - return Marvin.ComputeHash32(bytes, Marvin.DefaultSeed); + // We rely on string.GetHashCode(ROS) being randomized. + // n.b. not calling string.GetHashCode() because we want hash code computation to match + // char[]-based overload later in this file, so we normalize everything to ROS. + + return string.GetHashCode(key.AsSpan()); } // @@ -261,8 +264,9 @@ private static bool TextEquals(string str1, char[] str2, int str2Start, int str2 private static int ComputeHash32(char[] key, int start, int len) { - ReadOnlySpan bytes = MemoryMarshal.AsBytes(new ReadOnlySpan(key, start, len)); - return Marvin.ComputeHash32(bytes, Marvin.DefaultSeed); + // We rely on string.GetHashCode(ROS) being randomized. + + return string.GetHashCode(key.AsSpan(start, len)); } } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs index 56ef6f58a50b..01d09c0ea70b 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs @@ -1095,9 +1095,8 @@ private async Task ParseCondSectionAsync() } } - private async Task> ParseExternalIdAsync(Token idTokenType, Token declType) + private async Task<(string?, string?)> ParseExternalIdAsync(Token idTokenType, Token declType) { - Tuple tuple; string? publicId; string? systemId; @@ -1174,8 +1173,7 @@ private async Task ParseCondSectionAsync() } } - tuple = new Tuple(publicId, systemId); - return tuple; + return (publicId, systemId); } // // Scanning methods - works directly with parsing buffer diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs index 2ae83d3c2022..f7ded1c2176c 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs @@ -38,7 +38,7 @@ internal class CodeGenerator private LocalScope? _currentScope; // Stores a queue of free locals available in the context of the method, keyed by // type and name of the local - private Dictionary, Queue>? _freeLocals; + private Dictionary<(Type, string), Queue>? _freeLocals; private Stack? _blockStack; private Label _methodEndLabel; @@ -90,7 +90,7 @@ private void InitILGeneration(Type[] argTypes, string[] argNames, bool isStatic) _blockStack = new Stack(); _whileStack = new Stack(); _currentScope = new LocalScope(); - _freeLocals = new Dictionary, Queue>(); + _freeLocals = new Dictionary<(Type, string), Queue>(); _argList = new Dictionary(); // this ptr is arg 0 for non static, assuming ref type (not value type) if (!isStatic) @@ -229,7 +229,7 @@ private bool TryDequeueLocal(Type type, string name, [NotNullWhen(true)] out Loc Debug.Assert(_freeLocals != null); Queue? freeLocalQueue; - Tuple key = new Tuple(type, name); + (Type, string) key = (type, name); if (_freeLocals.TryGetValue(key, out freeLocalQueue)) { local = freeLocalQueue.Dequeue(); @@ -309,7 +309,7 @@ internal void EndFor() MethodInfo ICollection_get_Count = typeof(ICollection).GetMethod( "get_Count", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Call(ICollection_get_Count); } @@ -1553,11 +1553,11 @@ public bool TryGetValue(string key, [NotNullWhen(true)] out LocalBuilder? value) } } - public void AddToFreeLocals(Dictionary, Queue> freeLocals) + public void AddToFreeLocals(Dictionary<(Type, string), Queue> freeLocals) { foreach (var item in _locals) { - Tuple key = new Tuple(item.Value.LocalType, item.Key); + (Type, string) key = (item.Value.LocalType, item.Key); Queue? freeLocalQueue; if (freeLocals.TryGetValue(key, out freeLocalQueue)) { diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeIdentifier.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeIdentifier.cs index edfddffb6b78..89afc4d625d1 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeIdentifier.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeIdentifier.cs @@ -234,7 +234,7 @@ internal static string GetCSharpName(Type t) } } - Type[] arguments = t.IsGenericType || t.ContainsGenericParameters ? t.GetGenericArguments() : Array.Empty(); + Type[] arguments = t.IsGenericType || t.ContainsGenericParameters ? t.GetGenericArguments() : Type.EmptyTypes; GetCSharpName(t, arguments, 0, sb); for (int i = 0; i < rank; i++) { diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Compiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Compiler.cs index 3892522ed51e..890628ad68af 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Compiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Compiler.cs @@ -1,25 +1,15 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Reflection; +using System.Collections; +using System.IO; +using System.Diagnostics; +using System.Globalization; +using System.Runtime.CompilerServices; + namespace System.Xml.Serialization { - using System.Reflection; - using System.Reflection.Emit; - using System.Collections; - using System.IO; - using System; - using System.Text; - using System.ComponentModel; - using System.Security; - using System.Diagnostics; - using System.Threading; - using System.Xml.Serialization.Configuration; - using System.Globalization; - using System.Runtime.Versioning; - using System.Runtime.CompilerServices; - using System.Collections.Generic; - using System.Linq; - internal class Compiler { private readonly StringWriter _writer = new StringWriter(CultureInfo.InvariantCulture); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Models.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Models.cs index d8ecf30322ff..2e84e276bfc0 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Models.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Models.cs @@ -280,7 +280,7 @@ internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDes _fieldType = fieldType; _fieldTypeDesc = fieldTypeDesc; _memberInfo = memberInfo; - _checkShouldPersistMethodInfo = memberInfo.DeclaringType!.GetMethod("ShouldSerialize" + memberInfo.Name, Array.Empty()); + _checkShouldPersistMethodInfo = memberInfo.DeclaringType!.GetMethod("ShouldSerialize" + memberInfo.Name, Type.EmptyTypes); _checkShouldPersist = _checkShouldPersistMethodInfo != null; FieldInfo? specifiedField = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs index 92344354915f..dfc4e0a3fc6f 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs @@ -603,13 +603,13 @@ private static void AddObjectsIntoTargetCollection(object targetCollection, List } } - private static readonly ConcurrentDictionary, ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate> s_setMemberValueDelegateCache = new ConcurrentDictionary, ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate>(); + private static readonly ConcurrentDictionary<(Type, string), ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate> s_setMemberValueDelegateCache = new ConcurrentDictionary<(Type, string), ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate>(); private static ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate GetSetMemberValueDelegate(object o, string memberName) { Debug.Assert(o != null, "Object o should not be null"); Debug.Assert(!string.IsNullOrEmpty(memberName), "memberName must have a value"); - var typeMemberNameTuple = Tuple.Create(o.GetType(), memberName); + (Type, string) typeMemberNameTuple = (o.GetType(), memberName); if (!s_setMemberValueDelegateCache.TryGetValue(typeMemberNameTuple, out ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate? result)) { MemberInfo memberInfo = ReflectionXmlSerializationHelper.GetMember(o.GetType(), memberName); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationWriter.cs index 1bbf66d2ba94..96fbd5a7ad3b 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationWriter.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationWriter.cs @@ -1,16 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; -using System.Linq; using System.Reflection; using System.Text; -using System.Threading.Tasks; using System.Xml.Schema; -using System.Xml; namespace System.Xml.Serialization { diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SoapAttributes.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SoapAttributes.cs index 8f7faee01d1c..b3c9409becd0 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SoapAttributes.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SoapAttributes.cs @@ -1,14 +1,11 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Reflection; +using System.ComponentModel; + namespace System.Xml.Serialization { - using System; - using System.Reflection; - using System.Collections; - using System.ComponentModel; - using System.Linq; - internal enum SoapAttributeFlags { Enum = 0x1, diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SourceInfo.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SourceInfo.cs index 7b70029ddcbe..d299f299f6cb 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SourceInfo.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/SourceInfo.cs @@ -216,7 +216,7 @@ private void ConvertNullableValue(Type nullableType, Type targetType) MethodInfo Nullable_get_Value = nullableType.GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ILG.Call(Nullable_get_Value); if (targetType != null) diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Types.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Types.cs index db191768f82b..d9c83f45719a 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Types.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/Types.cs @@ -1216,7 +1216,7 @@ private static bool ShouldBeReplaced(MemberInfo memberInfoToBeReplaced, Type der private static TypeFlags GetConstructorFlags(Type type, ref Exception? exception) { - ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic, Array.Empty()); + ConstructorInfo? ctor = type.GetConstructor(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic, Type.EmptyTypes); if (ctor != null) { TypeFlags flags = TypeFlags.HasDefaultConstructor; @@ -1243,7 +1243,7 @@ private static TypeFlags GetConstructorFlags(Type type, ref Exception? exception { if (typeof(IEnumerable).IsAssignableFrom(type)) { - MethodInfo? enumerator = type.GetMethod("GetEnumerator", Array.Empty()); + MethodInfo? enumerator = type.GetMethod("GetEnumerator", Type.EmptyTypes); if (enumerator == null || !typeof(IEnumerator).IsAssignableFrom(enumerator.ReturnType)) { @@ -1267,7 +1267,7 @@ private static TypeFlags GetConstructorFlags(Type type, ref Exception? exception { // and finally private interface implementation flags |= TypeFlags.UsePrivateImplementation; - enumerator = type.GetMethod("System.Collections.IEnumerable.GetEnumerator", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic, Array.Empty()); + enumerator = type.GetMethod("System.Collections.IEnumerable.GetEnumerator", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic, Type.EmptyTypes); } } if (enumerator == null || !typeof(IEnumerator).IsAssignableFrom(enumerator.ReturnType)) diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlAttributes.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlAttributes.cs index f8fbd5e4e246..06c999cc2b86 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlAttributes.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlAttributes.cs @@ -1,16 +1,11 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Reflection; +using System.ComponentModel; + namespace System.Xml.Serialization { - using System; - using System.Reflection; - using System.Collections; - using System.ComponentModel; - using System.Linq; - using System.Collections.Generic; - using System.Xml.Serialization; - internal enum XmlAttributeFlags { Enum = 0x1, diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationEventSource.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationEventSource.cs index 605cc23c4d17..d9fe51c55625 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationEventSource.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationEventSource.cs @@ -1,11 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Diagnostics.Tracing; namespace System.Xml.Serialization diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationILGen.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationILGen.cs index 933a04563bd9..6ff443ee3c6f 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationILGen.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationILGen.cs @@ -165,7 +165,7 @@ internal FieldBuilder GenerateHashtableGetBegin(string privateName, string publi ilg.BeginMethod( typeof(Hashtable), "get_" + publicName, - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicOverrideMethodAttributes | MethodAttributes.SpecialName); propertyBuilder.SetGetMethod(ilg.MethodBuilder!); @@ -178,7 +178,7 @@ internal FieldBuilder GenerateHashtableGetBegin(string privateName, string publi ConstructorInfo Hashtable_ctor = typeof(Hashtable).GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; LocalBuilder _tmpLoc = ilg.DeclareLocal(typeof(Hashtable), "_tmp"); ilg.New(Hashtable_ctor); @@ -278,16 +278,16 @@ internal string GenerateBaseSerializer(string baseSerializer, string readerClass CodeIdentifier.GetCSharpName(baseSerializer), TypeAttributes.Public | TypeAttributes.Abstract | TypeAttributes.BeforeFieldInit, typeof(XmlSerializer), - Array.Empty()); + Type.EmptyTypes); ConstructorInfo readerCtor = CreatedTypes[readerClass].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg = new CodeGenerator(baseSerializerTypeBuilder); ilg.BeginMethod(typeof(XmlSerializationReader), "CreateReader", - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.ProtectedOverrideMethodAttributes); ilg.New(readerCtor); @@ -295,11 +295,11 @@ internal string GenerateBaseSerializer(string baseSerializer, string readerClass ConstructorInfo writerCtor = CreatedTypes[writerClass].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.BeginMethod(typeof(XmlSerializationWriter), "CreateWriter", - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.ProtectedOverrideMethodAttributes); ilg.New(writerCtor); @@ -323,7 +323,7 @@ internal string GenerateTypedSerializer(string readMethod, string writeMethod, X CodeIdentifier.GetCSharpName(serializerName), TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.BeforeFieldInit, CreatedTypes[baseSerializer], - Array.Empty() + Type.EmptyTypes ); ilg = new CodeGenerator(typedSerializerTypeBuilder); @@ -395,7 +395,7 @@ internal string GenerateTypedSerializer(string readMethod, string writeMethod, X MethodInfo readerType_readMethod = CreatedTypes[readerClass].GetMethod( readMethod, CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg("reader"); ilg.Castclass(CreatedTypes[readerClass]); @@ -423,7 +423,7 @@ private FieldBuilder GenerateTypedSerializers(Dictionary seriali { ConstructorInfo ctor = CreatedTypes[(string)serializers[key]].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg!.Ldloc(typeof(Hashtable), "_tmp"); ilg.Ldstr(GetCSharpString(key)); @@ -463,7 +463,7 @@ private void GenerateGetSerializer(Dictionary serializers, XmlMa { ConstructorInfo ctor = CreatedTypes[(string)serializers[xmlMappings[i].Key!]].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.New(ctor); ilg.Stloc(ilg.ReturnLocal); @@ -487,7 +487,7 @@ internal void GenerateSerializerContract(string className, XmlMapping[] xmlMappi "XmlSerializerContract", TypeAttributes.Public | TypeAttributes.BeforeFieldInit, typeof(XmlSerializerImplementation), - Array.Empty() + Type.EmptyTypes ); ilg = new CodeGenerator(serializerContractTypeBuilder); @@ -499,13 +499,13 @@ internal void GenerateSerializerContract(string className, XmlMapping[] xmlMappi ilg.BeginMethod( typeof(XmlSerializationReader), "get_Reader", - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicOverrideMethodAttributes | MethodAttributes.SpecialName); propertyBuilder.SetGetMethod(ilg.MethodBuilder!); ConstructorInfo ctor = CreatedTypes[readerType].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.New(ctor); ilg.EndMethod(); @@ -519,13 +519,13 @@ internal void GenerateSerializerContract(string className, XmlMapping[] xmlMappi ilg.BeginMethod( typeof(XmlSerializationWriter), "get_Writer", - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicOverrideMethodAttributes | MethodAttributes.SpecialName); propertyBuilder.SetGetMethod(ilg.MethodBuilder!); ctor = CreatedTypes[writerType].GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.New(ctor); ilg.EndMethod(); @@ -539,13 +539,13 @@ internal void GenerateSerializerContract(string className, XmlMapping[] xmlMappi // Default ctor ConstructorInfo baseCtor = typeof(XmlSerializerImplementation).GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg = new CodeGenerator(serializerContractTypeBuilder); ilg.BeginMethod( typeof(void), ".ctor", - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicMethodAttributes | MethodAttributes.RTSpecialName | MethodAttributes.SpecialName ); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationReaderILGen.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationReaderILGen.cs index 31c149ad8c5d..5e9de6e59784 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationReaderILGen.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationReaderILGen.cs @@ -193,7 +193,7 @@ internal void GenerateBegin() ClassName, TypeAttributes | TypeAttributes.BeforeFieldInit, typeof(XmlSerializationReader), - Array.Empty()); + Type.EmptyTypes); foreach (TypeScope scope in Scopes) { foreach (TypeMapping mapping in scope.TypeMappings) @@ -230,17 +230,17 @@ internal void GenerateEnd(string[] methods, XmlMapping[] xmlMappings, Type[] typ GenerateInitCallbacksMethod(); ilg = new CodeGenerator(this.typeBuilder); - ilg.BeginMethod(typeof(void), "InitIDs", Array.Empty(), Array.Empty(), + ilg.BeginMethod(typeof(void), "InitIDs", Type.EmptyTypes, Array.Empty(), CodeGenerator.ProtectedOverrideMethodAttributes); MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_NameTable = typeof(XmlReader).GetMethod( "get_NameTable", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlNameTable_Add = typeof(XmlNameTable).GetMethod( "Add", @@ -287,7 +287,7 @@ private void WriteIsStartTag(string? name, string? ns) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_IsStartElement = typeof(XmlReader).GetMethod( "IsStartElement", @@ -345,7 +345,7 @@ private void WriteUnknownNode(string func, string node, ElementAccessor? e, bool private void GenerateInitCallbacksMethod() { ilg = new CodeGenerator(this.typeBuilder); - ilg.BeginMethod(typeof(void), "InitCallbacks", Array.Empty(), Array.Empty(), + ilg.BeginMethod(typeof(void), "InitCallbacks", Type.EmptyTypes, Array.Empty(), CodeGenerator.ProtectedOverrideMethodAttributes); ilg.EndMethod(); } @@ -394,7 +394,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping ilg.BeginMethod( typeof(object[]), methodName, - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicMethodAttributes ); @@ -403,12 +403,12 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_MoveToContent = typeof(XmlReader).GetMethod( "MoveToContent", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -523,7 +523,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlReader_MoveToElement = typeof(XmlReader).GetMethod( "MoveToElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -538,7 +538,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlReader_get_IsEmptyElement = typeof(XmlReader).GetMethod( "get_IsEmptyElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -548,7 +548,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -563,7 +563,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlReader_ReadStartElement = typeof(XmlReader).GetMethod( "ReadStartElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -592,7 +592,7 @@ private string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping MethodInfo XmlSerializationReader_ReadEndElement = typeof(XmlSerializationReader).GetMethod( "ReadEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadEndElement); @@ -637,7 +637,7 @@ private string GenerateTypeElement(XmlTypeMapping xmlTypeMapping) ilg.BeginMethod( typeof(object), methodName, - Array.Empty(), + Type.EmptyTypes, Array.Empty(), CodeGenerator.PublicMethodAttributes ); @@ -652,12 +652,12 @@ private string GenerateTypeElement(XmlTypeMapping xmlTypeMapping) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_MoveToContent = typeof(XmlReader).GetMethod( "MoveToContent", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -705,12 +705,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadXXXString = typeof(XmlReader).GetMethod( source == "Reader.ReadElementString()" ? "ReadElementContentAsString" : "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -721,12 +721,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_Value = typeof(XmlReader).GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -755,12 +755,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadXXXString = typeof(XmlReader).GetMethod( source == "Reader.ReadElementString()" ? "ReadElementContentAsString" : "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -771,12 +771,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_Value = typeof(XmlReader).GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -820,12 +820,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_method = typeof(XmlReader).GetMethod( source == "Reader.Value" ? "get_Value" : "ReadElementContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; if (mapping.TypeDesc.CollapseWhitespace) ilg.Ldarg(0); @@ -878,12 +878,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadXXXString = typeof(XmlReader).GetMethod( source == "Reader.ReadElementString()" ? "ReadElementContentAsString" : "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -894,12 +894,12 @@ private void WritePrimitive(TypeMapping mapping, string source) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_Value = typeof(XmlReader).GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -970,7 +970,7 @@ private string WriteHashtable(EnumMapping mapping, string typeName, out MethodBu ilg.BeginMethod( typeof(Hashtable), "get_" + propName, - Array.Empty(), + Type.EmptyTypes, Array.Empty(), MethodAttributes.Assembly | MethodAttributes.HideBySig | MethodAttributes.SpecialName); @@ -981,7 +981,7 @@ private string WriteHashtable(EnumMapping mapping, string typeName, out MethodBu ConstructorInfo Hashtable_ctor = typeof(Hashtable).GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; LocalBuilder hLoc = ilg.DeclareLocal(typeof(Hashtable), "h"); ilg.New(Hashtable_ctor); @@ -1190,12 +1190,12 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadStartElement = typeof(XmlReader).GetMethod( "ReadStartElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1220,7 +1220,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlReader_ReadString = typeof(XmlReader).GetMethod( "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Ldarg(0); @@ -1234,7 +1234,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlSerializationReader_ReadEndElement = typeof(XmlSerializationReader).GetMethod( "ReadEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadEndElement); @@ -1300,7 +1300,7 @@ private void WriteNullableMethod(NullableMapping nullableMapping) MethodInfo XmlSerializationReader_ReadNull = typeof(XmlSerializationReader).GetMethod( "ReadNull", CodeGenerator.InstanceBindingFlags, - Array.Empty())!; + Type.EmptyTypes)!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadNull); ilg.If(); @@ -1358,12 +1358,12 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlSerializationReader_GetXsiType = typeof(XmlSerializationReader).GetMethod( "GetXsiType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlSerializationReader_ReadNull = typeof(XmlSerializationReader).GetMethod( "ReadNull", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Label labelTrue = ilg.DefineLabel(); Label labelEnd = ilg.DefineLabel(); @@ -1622,12 +1622,12 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_MoveToElement = typeof(XmlReader).GetMethod( "MoveToElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1637,7 +1637,7 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlReader_get_IsEmptyElement = typeof(XmlReader).GetMethod( "get_IsEmptyElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1646,7 +1646,7 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1660,7 +1660,7 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlReader_ReadStartElement = typeof(XmlReader).GetMethod( "ReadStartElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1676,7 +1676,7 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlReader_MoveToContent = typeof(XmlReader).GetMethod( "MoveToContent", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -1689,7 +1689,7 @@ private void WriteLiteralStructMethod(StructMapping structMapping) MethodInfo XmlSerializationReader_ReadEndElement = typeof(XmlSerializationReader).GetMethod( "ReadEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadEndElement); @@ -1710,12 +1710,12 @@ private void WriteQNameEqual(string source, string? name, string? ns) MethodInfo XmlQualifiedName_get_Name = typeof(XmlQualifiedName).GetMethod( "get_Name", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlQualifiedName_get_Namespace = typeof(XmlQualifiedName).GetMethod( "get_Namespace", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Label labelEnd = ilg.DefineLabel(); Label labelFalse = ilg.DefineLabel(); @@ -1753,17 +1753,17 @@ private void WriteXmlNodeEqual(string source, string name, string? ns, bool doAn MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_" + source, CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_LocalName = typeof(XmlReader).GetMethod( "get_LocalName", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_NamespaceURI = typeof(XmlReader).GetMethod( "get_NamespaceURI", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Label labelFalse = ilg.DefineLabel(); @@ -1824,12 +1824,12 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_MoveToNextAttribute = typeof(XmlReader).GetMethod( "MoveToNextAttribute", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.WhileBegin(); @@ -1888,17 +1888,17 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else MethodInfo XmlReader_get_Name = typeof(XmlReader).GetMethod( "get_Name", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_LocalName = typeof(XmlReader).GetMethod( "get_LocalName", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_Value = typeof(XmlReader).GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Ldarg(0); @@ -1914,7 +1914,7 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else WriteSourceBegin(xmlnsMember.Source); ConstructorInfo ctor = xmlnsMember.Mapping.TypeDesc!.Type!.GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.New(ctor); WriteSourceEnd(xmlnsMember.Source, xmlnsMember.Mapping.TypeDesc.Type!); @@ -1930,7 +1930,7 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else MethodInfo String_get_Length = typeof(string).GetMethod( "get_Length", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ILGenLoad(xmlnsMember.ArraySource, xmlnsMember.Mapping.TypeDesc.Type); ilg.Ldarg(0); @@ -1963,7 +1963,7 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else MethodInfo XmlReader_get_Name = typeof(XmlReader).GetMethod( "get_Name", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Ldarg(0); @@ -1979,7 +1979,7 @@ private void WriteAttributes(Member[] members, Member? anyAttribute, string else MethodInfo XmlSerializationReader_get_Document = typeof(XmlSerializationReader).GetMethod( "get_Document", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlDocument_ReadNode = typeof(XmlDocument).GetMethod( "ReadNode", @@ -2094,12 +2094,12 @@ private void WriteAttribute(Member member) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_Value = typeof(XmlReader).GetMethod( "get_Value", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2253,12 +2253,12 @@ private void WriteMemberElements(Member[] members, string elementElseString, str MethodInfo XmlReader_get_NodeType = typeof(XmlReader).GetMethod( "get_NodeType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; int XmlNodeType_Element = 1; ilg.Ldarg(0); @@ -2285,12 +2285,12 @@ private void WriteMemberText(Member anyText, string elseString) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_NodeType = typeof(XmlReader).GetMethod( "get_NodeType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2342,17 +2342,17 @@ private void WriteText(Member member) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadString = typeof(XmlReader).GetMethod( "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlSerializationReader_get_Document = typeof(XmlSerializationReader).GetMethod( "get_Document", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlDocument_CreateTextNode = typeof(XmlDocument).GetMethod( "CreateTextNode", @@ -2386,12 +2386,12 @@ private void WriteText(Member member) MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_ReadString = typeof(XmlReader).GetMethod( "ReadContentAsString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2526,7 +2526,7 @@ private void WriteMemberElementsIf(Member[] members, Member? anyElement, string MethodInfo XmlSerializationReader_get_IsReturnValue = typeof(XmlSerializationReader).GetMethod( "get_IsReturnValue", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_IsReturnValue); @@ -2869,7 +2869,7 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlSerializationReader_ReadNull = typeof(XmlSerializationReader).GetMethod( "ReadNull", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadNull); @@ -2904,12 +2904,12 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_IsEmptyElement = typeof(XmlReader).GetMethod( "get_IsEmptyElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2925,7 +2925,7 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2935,7 +2935,7 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlReader_ReadStartElement = typeof(XmlReader).GetMethod( "ReadStartElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2947,7 +2947,7 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlReader_MoveToContent = typeof(XmlReader).GetMethod( "MoveToContent", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -2958,7 +2958,7 @@ private void WriteArray(string source, string? arrayName, ArrayMapping arrayMapp MethodInfo XmlSerializationReader_ReadEndElement = typeof(XmlSerializationReader).GetMethod( "ReadEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadEndElement); @@ -3015,7 +3015,7 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_ReadNull = typeof(XmlSerializationReader).GetMethod( "ReadNull", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadNull); @@ -3038,12 +3038,12 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_IsEmptyElement = typeof(XmlReader).GetMethod( "get_IsEmptyElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -3052,7 +3052,7 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -3069,12 +3069,12 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_IsEmptyElement = typeof(XmlReader).GetMethod( "get_IsEmptyElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -3084,7 +3084,7 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -3112,7 +3112,7 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_ReadElementQualifiedName = typeof(XmlSerializationReader).GetMethod( "ReadElementQualifiedName", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_ReadElementQualifiedName); @@ -3153,12 +3153,12 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_Skip = typeof(XmlReader).GetMethod( "Skip", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldloc(arrayName!); ilg.Load(null); @@ -3219,7 +3219,7 @@ private void WriteElement(string source, string? arrayName, string? choiceSource MethodInfo XmlSerializationReader_GetXsiType = typeof(XmlSerializationReader).GetMethod( "GetXsiType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Label labelTrue = ilg.DefineLabel(); Label labelEnd = ilg.DefineLabel(); @@ -3372,12 +3372,12 @@ private void WriteWhileNotLoopStart() MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_MoveToContent = typeof(XmlReader).GetMethod( "MoveToContent", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_get_Reader); @@ -3397,12 +3397,12 @@ private void WriteWhileLoopEnd() MethodInfo XmlSerializationReader_get_Reader = typeof(XmlSerializationReader).GetMethod( "get_Reader", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlReader_get_NodeType = typeof(XmlReader).GetMethod( "get_NodeType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; Label labelFalse = ilg.DefineLabel(); Label labelEnd = ilg.DefineLabel(); @@ -3586,7 +3586,7 @@ private void ILGenElementElseString(string elementElseString) MethodInfo XmlSerializationReader_CreateUnknownNodeException = typeof(XmlSerializationReader).GetMethod( "CreateUnknownNodeException", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationReader_CreateUnknownNodeException); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriterILGen.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriterILGen.cs index abf082b98b8e..48c39db732c4 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriterILGen.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriterILGen.cs @@ -29,7 +29,7 @@ internal void GenerateBegin() ClassName, TypeAttributes | TypeAttributes.BeforeFieldInit, typeof(XmlSerializationWriter), - Array.Empty()); + Type.EmptyTypes); foreach (TypeScope scope in Scopes) { @@ -84,7 +84,7 @@ internal Type GenerateEnd() private void GenerateInitCallbacksMethod() { ilg = new CodeGenerator(this.typeBuilder); - ilg.BeginMethod(typeof(void), "InitCallbacks", Array.Empty(), Array.Empty(), + ilg.BeginMethod(typeof(void), "InitCallbacks", Type.EmptyTypes, Array.Empty(), CodeGenerator.ProtectedOverrideMethodAttributes); ilg.EndMethod(); } @@ -315,7 +315,7 @@ private void WriteEndElement() MethodInfo XmlSerializationWriter_WriteEndElement = typeof(XmlSerializationWriter).GetMethod( "WriteEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_WriteEndElement); @@ -363,7 +363,7 @@ private string GenerateMembersElement(XmlMembersMapping xmlMembersMapping) MethodInfo XmlSerializationWriter_WriteStartDocument = typeof(XmlSerializationWriter).GetMethod( "WriteStartDocument", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_WriteStartDocument); @@ -371,7 +371,7 @@ private string GenerateMembersElement(XmlMembersMapping xmlMembersMapping) MethodInfo XmlSerializationWriter_TopLevelElement = typeof(XmlSerializationWriter).GetMethod( "TopLevelElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_TopLevelElement); @@ -554,7 +554,7 @@ private string GenerateTypeElement(XmlTypeMapping xmlTypeMapping) MethodInfo XmlSerializationWriter_WriteStartDocument = typeof(XmlSerializationWriter).GetMethod( "WriteStartDocument", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_WriteStartDocument); @@ -574,7 +574,7 @@ private string GenerateTypeElement(XmlTypeMapping xmlTypeMapping) MethodInfo XmlSerializationWriter_TopLevelElement = typeof(XmlSerializationWriter).GetMethod( "TopLevelElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_TopLevelElement); @@ -698,7 +698,7 @@ private void WriteEnumMethod(EnumMapping mapping) MethodInfo CultureInfo_get_InvariantCulture = typeof(CultureInfo).GetMethod( "get_InvariantCulture", CodeGenerator.StaticBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo Int64_ToString = typeof(long).GetMethod( "ToString", @@ -799,7 +799,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlWriter_WriteStartElement = typeof(XmlWriter).GetMethod( "WriteStartElement", @@ -842,7 +842,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlWriter_WriteEndElement = typeof(XmlWriter).GetMethod( "WriteEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_get_Writer); @@ -865,7 +865,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlWriter_WriteStartElement = typeof(XmlWriter).GetMethod( "WriteStartElement", @@ -892,7 +892,7 @@ private void WriteEnumAndArrayTypes() MethodInfo XmlWriter_WriteEndElement = typeof(XmlWriter).GetMethod( "WriteEndElement", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_get_Writer); @@ -957,7 +957,7 @@ private void WriteStructMethod(StructMapping mapping) MethodInfo Object_GetType = typeof(object).GetMethod( "GetType", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ArgBuilder oArg = ilg.GetArg("o"); ilg.LdargAddress(oArg); @@ -1171,7 +1171,7 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlWriter_WriteStartAttribute = typeof(XmlWriter).GetMethod( "WriteStartAttribute", @@ -1190,7 +1190,7 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes LocalBuilder sbLoc = ilg.DeclareOrGetLocal(typeof(StringBuilder), "sb"); ConstructorInfo StringBuilder_ctor = typeof(StringBuilder).GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.New(StringBuilder_ctor); ilg.Stloc(sbLoc); @@ -1222,7 +1222,7 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlWriter_WriteString = typeof(XmlWriter).GetMethod( "WriteString", @@ -1286,12 +1286,12 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlWriter_WriteEndAttribute = typeof(XmlWriter).GetMethod( "WriteEndAttribute", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldarg(0); ilg.Call(XmlSerializationWriter_get_Writer); @@ -1302,7 +1302,7 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes MethodInfo StringBuilder_get_Length = typeof(StringBuilder).GetMethod( "get_Length", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldloc("sb"); ilg.Call(StringBuilder_get_Length); @@ -1322,7 +1322,7 @@ private void WriteMember(SourceInfo source, AttributeAccessor attribute, TypeDes MethodInfo Object_ToString = typeof(object).GetMethod( "ToString", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldloc("sb"); ilg.Call(Object_ToString); @@ -1480,7 +1480,7 @@ private void WriteArrayItems(ElementAccessor[] elements, TextAccessor? text, Cho getEnumeratorMethod = typeIEnumerable.GetMethod( "GetEnumerator", CodeGenerator.InstanceBindingFlags, - Array.Empty())!; + Type.EmptyTypes)!; ilg.ConvertValue(arrayTypeDesc.Type!, typeIEnumerable); } @@ -1491,7 +1491,7 @@ private void WriteArrayItems(ElementAccessor[] elements, TextAccessor? text, Cho getEnumeratorMethod = typeIEnumerable.GetMethod( "GetEnumerator", CodeGenerator.InstanceBindingFlags, - Array.Empty())!; + Type.EmptyTypes)!; ilg.ConvertValue(arrayTypeDesc.Type!, typeIEnumerable); } @@ -1499,7 +1499,7 @@ private void WriteArrayItems(ElementAccessor[] elements, TextAccessor? text, Cho { getEnumeratorMethod = arrayTypeDesc.Type!.GetMethod( "GetEnumerator", - Array.Empty())!; + Type.EmptyTypes)!; } ilg.Call(getEnumeratorMethod); ilg.ConvertValue(getEnumeratorMethod.ReturnType, typeof(IEnumerator)); @@ -1518,7 +1518,7 @@ private void WriteArrayItems(ElementAccessor[] elements, TextAccessor? text, Cho MethodInfo IEnumerator_MoveNext = typeof(IEnumerator).GetMethod( "MoveNext", CodeGenerator.InstanceBindingFlags, - Array.Empty())!; + Type.EmptyTypes)!; ilg.Ldloc(eLoc); ilg.Call(IEnumerator_MoveNext); ilg.WhileEndCondition(); @@ -1699,12 +1699,12 @@ private void WriteElements(SourceInfo source, string? enumSource, ElementAccesso MethodInfo XmlNode_get_Name = typeof(XmlNode).GetMethod( "get_Name", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlNode_get_NamespaceURI = typeof(XmlNode).GetMethod( "get_NamespaceURI", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Ldloc(elemLoc); ilg.Call(XmlNode_get_Name); @@ -1769,12 +1769,12 @@ private void WriteElements(SourceInfo source, string? enumSource, ElementAccesso MethodInfo XmlNode_get_Name = typeof(XmlNode).GetMethod( "get_Name", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; MethodInfo XmlNode_get_NamespaceURI = typeof(XmlNode).GetMethod( "get_NamespaceURI", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; ilg.Call(XmlNode_get_Name); ilg.Ldloc(elemLoc); @@ -1870,7 +1870,7 @@ private void WriteText(SourceInfo source, TextAccessor text) MethodInfo XmlSerializationWriter_get_Writer = typeof(XmlSerializationWriter).GetMethod( "get_Writer", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; source.Load(source.Type); ilg.Ldarg(0); @@ -1894,7 +1894,7 @@ private void WriteElement(SourceInfo source, ElementAccessor element, string arr MethodInfo Nullable_get_HasValue = element.Mapping.TypeDesc.Type!.GetMethod( "get_HasValue", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; source.LoadAddress(element.Mapping.TypeDesc.Type); ilg.Call(Nullable_get_HasValue); @@ -2087,7 +2087,7 @@ private void WriteCheckDefault(SourceInfo source, object value, bool isNullable) MethodInfo String_get_Length = typeof(string).GetMethod( "get_Length", CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; source.Load(typeof(string)); ilg.Call(String_get_Length); @@ -2351,7 +2351,7 @@ internal void ILGenForCreateInstance(CodeGenerator ilg, Type type, bool ctorInac { ConstructorInfo ctor = type.GetConstructor( CodeGenerator.InstanceBindingFlags, - Array.Empty() + Type.EmptyTypes )!; if (ctor != null) ilg.New(ctor); @@ -2458,7 +2458,7 @@ internal void ILGenForCreateInstance(CodeGenerator ilg, Type type, Type? cast, b MethodInfo IEnumeratorMoveNext = typeof(IEnumerator).GetMethod( "MoveNext", CodeGenerator.InstanceBindingFlags, - Array.Empty())!; + Type.EmptyTypes)!; ilg.Ldloc(enumerator); ilg.Call(IEnumeratorMoveNext); ilg.WhileEndCondition(); diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs index 678cdc26c344..8c9b1d98859e 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs @@ -160,7 +160,7 @@ protected XmlSerializer() { } - public XmlSerializer(Type type, XmlRootAttribute? root) : this(type, null, Array.Empty(), root, null, null) + public XmlSerializer(Type type, XmlRootAttribute? root) : this(type, null, Type.EmptyTypes, root, null, null) { } @@ -168,7 +168,7 @@ public XmlSerializer(Type type, Type[]? extraTypes) : this(type, null, extraType { } - public XmlSerializer(Type type, XmlAttributeOverrides? overrides) : this(type, overrides, Array.Empty(), null, null, null) + public XmlSerializer(Type type, XmlAttributeOverrides? overrides) : this(type, overrides, Type.EmptyTypes, null, null, null) { } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerFactory.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerFactory.cs index e2dba5894b61..746698cc2096 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerFactory.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerFactory.cs @@ -24,7 +24,7 @@ public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides? override public XmlSerializer CreateSerializer(Type type, XmlRootAttribute? root) { - return CreateSerializer(type, null, Array.Empty(), root, null, null); + return CreateSerializer(type, null, Type.EmptyTypes, root, null, null); } public XmlSerializer CreateSerializer(Type type, Type[]? extraTypes) @@ -34,7 +34,7 @@ public XmlSerializer CreateSerializer(Type type, Type[]? extraTypes) public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides? overrides) { - return CreateSerializer(type, overrides, Array.Empty(), null, null, null); + return CreateSerializer(type, overrides, Type.EmptyTypes, null, null, null); } public XmlSerializer CreateSerializer(XmlTypeMapping xmlTypeMapping) diff --git a/src/libraries/System.Private.Xml/src/System/Xml/XmlDownloadManagerAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/XmlDownloadManagerAsync.cs index 87b3da75f3b5..35886f6aad51 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/XmlDownloadManagerAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/XmlDownloadManagerAsync.cs @@ -29,6 +29,7 @@ private async Task GetNonFileStreamAsync(Uri uri, ICredentials? credenti var handler = new HttpClientHandler(); using (var client = new HttpClient(handler)) { +#pragma warning disable CA1416 // Validate platform compatibility, 'credentials' and 'proxy' will not be set for browser, so safe to suppress if (credentials != null) { handler.Credentials = credentials; @@ -37,6 +38,7 @@ private async Task GetNonFileStreamAsync(Uri uri, ICredentials? credenti { handler.Proxy = proxy; } +#pragma warning restore CA1416 using (Stream respStream = await client.GetStreamAsync(uri).ConfigureAwait(false)) { diff --git a/src/libraries/System.Private.Xml/src/System/Xml/XmlUrlResolver.cs b/src/libraries/System.Private.Xml/src/System/Xml/XmlUrlResolver.cs index 641e5842c58f..3f39f1ab09d5 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/XmlUrlResolver.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/XmlUrlResolver.cs @@ -22,11 +22,13 @@ public partial class XmlUrlResolver : XmlResolver public XmlUrlResolver() { } + [UnsupportedOSPlatform("browser")] public override ICredentials? Credentials { set { _credentials = value; } } + [UnsupportedOSPlatform("browser")] public IWebProxy? Proxy { set { _proxy = value; } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs index 8130d26d8f2a..6891f91bf685 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs @@ -145,7 +145,7 @@ internal static class XmlILConstructors private static ConstructorInfo GetConstructor(Type className) { - ConstructorInfo constrInfo = className.GetConstructor(Array.Empty())!; + ConstructorInfo constrInfo = className.GetConstructor(Type.EmptyTypes)!; Debug.Assert(constrInfo != null, "Constructor " + className + " cannot be null."); return constrInfo; } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/XmlIlGenerator.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/XmlIlGenerator.cs index e5314b4d8f81..610a883ecfb0 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/XmlIlGenerator.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/XmlIlGenerator.cs @@ -124,13 +124,13 @@ public XmlILGenerator() // Create metadata for the Execute function, which is the entry point to the query // public static void Execute(XmlQueryRuntime); - MethodInfo methExec = _module.DefineMethod("Execute", typeof(void), Array.Empty(), Array.Empty(), XmlILMethodAttributes.NonUser); + MethodInfo methExec = _module.DefineMethod("Execute", typeof(void), Type.EmptyTypes, Array.Empty(), XmlILMethodAttributes.NonUser); // Create metadata for the root expression // public void Root() Debug.Assert(_qil.Root != null); XmlILMethodAttributes methAttrs = (_qil.Root.SourceLine == null) ? XmlILMethodAttributes.NonUser : XmlILMethodAttributes.None; - MethodInfo methRoot = _module.DefineMethod("Root", typeof(void), Array.Empty(), Array.Empty(), methAttrs); + MethodInfo methRoot = _module.DefineMethod("Root", typeof(void), Type.EmptyTypes, Array.Empty(), methAttrs); // Declare all early bound function objects foreach (EarlyBoundInfo info in _qil.EarlyBoundTypes) @@ -253,7 +253,7 @@ private void CreateGlobalValueMetadata(IList globalList) // public T GlobalValue() typReturn = XmlILTypeHelper.GetStorageType(ndRef.XmlType!); methAttrs = ndRef.SourceLine == null ? XmlILMethodAttributes.NonUser : XmlILMethodAttributes.None; - methInfo = _module!.DefineMethod(ndRef.DebugName!.ToString(), typReturn, Array.Empty(), Array.Empty(), methAttrs); + methInfo = _module!.DefineMethod(ndRef.DebugName!.ToString(), typReturn, Type.EmptyTypes, Array.Empty(), methAttrs); // Annotate function with MethodBuilder XmlILAnnotation.Write(ndRef).FunctionBinding = methInfo; diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs index df1a0223c41a..f90aadcb9eb7 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs @@ -10,14 +10,10 @@ using System.IO; using System.Reflection; using System.Reflection.Emit; -using System.Security; using System.Xml.XPath; using System.Xml.Xsl.Qil; using System.Xml.Xsl.Runtime; using System.Xml.Xsl.Xslt; -using System.Runtime.Versioning; -using System.Collections.Generic; -using System.Linq; namespace System.Xml.Xsl { diff --git a/src/libraries/System.Reflection.Context/System.Reflection.Context.sln b/src/libraries/System.Reflection.Context/System.Reflection.Context.sln index 566a25fb3b55..11af7c645593 100644 --- a/src/libraries/System.Reflection.Context/System.Reflection.Context.sln +++ b/src/libraries/System.Reflection.Context/System.Reflection.Context.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context.Tests", "tests\System.Reflection.Context.Tests.csproj", "{6183784D-CF12-476F-BA5F-CFAFF1EF1BE3}" - ProjectSection(ProjectDependencies) = postProject - {404DB891-B5AF-41E6-B89D-29E3F4573C4F} = {404DB891-B5AF-41E6-B89D-29E3F4573C4F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{22839FD5-6046-4E0F-9065-A3E5F2A7FEC1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "src\System.Reflection.Context.csproj", "{404DB891-B5AF-41E6-B89D-29E3F4573C4F}" - ProjectSection(ProjectDependencies) = postProject - {C3C70597-F192-430D-9BA6-287B1A974BF7} = {C3C70597-F192-430D-9BA6-287B1A974BF7} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{76EFA804-28A1-4F40-9785-3B29C149CBF9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "ref\System.Reflection.Context.csproj", "{C3C70597-F192-430D-9BA6-287B1A974BF7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "ref\System.Reflection.Context.csproj", "{B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context", "src\System.Reflection.Context.csproj", "{794EAE71-36BA-436D-841A-A8C72AADF485}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Context.Tests", "tests\System.Reflection.Context.Tests.csproj", "{34EA59F6-6177-4957-9894-563A73B02D63}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{2648D7B5-003A-467A-826A-CDE03B943FB1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{83807DEE-31E5-4DD1-A0A2-6C11520DC727}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E2C4A406-41A9-433F-B90E-37692D466B14}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{EDC43690-5101-410E-931F-C327013A5DCF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{41D29D00-79BE-4E07-8D0F-D39B1EF223FC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5D0D840E-77D6-4FD2-963A-BEB27A93D77A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{9901CCEF-7131-432D-AF37-95AA975AA938}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EBE03FDF-924A-4E9B-AA06-632E969460AB}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {22839FD5-6046-4E0F-9065-A3E5F2A7FEC1} = {5D0D840E-77D6-4FD2-963A-BEB27A93D77A} + {34EA59F6-6177-4957-9894-563A73B02D63} = {5D0D840E-77D6-4FD2-963A-BEB27A93D77A} + {76EFA804-28A1-4F40-9785-3B29C149CBF9} = {9901CCEF-7131-432D-AF37-95AA975AA938} + {B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67} = {9901CCEF-7131-432D-AF37-95AA975AA938} + {2648D7B5-003A-467A-826A-CDE03B943FB1} = {9901CCEF-7131-432D-AF37-95AA975AA938} + {EDC43690-5101-410E-931F-C327013A5DCF} = {9901CCEF-7131-432D-AF37-95AA975AA938} + {41D29D00-79BE-4E07-8D0F-D39B1EF223FC} = {9901CCEF-7131-432D-AF37-95AA975AA938} + {794EAE71-36BA-436D-841A-A8C72AADF485} = {EBE03FDF-924A-4E9B-AA06-632E969460AB} + {E2C4A406-41A9-433F-B90E-37692D466B14} = {EBE03FDF-924A-4E9B-AA06-632E969460AB} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6183784D-CF12-476F-BA5F-CFAFF1EF1BE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6183784D-CF12-476F-BA5F-CFAFF1EF1BE3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6183784D-CF12-476F-BA5F-CFAFF1EF1BE3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6183784D-CF12-476F-BA5F-CFAFF1EF1BE3}.Release|Any CPU.Build.0 = Release|Any CPU - {404DB891-B5AF-41E6-B89D-29E3F4573C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {404DB891-B5AF-41E6-B89D-29E3F4573C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {404DB891-B5AF-41E6-B89D-29E3F4573C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {404DB891-B5AF-41E6-B89D-29E3F4573C4F}.Release|Any CPU.Build.0 = Release|Any CPU - {C3C70597-F192-430D-9BA6-287B1A974BF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3C70597-F192-430D-9BA6-287B1A974BF7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3C70597-F192-430D-9BA6-287B1A974BF7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3C70597-F192-430D-9BA6-287B1A974BF7}.Release|Any CPU.Build.0 = Release|Any CPU - {83807DEE-31E5-4DD1-A0A2-6C11520DC727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83807DEE-31E5-4DD1-A0A2-6C11520DC727}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83807DEE-31E5-4DD1-A0A2-6C11520DC727}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83807DEE-31E5-4DD1-A0A2-6C11520DC727}.Release|Any CPU.Build.0 = Release|Any CPU + {22839FD5-6046-4E0F-9065-A3E5F2A7FEC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22839FD5-6046-4E0F-9065-A3E5F2A7FEC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22839FD5-6046-4E0F-9065-A3E5F2A7FEC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22839FD5-6046-4E0F-9065-A3E5F2A7FEC1}.Release|Any CPU.Build.0 = Release|Any CPU + {76EFA804-28A1-4F40-9785-3B29C149CBF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76EFA804-28A1-4F40-9785-3B29C149CBF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76EFA804-28A1-4F40-9785-3B29C149CBF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76EFA804-28A1-4F40-9785-3B29C149CBF9}.Release|Any CPU.Build.0 = Release|Any CPU + {B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2EBCE83-FA49-4ECD-9E8E-AF231AADFF67}.Release|Any CPU.Build.0 = Release|Any CPU + {794EAE71-36BA-436D-841A-A8C72AADF485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {794EAE71-36BA-436D-841A-A8C72AADF485}.Debug|Any CPU.Build.0 = Debug|Any CPU + {794EAE71-36BA-436D-841A-A8C72AADF485}.Release|Any CPU.ActiveCfg = Release|Any CPU + {794EAE71-36BA-436D-841A-A8C72AADF485}.Release|Any CPU.Build.0 = Release|Any CPU + {34EA59F6-6177-4957-9894-563A73B02D63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34EA59F6-6177-4957-9894-563A73B02D63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34EA59F6-6177-4957-9894-563A73B02D63}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34EA59F6-6177-4957-9894-563A73B02D63}.Release|Any CPU.Build.0 = Release|Any CPU + {2648D7B5-003A-467A-826A-CDE03B943FB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2648D7B5-003A-467A-826A-CDE03B943FB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2648D7B5-003A-467A-826A-CDE03B943FB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2648D7B5-003A-467A-826A-CDE03B943FB1}.Release|Any CPU.Build.0 = Release|Any CPU + {E2C4A406-41A9-433F-B90E-37692D466B14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2C4A406-41A9-433F-B90E-37692D466B14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2C4A406-41A9-433F-B90E-37692D466B14}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2C4A406-41A9-433F-B90E-37692D466B14}.Release|Any CPU.Build.0 = Release|Any CPU + {EDC43690-5101-410E-931F-C327013A5DCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDC43690-5101-410E-931F-C327013A5DCF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDC43690-5101-410E-931F-C327013A5DCF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDC43690-5101-410E-931F-C327013A5DCF}.Release|Any CPU.Build.0 = Release|Any CPU + {41D29D00-79BE-4E07-8D0F-D39B1EF223FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41D29D00-79BE-4E07-8D0F-D39B1EF223FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41D29D00-79BE-4E07-8D0F-D39B1EF223FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41D29D00-79BE-4E07-8D0F-D39B1EF223FC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6183784D-CF12-476F-BA5F-CFAFF1EF1BE3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {404DB891-B5AF-41E6-B89D-29E3F4573C4F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C3C70597-F192-430D-9BA6-287B1A974BF7} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {83807DEE-31E5-4DD1-A0A2-6C11520DC727} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {911E8E3A-B9EC-4005-9298-5CE770137876} + SolutionGuid = {BD91D429-58C1-4CA3-A800-E308C697485B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.DispatchProxy/System.Reflection.DispatchProxy.sln b/src/libraries/System.Reflection.DispatchProxy/System.Reflection.DispatchProxy.sln index a065c13f5240..dcc977f7bff3 100644 --- a/src/libraries/System.Reflection.DispatchProxy/System.Reflection.DispatchProxy.sln +++ b/src/libraries/System.Reflection.DispatchProxy/System.Reflection.DispatchProxy.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy.Tests", "tests\System.Reflection.DispatchProxy.Tests.csproj", "{089444FE-8FF5-4D8F-A51B-32D026425F6B}" - ProjectSection(ProjectDependencies) = postProject - {1E689C1B-690C-4799-BDE9-6E7990585894} = {1E689C1B-690C-4799-BDE9-6E7990585894} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{84DA6529-43CF-47CE-867A-5D23253D095C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "src\System.Reflection.DispatchProxy.csproj", "{1E689C1B-690C-4799-BDE9-6E7990585894}" - ProjectSection(ProjectDependencies) = postProject - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E} = {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{EEA05F34-81E2-43EC-ADAD-D3A6DB475033}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "ref\System.Reflection.DispatchProxy.csproj", "{7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "ref\System.Reflection.DispatchProxy.csproj", "{DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "src\System.Reflection.DispatchProxy.csproj", "{F5A284B5-10D3-43D4-BB3F-F0FB55033504}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy.Tests", "tests\System.Reflection.DispatchProxy.Tests.csproj", "{64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{627447CE-9FE8-4A29-BC06-D6BBBEC34A8B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9B252623-8443-44A7-93B6-F97AFBB520DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CEDCB991-EBD8-4617-B81B-94E73DC50712}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{2CDC8069-935D-459D-A2E9-F1EB07C2158C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{257EAF7F-071B-470B-B186-9E6AC8C54061}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2CBF600B-02B8-4EA4-9377-FBFF72476B80}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D142E961-4463-4349-AC09-E0C4D9B3E31B}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {84DA6529-43CF-47CE-867A-5D23253D095C} = {2CBF600B-02B8-4EA4-9377-FBFF72476B80} + {64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6} = {2CBF600B-02B8-4EA4-9377-FBFF72476B80} + {EEA05F34-81E2-43EC-ADAD-D3A6DB475033} = {BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9} + {DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8} = {BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9} + {627447CE-9FE8-4A29-BC06-D6BBBEC34A8B} = {BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9} + {2CDC8069-935D-459D-A2E9-F1EB07C2158C} = {BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9} + {257EAF7F-071B-470B-B186-9E6AC8C54061} = {BF1CD7E8-A1D9-4CEB-8FBE-2FF52099AAA9} + {F5A284B5-10D3-43D4-BB3F-F0FB55033504} = {D142E961-4463-4349-AC09-E0C4D9B3E31B} + {CEDCB991-EBD8-4617-B81B-94E73DC50712} = {D142E961-4463-4349-AC09-E0C4D9B3E31B} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {089444FE-8FF5-4D8F-A51B-32D026425F6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {089444FE-8FF5-4D8F-A51B-32D026425F6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {089444FE-8FF5-4D8F-A51B-32D026425F6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {089444FE-8FF5-4D8F-A51B-32D026425F6B}.Release|Any CPU.Build.0 = Release|Any CPU - {1E689C1B-690C-4799-BDE9-6E7990585894}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E689C1B-690C-4799-BDE9-6E7990585894}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E689C1B-690C-4799-BDE9-6E7990585894}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E689C1B-690C-4799-BDE9-6E7990585894}.Release|Any CPU.Build.0 = Release|Any CPU - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}.Release|Any CPU.Build.0 = Release|Any CPU - {9B252623-8443-44A7-93B6-F97AFBB520DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B252623-8443-44A7-93B6-F97AFBB520DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B252623-8443-44A7-93B6-F97AFBB520DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B252623-8443-44A7-93B6-F97AFBB520DD}.Release|Any CPU.Build.0 = Release|Any CPU + {84DA6529-43CF-47CE-867A-5D23253D095C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84DA6529-43CF-47CE-867A-5D23253D095C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84DA6529-43CF-47CE-867A-5D23253D095C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84DA6529-43CF-47CE-867A-5D23253D095C}.Release|Any CPU.Build.0 = Release|Any CPU + {EEA05F34-81E2-43EC-ADAD-D3A6DB475033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEA05F34-81E2-43EC-ADAD-D3A6DB475033}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEA05F34-81E2-43EC-ADAD-D3A6DB475033}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEA05F34-81E2-43EC-ADAD-D3A6DB475033}.Release|Any CPU.Build.0 = Release|Any CPU + {DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE8CF6FB-C4B6-42B4-ADEE-9CE6066DB6D8}.Release|Any CPU.Build.0 = Release|Any CPU + {F5A284B5-10D3-43D4-BB3F-F0FB55033504}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5A284B5-10D3-43D4-BB3F-F0FB55033504}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5A284B5-10D3-43D4-BB3F-F0FB55033504}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5A284B5-10D3-43D4-BB3F-F0FB55033504}.Release|Any CPU.Build.0 = Release|Any CPU + {64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64DC5B04-1B00-4E98-A0B2-B30FAF43F8A6}.Release|Any CPU.Build.0 = Release|Any CPU + {627447CE-9FE8-4A29-BC06-D6BBBEC34A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {627447CE-9FE8-4A29-BC06-D6BBBEC34A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {627447CE-9FE8-4A29-BC06-D6BBBEC34A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {627447CE-9FE8-4A29-BC06-D6BBBEC34A8B}.Release|Any CPU.Build.0 = Release|Any CPU + {CEDCB991-EBD8-4617-B81B-94E73DC50712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEDCB991-EBD8-4617-B81B-94E73DC50712}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEDCB991-EBD8-4617-B81B-94E73DC50712}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEDCB991-EBD8-4617-B81B-94E73DC50712}.Release|Any CPU.Build.0 = Release|Any CPU + {2CDC8069-935D-459D-A2E9-F1EB07C2158C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2CDC8069-935D-459D-A2E9-F1EB07C2158C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2CDC8069-935D-459D-A2E9-F1EB07C2158C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2CDC8069-935D-459D-A2E9-F1EB07C2158C}.Release|Any CPU.Build.0 = Release|Any CPU + {257EAF7F-071B-470B-B186-9E6AC8C54061}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {257EAF7F-071B-470B-B186-9E6AC8C54061}.Debug|Any CPU.Build.0 = Debug|Any CPU + {257EAF7F-071B-470B-B186-9E6AC8C54061}.Release|Any CPU.ActiveCfg = Release|Any CPU + {257EAF7F-071B-470B-B186-9E6AC8C54061}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {089444FE-8FF5-4D8F-A51B-32D026425F6B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1E689C1B-690C-4799-BDE9-6E7990585894} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7DF3C428-AAD6-41C7-98E6-6CACFD5C391E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9B252623-8443-44A7-93B6-F97AFBB520DD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {ED66E67D-809C-45D7-854C-2D931FCAB32F} + SolutionGuid = {32381969-33E3-4DA1-A3DD-82AC1EA2FF9E} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.DispatchProxy/tests/DispatchProxyTests.cs b/src/libraries/System.Reflection.DispatchProxy/tests/DispatchProxyTests.cs index e2595dfa366f..ac7be18e97ac 100644 --- a/src/libraries/System.Reflection.DispatchProxy/tests/DispatchProxyTests.cs +++ b/src/libraries/System.Reflection.DispatchProxy/tests/DispatchProxyTests.cs @@ -413,7 +413,7 @@ public static void Invoke_Event_Add_And_Remove_And_Raise_Invokes_Correct_Methods List invokedMethods = new List(); object proxy = typeof(DispatchProxy) - .GetRuntimeMethod("Create", Array.Empty()).MakeGenericMethod(ieventServiceTypeInfo.AsType(), typeof(TestDispatchProxy)) + .GetRuntimeMethod("Create", Type.EmptyTypes).MakeGenericMethod(ieventServiceTypeInfo.AsType(), typeof(TestDispatchProxy)) .Invoke(null, null); ((TestDispatchProxy)proxy).CallOnInvoke = (method, args) => { diff --git a/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln b/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln index 947b31d41a89..286192f00fe9 100644 --- a/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln +++ b/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration.Tests", "tests\System.Reflection.Emit.ILGeneration.Tests.csproj", "{FB037640-0591-4DF4-A331-0BEFE50A200B}" - ProjectSection(ProjectDependencies) = postProject - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1} = {8F05FFD6-6697-41CA-B733-709F5A6D3BF1} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{B1053D24-237E-4E55-9413-20B34ED79F23}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration", "src\System.Reflection.Emit.ILGeneration.csproj", "{8F05FFD6-6697-41CA-B733-709F5A6D3BF1}" - ProjectSection(ProjectDependencies) = postProject - {D8763A34-58C6-4229-AD75-6980EF382294} = {D8763A34-58C6-4229-AD75-6980EF382294} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{05696F45-ACF1-4C02-B8D9-E8C1F5E28717}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration", "ref\System.Reflection.Emit.ILGeneration.csproj", "{D8763A34-58C6-4229-AD75-6980EF382294}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration", "ref\System.Reflection.Emit.ILGeneration.csproj", "{64BBA40A-8DB5-4829-815A-3D612A12222D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration", "src\System.Reflection.Emit.ILGeneration.csproj", "{A18E814C-13D6-4859-B6FA-3CAB8673B31F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.ILGeneration.Tests", "tests\System.Reflection.Emit.ILGeneration.Tests.csproj", "{EA6F01DF-1F63-49FF-A6E8-CA9104296196}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9058F57C-0096-4D61-BABF-A6E78855DF06}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FA5B6CDF-982C-47F5-95E0-5C1DE3391188}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{2F96336D-6AB0-4463-9A9F-5ED91E737DEA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{53A1E60F-B7C9-4834-AD16-156058372E57}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{117F6A31-7A07-4A7E-9D69-52329A5152AD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{17102BEF-8E0A-4D2B-8E72-F9AE2B6D0ED9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3DEEFCBA-5912-4DEA-8FCC-9607F1265795}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B60C7D3F-D086-495B-8497-F75E65CE0BF6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B1053D24-237E-4E55-9413-20B34ED79F23} = {17102BEF-8E0A-4D2B-8E72-F9AE2B6D0ED9} + {A18E814C-13D6-4859-B6FA-3CAB8673B31F} = {17102BEF-8E0A-4D2B-8E72-F9AE2B6D0ED9} + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA} = {17102BEF-8E0A-4D2B-8E72-F9AE2B6D0ED9} + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717} = {3DEEFCBA-5912-4DEA-8FCC-9607F1265795} + {EA6F01DF-1F63-49FF-A6E8-CA9104296196} = {3DEEFCBA-5912-4DEA-8FCC-9607F1265795} + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C} = {B60C7D3F-D086-495B-8497-F75E65CE0BF6} + {64BBA40A-8DB5-4829-815A-3D612A12222D} = {B60C7D3F-D086-495B-8497-F75E65CE0BF6} + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188} = {B60C7D3F-D086-495B-8497-F75E65CE0BF6} + {53A1E60F-B7C9-4834-AD16-156058372E57} = {B60C7D3F-D086-495B-8497-F75E65CE0BF6} + {117F6A31-7A07-4A7E-9D69-52329A5152AD} = {B60C7D3F-D086-495B-8497-F75E65CE0BF6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FB037640-0591-4DF4-A331-0BEFE50A200B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB037640-0591-4DF4-A331-0BEFE50A200B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB037640-0591-4DF4-A331-0BEFE50A200B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB037640-0591-4DF4-A331-0BEFE50A200B}.Release|Any CPU.Build.0 = Release|Any CPU - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1}.Release|Any CPU.Build.0 = Release|Any CPU - {D8763A34-58C6-4229-AD75-6980EF382294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8763A34-58C6-4229-AD75-6980EF382294}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8763A34-58C6-4229-AD75-6980EF382294}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8763A34-58C6-4229-AD75-6980EF382294}.Release|Any CPU.Build.0 = Release|Any CPU - {9058F57C-0096-4D61-BABF-A6E78855DF06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9058F57C-0096-4D61-BABF-A6E78855DF06}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9058F57C-0096-4D61-BABF-A6E78855DF06}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9058F57C-0096-4D61-BABF-A6E78855DF06}.Release|Any CPU.Build.0 = Release|Any CPU + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|Any CPU.ActiveCfg = Debug|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|Any CPU.Build.0 = Debug|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|x64.ActiveCfg = Debug|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|x64.Build.0 = Debug|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|x86.ActiveCfg = Debug|x86 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Debug|x86.Build.0 = Debug|x86 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|Any CPU.ActiveCfg = Release|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|Any CPU.Build.0 = Release|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|x64.ActiveCfg = Release|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|x64.Build.0 = Release|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|x86.ActiveCfg = Release|x86 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Release|x86.Build.0 = Release|x86 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|Any CPU.ActiveCfg = Checked|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|Any CPU.Build.0 = Checked|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|x64.ActiveCfg = Checked|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|x64.Build.0 = Checked|x64 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|x86.ActiveCfg = Checked|x86 + {B1053D24-237E-4E55-9413-20B34ED79F23}.Checked|x86.Build.0 = Checked|x86 + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|x64.ActiveCfg = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|x64.Build.0 = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|x86.ActiveCfg = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Debug|x86.Build.0 = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|Any CPU.Build.0 = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|x64.ActiveCfg = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|x64.Build.0 = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|x86.ActiveCfg = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Release|x86.Build.0 = Release|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Checked|x64.ActiveCfg = Debug|Any CPU + {05696F45-ACF1-4C02-B8D9-E8C1F5E28717}.Checked|x86.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|x64.Build.0 = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Debug|x86.Build.0 = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|Any CPU.Build.0 = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|x64.ActiveCfg = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|x64.Build.0 = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|x86.ActiveCfg = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Release|x86.Build.0 = Release|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Checked|x64.ActiveCfg = Debug|Any CPU + {9D15C6A3-61DF-4DA6-AF2A-27160AFCC53C}.Checked|x86.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|x64.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|x64.Build.0 = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|x86.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Debug|x86.Build.0 = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|Any CPU.Build.0 = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|x64.ActiveCfg = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|x64.Build.0 = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|x86.ActiveCfg = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Release|x86.Build.0 = Release|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Checked|x64.ActiveCfg = Debug|Any CPU + {64BBA40A-8DB5-4829-815A-3D612A12222D}.Checked|x86.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|x64.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|x64.Build.0 = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|x86.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Debug|x86.Build.0 = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|Any CPU.Build.0 = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|x64.ActiveCfg = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|x64.Build.0 = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|x86.ActiveCfg = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Release|x86.Build.0 = Release|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Checked|x64.ActiveCfg = Debug|Any CPU + {A18E814C-13D6-4859-B6FA-3CAB8673B31F}.Checked|x86.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|x64.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|x64.Build.0 = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|x86.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Debug|x86.Build.0 = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|Any CPU.Build.0 = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|x64.ActiveCfg = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|x64.Build.0 = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|x86.ActiveCfg = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Release|x86.Build.0 = Release|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Checked|x64.ActiveCfg = Debug|Any CPU + {EA6F01DF-1F63-49FF-A6E8-CA9104296196}.Checked|x86.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|x64.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|x64.Build.0 = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Debug|x86.Build.0 = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|Any CPU.Build.0 = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|x64.ActiveCfg = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|x64.Build.0 = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|x86.ActiveCfg = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Release|x86.Build.0 = Release|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Checked|x64.ActiveCfg = Debug|Any CPU + {FA5B6CDF-982C-47F5-95E0-5C1DE3391188}.Checked|x86.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|x64.Build.0 = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Debug|x86.Build.0 = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|Any CPU.Build.0 = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|x64.ActiveCfg = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|x64.Build.0 = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|x86.ActiveCfg = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Release|x86.Build.0 = Release|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Checked|x64.ActiveCfg = Debug|Any CPU + {2F96336D-6AB0-4463-9A9F-5ED91E737DEA}.Checked|x86.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|x64.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|x64.Build.0 = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|x86.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Debug|x86.Build.0 = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|Any CPU.Build.0 = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|x64.ActiveCfg = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|x64.Build.0 = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|x86.ActiveCfg = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Release|x86.Build.0 = Release|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Checked|x64.ActiveCfg = Debug|Any CPU + {53A1E60F-B7C9-4834-AD16-156058372E57}.Checked|x86.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|x64.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|x64.Build.0 = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|x86.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Debug|x86.Build.0 = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|Any CPU.Build.0 = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|x64.ActiveCfg = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|x64.Build.0 = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|x86.ActiveCfg = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Release|x86.Build.0 = Release|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Checked|x64.ActiveCfg = Debug|Any CPU + {117F6A31-7A07-4A7E-9D69-52329A5152AD}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {FB037640-0591-4DF4-A331-0BEFE50A200B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8F05FFD6-6697-41CA-B733-709F5A6D3BF1} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D8763A34-58C6-4229-AD75-6980EF382294} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9058F57C-0096-4D61-BABF-A6E78855DF06} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DC3F41DA-FEB6-4586-9C99-60961128BD91} + SolutionGuid = {248E0825-3C88-4854-B192-C50C9FDDBBC3} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.Emit.ILGeneration/tests/ILGenerator/Emit4Tests.cs b/src/libraries/System.Reflection.Emit.ILGeneration/tests/ILGenerator/Emit4Tests.cs index a33ffe7cd433..96aae7540ae3 100644 --- a/src/libraries/System.Reflection.Emit.ILGeneration/tests/ILGenerator/Emit4Tests.cs +++ b/src/libraries/System.Reflection.Emit.ILGeneration/tests/ILGenerator/Emit4Tests.cs @@ -45,6 +45,39 @@ public void TestEmitCalliBlittable() Assert.Equal(result, resultValue); } + [Fact] + public void TestEmitCalliManagedBlittable() + { + int a = 1, b = 1, result = 2; + + ModuleBuilder moduleBuilder = Helpers.DynamicModule(); + TypeBuilder typeBuilder = moduleBuilder.DefineType("T", TypeAttributes.Public); + Type returnType = typeof(int); + + MethodBuilder methodBuilder = typeBuilder.DefineMethod("F", + MethodAttributes.Public | MethodAttributes.Static, returnType, new Type[] { typeof(IntPtr), typeof(int), typeof(int) }); + methodBuilder.SetImplementationFlags(MethodImplAttributes.NoInlining); + + MethodInfo method = typeof(ILGeneratorEmit4).GetMethod(nameof(ILGeneratorEmit4.Int32Sum), BindingFlags.NonPublic | BindingFlags.Static) ?? throw new InvalidOperationException("method is null"); + IntPtr funcPtr = method.MethodHandle.GetFunctionPointer(); + + ILGenerator il = methodBuilder.GetILGenerator(); + il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Ldarg_2); + il.Emit(OpCodes.Ldarg_0); + il.EmitCalli(OpCodes.Calli, CallingConventions.Standard, returnType, new Type[] { typeof(int), typeof(int) }, null); + il.Emit(OpCodes.Ret); + + Type dynamicType = typeBuilder.CreateType(); + + object resultValue = dynamicType + .GetMethod("F", BindingFlags.Public | BindingFlags.Static) + .Invoke(null, new object[] { funcPtr, a, b }); + + Assert.IsType(returnType, resultValue); + Assert.Equal(result, resultValue); + } + [Fact] public void TestDynamicMethodEmitCalliBlittable() { diff --git a/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln b/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln index 14ebe61301a1..a5c9aeaf1bdf 100644 --- a/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln +++ b/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight.Tests", "tests\System.Reflection.Emit.Lightweight.Tests.csproj", "{C338DCF7-FB75-407B-A2ED-117FBF3AAA18}" - ProjectSection(ProjectDependencies) = postProject - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9} = {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{209EDA22-1D20-4180-BE4C-53DEE1758B5D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight", "src\System.Reflection.Emit.Lightweight.csproj", "{FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9}" - ProjectSection(ProjectDependencies) = postProject - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD} = {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight", "ref\System.Reflection.Emit.Lightweight.csproj", "{293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7EA489CB-8675-4E12-8DAD-84235158796E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight", "ref\System.Reflection.Emit.Lightweight.csproj", "{EE535D8F-D21B-4C18-A915-60E94CE19CA2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight", "src\System.Reflection.Emit.Lightweight.csproj", "{BC6947B4-C61B-4066-B75F-937992548E54}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Lightweight.Tests", "tests\System.Reflection.Emit.Lightweight.Tests.csproj", "{13447BAB-2762-4CCC-95DF-531FC82FE39A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DA60AB31-81B1-4485-AFCB-636510762EDD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{B21E0098-7443-4475-997B-E6AB3B42E4D6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0285779D-C970-4E27-820E-C204E556DD19}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{4C44B452-B225-4259-8725-B38265C3C6DC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E0156335-BB44-4CC0-ACD9-9A3EAEB103D9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2B3C509C-516F-4F0D-9E85-1D902507A0A2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4DD31A18-40B2-4C34-A35E-BA79C0776DF1}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {209EDA22-1D20-4180-BE4C-53DEE1758B5D} = {E0156335-BB44-4CC0-ACD9-9A3EAEB103D9} + {BC6947B4-C61B-4066-B75F-937992548E54} = {E0156335-BB44-4CC0-ACD9-9A3EAEB103D9} + {0285779D-C970-4E27-820E-C204E556DD19} = {E0156335-BB44-4CC0-ACD9-9A3EAEB103D9} + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A} = {2B3C509C-516F-4F0D-9E85-1D902507A0A2} + {13447BAB-2762-4CCC-95DF-531FC82FE39A} = {2B3C509C-516F-4F0D-9E85-1D902507A0A2} + {7EA489CB-8675-4E12-8DAD-84235158796E} = {4DD31A18-40B2-4C34-A35E-BA79C0776DF1} + {EE535D8F-D21B-4C18-A915-60E94CE19CA2} = {4DD31A18-40B2-4C34-A35E-BA79C0776DF1} + {B21E0098-7443-4475-997B-E6AB3B42E4D6} = {4DD31A18-40B2-4C34-A35E-BA79C0776DF1} + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9} = {4DD31A18-40B2-4C34-A35E-BA79C0776DF1} + {4C44B452-B225-4259-8725-B38265C3C6DC} = {4DD31A18-40B2-4C34-A35E-BA79C0776DF1} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C338DCF7-FB75-407B-A2ED-117FBF3AAA18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C338DCF7-FB75-407B-A2ED-117FBF3AAA18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C338DCF7-FB75-407B-A2ED-117FBF3AAA18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C338DCF7-FB75-407B-A2ED-117FBF3AAA18}.Release|Any CPU.Build.0 = Release|Any CPU - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9}.Release|Any CPU.Build.0 = Release|Any CPU - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD}.Release|Any CPU.Build.0 = Release|Any CPU - {DA60AB31-81B1-4485-AFCB-636510762EDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA60AB31-81B1-4485-AFCB-636510762EDD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA60AB31-81B1-4485-AFCB-636510762EDD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA60AB31-81B1-4485-AFCB-636510762EDD}.Release|Any CPU.Build.0 = Release|Any CPU + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|Any CPU.Build.0 = Debug|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|x64.ActiveCfg = Debug|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|x64.Build.0 = Debug|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|x86.ActiveCfg = Debug|x86 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Debug|x86.Build.0 = Debug|x86 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|Any CPU.ActiveCfg = Release|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|Any CPU.Build.0 = Release|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|x64.ActiveCfg = Release|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|x64.Build.0 = Release|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|x86.ActiveCfg = Release|x86 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Release|x86.Build.0 = Release|x86 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|Any CPU.ActiveCfg = Checked|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|Any CPU.Build.0 = Checked|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|x64.ActiveCfg = Checked|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|x64.Build.0 = Checked|x64 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|x86.ActiveCfg = Checked|x86 + {209EDA22-1D20-4180-BE4C-53DEE1758B5D}.Checked|x86.Build.0 = Checked|x86 + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|x64.ActiveCfg = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|x64.Build.0 = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|x86.ActiveCfg = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Debug|x86.Build.0 = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|Any CPU.Build.0 = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|x64.ActiveCfg = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|x64.Build.0 = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|x86.ActiveCfg = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Release|x86.Build.0 = Release|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Checked|x64.ActiveCfg = Debug|Any CPU + {ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}.Checked|x86.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|x64.Build.0 = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Debug|x86.Build.0 = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|Any CPU.Build.0 = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|x64.ActiveCfg = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|x64.Build.0 = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|x86.ActiveCfg = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Release|x86.Build.0 = Release|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Checked|x64.ActiveCfg = Debug|Any CPU + {7EA489CB-8675-4E12-8DAD-84235158796E}.Checked|x86.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|x64.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|x64.Build.0 = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|x86.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Debug|x86.Build.0 = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|Any CPU.Build.0 = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|x64.ActiveCfg = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|x64.Build.0 = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|x86.ActiveCfg = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Release|x86.Build.0 = Release|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Checked|x64.ActiveCfg = Debug|Any CPU + {EE535D8F-D21B-4C18-A915-60E94CE19CA2}.Checked|x86.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|x64.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|x64.Build.0 = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|x86.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Debug|x86.Build.0 = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|Any CPU.Build.0 = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|x64.ActiveCfg = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|x64.Build.0 = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|x86.ActiveCfg = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Release|x86.Build.0 = Release|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Checked|x64.ActiveCfg = Debug|Any CPU + {BC6947B4-C61B-4066-B75F-937992548E54}.Checked|x86.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|x64.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|x64.Build.0 = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|x86.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Debug|x86.Build.0 = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|Any CPU.Build.0 = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|x64.ActiveCfg = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|x64.Build.0 = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|x86.ActiveCfg = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Release|x86.Build.0 = Release|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Checked|x64.ActiveCfg = Debug|Any CPU + {13447BAB-2762-4CCC-95DF-531FC82FE39A}.Checked|x86.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|x64.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|x64.Build.0 = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|x86.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Debug|x86.Build.0 = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|Any CPU.Build.0 = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|x64.ActiveCfg = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|x64.Build.0 = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|x86.ActiveCfg = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Release|x86.Build.0 = Release|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Checked|x64.ActiveCfg = Debug|Any CPU + {B21E0098-7443-4475-997B-E6AB3B42E4D6}.Checked|x86.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|x64.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|x64.Build.0 = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|x86.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Debug|x86.Build.0 = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|Any CPU.Build.0 = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|x64.ActiveCfg = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|x64.Build.0 = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|x86.ActiveCfg = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Release|x86.Build.0 = Release|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Checked|x64.ActiveCfg = Debug|Any CPU + {0285779D-C970-4E27-820E-C204E556DD19}.Checked|x86.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|x64.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|x64.Build.0 = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|x86.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Debug|x86.Build.0 = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|Any CPU.Build.0 = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|x64.ActiveCfg = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|x64.Build.0 = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|x86.ActiveCfg = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Release|x86.Build.0 = Release|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Checked|x64.ActiveCfg = Debug|Any CPU + {E9EAA4D3-F1A9-4A80-A486-3082F83D6FF9}.Checked|x86.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|x64.Build.0 = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Debug|x86.Build.0 = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|Any CPU.Build.0 = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|x64.ActiveCfg = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|x64.Build.0 = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|x86.ActiveCfg = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Release|x86.Build.0 = Release|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Checked|x64.ActiveCfg = Debug|Any CPU + {4C44B452-B225-4259-8725-B38265C3C6DC}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C338DCF7-FB75-407B-A2ED-117FBF3AAA18} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FEF9FF32-8DE5-4C52-BC4E-8725A1FAA1E9} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {293B8D9F-361F-4DED-B95E-3EB2D7C5FBAD} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {DA60AB31-81B1-4485-AFCB-636510762EDD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {897DE0F1-1C3A-4A75-B92F-FBA254166CB3} + SolutionGuid = {DC34C129-6D43-4A78-966A-9152BFF226C0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln index ae1afba2e513..c7b9fee30095 100644 --- a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln +++ b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln @@ -1,60 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Tests", "tests\System.Reflection.Emit.Tests.csproj", "{1104A263-331A-4CA0-B541-759BD20F7B1D}" - ProjectSection(ProjectDependencies) = postProject - {19D670F6-6029-43DB-9F43-CB291EB358F4} = {19D670F6-6029-43DB-9F43-CB291EB358F4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{772C93D4-FC45-46AA-B09F-26F01B672EDC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit", "src\System.Reflection.Emit.csproj", "{19D670F6-6029-43DB-9F43-CB291EB358F4}" - ProjectSection(ProjectDependencies) = postProject - {4FBD1556-7B96-414E-9EA4-85281956D60E} = {4FBD1556-7B96-414E-9EA4-85281956D60E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E5543842-139D-43BD-B604-E65EBB91649E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit", "ref\System.Reflection.Emit.csproj", "{4FBD1556-7B96-414E-9EA4-85281956D60E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{55B647B6-D9B9-44F3-9176-83194EEB43CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit", "ref\System.Reflection.Emit.csproj", "{6A176C5B-206D-4550-AC36-0530218E29F5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit", "src\System.Reflection.Emit.csproj", "{B479A4BF-A3A5-4255-A3EF-135015BD877F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Emit.Tests", "tests\System.Reflection.Emit.Tests.csproj", "{82899000-791E-42FF-A594-6DE65DE07C9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0399E951-BDDE-40B1-9FC8-EE0E5DA78A09}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F4AEC0D3-A456-48CE-A103-175E302187D8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C8601778-612D-4274-9F36-17F938E65603}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{11B7459D-B2C4-4AF6-A114-877C0679FDC0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DB073E71-316E-4C4F-A3BE-B731A6D2CE7F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9CA13485-B3C2-4A6D-B369-6E0339ACFD8D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{4563E1FA-9565-438F-818F-1BA414C78E80}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {772C93D4-FC45-46AA-B09F-26F01B672EDC} = {DB073E71-316E-4C4F-A3BE-B731A6D2CE7F} + {B479A4BF-A3A5-4255-A3EF-135015BD877F} = {DB073E71-316E-4C4F-A3BE-B731A6D2CE7F} + {C8601778-612D-4274-9F36-17F938E65603} = {DB073E71-316E-4C4F-A3BE-B731A6D2CE7F} + {E5543842-139D-43BD-B604-E65EBB91649E} = {9CA13485-B3C2-4A6D-B369-6E0339ACFD8D} + {82899000-791E-42FF-A594-6DE65DE07C9E} = {9CA13485-B3C2-4A6D-B369-6E0339ACFD8D} + {55B647B6-D9B9-44F3-9176-83194EEB43CD} = {4563E1FA-9565-438F-818F-1BA414C78E80} + {6A176C5B-206D-4550-AC36-0530218E29F5} = {4563E1FA-9565-438F-818F-1BA414C78E80} + {F4AEC0D3-A456-48CE-A103-175E302187D8} = {4563E1FA-9565-438F-818F-1BA414C78E80} + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55} = {4563E1FA-9565-438F-818F-1BA414C78E80} + {11B7459D-B2C4-4AF6-A114-877C0679FDC0} = {4563E1FA-9565-438F-818F-1BA414C78E80} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1104A263-331A-4CA0-B541-759BD20F7B1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1104A263-331A-4CA0-B541-759BD20F7B1D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1104A263-331A-4CA0-B541-759BD20F7B1D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1104A263-331A-4CA0-B541-759BD20F7B1D}.Release|Any CPU.Build.0 = Release|Any CPU - {19D670F6-6029-43DB-9F43-CB291EB358F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19D670F6-6029-43DB-9F43-CB291EB358F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19D670F6-6029-43DB-9F43-CB291EB358F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19D670F6-6029-43DB-9F43-CB291EB358F4}.Release|Any CPU.Build.0 = Release|Any CPU - {4FBD1556-7B96-414E-9EA4-85281956D60E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4FBD1556-7B96-414E-9EA4-85281956D60E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4FBD1556-7B96-414E-9EA4-85281956D60E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4FBD1556-7B96-414E-9EA4-85281956D60E}.Release|Any CPU.Build.0 = Release|Any CPU - {0399E951-BDDE-40B1-9FC8-EE0E5DA78A09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0399E951-BDDE-40B1-9FC8-EE0E5DA78A09}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0399E951-BDDE-40B1-9FC8-EE0E5DA78A09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0399E951-BDDE-40B1-9FC8-EE0E5DA78A09}.Release|Any CPU.Build.0 = Release|Any CPU + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|Any CPU.ActiveCfg = Debug|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|Any CPU.Build.0 = Debug|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|x64.ActiveCfg = Debug|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|x64.Build.0 = Debug|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|x86.ActiveCfg = Debug|x86 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Debug|x86.Build.0 = Debug|x86 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|Any CPU.ActiveCfg = Release|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|Any CPU.Build.0 = Release|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|x64.ActiveCfg = Release|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|x64.Build.0 = Release|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|x86.ActiveCfg = Release|x86 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Release|x86.Build.0 = Release|x86 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|Any CPU.ActiveCfg = Checked|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|Any CPU.Build.0 = Checked|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|x64.ActiveCfg = Checked|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|x64.Build.0 = Checked|x64 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|x86.ActiveCfg = Checked|x86 + {772C93D4-FC45-46AA-B09F-26F01B672EDC}.Checked|x86.Build.0 = Checked|x86 + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|x64.Build.0 = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Debug|x86.Build.0 = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|Any CPU.Build.0 = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|x64.ActiveCfg = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|x64.Build.0 = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|x86.ActiveCfg = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Release|x86.Build.0 = Release|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Checked|x64.ActiveCfg = Debug|Any CPU + {E5543842-139D-43BD-B604-E65EBB91649E}.Checked|x86.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|x64.Build.0 = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|x86.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Debug|x86.Build.0 = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|Any CPU.Build.0 = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|x64.ActiveCfg = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|x64.Build.0 = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|x86.ActiveCfg = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Release|x86.Build.0 = Release|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Checked|x64.ActiveCfg = Debug|Any CPU + {55B647B6-D9B9-44F3-9176-83194EEB43CD}.Checked|x86.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|x64.Build.0 = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Debug|x86.Build.0 = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|Any CPU.Build.0 = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|x64.ActiveCfg = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|x64.Build.0 = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|x86.ActiveCfg = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Release|x86.Build.0 = Release|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Checked|x64.ActiveCfg = Debug|Any CPU + {6A176C5B-206D-4550-AC36-0530218E29F5}.Checked|x86.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|x64.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|x64.Build.0 = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|x86.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Debug|x86.Build.0 = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|Any CPU.Build.0 = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|x64.ActiveCfg = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|x64.Build.0 = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|x86.ActiveCfg = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Release|x86.Build.0 = Release|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Checked|x64.ActiveCfg = Debug|Any CPU + {B479A4BF-A3A5-4255-A3EF-135015BD877F}.Checked|x86.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|x64.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|x64.Build.0 = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|x86.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Debug|x86.Build.0 = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|Any CPU.Build.0 = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|x64.ActiveCfg = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|x64.Build.0 = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|x86.ActiveCfg = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Release|x86.Build.0 = Release|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Checked|x64.ActiveCfg = Debug|Any CPU + {82899000-791E-42FF-A594-6DE65DE07C9E}.Checked|x86.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|x64.Build.0 = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Debug|x86.Build.0 = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|Any CPU.Build.0 = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|x64.ActiveCfg = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|x64.Build.0 = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|x86.ActiveCfg = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Release|x86.Build.0 = Release|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Checked|x64.ActiveCfg = Debug|Any CPU + {F4AEC0D3-A456-48CE-A103-175E302187D8}.Checked|x86.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|x64.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|x64.Build.0 = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Debug|x86.Build.0 = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|Any CPU.Build.0 = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|x64.ActiveCfg = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|x64.Build.0 = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|x86.ActiveCfg = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Release|x86.Build.0 = Release|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Checked|x64.ActiveCfg = Debug|Any CPU + {C8601778-612D-4274-9F36-17F938E65603}.Checked|x86.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|x64.Build.0 = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Debug|x86.Build.0 = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|Any CPU.Build.0 = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|x64.ActiveCfg = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|x64.Build.0 = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|x86.ActiveCfg = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Release|x86.Build.0 = Release|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Checked|x64.ActiveCfg = Debug|Any CPU + {CE2E0CD3-D1C9-4693-B85D-B3A5E9F37B55}.Checked|x86.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|x64.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|x64.Build.0 = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|x86.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Debug|x86.Build.0 = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|Any CPU.Build.0 = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|x64.ActiveCfg = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|x64.Build.0 = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|x86.ActiveCfg = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Release|x86.Build.0 = Release|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Checked|x64.ActiveCfg = Debug|Any CPU + {11B7459D-B2C4-4AF6-A114-877C0679FDC0}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {1104A263-331A-4CA0-B541-759BD20F7B1D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {19D670F6-6029-43DB-9F43-CB291EB358F4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4FBD1556-7B96-414E-9EA4-85281956D60E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {0399E951-BDDE-40B1-9FC8-EE0E5DA78A09} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4186BAA7-3B41-43E6-8EE0-3F1BEDD2153F} + SolutionGuid = {739AA767-154B-4C69-8C9B-C3D332833D92} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.Emit/tests/MethodBuilder/MethodBuilderGetGenericArguments.cs b/src/libraries/System.Reflection.Emit/tests/MethodBuilder/MethodBuilderGetGenericArguments.cs index aebde174eb5f..220141d05d24 100644 --- a/src/libraries/System.Reflection.Emit/tests/MethodBuilder/MethodBuilderGetGenericArguments.cs +++ b/src/libraries/System.Reflection.Emit/tests/MethodBuilder/MethodBuilderGetGenericArguments.cs @@ -14,7 +14,7 @@ public void GetGenericArguments_NonGenericMethod_ReturnsEmptyArray() { TypeBuilder type = Helpers.DynamicType(TypeAttributes.Abstract); MethodBuilder method = type.DefineMethod("Name", MethodAttributes.Public); - Assert.Equal(Array.Empty(), method.GetGenericArguments()); + Assert.Equal(Type.EmptyTypes, method.GetGenericArguments()); } [Fact] diff --git a/src/libraries/System.Reflection.Extensions/System.Reflection.Extensions.sln b/src/libraries/System.Reflection.Extensions/System.Reflection.Extensions.sln index 7cf23a347c2d..44fa107202a5 100644 --- a/src/libraries/System.Reflection.Extensions/System.Reflection.Extensions.sln +++ b/src/libraries/System.Reflection.Extensions/System.Reflection.Extensions.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions.Tests", "tests\System.Reflection.Extensions.Tests.csproj", "{A5E6F8C2-8E71-4148-8806-12FFBDBE2974}" - ProjectSection(ProjectDependencies) = postProject - {26699AB1-DBAC-4819-A1C0-185AB37CF127} = {26699AB1-DBAC-4819-A1C0-185AB37CF127} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{51DFF0B9-72DB-4432-8DBA-551019047723}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions", "src\System.Reflection.Extensions.csproj", "{26699AB1-DBAC-4819-A1C0-185AB37CF127}" - ProjectSection(ProjectDependencies) = postProject - {72E89A6C-1F60-4170-AB7B-14AAD82E293D} = {72E89A6C-1F60-4170-AB7B-14AAD82E293D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions", "ref\System.Reflection.Extensions.csproj", "{72E89A6C-1F60-4170-AB7B-14AAD82E293D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions", "ref\System.Reflection.Extensions.csproj", "{C5FFC3AB-A8EC-430D-B8C7-35A583D0215B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions", "src\System.Reflection.Extensions.csproj", "{2A71A275-D88D-48FA-B35A-CF27ADCF4EA7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Extensions.Tests", "tests\System.Reflection.Extensions.Tests.csproj", "{1519BE4C-D14A-4741-B9BE-1516CDAE91D9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{08A031FF-0E53-4A67-9798-C9E5D48B4A74}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0B9C2467-8461-4AF9-83B1-693D3C154B41}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{432DCBE4-C371-452C-8310-60D84E962154}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{AE211C2F-9943-4E36-804B-8B93A0A1A4C9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{16D489A3-CD82-4834-A0A5-812F7876B5CF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{ACD3F2E0-4537-49A8-826E-2FA2D1895C60}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{29593F27-0ABD-4E2F-905A-402B8BCEEBE8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {51DFF0B9-72DB-4432-8DBA-551019047723} = {16D489A3-CD82-4834-A0A5-812F7876B5CF} + {1519BE4C-D14A-4741-B9BE-1516CDAE91D9} = {16D489A3-CD82-4834-A0A5-812F7876B5CF} + {3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D} = {ACD3F2E0-4537-49A8-826E-2FA2D1895C60} + {C5FFC3AB-A8EC-430D-B8C7-35A583D0215B} = {ACD3F2E0-4537-49A8-826E-2FA2D1895C60} + {08A031FF-0E53-4A67-9798-C9E5D48B4A74} = {ACD3F2E0-4537-49A8-826E-2FA2D1895C60} + {79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F} = {ACD3F2E0-4537-49A8-826E-2FA2D1895C60} + {AE211C2F-9943-4E36-804B-8B93A0A1A4C9} = {ACD3F2E0-4537-49A8-826E-2FA2D1895C60} + {2A71A275-D88D-48FA-B35A-CF27ADCF4EA7} = {29593F27-0ABD-4E2F-905A-402B8BCEEBE8} + {432DCBE4-C371-452C-8310-60D84E962154} = {29593F27-0ABD-4E2F-905A-402B8BCEEBE8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A5E6F8C2-8E71-4148-8806-12FFBDBE2974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5E6F8C2-8E71-4148-8806-12FFBDBE2974}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A5E6F8C2-8E71-4148-8806-12FFBDBE2974}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5E6F8C2-8E71-4148-8806-12FFBDBE2974}.Release|Any CPU.Build.0 = Release|Any CPU - {26699AB1-DBAC-4819-A1C0-185AB37CF127}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26699AB1-DBAC-4819-A1C0-185AB37CF127}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26699AB1-DBAC-4819-A1C0-185AB37CF127}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26699AB1-DBAC-4819-A1C0-185AB37CF127}.Release|Any CPU.Build.0 = Release|Any CPU - {72E89A6C-1F60-4170-AB7B-14AAD82E293D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72E89A6C-1F60-4170-AB7B-14AAD82E293D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72E89A6C-1F60-4170-AB7B-14AAD82E293D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72E89A6C-1F60-4170-AB7B-14AAD82E293D}.Release|Any CPU.Build.0 = Release|Any CPU - {0B9C2467-8461-4AF9-83B1-693D3C154B41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B9C2467-8461-4AF9-83B1-693D3C154B41}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B9C2467-8461-4AF9-83B1-693D3C154B41}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B9C2467-8461-4AF9-83B1-693D3C154B41}.Release|Any CPU.Build.0 = Release|Any CPU + {51DFF0B9-72DB-4432-8DBA-551019047723}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51DFF0B9-72DB-4432-8DBA-551019047723}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51DFF0B9-72DB-4432-8DBA-551019047723}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51DFF0B9-72DB-4432-8DBA-551019047723}.Release|Any CPU.Build.0 = Release|Any CPU + {3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3487F65C-EBD9-4BB9-A51A-5B4F6AE2520D}.Release|Any CPU.Build.0 = Release|Any CPU + {C5FFC3AB-A8EC-430D-B8C7-35A583D0215B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5FFC3AB-A8EC-430D-B8C7-35A583D0215B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5FFC3AB-A8EC-430D-B8C7-35A583D0215B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5FFC3AB-A8EC-430D-B8C7-35A583D0215B}.Release|Any CPU.Build.0 = Release|Any CPU + {2A71A275-D88D-48FA-B35A-CF27ADCF4EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A71A275-D88D-48FA-B35A-CF27ADCF4EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A71A275-D88D-48FA-B35A-CF27ADCF4EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A71A275-D88D-48FA-B35A-CF27ADCF4EA7}.Release|Any CPU.Build.0 = Release|Any CPU + {1519BE4C-D14A-4741-B9BE-1516CDAE91D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1519BE4C-D14A-4741-B9BE-1516CDAE91D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1519BE4C-D14A-4741-B9BE-1516CDAE91D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1519BE4C-D14A-4741-B9BE-1516CDAE91D9}.Release|Any CPU.Build.0 = Release|Any CPU + {08A031FF-0E53-4A67-9798-C9E5D48B4A74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08A031FF-0E53-4A67-9798-C9E5D48B4A74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08A031FF-0E53-4A67-9798-C9E5D48B4A74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08A031FF-0E53-4A67-9798-C9E5D48B4A74}.Release|Any CPU.Build.0 = Release|Any CPU + {432DCBE4-C371-452C-8310-60D84E962154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {432DCBE4-C371-452C-8310-60D84E962154}.Debug|Any CPU.Build.0 = Debug|Any CPU + {432DCBE4-C371-452C-8310-60D84E962154}.Release|Any CPU.ActiveCfg = Release|Any CPU + {432DCBE4-C371-452C-8310-60D84E962154}.Release|Any CPU.Build.0 = Release|Any CPU + {79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79CA8A5B-E7BB-4A65-9AF7-7F3AE7DC6A6F}.Release|Any CPU.Build.0 = Release|Any CPU + {AE211C2F-9943-4E36-804B-8B93A0A1A4C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE211C2F-9943-4E36-804B-8B93A0A1A4C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE211C2F-9943-4E36-804B-8B93A0A1A4C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE211C2F-9943-4E36-804B-8B93A0A1A4C9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A5E6F8C2-8E71-4148-8806-12FFBDBE2974} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {26699AB1-DBAC-4819-A1C0-185AB37CF127} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {72E89A6C-1F60-4170-AB7B-14AAD82E293D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {0B9C2467-8461-4AF9-83B1-693D3C154B41} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FA89C8FE-442C-49BA-80C0-E0EB968BBAE2} + SolutionGuid = {DCEC891D-045E-42C6-B041-3CDA580638ED} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.Extensions/tests/RuntimeReflectionExtensionTests.cs b/src/libraries/System.Reflection.Extensions/tests/RuntimeReflectionExtensionTests.cs index 928db6c0e074..21ee42cf3917 100644 --- a/src/libraries/System.Reflection.Extensions/tests/RuntimeReflectionExtensionTests.cs +++ b/src/libraries/System.Reflection.Extensions/tests/RuntimeReflectionExtensionTests.cs @@ -235,7 +235,7 @@ public void GetRuntimeMethod() } } - Assert.Equal(typeof(TestType).GetMethod("Flush"), typeof(TestType).GetRuntimeMethod("Flush", Array.Empty())); + Assert.Equal(typeof(TestType).GetMethod("Flush"), typeof(TestType).GetRuntimeMethod("Flush", Type.EmptyTypes)); } [Fact] diff --git a/src/libraries/System.Reflection.Metadata/System.Reflection.Metadata.sln b/src/libraries/System.Reflection.Metadata/System.Reflection.Metadata.sln index ca14e0d2744f..35971fd7edff 100644 --- a/src/libraries/System.Reflection.Metadata/System.Reflection.Metadata.sln +++ b/src/libraries/System.Reflection.Metadata/System.Reflection.Metadata.sln @@ -1,67 +1,93 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata.Tests", "tests\System.Reflection.Metadata.Tests.csproj", "{7061832A-E8CF-4AB6-A8DC-44D2F5A43A13}" - ProjectSection(ProjectDependencies) = postProject - {F3E433C8-352F-4944-BF7F-765CE435370D} = {F3E433C8-352F-4944-BF7F-765CE435370D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2231787B-18C9-493C-A102-1E0E6A3D2CD3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "src\System.Reflection.Metadata.csproj", "{F3E433C8-352F-4944-BF7F-765CE435370D}" - ProjectSection(ProjectDependencies) = postProject - {69B25962-B4C2-4295-8809-5653CD03FC75} = {69B25962-B4C2-4295-8809-5653CD03FC75} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6FB0D012-27EC-49EB-B41C-A01DDE2937ED}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "ref\System.Reflection.Metadata.csproj", "{69B25962-B4C2-4295-8809-5653CD03FC75}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{A69B0EE0-BE0C-4D53-A16F-5465028D975D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "ref\System.Reflection.Metadata.csproj", "{587255BE-DC22-4B85-9E3F-02325E7B4FF7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "src\System.Reflection.Metadata.csproj", "{B905521A-FE25-4D35-9929-B2622F590263}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata.Tests", "tests\System.Reflection.Metadata.Tests.csproj", "{7EE935DD-2F8B-4C72-BACF-5DB95DE080BE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CCCF36A6-276A-480E-B558-0BEF01ECD74B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{00147002-F430-4E24-95F8-5E79A4D24AE2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{2E24036E-7AFA-4C91-B6B5-BAA919B3BA74}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{5E36AB65-74DD-47F5-8F2E-9050561BBFEE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{632AE256-CA0A-4EBA-8D64-F9988CDC459D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{31FAA062-EF3C-4F4D-AF64-A6130F92A737}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B332ED71-1937-4B24-8519-AE665C23DD2F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C5FDAE2B-91DB-488B-A833-10D7E800447D}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {2231787B-18C9-493C-A102-1E0E6A3D2CD3} = {31FAA062-EF3C-4F4D-AF64-A6130F92A737} + {7EE935DD-2F8B-4C72-BACF-5DB95DE080BE} = {31FAA062-EF3C-4F4D-AF64-A6130F92A737} + {6FB0D012-27EC-49EB-B41C-A01DDE2937ED} = {B332ED71-1937-4B24-8519-AE665C23DD2F} + {587255BE-DC22-4B85-9E3F-02325E7B4FF7} = {B332ED71-1937-4B24-8519-AE665C23DD2F} + {00147002-F430-4E24-95F8-5E79A4D24AE2} = {B332ED71-1937-4B24-8519-AE665C23DD2F} + {632AE256-CA0A-4EBA-8D64-F9988CDC459D} = {B332ED71-1937-4B24-8519-AE665C23DD2F} + {82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251} = {B332ED71-1937-4B24-8519-AE665C23DD2F} + {A69B0EE0-BE0C-4D53-A16F-5465028D975D} = {C5FDAE2B-91DB-488B-A833-10D7E800447D} + {B905521A-FE25-4D35-9929-B2622F590263} = {C5FDAE2B-91DB-488B-A833-10D7E800447D} + {5E36AB65-74DD-47F5-8F2E-9050561BBFEE} = {C5FDAE2B-91DB-488B-A833-10D7E800447D} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7061832A-E8CF-4AB6-A8DC-44D2F5A43A13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7061832A-E8CF-4AB6-A8DC-44D2F5A43A13}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7061832A-E8CF-4AB6-A8DC-44D2F5A43A13}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7061832A-E8CF-4AB6-A8DC-44D2F5A43A13}.Release|Any CPU.Build.0 = Release|Any CPU - {F3E433C8-352F-4944-BF7F-765CE435370D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3E433C8-352F-4944-BF7F-765CE435370D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3E433C8-352F-4944-BF7F-765CE435370D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3E433C8-352F-4944-BF7F-765CE435370D}.Release|Any CPU.Build.0 = Release|Any CPU - {69B25962-B4C2-4295-8809-5653CD03FC75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69B25962-B4C2-4295-8809-5653CD03FC75}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69B25962-B4C2-4295-8809-5653CD03FC75}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69B25962-B4C2-4295-8809-5653CD03FC75}.Release|Any CPU.Build.0 = Release|Any CPU - {CCCF36A6-276A-480E-B558-0BEF01ECD74B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCCF36A6-276A-480E-B558-0BEF01ECD74B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCCF36A6-276A-480E-B558-0BEF01ECD74B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCCF36A6-276A-480E-B558-0BEF01ECD74B}.Release|Any CPU.Build.0 = Release|Any CPU - {2E24036E-7AFA-4C91-B6B5-BAA919B3BA74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E24036E-7AFA-4C91-B6B5-BAA919B3BA74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E24036E-7AFA-4C91-B6B5-BAA919B3BA74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E24036E-7AFA-4C91-B6B5-BAA919B3BA74}.Release|Any CPU.Build.0 = Release|Any CPU + {2231787B-18C9-493C-A102-1E0E6A3D2CD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2231787B-18C9-493C-A102-1E0E6A3D2CD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2231787B-18C9-493C-A102-1E0E6A3D2CD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2231787B-18C9-493C-A102-1E0E6A3D2CD3}.Release|Any CPU.Build.0 = Release|Any CPU + {6FB0D012-27EC-49EB-B41C-A01DDE2937ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FB0D012-27EC-49EB-B41C-A01DDE2937ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FB0D012-27EC-49EB-B41C-A01DDE2937ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FB0D012-27EC-49EB-B41C-A01DDE2937ED}.Release|Any CPU.Build.0 = Release|Any CPU + {A69B0EE0-BE0C-4D53-A16F-5465028D975D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A69B0EE0-BE0C-4D53-A16F-5465028D975D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A69B0EE0-BE0C-4D53-A16F-5465028D975D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A69B0EE0-BE0C-4D53-A16F-5465028D975D}.Release|Any CPU.Build.0 = Release|Any CPU + {587255BE-DC22-4B85-9E3F-02325E7B4FF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {587255BE-DC22-4B85-9E3F-02325E7B4FF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {587255BE-DC22-4B85-9E3F-02325E7B4FF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {587255BE-DC22-4B85-9E3F-02325E7B4FF7}.Release|Any CPU.Build.0 = Release|Any CPU + {B905521A-FE25-4D35-9929-B2622F590263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B905521A-FE25-4D35-9929-B2622F590263}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B905521A-FE25-4D35-9929-B2622F590263}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B905521A-FE25-4D35-9929-B2622F590263}.Release|Any CPU.Build.0 = Release|Any CPU + {7EE935DD-2F8B-4C72-BACF-5DB95DE080BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EE935DD-2F8B-4C72-BACF-5DB95DE080BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EE935DD-2F8B-4C72-BACF-5DB95DE080BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EE935DD-2F8B-4C72-BACF-5DB95DE080BE}.Release|Any CPU.Build.0 = Release|Any CPU + {00147002-F430-4E24-95F8-5E79A4D24AE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00147002-F430-4E24-95F8-5E79A4D24AE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00147002-F430-4E24-95F8-5E79A4D24AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00147002-F430-4E24-95F8-5E79A4D24AE2}.Release|Any CPU.Build.0 = Release|Any CPU + {5E36AB65-74DD-47F5-8F2E-9050561BBFEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E36AB65-74DD-47F5-8F2E-9050561BBFEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E36AB65-74DD-47F5-8F2E-9050561BBFEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E36AB65-74DD-47F5-8F2E-9050561BBFEE}.Release|Any CPU.Build.0 = Release|Any CPU + {632AE256-CA0A-4EBA-8D64-F9988CDC459D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {632AE256-CA0A-4EBA-8D64-F9988CDC459D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {632AE256-CA0A-4EBA-8D64-F9988CDC459D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {632AE256-CA0A-4EBA-8D64-F9988CDC459D}.Release|Any CPU.Build.0 = Release|Any CPU + {82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82DC5DDA-CCFD-4F67-9D15-9BAD27FB4251}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7061832A-E8CF-4AB6-A8DC-44D2F5A43A13} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F3E433C8-352F-4944-BF7F-765CE435370D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {69B25962-B4C2-4295-8809-5653CD03FC75} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {CCCF36A6-276A-480E-B558-0BEF01ECD74B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2E24036E-7AFA-4C91-B6B5-BAA919B3BA74} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F6593193-C664-402E-987E-54EDBA862D77} + SolutionGuid = {64BB97AB-FD23-40BA-B638-FE4756AE6452} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.MetadataLoadContext/System.Reflection.MetadataLoadContext.sln b/src/libraries/System.Reflection.MetadataLoadContext/System.Reflection.MetadataLoadContext.sln index c5506d255f7f..c2802ec31776 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/System.Reflection.MetadataLoadContext.sln +++ b/src/libraries/System.Reflection.MetadataLoadContext/System.Reflection.MetadataLoadContext.sln @@ -1,60 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext.Tests", "tests\System.Reflection.MetadataLoadContext.Tests.csproj", "{443B7659-B3FA-4B32-88BA-3A0517E21018}" - ProjectSection(ProjectDependencies) = postProject - {DBB18588-DD89-4F41-9852-484FD4726F0F} = {DBB18588-DD89-4F41-9852-484FD4726F0F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6A69770F-4F95-411F-ACAE-2B902EB62161}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext", "src\System.Reflection.MetadataLoadContext.csproj", "{DBB18588-DD89-4F41-9852-484FD4726F0F}" - ProjectSection(ProjectDependencies) = postProject - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D} = {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext", "ref\System.Reflection.MetadataLoadContext.csproj", "{EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{499E5241-B46A-4161-A27C-C6D599070148}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext", "ref\System.Reflection.MetadataLoadContext.csproj", "{45C9DD05-BD43-49EB-84C3-668200358062}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext", "src\System.Reflection.MetadataLoadContext.csproj", "{DD06D785-53D2-4C11-895C-E9A24E23E276}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{74668CA1-2F2C-4B5C-85DD-15AA365F3B80}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.MetadataLoadContext.Tests", "tests\System.Reflection.MetadataLoadContext.Tests.csproj", "{D28B6414-C82C-4BDE-B8BB-A4E3297A0651}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{89A190B3-9568-4057-A032-7D28262D51F5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B5FC4A9B-CBD2-4102-A1E8-60B822AAD619}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{065DA073-2045-4168-BCE6-7E5B2245D5F6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{780EAF31-E4BD-40DE-87C8-588B284C5FB3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0806A916-C13E-4F4A-8900-F3374B9B3B06}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CAFF6330-84DA-4975-BAB1-1389D3E397C3}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {6A69770F-4F95-411F-ACAE-2B902EB62161} = {780EAF31-E4BD-40DE-87C8-588B284C5FB3} + {D28B6414-C82C-4BDE-B8BB-A4E3297A0651} = {780EAF31-E4BD-40DE-87C8-588B284C5FB3} + {006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4} = {0806A916-C13E-4F4A-8900-F3374B9B3B06} + {45C9DD05-BD43-49EB-84C3-668200358062} = {0806A916-C13E-4F4A-8900-F3374B9B3B06} + {89A190B3-9568-4057-A032-7D28262D51F5} = {0806A916-C13E-4F4A-8900-F3374B9B3B06} + {59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1} = {0806A916-C13E-4F4A-8900-F3374B9B3B06} + {065DA073-2045-4168-BCE6-7E5B2245D5F6} = {0806A916-C13E-4F4A-8900-F3374B9B3B06} + {DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C} = {CAFF6330-84DA-4975-BAB1-1389D3E397C3} + {499E5241-B46A-4161-A27C-C6D599070148} = {CAFF6330-84DA-4975-BAB1-1389D3E397C3} + {DD06D785-53D2-4C11-895C-E9A24E23E276} = {CAFF6330-84DA-4975-BAB1-1389D3E397C3} + {B5FC4A9B-CBD2-4102-A1E8-60B822AAD619} = {CAFF6330-84DA-4975-BAB1-1389D3E397C3} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {443B7659-B3FA-4B32-88BA-3A0517E21018}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {443B7659-B3FA-4B32-88BA-3A0517E21018}.Debug|Any CPU.Build.0 = Debug|Any CPU - {443B7659-B3FA-4B32-88BA-3A0517E21018}.Release|Any CPU.ActiveCfg = Release|Any CPU - {443B7659-B3FA-4B32-88BA-3A0517E21018}.Release|Any CPU.Build.0 = Release|Any CPU - {DBB18588-DD89-4F41-9852-484FD4726F0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBB18588-DD89-4F41-9852-484FD4726F0F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBB18588-DD89-4F41-9852-484FD4726F0F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DBB18588-DD89-4F41-9852-484FD4726F0F}.Release|Any CPU.Build.0 = Release|Any CPU - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D}.Release|Any CPU.Build.0 = Release|Any CPU - {74668CA1-2F2C-4B5C-85DD-15AA365F3B80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74668CA1-2F2C-4B5C-85DD-15AA365F3B80}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74668CA1-2F2C-4B5C-85DD-15AA365F3B80}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74668CA1-2F2C-4B5C-85DD-15AA365F3B80}.Release|Any CPU.Build.0 = Release|Any CPU + {6A69770F-4F95-411F-ACAE-2B902EB62161}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A69770F-4F95-411F-ACAE-2B902EB62161}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A69770F-4F95-411F-ACAE-2B902EB62161}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A69770F-4F95-411F-ACAE-2B902EB62161}.Release|Any CPU.Build.0 = Release|Any CPU + {006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {006B9B5D-DCC4-442B-ADBD-9FEAEC1487F4}.Release|Any CPU.Build.0 = Release|Any CPU + {DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDDE44A1-86F6-49C5-8DA5-5630C9F1E41C}.Release|Any CPU.Build.0 = Release|Any CPU + {499E5241-B46A-4161-A27C-C6D599070148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {499E5241-B46A-4161-A27C-C6D599070148}.Debug|Any CPU.Build.0 = Debug|Any CPU + {499E5241-B46A-4161-A27C-C6D599070148}.Release|Any CPU.ActiveCfg = Release|Any CPU + {499E5241-B46A-4161-A27C-C6D599070148}.Release|Any CPU.Build.0 = Release|Any CPU + {45C9DD05-BD43-49EB-84C3-668200358062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45C9DD05-BD43-49EB-84C3-668200358062}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45C9DD05-BD43-49EB-84C3-668200358062}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45C9DD05-BD43-49EB-84C3-668200358062}.Release|Any CPU.Build.0 = Release|Any CPU + {DD06D785-53D2-4C11-895C-E9A24E23E276}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD06D785-53D2-4C11-895C-E9A24E23E276}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD06D785-53D2-4C11-895C-E9A24E23E276}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD06D785-53D2-4C11-895C-E9A24E23E276}.Release|Any CPU.Build.0 = Release|Any CPU + {D28B6414-C82C-4BDE-B8BB-A4E3297A0651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D28B6414-C82C-4BDE-B8BB-A4E3297A0651}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D28B6414-C82C-4BDE-B8BB-A4E3297A0651}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D28B6414-C82C-4BDE-B8BB-A4E3297A0651}.Release|Any CPU.Build.0 = Release|Any CPU + {89A190B3-9568-4057-A032-7D28262D51F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89A190B3-9568-4057-A032-7D28262D51F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89A190B3-9568-4057-A032-7D28262D51F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89A190B3-9568-4057-A032-7D28262D51F5}.Release|Any CPU.Build.0 = Release|Any CPU + {B5FC4A9B-CBD2-4102-A1E8-60B822AAD619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5FC4A9B-CBD2-4102-A1E8-60B822AAD619}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5FC4A9B-CBD2-4102-A1E8-60B822AAD619}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5FC4A9B-CBD2-4102-A1E8-60B822AAD619}.Release|Any CPU.Build.0 = Release|Any CPU + {59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59D8B25F-2367-4CC7-9E47-F6EE6FBA16A1}.Release|Any CPU.Build.0 = Release|Any CPU + {065DA073-2045-4168-BCE6-7E5B2245D5F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {065DA073-2045-4168-BCE6-7E5B2245D5F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {065DA073-2045-4168-BCE6-7E5B2245D5F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {065DA073-2045-4168-BCE6-7E5B2245D5F6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {443B7659-B3FA-4B32-88BA-3A0517E21018} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {DBB18588-DD89-4F41-9852-484FD4726F0F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {EC84D608-71BC-4FE4-86C8-CA30F3B0CC7D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {74668CA1-2F2C-4B5C-85DD-15AA365F3B80} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {34BA9CE0-95B8-42D8-B2E1-84D1EB36A8DD} + SolutionGuid = {CA7F05F8-4589-46FA-9AC5-4F96F2AE890C} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.MetadataLoadContext/src/System/Reflection/TypeLoading/Modules/RoResourceModule.cs b/src/libraries/System.Reflection.MetadataLoadContext/src/System/Reflection/TypeLoading/Modules/RoResourceModule.cs index 8c8183a37fde..9bff8aba7a8f 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/src/System/Reflection/TypeLoading/Modules/RoResourceModule.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/src/System/Reflection/TypeLoading/Modules/RoResourceModule.cs @@ -46,7 +46,7 @@ public sealed override void GetPEKind(out PortableExecutableKinds peKind, out Im public sealed override bool IsResource() => true; - public sealed override Type[] GetTypes() => Array.Empty(); + public sealed override Type[] GetTypes() => Type.EmptyTypes; protected sealed override RoDefinitionType? GetTypeCoreNoCache(ReadOnlySpan ns, ReadOnlySpan name, out Exception? e) { e = new TypeLoadException(SR.Format(SR.TypeNotFound, ns.ToUtf16().AppendTypeName(name.ToUtf16()), Assembly)); diff --git a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/TestUtils/NetStandardBridge.cs b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/TestUtils/NetStandardBridge.cs index 8eba47ba1fbc..95ae7cea3e3e 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/TestUtils/NetStandardBridge.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/TestUtils/NetStandardBridge.cs @@ -43,7 +43,7 @@ public static bool IsByRefLike(this Type t) // public static T CallUsingReflection(this object _this, string name, Type[] parameterTypes = null, object[] arguments = null) { - parameterTypes = parameterTypes ?? Array.Empty(); + parameterTypes = parameterTypes ?? Type.EmptyTypes; arguments = arguments ?? Array.Empty(); Type implementationType = _this.GetType(); MethodInfo m = implementationType.GetMethod(name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.ExactBinding, null, parameterTypes, null); diff --git a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/Type/TypeInvariants.cs b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/Type/TypeInvariants.cs index bb077cd54e44..9a45ff1e0301 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/Type/TypeInvariants.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/Type/TypeInvariants.cs @@ -603,7 +603,7 @@ private static void TestGenericParameterCommonInvariants(this Type type) Assert.True(position >= 0); GenericParameterAttributes attributes = type.GenericParameterAttributes; - Assert.Equal(Array.Empty(), type.GetGenericArguments()); + Assert.Equal(Type.EmptyTypes, type.GetGenericArguments()); Assert.False(type.IsByRefLike()); diff --git a/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln b/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln index 75f81af4ab5d..1f755200fcd0 100644 --- a/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln +++ b/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln @@ -1,41 +1,85 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Primitives", "src\System.Reflection.Primitives.csproj", "{CCE47F37-2C51-44EB-8F54-0474D7831515}" - ProjectSection(ProjectDependencies) = postProject - {F512184F-76E5-4AE5-8AB5-395AF9D18712} = {F512184F-76E5-4AE5-8AB5-395AF9D18712} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{661E0A3D-E151-45B2-AA38-B30F8227A741}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Primitives", "ref\System.Reflection.Primitives.csproj", "{F512184F-76E5-4AE5-8AB5-395AF9D18712}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Primitives", "ref\System.Reflection.Primitives.csproj", "{9D308994-9721-4883-B32D-531FA8D9025B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Primitives", "src\System.Reflection.Primitives.csproj", "{5D40069E-7CC2-4B40-A41D-6B003CCB4075}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DE22D9D3-E245-4F9D-9918-470C1B83907B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8A30346B-26E7-4910-B5EE-A4D5220C726B}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {661E0A3D-E151-45B2-AA38-B30F8227A741} = {DE22D9D3-E245-4F9D-9918-470C1B83907B} + {5D40069E-7CC2-4B40-A41D-6B003CCB4075} = {DE22D9D3-E245-4F9D-9918-470C1B83907B} + {9D308994-9721-4883-B32D-531FA8D9025B} = {8A30346B-26E7-4910-B5EE-A4D5220C726B} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CCE47F37-2C51-44EB-8F54-0474D7831515}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCE47F37-2C51-44EB-8F54-0474D7831515}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCE47F37-2C51-44EB-8F54-0474D7831515}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCE47F37-2C51-44EB-8F54-0474D7831515}.Release|Any CPU.Build.0 = Release|Any CPU - {F512184F-76E5-4AE5-8AB5-395AF9D18712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F512184F-76E5-4AE5-8AB5-395AF9D18712}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F512184F-76E5-4AE5-8AB5-395AF9D18712}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F512184F-76E5-4AE5-8AB5-395AF9D18712}.Release|Any CPU.Build.0 = Release|Any CPU + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|Any CPU.ActiveCfg = Debug|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|Any CPU.Build.0 = Debug|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|x64.ActiveCfg = Debug|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|x64.Build.0 = Debug|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|x86.ActiveCfg = Debug|x86 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Debug|x86.Build.0 = Debug|x86 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|Any CPU.ActiveCfg = Release|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|Any CPU.Build.0 = Release|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|x64.ActiveCfg = Release|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|x64.Build.0 = Release|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|x86.ActiveCfg = Release|x86 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Release|x86.Build.0 = Release|x86 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|Any CPU.ActiveCfg = Checked|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|Any CPU.Build.0 = Checked|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|x64.ActiveCfg = Checked|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|x64.Build.0 = Checked|x64 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|x86.ActiveCfg = Checked|x86 + {661E0A3D-E151-45B2-AA38-B30F8227A741}.Checked|x86.Build.0 = Checked|x86 + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|x64.Build.0 = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Debug|x86.Build.0 = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|Any CPU.Build.0 = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|x64.ActiveCfg = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|x64.Build.0 = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|x86.ActiveCfg = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Release|x86.Build.0 = Release|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Checked|x64.ActiveCfg = Debug|Any CPU + {9D308994-9721-4883-B32D-531FA8D9025B}.Checked|x86.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|x64.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|x64.Build.0 = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Debug|x86.Build.0 = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|Any CPU.Build.0 = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|x64.ActiveCfg = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|x64.Build.0 = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|x86.ActiveCfg = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Release|x86.Build.0 = Release|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Checked|x64.ActiveCfg = Debug|Any CPU + {5D40069E-7CC2-4B40-A41D-6B003CCB4075}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CCE47F37-2C51-44EB-8F54-0474D7831515} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F512184F-76E5-4AE5-8AB5-395AF9D18712} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FAA140C7-CD83-4C95-BD5C-39C39660460A} + SolutionGuid = {C218B18C-E001-417C-A347-A06C0D5DD6AB} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln b/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln index fd5b4d870b7f..305bea700e65 100644 --- a/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln +++ b/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln @@ -1,70 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions.Tests", "tests\System.Reflection.TypeExtensions.Tests.csproj", "{EC8FFAA7-CA1E-4631-A375-D54B1FC764F6}" - ProjectSection(ProjectDependencies) = postProject - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB} = {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3F9D019-086A-4093-BD49-11B6B204D94A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions.CoreCLR.Tests", "tests\CoreCLR\System.Reflection.TypeExtensions.CoreCLR.Tests.csproj", "{BED9F8D5-7420-404E-9EAD-D9148C16EAC1}" - ProjectSection(ProjectDependencies) = postProject - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB} = {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{41438432-4DC0-4724-8C8F-0D100083490F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions", "src\System.Reflection.TypeExtensions.csproj", "{A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB}" - ProjectSection(ProjectDependencies) = postProject - {C303A051-8D54-4460-8BFD-DE10F0473BDB} = {C303A051-8D54-4460-8BFD-DE10F0473BDB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{4593E54A-541B-423F-8666-0A7B3072C3E3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions", "ref\System.Reflection.TypeExtensions.csproj", "{C303A051-8D54-4460-8BFD-DE10F0473BDB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions", "ref\System.Reflection.TypeExtensions.csproj", "{03C0F6B8-A04B-4822-8089-3918F02AD281}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions", "src\System.Reflection.TypeExtensions.csproj", "{B958EACD-B145-4B48-A11B-C5E5B565E311}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TypeExtensions.Tests", "tests\System.Reflection.TypeExtensions.Tests.csproj", "{FEFD49C5-E2A2-411E-ABF4-DE7B58861750}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{DAC9F70E-E22D-45EE-83DD-1AAEAA234954}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A5996CB6-FC83-4352-93A4-6F904D94FEF4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C12B737F-2265-4F48-9BEA-B9023063AC91}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DE5203F1-C29A-4FFA-8037-A9C4B787F9D9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{FD2C9067-B8CE-40C1-BD84-55C6EC52B393}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{5E60EC6A-3DC1-4986-867B-352C6ED80933}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {F3F9D019-086A-4093-BD49-11B6B204D94A} = {DE5203F1-C29A-4FFA-8037-A9C4B787F9D9} + {B958EACD-B145-4B48-A11B-C5E5B565E311} = {DE5203F1-C29A-4FFA-8037-A9C4B787F9D9} + {C12B737F-2265-4F48-9BEA-B9023063AC91} = {DE5203F1-C29A-4FFA-8037-A9C4B787F9D9} + {41438432-4DC0-4724-8C8F-0D100083490F} = {FD2C9067-B8CE-40C1-BD84-55C6EC52B393} + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750} = {FD2C9067-B8CE-40C1-BD84-55C6EC52B393} + {4593E54A-541B-423F-8666-0A7B3072C3E3} = {5E60EC6A-3DC1-4986-867B-352C6ED80933} + {03C0F6B8-A04B-4822-8089-3918F02AD281} = {5E60EC6A-3DC1-4986-867B-352C6ED80933} + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954} = {5E60EC6A-3DC1-4986-867B-352C6ED80933} + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629} = {5E60EC6A-3DC1-4986-867B-352C6ED80933} + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9} = {5E60EC6A-3DC1-4986-867B-352C6ED80933} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EC8FFAA7-CA1E-4631-A375-D54B1FC764F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC8FFAA7-CA1E-4631-A375-D54B1FC764F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC8FFAA7-CA1E-4631-A375-D54B1FC764F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC8FFAA7-CA1E-4631-A375-D54B1FC764F6}.Release|Any CPU.Build.0 = Release|Any CPU - {BED9F8D5-7420-404E-9EAD-D9148C16EAC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BED9F8D5-7420-404E-9EAD-D9148C16EAC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BED9F8D5-7420-404E-9EAD-D9148C16EAC1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BED9F8D5-7420-404E-9EAD-D9148C16EAC1}.Release|Any CPU.Build.0 = Release|Any CPU - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB}.Release|Any CPU.Build.0 = Release|Any CPU - {C303A051-8D54-4460-8BFD-DE10F0473BDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C303A051-8D54-4460-8BFD-DE10F0473BDB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C303A051-8D54-4460-8BFD-DE10F0473BDB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C303A051-8D54-4460-8BFD-DE10F0473BDB}.Release|Any CPU.Build.0 = Release|Any CPU - {A5996CB6-FC83-4352-93A4-6F904D94FEF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5996CB6-FC83-4352-93A4-6F904D94FEF4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A5996CB6-FC83-4352-93A4-6F904D94FEF4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5996CB6-FC83-4352-93A4-6F904D94FEF4}.Release|Any CPU.Build.0 = Release|Any CPU + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|Any CPU.ActiveCfg = Debug|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|Any CPU.Build.0 = Debug|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|x64.ActiveCfg = Debug|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|x64.Build.0 = Debug|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|x86.ActiveCfg = Debug|x86 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Debug|x86.Build.0 = Debug|x86 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|Any CPU.ActiveCfg = Release|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|Any CPU.Build.0 = Release|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|x64.ActiveCfg = Release|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|x64.Build.0 = Release|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|x86.ActiveCfg = Release|x86 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Release|x86.Build.0 = Release|x86 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|Any CPU.ActiveCfg = Checked|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|Any CPU.Build.0 = Checked|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|x64.ActiveCfg = Checked|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|x64.Build.0 = Checked|x64 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|x86.ActiveCfg = Checked|x86 + {F3F9D019-086A-4093-BD49-11B6B204D94A}.Checked|x86.Build.0 = Checked|x86 + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|x64.ActiveCfg = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|x64.Build.0 = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|x86.ActiveCfg = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Debug|x86.Build.0 = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|Any CPU.Build.0 = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|x64.ActiveCfg = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|x64.Build.0 = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|x86.ActiveCfg = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Release|x86.Build.0 = Release|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Checked|x64.ActiveCfg = Debug|Any CPU + {41438432-4DC0-4724-8C8F-0D100083490F}.Checked|x86.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|x64.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|x64.Build.0 = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Debug|x86.Build.0 = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|Any CPU.Build.0 = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|x64.ActiveCfg = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|x64.Build.0 = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|x86.ActiveCfg = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Release|x86.Build.0 = Release|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Checked|x64.ActiveCfg = Debug|Any CPU + {4593E54A-541B-423F-8666-0A7B3072C3E3}.Checked|x86.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|x64.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|x64.Build.0 = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|x86.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Debug|x86.Build.0 = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|Any CPU.Build.0 = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|x64.ActiveCfg = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|x64.Build.0 = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|x86.ActiveCfg = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Release|x86.Build.0 = Release|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Checked|x64.ActiveCfg = Debug|Any CPU + {03C0F6B8-A04B-4822-8089-3918F02AD281}.Checked|x86.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|x64.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|x64.Build.0 = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|x86.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Debug|x86.Build.0 = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|Any CPU.Build.0 = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|x64.ActiveCfg = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|x64.Build.0 = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|x86.ActiveCfg = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Release|x86.Build.0 = Release|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Checked|x64.ActiveCfg = Debug|Any CPU + {B958EACD-B145-4B48-A11B-C5E5B565E311}.Checked|x86.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|x64.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|x64.Build.0 = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|x86.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Debug|x86.Build.0 = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|Any CPU.Build.0 = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|x64.ActiveCfg = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|x64.Build.0 = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|x86.ActiveCfg = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Release|x86.Build.0 = Release|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Checked|x64.ActiveCfg = Debug|Any CPU + {FEFD49C5-E2A2-411E-ABF4-DE7B58861750}.Checked|x86.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|x64.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|x64.Build.0 = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|x86.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Debug|x86.Build.0 = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|Any CPU.Build.0 = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|x64.ActiveCfg = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|x64.Build.0 = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|x86.ActiveCfg = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Release|x86.Build.0 = Release|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Checked|x64.ActiveCfg = Debug|Any CPU + {DAC9F70E-E22D-45EE-83DD-1AAEAA234954}.Checked|x86.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|x64.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|x64.Build.0 = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|x86.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Debug|x86.Build.0 = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|Any CPU.Build.0 = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|x64.ActiveCfg = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|x64.Build.0 = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|x86.ActiveCfg = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Release|x86.Build.0 = Release|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Checked|x64.ActiveCfg = Debug|Any CPU + {C12B737F-2265-4F48-9BEA-B9023063AC91}.Checked|x86.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|x64.Build.0 = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Debug|x86.Build.0 = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|Any CPU.Build.0 = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|x64.ActiveCfg = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|x64.Build.0 = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|x86.ActiveCfg = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Release|x86.Build.0 = Release|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Checked|x64.ActiveCfg = Debug|Any CPU + {6B7AD7F0-9EFE-4BD7-B894-360AC1B7C629}.Checked|x86.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|x64.Build.0 = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|x86.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Debug|x86.Build.0 = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|Any CPU.Build.0 = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|x64.ActiveCfg = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|x64.Build.0 = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|x86.ActiveCfg = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Release|x86.Build.0 = Release|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Checked|x64.ActiveCfg = Debug|Any CPU + {ABA6BAF4-A229-46E5-9493-E27B9E16DDD9}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EC8FFAA7-CA1E-4631-A375-D54B1FC764F6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BED9F8D5-7420-404E-9EAD-D9148C16EAC1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A9EF5E88-1AD9-4545-8AFE-CA0F5F00E2CB} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C303A051-8D54-4460-8BFD-DE10F0473BDB} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {A5996CB6-FC83-4352-93A4-6F904D94FEF4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C367E4AF-ACA6-400F-B583-0F1191136A63} + SolutionGuid = {4A98215D-6F1A-4A70-B579-89B7EF7FC92A} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection/System.Reflection.sln b/src/libraries/System.Reflection/System.Reflection.sln index 02bbcbd0d21f..4ca98e05f231 100644 --- a/src/libraries/System.Reflection/System.Reflection.sln +++ b/src/libraries/System.Reflection/System.Reflection.sln @@ -1,220 +1,501 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests", "tests\System.Reflection.Tests.csproj", "{B027C72E-F04E-42E0-A7F7-993AEF8400D2}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_0_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_0_0_0_0.csproj", "{5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_0_0_0.csproj", "{80696796-DE63-42CA-ACB0-A83E5AA7AE06}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_0_0.csproj", "{E28C7916-1BCE-434A-B045-9F755A00A7C4}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_0.csproj", "{0AC47423-D050-46D4-8C4C-E2D44102FAB6}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_2", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_2.csproj", "{652B7191-D7FE-4889-8E45-1AF7739C0EAD}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_3", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_3.csproj", "{072D1E70-A0A4-44AB-92B8-2F6B772626CC}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_2_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_2_0.csproj", "{3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_3_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_3_0.csproj", "{02758899-6A37-4FF1-B765-F1C38B40BC9C}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_2_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_2_0_0.csproj", "{510CC907-F5AA-432D-AEEB-14A10AE3F811}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_3_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_3_0_0.csproj", "{68AD3675-F57E-4FB3-9943-49E602678BCA}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_3_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_3_0_0_0.csproj", "{42E66302-6F46-47BE-936B-4264DFD6004F}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.CoreCLR.Tests", "tests\CoreCLR\System.Reflection.CoreCLR.Tests.csproj", "{C8049356-559D-4F34-AC17-56F3AE62C897}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ForwardedTypesAssembly", "tests\ForwardedTypesAssembly\ForwardedTypesAssembly.csproj", "{FA12CC14-C4A5-495D-B7AA-651E4BCC1027}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestAssembly", "tests\TestAssembly\TestAssembly.csproj", "{0CD33916-DD1D-4DF3-B579-2896ACE43E45}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TestExe", "tests\TestExe\System.Reflection.TestExe.csproj", "{8C19B991-41E9-4B38-9602-E19375397F1D}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnloadableAssembly", "tests\UnloadableAssembly\UnloadableAssembly.csproj", "{7FFD1B55-D69A-4469-B775-6CBEB1CE50B0}" - ProjectSection(ProjectDependencies) = postProject - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {68F87E68-E13F-4354-A6D6-B44727FE53EE} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection", "src\System.Reflection.csproj", "{68F87E68-E13F-4354-A6D6-B44727FE53EE}" - ProjectSection(ProjectDependencies) = postProject - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6} = {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection", "ref\System.Reflection.csproj", "{23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6A967C5A-994E-4C79-8F94-6004758248B5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{27A1A006-6882-4C70-AB81-775D3D2C95A2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C5A7E7E7-E43B-4C87-9A92-13C3C817E714}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{226E9496-AD41-4304-A7F5-4465CC6EA28C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection", "ref\System.Reflection.csproj", "{319997BC-5DF6-4E23-A768-ED9905690EF4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection", "src\System.Reflection.csproj", "{2A4650E3-E199-41E4-AD2B-32818E57D1C7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_0_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_0_0_0_0.csproj", "{F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_0_0_0.csproj", "{7873C6BF-74FA-4DCF-ADCD-15C75B20132D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_0_0.csproj", "{9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_0.csproj", "{C14AA1F5-6319-4F35-967F-B76E3E7283B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_2", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_2.csproj", "{BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_1_3", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_1_3.csproj", "{F0864C35-F7D0-41BD-B7E8-A54630D9537B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_2_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_2_0.csproj", "{6DACBD8C-A8FF-490D-9434-AB78283C1BDA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_1_3_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_1_3_0.csproj", "{882B2F3F-31C0-4BB0-8289-AEF4378864B4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_2_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_2_0_0.csproj", "{0082F4DC-2BB1-4119-9678-64CE0315B04D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_1_3_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_1_3_0_0.csproj", "{CFF89A7E-E462-4A34-9352-86C908E0F34C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests.Assembly_3_0_0_0", "tests\AssemblyVersion\System.Reflection.Tests.Assembly_3_0_0_0.csproj", "{F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.CoreCLR.Tests", "tests\CoreCLR\System.Reflection.CoreCLR.Tests.csproj", "{CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ForwardedTypesAssembly", "tests\ForwardedTypesAssembly\ForwardedTypesAssembly.csproj", "{006DEC5A-067B-4099-934E-830ABB10BC26}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Tests", "tests\System.Reflection.Tests.csproj", "{F2E5F428-418B-41B9-BF14-36EB67486A71}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestAssembly", "tests\TestAssembly\TestAssembly.csproj", "{E6F16442-FB0F-4666-8309-F8B1EBA5B860}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TestExe", "tests\TestExe\System.Reflection.TestExe.csproj", "{42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnloadableAssembly", "tests\UnloadableAssembly\UnloadableAssembly.csproj", "{C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1030E6C5-CEEF-40BA-AC89-81FB199C0276}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B197B18A-A758-4501-A215-D5C909F39B42}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{642A765A-B942-4EA1-BF20-108D3430CCF5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BE0231B1-3CFA-41A4-AB60-C0FF0BC880D7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3F97F275-688F-4EAC-A30D-858650B6FECC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{75862F17-5D5D-4B17-8678-F5756F038D4B}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {27A1A006-6882-4C70-AB81-775D3D2C95A2} = {BE0231B1-3CFA-41A4-AB60-C0FF0BC880D7} + {2A4650E3-E199-41E4-AD2B-32818E57D1C7} = {BE0231B1-3CFA-41A4-AB60-C0FF0BC880D7} + {B197B18A-A758-4501-A215-D5C909F39B42} = {BE0231B1-3CFA-41A4-AB60-C0FF0BC880D7} + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {C14AA1F5-6319-4F35-967F-B76E3E7283B0} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {F0864C35-F7D0-41BD-B7E8-A54630D9537B} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {882B2F3F-31C0-4BB0-8289-AEF4378864B4} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {0082F4DC-2BB1-4119-9678-64CE0315B04D} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {CFF89A7E-E462-4A34-9352-86C908E0F34C} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {006DEC5A-067B-4099-934E-830ABB10BC26} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {F2E5F428-418B-41B9-BF14-36EB67486A71} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {E6F16442-FB0F-4666-8309-F8B1EBA5B860} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0} = {3F97F275-688F-4EAC-A30D-858650B6FECC} + {226E9496-AD41-4304-A7F5-4465CC6EA28C} = {75862F17-5D5D-4B17-8678-F5756F038D4B} + {319997BC-5DF6-4E23-A768-ED9905690EF4} = {75862F17-5D5D-4B17-8678-F5756F038D4B} + {1030E6C5-CEEF-40BA-AC89-81FB199C0276} = {75862F17-5D5D-4B17-8678-F5756F038D4B} + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305} = {75862F17-5D5D-4B17-8678-F5756F038D4B} + {642A765A-B942-4EA1-BF20-108D3430CCF5} = {75862F17-5D5D-4B17-8678-F5756F038D4B} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B027C72E-F04E-42E0-A7F7-993AEF8400D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B027C72E-F04E-42E0-A7F7-993AEF8400D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B027C72E-F04E-42E0-A7F7-993AEF8400D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B027C72E-F04E-42E0-A7F7-993AEF8400D2}.Release|Any CPU.Build.0 = Release|Any CPU - {5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86}.Release|Any CPU.Build.0 = Release|Any CPU - {80696796-DE63-42CA-ACB0-A83E5AA7AE06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80696796-DE63-42CA-ACB0-A83E5AA7AE06}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80696796-DE63-42CA-ACB0-A83E5AA7AE06}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80696796-DE63-42CA-ACB0-A83E5AA7AE06}.Release|Any CPU.Build.0 = Release|Any CPU - {E28C7916-1BCE-434A-B045-9F755A00A7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E28C7916-1BCE-434A-B045-9F755A00A7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E28C7916-1BCE-434A-B045-9F755A00A7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E28C7916-1BCE-434A-B045-9F755A00A7C4}.Release|Any CPU.Build.0 = Release|Any CPU - {0AC47423-D050-46D4-8C4C-E2D44102FAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0AC47423-D050-46D4-8C4C-E2D44102FAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0AC47423-D050-46D4-8C4C-E2D44102FAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0AC47423-D050-46D4-8C4C-E2D44102FAB6}.Release|Any CPU.Build.0 = Release|Any CPU - {652B7191-D7FE-4889-8E45-1AF7739C0EAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {652B7191-D7FE-4889-8E45-1AF7739C0EAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {652B7191-D7FE-4889-8E45-1AF7739C0EAD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {652B7191-D7FE-4889-8E45-1AF7739C0EAD}.Release|Any CPU.Build.0 = Release|Any CPU - {072D1E70-A0A4-44AB-92B8-2F6B772626CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {072D1E70-A0A4-44AB-92B8-2F6B772626CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {072D1E70-A0A4-44AB-92B8-2F6B772626CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {072D1E70-A0A4-44AB-92B8-2F6B772626CC}.Release|Any CPU.Build.0 = Release|Any CPU - {3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E}.Release|Any CPU.Build.0 = Release|Any CPU - {02758899-6A37-4FF1-B765-F1C38B40BC9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02758899-6A37-4FF1-B765-F1C38B40BC9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02758899-6A37-4FF1-B765-F1C38B40BC9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02758899-6A37-4FF1-B765-F1C38B40BC9C}.Release|Any CPU.Build.0 = Release|Any CPU - {510CC907-F5AA-432D-AEEB-14A10AE3F811}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {510CC907-F5AA-432D-AEEB-14A10AE3F811}.Debug|Any CPU.Build.0 = Debug|Any CPU - {510CC907-F5AA-432D-AEEB-14A10AE3F811}.Release|Any CPU.ActiveCfg = Release|Any CPU - {510CC907-F5AA-432D-AEEB-14A10AE3F811}.Release|Any CPU.Build.0 = Release|Any CPU - {68AD3675-F57E-4FB3-9943-49E602678BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68AD3675-F57E-4FB3-9943-49E602678BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68AD3675-F57E-4FB3-9943-49E602678BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68AD3675-F57E-4FB3-9943-49E602678BCA}.Release|Any CPU.Build.0 = Release|Any CPU - {42E66302-6F46-47BE-936B-4264DFD6004F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42E66302-6F46-47BE-936B-4264DFD6004F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42E66302-6F46-47BE-936B-4264DFD6004F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42E66302-6F46-47BE-936B-4264DFD6004F}.Release|Any CPU.Build.0 = Release|Any CPU - {C8049356-559D-4F34-AC17-56F3AE62C897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C8049356-559D-4F34-AC17-56F3AE62C897}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C8049356-559D-4F34-AC17-56F3AE62C897}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C8049356-559D-4F34-AC17-56F3AE62C897}.Release|Any CPU.Build.0 = Release|Any CPU - {FA12CC14-C4A5-495D-B7AA-651E4BCC1027}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA12CC14-C4A5-495D-B7AA-651E4BCC1027}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA12CC14-C4A5-495D-B7AA-651E4BCC1027}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA12CC14-C4A5-495D-B7AA-651E4BCC1027}.Release|Any CPU.Build.0 = Release|Any CPU - {0CD33916-DD1D-4DF3-B579-2896ACE43E45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CD33916-DD1D-4DF3-B579-2896ACE43E45}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CD33916-DD1D-4DF3-B579-2896ACE43E45}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CD33916-DD1D-4DF3-B579-2896ACE43E45}.Release|Any CPU.Build.0 = Release|Any CPU - {8C19B991-41E9-4B38-9602-E19375397F1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8C19B991-41E9-4B38-9602-E19375397F1D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C19B991-41E9-4B38-9602-E19375397F1D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8C19B991-41E9-4B38-9602-E19375397F1D}.Release|Any CPU.Build.0 = Release|Any CPU - {7FFD1B55-D69A-4469-B775-6CBEB1CE50B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7FFD1B55-D69A-4469-B775-6CBEB1CE50B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7FFD1B55-D69A-4469-B775-6CBEB1CE50B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7FFD1B55-D69A-4469-B775-6CBEB1CE50B0}.Release|Any CPU.Build.0 = Release|Any CPU - {68F87E68-E13F-4354-A6D6-B44727FE53EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68F87E68-E13F-4354-A6D6-B44727FE53EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68F87E68-E13F-4354-A6D6-B44727FE53EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68F87E68-E13F-4354-A6D6-B44727FE53EE}.Release|Any CPU.Build.0 = Release|Any CPU - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6}.Release|Any CPU.Build.0 = Release|Any CPU - {6A967C5A-994E-4C79-8F94-6004758248B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A967C5A-994E-4C79-8F94-6004758248B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A967C5A-994E-4C79-8F94-6004758248B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A967C5A-994E-4C79-8F94-6004758248B5}.Release|Any CPU.Build.0 = Release|Any CPU + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|Any CPU.ActiveCfg = Debug|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|Any CPU.Build.0 = Debug|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|x64.ActiveCfg = Debug|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|x64.Build.0 = Debug|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|x86.ActiveCfg = Debug|x86 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Debug|x86.Build.0 = Debug|x86 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|Any CPU.ActiveCfg = Release|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|Any CPU.Build.0 = Release|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|x64.ActiveCfg = Release|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|x64.Build.0 = Release|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|x86.ActiveCfg = Release|x86 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Release|x86.Build.0 = Release|x86 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|Any CPU.ActiveCfg = Checked|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|Any CPU.Build.0 = Checked|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|x64.ActiveCfg = Checked|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|x64.Build.0 = Checked|x64 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|x86.ActiveCfg = Checked|x86 + {27A1A006-6882-4C70-AB81-775D3D2C95A2}.Checked|x86.Build.0 = Checked|x86 + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|x64.ActiveCfg = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|x64.Build.0 = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|x86.ActiveCfg = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Debug|x86.Build.0 = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|Any CPU.Build.0 = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|x64.ActiveCfg = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|x64.Build.0 = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|x86.ActiveCfg = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Release|x86.Build.0 = Release|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Checked|x64.ActiveCfg = Debug|Any CPU + {C5A7E7E7-E43B-4C87-9A92-13C3C817E714}.Checked|x86.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|x64.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|x64.Build.0 = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|x86.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Debug|x86.Build.0 = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|Any CPU.Build.0 = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|x64.ActiveCfg = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|x64.Build.0 = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|x86.ActiveCfg = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Release|x86.Build.0 = Release|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Checked|x64.ActiveCfg = Debug|Any CPU + {226E9496-AD41-4304-A7F5-4465CC6EA28C}.Checked|x86.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|x64.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|x64.Build.0 = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Debug|x86.Build.0 = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|Any CPU.Build.0 = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|x64.ActiveCfg = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|x64.Build.0 = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|x86.ActiveCfg = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Release|x86.Build.0 = Release|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Checked|x64.ActiveCfg = Debug|Any CPU + {319997BC-5DF6-4E23-A768-ED9905690EF4}.Checked|x86.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|x64.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|x64.Build.0 = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Debug|x86.Build.0 = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|Any CPU.Build.0 = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|x64.ActiveCfg = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|x64.Build.0 = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|x86.ActiveCfg = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Release|x86.Build.0 = Release|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Checked|x64.ActiveCfg = Debug|Any CPU + {2A4650E3-E199-41E4-AD2B-32818E57D1C7}.Checked|x86.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|x64.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|x64.Build.0 = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|x86.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Debug|x86.Build.0 = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|Any CPU.Build.0 = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|x64.ActiveCfg = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|x64.Build.0 = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|x86.ActiveCfg = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Release|x86.Build.0 = Release|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Checked|x64.ActiveCfg = Debug|Any CPU + {F5998D9E-69A3-4F43-9AA5-B1BB33B54C64}.Checked|x86.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|x64.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|x64.Build.0 = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|x86.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Debug|x86.Build.0 = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|Any CPU.Build.0 = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|x64.ActiveCfg = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|x64.Build.0 = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|x86.ActiveCfg = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Release|x86.Build.0 = Release|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Checked|x64.ActiveCfg = Debug|Any CPU + {7873C6BF-74FA-4DCF-ADCD-15C75B20132D}.Checked|x86.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|x64.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|x64.Build.0 = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|x86.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Debug|x86.Build.0 = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|Any CPU.Build.0 = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|x64.ActiveCfg = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|x64.Build.0 = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|x86.ActiveCfg = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Release|x86.Build.0 = Release|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Checked|x64.ActiveCfg = Debug|Any CPU + {9A5D32AB-91C7-4439-8ACA-4F17252EA3F1}.Checked|x86.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|x64.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|x64.Build.0 = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|x86.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Debug|x86.Build.0 = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|Any CPU.Build.0 = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|x64.ActiveCfg = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|x64.Build.0 = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|x86.ActiveCfg = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Release|x86.Build.0 = Release|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Checked|x64.ActiveCfg = Debug|Any CPU + {C14AA1F5-6319-4F35-967F-B76E3E7283B0}.Checked|x86.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|x64.Build.0 = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Debug|x86.Build.0 = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|Any CPU.Build.0 = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|x64.ActiveCfg = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|x64.Build.0 = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|x86.ActiveCfg = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Release|x86.Build.0 = Release|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Checked|x64.ActiveCfg = Debug|Any CPU + {BB496AA6-1841-4A40-A5B5-2DFB7F04CC7A}.Checked|x86.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|x64.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|x64.Build.0 = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|x86.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Debug|x86.Build.0 = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|Any CPU.Build.0 = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|x64.ActiveCfg = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|x64.Build.0 = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|x86.ActiveCfg = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Release|x86.Build.0 = Release|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Checked|x64.ActiveCfg = Debug|Any CPU + {F0864C35-F7D0-41BD-B7E8-A54630D9537B}.Checked|x86.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|x64.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|x64.Build.0 = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|x86.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Debug|x86.Build.0 = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|Any CPU.Build.0 = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|x64.ActiveCfg = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|x64.Build.0 = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|x86.ActiveCfg = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Release|x86.Build.0 = Release|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Checked|x64.ActiveCfg = Debug|Any CPU + {6DACBD8C-A8FF-490D-9434-AB78283C1BDA}.Checked|x86.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|x64.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|x64.Build.0 = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|x86.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Debug|x86.Build.0 = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|Any CPU.Build.0 = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|x64.ActiveCfg = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|x64.Build.0 = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|x86.ActiveCfg = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Release|x86.Build.0 = Release|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Checked|x64.ActiveCfg = Debug|Any CPU + {882B2F3F-31C0-4BB0-8289-AEF4378864B4}.Checked|x86.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|x64.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|x64.Build.0 = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|x86.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Debug|x86.Build.0 = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|Any CPU.Build.0 = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|x64.ActiveCfg = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|x64.Build.0 = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|x86.ActiveCfg = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Release|x86.Build.0 = Release|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Checked|x64.ActiveCfg = Debug|Any CPU + {0082F4DC-2BB1-4119-9678-64CE0315B04D}.Checked|x86.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|x64.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|x64.Build.0 = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|x86.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Debug|x86.Build.0 = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|Any CPU.Build.0 = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|x64.ActiveCfg = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|x64.Build.0 = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|x86.ActiveCfg = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Release|x86.Build.0 = Release|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Checked|x64.ActiveCfg = Debug|Any CPU + {CFF89A7E-E462-4A34-9352-86C908E0F34C}.Checked|x86.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|x64.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|x64.Build.0 = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|x86.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Debug|x86.Build.0 = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|Any CPU.Build.0 = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|x64.ActiveCfg = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|x64.Build.0 = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|x86.ActiveCfg = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Release|x86.Build.0 = Release|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Checked|x64.ActiveCfg = Debug|Any CPU + {F262C9E1-EBC3-4EC2-9CF7-AD266BDD9F58}.Checked|x86.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|x64.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|x64.Build.0 = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|x86.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Debug|x86.Build.0 = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|Any CPU.Build.0 = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|x64.ActiveCfg = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|x64.Build.0 = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|x86.ActiveCfg = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Release|x86.Build.0 = Release|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Checked|x64.ActiveCfg = Debug|Any CPU + {CCB3A96A-9DCA-49F1-A1D6-80D0395C1DD3}.Checked|x86.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|x64.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|x64.Build.0 = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|x86.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Debug|x86.Build.0 = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|Any CPU.Build.0 = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|x64.ActiveCfg = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|x64.Build.0 = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|x86.ActiveCfg = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Release|x86.Build.0 = Release|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Checked|x64.ActiveCfg = Debug|Any CPU + {006DEC5A-067B-4099-934E-830ABB10BC26}.Checked|x86.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|x64.Build.0 = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|x86.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Debug|x86.Build.0 = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|Any CPU.Build.0 = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|x64.ActiveCfg = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|x64.Build.0 = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|x86.ActiveCfg = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Release|x86.Build.0 = Release|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Checked|x64.ActiveCfg = Debug|Any CPU + {F2E5F428-418B-41B9-BF14-36EB67486A71}.Checked|x86.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|x64.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|x64.Build.0 = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|x86.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Debug|x86.Build.0 = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|Any CPU.Build.0 = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|x64.ActiveCfg = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|x64.Build.0 = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|x86.ActiveCfg = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Release|x86.Build.0 = Release|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Checked|x64.ActiveCfg = Debug|Any CPU + {E6F16442-FB0F-4666-8309-F8B1EBA5B860}.Checked|x86.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|x64.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|x64.Build.0 = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|x86.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Debug|x86.Build.0 = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|Any CPU.Build.0 = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|x64.ActiveCfg = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|x64.Build.0 = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|x86.ActiveCfg = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Release|x86.Build.0 = Release|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Checked|x64.ActiveCfg = Debug|Any CPU + {42BEE4BD-C378-41C5-A94F-4EA01F8D6E88}.Checked|x86.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|x64.Build.0 = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Debug|x86.Build.0 = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|Any CPU.Build.0 = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|x64.ActiveCfg = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|x64.Build.0 = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|x86.ActiveCfg = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Release|x86.Build.0 = Release|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Checked|x64.ActiveCfg = Debug|Any CPU + {C4AF78A8-28D7-434B-8F85-0B0E902AF8E0}.Checked|x86.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|x64.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|x64.Build.0 = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|x86.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Debug|x86.Build.0 = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|Any CPU.Build.0 = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|x64.ActiveCfg = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|x64.Build.0 = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|x86.ActiveCfg = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Release|x86.Build.0 = Release|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Checked|x64.ActiveCfg = Debug|Any CPU + {1030E6C5-CEEF-40BA-AC89-81FB199C0276}.Checked|x86.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|x64.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|x64.Build.0 = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|x86.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Debug|x86.Build.0 = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|Any CPU.Build.0 = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|x64.ActiveCfg = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|x64.Build.0 = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|x86.ActiveCfg = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Release|x86.Build.0 = Release|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Checked|x64.ActiveCfg = Debug|Any CPU + {B197B18A-A758-4501-A215-D5C909F39B42}.Checked|x86.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|x64.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|x64.Build.0 = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|x86.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Debug|x86.Build.0 = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|Any CPU.Build.0 = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|x64.ActiveCfg = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|x64.Build.0 = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|x86.ActiveCfg = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Release|x86.Build.0 = Release|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Checked|x64.ActiveCfg = Debug|Any CPU + {B12B1AFB-D2BD-48D9-B2F7-3E1439E9B305}.Checked|x86.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|x64.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|x64.Build.0 = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|x86.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Debug|x86.Build.0 = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|Any CPU.Build.0 = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|x64.ActiveCfg = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|x64.Build.0 = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|x86.ActiveCfg = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Release|x86.Build.0 = Release|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Checked|x64.ActiveCfg = Debug|Any CPU + {642A765A-B942-4EA1-BF20-108D3430CCF5}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B027C72E-F04E-42E0-A7F7-993AEF8400D2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5B003EB4-DD06-4BC6-B2E9-A9F0E445CB86} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {80696796-DE63-42CA-ACB0-A83E5AA7AE06} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E28C7916-1BCE-434A-B045-9F755A00A7C4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0AC47423-D050-46D4-8C4C-E2D44102FAB6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {652B7191-D7FE-4889-8E45-1AF7739C0EAD} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {072D1E70-A0A4-44AB-92B8-2F6B772626CC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3E30213F-6E59-4BE8-BF4A-64D2AAED5B2E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {02758899-6A37-4FF1-B765-F1C38B40BC9C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {510CC907-F5AA-432D-AEEB-14A10AE3F811} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {68AD3675-F57E-4FB3-9943-49E602678BCA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {42E66302-6F46-47BE-936B-4264DFD6004F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C8049356-559D-4F34-AC17-56F3AE62C897} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FA12CC14-C4A5-495D-B7AA-651E4BCC1027} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0CD33916-DD1D-4DF3-B579-2896ACE43E45} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8C19B991-41E9-4B38-9602-E19375397F1D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7FFD1B55-D69A-4469-B775-6CBEB1CE50B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {68F87E68-E13F-4354-A6D6-B44727FE53EE} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {23B83DCB-45FD-4C8F-A6FB-C6799FB52BA6} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {6A967C5A-994E-4C79-8F94-6004758248B5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B5B0C0E5-87B2-4FEB-8411-A1843B24537E} + SolutionGuid = {8439AF1D-1B47-4BB3-A6C5-3B34D114C9F3} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Reflection/tests/CustomAttributeTests.cs b/src/libraries/System.Reflection/tests/CustomAttributeTests.cs new file mode 100644 index 000000000000..bb9c928b5422 --- /dev/null +++ b/src/libraries/System.Reflection/tests/CustomAttributeTests.cs @@ -0,0 +1,80 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace System.Reflection.Tests +{ + public class CustomAttributeTests + { + private class SameTypesAttribute : Attribute + { + public object[] ObjectArray1 { get; set; } + public object[] ObjectArray2 { get; set; } + } + + [SameTypes(ObjectArray1 = null, ObjectArray2 = new object[] { "" })] + private class SameTypesClass1 { } + + [SameTypes(ObjectArray1 = new object[] { "" }, ObjectArray2 = null)] + private class SameTypesClass2 { } + + [Fact] + public void AttributeWithSamePropertyTypes() + { + SameTypesAttribute attr; + + attr = typeof(SameTypesClass1) + .GetCustomAttributes(typeof(SameTypesAttribute), true) + .Cast() + .Single(); + + Assert.Null(attr.ObjectArray1); + Assert.Equal(1, attr.ObjectArray2.Length); + + attr = typeof(SameTypesClass2) + .GetCustomAttributes(typeof(SameTypesAttribute), true) + .Cast() + .Single(); + + Assert.Equal(1, attr.ObjectArray1.Length); + Assert.Null(attr.ObjectArray2); + } + + private class DifferentTypesAttribute : Attribute + { + public object[] ObjectArray { get; set; } + public string[] StringArray { get; set; } + } + + [DifferentTypes(ObjectArray = null, StringArray = new[] { "" })] + private class DifferentTypesClass1 { } + + [DifferentTypes(ObjectArray = new object[] { "" }, StringArray = null)] + private class DifferentTypesClass2 { } + + [Fact] + public void AttributeWithDifferentPropertyTypes() + { + DifferentTypesAttribute attr; + + attr = typeof(DifferentTypesClass1) + .GetCustomAttributes(typeof(DifferentTypesAttribute), true) + .Cast() + .Single(); + + Assert.Null(attr.ObjectArray); + Assert.Equal(1, attr.StringArray.Length); + + attr = typeof(DifferentTypesClass2) + .GetCustomAttributes(typeof(DifferentTypesAttribute), true) + .Cast() + .Single(); + + Assert.Equal(1, attr.ObjectArray.Length); + Assert.Null(attr.StringArray); + } + } +} diff --git a/src/libraries/System.Reflection/tests/System.Reflection.Tests.csproj b/src/libraries/System.Reflection/tests/System.Reflection.Tests.csproj index f480b9783c53..5b4ff2785839 100644 --- a/src/libraries/System.Reflection/tests/System.Reflection.Tests.csproj +++ b/src/libraries/System.Reflection/tests/System.Reflection.Tests.csproj @@ -17,6 +17,7 @@ + diff --git a/src/libraries/System.Resources.Extensions/System.Resources.Extensions.sln b/src/libraries/System.Resources.Extensions/System.Resources.Extensions.sln index 643ee9fd0dd8..21784951f053 100644 --- a/src/libraries/System.Resources.Extensions/System.Resources.Extensions.sln +++ b/src/libraries/System.Resources.Extensions/System.Resources.Extensions.sln @@ -1,60 +1,121 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions.Tests", "tests\System.Resources.Extensions.Tests.csproj", "{9003846C-EE54-4E58-B01E-6AA177E046C5}" - ProjectSection(ProjectDependencies) = postProject - {6773D354-A573-4D9C-9A67-C7FAE579DA50} = {6773D354-A573-4D9C-9A67-C7FAE579DA50} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{174DC291-4C4A-41D0-B351-8054872AB46A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions", "src\System.Resources.Extensions.csproj", "{6773D354-A573-4D9C-9A67-C7FAE579DA50}" - ProjectSection(ProjectDependencies) = postProject - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255} = {D8C148D2-FAB2-4D8C-ACA3-D201665F7255} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions", "ref\System.Resources.Extensions.csproj", "{D8C148D2-FAB2-4D8C-ACA3-D201665F7255}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{FA674D4C-E1D0-45F0-A5AF-D696AA4B1298}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{29B47E47-914A-499D-A5A4-ED8C2BE44834}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\src\System.Drawing.Common.csproj", "{2B34DE46-1915-46F7-BD5C-2C8A3B8D1113}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{76A32F57-10F9-41A2-BC98-095A063A699C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions", "ref\System.Resources.Extensions.csproj", "{464BD919-594A-4662-B061-D028CB8F3556}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions", "src\System.Resources.Extensions.csproj", "{F826EEA7-C53C-4C46-8715-D3E9FACB9ED5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Extensions.Tests", "tests\System.Resources.Extensions.Tests.csproj", "{F4A98D66-BA15-4C42-94A9-4732965A969A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CF497346-A933-4E56-B57F-88067FB122CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{93EB0678-AE79-4C68-BC15-AB09DADA26E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{0174A61A-7E2B-47FC-9CB7-E9EABB898820}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{55F66913-8E94-4522-B50B-4BDB514EBBD9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{38B51762-57C2-4123-9A09-455CA930A995}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8965D959-2906-45B1-A66A-42165A1B42C7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {174DC291-4C4A-41D0-B351-8054872AB46A} = {55F66913-8E94-4522-B50B-4BDB514EBBD9} + {F4A98D66-BA15-4C42-94A9-4732965A969A} = {55F66913-8E94-4522-B50B-4BDB514EBBD9} + {B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4} = {38B51762-57C2-4123-9A09-455CA930A995} + {FA674D4C-E1D0-45F0-A5AF-D696AA4B1298} = {38B51762-57C2-4123-9A09-455CA930A995} + {2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F} = {38B51762-57C2-4123-9A09-455CA930A995} + {464BD919-594A-4662-B061-D028CB8F3556} = {38B51762-57C2-4123-9A09-455CA930A995} + {FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA} = {38B51762-57C2-4123-9A09-455CA930A995} + {7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39} = {38B51762-57C2-4123-9A09-455CA930A995} + {93EB0678-AE79-4C68-BC15-AB09DADA26E8} = {38B51762-57C2-4123-9A09-455CA930A995} + {29B47E47-914A-499D-A5A4-ED8C2BE44834} = {8965D959-2906-45B1-A66A-42165A1B42C7} + {2B34DE46-1915-46F7-BD5C-2C8A3B8D1113} = {8965D959-2906-45B1-A66A-42165A1B42C7} + {F826EEA7-C53C-4C46-8715-D3E9FACB9ED5} = {8965D959-2906-45B1-A66A-42165A1B42C7} + {CF497346-A933-4E56-B57F-88067FB122CC} = {8965D959-2906-45B1-A66A-42165A1B42C7} + {0174A61A-7E2B-47FC-9CB7-E9EABB898820} = {8965D959-2906-45B1-A66A-42165A1B42C7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9003846C-EE54-4E58-B01E-6AA177E046C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9003846C-EE54-4E58-B01E-6AA177E046C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9003846C-EE54-4E58-B01E-6AA177E046C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9003846C-EE54-4E58-B01E-6AA177E046C5}.Release|Any CPU.Build.0 = Release|Any CPU - {6773D354-A573-4D9C-9A67-C7FAE579DA50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6773D354-A573-4D9C-9A67-C7FAE579DA50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6773D354-A573-4D9C-9A67-C7FAE579DA50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6773D354-A573-4D9C-9A67-C7FAE579DA50}.Release|Any CPU.Build.0 = Release|Any CPU - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255}.Release|Any CPU.Build.0 = Release|Any CPU - {76A32F57-10F9-41A2-BC98-095A063A699C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76A32F57-10F9-41A2-BC98-095A063A699C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76A32F57-10F9-41A2-BC98-095A063A699C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76A32F57-10F9-41A2-BC98-095A063A699C}.Release|Any CPU.Build.0 = Release|Any CPU + {174DC291-4C4A-41D0-B351-8054872AB46A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {174DC291-4C4A-41D0-B351-8054872AB46A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {174DC291-4C4A-41D0-B351-8054872AB46A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {174DC291-4C4A-41D0-B351-8054872AB46A}.Release|Any CPU.Build.0 = Release|Any CPU + {B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4ACFB19-9119-4AAE-A30B-26AEA4AF94C4}.Release|Any CPU.Build.0 = Release|Any CPU + {FA674D4C-E1D0-45F0-A5AF-D696AA4B1298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA674D4C-E1D0-45F0-A5AF-D696AA4B1298}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA674D4C-E1D0-45F0-A5AF-D696AA4B1298}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA674D4C-E1D0-45F0-A5AF-D696AA4B1298}.Release|Any CPU.Build.0 = Release|Any CPU + {29B47E47-914A-499D-A5A4-ED8C2BE44834}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29B47E47-914A-499D-A5A4-ED8C2BE44834}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29B47E47-914A-499D-A5A4-ED8C2BE44834}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29B47E47-914A-499D-A5A4-ED8C2BE44834}.Release|Any CPU.Build.0 = Release|Any CPU + {2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F07367F-C8D2-4E48-A59E-D4CAF6B40E0F}.Release|Any CPU.Build.0 = Release|Any CPU + {2B34DE46-1915-46F7-BD5C-2C8A3B8D1113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B34DE46-1915-46F7-BD5C-2C8A3B8D1113}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B34DE46-1915-46F7-BD5C-2C8A3B8D1113}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B34DE46-1915-46F7-BD5C-2C8A3B8D1113}.Release|Any CPU.Build.0 = Release|Any CPU + {464BD919-594A-4662-B061-D028CB8F3556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {464BD919-594A-4662-B061-D028CB8F3556}.Debug|Any CPU.Build.0 = Debug|Any CPU + {464BD919-594A-4662-B061-D028CB8F3556}.Release|Any CPU.ActiveCfg = Release|Any CPU + {464BD919-594A-4662-B061-D028CB8F3556}.Release|Any CPU.Build.0 = Release|Any CPU + {F826EEA7-C53C-4C46-8715-D3E9FACB9ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F826EEA7-C53C-4C46-8715-D3E9FACB9ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F826EEA7-C53C-4C46-8715-D3E9FACB9ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F826EEA7-C53C-4C46-8715-D3E9FACB9ED5}.Release|Any CPU.Build.0 = Release|Any CPU + {F4A98D66-BA15-4C42-94A9-4732965A969A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4A98D66-BA15-4C42-94A9-4732965A969A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4A98D66-BA15-4C42-94A9-4732965A969A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4A98D66-BA15-4C42-94A9-4732965A969A}.Release|Any CPU.Build.0 = Release|Any CPU + {FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDAF0D88-751E-4FA1-BBDC-C7297ADF7AAA}.Release|Any CPU.Build.0 = Release|Any CPU + {CF497346-A933-4E56-B57F-88067FB122CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF497346-A933-4E56-B57F-88067FB122CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF497346-A933-4E56-B57F-88067FB122CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF497346-A933-4E56-B57F-88067FB122CC}.Release|Any CPU.Build.0 = Release|Any CPU + {7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CDFBBCB-EA56-4FA2-85B6-71D899DF0F39}.Release|Any CPU.Build.0 = Release|Any CPU + {93EB0678-AE79-4C68-BC15-AB09DADA26E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93EB0678-AE79-4C68-BC15-AB09DADA26E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93EB0678-AE79-4C68-BC15-AB09DADA26E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93EB0678-AE79-4C68-BC15-AB09DADA26E8}.Release|Any CPU.Build.0 = Release|Any CPU + {0174A61A-7E2B-47FC-9CB7-E9EABB898820}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0174A61A-7E2B-47FC-9CB7-E9EABB898820}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0174A61A-7E2B-47FC-9CB7-E9EABB898820}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0174A61A-7E2B-47FC-9CB7-E9EABB898820}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9003846C-EE54-4E58-B01E-6AA177E046C5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6773D354-A573-4D9C-9A67-C7FAE579DA50} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D8C148D2-FAB2-4D8C-ACA3-D201665F7255} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {76A32F57-10F9-41A2-BC98-095A063A699C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {046617DD-67EB-43A1-BE4E-22CCFC3EC15F} + SolutionGuid = {E201426B-999F-48A5-BCFD-3E757AA0E182} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Resources.Extensions/tests/BinaryResourceWriterUnitTest.cs b/src/libraries/System.Resources.Extensions/tests/BinaryResourceWriterUnitTest.cs index c6061a82de2b..34c3faa83a30 100644 --- a/src/libraries/System.Resources.Extensions/tests/BinaryResourceWriterUnitTest.cs +++ b/src/libraries/System.Resources.Extensions/tests/BinaryResourceWriterUnitTest.cs @@ -470,7 +470,7 @@ public static void ResourceManagerLoadsCorrectReader() { ResourceManager resourceManager = new ResourceManager(typeof(TestData)); ResourceSet resSet = resourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, true); - IResourceReader reader = (IResourceReader)resSet.GetType().GetProperty("Reader", BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(resSet); + IResourceReader reader = (IResourceReader)resSet.GetType().GetField("_defaultReader", BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(resSet); Assert.IsType(reader); } diff --git a/src/libraries/System.Resources.Extensions/tests/TestData.resources b/src/libraries/System.Resources.Extensions/tests/TestData.resources index b6006779769e..fcfc618c0688 100644 Binary files a/src/libraries/System.Resources.Extensions/tests/TestData.resources and b/src/libraries/System.Resources.Extensions/tests/TestData.resources differ diff --git a/src/libraries/System.Resources.Reader/System.Resources.Reader.sln b/src/libraries/System.Resources.Reader/System.Resources.Reader.sln index a5274da686af..e72c47f1b795 100644 --- a/src/libraries/System.Resources.Reader/System.Resources.Reader.sln +++ b/src/libraries/System.Resources.Reader/System.Resources.Reader.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader.Tests", "tests\System.Resources.Reader.Tests.csproj", "{8D7202E8-084A-4C20-AB93-3BF70D2E0651}" - ProjectSection(ProjectDependencies) = postProject - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4} = {5C13260D-C55D-46AF-9DCB-1B015D48E2E4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8116E964-9FFB-4D28-A9C4-33E1A1A74747}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader", "src\System.Resources.Reader.csproj", "{5C13260D-C55D-46AF-9DCB-1B015D48E2E4}" - ProjectSection(ProjectDependencies) = postProject - {99A66A70-7055-48FC-9BE1-36ED2B392E0D} = {99A66A70-7055-48FC-9BE1-36ED2B392E0D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{C79983AB-9E6C-4511-BC1C-95FD04172F7F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader", "ref\System.Resources.Reader.csproj", "{99A66A70-7055-48FC-9BE1-36ED2B392E0D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader", "ref\System.Resources.Reader.csproj", "{07F0592A-7158-43AA-9196-135EBF555394}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader", "src\System.Resources.Reader.csproj", "{037437D0-39B7-4086-8549-B3DFE0F37576}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Reader.Tests", "tests\System.Resources.Reader.Tests.csproj", "{AF1E79F5-F489-4370-85DA-A7FBB173B2E4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{214B6B33-5AAE-4CBC-8066-1360B0137915}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5BAD6FCC-348D-4F02-BD0D-2463DC175944}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{91E36AA2-46B7-4E34-93CD-AC7EB7319A0E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{C278F65F-28B4-48FD-910F-D22122780BAE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{11194C27-BE66-47E6-8272-C56CD2542A07}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{91134050-8B79-48E7-8B88-21C41A69B264}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5E19A5F0-B780-4E08-BEF6-E3234F767793}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {8116E964-9FFB-4D28-A9C4-33E1A1A74747} = {11194C27-BE66-47E6-8272-C56CD2542A07} + {AF1E79F5-F489-4370-85DA-A7FBB173B2E4} = {11194C27-BE66-47E6-8272-C56CD2542A07} + {C79983AB-9E6C-4511-BC1C-95FD04172F7F} = {91134050-8B79-48E7-8B88-21C41A69B264} + {07F0592A-7158-43AA-9196-135EBF555394} = {91134050-8B79-48E7-8B88-21C41A69B264} + {214B6B33-5AAE-4CBC-8066-1360B0137915} = {91134050-8B79-48E7-8B88-21C41A69B264} + {91E36AA2-46B7-4E34-93CD-AC7EB7319A0E} = {91134050-8B79-48E7-8B88-21C41A69B264} + {C278F65F-28B4-48FD-910F-D22122780BAE} = {91134050-8B79-48E7-8B88-21C41A69B264} + {037437D0-39B7-4086-8549-B3DFE0F37576} = {5E19A5F0-B780-4E08-BEF6-E3234F767793} + {1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5} = {5E19A5F0-B780-4E08-BEF6-E3234F767793} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8D7202E8-084A-4C20-AB93-3BF70D2E0651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D7202E8-084A-4C20-AB93-3BF70D2E0651}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D7202E8-084A-4C20-AB93-3BF70D2E0651}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D7202E8-084A-4C20-AB93-3BF70D2E0651}.Release|Any CPU.Build.0 = Release|Any CPU - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4}.Release|Any CPU.Build.0 = Release|Any CPU - {99A66A70-7055-48FC-9BE1-36ED2B392E0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99A66A70-7055-48FC-9BE1-36ED2B392E0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99A66A70-7055-48FC-9BE1-36ED2B392E0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99A66A70-7055-48FC-9BE1-36ED2B392E0D}.Release|Any CPU.Build.0 = Release|Any CPU - {5BAD6FCC-348D-4F02-BD0D-2463DC175944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BAD6FCC-348D-4F02-BD0D-2463DC175944}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BAD6FCC-348D-4F02-BD0D-2463DC175944}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BAD6FCC-348D-4F02-BD0D-2463DC175944}.Release|Any CPU.Build.0 = Release|Any CPU + {8116E964-9FFB-4D28-A9C4-33E1A1A74747}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8116E964-9FFB-4D28-A9C4-33E1A1A74747}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8116E964-9FFB-4D28-A9C4-33E1A1A74747}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8116E964-9FFB-4D28-A9C4-33E1A1A74747}.Release|Any CPU.Build.0 = Release|Any CPU + {C79983AB-9E6C-4511-BC1C-95FD04172F7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C79983AB-9E6C-4511-BC1C-95FD04172F7F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C79983AB-9E6C-4511-BC1C-95FD04172F7F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C79983AB-9E6C-4511-BC1C-95FD04172F7F}.Release|Any CPU.Build.0 = Release|Any CPU + {07F0592A-7158-43AA-9196-135EBF555394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07F0592A-7158-43AA-9196-135EBF555394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07F0592A-7158-43AA-9196-135EBF555394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07F0592A-7158-43AA-9196-135EBF555394}.Release|Any CPU.Build.0 = Release|Any CPU + {037437D0-39B7-4086-8549-B3DFE0F37576}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {037437D0-39B7-4086-8549-B3DFE0F37576}.Debug|Any CPU.Build.0 = Debug|Any CPU + {037437D0-39B7-4086-8549-B3DFE0F37576}.Release|Any CPU.ActiveCfg = Release|Any CPU + {037437D0-39B7-4086-8549-B3DFE0F37576}.Release|Any CPU.Build.0 = Release|Any CPU + {AF1E79F5-F489-4370-85DA-A7FBB173B2E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF1E79F5-F489-4370-85DA-A7FBB173B2E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF1E79F5-F489-4370-85DA-A7FBB173B2E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF1E79F5-F489-4370-85DA-A7FBB173B2E4}.Release|Any CPU.Build.0 = Release|Any CPU + {214B6B33-5AAE-4CBC-8066-1360B0137915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {214B6B33-5AAE-4CBC-8066-1360B0137915}.Debug|Any CPU.Build.0 = Debug|Any CPU + {214B6B33-5AAE-4CBC-8066-1360B0137915}.Release|Any CPU.ActiveCfg = Release|Any CPU + {214B6B33-5AAE-4CBC-8066-1360B0137915}.Release|Any CPU.Build.0 = Release|Any CPU + {1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BAEC9D9-DDB8-4FD4-86BD-D144BBAA09F5}.Release|Any CPU.Build.0 = Release|Any CPU + {91E36AA2-46B7-4E34-93CD-AC7EB7319A0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91E36AA2-46B7-4E34-93CD-AC7EB7319A0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91E36AA2-46B7-4E34-93CD-AC7EB7319A0E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91E36AA2-46B7-4E34-93CD-AC7EB7319A0E}.Release|Any CPU.Build.0 = Release|Any CPU + {C278F65F-28B4-48FD-910F-D22122780BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C278F65F-28B4-48FD-910F-D22122780BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C278F65F-28B4-48FD-910F-D22122780BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C278F65F-28B4-48FD-910F-D22122780BAE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8D7202E8-084A-4C20-AB93-3BF70D2E0651} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {5C13260D-C55D-46AF-9DCB-1B015D48E2E4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {99A66A70-7055-48FC-9BE1-36ED2B392E0D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {5BAD6FCC-348D-4F02-BD0D-2463DC175944} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C8AC6D31-F003-429B-A606-3F8B96C82DEE} + SolutionGuid = {5B8632D5-A756-4119-A8BF-B3F69CB7A260} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln b/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln index 9806bd559cc5..49634bfcf0c7 100644 --- a/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln +++ b/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln @@ -1,60 +1,267 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager.Tests", "tests\System.Resources.ResourceManager.Tests.csproj", "{1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1}" - ProjectSection(ProjectDependencies) = postProject - {3E7810B2-2802-4867-B223-30427F3F2D5B} = {3E7810B2-2802-4867-B223-30427F3F2D5B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{152966B3-6D3D-4318-B62D-224940A6B746}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager", "src\System.Resources.ResourceManager.csproj", "{3E7810B2-2802-4867-B223-30427F3F2D5B}" - ProjectSection(ProjectDependencies) = postProject - {97CFE337-C57E-4B2E-B495-65B917E1282E} = {97CFE337-C57E-4B2E-B495-65B917E1282E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B93B5C05-FB28-4173-8786-57B42CFE38F3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager", "ref\System.Resources.ResourceManager.csproj", "{97CFE337-C57E-4B2E-B495-65B917E1282E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{A523F56C-3070-4FA4-A23A-0549FF3B7EC0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{7A7EB655-E233-4824-BE13-34693F452D1E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\src\System.Drawing.Common.csproj", "{00F48AD2-CCF6-4F52-A63E-AC2D00574375}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DB4C5D88-2441-4C1F-9957-CD23BB4E43E7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager", "ref\System.Resources.ResourceManager.csproj", "{16C50BBF-58E6-46B0-99EC-89927A65557B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager", "src\System.Resources.ResourceManager.csproj", "{5C0A720D-EF35-4403-B246-89AFBFC6C7AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.ResourceManager.Tests", "tests\System.Resources.ResourceManager.Tests.csproj", "{DE363A06-8C3D-4DDA-AD67-3B6C253E0424}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FD2E1F63-7B03-4220-8A94-262A11878B54}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C411D7D4-7F9C-437E-A36D-022D30389B65}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CEC60C4B-43AC-403A-A36A-0A5F1FB08978}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{16CF3ECD-F623-4E57-8B45-8B347E663360}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9EB8EE1D-BBF7-4E6A-92DF-7A82550754DA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{643E62DC-80DA-4EC8-AB36-47A3B080C76C}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {152966B3-6D3D-4318-B62D-224940A6B746} = {16CF3ECD-F623-4E57-8B45-8B347E663360} + {7A7EB655-E233-4824-BE13-34693F452D1E} = {16CF3ECD-F623-4E57-8B45-8B347E663360} + {00F48AD2-CCF6-4F52-A63E-AC2D00574375} = {16CF3ECD-F623-4E57-8B45-8B347E663360} + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF} = {16CF3ECD-F623-4E57-8B45-8B347E663360} + {C411D7D4-7F9C-437E-A36D-022D30389B65} = {16CF3ECD-F623-4E57-8B45-8B347E663360} + {B93B5C05-FB28-4173-8786-57B42CFE38F3} = {9EB8EE1D-BBF7-4E6A-92DF-7A82550754DA} + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424} = {9EB8EE1D-BBF7-4E6A-92DF-7A82550754DA} + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + {16C50BBF-58E6-46B0-99EC-89927A65557B} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + {FD2E1F63-7B03-4220-8A94-262A11878B54} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978} = {643E62DC-80DA-4EC8-AB36-47A3B080C76C} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1}.Release|Any CPU.Build.0 = Release|Any CPU - {3E7810B2-2802-4867-B223-30427F3F2D5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E7810B2-2802-4867-B223-30427F3F2D5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E7810B2-2802-4867-B223-30427F3F2D5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E7810B2-2802-4867-B223-30427F3F2D5B}.Release|Any CPU.Build.0 = Release|Any CPU - {97CFE337-C57E-4B2E-B495-65B917E1282E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {97CFE337-C57E-4B2E-B495-65B917E1282E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {97CFE337-C57E-4B2E-B495-65B917E1282E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {97CFE337-C57E-4B2E-B495-65B917E1282E}.Release|Any CPU.Build.0 = Release|Any CPU - {DB4C5D88-2441-4C1F-9957-CD23BB4E43E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB4C5D88-2441-4C1F-9957-CD23BB4E43E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB4C5D88-2441-4C1F-9957-CD23BB4E43E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB4C5D88-2441-4C1F-9957-CD23BB4E43E7}.Release|Any CPU.Build.0 = Release|Any CPU + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|Any CPU.ActiveCfg = Debug|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|Any CPU.Build.0 = Debug|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|x64.ActiveCfg = Debug|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|x64.Build.0 = Debug|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|x86.ActiveCfg = Debug|x86 + {152966B3-6D3D-4318-B62D-224940A6B746}.Debug|x86.Build.0 = Debug|x86 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|Any CPU.ActiveCfg = Release|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|Any CPU.Build.0 = Release|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|x64.ActiveCfg = Release|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|x64.Build.0 = Release|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|x86.ActiveCfg = Release|x86 + {152966B3-6D3D-4318-B62D-224940A6B746}.Release|x86.Build.0 = Release|x86 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|Any CPU.ActiveCfg = Checked|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|Any CPU.Build.0 = Checked|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|x64.ActiveCfg = Checked|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|x64.Build.0 = Checked|x64 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|x86.ActiveCfg = Checked|x86 + {152966B3-6D3D-4318-B62D-224940A6B746}.Checked|x86.Build.0 = Checked|x86 + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|x64.Build.0 = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Debug|x86.Build.0 = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|Any CPU.Build.0 = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|x64.ActiveCfg = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|x64.Build.0 = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|x86.ActiveCfg = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Release|x86.Build.0 = Release|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Checked|x64.ActiveCfg = Debug|Any CPU + {B93B5C05-FB28-4173-8786-57B42CFE38F3}.Checked|x86.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|x64.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|x64.Build.0 = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|x86.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Debug|x86.Build.0 = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|Any CPU.Build.0 = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|x64.ActiveCfg = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|x64.Build.0 = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|x86.ActiveCfg = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Release|x86.Build.0 = Release|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Checked|x64.ActiveCfg = Debug|Any CPU + {A523F56C-3070-4FA4-A23A-0549FF3B7EC0}.Checked|x86.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|x64.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|x64.Build.0 = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|x86.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Debug|x86.Build.0 = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|Any CPU.Build.0 = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|x64.ActiveCfg = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|x64.Build.0 = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|x86.ActiveCfg = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Release|x86.Build.0 = Release|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Checked|x64.ActiveCfg = Debug|Any CPU + {AFC17385-4DE6-40FF-AEF9-F117B0F1C00B}.Checked|x86.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|x64.Build.0 = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Debug|x86.Build.0 = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|Any CPU.Build.0 = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|x64.ActiveCfg = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|x64.Build.0 = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|x86.ActiveCfg = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Release|x86.Build.0 = Release|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Checked|x64.ActiveCfg = Debug|Any CPU + {7A7EB655-E233-4824-BE13-34693F452D1E}.Checked|x86.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|x64.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|x64.Build.0 = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|x86.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Debug|x86.Build.0 = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|Any CPU.Build.0 = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|x64.ActiveCfg = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|x64.Build.0 = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|x86.ActiveCfg = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Release|x86.Build.0 = Release|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Checked|x64.ActiveCfg = Debug|Any CPU + {00F48AD2-CCF6-4F52-A63E-AC2D00574375}.Checked|x86.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|x64.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|x64.Build.0 = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|x86.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Debug|x86.Build.0 = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|Any CPU.Build.0 = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|x64.ActiveCfg = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|x64.Build.0 = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|x86.ActiveCfg = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Release|x86.Build.0 = Release|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Checked|x64.ActiveCfg = Debug|Any CPU + {16C50BBF-58E6-46B0-99EC-89927A65557B}.Checked|x86.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|x64.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|x64.Build.0 = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|x86.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Debug|x86.Build.0 = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|Any CPU.Build.0 = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|x64.ActiveCfg = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|x64.Build.0 = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|x86.ActiveCfg = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Release|x86.Build.0 = Release|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Checked|x64.ActiveCfg = Debug|Any CPU + {5C0A720D-EF35-4403-B246-89AFBFC6C7AF}.Checked|x86.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|x64.Build.0 = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Debug|x86.Build.0 = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|Any CPU.Build.0 = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|x64.ActiveCfg = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|x64.Build.0 = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|x86.ActiveCfg = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Release|x86.Build.0 = Release|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Checked|x64.ActiveCfg = Debug|Any CPU + {DE363A06-8C3D-4DDA-AD67-3B6C253E0424}.Checked|x86.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|x64.Build.0 = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Debug|x86.Build.0 = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|Any CPU.Build.0 = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|x64.ActiveCfg = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|x64.Build.0 = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|x86.ActiveCfg = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Release|x86.Build.0 = Release|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Checked|x64.ActiveCfg = Debug|Any CPU + {FD2E1F63-7B03-4220-8A94-262A11878B54}.Checked|x86.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|x64.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|x64.Build.0 = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|x86.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Debug|x86.Build.0 = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|Any CPU.Build.0 = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|x64.ActiveCfg = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|x64.Build.0 = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|x86.ActiveCfg = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Release|x86.Build.0 = Release|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Checked|x64.ActiveCfg = Debug|Any CPU + {C411D7D4-7F9C-437E-A36D-022D30389B65}.Checked|x86.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|x64.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|x64.Build.0 = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|x86.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Debug|x86.Build.0 = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|Any CPU.Build.0 = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|x64.ActiveCfg = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|x64.Build.0 = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|x86.ActiveCfg = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Release|x86.Build.0 = Release|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Checked|x64.ActiveCfg = Debug|Any CPU + {3ADF14C8-EE04-4353-9DAC-49C5D13C7CC3}.Checked|x86.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|x64.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|x64.Build.0 = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|x86.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Debug|x86.Build.0 = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|Any CPU.Build.0 = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|x64.ActiveCfg = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|x64.Build.0 = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|x86.ActiveCfg = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Release|x86.Build.0 = Release|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Checked|x64.ActiveCfg = Debug|Any CPU + {CEC60C4B-43AC-403A-A36A-0A5F1FB08978}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {1D51A16C-B6D8-4E8F-98DE-21AD9A7062A1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3E7810B2-2802-4867-B223-30427F3F2D5B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {97CFE337-C57E-4B2E-B495-65B917E1282E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {DB4C5D88-2441-4C1F-9957-CD23BB4E43E7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {BEA182FA-BE6A-494A-AE4F-320BB016A4ED} + SolutionGuid = {76F63057-5429-4500-BF4F-16E66362192D} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs b/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs index 9c038b540e12..2bedd241197c 100644 --- a/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs +++ b/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs @@ -54,6 +54,8 @@ public static void GetString_Basic(string key, string expectedValue) ResourceManager resourceManager = new ResourceManager("System.Resources.Tests.Resources.TestResx", typeof(ResourceManagerTests).GetTypeInfo().Assembly); string actual = resourceManager.GetString(key); Assert.Equal(expectedValue, actual); + Assert.Same(actual, resourceManager.GetString(key)); + Assert.Equal(expectedValue, resourceManager.GetObject(key)); } [Theory] @@ -297,6 +299,8 @@ public static void GetResourceSet_Strings(string key, string expectedValue) var culture = new CultureInfo("en-US"); ResourceSet set = manager.GetResourceSet(culture, true, true); Assert.Equal(expectedValue, set.GetString(key)); + Assert.Equal(expectedValue, set.GetObject(key)); + Assert.Equal(expectedValue, set.GetString(key)); } [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsBinaryFormatterSupported))] @@ -308,6 +312,19 @@ public static void GetResourceSet_NonStrings(string key, object expectedValue, b var culture = new CultureInfo("en-US"); ResourceSet set = manager.GetResourceSet(culture, true, true); Assert.Equal(expectedValue, set.GetObject(key)); + Assert.Equal(expectedValue, set.GetObject(key)); + } + + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsBinaryFormatterSupported))] + [MemberData(nameof(EnglishNonStringResourceData))] + public static void GetResourceSet_NonStringsIgnoreCase(string key, object expectedValue, bool requiresBinaryFormatter) + { + _ = requiresBinaryFormatter; + var manager = new ResourceManager("System.Resources.Tests.Resources.TestResx.netstandard17", typeof(ResourceManagerTests).GetTypeInfo().Assembly); + var culture = new CultureInfo("en-US"); + ResourceSet set = manager.GetResourceSet(culture, true, true); + Assert.Equal(expectedValue, set.GetObject(key.ToLower(), true)); + Assert.Equal(expectedValue, set.GetObject(key.ToLower(), true)); } [ConditionalTheory(Helpers.IsDrawingSupported)] @@ -385,6 +402,18 @@ public static void ConstructorNonRuntimeAssembly() Assert.Throws(() => new ResourceManager("name", assembly, null)); } + [Fact] + public static void GetStringAfterDispose() + { + var manager = new ResourceManager("System.Resources.Tests.Resources.TestResx", typeof(ResourceManagerTests).GetTypeInfo().Assembly); + var culture = new CultureInfo("en-US"); + ResourceSet set = manager.GetResourceSet(culture, true, true); + + set.GetString("Any"); + ((IDisposable)set).Dispose(); + Assert.Throws (() => set.GetString("Any")); + } + private class MockAssembly : Assembly { } diff --git a/src/libraries/System.Resources.ResourceManager/tests/ResourceSetTests.cs b/src/libraries/System.Resources.ResourceManager/tests/ResourceSetTests.cs index 2975326fe461..cb438589cbee 100644 --- a/src/libraries/System.Resources.ResourceManager/tests/ResourceSetTests.cs +++ b/src/libraries/System.Resources.ResourceManager/tests/ResourceSetTests.cs @@ -5,6 +5,7 @@ using System.IO; using System.Reflection; using System.Globalization; +using System.Collections; using System.Collections.Generic; namespace System.Resources.Tests @@ -101,6 +102,87 @@ public void GetString() } } + public class ResourceSetTests_IResourceReader + { + class SimpleResourceReader : IResourceReader + { + Hashtable data; + public SimpleResourceReader() + { + data = new Hashtable(); + data.Add(1, "invalid"); + data.Add("String", "message"); + data.Add("Int32", 5); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotSupportedException(); + } + + public IDictionaryEnumerator GetEnumerator() + { + return data.GetEnumerator(); + } + + public void Close() + { + } + + public void Dispose() + { + } + } + + [Fact] + public void Empty_Ctor() + { + Assert.Throws(() => new ResourceSet(null as IResourceReader)); + } + + [Fact] + public void GetObject() + { + var rs = new ResourceSet(new SimpleResourceReader()); + + Assert.Null(rs.GetObject("DoesNotExist")); + Assert.Null(rs.GetObject("1")); + + Assert.Equal(5, rs.GetObject("Int32")); + Assert.Equal(5, rs.GetObject("int32", true)); + } + + [Fact] + public void GetString() + { + var rs = new ResourceSet(new SimpleResourceReader()); + + Assert.Null(rs.GetString("DoesNotExist")); + Assert.Null(rs.GetString("1")); + + Assert.Equal("message", rs.GetString("String")); + Assert.Equal("message", rs.GetString("string", true)); + } + + [Fact] + public void GetEnumerator() + { + var rs = new ResourceSet(new SimpleResourceReader()); + + var expected = new HashSet() { + 1, "String", "Int32" + }; + + foreach (DictionaryEntry entry in rs) + { + Assert.Contains(entry.Key, expected); + expected.Remove(entry.Key); + } + + Assert.Equal(0, expected.Count); + } + } + public class ResourceSetTests_StreamCtor : ResourceSetTests { public override ResourceSet GetSet(string base64Data) diff --git a/src/libraries/System.Resources.Writer/System.Resources.Writer.sln b/src/libraries/System.Resources.Writer/System.Resources.Writer.sln index 79f1a6353782..cdf636883b63 100644 --- a/src/libraries/System.Resources.Writer/System.Resources.Writer.sln +++ b/src/libraries/System.Resources.Writer/System.Resources.Writer.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer.Tests", "tests\System.Resources.Writer.Tests.csproj", "{EFA745C2-3741-4D54-B2A1-1979E43354E4}" - ProjectSection(ProjectDependencies) = postProject - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6} = {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A665E615-45ED-42F9-877A-80353A636779}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer", "src\System.Resources.Writer.csproj", "{98CA9A7F-AD5C-418B-BC22-735AC2BE21A6}" - ProjectSection(ProjectDependencies) = postProject - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3} = {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{F90791D3-E647-43AA-A0FC-EA73B7E43F33}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer", "ref\System.Resources.Writer.csproj", "{7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer", "ref\System.Resources.Writer.csproj", "{DF70E82A-3986-4E74-BF85-7CB4B0A6DED9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer", "src\System.Resources.Writer.csproj", "{1C001837-6F9D-4C5A-94B4-4388225C34B5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Resources.Writer.Tests", "tests\System.Resources.Writer.Tests.csproj", "{2E27487F-36D6-42E9-BA91-F511686122E7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{D33748D9-5F99-4D8A-81C8-B530F264500B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C71EBA4D-EB61-49BD-9E95-F7A8675069E8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{003D6220-3094-4915-BE2D-A4C1671CB64D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BF6C143D-91AB-4F92-AF0E-171343A85632}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{98D69B91-A867-498F-950E-A3B068703A0F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{18A5A8ED-82B9-4E5E-8483-E45EE5BDA7A7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{51B6D5DF-01A8-4402-A8C9-90A37FB19D24}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{97920E64-FFB2-4A8D-9161-30BDA611D129}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A665E615-45ED-42F9-877A-80353A636779} = {18A5A8ED-82B9-4E5E-8483-E45EE5BDA7A7} + {2E27487F-36D6-42E9-BA91-F511686122E7} = {18A5A8ED-82B9-4E5E-8483-E45EE5BDA7A7} + {F90791D3-E647-43AA-A0FC-EA73B7E43F33} = {51B6D5DF-01A8-4402-A8C9-90A37FB19D24} + {DF70E82A-3986-4E74-BF85-7CB4B0A6DED9} = {51B6D5DF-01A8-4402-A8C9-90A37FB19D24} + {D33748D9-5F99-4D8A-81C8-B530F264500B} = {51B6D5DF-01A8-4402-A8C9-90A37FB19D24} + {BF6C143D-91AB-4F92-AF0E-171343A85632} = {51B6D5DF-01A8-4402-A8C9-90A37FB19D24} + {98D69B91-A867-498F-950E-A3B068703A0F} = {51B6D5DF-01A8-4402-A8C9-90A37FB19D24} + {1C001837-6F9D-4C5A-94B4-4388225C34B5} = {97920E64-FFB2-4A8D-9161-30BDA611D129} + {003D6220-3094-4915-BE2D-A4C1671CB64D} = {97920E64-FFB2-4A8D-9161-30BDA611D129} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EFA745C2-3741-4D54-B2A1-1979E43354E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFA745C2-3741-4D54-B2A1-1979E43354E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EFA745C2-3741-4D54-B2A1-1979E43354E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EFA745C2-3741-4D54-B2A1-1979E43354E4}.Release|Any CPU.Build.0 = Release|Any CPU - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6}.Release|Any CPU.Build.0 = Release|Any CPU - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3}.Release|Any CPU.Build.0 = Release|Any CPU - {C71EBA4D-EB61-49BD-9E95-F7A8675069E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C71EBA4D-EB61-49BD-9E95-F7A8675069E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C71EBA4D-EB61-49BD-9E95-F7A8675069E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C71EBA4D-EB61-49BD-9E95-F7A8675069E8}.Release|Any CPU.Build.0 = Release|Any CPU + {A665E615-45ED-42F9-877A-80353A636779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A665E615-45ED-42F9-877A-80353A636779}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A665E615-45ED-42F9-877A-80353A636779}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A665E615-45ED-42F9-877A-80353A636779}.Release|Any CPU.Build.0 = Release|Any CPU + {F90791D3-E647-43AA-A0FC-EA73B7E43F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F90791D3-E647-43AA-A0FC-EA73B7E43F33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F90791D3-E647-43AA-A0FC-EA73B7E43F33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F90791D3-E647-43AA-A0FC-EA73B7E43F33}.Release|Any CPU.Build.0 = Release|Any CPU + {DF70E82A-3986-4E74-BF85-7CB4B0A6DED9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF70E82A-3986-4E74-BF85-7CB4B0A6DED9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF70E82A-3986-4E74-BF85-7CB4B0A6DED9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF70E82A-3986-4E74-BF85-7CB4B0A6DED9}.Release|Any CPU.Build.0 = Release|Any CPU + {1C001837-6F9D-4C5A-94B4-4388225C34B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C001837-6F9D-4C5A-94B4-4388225C34B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C001837-6F9D-4C5A-94B4-4388225C34B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C001837-6F9D-4C5A-94B4-4388225C34B5}.Release|Any CPU.Build.0 = Release|Any CPU + {2E27487F-36D6-42E9-BA91-F511686122E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E27487F-36D6-42E9-BA91-F511686122E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E27487F-36D6-42E9-BA91-F511686122E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E27487F-36D6-42E9-BA91-F511686122E7}.Release|Any CPU.Build.0 = Release|Any CPU + {D33748D9-5F99-4D8A-81C8-B530F264500B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D33748D9-5F99-4D8A-81C8-B530F264500B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D33748D9-5F99-4D8A-81C8-B530F264500B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D33748D9-5F99-4D8A-81C8-B530F264500B}.Release|Any CPU.Build.0 = Release|Any CPU + {003D6220-3094-4915-BE2D-A4C1671CB64D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {003D6220-3094-4915-BE2D-A4C1671CB64D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {003D6220-3094-4915-BE2D-A4C1671CB64D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {003D6220-3094-4915-BE2D-A4C1671CB64D}.Release|Any CPU.Build.0 = Release|Any CPU + {BF6C143D-91AB-4F92-AF0E-171343A85632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF6C143D-91AB-4F92-AF0E-171343A85632}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF6C143D-91AB-4F92-AF0E-171343A85632}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF6C143D-91AB-4F92-AF0E-171343A85632}.Release|Any CPU.Build.0 = Release|Any CPU + {98D69B91-A867-498F-950E-A3B068703A0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98D69B91-A867-498F-950E-A3B068703A0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98D69B91-A867-498F-950E-A3B068703A0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98D69B91-A867-498F-950E-A3B068703A0F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EFA745C2-3741-4D54-B2A1-1979E43354E4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {98CA9A7F-AD5C-418B-BC22-735AC2BE21A6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7A1466AF-8BBA-4CB5-8D98-1DFE06853ED3} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {C71EBA4D-EB61-49BD-9E95-F7A8675069E8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2274396F-3F3B-4B08-8F48-D226627245AF} + SolutionGuid = {C1D84753-65B5-4B60-A555-3507CD4FDAB2} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Caching/System.Runtime.Caching.sln b/src/libraries/System.Runtime.Caching/System.Runtime.Caching.sln index 798404026e42..a038fe2e2e04 100644 --- a/src/libraries/System.Runtime.Caching/System.Runtime.Caching.sln +++ b/src/libraries/System.Runtime.Caching/System.Runtime.Caching.sln @@ -1,60 +1,163 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching.Tests", "tests\System.Runtime.Caching.Tests.csproj", "{397E49A7-EB26-4368-8F46-D78B98F4A971}" - ProjectSection(ProjectDependencies) = postProject - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829} = {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4DD7C7A6-6F4C-497B-A836-20F2D4F66748}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching", "src\System.Runtime.Caching.csproj", "{A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829}" - ProjectSection(ProjectDependencies) = postProject - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280} = {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{5370955B-9226-4EBD-A56A-FC323A5C1B60}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching", "ref\System.Runtime.Caching.csproj", "{3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{2AC9B23C-C788-4607-86EB-E7F66F14AFDB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{4607440C-7237-4077-ACAB-E0910673B162}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching", "ref\System.Runtime.Caching.csproj", "{B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{57836C98-D90B-4D78-9203-B6DB2C8098DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching", "src\System.Runtime.Caching.csproj", "{6311C025-F6D3-43A0-A9DA-A58AA6602568}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Caching.Tests", "tests\System.Runtime.Caching.Tests.csproj", "{AA05074D-88AF-482E-A44A-F1AC13494E9F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{1C015082-C690-46C1-B9BF-6FB4EA25ACFC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{32D8600C-3134-48EF-BDC6-AEC26064EFEB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{97AA55FE-40A9-4084-AA08-D178FEFB18AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{986272FB-E5C6-4881-9867-DC3427D883AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{AFBFBBE6-F5EC-4889-9F34-03E07562630D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{45E0A981-A131-4147-94E7-49AAC45F5D14}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{6383A7BA-20DC-4025-9BB3-E1C6FEA669E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{6F55B699-FA9A-4B4E-BAB1-DD288465D9E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{A154C9F1-845A-4596-9061-92C462E971A6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{EC5D61F1-E77B-4E3D-968C-710FCFB9E028}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB01F45-7885-4F35-9A64-5D134339401C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{77DCC3DE-3A42-4D8E-806D-905FD30B73CF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {4DD7C7A6-6F4C-497B-A836-20F2D4F66748} = {0AB01F45-7885-4F35-9A64-5D134339401C} + {AA05074D-88AF-482E-A44A-F1AC13494E9F} = {0AB01F45-7885-4F35-9A64-5D134339401C} + {5370955B-9226-4EBD-A56A-FC323A5C1B60} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {4607440C-7237-4077-ACAB-E0910673B162} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {1C015082-C690-46C1-B9BF-6FB4EA25ACFC} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {32D8600C-3134-48EF-BDC6-AEC26064EFEB} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {986272FB-E5C6-4881-9867-DC3427D883AE} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {45E0A981-A131-4147-94E7-49AAC45F5D14} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {6F55B699-FA9A-4B4E-BAB1-DD288465D9E8} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {A154C9F1-845A-4596-9061-92C462E971A6} = {77DCC3DE-3A42-4D8E-806D-905FD30B73CF} + {2AC9B23C-C788-4607-86EB-E7F66F14AFDB} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {6311C025-F6D3-43A0-A9DA-A58AA6602568} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {97AA55FE-40A9-4084-AA08-D178FEFB18AF} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {AFBFBBE6-F5EC-4889-9F34-03E07562630D} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {6383A7BA-20DC-4025-9BB3-E1C6FEA669E8} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + {EC5D61F1-E77B-4E3D-968C-710FCFB9E028} = {F2604DF5-C8C5-4292-BF51-F1F5AF66DDE5} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {397E49A7-EB26-4368-8F46-D78B98F4A971}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {397E49A7-EB26-4368-8F46-D78B98F4A971}.Debug|Any CPU.Build.0 = Debug|Any CPU - {397E49A7-EB26-4368-8F46-D78B98F4A971}.Release|Any CPU.ActiveCfg = Release|Any CPU - {397E49A7-EB26-4368-8F46-D78B98F4A971}.Release|Any CPU.Build.0 = Release|Any CPU - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829}.Release|Any CPU.Build.0 = Release|Any CPU - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280}.Release|Any CPU.Build.0 = Release|Any CPU - {57836C98-D90B-4D78-9203-B6DB2C8098DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57836C98-D90B-4D78-9203-B6DB2C8098DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57836C98-D90B-4D78-9203-B6DB2C8098DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57836C98-D90B-4D78-9203-B6DB2C8098DB}.Release|Any CPU.Build.0 = Release|Any CPU + {4DD7C7A6-6F4C-497B-A836-20F2D4F66748}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DD7C7A6-6F4C-497B-A836-20F2D4F66748}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DD7C7A6-6F4C-497B-A836-20F2D4F66748}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DD7C7A6-6F4C-497B-A836-20F2D4F66748}.Release|Any CPU.Build.0 = Release|Any CPU + {5370955B-9226-4EBD-A56A-FC323A5C1B60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5370955B-9226-4EBD-A56A-FC323A5C1B60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5370955B-9226-4EBD-A56A-FC323A5C1B60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5370955B-9226-4EBD-A56A-FC323A5C1B60}.Release|Any CPU.Build.0 = Release|Any CPU + {D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2CB0E92-8F52-49A3-A2CA-9F77C8ED4A6D}.Release|Any CPU.Build.0 = Release|Any CPU + {2AC9B23C-C788-4607-86EB-E7F66F14AFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2AC9B23C-C788-4607-86EB-E7F66F14AFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2AC9B23C-C788-4607-86EB-E7F66F14AFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2AC9B23C-C788-4607-86EB-E7F66F14AFDB}.Release|Any CPU.Build.0 = Release|Any CPU + {4607440C-7237-4077-ACAB-E0910673B162}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4607440C-7237-4077-ACAB-E0910673B162}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4607440C-7237-4077-ACAB-E0910673B162}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4607440C-7237-4077-ACAB-E0910673B162}.Release|Any CPU.Build.0 = Release|Any CPU + {B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8D8A7D0-EAE7-4D04-97CA-7B14DA9D0BD5}.Release|Any CPU.Build.0 = Release|Any CPU + {6311C025-F6D3-43A0-A9DA-A58AA6602568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6311C025-F6D3-43A0-A9DA-A58AA6602568}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6311C025-F6D3-43A0-A9DA-A58AA6602568}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6311C025-F6D3-43A0-A9DA-A58AA6602568}.Release|Any CPU.Build.0 = Release|Any CPU + {AA05074D-88AF-482E-A44A-F1AC13494E9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA05074D-88AF-482E-A44A-F1AC13494E9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA05074D-88AF-482E-A44A-F1AC13494E9F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA05074D-88AF-482E-A44A-F1AC13494E9F}.Release|Any CPU.Build.0 = Release|Any CPU + {1C015082-C690-46C1-B9BF-6FB4EA25ACFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C015082-C690-46C1-B9BF-6FB4EA25ACFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C015082-C690-46C1-B9BF-6FB4EA25ACFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C015082-C690-46C1-B9BF-6FB4EA25ACFC}.Release|Any CPU.Build.0 = Release|Any CPU + {B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2A8BC2C-6B07-4D2A-BD60-6F1D10902AC6}.Release|Any CPU.Build.0 = Release|Any CPU + {32D8600C-3134-48EF-BDC6-AEC26064EFEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32D8600C-3134-48EF-BDC6-AEC26064EFEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32D8600C-3134-48EF-BDC6-AEC26064EFEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32D8600C-3134-48EF-BDC6-AEC26064EFEB}.Release|Any CPU.Build.0 = Release|Any CPU + {97AA55FE-40A9-4084-AA08-D178FEFB18AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97AA55FE-40A9-4084-AA08-D178FEFB18AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97AA55FE-40A9-4084-AA08-D178FEFB18AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97AA55FE-40A9-4084-AA08-D178FEFB18AF}.Release|Any CPU.Build.0 = Release|Any CPU + {986272FB-E5C6-4881-9867-DC3427D883AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {986272FB-E5C6-4881-9867-DC3427D883AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {986272FB-E5C6-4881-9867-DC3427D883AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {986272FB-E5C6-4881-9867-DC3427D883AE}.Release|Any CPU.Build.0 = Release|Any CPU + {AFBFBBE6-F5EC-4889-9F34-03E07562630D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFBFBBE6-F5EC-4889-9F34-03E07562630D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFBFBBE6-F5EC-4889-9F34-03E07562630D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFBFBBE6-F5EC-4889-9F34-03E07562630D}.Release|Any CPU.Build.0 = Release|Any CPU + {45E0A981-A131-4147-94E7-49AAC45F5D14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45E0A981-A131-4147-94E7-49AAC45F5D14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45E0A981-A131-4147-94E7-49AAC45F5D14}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45E0A981-A131-4147-94E7-49AAC45F5D14}.Release|Any CPU.Build.0 = Release|Any CPU + {6383A7BA-20DC-4025-9BB3-E1C6FEA669E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6383A7BA-20DC-4025-9BB3-E1C6FEA669E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6383A7BA-20DC-4025-9BB3-E1C6FEA669E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6383A7BA-20DC-4025-9BB3-E1C6FEA669E8}.Release|Any CPU.Build.0 = Release|Any CPU + {6F55B699-FA9A-4B4E-BAB1-DD288465D9E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F55B699-FA9A-4B4E-BAB1-DD288465D9E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F55B699-FA9A-4B4E-BAB1-DD288465D9E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F55B699-FA9A-4B4E-BAB1-DD288465D9E8}.Release|Any CPU.Build.0 = Release|Any CPU + {8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D3AC7A1-5C3F-43A8-8C7F-FB441BE1A875}.Release|Any CPU.Build.0 = Release|Any CPU + {A154C9F1-845A-4596-9061-92C462E971A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A154C9F1-845A-4596-9061-92C462E971A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A154C9F1-845A-4596-9061-92C462E971A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A154C9F1-845A-4596-9061-92C462E971A6}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5D61F1-E77B-4E3D-968C-710FCFB9E028}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC5D61F1-E77B-4E3D-968C-710FCFB9E028}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5D61F1-E77B-4E3D-968C-710FCFB9E028}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC5D61F1-E77B-4E3D-968C-710FCFB9E028}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {397E49A7-EB26-4368-8F46-D78B98F4A971} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A7B6FB6E-F484-42D7-8A5E-F7D0DCC03829} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {3B7A97BD-F4DC-4FF9-AB6D-3B714E5D9280} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {57836C98-D90B-4D78-9203-B6DB2C8098DB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2BA97A91-2C8E-4D7E-AECF-FABAE4C8DD2E} + SolutionGuid = {7B9B7D16-2C48-486A-B84B-6FF6D28509F6} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln b/src/libraries/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln index 8299c3e7ef2e..189e4edf9120 100644 --- a/src/libraries/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln +++ b/src/libraries/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln @@ -1,60 +1,72 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe.Tests", "tests\System.Runtime.CompilerServices.Unsafe.Tests.csproj", "{8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}" - ProjectSection(ProjectDependencies) = postProject - {04BA3E3C-6979-4792-B19E-C797AD607F42} = {04BA3E3C-6979-4792-B19E-C797AD607F42} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D1D35FBB-464B-4403-A933-9A96861999D1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe.ilproj", "{04BA3E3C-6979-4792-B19E-C797AD607F42}" - ProjectSection(ProjectDependencies) = postProject - {649A377C-1E07-4105-B01F-7F1044D3356C} = {649A377C-1E07-4105-B01F-7F1044D3356C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{12A6F95F-B631-4CE0-BF7B-7D585812D70D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "ref\System.Runtime.CompilerServices.Unsafe.csproj", "{649A377C-1E07-4105-B01F-7F1044D3356C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C75CDE9E-42CE-41E6-81BC-BD44FBC113E8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F858493F-8DFC-43AD-B4AA-10419588E026}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe.Tests", "tests\System.Runtime.CompilerServices.Unsafe.Tests.csproj", "{03B3163A-B7D7-4BEC-90BC-12E04072969E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{C6EB8DAB-CD56-4C74-B079-D862C020BDCA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5F136691-8A7A-40FF-97BB-A44C59CF71A6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{CDD9B53F-5E93-4259-98FD-EDE069D61B09}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7216C4B5-BF51-4F1A-B61D-40F87F50B4FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{7AC2FAAD-90AE-490C-8916-4D4E608EB158}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{97863A6C-F089-4035-B8A6-CB00EEF63AD6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {D1D35FBB-464B-4403-A933-9A96861999D1} = {7216C4B5-BF51-4F1A-B61D-40F87F50B4FD} + {03B3163A-B7D7-4BEC-90BC-12E04072969E} = {7216C4B5-BF51-4F1A-B61D-40F87F50B4FD} + {12A6F95F-B631-4CE0-BF7B-7D585812D70D} = {7AC2FAAD-90AE-490C-8916-4D4E608EB158} + {C75CDE9E-42CE-41E6-81BC-BD44FBC113E8} = {7AC2FAAD-90AE-490C-8916-4D4E608EB158} + {C6EB8DAB-CD56-4C74-B079-D862C020BDCA} = {7AC2FAAD-90AE-490C-8916-4D4E608EB158} + {CDD9B53F-5E93-4259-98FD-EDE069D61B09} = {7AC2FAAD-90AE-490C-8916-4D4E608EB158} + {F858493F-8DFC-43AD-B4AA-10419588E026} = {97863A6C-F089-4035-B8A6-CB00EEF63AD6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Release|Any CPU.Build.0 = Release|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.Build.0 = Release|Any CPU - {649A377C-1E07-4105-B01F-7F1044D3356C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {649A377C-1E07-4105-B01F-7F1044D3356C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {649A377C-1E07-4105-B01F-7F1044D3356C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {649A377C-1E07-4105-B01F-7F1044D3356C}.Release|Any CPU.Build.0 = Release|Any CPU - {5F136691-8A7A-40FF-97BB-A44C59CF71A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F136691-8A7A-40FF-97BB-A44C59CF71A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5F136691-8A7A-40FF-97BB-A44C59CF71A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F136691-8A7A-40FF-97BB-A44C59CF71A6}.Release|Any CPU.Build.0 = Release|Any CPU + {D1D35FBB-464B-4403-A933-9A96861999D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1D35FBB-464B-4403-A933-9A96861999D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1D35FBB-464B-4403-A933-9A96861999D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1D35FBB-464B-4403-A933-9A96861999D1}.Release|Any CPU.Build.0 = Release|Any CPU + {12A6F95F-B631-4CE0-BF7B-7D585812D70D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12A6F95F-B631-4CE0-BF7B-7D585812D70D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12A6F95F-B631-4CE0-BF7B-7D585812D70D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12A6F95F-B631-4CE0-BF7B-7D585812D70D}.Release|Any CPU.Build.0 = Release|Any CPU + {C75CDE9E-42CE-41E6-81BC-BD44FBC113E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C75CDE9E-42CE-41E6-81BC-BD44FBC113E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C75CDE9E-42CE-41E6-81BC-BD44FBC113E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C75CDE9E-42CE-41E6-81BC-BD44FBC113E8}.Release|Any CPU.Build.0 = Release|Any CPU + {F858493F-8DFC-43AD-B4AA-10419588E026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F858493F-8DFC-43AD-B4AA-10419588E026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F858493F-8DFC-43AD-B4AA-10419588E026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F858493F-8DFC-43AD-B4AA-10419588E026}.Release|Any CPU.Build.0 = Release|Any CPU + {03B3163A-B7D7-4BEC-90BC-12E04072969E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03B3163A-B7D7-4BEC-90BC-12E04072969E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03B3163A-B7D7-4BEC-90BC-12E04072969E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03B3163A-B7D7-4BEC-90BC-12E04072969E}.Release|Any CPU.Build.0 = Release|Any CPU + {C6EB8DAB-CD56-4C74-B079-D862C020BDCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6EB8DAB-CD56-4C74-B079-D862C020BDCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6EB8DAB-CD56-4C74-B079-D862C020BDCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6EB8DAB-CD56-4C74-B079-D862C020BDCA}.Release|Any CPU.Build.0 = Release|Any CPU + {CDD9B53F-5E93-4259-98FD-EDE069D61B09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDD9B53F-5E93-4259-98FD-EDE069D61B09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDD9B53F-5E93-4259-98FD-EDE069D61B09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDD9B53F-5E93-4259-98FD-EDE069D61B09}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {04BA3E3C-6979-4792-B19E-C797AD607F42} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {649A377C-1E07-4105-B01F-7F1044D3356C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {5F136691-8A7A-40FF-97BB-A44C59CF71A6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7008F50A-EE83-4217-8180-F76C648F682F} + SolutionGuid = {7C6BD655-03F9-4AFB-B429-05A363FA6DA0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.sln b/src/libraries/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.sln index 8466660366ff..cbb881a3e738 100644 --- a/src/libraries/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.sln +++ b/src/libraries/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC.Tests", "tests\System.Runtime.CompilerServices.VisualC.Tests.csproj", "{057BF9A0-199B-4EB5-85D5-84982259C7BC}" - ProjectSection(ProjectDependencies) = postProject - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E} = {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1415080F-E571-4350-97F8-36D1871AA17D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC", "src\System.Runtime.CompilerServices.VisualC.csproj", "{F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E}" - ProjectSection(ProjectDependencies) = postProject - {2122228D-ADAD-43D8-BC56-6A061DE8B25C} = {2122228D-ADAD-43D8-BC56-6A061DE8B25C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{97C3FEA1-EE20-4848-B468-36F3E59863B0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC", "ref\System.Runtime.CompilerServices.VisualC.csproj", "{2122228D-ADAD-43D8-BC56-6A061DE8B25C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{E57BD2F0-8235-49FF-B3CD-76A40804E472}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{72E42933-6469-41D3-97B6-B522FB20FF62}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC", "ref\System.Runtime.CompilerServices.VisualC.csproj", "{6157FC12-0BEC-4A23-80F0-FBC8A8C71E22}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC", "src\System.Runtime.CompilerServices.VisualC.csproj", "{941D72C5-CA37-4745-B89D-2257517C5761}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{062B7E35-224E-4DB3-A3A4-35352CAFA50A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.VisualC.Tests", "tests\System.Runtime.CompilerServices.VisualC.Tests.csproj", "{11D31B6C-3ECF-472B-8AD5-3D799BA3F052}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{39821B61-69B3-414A-99CF-FE7E494AEA90}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EB300642-E2DA-47F8-ABBE-3405255DB147}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{656D312B-3BC5-45FD-9794-284E1DFDFB95}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DA445583-A5C7-49FE-ADF6-046990E6D858}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{47F487BB-CF6F-4543-9670-5551D32E22B8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1415080F-E571-4350-97F8-36D1871AA17D} = {656D312B-3BC5-45FD-9794-284E1DFDFB95} + {11D31B6C-3ECF-472B-8AD5-3D799BA3F052} = {656D312B-3BC5-45FD-9794-284E1DFDFB95} + {97C3FEA1-EE20-4848-B468-36F3E59863B0} = {DA445583-A5C7-49FE-ADF6-046990E6D858} + {E57BD2F0-8235-49FF-B3CD-76A40804E472} = {DA445583-A5C7-49FE-ADF6-046990E6D858} + {6157FC12-0BEC-4A23-80F0-FBC8A8C71E22} = {DA445583-A5C7-49FE-ADF6-046990E6D858} + {39821B61-69B3-414A-99CF-FE7E494AEA90} = {DA445583-A5C7-49FE-ADF6-046990E6D858} + {EB300642-E2DA-47F8-ABBE-3405255DB147} = {DA445583-A5C7-49FE-ADF6-046990E6D858} + {72E42933-6469-41D3-97B6-B522FB20FF62} = {47F487BB-CF6F-4543-9670-5551D32E22B8} + {941D72C5-CA37-4745-B89D-2257517C5761} = {47F487BB-CF6F-4543-9670-5551D32E22B8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {057BF9A0-199B-4EB5-85D5-84982259C7BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {057BF9A0-199B-4EB5-85D5-84982259C7BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {057BF9A0-199B-4EB5-85D5-84982259C7BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {057BF9A0-199B-4EB5-85D5-84982259C7BC}.Release|Any CPU.Build.0 = Release|Any CPU - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E}.Release|Any CPU.Build.0 = Release|Any CPU - {2122228D-ADAD-43D8-BC56-6A061DE8B25C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2122228D-ADAD-43D8-BC56-6A061DE8B25C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2122228D-ADAD-43D8-BC56-6A061DE8B25C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2122228D-ADAD-43D8-BC56-6A061DE8B25C}.Release|Any CPU.Build.0 = Release|Any CPU - {062B7E35-224E-4DB3-A3A4-35352CAFA50A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {062B7E35-224E-4DB3-A3A4-35352CAFA50A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {062B7E35-224E-4DB3-A3A4-35352CAFA50A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {062B7E35-224E-4DB3-A3A4-35352CAFA50A}.Release|Any CPU.Build.0 = Release|Any CPU + {1415080F-E571-4350-97F8-36D1871AA17D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1415080F-E571-4350-97F8-36D1871AA17D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1415080F-E571-4350-97F8-36D1871AA17D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1415080F-E571-4350-97F8-36D1871AA17D}.Release|Any CPU.Build.0 = Release|Any CPU + {97C3FEA1-EE20-4848-B468-36F3E59863B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97C3FEA1-EE20-4848-B468-36F3E59863B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97C3FEA1-EE20-4848-B468-36F3E59863B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97C3FEA1-EE20-4848-B468-36F3E59863B0}.Release|Any CPU.Build.0 = Release|Any CPU + {E57BD2F0-8235-49FF-B3CD-76A40804E472}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E57BD2F0-8235-49FF-B3CD-76A40804E472}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E57BD2F0-8235-49FF-B3CD-76A40804E472}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E57BD2F0-8235-49FF-B3CD-76A40804E472}.Release|Any CPU.Build.0 = Release|Any CPU + {72E42933-6469-41D3-97B6-B522FB20FF62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72E42933-6469-41D3-97B6-B522FB20FF62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72E42933-6469-41D3-97B6-B522FB20FF62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72E42933-6469-41D3-97B6-B522FB20FF62}.Release|Any CPU.Build.0 = Release|Any CPU + {6157FC12-0BEC-4A23-80F0-FBC8A8C71E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6157FC12-0BEC-4A23-80F0-FBC8A8C71E22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6157FC12-0BEC-4A23-80F0-FBC8A8C71E22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6157FC12-0BEC-4A23-80F0-FBC8A8C71E22}.Release|Any CPU.Build.0 = Release|Any CPU + {941D72C5-CA37-4745-B89D-2257517C5761}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {941D72C5-CA37-4745-B89D-2257517C5761}.Debug|Any CPU.Build.0 = Debug|Any CPU + {941D72C5-CA37-4745-B89D-2257517C5761}.Release|Any CPU.ActiveCfg = Release|Any CPU + {941D72C5-CA37-4745-B89D-2257517C5761}.Release|Any CPU.Build.0 = Release|Any CPU + {11D31B6C-3ECF-472B-8AD5-3D799BA3F052}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11D31B6C-3ECF-472B-8AD5-3D799BA3F052}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11D31B6C-3ECF-472B-8AD5-3D799BA3F052}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11D31B6C-3ECF-472B-8AD5-3D799BA3F052}.Release|Any CPU.Build.0 = Release|Any CPU + {39821B61-69B3-414A-99CF-FE7E494AEA90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39821B61-69B3-414A-99CF-FE7E494AEA90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39821B61-69B3-414A-99CF-FE7E494AEA90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39821B61-69B3-414A-99CF-FE7E494AEA90}.Release|Any CPU.Build.0 = Release|Any CPU + {EB300642-E2DA-47F8-ABBE-3405255DB147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB300642-E2DA-47F8-ABBE-3405255DB147}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB300642-E2DA-47F8-ABBE-3405255DB147}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB300642-E2DA-47F8-ABBE-3405255DB147}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {057BF9A0-199B-4EB5-85D5-84982259C7BC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F8C8FBFC-CA6E-4BDA-A1B3-FA4E17C10D9E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {2122228D-ADAD-43D8-BC56-6A061DE8B25C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {062B7E35-224E-4DB3-A3A4-35352CAFA50A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {AE3AA6A2-75B8-4797-81D2-A1B475D1D5C4} + SolutionGuid = {568C6D8F-F5AD-4703-A695-EA54585C33D0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln b/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln index d5fee5bc4828..d6bcd1af77c0 100644 --- a/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln +++ b/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln @@ -1,114 +1,339 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions.Tests", "tests\System.Runtime.Extensions.Tests.csproj", "{6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9}" - ProjectSection(ProjectDependencies) = postProject - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AssemblyResolveTestApp", "tests\AssemblyResolveTestApp\AssemblyResolveTestApp.csproj", "{E60AFAE8-2EA7-471C-9E24-52A99453B26B}" - ProjectSection(ProjectDependencies) = postProject - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D7A1E176-1515-41FE-86D0-A46C82B87B05}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp", "tests\TestApp\TestApp.csproj", "{24BCEC6B-B9D2-47BC-9D66-725BD6B526FA}" - ProjectSection(ProjectDependencies) = postProject - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FDADC7A8-E992-492E-BE11-30EDC29C330B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestAppOutsideOfTPA", "tests\TestAppOutsideOfTPA\TestAppOutsideOfTPA.csproj", "{C44B33E3-F89F-40B9-B353-D380C1524988}" - ProjectSection(ProjectDependencies) = postProject - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoidMainWithExitCodeApp", "tests\VoidMainWithExitCodeApp\VoidMainWithExitCodeApp.csproj", "{9F312D76-9AF1-4E90-B3B0-815A1EC6C346}" - ProjectSection(ProjectDependencies) = postProject - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "src\System.Runtime.Extensions.csproj", "{845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}" - ProjectSection(ProjectDependencies) = postProject - {33B27785-02FD-4544-8E7D-EB802248BEC3} = {33B27785-02FD-4544-8E7D-EB802248BEC3} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "ref\System.Runtime.Extensions.csproj", "{33B27785-02FD-4544-8E7D-EB802248BEC3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "ref\System.Runtime.Extensions.csproj", "{959EAFBC-9394-4E25-9A84-0B85152A7FCD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "src\System.Runtime.Extensions.csproj", "{FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AssemblyResolveTestApp", "tests\AssemblyResolveTestApp\AssemblyResolveTestApp.csproj", "{01EC2059-605F-472C-A255-ED76197F62CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions.Tests", "tests\System.Runtime.Extensions.Tests.csproj", "{AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{471E2D8C-6019-4ACF-9325-10B1D42A45B0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TargetFrameworkNameTestApp", "tests\TargetFrameworkNameTestApp\TargetFrameworkNameTestApp.csproj", "{9192FB4F-9A3B-48CA-AB53-322888009601}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{BBF67D35-3E00-4237-8F82-17449F89FC64}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp", "tests\TestApp\TestApp.csproj", "{1FDA0C56-0687-4F08-B147-E997C026A12D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{D8491ED4-5856-4A56-AD74-38928BAFD525}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestAppOutsideOfTPA", "tests\TestAppOutsideOfTPA\TestAppOutsideOfTPA.csproj", "{397D1AB1-0A29-462A-9F05-14015B8B5796}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoidMainWithExitCodeApp", "tests\VoidMainWithExitCodeApp\VoidMainWithExitCodeApp.csproj", "{F55614A7-859C-4171-844B-46F37EDDD351}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{69D31E64-8622-4C3E-9984-F6A15B4C082D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{2212F409-51BE-4194-8B73-232C23CF6546}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AD77A0E1-B4B5-48A3-9BFE-D5448B10022D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F6C70DDD-E262-4F1F-91C7-767E5329306C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{54C17E6F-FA69-4EC9-8891-F3D1300ABE58}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7} = {AD77A0E1-B4B5-48A3-9BFE-D5448B10022D} + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2} = {AD77A0E1-B4B5-48A3-9BFE-D5448B10022D} + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D} = {AD77A0E1-B4B5-48A3-9BFE-D5448B10022D} + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A} = {AD77A0E1-B4B5-48A3-9BFE-D5448B10022D} + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8} = {AD77A0E1-B4B5-48A3-9BFE-D5448B10022D} + {D7A1E176-1515-41FE-86D0-A46C82B87B05} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {01EC2059-605F-472C-A255-ED76197F62CD} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {9192FB4F-9A3B-48CA-AB53-322888009601} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {1FDA0C56-0687-4F08-B147-E997C026A12D} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {397D1AB1-0A29-462A-9F05-14015B8B5796} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {F55614A7-859C-4171-844B-46F37EDDD351} = {F6C70DDD-E262-4F1F-91C7-767E5329306C} + {FDADC7A8-E992-492E-BE11-30EDC29C330B} = {54C17E6F-FA69-4EC9-8891-F3D1300ABE58} + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9} = {54C17E6F-FA69-4EC9-8891-F3D1300ABE58} + {959EAFBC-9394-4E25-9A84-0B85152A7FCD} = {54C17E6F-FA69-4EC9-8891-F3D1300ABE58} + {69D31E64-8622-4C3E-9984-F6A15B4C082D} = {54C17E6F-FA69-4EC9-8891-F3D1300ABE58} + {2212F409-51BE-4194-8B73-232C23CF6546} = {54C17E6F-FA69-4EC9-8891-F3D1300ABE58} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9}.Release|Any CPU.Build.0 = Release|Any CPU - {E60AFAE8-2EA7-471C-9E24-52A99453B26B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E60AFAE8-2EA7-471C-9E24-52A99453B26B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E60AFAE8-2EA7-471C-9E24-52A99453B26B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E60AFAE8-2EA7-471C-9E24-52A99453B26B}.Release|Any CPU.Build.0 = Release|Any CPU - {24BCEC6B-B9D2-47BC-9D66-725BD6B526FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {24BCEC6B-B9D2-47BC-9D66-725BD6B526FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {24BCEC6B-B9D2-47BC-9D66-725BD6B526FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {24BCEC6B-B9D2-47BC-9D66-725BD6B526FA}.Release|Any CPU.Build.0 = Release|Any CPU - {C44B33E3-F89F-40B9-B353-D380C1524988}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C44B33E3-F89F-40B9-B353-D380C1524988}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C44B33E3-F89F-40B9-B353-D380C1524988}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C44B33E3-F89F-40B9-B353-D380C1524988}.Release|Any CPU.Build.0 = Release|Any CPU - {9F312D76-9AF1-4E90-B3B0-815A1EC6C346}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F312D76-9AF1-4E90-B3B0-815A1EC6C346}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F312D76-9AF1-4E90-B3B0-815A1EC6C346}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F312D76-9AF1-4E90-B3B0-815A1EC6C346}.Release|Any CPU.Build.0 = Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Release|Any CPU.Build.0 = Release|Any CPU - {33B27785-02FD-4544-8E7D-EB802248BEC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33B27785-02FD-4544-8E7D-EB802248BEC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33B27785-02FD-4544-8E7D-EB802248BEC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33B27785-02FD-4544-8E7D-EB802248BEC3}.Release|Any CPU.Build.0 = Release|Any CPU - {471E2D8C-6019-4ACF-9325-10B1D42A45B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {471E2D8C-6019-4ACF-9325-10B1D42A45B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {471E2D8C-6019-4ACF-9325-10B1D42A45B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {471E2D8C-6019-4ACF-9325-10B1D42A45B0}.Release|Any CPU.Build.0 = Release|Any CPU - {BBF67D35-3E00-4237-8F82-17449F89FC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BBF67D35-3E00-4237-8F82-17449F89FC64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BBF67D35-3E00-4237-8F82-17449F89FC64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BBF67D35-3E00-4237-8F82-17449F89FC64}.Release|Any CPU.Build.0 = Release|Any CPU - {D8491ED4-5856-4A56-AD74-38928BAFD525}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8491ED4-5856-4A56-AD74-38928BAFD525}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8491ED4-5856-4A56-AD74-38928BAFD525}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8491ED4-5856-4A56-AD74-38928BAFD525}.Release|Any CPU.Build.0 = Release|Any CPU + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|Any CPU.ActiveCfg = Debug|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|Any CPU.Build.0 = Debug|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|x64.ActiveCfg = Debug|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|x64.Build.0 = Debug|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|x86.ActiveCfg = Debug|x86 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Debug|x86.Build.0 = Debug|x86 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|Any CPU.ActiveCfg = Release|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|Any CPU.Build.0 = Release|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|x64.ActiveCfg = Release|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|x64.Build.0 = Release|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|x86.ActiveCfg = Release|x86 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Release|x86.Build.0 = Release|x86 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|Any CPU.ActiveCfg = Checked|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|Any CPU.Build.0 = Checked|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|x64.ActiveCfg = Checked|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|x64.Build.0 = Checked|x64 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|x86.ActiveCfg = Checked|x86 + {5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}.Checked|x86.Build.0 = Checked|x86 + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|x64.ActiveCfg = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|x64.Build.0 = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|x86.ActiveCfg = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Debug|x86.Build.0 = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|Any CPU.Build.0 = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|x64.ActiveCfg = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|x64.Build.0 = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|x86.ActiveCfg = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Release|x86.Build.0 = Release|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Checked|x64.ActiveCfg = Debug|Any CPU + {D7A1E176-1515-41FE-86D0-A46C82B87B05}.Checked|x86.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|x64.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|x64.Build.0 = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|x86.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Debug|x86.Build.0 = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|Any CPU.Build.0 = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|x64.ActiveCfg = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|x64.Build.0 = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|x86.ActiveCfg = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Release|x86.Build.0 = Release|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Checked|x64.ActiveCfg = Debug|Any CPU + {FDADC7A8-E992-492E-BE11-30EDC29C330B}.Checked|x86.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|x64.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|x64.Build.0 = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|x86.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Debug|x86.Build.0 = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|Any CPU.Build.0 = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|x64.ActiveCfg = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|x64.Build.0 = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|x86.ActiveCfg = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Release|x86.Build.0 = Release|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Checked|x64.ActiveCfg = Debug|Any CPU + {1E0C4DD8-3A04-4B4C-9699-DB5844F2CFB2}.Checked|x86.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|x64.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|x64.Build.0 = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|x86.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Debug|x86.Build.0 = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|Any CPU.Build.0 = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|x64.ActiveCfg = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|x64.Build.0 = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|x86.ActiveCfg = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Release|x86.Build.0 = Release|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Checked|x64.ActiveCfg = Debug|Any CPU + {8B176D63-5A92-4A28-B0BB-7FA9EDA3A4F9}.Checked|x86.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|x64.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|x64.Build.0 = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|x86.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Debug|x86.Build.0 = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|Any CPU.Build.0 = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|x64.ActiveCfg = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|x64.Build.0 = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|x86.ActiveCfg = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Release|x86.Build.0 = Release|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Checked|x64.ActiveCfg = Debug|Any CPU + {F421E24B-06BE-4D6F-A9E1-C8E4F4513D9D}.Checked|x86.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|x64.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|x64.Build.0 = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|x86.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Debug|x86.Build.0 = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|Any CPU.Build.0 = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|x64.ActiveCfg = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|x64.Build.0 = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|x86.ActiveCfg = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Release|x86.Build.0 = Release|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Checked|x64.ActiveCfg = Debug|Any CPU + {959EAFBC-9394-4E25-9A84-0B85152A7FCD}.Checked|x86.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|x64.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|x64.Build.0 = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|x86.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Debug|x86.Build.0 = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|Any CPU.Build.0 = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|x64.ActiveCfg = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|x64.Build.0 = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|x86.ActiveCfg = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Release|x86.Build.0 = Release|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Checked|x64.ActiveCfg = Debug|Any CPU + {FF0EFAEE-3E1A-4C7B-8B4A-AAC8E0988A0A}.Checked|x86.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|x64.Build.0 = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|x86.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Debug|x86.Build.0 = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|Any CPU.Build.0 = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|x64.ActiveCfg = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|x64.Build.0 = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|x86.ActiveCfg = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Release|x86.Build.0 = Release|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Checked|x64.ActiveCfg = Debug|Any CPU + {01EC2059-605F-472C-A255-ED76197F62CD}.Checked|x86.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|x64.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|x64.Build.0 = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|x86.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Debug|x86.Build.0 = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|Any CPU.Build.0 = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|x64.ActiveCfg = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|x64.Build.0 = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|x86.ActiveCfg = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Release|x86.Build.0 = Release|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Checked|x64.ActiveCfg = Debug|Any CPU + {AA1BB6A8-7CC0-46BA-B83B-13B1F4CF825E}.Checked|x86.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|x64.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|x64.Build.0 = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|x86.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Debug|x86.Build.0 = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|Any CPU.Build.0 = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|x64.ActiveCfg = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|x64.Build.0 = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|x86.ActiveCfg = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Release|x86.Build.0 = Release|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Checked|x64.ActiveCfg = Debug|Any CPU + {9192FB4F-9A3B-48CA-AB53-322888009601}.Checked|x86.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|x64.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|x64.Build.0 = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|x86.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Debug|x86.Build.0 = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|Any CPU.Build.0 = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|x64.ActiveCfg = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|x64.Build.0 = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|x86.ActiveCfg = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Release|x86.Build.0 = Release|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Checked|x64.ActiveCfg = Debug|Any CPU + {1FDA0C56-0687-4F08-B147-E997C026A12D}.Checked|x86.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|Any CPU.Build.0 = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|x64.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|x64.Build.0 = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|x86.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Debug|x86.Build.0 = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|Any CPU.ActiveCfg = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|Any CPU.Build.0 = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|x64.ActiveCfg = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|x64.Build.0 = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|x86.ActiveCfg = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Release|x86.Build.0 = Release|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Checked|x64.ActiveCfg = Debug|Any CPU + {397D1AB1-0A29-462A-9F05-14015B8B5796}.Checked|x86.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|x64.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|x64.Build.0 = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|x86.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Debug|x86.Build.0 = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|Any CPU.Build.0 = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|x64.ActiveCfg = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|x64.Build.0 = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|x86.ActiveCfg = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Release|x86.Build.0 = Release|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Checked|x64.ActiveCfg = Debug|Any CPU + {F55614A7-859C-4171-844B-46F37EDDD351}.Checked|x86.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|x64.Build.0 = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Debug|x86.Build.0 = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|Any CPU.Build.0 = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|x64.ActiveCfg = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|x64.Build.0 = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|x86.ActiveCfg = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Release|x86.Build.0 = Release|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Checked|x64.ActiveCfg = Debug|Any CPU + {2F9303F6-6EF0-4B14-80B9-A4D9BDA10AE8}.Checked|x86.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|x64.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|x64.Build.0 = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|x86.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Debug|x86.Build.0 = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|Any CPU.Build.0 = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|x64.ActiveCfg = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|x64.Build.0 = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|x86.ActiveCfg = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Release|x86.Build.0 = Release|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Checked|x64.ActiveCfg = Debug|Any CPU + {69D31E64-8622-4C3E-9984-F6A15B4C082D}.Checked|x86.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|x64.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|x64.Build.0 = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|x86.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Debug|x86.Build.0 = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|Any CPU.Build.0 = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|x64.ActiveCfg = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|x64.Build.0 = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|x86.ActiveCfg = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Release|x86.Build.0 = Release|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Checked|x64.ActiveCfg = Debug|Any CPU + {2212F409-51BE-4194-8B73-232C23CF6546}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6C314C9B-3D28-4B05-9B4C-B57A00A9B3B9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E60AFAE8-2EA7-471C-9E24-52A99453B26B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {24BCEC6B-B9D2-47BC-9D66-725BD6B526FA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C44B33E3-F89F-40B9-B353-D380C1524988} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {9F312D76-9AF1-4E90-B3B0-815A1EC6C346} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {33B27785-02FD-4544-8E7D-EB802248BEC3} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {471E2D8C-6019-4ACF-9325-10B1D42A45B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {BBF67D35-3E00-4237-8F82-17449F89FC64} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D8491ED4-5856-4A56-AD74-38928BAFD525} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A72515DE-1334-4155-9DB7-4EA49A6F5AA0} + SolutionGuid = {D347D246-1A9D-4D45-83A4-58C47241FE13} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Handles/System.Runtime.Handles.sln b/src/libraries/System.Runtime.Handles/System.Runtime.Handles.sln index f1659ae0cfcc..1322438632a9 100644 --- a/src/libraries/System.Runtime.Handles/System.Runtime.Handles.sln +++ b/src/libraries/System.Runtime.Handles/System.Runtime.Handles.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles.Tests", "tests\System.Runtime.Handles.Tests.csproj", "{9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5}" - ProjectSection(ProjectDependencies) = postProject - {D85EE71C-F05B-4331-9300-8E2833D49E19} = {D85EE71C-F05B-4331-9300-8E2833D49E19} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C2EBFF8C-0395-44E4-807C-B1BE41B339E3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles", "src\System.Runtime.Handles.csproj", "{D85EE71C-F05B-4331-9300-8E2833D49E19}" - ProjectSection(ProjectDependencies) = postProject - {46C4C03C-3055-4E97-858B-3E83CB862262} = {46C4C03C-3055-4E97-858B-3E83CB862262} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{12521F0A-DB8A-4AEC-9C87-FEF336E60C4D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles", "ref\System.Runtime.Handles.csproj", "{46C4C03C-3055-4E97-858B-3E83CB862262}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{122D80EB-D5F2-4228-8657-2BF93DBFB22C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B3083B91-237A-4646-97E8-F59B8A3C1E5F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles", "ref\System.Runtime.Handles.csproj", "{26C50637-E915-450B-93DB-B11A2678CFAF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles", "src\System.Runtime.Handles.csproj", "{8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0F0900A5-5E78-4504-B274-F9B631F3B824}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Handles.Tests", "tests\System.Runtime.Handles.Tests.csproj", "{2C0117E7-BC37-4C3F-A291-9C45AEA68F02}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{A4F36279-B455-4C5B-A4D8-D338ED726EC9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{83AE7485-51D0-4026-968E-2176DE2F11F1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{0E635412-3218-49BF-A528-A6504D09EBF4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{92F26E40-989E-403E-AB9C-B03624CA9891}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {C2EBFF8C-0395-44E4-807C-B1BE41B339E3} = {83AE7485-51D0-4026-968E-2176DE2F11F1} + {2C0117E7-BC37-4C3F-A291-9C45AEA68F02} = {83AE7485-51D0-4026-968E-2176DE2F11F1} + {12521F0A-DB8A-4AEC-9C87-FEF336E60C4D} = {0E635412-3218-49BF-A528-A6504D09EBF4} + {122D80EB-D5F2-4228-8657-2BF93DBFB22C} = {0E635412-3218-49BF-A528-A6504D09EBF4} + {26C50637-E915-450B-93DB-B11A2678CFAF} = {0E635412-3218-49BF-A528-A6504D09EBF4} + {D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763} = {0E635412-3218-49BF-A528-A6504D09EBF4} + {A4F36279-B455-4C5B-A4D8-D338ED726EC9} = {0E635412-3218-49BF-A528-A6504D09EBF4} + {B3083B91-237A-4646-97E8-F59B8A3C1E5F} = {92F26E40-989E-403E-AB9C-B03624CA9891} + {8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F} = {92F26E40-989E-403E-AB9C-B03624CA9891} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5}.Release|Any CPU.Build.0 = Release|Any CPU - {D85EE71C-F05B-4331-9300-8E2833D49E19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D85EE71C-F05B-4331-9300-8E2833D49E19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D85EE71C-F05B-4331-9300-8E2833D49E19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D85EE71C-F05B-4331-9300-8E2833D49E19}.Release|Any CPU.Build.0 = Release|Any CPU - {46C4C03C-3055-4E97-858B-3E83CB862262}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46C4C03C-3055-4E97-858B-3E83CB862262}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46C4C03C-3055-4E97-858B-3E83CB862262}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46C4C03C-3055-4E97-858B-3E83CB862262}.Release|Any CPU.Build.0 = Release|Any CPU - {0F0900A5-5E78-4504-B274-F9B631F3B824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F0900A5-5E78-4504-B274-F9B631F3B824}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F0900A5-5E78-4504-B274-F9B631F3B824}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F0900A5-5E78-4504-B274-F9B631F3B824}.Release|Any CPU.Build.0 = Release|Any CPU + {C2EBFF8C-0395-44E4-807C-B1BE41B339E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2EBFF8C-0395-44E4-807C-B1BE41B339E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2EBFF8C-0395-44E4-807C-B1BE41B339E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2EBFF8C-0395-44E4-807C-B1BE41B339E3}.Release|Any CPU.Build.0 = Release|Any CPU + {12521F0A-DB8A-4AEC-9C87-FEF336E60C4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12521F0A-DB8A-4AEC-9C87-FEF336E60C4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12521F0A-DB8A-4AEC-9C87-FEF336E60C4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12521F0A-DB8A-4AEC-9C87-FEF336E60C4D}.Release|Any CPU.Build.0 = Release|Any CPU + {122D80EB-D5F2-4228-8657-2BF93DBFB22C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {122D80EB-D5F2-4228-8657-2BF93DBFB22C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {122D80EB-D5F2-4228-8657-2BF93DBFB22C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {122D80EB-D5F2-4228-8657-2BF93DBFB22C}.Release|Any CPU.Build.0 = Release|Any CPU + {B3083B91-237A-4646-97E8-F59B8A3C1E5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3083B91-237A-4646-97E8-F59B8A3C1E5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3083B91-237A-4646-97E8-F59B8A3C1E5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3083B91-237A-4646-97E8-F59B8A3C1E5F}.Release|Any CPU.Build.0 = Release|Any CPU + {26C50637-E915-450B-93DB-B11A2678CFAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26C50637-E915-450B-93DB-B11A2678CFAF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26C50637-E915-450B-93DB-B11A2678CFAF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26C50637-E915-450B-93DB-B11A2678CFAF}.Release|Any CPU.Build.0 = Release|Any CPU + {8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FB6B1B7-FA5C-4E13-BA3E-2FD95018237F}.Release|Any CPU.Build.0 = Release|Any CPU + {2C0117E7-BC37-4C3F-A291-9C45AEA68F02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C0117E7-BC37-4C3F-A291-9C45AEA68F02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C0117E7-BC37-4C3F-A291-9C45AEA68F02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C0117E7-BC37-4C3F-A291-9C45AEA68F02}.Release|Any CPU.Build.0 = Release|Any CPU + {D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9F2C6F3-95A4-49DB-B1FD-AE3BD2FC1763}.Release|Any CPU.Build.0 = Release|Any CPU + {A4F36279-B455-4C5B-A4D8-D338ED726EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4F36279-B455-4C5B-A4D8-D338ED726EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4F36279-B455-4C5B-A4D8-D338ED726EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4F36279-B455-4C5B-A4D8-D338ED726EC9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9C77C3CA-7067-4D45-BDFE-CC62AB5C1ED5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D85EE71C-F05B-4331-9300-8E2833D49E19} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {46C4C03C-3055-4E97-858B-3E83CB862262} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {0F0900A5-5E78-4504-B274-F9B631F3B824} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {841E2B0F-0D06-4807-B967-DD0F6178214E} + SolutionGuid = {08352DB8-2D6F-4ABA-939D-9080EFA16409} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.sln b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.sln index b5c7a0c4ca83..494fa72b8d86 100644 --- a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.sln +++ b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation.Tests", "tests\System.Runtime.InteropServices.RuntimeInformation.Tests.csproj", "{9B4D1DA9-AA4C-428F-9F66-D45C924025A5}" - ProjectSection(ProjectDependencies) = postProject - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2} = {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{330C46C6-15A6-4713-A227-3BFA379D4479}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation", "src\System.Runtime.InteropServices.RuntimeInformation.csproj", "{1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2}" - ProjectSection(ProjectDependencies) = postProject - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7} = {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9CCFC6F9-6A43-4219-B92F-7F5904218B87}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation", "ref\System.Runtime.InteropServices.RuntimeInformation.csproj", "{9E5D12CD-67C1-4A01-80DF-02CEC3154BB7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{BB55A91F-822B-4D5C-B3A2-02372BB356FA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{0A1860C3-7207-49CE-B921-A9A76EA4A9DB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation", "ref\System.Runtime.InteropServices.RuntimeInformation.csproj", "{B2937043-2666-41F2-A72B-FA9CDBBC012A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation", "src\System.Runtime.InteropServices.RuntimeInformation.csproj", "{375DB818-0E7E-4361-9C56-07658B666B8B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{924F4527-C208-40A5-B7B8-34305878581E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.RuntimeInformation.Tests", "tests\System.Runtime.InteropServices.RuntimeInformation.Tests.csproj", "{4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D3A57789-B0FA-4D78-A54F-0C66F36ED7A7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{A19CEDB4-5DA7-4371-A5A5-497104B9531A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{53AE1161-5317-4738-B5CF-B7F6A55E1921}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6AC01188-469D-4BBC-8579-66658659D3EE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{11C5C45A-8ED7-47BD-BD69-51AC702D8AB2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {330C46C6-15A6-4713-A227-3BFA379D4479} = {53AE1161-5317-4738-B5CF-B7F6A55E1921} + {4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8} = {53AE1161-5317-4738-B5CF-B7F6A55E1921} + {9CCFC6F9-6A43-4219-B92F-7F5904218B87} = {6AC01188-469D-4BBC-8579-66658659D3EE} + {BB55A91F-822B-4D5C-B3A2-02372BB356FA} = {6AC01188-469D-4BBC-8579-66658659D3EE} + {B2937043-2666-41F2-A72B-FA9CDBBC012A} = {6AC01188-469D-4BBC-8579-66658659D3EE} + {D3A57789-B0FA-4D78-A54F-0C66F36ED7A7} = {6AC01188-469D-4BBC-8579-66658659D3EE} + {A19CEDB4-5DA7-4371-A5A5-497104B9531A} = {6AC01188-469D-4BBC-8579-66658659D3EE} + {0A1860C3-7207-49CE-B921-A9A76EA4A9DB} = {11C5C45A-8ED7-47BD-BD69-51AC702D8AB2} + {375DB818-0E7E-4361-9C56-07658B666B8B} = {11C5C45A-8ED7-47BD-BD69-51AC702D8AB2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9B4D1DA9-AA4C-428F-9F66-D45C924025A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B4D1DA9-AA4C-428F-9F66-D45C924025A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B4D1DA9-AA4C-428F-9F66-D45C924025A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B4D1DA9-AA4C-428F-9F66-D45C924025A5}.Release|Any CPU.Build.0 = Release|Any CPU - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2}.Release|Any CPU.Build.0 = Release|Any CPU - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7}.Release|Any CPU.Build.0 = Release|Any CPU - {924F4527-C208-40A5-B7B8-34305878581E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {924F4527-C208-40A5-B7B8-34305878581E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {924F4527-C208-40A5-B7B8-34305878581E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {924F4527-C208-40A5-B7B8-34305878581E}.Release|Any CPU.Build.0 = Release|Any CPU + {330C46C6-15A6-4713-A227-3BFA379D4479}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {330C46C6-15A6-4713-A227-3BFA379D4479}.Debug|Any CPU.Build.0 = Debug|Any CPU + {330C46C6-15A6-4713-A227-3BFA379D4479}.Release|Any CPU.ActiveCfg = Release|Any CPU + {330C46C6-15A6-4713-A227-3BFA379D4479}.Release|Any CPU.Build.0 = Release|Any CPU + {9CCFC6F9-6A43-4219-B92F-7F5904218B87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CCFC6F9-6A43-4219-B92F-7F5904218B87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CCFC6F9-6A43-4219-B92F-7F5904218B87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CCFC6F9-6A43-4219-B92F-7F5904218B87}.Release|Any CPU.Build.0 = Release|Any CPU + {BB55A91F-822B-4D5C-B3A2-02372BB356FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB55A91F-822B-4D5C-B3A2-02372BB356FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB55A91F-822B-4D5C-B3A2-02372BB356FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB55A91F-822B-4D5C-B3A2-02372BB356FA}.Release|Any CPU.Build.0 = Release|Any CPU + {0A1860C3-7207-49CE-B921-A9A76EA4A9DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A1860C3-7207-49CE-B921-A9A76EA4A9DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A1860C3-7207-49CE-B921-A9A76EA4A9DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A1860C3-7207-49CE-B921-A9A76EA4A9DB}.Release|Any CPU.Build.0 = Release|Any CPU + {B2937043-2666-41F2-A72B-FA9CDBBC012A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2937043-2666-41F2-A72B-FA9CDBBC012A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2937043-2666-41F2-A72B-FA9CDBBC012A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2937043-2666-41F2-A72B-FA9CDBBC012A}.Release|Any CPU.Build.0 = Release|Any CPU + {375DB818-0E7E-4361-9C56-07658B666B8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {375DB818-0E7E-4361-9C56-07658B666B8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {375DB818-0E7E-4361-9C56-07658B666B8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {375DB818-0E7E-4361-9C56-07658B666B8B}.Release|Any CPU.Build.0 = Release|Any CPU + {4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DFEE89A-C5B1-4D3E-9B34-96A2D6E98DB8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3A57789-B0FA-4D78-A54F-0C66F36ED7A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3A57789-B0FA-4D78-A54F-0C66F36ED7A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3A57789-B0FA-4D78-A54F-0C66F36ED7A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3A57789-B0FA-4D78-A54F-0C66F36ED7A7}.Release|Any CPU.Build.0 = Release|Any CPU + {A19CEDB4-5DA7-4371-A5A5-497104B9531A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A19CEDB4-5DA7-4371-A5A5-497104B9531A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A19CEDB4-5DA7-4371-A5A5-497104B9531A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A19CEDB4-5DA7-4371-A5A5-497104B9531A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {9B4D1DA9-AA4C-428F-9F66-D45C924025A5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1CBC030D-B5D3-4AB5-A9FD-24EC5F6F38D2} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {9E5D12CD-67C1-4A01-80DF-02CEC3154BB7} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {924F4527-C208-40A5-B7B8-34305878581E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0F1D774A-A3AA-4687-A6C3-2892FE40E176} + SolutionGuid = {8C10FECD-1847-429D-9777-81F246B05D48} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln index 2253a46fd0b6..dff4fac3a479 100644 --- a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln +++ b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln @@ -1,67 +1,213 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.Tests", "tests\System.Runtime.InteropServices.Tests.csproj", "{A824F4CD-935B-4496-A1B2-C3664936DA7B}" - ProjectSection(ProjectDependencies) = postProject - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE} = {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{94B59BA0-491F-4B59-ADFF-A057EC3EC835}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices", "src\System.Runtime.InteropServices.csproj", "{EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE}" - ProjectSection(ProjectDependencies) = postProject - {B17014F1-D902-417F-89B0-271204695831} = {B17014F1-D902-417F-89B0-271204695831} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices", "ref\System.Runtime.InteropServices.csproj", "{B17014F1-D902-417F-89B0-271204695831}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{EB306595-C964-474F-AFEE-803C886E4B8B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{5BB5F99F-1052-4EB4-B12E-7863805661F3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{23735A0B-AB51-4C1D-BD88-5240D672DD33}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices", "ref\System.Runtime.InteropServices.csproj", "{8671F164-F78C-44FA-93B7-A310F67890FE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{FC3991FA-C265-41A9-96D2-CB5C45C22668}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices", "src\System.Runtime.InteropServices.csproj", "{4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Extensions", "..\System.Runtime.Extensions\src\System.Runtime.Extensions.csproj", "{A36D14F2-5700-4508-AC6E-00787D2319A6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.InteropServices.Tests", "tests\System.Runtime.InteropServices.Tests.csproj", "{E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{B8C46FFD-86D0-4C84-97A5-60DDF29ED543}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{92B81157-BB47-4A19-9229-23AE9B126DAA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F66D19A6-4D11-45EC-B73F-7F4E4F8DB76B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{451A41C1-B1BC-49DE-8F3F-26F2D8BF841A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E7481FAF-728B-448D-9A38-88B40E3C400E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {94B59BA0-491F-4B59-ADFF-A057EC3EC835} = {F66D19A6-4D11-45EC-B73F-7F4E4F8DB76B} + {23735A0B-AB51-4C1D-BD88-5240D672DD33} = {F66D19A6-4D11-45EC-B73F-7F4E4F8DB76B} + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1} = {F66D19A6-4D11-45EC-B73F-7F4E4F8DB76B} + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA} = {451A41C1-B1BC-49DE-8F3F-26F2D8BF841A} + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664} = {451A41C1-B1BC-49DE-8F3F-26F2D8BF841A} + {EB306595-C964-474F-AFEE-803C886E4B8B} = {E7481FAF-728B-448D-9A38-88B40E3C400E} + {5BB5F99F-1052-4EB4-B12E-7863805661F3} = {E7481FAF-728B-448D-9A38-88B40E3C400E} + {8671F164-F78C-44FA-93B7-A310F67890FE} = {E7481FAF-728B-448D-9A38-88B40E3C400E} + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543} = {E7481FAF-728B-448D-9A38-88B40E3C400E} + {92B81157-BB47-4A19-9229-23AE9B126DAA} = {E7481FAF-728B-448D-9A38-88B40E3C400E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A824F4CD-935B-4496-A1B2-C3664936DA7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A824F4CD-935B-4496-A1B2-C3664936DA7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A824F4CD-935B-4496-A1B2-C3664936DA7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A824F4CD-935B-4496-A1B2-C3664936DA7B}.Release|Any CPU.Build.0 = Release|Any CPU - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE}.Release|Any CPU.Build.0 = Release|Any CPU - {B17014F1-D902-417F-89B0-271204695831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B17014F1-D902-417F-89B0-271204695831}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B17014F1-D902-417F-89B0-271204695831}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B17014F1-D902-417F-89B0-271204695831}.Release|Any CPU.Build.0 = Release|Any CPU - {FC3991FA-C265-41A9-96D2-CB5C45C22668}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC3991FA-C265-41A9-96D2-CB5C45C22668}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC3991FA-C265-41A9-96D2-CB5C45C22668}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC3991FA-C265-41A9-96D2-CB5C45C22668}.Release|Any CPU.Build.0 = Release|Any CPU - {A36D14F2-5700-4508-AC6E-00787D2319A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A36D14F2-5700-4508-AC6E-00787D2319A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A36D14F2-5700-4508-AC6E-00787D2319A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A36D14F2-5700-4508-AC6E-00787D2319A6}.Release|Any CPU.Build.0 = Release|Any CPU + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|Any CPU.ActiveCfg = Debug|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|Any CPU.Build.0 = Debug|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|x64.ActiveCfg = Debug|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|x64.Build.0 = Debug|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|x86.ActiveCfg = Debug|x86 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Debug|x86.Build.0 = Debug|x86 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|Any CPU.ActiveCfg = Release|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|Any CPU.Build.0 = Release|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|x64.ActiveCfg = Release|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|x64.Build.0 = Release|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|x86.ActiveCfg = Release|x86 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Release|x86.Build.0 = Release|x86 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|Any CPU.ActiveCfg = Checked|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|Any CPU.Build.0 = Checked|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|x64.ActiveCfg = Checked|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|x64.Build.0 = Checked|x64 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|x86.ActiveCfg = Checked|x86 + {94B59BA0-491F-4B59-ADFF-A057EC3EC835}.Checked|x86.Build.0 = Checked|x86 + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|x64.ActiveCfg = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|x64.Build.0 = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|x86.ActiveCfg = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Debug|x86.Build.0 = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|Any CPU.Build.0 = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|x64.ActiveCfg = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|x64.Build.0 = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|x86.ActiveCfg = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Release|x86.Build.0 = Release|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Checked|x64.ActiveCfg = Debug|Any CPU + {1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}.Checked|x86.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|x64.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|x64.Build.0 = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|x86.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Debug|x86.Build.0 = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|Any CPU.Build.0 = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|x64.ActiveCfg = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|x64.Build.0 = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|x86.ActiveCfg = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Release|x86.Build.0 = Release|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Checked|x64.ActiveCfg = Debug|Any CPU + {EB306595-C964-474F-AFEE-803C886E4B8B}.Checked|x86.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|x64.Build.0 = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Debug|x86.Build.0 = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|Any CPU.Build.0 = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|x64.ActiveCfg = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|x64.Build.0 = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|x86.ActiveCfg = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Release|x86.Build.0 = Release|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Checked|x64.ActiveCfg = Debug|Any CPU + {5BB5F99F-1052-4EB4-B12E-7863805661F3}.Checked|x86.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|x64.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|x64.Build.0 = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|x86.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Debug|x86.Build.0 = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|Any CPU.Build.0 = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|x64.ActiveCfg = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|x64.Build.0 = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|x86.ActiveCfg = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Release|x86.Build.0 = Release|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Checked|x64.ActiveCfg = Debug|Any CPU + {23735A0B-AB51-4C1D-BD88-5240D672DD33}.Checked|x86.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|x64.Build.0 = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Debug|x86.Build.0 = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|Any CPU.Build.0 = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|x64.ActiveCfg = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|x64.Build.0 = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|x86.ActiveCfg = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Release|x86.Build.0 = Release|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Checked|x64.ActiveCfg = Debug|Any CPU + {8671F164-F78C-44FA-93B7-A310F67890FE}.Checked|x86.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|x64.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|x64.Build.0 = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|x86.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Debug|x86.Build.0 = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|Any CPU.Build.0 = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|x64.ActiveCfg = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|x64.Build.0 = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|x86.ActiveCfg = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Release|x86.Build.0 = Release|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Checked|x64.ActiveCfg = Debug|Any CPU + {4FC33B9B-1BCF-4D16-B886-DCA8F2B823C1}.Checked|x86.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|x64.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|x64.Build.0 = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|x86.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Debug|x86.Build.0 = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|Any CPU.Build.0 = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|x64.ActiveCfg = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|x64.Build.0 = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|x86.ActiveCfg = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Release|x86.Build.0 = Release|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Checked|x64.ActiveCfg = Debug|Any CPU + {E249BD6A-85DB-4CE4-BD82-8D67EBAC5664}.Checked|x86.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|x64.Build.0 = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|x86.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Debug|x86.Build.0 = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|Any CPU.Build.0 = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|x64.ActiveCfg = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|x64.Build.0 = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|x86.ActiveCfg = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Release|x86.Build.0 = Release|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Checked|x64.ActiveCfg = Debug|Any CPU + {B8C46FFD-86D0-4C84-97A5-60DDF29ED543}.Checked|x86.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|x64.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|x64.Build.0 = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|x86.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Debug|x86.Build.0 = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|Any CPU.Build.0 = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|x64.ActiveCfg = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|x64.Build.0 = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|x86.ActiveCfg = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Release|x86.Build.0 = Release|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Checked|x64.ActiveCfg = Debug|Any CPU + {92B81157-BB47-4A19-9229-23AE9B126DAA}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A824F4CD-935B-4496-A1B2-C3664936DA7B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {EC6AA4D9-B3E8-4CCA-8AB1-8BBFD89266AE} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B17014F1-D902-417F-89B0-271204695831} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {FC3991FA-C265-41A9-96D2-CB5C45C22668} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A36D14F2-5700-4508-AC6E-00787D2319A6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2FB12250-C235-4F6A-A3F2-8AB12B8AC4AE} + SolutionGuid = {D4031401-FEB5-4CCF-91C1-38F5646B2BFD} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln b/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln index 7e9816a5157d..627fc6a427b7 100644 --- a/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln +++ b/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln @@ -1,41 +1,85 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Intrinsics", "src\System.Runtime.Intrinsics.csproj", "{315E3C60-A5D9-4F47-A940-D57395EED606}" - ProjectSection(ProjectDependencies) = postProject - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2} = {F9097917-AFA3-4E3E-A592-BFA2C483C7E2} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5965CFFE-886A-418C-854F-5967D91DE914}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Intrinsics", "ref\System.Runtime.Intrinsics.csproj", "{F9097917-AFA3-4E3E-A592-BFA2C483C7E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Intrinsics", "ref\System.Runtime.Intrinsics.csproj", "{28B808CE-B1F8-4B05-9ADA-8884525BD87F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Intrinsics", "src\System.Runtime.Intrinsics.csproj", "{5AD79501-BEA5-48C7-B466-021A9DCB9D5C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{47B32900-BEBD-49E4-A54B-7A4BC87F0E68}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{65331E4B-EF91-413C-984B-51D110CE5AC6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5965CFFE-886A-418C-854F-5967D91DE914} = {47B32900-BEBD-49E4-A54B-7A4BC87F0E68} + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C} = {47B32900-BEBD-49E4-A54B-7A4BC87F0E68} + {28B808CE-B1F8-4B05-9ADA-8884525BD87F} = {65331E4B-EF91-413C-984B-51D110CE5AC6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {315E3C60-A5D9-4F47-A940-D57395EED606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {315E3C60-A5D9-4F47-A940-D57395EED606}.Debug|Any CPU.Build.0 = Debug|Any CPU - {315E3C60-A5D9-4F47-A940-D57395EED606}.Release|Any CPU.ActiveCfg = Release|Any CPU - {315E3C60-A5D9-4F47-A940-D57395EED606}.Release|Any CPU.Build.0 = Release|Any CPU - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2}.Release|Any CPU.Build.0 = Release|Any CPU + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|Any CPU.ActiveCfg = Debug|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|Any CPU.Build.0 = Debug|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|x64.ActiveCfg = Debug|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|x64.Build.0 = Debug|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|x86.ActiveCfg = Debug|x86 + {5965CFFE-886A-418C-854F-5967D91DE914}.Debug|x86.Build.0 = Debug|x86 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|Any CPU.ActiveCfg = Release|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|Any CPU.Build.0 = Release|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|x64.ActiveCfg = Release|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|x64.Build.0 = Release|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|x86.ActiveCfg = Release|x86 + {5965CFFE-886A-418C-854F-5967D91DE914}.Release|x86.Build.0 = Release|x86 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|Any CPU.ActiveCfg = Checked|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|Any CPU.Build.0 = Checked|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|x64.ActiveCfg = Checked|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|x64.Build.0 = Checked|x64 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|x86.ActiveCfg = Checked|x86 + {5965CFFE-886A-418C-854F-5967D91DE914}.Checked|x86.Build.0 = Checked|x86 + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|x64.ActiveCfg = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|x64.Build.0 = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|x86.ActiveCfg = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Debug|x86.Build.0 = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|Any CPU.Build.0 = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|x64.ActiveCfg = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|x64.Build.0 = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|x86.ActiveCfg = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Release|x86.Build.0 = Release|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Checked|x64.ActiveCfg = Debug|Any CPU + {28B808CE-B1F8-4B05-9ADA-8884525BD87F}.Checked|x86.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|x64.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|x64.Build.0 = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|x86.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Debug|x86.Build.0 = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|Any CPU.Build.0 = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|x64.ActiveCfg = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|x64.Build.0 = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|x86.ActiveCfg = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Release|x86.Build.0 = Release|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Checked|x64.ActiveCfg = Debug|Any CPU + {5AD79501-BEA5-48C7-B466-021A9DCB9D5C}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {315E3C60-A5D9-4F47-A940-D57395EED606} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F9097917-AFA3-4E3E-A592-BFA2C483C7E2} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2E88FB02-CE53-4D6E-8D60-CDCD578E1871} + SolutionGuid = {9205DA5F-88A2-4045-9B31-9CC53CCF7550} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln b/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln index ba70507898a7..c3a8075c8db7 100644 --- a/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln +++ b/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln @@ -1,150 +1,411 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Tests", "tests\System.Runtime.Loader.Tests.csproj", "{701CB3BC-00DC-435D-BDE4-C5FC29A708A7}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.ContextualReflectionDependency", "tests\ContextualReflectionDependency\System.Runtime.Loader.Test.ContextualReflectionDependency.csproj", "{95DBE3B0-AA86-4366-BB8A-E04B534365F3}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.DefaultContext.Tests", "tests\DefaultContext\System.Runtime.Loader.DefaultContext.Tests.csproj", "{701CB3BC-00DC-435D-BDE4-C5FC29A708A8}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.RefEmitLoadContext.Tests", "tests\RefEmitLoadContext\System.Runtime.Loader.RefEmitLoadContext.Tests.csproj", "{701CB3BC-00DC-435D-BDE4-C5FC29A708A9}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReferencedClassLib", "tests\ReferencedClassLib\ReferencedClassLib.csproj", "{2CD5A44C-65B4-4C51-AC7B-B2938307848A}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReferencedClassLibNeutralIsSatellite", "tests\ReferencedClassLibNeutralIsSatellite\ReferencedClassLibNeutralIsSatellite.csproj", "{7FA764E6-47A3-42B5-923B-7D5DBC611E8E}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Noop.Assembly", "tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj", "{396D6EBF-60BD-4DAF-8783-FB403E070A57}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.Assembly", "tests\System.Runtime.Loader.Test.Assembly\System.Runtime.Loader.Test.Assembly.csproj", "{E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.Assembly2", "tests\System.Runtime.Loader.Test.Assembly2\System.Runtime.Loader.Test.Assembly2.csproj", "{FBF73A8E-7889-4C7D-AFC3-509B821D0FC6}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.AssemblyNotSupported", "tests\System.Runtime.Loader.Test.AssemblyNotSupported\System.Runtime.Loader.Test.AssemblyNotSupported.csproj", "{F430F54A-7F28-4707-8006-F628B576664E}" - ProjectSection(ProjectDependencies) = postProject - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {485A65F0-51C9-4B95-A7A8-A4860C231E67} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader", "src\System.Runtime.Loader.csproj", "{485A65F0-51C9-4B95-A7A8-A4860C231E67}" - ProjectSection(ProjectDependencies) = postProject - {FB507A82-ACDD-4809-A030-6F9372A71194} = {FB507A82-ACDD-4809-A030-6F9372A71194} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader", "ref\System.Runtime.Loader.csproj", "{FB507A82-ACDD-4809-A030-6F9372A71194}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{074D2005-2DD1-4BD4-AAAF-B989C2D5B959}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D6D16FFD-FD76-4700-B456-1DC4D093D1B5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{E046E80F-B18A-463E-82D3-9755F9F8D8E9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{8D19CD03-08EE-4574-B798-C658502C0A42}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{074F38DA-36E1-4D2A-AEE6-3F783639ED9C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader", "ref\System.Runtime.Loader.csproj", "{95B66B14-BCC7-407A-930C-4B34D4F7EC98}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader", "src\System.Runtime.Loader.csproj", "{B8F22D73-B183-4F17-9D5E-04B80699E56A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.ContextualReflectionDependency", "tests\ContextualReflectionDependency\System.Runtime.Loader.Test.ContextualReflectionDependency.csproj", "{76BE0621-CDAD-4808-8537-ADC9F028286B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.DefaultContext.Tests", "tests\DefaultContext\System.Runtime.Loader.DefaultContext.Tests.csproj", "{8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoaderLinkTest.Dynamic", "tests\LoaderLinkTest.Dynamic\LoaderLinkTest.Dynamic.csproj", "{78BC94E5-2E23-40EF-863E-52AFCE838C96}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoaderLinkTest.Shared", "tests\LoaderLinkTest.Shared\LoaderLinkTest.Shared.csproj", "{7E785A7B-6ED6-4459-A07D-28DE1830C186}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.RefEmitLoadContext.Tests", "tests\RefEmitLoadContext\System.Runtime.Loader.RefEmitLoadContext.Tests.csproj", "{F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReferencedClassLib", "tests\ReferencedClassLib\ReferencedClassLib.csproj", "{CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReferencedClassLibNeutralIsSatellite", "tests\ReferencedClassLibNeutralIsSatellite\ReferencedClassLibNeutralIsSatellite.csproj", "{10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Noop.Assembly", "tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj", "{44B22827-B9F0-4ADC-969C-7EC647D0B82A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.Assembly", "tests\System.Runtime.Loader.Test.Assembly\System.Runtime.Loader.Test.Assembly.csproj", "{49B0A873-5834-45A4-9495-E1063005CB82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.Assembly2", "tests\System.Runtime.Loader.Test.Assembly2\System.Runtime.Loader.Test.Assembly2.csproj", "{E60DD367-D1D7-4F6C-919B-DC68E8445E97}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Test.AssemblyNotSupported", "tests\System.Runtime.Loader.Test.AssemblyNotSupported\System.Runtime.Loader.Test.AssemblyNotSupported.csproj", "{9AD657ED-396B-4BE7-BCB6-BCA130825418}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Loader.Tests", "tests\System.Runtime.Loader.Tests.csproj", "{29E02AA9-E3D5-400C-B2C5-970B6E6D8562}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{9D650A86-9EB5-41E6-89CE-B2A302D4F33F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2AA50D1B-FD91-4748-85CF-33B2D265EBF6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C573CBE3-41F5-400D-A212-34889236C09C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558} = {2AA50D1B-FD91-4748-85CF-33B2D265EBF6} + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C} = {2AA50D1B-FD91-4748-85CF-33B2D265EBF6} + {B8F22D73-B183-4F17-9D5E-04B80699E56A} = {2AA50D1B-FD91-4748-85CF-33B2D265EBF6} + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5} = {C573CBE3-41F5-400D-A212-34889236C09C} + {76BE0621-CDAD-4808-8537-ADC9F028286B} = {C573CBE3-41F5-400D-A212-34889236C09C} + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159} = {C573CBE3-41F5-400D-A212-34889236C09C} + {78BC94E5-2E23-40EF-863E-52AFCE838C96} = {C573CBE3-41F5-400D-A212-34889236C09C} + {7E785A7B-6ED6-4459-A07D-28DE1830C186} = {C573CBE3-41F5-400D-A212-34889236C09C} + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902} = {C573CBE3-41F5-400D-A212-34889236C09C} + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD} = {C573CBE3-41F5-400D-A212-34889236C09C} + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD} = {C573CBE3-41F5-400D-A212-34889236C09C} + {44B22827-B9F0-4ADC-969C-7EC647D0B82A} = {C573CBE3-41F5-400D-A212-34889236C09C} + {49B0A873-5834-45A4-9495-E1063005CB82} = {C573CBE3-41F5-400D-A212-34889236C09C} + {E60DD367-D1D7-4F6C-919B-DC68E8445E97} = {C573CBE3-41F5-400D-A212-34889236C09C} + {9AD657ED-396B-4BE7-BCB6-BCA130825418} = {C573CBE3-41F5-400D-A212-34889236C09C} + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562} = {C573CBE3-41F5-400D-A212-34889236C09C} + {E046E80F-B18A-463E-82D3-9755F9F8D8E9} = {52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0} + {8D19CD03-08EE-4574-B798-C658502C0A42} = {52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0} + {95B66B14-BCC7-407A-930C-4B34D4F7EC98} = {52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0} + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1} = {52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0} + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F} = {52AEFCDE-2CD8-4DE0-91DA-2B0B2AC32FD0} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {701CB3BC-00DC-435D-BDE4-C5FC29A708A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A7}.Release|Any CPU.Build.0 = Release|Any CPU - {95DBE3B0-AA86-4366-BB8A-E04B534365F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95DBE3B0-AA86-4366-BB8A-E04B534365F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95DBE3B0-AA86-4366-BB8A-E04B534365F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95DBE3B0-AA86-4366-BB8A-E04B534365F3}.Release|Any CPU.Build.0 = Release|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A8}.Release|Any CPU.Build.0 = Release|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {701CB3BC-00DC-435D-BDE4-C5FC29A708A9}.Release|Any CPU.Build.0 = Release|Any CPU - {2CD5A44C-65B4-4C51-AC7B-B2938307848A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CD5A44C-65B4-4C51-AC7B-B2938307848A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2CD5A44C-65B4-4C51-AC7B-B2938307848A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2CD5A44C-65B4-4C51-AC7B-B2938307848A}.Release|Any CPU.Build.0 = Release|Any CPU - {7FA764E6-47A3-42B5-923B-7D5DBC611E8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7FA764E6-47A3-42B5-923B-7D5DBC611E8E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7FA764E6-47A3-42B5-923B-7D5DBC611E8E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7FA764E6-47A3-42B5-923B-7D5DBC611E8E}.Release|Any CPU.Build.0 = Release|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A57}.Debug|Any CPU.Build.0 = Debug|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A57}.Release|Any CPU.ActiveCfg = Release|Any CPU - {396D6EBF-60BD-4DAF-8783-FB403E070A57}.Release|Any CPU.Build.0 = Release|Any CPU - {E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF}.Release|Any CPU.Build.0 = Release|Any CPU - {FBF73A8E-7889-4C7D-AFC3-509B821D0FC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBF73A8E-7889-4C7D-AFC3-509B821D0FC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBF73A8E-7889-4C7D-AFC3-509B821D0FC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBF73A8E-7889-4C7D-AFC3-509B821D0FC6}.Release|Any CPU.Build.0 = Release|Any CPU - {F430F54A-7F28-4707-8006-F628B576664E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F430F54A-7F28-4707-8006-F628B576664E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F430F54A-7F28-4707-8006-F628B576664E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F430F54A-7F28-4707-8006-F628B576664E}.Release|Any CPU.Build.0 = Release|Any CPU - {485A65F0-51C9-4B95-A7A8-A4860C231E67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {485A65F0-51C9-4B95-A7A8-A4860C231E67}.Debug|Any CPU.Build.0 = Debug|Any CPU - {485A65F0-51C9-4B95-A7A8-A4860C231E67}.Release|Any CPU.ActiveCfg = Release|Any CPU - {485A65F0-51C9-4B95-A7A8-A4860C231E67}.Release|Any CPU.Build.0 = Release|Any CPU - {FB507A82-ACDD-4809-A030-6F9372A71194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB507A82-ACDD-4809-A030-6F9372A71194}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB507A82-ACDD-4809-A030-6F9372A71194}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB507A82-ACDD-4809-A030-6F9372A71194}.Release|Any CPU.Build.0 = Release|Any CPU - {074D2005-2DD1-4BD4-AAAF-B989C2D5B959}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {074D2005-2DD1-4BD4-AAAF-B989C2D5B959}.Debug|Any CPU.Build.0 = Debug|Any CPU - {074D2005-2DD1-4BD4-AAAF-B989C2D5B959}.Release|Any CPU.ActiveCfg = Release|Any CPU - {074D2005-2DD1-4BD4-AAAF-B989C2D5B959}.Release|Any CPU.Build.0 = Release|Any CPU + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|Any CPU.ActiveCfg = Debug|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|Any CPU.Build.0 = Debug|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|x64.ActiveCfg = Debug|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|x64.Build.0 = Debug|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|x86.ActiveCfg = Debug|x86 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Debug|x86.Build.0 = Debug|x86 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|Any CPU.ActiveCfg = Release|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|Any CPU.Build.0 = Release|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|x64.ActiveCfg = Release|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|x64.Build.0 = Release|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|x86.ActiveCfg = Release|x86 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Release|x86.Build.0 = Release|x86 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|Any CPU.ActiveCfg = Checked|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|Any CPU.Build.0 = Checked|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|x64.ActiveCfg = Checked|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|x64.Build.0 = Checked|x64 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|x86.ActiveCfg = Checked|x86 + {64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}.Checked|x86.Build.0 = Checked|x86 + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|x64.ActiveCfg = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|x64.Build.0 = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Debug|x86.Build.0 = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|Any CPU.Build.0 = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|x64.ActiveCfg = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|x64.Build.0 = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|x86.ActiveCfg = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Release|x86.Build.0 = Release|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Checked|x64.ActiveCfg = Debug|Any CPU + {D6D16FFD-FD76-4700-B456-1DC4D093D1B5}.Checked|x86.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|x64.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|x64.Build.0 = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|x86.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Debug|x86.Build.0 = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|Any CPU.Build.0 = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|x64.ActiveCfg = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|x64.Build.0 = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|x86.ActiveCfg = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Release|x86.Build.0 = Release|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Checked|x64.ActiveCfg = Debug|Any CPU + {E046E80F-B18A-463E-82D3-9755F9F8D8E9}.Checked|x86.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|x64.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|x64.Build.0 = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|x86.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Debug|x86.Build.0 = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|Any CPU.Build.0 = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|x64.ActiveCfg = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|x64.Build.0 = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|x86.ActiveCfg = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Release|x86.Build.0 = Release|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Checked|x64.ActiveCfg = Debug|Any CPU + {8D19CD03-08EE-4574-B798-C658502C0A42}.Checked|x86.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|x64.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|x64.Build.0 = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|x86.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Debug|x86.Build.0 = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|Any CPU.Build.0 = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|x64.ActiveCfg = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|x64.Build.0 = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|x86.ActiveCfg = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Release|x86.Build.0 = Release|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Checked|x64.ActiveCfg = Debug|Any CPU + {074F38DA-36E1-4D2A-AEE6-3F783639ED9C}.Checked|x86.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|x64.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|x64.Build.0 = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|x86.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Debug|x86.Build.0 = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|Any CPU.Build.0 = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|x64.ActiveCfg = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|x64.Build.0 = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|x86.ActiveCfg = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Release|x86.Build.0 = Release|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Checked|x64.ActiveCfg = Debug|Any CPU + {95B66B14-BCC7-407A-930C-4B34D4F7EC98}.Checked|x86.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|x64.Build.0 = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|x86.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Debug|x86.Build.0 = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|Any CPU.Build.0 = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|x64.ActiveCfg = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|x64.Build.0 = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|x86.ActiveCfg = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Release|x86.Build.0 = Release|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Checked|x64.ActiveCfg = Debug|Any CPU + {B8F22D73-B183-4F17-9D5E-04B80699E56A}.Checked|x86.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|x64.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|x64.Build.0 = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|x86.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Debug|x86.Build.0 = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|Any CPU.Build.0 = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|x64.ActiveCfg = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|x64.Build.0 = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|x86.ActiveCfg = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Release|x86.Build.0 = Release|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Checked|x64.ActiveCfg = Debug|Any CPU + {76BE0621-CDAD-4808-8537-ADC9F028286B}.Checked|x86.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|x64.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|x64.Build.0 = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|x86.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Debug|x86.Build.0 = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|Any CPU.Build.0 = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|x64.ActiveCfg = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|x64.Build.0 = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|x86.ActiveCfg = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Release|x86.Build.0 = Release|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Checked|x64.ActiveCfg = Debug|Any CPU + {8EB6F6F0-FD8C-44C8-A9D8-18854C3C2159}.Checked|x86.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|x64.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|x64.Build.0 = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|x86.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Debug|x86.Build.0 = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|Any CPU.Build.0 = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|x64.ActiveCfg = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|x64.Build.0 = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|x86.ActiveCfg = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Release|x86.Build.0 = Release|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Checked|x64.ActiveCfg = Debug|Any CPU + {78BC94E5-2E23-40EF-863E-52AFCE838C96}.Checked|x86.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|x64.Build.0 = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Debug|x86.Build.0 = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|Any CPU.Build.0 = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|x64.ActiveCfg = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|x64.Build.0 = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|x86.ActiveCfg = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Release|x86.Build.0 = Release|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Checked|x64.ActiveCfg = Debug|Any CPU + {7E785A7B-6ED6-4459-A07D-28DE1830C186}.Checked|x86.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|x64.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|x64.Build.0 = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|x86.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Debug|x86.Build.0 = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|Any CPU.Build.0 = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|x64.ActiveCfg = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|x64.Build.0 = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|x86.ActiveCfg = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Release|x86.Build.0 = Release|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Checked|x64.ActiveCfg = Debug|Any CPU + {F0CEA7EB-E8B5-482A-AB6C-3E12992F2902}.Checked|x86.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|x64.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|x64.Build.0 = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|x86.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Debug|x86.Build.0 = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|Any CPU.Build.0 = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|x64.ActiveCfg = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|x64.Build.0 = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|x86.ActiveCfg = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Release|x86.Build.0 = Release|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Checked|x64.ActiveCfg = Debug|Any CPU + {CA8B6E49-5EAF-4B7C-A141-6D83DD8D8AFD}.Checked|x86.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|x64.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|x64.Build.0 = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|x86.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Debug|x86.Build.0 = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|Any CPU.Build.0 = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|x64.ActiveCfg = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|x64.Build.0 = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|x86.ActiveCfg = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Release|x86.Build.0 = Release|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Checked|x64.ActiveCfg = Debug|Any CPU + {10699CE6-A1B3-4C14-93E0-CB5CF3292BDD}.Checked|x86.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|x64.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|x64.Build.0 = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|x86.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Debug|x86.Build.0 = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|Any CPU.Build.0 = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|x64.ActiveCfg = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|x64.Build.0 = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|x86.ActiveCfg = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Release|x86.Build.0 = Release|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Checked|x64.ActiveCfg = Debug|Any CPU + {44B22827-B9F0-4ADC-969C-7EC647D0B82A}.Checked|x86.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|x64.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|x64.Build.0 = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|x86.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Debug|x86.Build.0 = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|Any CPU.Build.0 = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|x64.ActiveCfg = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|x64.Build.0 = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|x86.ActiveCfg = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Release|x86.Build.0 = Release|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Checked|x64.ActiveCfg = Debug|Any CPU + {49B0A873-5834-45A4-9495-E1063005CB82}.Checked|x86.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|x64.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|x64.Build.0 = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|x86.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Debug|x86.Build.0 = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|Any CPU.Build.0 = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|x64.ActiveCfg = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|x64.Build.0 = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|x86.ActiveCfg = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Release|x86.Build.0 = Release|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Checked|x64.ActiveCfg = Debug|Any CPU + {E60DD367-D1D7-4F6C-919B-DC68E8445E97}.Checked|x86.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|x64.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|x64.Build.0 = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|x86.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Debug|x86.Build.0 = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|Any CPU.Build.0 = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|x64.ActiveCfg = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|x64.Build.0 = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|x86.ActiveCfg = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Release|x86.Build.0 = Release|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Checked|x64.ActiveCfg = Debug|Any CPU + {9AD657ED-396B-4BE7-BCB6-BCA130825418}.Checked|x86.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|x64.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|x64.Build.0 = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|x86.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Debug|x86.Build.0 = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|Any CPU.Build.0 = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|x64.ActiveCfg = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|x64.Build.0 = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|x86.ActiveCfg = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Release|x86.Build.0 = Release|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Checked|x64.ActiveCfg = Debug|Any CPU + {29E02AA9-E3D5-400C-B2C5-970B6E6D8562}.Checked|x86.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|x64.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|x64.Build.0 = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Debug|x86.Build.0 = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|Any CPU.Build.0 = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|x64.ActiveCfg = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|x64.Build.0 = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|x86.ActiveCfg = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Release|x86.Build.0 = Release|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Checked|x64.ActiveCfg = Debug|Any CPU + {E38F7C05-A856-47AF-B210-5FE1EDB1DBF1}.Checked|x86.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|x64.Build.0 = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Debug|x86.Build.0 = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|Any CPU.Build.0 = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|x64.ActiveCfg = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|x64.Build.0 = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|x86.ActiveCfg = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Release|x86.Build.0 = Release|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Checked|x64.ActiveCfg = Debug|Any CPU + {9D650A86-9EB5-41E6-89CE-B2A302D4F33F}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {701CB3BC-00DC-435D-BDE4-C5FC29A708A7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {95DBE3B0-AA86-4366-BB8A-E04B534365F3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {701CB3BC-00DC-435D-BDE4-C5FC29A708A8} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {701CB3BC-00DC-435D-BDE4-C5FC29A708A9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {2CD5A44C-65B4-4C51-AC7B-B2938307848A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7FA764E6-47A3-42B5-923B-7D5DBC611E8E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {396D6EBF-60BD-4DAF-8783-FB403E070A57} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E3C33774-AA3D-4CED-A7A6-BDF9A7F100DF} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FBF73A8E-7889-4C7D-AFC3-509B821D0FC6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F430F54A-7F28-4707-8006-F628B576664E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {485A65F0-51C9-4B95-A7A8-A4860C231E67} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {FB507A82-ACDD-4809-A030-6F9372A71194} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {074D2005-2DD1-4BD4-AAAF-B989C2D5B959} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {8A93F75F-A61A-4F0E-9929-65775CFDEB09} + SolutionGuid = {73D0667D-A181-41CA-B57B-DD177166E019} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Numerics/System.Runtime.Numerics.sln b/src/libraries/System.Runtime.Numerics/System.Runtime.Numerics.sln index d083e77ca772..adce0f09367a 100644 --- a/src/libraries/System.Runtime.Numerics/System.Runtime.Numerics.sln +++ b/src/libraries/System.Runtime.Numerics/System.Runtime.Numerics.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics.Tests", "tests\System.Runtime.Numerics.Tests.csproj", "{28AE24F8-BEF4-4358-B612-ADD9D587C8E1}" - ProjectSection(ProjectDependencies) = postProject - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B} = {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A22876CA-76C0-4ABD-8658-C2B3DFDFE537}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics", "src\System.Runtime.Numerics.csproj", "{D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B}" - ProjectSection(ProjectDependencies) = postProject - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F} = {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{34316210-AAA4-41F1-A1A8-16AFB34661F3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics", "ref\System.Runtime.Numerics.csproj", "{7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B6DD0576-19F7-4217-8C41-0D113942CC38}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics", "ref\System.Runtime.Numerics.csproj", "{C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics", "src\System.Runtime.Numerics.csproj", "{91F8FBEF-C085-4542-BEE4-22449D80734A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{29DB89CE-C72E-48B2-8693-A28835E5A43A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Numerics.Tests", "tests\System.Runtime.Numerics.Tests.csproj", "{2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{36AE25D3-FA7A-451D-AD9B-65C16B323CD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{00A8E1F2-9AA9-4925-96E4-F6F78ADF5555}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{048140C9-4475-425A-BC25-3F2B7BF0C45A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DEFFBE8C-356B-4E32-B11F-AF49B913495E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{88AAF1A7-4CB6-45C9-BE95-CB0645193061}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A22876CA-76C0-4ABD-8658-C2B3DFDFE537} = {048140C9-4475-425A-BC25-3F2B7BF0C45A} + {2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC} = {048140C9-4475-425A-BC25-3F2B7BF0C45A} + {34316210-AAA4-41F1-A1A8-16AFB34661F3} = {DEFFBE8C-356B-4E32-B11F-AF49B913495E} + {54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2} = {DEFFBE8C-356B-4E32-B11F-AF49B913495E} + {C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3} = {DEFFBE8C-356B-4E32-B11F-AF49B913495E} + {36AE25D3-FA7A-451D-AD9B-65C16B323CD6} = {DEFFBE8C-356B-4E32-B11F-AF49B913495E} + {00A8E1F2-9AA9-4925-96E4-F6F78ADF5555} = {DEFFBE8C-356B-4E32-B11F-AF49B913495E} + {B6DD0576-19F7-4217-8C41-0D113942CC38} = {88AAF1A7-4CB6-45C9-BE95-CB0645193061} + {91F8FBEF-C085-4542-BEE4-22449D80734A} = {88AAF1A7-4CB6-45C9-BE95-CB0645193061} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {28AE24F8-BEF4-4358-B612-ADD9D587C8E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28AE24F8-BEF4-4358-B612-ADD9D587C8E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28AE24F8-BEF4-4358-B612-ADD9D587C8E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28AE24F8-BEF4-4358-B612-ADD9D587C8E1}.Release|Any CPU.Build.0 = Release|Any CPU - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B}.Release|Any CPU.Build.0 = Release|Any CPU - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F}.Release|Any CPU.Build.0 = Release|Any CPU - {29DB89CE-C72E-48B2-8693-A28835E5A43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29DB89CE-C72E-48B2-8693-A28835E5A43A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29DB89CE-C72E-48B2-8693-A28835E5A43A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29DB89CE-C72E-48B2-8693-A28835E5A43A}.Release|Any CPU.Build.0 = Release|Any CPU + {A22876CA-76C0-4ABD-8658-C2B3DFDFE537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A22876CA-76C0-4ABD-8658-C2B3DFDFE537}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A22876CA-76C0-4ABD-8658-C2B3DFDFE537}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A22876CA-76C0-4ABD-8658-C2B3DFDFE537}.Release|Any CPU.Build.0 = Release|Any CPU + {34316210-AAA4-41F1-A1A8-16AFB34661F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34316210-AAA4-41F1-A1A8-16AFB34661F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34316210-AAA4-41F1-A1A8-16AFB34661F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34316210-AAA4-41F1-A1A8-16AFB34661F3}.Release|Any CPU.Build.0 = Release|Any CPU + {54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54B39B17-A2BB-4D34-8AC4-4F59BC73C0F2}.Release|Any CPU.Build.0 = Release|Any CPU + {B6DD0576-19F7-4217-8C41-0D113942CC38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6DD0576-19F7-4217-8C41-0D113942CC38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6DD0576-19F7-4217-8C41-0D113942CC38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6DD0576-19F7-4217-8C41-0D113942CC38}.Release|Any CPU.Build.0 = Release|Any CPU + {C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C91AC3B4-647B-4D7F-83CA-BE90FFFC8CF3}.Release|Any CPU.Build.0 = Release|Any CPU + {91F8FBEF-C085-4542-BEE4-22449D80734A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91F8FBEF-C085-4542-BEE4-22449D80734A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91F8FBEF-C085-4542-BEE4-22449D80734A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91F8FBEF-C085-4542-BEE4-22449D80734A}.Release|Any CPU.Build.0 = Release|Any CPU + {2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C4CBA2D-4C9D-4B83-85A4-2DF75C91B0FC}.Release|Any CPU.Build.0 = Release|Any CPU + {36AE25D3-FA7A-451D-AD9B-65C16B323CD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36AE25D3-FA7A-451D-AD9B-65C16B323CD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36AE25D3-FA7A-451D-AD9B-65C16B323CD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36AE25D3-FA7A-451D-AD9B-65C16B323CD6}.Release|Any CPU.Build.0 = Release|Any CPU + {00A8E1F2-9AA9-4925-96E4-F6F78ADF5555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00A8E1F2-9AA9-4925-96E4-F6F78ADF5555}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00A8E1F2-9AA9-4925-96E4-F6F78ADF5555}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00A8E1F2-9AA9-4925-96E4-F6F78ADF5555}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {28AE24F8-BEF4-4358-B612-ADD9D587C8E1} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D2C99D27-0BEF-4319-ADB3-05CBEBA8F69B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7D5CBF2F-337C-4AEB-B035-A17D33A9BC1F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {29DB89CE-C72E-48B2-8693-A28835E5A43A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0CD1D1F8-4171-43E2-9ABF-75B20AD94549} + SolutionGuid = {B7C7E4C6-78B9-4AE7-AC8B-4F08EAD0DECB} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln b/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln index f54e3286fc68..4afbab31c93f 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln +++ b/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln @@ -1,88 +1,1041 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters.Tests", "tests\System.Runtime.Serialization.Formatters.Tests.csproj", "{13CE5E71-D373-4EA6-B3CB-166FF089A42A}" - ProjectSection(ProjectDependencies) = postProject - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA} = {CF80D24A-787A-43DB-B9E7-10BCA02D10EA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{096171D9-C978-4509-B9D3-B6DBCD78420D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters", "src\System.Runtime.Serialization.Formatters.csproj", "{CF80D24A-787A-43DB-B9E7-10BCA02D10EA}" - ProjectSection(ProjectDependencies) = postProject - {4413B319-3D48-4516-A45B-375F4650EF0D} = {4413B319-3D48-4516-A45B-375F4650EF0D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{25F48B11-0D57-47B7-88EE-7D407AFBA7B6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters", "ref\System.Runtime.Serialization.Formatters.csproj", "{4413B319-3D48-4516-A45B-375F4650EF0D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.AsyncInterfaces", "..\Microsoft.Bcl.AsyncInterfaces\ref\Microsoft.Bcl.AsyncInterfaces.csproj", "{8EEDE19C-274E-4C36-BCA6-F75F32095BD0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{B8EBC038-24C4-480C-9B17-CCB39AFAEC05}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\src\Microsoft.Win32.Registry.csproj", "{CDB167D4-7675-441B-9176-D2491BF72B51}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{D0E065A2-7569-4F40-8D3C-7889BA1A3006}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{A4F5FC3B-5BD1-4481-972B-19165AF540FB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{6B34282C-D54D-44F2-B40F-04E6E0F054CB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{1899F2A2-A3E4-41EF-8180-4F11795ABDC6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\ref\System.CodeDom.csproj", "{A1BEF14B-0C13-4854-8299-DADF0D1181D9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{19ADDB12-418C-49F2-A07D-FAC40C2EB36D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\src\System.CodeDom.csproj", "{FA9FDA97-57C2-421C-A578-EEB0B600A412}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "..\System.Collections.Concurrent\src\System.Collections.Concurrent.csproj", "{493FB31F-9003-4BA7-85F7-E68CC28E6EE4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Concurrent", "..\System.Collections.Concurrent\src\System.Collections.Concurrent.csproj", "{82E81182-3C80-40A9-978A-4152461F4FE4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "..\System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj", "{93D8A5A0-18AA-47D3-9729-5BFFD56EC00C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.Immutable", "..\System.Collections.Immutable\src\System.Collections.Immutable.csproj", "{81F58927-6022-4DD7-9E78-BDD3DA309285}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections.NonGeneric", "..\System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj", "{86557424-C2F0-4554-808F-4429FCEE1E9A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Collections", "..\System.Collections\src\System.Collections.csproj", "{2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\ref\System.ComponentModel.Composition.csproj", "{C9142466-56E3-412F-AD42-FF5CF05D8DB1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ComponentModel.Composition", "..\System.ComponentModel.Composition\src\System.ComponentModel.Composition.csproj", "{14C1E145-621A-496F-AC3D-DCDF116C8AD9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj", "{35B1EF33-126D-4769-B593-14DDDD630AB2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Configuration.ConfigurationManager", "..\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj", "{EADF56B3-6BC6-4B67-BA47-DD22630AFD53}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "..\System.Data.Odbc\ref\System.Data.Odbc.csproj", "{80DC7480-77B6-4D7D-AE6A-AA31366D2055}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.Odbc", "..\System.Data.Odbc\src\System.Data.Odbc.csproj", "{5F31A880-2571-46BC-AD68-D0896F613570}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\ref\System.Diagnostics.EventLog.csproj", "{28BA346E-BF18-45AF-B0D2-15A5969F7975}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.EventLog", "..\System.Diagnostics.EventLog\src\System.Diagnostics.EventLog.csproj", "{A472E78C-3184-480F-97F2-6B89A10E1A87}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Diagnostics.Tracing", "..\System.Diagnostics.Tracing\src\System.Diagnostics.Tracing.csproj", "{C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "..\System.DirectoryServices.AccountManagement\ref\System.DirectoryServices.AccountManagement.csproj", "{8307AA11-40DC-44AD-8F0E-567923BDC752}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.AccountManagement", "..\System.DirectoryServices.AccountManagement\src\System.DirectoryServices.AccountManagement.csproj", "{6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\ref\System.DirectoryServices.Protocols.csproj", "{1A591DF1-D797-4820-BC9A-6060B1444213}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices.Protocols", "..\System.DirectoryServices.Protocols\src\System.DirectoryServices.Protocols.csproj", "{DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{61914172-8197-4E04-9CE7-82C25D0AC8F2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{9E471AE8-A165-4B32-8603-2BABD02A0664}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{4E423476-3653-402A-AD55-0E5111A96ACC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\src\System.Drawing.Common.csproj", "{D3535D48-5700-4DB1-AEED-494650BAB175}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{191A0C1D-9182-4729-BC29-F594E8552E7A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "..\System.IO.Packaging\ref\System.IO.Packaging.csproj", "{6F5E7FFC-8709-4072-B0B3-404BEB517394}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Packaging", "..\System.IO.Packaging\src\System.IO.Packaging.csproj", "{AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{1E395137-871B-4D6F-A7DB-C92850FAB0D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Metadata", "..\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj", "{79F35586-A12D-4831-9D9D-5134FF07CC41}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{E5511CF3-A800-4B9E-B25F-919D6F86B2D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{4BFED8CA-1221-48EE-8229-BDB8951DB1C7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters", "ref\System.Runtime.Serialization.Formatters.csproj", "{C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters", "src\System.Runtime.Serialization.Formatters.csproj", "{5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Formatters.Tests", "tests\System.Runtime.Serialization.Formatters.Tests.csproj", "{3D4DD468-10FE-4606-BA10-F848447AF157}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "..\System.Runtime\src\System.Runtime.csproj", "{711CBCE0-C21C-45DA-B0D2-D2298941058E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{BD9F8763-8B14-447C-916C-E662DA536586}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{6E5ED228-5329-4F01-A7C2-E3C70B2C6352}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\ref\System.Security.Cryptography.ProtectedData.csproj", "{CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "..\System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj", "{DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{143DCF72-7DD7-4365-8B47-D67010F662A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{3EA84883-E564-483D-A44E-FF1CC947B7A0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F4D16881-60E6-46F8-B5A7-D363CCA72B16}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Text.Encoding.CodePages", "..\System.Text.Encoding.CodePages\src\System.Text.Encoding.CodePages.csproj", "{7913F002-64DC-43C6-9D74-B0B9BA297F00}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{26B82FDC-3524-4DAF-91E3-F5BA9F903906}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.Channels", "..\System.Threading.Channels\src\System.Threading.Channels.csproj", "{B6953324-8866-4D94-B352-20EF38EA6774}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading", "..\System.Threading\src\System.Threading.csproj", "{0A103F2A-2FF6-4291-AB51-203E5CA00B2D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{E92F7B7A-D34D-49B8-8857-09936624E038}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{78994C91-3A4F-4825-86C2-21FB4F082CA7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{E992B3E6-BBE0-42E2-803F-0DB171BCA30A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F0EFC835-6185-430D-84E0-B3E01930A148}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {096171D9-C978-4509-B9D3-B6DBCD78420D} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {CDB167D4-7675-441B-9176-D2491BF72B51} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {6B34282C-D54D-44F2-B40F-04E6E0F054CB} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {FA9FDA97-57C2-421C-A578-EEB0B600A412} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {82E81182-3C80-40A9-978A-4152461F4FE4} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {81F58927-6022-4DD7-9E78-BDD3DA309285} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {86557424-C2F0-4554-808F-4429FCEE1E9A} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {14C1E145-621A-496F-AC3D-DCDF116C8AD9} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {5F31A880-2571-46BC-AD68-D0896F613570} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {A472E78C-3184-480F-97F2-6B89A10E1A87} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {9E471AE8-A165-4B32-8603-2BABD02A0664} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {D3535D48-5700-4DB1-AEED-494650BAB175} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {191A0C1D-9182-4729-BC29-F594E8552E7A} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {1E395137-871B-4D6F-A7DB-C92850FAB0D3} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {79F35586-A12D-4831-9D9D-5134FF07CC41} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {711CBCE0-C21C-45DA-B0D2-D2298941058E} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {3EA84883-E564-483D-A44E-FF1CC947B7A0} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {7913F002-64DC-43C6-9D74-B0B9BA297F00} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {26B82FDC-3524-4DAF-91E3-F5BA9F903906} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {B6953324-8866-4D94-B352-20EF38EA6774} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {78994C91-3A4F-4825-86C2-21FB4F082CA7} = {9AEC194E-B6A2-4E6F-AFFB-BE3CEA94BB43} + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6} = {E992B3E6-BBE0-42E2-803F-0DB171BCA30A} + {3D4DD468-10FE-4606-BA10-F848447AF157} = {E992B3E6-BBE0-42E2-803F-0DB171BCA30A} + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {D0E065A2-7569-4F40-8D3C-7889BA1A3006} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {A1BEF14B-0C13-4854-8299-DADF0D1181D9} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {C9142466-56E3-412F-AD42-FF5CF05D8DB1} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {35B1EF33-126D-4769-B593-14DDDD630AB2} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {80DC7480-77B6-4D7D-AE6A-AA31366D2055} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {28BA346E-BF18-45AF-B0D2-15A5969F7975} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {8307AA11-40DC-44AD-8F0E-567923BDC752} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {1A591DF1-D797-4820-BC9A-6060B1444213} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {61914172-8197-4E04-9CE7-82C25D0AC8F2} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {4E423476-3653-402A-AD55-0E5111A96ACC} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {6F5E7FFC-8709-4072-B0B3-404BEB517394} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {BD9F8763-8B14-447C-916C-E662DA536586} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {143DCF72-7DD7-4365-8B47-D67010F662A1} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {F4D16881-60E6-46F8-B5A7-D363CCA72B16} = {F0EFC835-6185-430D-84E0-B3E01930A148} + {E92F7B7A-D34D-49B8-8857-09936624E038} = {F0EFC835-6185-430D-84E0-B3E01930A148} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {13CE5E71-D373-4EA6-B3CB-166FF089A42A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13CE5E71-D373-4EA6-B3CB-166FF089A42A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13CE5E71-D373-4EA6-B3CB-166FF089A42A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13CE5E71-D373-4EA6-B3CB-166FF089A42A}.Release|Any CPU.Build.0 = Release|Any CPU - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA}.Release|Any CPU.Build.0 = Release|Any CPU - {4413B319-3D48-4516-A45B-375F4650EF0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4413B319-3D48-4516-A45B-375F4650EF0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4413B319-3D48-4516-A45B-375F4650EF0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4413B319-3D48-4516-A45B-375F4650EF0D}.Release|Any CPU.Build.0 = Release|Any CPU - {A4F5FC3B-5BD1-4481-972B-19165AF540FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A4F5FC3B-5BD1-4481-972B-19165AF540FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A4F5FC3B-5BD1-4481-972B-19165AF540FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A4F5FC3B-5BD1-4481-972B-19165AF540FB}.Release|Any CPU.Build.0 = Release|Any CPU - {1899F2A2-A3E4-41EF-8180-4F11795ABDC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1899F2A2-A3E4-41EF-8180-4F11795ABDC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1899F2A2-A3E4-41EF-8180-4F11795ABDC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1899F2A2-A3E4-41EF-8180-4F11795ABDC6}.Release|Any CPU.Build.0 = Release|Any CPU - {19ADDB12-418C-49F2-A07D-FAC40C2EB36D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19ADDB12-418C-49F2-A07D-FAC40C2EB36D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19ADDB12-418C-49F2-A07D-FAC40C2EB36D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19ADDB12-418C-49F2-A07D-FAC40C2EB36D}.Release|Any CPU.Build.0 = Release|Any CPU - {493FB31F-9003-4BA7-85F7-E68CC28E6EE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {493FB31F-9003-4BA7-85F7-E68CC28E6EE4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {493FB31F-9003-4BA7-85F7-E68CC28E6EE4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {493FB31F-9003-4BA7-85F7-E68CC28E6EE4}.Release|Any CPU.Build.0 = Release|Any CPU - {93D8A5A0-18AA-47D3-9729-5BFFD56EC00C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {93D8A5A0-18AA-47D3-9729-5BFFD56EC00C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {93D8A5A0-18AA-47D3-9729-5BFFD56EC00C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {93D8A5A0-18AA-47D3-9729-5BFFD56EC00C}.Release|Any CPU.Build.0 = Release|Any CPU + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|Any CPU.Build.0 = Debug|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|x64.ActiveCfg = Debug|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|x64.Build.0 = Debug|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|x86.ActiveCfg = Debug|x86 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Debug|x86.Build.0 = Debug|x86 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|Any CPU.ActiveCfg = Release|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|Any CPU.Build.0 = Release|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|x64.ActiveCfg = Release|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|x64.Build.0 = Release|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|x86.ActiveCfg = Release|x86 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Release|x86.Build.0 = Release|x86 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|Any CPU.ActiveCfg = Checked|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|Any CPU.Build.0 = Checked|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|x64.ActiveCfg = Checked|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|x64.Build.0 = Checked|x64 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|x86.ActiveCfg = Checked|x86 + {096171D9-C978-4509-B9D3-B6DBCD78420D}.Checked|x86.Build.0 = Checked|x86 + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|x64.ActiveCfg = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|x64.Build.0 = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|x86.ActiveCfg = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Debug|x86.Build.0 = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|Any CPU.Build.0 = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|x64.ActiveCfg = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|x64.Build.0 = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|x86.ActiveCfg = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Release|x86.Build.0 = Release|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Checked|x64.ActiveCfg = Debug|Any CPU + {25F48B11-0D57-47B7-88EE-7D407AFBA7B6}.Checked|x86.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|x64.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|x64.Build.0 = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|x86.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Debug|x86.Build.0 = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|Any CPU.Build.0 = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|x64.ActiveCfg = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|x64.Build.0 = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|x86.ActiveCfg = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Release|x86.Build.0 = Release|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Checked|x64.ActiveCfg = Debug|Any CPU + {8EEDE19C-274E-4C36-BCA6-F75F32095BD0}.Checked|x86.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|x64.Build.0 = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|x86.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Debug|x86.Build.0 = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|Any CPU.Build.0 = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|x64.ActiveCfg = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|x64.Build.0 = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|x86.ActiveCfg = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Release|x86.Build.0 = Release|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Checked|x64.ActiveCfg = Debug|Any CPU + {B8EBC038-24C4-480C-9B17-CCB39AFAEC05}.Checked|x86.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|x64.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|x64.Build.0 = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|x86.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Debug|x86.Build.0 = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|Any CPU.Build.0 = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|x64.ActiveCfg = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|x64.Build.0 = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|x86.ActiveCfg = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Release|x86.Build.0 = Release|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Checked|x64.ActiveCfg = Debug|Any CPU + {CDB167D4-7675-441B-9176-D2491BF72B51}.Checked|x86.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|x64.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|x64.Build.0 = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|x86.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Debug|x86.Build.0 = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|Any CPU.Build.0 = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|x64.ActiveCfg = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|x64.Build.0 = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|x86.ActiveCfg = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Release|x86.Build.0 = Release|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Checked|x64.ActiveCfg = Debug|Any CPU + {D0E065A2-7569-4F40-8D3C-7889BA1A3006}.Checked|x86.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|x64.Build.0 = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Debug|x86.Build.0 = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|Any CPU.Build.0 = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|x64.ActiveCfg = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|x64.Build.0 = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|x86.ActiveCfg = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Release|x86.Build.0 = Release|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Checked|x64.ActiveCfg = Debug|Any CPU + {6B34282C-D54D-44F2-B40F-04E6E0F054CB}.Checked|x86.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|x64.Build.0 = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Debug|x86.Build.0 = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|Any CPU.Build.0 = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|x64.ActiveCfg = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|x64.Build.0 = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|x86.ActiveCfg = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Release|x86.Build.0 = Release|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Checked|x64.ActiveCfg = Debug|Any CPU + {A1BEF14B-0C13-4854-8299-DADF0D1181D9}.Checked|x86.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|x64.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|x64.Build.0 = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Debug|x86.Build.0 = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|Any CPU.Build.0 = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|x64.ActiveCfg = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|x64.Build.0 = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|x86.ActiveCfg = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Release|x86.Build.0 = Release|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Checked|x64.ActiveCfg = Debug|Any CPU + {FA9FDA97-57C2-421C-A578-EEB0B600A412}.Checked|x86.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|x64.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|x64.Build.0 = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|x86.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Debug|x86.Build.0 = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|Any CPU.Build.0 = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|x64.ActiveCfg = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|x64.Build.0 = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|x86.ActiveCfg = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Release|x86.Build.0 = Release|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Checked|x64.ActiveCfg = Debug|Any CPU + {82E81182-3C80-40A9-978A-4152461F4FE4}.Checked|x86.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|x64.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|x64.Build.0 = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|x86.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Debug|x86.Build.0 = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|Any CPU.Build.0 = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|x64.ActiveCfg = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|x64.Build.0 = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|x86.ActiveCfg = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Release|x86.Build.0 = Release|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Checked|x64.ActiveCfg = Debug|Any CPU + {81F58927-6022-4DD7-9E78-BDD3DA309285}.Checked|x86.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|x64.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|x64.Build.0 = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|x86.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Debug|x86.Build.0 = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|Any CPU.Build.0 = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|x64.ActiveCfg = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|x64.Build.0 = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|x86.ActiveCfg = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Release|x86.Build.0 = Release|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Checked|x64.ActiveCfg = Debug|Any CPU + {86557424-C2F0-4554-808F-4429FCEE1E9A}.Checked|x86.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|x64.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|x64.Build.0 = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Debug|x86.Build.0 = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|Any CPU.Build.0 = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|x64.ActiveCfg = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|x64.Build.0 = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|x86.ActiveCfg = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Release|x86.Build.0 = Release|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Checked|x64.ActiveCfg = Debug|Any CPU + {2605A8EE-CFEF-4A57-8A94-2C2B95E770E3}.Checked|x86.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|x64.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|x64.Build.0 = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|x86.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Debug|x86.Build.0 = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|Any CPU.Build.0 = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|x64.ActiveCfg = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|x64.Build.0 = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|x86.ActiveCfg = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Release|x86.Build.0 = Release|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Checked|x64.ActiveCfg = Debug|Any CPU + {C9142466-56E3-412F-AD42-FF5CF05D8DB1}.Checked|x86.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|x64.Build.0 = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|x86.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Debug|x86.Build.0 = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|Any CPU.Build.0 = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|x64.ActiveCfg = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|x64.Build.0 = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|x86.ActiveCfg = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Release|x86.Build.0 = Release|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Checked|x64.ActiveCfg = Debug|Any CPU + {14C1E145-621A-496F-AC3D-DCDF116C8AD9}.Checked|x86.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|x64.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|x64.Build.0 = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|x86.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Debug|x86.Build.0 = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|Any CPU.Build.0 = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|x64.ActiveCfg = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|x64.Build.0 = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|x86.ActiveCfg = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Release|x86.Build.0 = Release|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Checked|x64.ActiveCfg = Debug|Any CPU + {35B1EF33-126D-4769-B593-14DDDD630AB2}.Checked|x86.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|x64.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|x64.Build.0 = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|x86.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Debug|x86.Build.0 = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|Any CPU.Build.0 = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|x64.ActiveCfg = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|x64.Build.0 = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|x86.ActiveCfg = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Release|x86.Build.0 = Release|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Checked|x64.ActiveCfg = Debug|Any CPU + {EADF56B3-6BC6-4B67-BA47-DD22630AFD53}.Checked|x86.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|x64.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|x64.Build.0 = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|x86.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Debug|x86.Build.0 = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|Any CPU.Build.0 = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|x64.ActiveCfg = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|x64.Build.0 = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|x86.ActiveCfg = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Release|x86.Build.0 = Release|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Checked|x64.ActiveCfg = Debug|Any CPU + {80DC7480-77B6-4D7D-AE6A-AA31366D2055}.Checked|x86.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|x64.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|x64.Build.0 = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|x86.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Debug|x86.Build.0 = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|Any CPU.Build.0 = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|x64.ActiveCfg = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|x64.Build.0 = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|x86.ActiveCfg = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Release|x86.Build.0 = Release|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Checked|x64.ActiveCfg = Debug|Any CPU + {5F31A880-2571-46BC-AD68-D0896F613570}.Checked|x86.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|x64.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|x64.Build.0 = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|x86.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Debug|x86.Build.0 = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|Any CPU.Build.0 = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|x64.ActiveCfg = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|x64.Build.0 = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|x86.ActiveCfg = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Release|x86.Build.0 = Release|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Checked|x64.ActiveCfg = Debug|Any CPU + {28BA346E-BF18-45AF-B0D2-15A5969F7975}.Checked|x86.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|x64.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|x64.Build.0 = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|x86.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Debug|x86.Build.0 = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|Any CPU.Build.0 = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|x64.ActiveCfg = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|x64.Build.0 = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|x86.ActiveCfg = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Release|x86.Build.0 = Release|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Checked|x64.ActiveCfg = Debug|Any CPU + {A472E78C-3184-480F-97F2-6B89A10E1A87}.Checked|x86.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|x64.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|x64.Build.0 = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|x86.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Debug|x86.Build.0 = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|Any CPU.Build.0 = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|x64.ActiveCfg = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|x64.Build.0 = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|x86.ActiveCfg = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Release|x86.Build.0 = Release|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Checked|x64.ActiveCfg = Debug|Any CPU + {C0E8A6B4-DC57-434B-ABB0-500F6DE352A8}.Checked|x86.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|x64.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|x64.Build.0 = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|x86.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Debug|x86.Build.0 = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|Any CPU.Build.0 = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|x64.ActiveCfg = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|x64.Build.0 = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|x86.ActiveCfg = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Release|x86.Build.0 = Release|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Checked|x64.ActiveCfg = Debug|Any CPU + {8307AA11-40DC-44AD-8F0E-567923BDC752}.Checked|x86.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|x64.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|x64.Build.0 = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|x86.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Debug|x86.Build.0 = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|Any CPU.Build.0 = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|x64.ActiveCfg = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|x64.Build.0 = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|x86.ActiveCfg = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Release|x86.Build.0 = Release|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Checked|x64.ActiveCfg = Debug|Any CPU + {6332FDA4-65E5-484D-B1D5-D9B23EDDAEB3}.Checked|x86.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|x64.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|x64.Build.0 = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Debug|x86.Build.0 = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|Any CPU.Build.0 = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|x64.ActiveCfg = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|x64.Build.0 = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|x86.ActiveCfg = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Release|x86.Build.0 = Release|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Checked|x64.ActiveCfg = Debug|Any CPU + {1A591DF1-D797-4820-BC9A-6060B1444213}.Checked|x86.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|x64.Build.0 = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Debug|x86.Build.0 = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|Any CPU.Build.0 = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|x64.ActiveCfg = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|x64.Build.0 = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|x86.ActiveCfg = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Release|x86.Build.0 = Release|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Checked|x64.ActiveCfg = Debug|Any CPU + {DB2FF5FA-16B3-4A4B-9207-3D4622CD23E0}.Checked|x86.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|x64.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|x64.Build.0 = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|x86.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Debug|x86.Build.0 = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|Any CPU.Build.0 = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|x64.ActiveCfg = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|x64.Build.0 = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|x86.ActiveCfg = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Release|x86.Build.0 = Release|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Checked|x64.ActiveCfg = Debug|Any CPU + {61914172-8197-4E04-9CE7-82C25D0AC8F2}.Checked|x86.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|x64.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|x64.Build.0 = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|x86.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Debug|x86.Build.0 = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|Any CPU.Build.0 = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|x64.ActiveCfg = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|x64.Build.0 = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|x86.ActiveCfg = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Release|x86.Build.0 = Release|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Checked|x64.ActiveCfg = Debug|Any CPU + {9E471AE8-A165-4B32-8603-2BABD02A0664}.Checked|x86.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|x64.Build.0 = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Debug|x86.Build.0 = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|Any CPU.Build.0 = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|x64.ActiveCfg = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|x64.Build.0 = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|x86.ActiveCfg = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Release|x86.Build.0 = Release|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Checked|x64.ActiveCfg = Debug|Any CPU + {4E423476-3653-402A-AD55-0E5111A96ACC}.Checked|x86.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|x64.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|x64.Build.0 = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|x86.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Debug|x86.Build.0 = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|Any CPU.Build.0 = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|x64.ActiveCfg = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|x64.Build.0 = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|x86.ActiveCfg = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Release|x86.Build.0 = Release|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Checked|x64.ActiveCfg = Debug|Any CPU + {D3535D48-5700-4DB1-AEED-494650BAB175}.Checked|x86.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|x64.Build.0 = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|x86.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Debug|x86.Build.0 = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|Any CPU.Build.0 = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|x64.ActiveCfg = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|x64.Build.0 = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|x86.ActiveCfg = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Release|x86.Build.0 = Release|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Checked|x64.ActiveCfg = Debug|Any CPU + {6704AB83-3F1D-4C99-A184-F8A09A9C5AD9}.Checked|x86.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|x64.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|x64.Build.0 = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|x86.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Debug|x86.Build.0 = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|Any CPU.Build.0 = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|x64.ActiveCfg = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|x64.Build.0 = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|x86.ActiveCfg = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Release|x86.Build.0 = Release|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Checked|x64.ActiveCfg = Debug|Any CPU + {191A0C1D-9182-4729-BC29-F594E8552E7A}.Checked|x86.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|x64.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|x64.Build.0 = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|x86.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Debug|x86.Build.0 = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|Any CPU.Build.0 = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|x64.ActiveCfg = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|x64.Build.0 = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|x86.ActiveCfg = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Release|x86.Build.0 = Release|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Checked|x64.ActiveCfg = Debug|Any CPU + {6F5E7FFC-8709-4072-B0B3-404BEB517394}.Checked|x86.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|x64.Build.0 = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Debug|x86.Build.0 = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|Any CPU.Build.0 = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|x64.ActiveCfg = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|x64.Build.0 = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|x86.ActiveCfg = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Release|x86.Build.0 = Release|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Checked|x64.ActiveCfg = Debug|Any CPU + {AE592E1E-C5DB-4F81-AD45-31F2F1A6A75B}.Checked|x86.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|x64.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|x64.Build.0 = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|x86.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Debug|x86.Build.0 = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|Any CPU.Build.0 = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|x64.ActiveCfg = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|x64.Build.0 = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|x86.ActiveCfg = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Release|x86.Build.0 = Release|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Checked|x64.ActiveCfg = Debug|Any CPU + {1E395137-871B-4D6F-A7DB-C92850FAB0D3}.Checked|x86.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|x64.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|x64.Build.0 = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|x86.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Debug|x86.Build.0 = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|Any CPU.Build.0 = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|x64.ActiveCfg = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|x64.Build.0 = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|x86.ActiveCfg = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Release|x86.Build.0 = Release|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Checked|x64.ActiveCfg = Debug|Any CPU + {79F35586-A12D-4831-9D9D-5134FF07CC41}.Checked|x86.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|x64.Build.0 = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Debug|x86.Build.0 = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|Any CPU.Build.0 = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|x64.ActiveCfg = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|x64.Build.0 = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|x86.ActiveCfg = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Release|x86.Build.0 = Release|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Checked|x64.ActiveCfg = Debug|Any CPU + {E5511CF3-A800-4B9E-B25F-919D6F86B2D9}.Checked|x86.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|x64.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|x64.Build.0 = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Debug|x86.Build.0 = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|Any CPU.Build.0 = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|x64.ActiveCfg = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|x64.Build.0 = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|x86.ActiveCfg = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Release|x86.Build.0 = Release|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Checked|x64.ActiveCfg = Debug|Any CPU + {4BFED8CA-1221-48EE-8229-BDB8951DB1C7}.Checked|x86.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|x64.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|x64.Build.0 = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|x86.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Debug|x86.Build.0 = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|x64.ActiveCfg = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|x64.Build.0 = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|x86.ActiveCfg = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Release|x86.Build.0 = Release|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Checked|x64.ActiveCfg = Debug|Any CPU + {C1D7364E-C24B-460E-B0A0-E49BA6D9FFEC}.Checked|x86.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|x64.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|x64.Build.0 = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|x86.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Debug|x86.Build.0 = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|Any CPU.Build.0 = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|x64.ActiveCfg = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|x64.Build.0 = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|x86.ActiveCfg = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Release|x86.Build.0 = Release|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Checked|x64.ActiveCfg = Debug|Any CPU + {5944056C-E7A1-4A10-BAC4-E3AF91C12C5C}.Checked|x86.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|x64.Build.0 = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|x86.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Debug|x86.Build.0 = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|Any CPU.Build.0 = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|x64.ActiveCfg = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|x64.Build.0 = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|x86.ActiveCfg = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Release|x86.Build.0 = Release|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Checked|x64.ActiveCfg = Debug|Any CPU + {3D4DD468-10FE-4606-BA10-F848447AF157}.Checked|x86.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|x64.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|x64.Build.0 = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|x86.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Debug|x86.Build.0 = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|Any CPU.Build.0 = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|x64.ActiveCfg = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|x64.Build.0 = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|x86.ActiveCfg = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Release|x86.Build.0 = Release|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Checked|x64.ActiveCfg = Debug|Any CPU + {711CBCE0-C21C-45DA-B0D2-D2298941058E}.Checked|x86.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|x64.Build.0 = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Debug|x86.Build.0 = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|Any CPU.Build.0 = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|x64.ActiveCfg = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|x64.Build.0 = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|x86.ActiveCfg = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Release|x86.Build.0 = Release|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Checked|x64.ActiveCfg = Debug|Any CPU + {BD9F8763-8B14-447C-916C-E662DA536586}.Checked|x86.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|x64.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|x64.Build.0 = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Debug|x86.Build.0 = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|Any CPU.Build.0 = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|x64.ActiveCfg = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|x64.Build.0 = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|x86.ActiveCfg = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Release|x86.Build.0 = Release|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Checked|x64.ActiveCfg = Debug|Any CPU + {6E5ED228-5329-4F01-A7C2-E3C70B2C6352}.Checked|x86.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|x64.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|x64.Build.0 = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Debug|x86.Build.0 = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|Any CPU.Build.0 = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|x64.ActiveCfg = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|x64.Build.0 = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|x86.ActiveCfg = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Release|x86.Build.0 = Release|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Checked|x64.ActiveCfg = Debug|Any CPU + {CBE6BB10-0C9C-4620-8F49-A5BF4476B3D7}.Checked|x86.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|x64.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|x64.Build.0 = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|x86.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Debug|x86.Build.0 = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|Any CPU.Build.0 = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|x64.ActiveCfg = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|x64.Build.0 = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|x86.ActiveCfg = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Release|x86.Build.0 = Release|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Checked|x64.ActiveCfg = Debug|Any CPU + {DF679A1A-1797-40EB-A8AA-E3AEA66C80E5}.Checked|x86.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|x64.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|x64.Build.0 = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|x86.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Debug|x86.Build.0 = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|Any CPU.Build.0 = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|x64.ActiveCfg = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|x64.Build.0 = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|x86.ActiveCfg = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Release|x86.Build.0 = Release|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Checked|x64.ActiveCfg = Debug|Any CPU + {143DCF72-7DD7-4365-8B47-D67010F662A1}.Checked|x86.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|x64.Build.0 = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Debug|x86.Build.0 = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|Any CPU.Build.0 = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|x64.ActiveCfg = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|x64.Build.0 = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|x86.ActiveCfg = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Release|x86.Build.0 = Release|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Checked|x64.ActiveCfg = Debug|Any CPU + {3EA84883-E564-483D-A44E-FF1CC947B7A0}.Checked|x86.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|x64.Build.0 = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|x86.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Debug|x86.Build.0 = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|Any CPU.Build.0 = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|x64.ActiveCfg = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|x64.Build.0 = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|x86.ActiveCfg = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Release|x86.Build.0 = Release|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Checked|x64.ActiveCfg = Debug|Any CPU + {F4D16881-60E6-46F8-B5A7-D363CCA72B16}.Checked|x86.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|x64.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|x64.Build.0 = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Debug|x86.Build.0 = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|Any CPU.Build.0 = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|x64.ActiveCfg = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|x64.Build.0 = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|x86.ActiveCfg = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Release|x86.Build.0 = Release|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Checked|x64.ActiveCfg = Debug|Any CPU + {C67F64C1-32B1-4EDF-A814-DEF475CDCEC2}.Checked|x86.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|x64.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|x64.Build.0 = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|x86.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Debug|x86.Build.0 = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|Any CPU.Build.0 = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|x64.ActiveCfg = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|x64.Build.0 = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|x86.ActiveCfg = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Release|x86.Build.0 = Release|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Checked|x64.ActiveCfg = Debug|Any CPU + {7913F002-64DC-43C6-9D74-B0B9BA297F00}.Checked|x86.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|x64.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|x64.Build.0 = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|x86.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Debug|x86.Build.0 = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|Any CPU.Build.0 = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|x64.ActiveCfg = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|x64.Build.0 = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|x86.ActiveCfg = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Release|x86.Build.0 = Release|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Checked|x64.ActiveCfg = Debug|Any CPU + {26B82FDC-3524-4DAF-91E3-F5BA9F903906}.Checked|x86.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|x64.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|x64.Build.0 = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|x86.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Debug|x86.Build.0 = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|Any CPU.Build.0 = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|x64.ActiveCfg = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|x64.Build.0 = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|x86.ActiveCfg = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Release|x86.Build.0 = Release|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Checked|x64.ActiveCfg = Debug|Any CPU + {B6953324-8866-4D94-B352-20EF38EA6774}.Checked|x86.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|x64.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|x64.Build.0 = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|x86.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Debug|x86.Build.0 = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|Any CPU.Build.0 = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|x64.ActiveCfg = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|x64.Build.0 = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|x86.ActiveCfg = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Release|x86.Build.0 = Release|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Checked|x64.ActiveCfg = Debug|Any CPU + {0A103F2A-2FF6-4291-AB51-203E5CA00B2D}.Checked|x86.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|x64.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|x64.Build.0 = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|x86.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Debug|x86.Build.0 = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|Any CPU.Build.0 = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|x64.ActiveCfg = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|x64.Build.0 = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|x86.ActiveCfg = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Release|x86.Build.0 = Release|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Checked|x64.ActiveCfg = Debug|Any CPU + {E92F7B7A-D34D-49B8-8857-09936624E038}.Checked|x86.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|x64.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|x64.Build.0 = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|x86.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Debug|x86.Build.0 = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|Any CPU.Build.0 = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|x64.ActiveCfg = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|x64.Build.0 = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|x86.ActiveCfg = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Release|x86.Build.0 = Release|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Checked|x64.ActiveCfg = Debug|Any CPU + {78994C91-3A4F-4825-86C2-21FB4F082CA7}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {13CE5E71-D373-4EA6-B3CB-166FF089A42A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CF80D24A-787A-43DB-B9E7-10BCA02D10EA} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4413B319-3D48-4516-A45B-375F4650EF0D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {A4F5FC3B-5BD1-4481-972B-19165AF540FB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1899F2A2-A3E4-41EF-8180-4F11795ABDC6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {19ADDB12-418C-49F2-A07D-FAC40C2EB36D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {493FB31F-9003-4BA7-85F7-E68CC28E6EE4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {93D8A5A0-18AA-47D3-9729-5BFFD56EC00C} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7BE29712-5B4E-44A4-9A1D-DC6513B36F62} + SolutionGuid = {158060A0-BFF9-48E6-90A9-93F52FEB5D3B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.sln b/src/libraries/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.sln new file mode 100644 index 000000000000..40cb9c61ff5f Binary files /dev/null and b/src/libraries/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.sln differ diff --git a/src/libraries/System.Runtime.Serialization.Json/System.Runtime.Serialization.Json.sln b/src/libraries/System.Runtime.Serialization.Json/System.Runtime.Serialization.Json.sln index 798ecce5c3c5..fb11f499f8c9 100644 --- a/src/libraries/System.Runtime.Serialization.Json/System.Runtime.Serialization.Json.sln +++ b/src/libraries/System.Runtime.Serialization.Json/System.Runtime.Serialization.Json.sln @@ -1,77 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json.Tests", "tests\System.Runtime.Serialization.Json.Tests.csproj", "{173F6978-B961-4D1C-84E4-06468772D019}" - ProjectSection(ProjectDependencies) = postProject - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9} = {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{080B8264-CE67-4366-8829-C4586C46DF19}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json.ReflectionOnly.Tests", "tests\ReflectionOnly\System.Runtime.Serialization.Json.ReflectionOnly.Tests.csproj", "{C99A835E-46F3-4C05-AD34-7DD84FB7466B}" - ProjectSection(ProjectDependencies) = postProject - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9} = {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{1EC4598E-2F4C-481A-8648-E9A4F729CE2D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json", "src\System.Runtime.Serialization.Json.csproj", "{AAFFA8F4-BDA9-4107-A650-9014F64EDAE9}" - ProjectSection(ProjectDependencies) = postProject - {5119E88F-FA73-4FC6-A327-DD7C77E746BC} = {5119E88F-FA73-4FC6-A327-DD7C77E746BC} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.DataContractSerialization", "..\System.Private.DataContractSerialization\src\System.Private.DataContractSerialization.csproj", "{6045DECE-8425-4EE2-8685-7F2F21A3F691}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json", "ref\System.Runtime.Serialization.Json.csproj", "{5119E88F-FA73-4FC6-A327-DD7C77E746BC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{DD90904E-16A2-41A4-A7A1-1AFDEE7E829D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json", "ref\System.Runtime.Serialization.Json.csproj", "{A0C8500C-06E8-4016-9A05-C6FC0D51BC01}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json", "src\System.Runtime.Serialization.Json.csproj", "{209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{093A2EED-031E-47A2-91C6-5B21D6B587F5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json.ReflectionOnly.Tests", "tests\ReflectionOnly\System.Runtime.Serialization.Json.ReflectionOnly.Tests.csproj", "{AA73F333-D597-45F9-BC6E-75008C319C83}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.DataContractSerialization", "..\System.Private.DataContractSerialization\src\System.Private.DataContractSerialization.csproj", "{7A5FC511-537D-4B4D-A138-34F3D81C68C9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Json.Tests", "tests\System.Runtime.Serialization.Json.Tests.csproj", "{3898FE7A-F5E1-48BD-AD67-F8680B944631}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{D41A4034-8A9A-44C5-B739-18BCB153D2D2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2D61B9AD-355B-49CC-8983-C004E4BC7DCB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{92BF2B65-87FB-44A0-9D9B-D2AB2A8715C2}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {080B8264-CE67-4366-8829-C4586C46DF19} = {2D61B9AD-355B-49CC-8983-C004E4BC7DCB} + {AA73F333-D597-45F9-BC6E-75008C319C83} = {2D61B9AD-355B-49CC-8983-C004E4BC7DCB} + {3898FE7A-F5E1-48BD-AD67-F8680B944631} = {2D61B9AD-355B-49CC-8983-C004E4BC7DCB} + {1EC4598E-2F4C-481A-8648-E9A4F729CE2D} = {6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08} + {DD90904E-16A2-41A4-A7A1-1AFDEE7E829D} = {6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08} + {A0C8500C-06E8-4016-9A05-C6FC0D51BC01} = {6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08} + {D41A4034-8A9A-44C5-B739-18BCB153D2D2} = {6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08} + {2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D} = {6EC6D07B-C92C-4BFD-8DAB-ADB0E020DF08} + {6045DECE-8425-4EE2-8685-7F2F21A3F691} = {92BF2B65-87FB-44A0-9D9B-D2AB2A8715C2} + {099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB} = {92BF2B65-87FB-44A0-9D9B-D2AB2A8715C2} + {209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E} = {92BF2B65-87FB-44A0-9D9B-D2AB2A8715C2} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {173F6978-B961-4D1C-84E4-06468772D019}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {173F6978-B961-4D1C-84E4-06468772D019}.Debug|Any CPU.Build.0 = Debug|Any CPU - {173F6978-B961-4D1C-84E4-06468772D019}.Release|Any CPU.ActiveCfg = Release|Any CPU - {173F6978-B961-4D1C-84E4-06468772D019}.Release|Any CPU.Build.0 = Release|Any CPU - {C99A835E-46F3-4C05-AD34-7DD84FB7466B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C99A835E-46F3-4C05-AD34-7DD84FB7466B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C99A835E-46F3-4C05-AD34-7DD84FB7466B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C99A835E-46F3-4C05-AD34-7DD84FB7466B}.Release|Any CPU.Build.0 = Release|Any CPU - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9}.Release|Any CPU.Build.0 = Release|Any CPU - {5119E88F-FA73-4FC6-A327-DD7C77E746BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5119E88F-FA73-4FC6-A327-DD7C77E746BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5119E88F-FA73-4FC6-A327-DD7C77E746BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5119E88F-FA73-4FC6-A327-DD7C77E746BC}.Release|Any CPU.Build.0 = Release|Any CPU - {093A2EED-031E-47A2-91C6-5B21D6B587F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {093A2EED-031E-47A2-91C6-5B21D6B587F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {093A2EED-031E-47A2-91C6-5B21D6B587F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {093A2EED-031E-47A2-91C6-5B21D6B587F5}.Release|Any CPU.Build.0 = Release|Any CPU - {7A5FC511-537D-4B4D-A138-34F3D81C68C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A5FC511-537D-4B4D-A138-34F3D81C68C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A5FC511-537D-4B4D-A138-34F3D81C68C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A5FC511-537D-4B4D-A138-34F3D81C68C9}.Release|Any CPU.Build.0 = Release|Any CPU + {080B8264-CE67-4366-8829-C4586C46DF19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {080B8264-CE67-4366-8829-C4586C46DF19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {080B8264-CE67-4366-8829-C4586C46DF19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {080B8264-CE67-4366-8829-C4586C46DF19}.Release|Any CPU.Build.0 = Release|Any CPU + {1EC4598E-2F4C-481A-8648-E9A4F729CE2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EC4598E-2F4C-481A-8648-E9A4F729CE2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EC4598E-2F4C-481A-8648-E9A4F729CE2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EC4598E-2F4C-481A-8648-E9A4F729CE2D}.Release|Any CPU.Build.0 = Release|Any CPU + {6045DECE-8425-4EE2-8685-7F2F21A3F691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6045DECE-8425-4EE2-8685-7F2F21A3F691}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6045DECE-8425-4EE2-8685-7F2F21A3F691}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6045DECE-8425-4EE2-8685-7F2F21A3F691}.Release|Any CPU.Build.0 = Release|Any CPU + {DD90904E-16A2-41A4-A7A1-1AFDEE7E829D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD90904E-16A2-41A4-A7A1-1AFDEE7E829D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD90904E-16A2-41A4-A7A1-1AFDEE7E829D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD90904E-16A2-41A4-A7A1-1AFDEE7E829D}.Release|Any CPU.Build.0 = Release|Any CPU + {099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {099AEB79-0631-42B8-ACB8-1BC5C0C0D0EB}.Release|Any CPU.Build.0 = Release|Any CPU + {A0C8500C-06E8-4016-9A05-C6FC0D51BC01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0C8500C-06E8-4016-9A05-C6FC0D51BC01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0C8500C-06E8-4016-9A05-C6FC0D51BC01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0C8500C-06E8-4016-9A05-C6FC0D51BC01}.Release|Any CPU.Build.0 = Release|Any CPU + {209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {209F90AA-5CA1-4DFA-8641-05A0AA4FDC8E}.Release|Any CPU.Build.0 = Release|Any CPU + {AA73F333-D597-45F9-BC6E-75008C319C83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA73F333-D597-45F9-BC6E-75008C319C83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA73F333-D597-45F9-BC6E-75008C319C83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA73F333-D597-45F9-BC6E-75008C319C83}.Release|Any CPU.Build.0 = Release|Any CPU + {3898FE7A-F5E1-48BD-AD67-F8680B944631}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3898FE7A-F5E1-48BD-AD67-F8680B944631}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3898FE7A-F5E1-48BD-AD67-F8680B944631}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3898FE7A-F5E1-48BD-AD67-F8680B944631}.Release|Any CPU.Build.0 = Release|Any CPU + {D41A4034-8A9A-44C5-B739-18BCB153D2D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D41A4034-8A9A-44C5-B739-18BCB153D2D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D41A4034-8A9A-44C5-B739-18BCB153D2D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D41A4034-8A9A-44C5-B739-18BCB153D2D2}.Release|Any CPU.Build.0 = Release|Any CPU + {2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C6C23B6-9A8B-4D5D-B8FD-5B938F74926D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {173F6978-B961-4D1C-84E4-06468772D019} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {C99A835E-46F3-4C05-AD34-7DD84FB7466B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AAFFA8F4-BDA9-4107-A650-9014F64EDAE9} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {5119E88F-FA73-4FC6-A327-DD7C77E746BC} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {093A2EED-031E-47A2-91C6-5B21D6B587F5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {7A5FC511-537D-4B4D-A138-34F3D81C68C9} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6BB5B700-6575-4C04-ADF5-1680E2177DB2} + SolutionGuid = {5D066F36-FE2F-41D2-A586-BBA5192A8BCA} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Serialization.Primitives/System.Runtime.Serialization.Primitives.sln b/src/libraries/System.Runtime.Serialization.Primitives/System.Runtime.Serialization.Primitives.sln index f66a72c803e2..0cd21d6929c5 100644 --- a/src/libraries/System.Runtime.Serialization.Primitives/System.Runtime.Serialization.Primitives.sln +++ b/src/libraries/System.Runtime.Serialization.Primitives/System.Runtime.Serialization.Primitives.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives.Tests", "tests\System.Runtime.Serialization.Primitives.Tests.csproj", "{43341081-27A8-4CFB-8B89-C63CE457EAC2}" - ProjectSection(ProjectDependencies) = postProject - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01} = {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{5E9F435A-B4F6-4B3F-988B-80653A10F54D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives", "src\System.Runtime.Serialization.Primitives.csproj", "{CDF0ACB5-1361-4E48-8ECB-22E8022F5F01}" - ProjectSection(ProjectDependencies) = postProject - {7E73C175-98C7-471B-B1A4-998C20F58854} = {7E73C175-98C7-471B-B1A4-998C20F58854} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9C3316F9-7846-4D3C-9565-F13C6CB32599}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives", "ref\System.Runtime.Serialization.Primitives.csproj", "{7E73C175-98C7-471B-B1A4-998C20F58854}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{74FB3690-555A-46DD-8A78-5DD6E0017B15}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{B1B28C08-A7D3-4FF1-9AF1-07486E871EC0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives", "ref\System.Runtime.Serialization.Primitives.csproj", "{9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives", "src\System.Runtime.Serialization.Primitives.csproj", "{70F6A111-C73E-4989-BCE4-ED790E1E2882}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F290F6B1-FAB9-45B0-9295-BD786D887E55}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Primitives.Tests", "tests\System.Runtime.Serialization.Primitives.Tests.csproj", "{AB51C1E2-6308-4989-B037-5712B6503C77}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D81C7D9C-D754-4473-AC53-6F1E5D94BC87}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B1644C65-0176-40FD-AA1F-4E52A351C73B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BAEEFAD3-F08F-4AE3-9527-D05D72E75230}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{64E781F9-A013-413E-A83A-198993B64904}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {5E9F435A-B4F6-4B3F-988B-80653A10F54D} = {B1644C65-0176-40FD-AA1F-4E52A351C73B} + {AB51C1E2-6308-4989-B037-5712B6503C77} = {B1644C65-0176-40FD-AA1F-4E52A351C73B} + {9C3316F9-7846-4D3C-9565-F13C6CB32599} = {BAEEFAD3-F08F-4AE3-9527-D05D72E75230} + {74FB3690-555A-46DD-8A78-5DD6E0017B15} = {BAEEFAD3-F08F-4AE3-9527-D05D72E75230} + {9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D} = {BAEEFAD3-F08F-4AE3-9527-D05D72E75230} + {3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2} = {BAEEFAD3-F08F-4AE3-9527-D05D72E75230} + {D81C7D9C-D754-4473-AC53-6F1E5D94BC87} = {BAEEFAD3-F08F-4AE3-9527-D05D72E75230} + {B1B28C08-A7D3-4FF1-9AF1-07486E871EC0} = {64E781F9-A013-413E-A83A-198993B64904} + {70F6A111-C73E-4989-BCE4-ED790E1E2882} = {64E781F9-A013-413E-A83A-198993B64904} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {43341081-27A8-4CFB-8B89-C63CE457EAC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43341081-27A8-4CFB-8B89-C63CE457EAC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43341081-27A8-4CFB-8B89-C63CE457EAC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43341081-27A8-4CFB-8B89-C63CE457EAC2}.Release|Any CPU.Build.0 = Release|Any CPU - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01}.Release|Any CPU.Build.0 = Release|Any CPU - {7E73C175-98C7-471B-B1A4-998C20F58854}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E73C175-98C7-471B-B1A4-998C20F58854}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E73C175-98C7-471B-B1A4-998C20F58854}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E73C175-98C7-471B-B1A4-998C20F58854}.Release|Any CPU.Build.0 = Release|Any CPU - {F290F6B1-FAB9-45B0-9295-BD786D887E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F290F6B1-FAB9-45B0-9295-BD786D887E55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F290F6B1-FAB9-45B0-9295-BD786D887E55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F290F6B1-FAB9-45B0-9295-BD786D887E55}.Release|Any CPU.Build.0 = Release|Any CPU + {5E9F435A-B4F6-4B3F-988B-80653A10F54D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E9F435A-B4F6-4B3F-988B-80653A10F54D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E9F435A-B4F6-4B3F-988B-80653A10F54D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E9F435A-B4F6-4B3F-988B-80653A10F54D}.Release|Any CPU.Build.0 = Release|Any CPU + {9C3316F9-7846-4D3C-9565-F13C6CB32599}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C3316F9-7846-4D3C-9565-F13C6CB32599}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C3316F9-7846-4D3C-9565-F13C6CB32599}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C3316F9-7846-4D3C-9565-F13C6CB32599}.Release|Any CPU.Build.0 = Release|Any CPU + {74FB3690-555A-46DD-8A78-5DD6E0017B15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74FB3690-555A-46DD-8A78-5DD6E0017B15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74FB3690-555A-46DD-8A78-5DD6E0017B15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74FB3690-555A-46DD-8A78-5DD6E0017B15}.Release|Any CPU.Build.0 = Release|Any CPU + {B1B28C08-A7D3-4FF1-9AF1-07486E871EC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1B28C08-A7D3-4FF1-9AF1-07486E871EC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1B28C08-A7D3-4FF1-9AF1-07486E871EC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1B28C08-A7D3-4FF1-9AF1-07486E871EC0}.Release|Any CPU.Build.0 = Release|Any CPU + {9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F0F182E-71C9-4CB5-8E5E-94AFEE489B1D}.Release|Any CPU.Build.0 = Release|Any CPU + {70F6A111-C73E-4989-BCE4-ED790E1E2882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70F6A111-C73E-4989-BCE4-ED790E1E2882}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70F6A111-C73E-4989-BCE4-ED790E1E2882}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70F6A111-C73E-4989-BCE4-ED790E1E2882}.Release|Any CPU.Build.0 = Release|Any CPU + {AB51C1E2-6308-4989-B037-5712B6503C77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB51C1E2-6308-4989-B037-5712B6503C77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB51C1E2-6308-4989-B037-5712B6503C77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB51C1E2-6308-4989-B037-5712B6503C77}.Release|Any CPU.Build.0 = Release|Any CPU + {3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E86D4D6-1F4F-4739-8DA7-CC78F39CA0C2}.Release|Any CPU.Build.0 = Release|Any CPU + {D81C7D9C-D754-4473-AC53-6F1E5D94BC87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D81C7D9C-D754-4473-AC53-6F1E5D94BC87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D81C7D9C-D754-4473-AC53-6F1E5D94BC87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D81C7D9C-D754-4473-AC53-6F1E5D94BC87}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {43341081-27A8-4CFB-8B89-C63CE457EAC2} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7E73C175-98C7-471B-B1A4-998C20F58854} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {F290F6B1-FAB9-45B0-9295-BD786D887E55} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C14B64DA-EF7A-43D0-8879-186AE8D765AB} + SolutionGuid = {7BC9AD65-7DA0-465C-B6FF-6037B3A864CD} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime.Serialization.Xml/System.Runtime.Serialization.Xml.sln b/src/libraries/System.Runtime.Serialization.Xml/System.Runtime.Serialization.Xml.sln index 9e8e140245bc..22ff1b74e9ed 100644 --- a/src/libraries/System.Runtime.Serialization.Xml/System.Runtime.Serialization.Xml.sln +++ b/src/libraries/System.Runtime.Serialization.Xml/System.Runtime.Serialization.Xml.sln @@ -1,80 +1,135 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml.Tests", "tests\System.Runtime.Serialization.Xml.Tests.csproj", "{30CAB353-089E-4294-B23B-F2DD1D945654}" - ProjectSection(ProjectDependencies) = postProject - {9D747A18-C8FD-4D7A-8913-4ED7911683B4} = {9D747A18-C8FD-4D7A-8913-4ED7911683B4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CBA80130-6773-4DF9-995C-DC6CBED89CB5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml.Canonicalization", "tests\Canonicalization\System.Runtime.Serialization.Xml.Canonicalization.csproj", "{D3AD82FC-051D-4121-8E48-B13CE8024776}" - ProjectSection(ProjectDependencies) = postProject - {9D747A18-C8FD-4D7A-8913-4ED7911683B4} = {9D747A18-C8FD-4D7A-8913-4ED7911683B4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{3F1CD832-E457-43EA-938B-726661177172}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml.ReflectionOnly.Tests", "tests\ReflectionOnly\System.Runtime.Serialization.Xml.ReflectionOnly.Tests.csproj", "{38889701-0af4-48b3-999c-e99d639c61b6}" - ProjectSection(ProjectDependencies) = postProject - {9D747A18-C8FD-4D7A-8913-4ED7911683B4} = {9D747A18-C8FD-4D7A-8913-4ED7911683B4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\ref\System.CodeDom.csproj", "{7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml", "src\System.Runtime.Serialization.Xml.csproj", "{9D747A18-C8FD-4D7A-8913-4ED7911683B4}" - ProjectSection(ProjectDependencies) = postProject - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE} = {025743B4-6E1E-4602-BE7F-1E479CC8EEBE} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.CodeDom", "..\System.CodeDom\src\System.CodeDom.csproj", "{1392041A-E2CA-4553-BEAF-363974651B81}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml", "ref\System.Runtime.Serialization.Xml.csproj", "{025743B4-6E1E-4602-BE7F-1E479CC8EEBE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.DataContractSerialization", "..\System.Private.DataContractSerialization\src\System.Private.DataContractSerialization.csproj", "{76AC3DDD-2B38-489F-A8B0-8E43054595DB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A91D124D-A7BB-4C10-879E-792F7D9F656D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{A06A6D01-E1D2-42A0-A28C-5EEFC1445012}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7EB25E8A-B971-4422-9CA1-DC3E1FB5331E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml", "ref\System.Runtime.Serialization.Xml.csproj", "{19F785D2-F7A4-41AB-9301-A6AD7E40B238}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml", "src\System.Runtime.Serialization.Xml.csproj", "{6FD10BE0-24C8-456E-8B9A-FD101C05C961}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml.ReflectionOnly.Tests", "tests\ReflectionOnly\System.Runtime.Serialization.Xml.ReflectionOnly.Tests.csproj", "{8B069551-9B95-464E-BB40-C56817506FEC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Serialization.Xml.Tests", "tests\System.Runtime.Serialization.Xml.Tests.csproj", "{8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{23B3D4BF-F750-41CD-9CB7-4CB5D64019DE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{1B698FC7-0121-4092-AEAB-5BC7D354B05C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{0F53467C-CE7E-482D-B649-8AB43F8E6BE6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{1B88B500-FDCB-455C-8307-E534B8EB0C84}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DB73E0AC-E80B-4662-954D-05662CBFB177}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D634E6C0-A090-49DC-9097-8917B86A9971}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {CBA80130-6773-4DF9-995C-DC6CBED89CB5} = {DB73E0AC-E80B-4662-954D-05662CBFB177} + {8B069551-9B95-464E-BB40-C56817506FEC} = {DB73E0AC-E80B-4662-954D-05662CBFB177} + {8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C} = {DB73E0AC-E80B-4662-954D-05662CBFB177} + {3F1CD832-E457-43EA-938B-726661177172} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {A91D124D-A7BB-4C10-879E-792F7D9F656D} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {19F785D2-F7A4-41AB-9301-A6AD7E40B238} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {23B3D4BF-F750-41CD-9CB7-4CB5D64019DE} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {1B698FC7-0121-4092-AEAB-5BC7D354B05C} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {0F53467C-CE7E-482D-B649-8AB43F8E6BE6} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {1B88B500-FDCB-455C-8307-E534B8EB0C84} = {A83F7E17-CB78-4CA6-AA1C-D4041ECDB46D} + {1392041A-E2CA-4553-BEAF-363974651B81} = {D634E6C0-A090-49DC-9097-8917B86A9971} + {76AC3DDD-2B38-489F-A8B0-8E43054595DB} = {D634E6C0-A090-49DC-9097-8917B86A9971} + {A06A6D01-E1D2-42A0-A28C-5EEFC1445012} = {D634E6C0-A090-49DC-9097-8917B86A9971} + {6FD10BE0-24C8-456E-8B9A-FD101C05C961} = {D634E6C0-A090-49DC-9097-8917B86A9971} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {30CAB353-089E-4294-B23B-F2DD1D945654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {30CAB353-089E-4294-B23B-F2DD1D945654}.Debug|Any CPU.Build.0 = Debug|Any CPU - {30CAB353-089E-4294-B23B-F2DD1D945654}.Release|Any CPU.ActiveCfg = Release|Any CPU - {30CAB353-089E-4294-B23B-F2DD1D945654}.Release|Any CPU.Build.0 = Release|Any CPU - {D3AD82FC-051D-4121-8E48-B13CE8024776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D3AD82FC-051D-4121-8E48-B13CE8024776}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D3AD82FC-051D-4121-8E48-B13CE8024776}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D3AD82FC-051D-4121-8E48-B13CE8024776}.Release|Any CPU.Build.0 = Release|Any CPU - {38889701-0af4-48b3-999c-e99d639c61b6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38889701-0af4-48b3-999c-e99d639c61b6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38889701-0af4-48b3-999c-e99d639c61b6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38889701-0af4-48b3-999c-e99d639c61b6}.Release|Any CPU.Build.0 = Release|Any CPU - {9D747A18-C8FD-4D7A-8913-4ED7911683B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D747A18-C8FD-4D7A-8913-4ED7911683B4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D747A18-C8FD-4D7A-8913-4ED7911683B4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D747A18-C8FD-4D7A-8913-4ED7911683B4}.Release|Any CPU.Build.0 = Release|Any CPU - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE}.Release|Any CPU.Build.0 = Release|Any CPU - {7EB25E8A-B971-4422-9CA1-DC3E1FB5331E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7EB25E8A-B971-4422-9CA1-DC3E1FB5331E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7EB25E8A-B971-4422-9CA1-DC3E1FB5331E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7EB25E8A-B971-4422-9CA1-DC3E1FB5331E}.Release|Any CPU.Build.0 = Release|Any CPU + {CBA80130-6773-4DF9-995C-DC6CBED89CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBA80130-6773-4DF9-995C-DC6CBED89CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBA80130-6773-4DF9-995C-DC6CBED89CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBA80130-6773-4DF9-995C-DC6CBED89CB5}.Release|Any CPU.Build.0 = Release|Any CPU + {3F1CD832-E457-43EA-938B-726661177172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F1CD832-E457-43EA-938B-726661177172}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F1CD832-E457-43EA-938B-726661177172}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F1CD832-E457-43EA-938B-726661177172}.Release|Any CPU.Build.0 = Release|Any CPU + {7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DF41C40-FE5D-41DF-B106-3DD77BE4D4B5}.Release|Any CPU.Build.0 = Release|Any CPU + {1392041A-E2CA-4553-BEAF-363974651B81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1392041A-E2CA-4553-BEAF-363974651B81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1392041A-E2CA-4553-BEAF-363974651B81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1392041A-E2CA-4553-BEAF-363974651B81}.Release|Any CPU.Build.0 = Release|Any CPU + {D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D33B2CF1-2654-40DA-8EA6-DA5A2A453BAD}.Release|Any CPU.Build.0 = Release|Any CPU + {76AC3DDD-2B38-489F-A8B0-8E43054595DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76AC3DDD-2B38-489F-A8B0-8E43054595DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76AC3DDD-2B38-489F-A8B0-8E43054595DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76AC3DDD-2B38-489F-A8B0-8E43054595DB}.Release|Any CPU.Build.0 = Release|Any CPU + {A91D124D-A7BB-4C10-879E-792F7D9F656D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A91D124D-A7BB-4C10-879E-792F7D9F656D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A91D124D-A7BB-4C10-879E-792F7D9F656D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A91D124D-A7BB-4C10-879E-792F7D9F656D}.Release|Any CPU.Build.0 = Release|Any CPU + {A06A6D01-E1D2-42A0-A28C-5EEFC1445012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A06A6D01-E1D2-42A0-A28C-5EEFC1445012}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A06A6D01-E1D2-42A0-A28C-5EEFC1445012}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A06A6D01-E1D2-42A0-A28C-5EEFC1445012}.Release|Any CPU.Build.0 = Release|Any CPU + {19F785D2-F7A4-41AB-9301-A6AD7E40B238}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19F785D2-F7A4-41AB-9301-A6AD7E40B238}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19F785D2-F7A4-41AB-9301-A6AD7E40B238}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19F785D2-F7A4-41AB-9301-A6AD7E40B238}.Release|Any CPU.Build.0 = Release|Any CPU + {6FD10BE0-24C8-456E-8B9A-FD101C05C961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FD10BE0-24C8-456E-8B9A-FD101C05C961}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FD10BE0-24C8-456E-8B9A-FD101C05C961}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FD10BE0-24C8-456E-8B9A-FD101C05C961}.Release|Any CPU.Build.0 = Release|Any CPU + {8B069551-9B95-464E-BB40-C56817506FEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B069551-9B95-464E-BB40-C56817506FEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B069551-9B95-464E-BB40-C56817506FEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B069551-9B95-464E-BB40-C56817506FEC}.Release|Any CPU.Build.0 = Release|Any CPU + {8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FF5E841-29F6-4DB7-A4F8-9281FBDA0B9C}.Release|Any CPU.Build.0 = Release|Any CPU + {23B3D4BF-F750-41CD-9CB7-4CB5D64019DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23B3D4BF-F750-41CD-9CB7-4CB5D64019DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23B3D4BF-F750-41CD-9CB7-4CB5D64019DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23B3D4BF-F750-41CD-9CB7-4CB5D64019DE}.Release|Any CPU.Build.0 = Release|Any CPU + {1B698FC7-0121-4092-AEAB-5BC7D354B05C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B698FC7-0121-4092-AEAB-5BC7D354B05C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B698FC7-0121-4092-AEAB-5BC7D354B05C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B698FC7-0121-4092-AEAB-5BC7D354B05C}.Release|Any CPU.Build.0 = Release|Any CPU + {0F53467C-CE7E-482D-B649-8AB43F8E6BE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F53467C-CE7E-482D-B649-8AB43F8E6BE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F53467C-CE7E-482D-B649-8AB43F8E6BE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F53467C-CE7E-482D-B649-8AB43F8E6BE6}.Release|Any CPU.Build.0 = Release|Any CPU + {1B88B500-FDCB-455C-8307-E534B8EB0C84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B88B500-FDCB-455C-8307-E534B8EB0C84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B88B500-FDCB-455C-8307-E534B8EB0C84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B88B500-FDCB-455C-8307-E534B8EB0C84}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {30CAB353-089E-4294-B23B-F2DD1D945654} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D3AD82FC-051D-4121-8E48-B13CE8024776} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {38889701-0af4-48b3-999c-e99d639c61b6} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {9D747A18-C8FD-4D7A-8913-4ED7911683B4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {025743B4-6E1E-4602-BE7F-1E479CC8EEBE} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7EB25E8A-B971-4422-9CA1-DC3E1FB5331E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E4F1AE1F-1634-4F13-B1A6-A6C5CAAA5A89} + SolutionGuid = {EE9FB522-4B73-4E3E-B63D-C21826BB7B5D} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime/System.Runtime.sln b/src/libraries/System.Runtime/System.Runtime.sln index d5992a5981a2..1bc5f254a822 100644 --- a/src/libraries/System.Runtime/System.Runtime.sln +++ b/src/libraries/System.Runtime/System.Runtime.sln @@ -1,117 +1,483 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Tests", "tests\System.Runtime.Tests.csproj", "{B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{71AB8240-F179-4B21-A8BE-8BE6CD774ED9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Nls.Tests", "tests\NlsTests\System.Runtime.Nls.Tests.csproj", "{F6ED1D9D-DBF6-420A-9710-672BF78A00E4}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities.Unicode", "..\Common\tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{9DF0247E-5B81-4EF3-82CA-3E70B3A56742}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestCollectibleAssembly", "tests\TestCollectibleAssembly\TestCollectibleAssembly.csproj", "{F9C30DC5-30C1-45DA-9336-F7BE358C367C}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{FB17AC52-1633-4845-932B-9218DF895957}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestLoadAssembly", "tests\TestLoadAssembly\TestLoadAssembly.csproj", "{71DE1A1F-F8E2-452A-9D54-0385F6099DD3}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D98FBB47-1DFD-4021-9C80-3034D699EAD6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TestModule", "tests\TestModule\System.Reflection.TestModule.ilproj", "{3B7489C4-65DB-4E69-BE01-F6234133400C}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{9C41B325-1225-43CA-9436-549AFF6D90A1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.TestStructs", "tests\TestStructs\System.TestStructs.ilproj", "{6B002B34-089C-4BC4-91DD-57D350DEA91C}" - ProjectSection(ProjectDependencies) = postProject - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Uri", "..\System.Private.Uri\src\System.Private.Uri.csproj", "{E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "src\System.Runtime.csproj", "{56B9D0A9-44D3-488E-8B42-C14A6E30CAB2}" - ProjectSection(ProjectDependencies) = postProject - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6} = {ADBCF120-3454-4A3C-9D1D-AC4293E795D6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "ref\System.Runtime.csproj", "{ADBCF120-3454-4A3C-9D1D-AC4293E795D6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{26541647-B653-4480-9448-BA275D53C81D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "ref\System.Runtime.csproj", "{F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime", "src\System.Runtime.csproj", "{A83A8520-F5E2-49B4-83BC-0F82A412951D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Nls.Tests", "tests\NlsTests\System.Runtime.Nls.Tests.csproj", "{3B79DD71-8C2F-41BC-A1A7-86A490D6C726}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9EE64AF5-E04D-4E0E-8D87-F263E3CAF247}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Tests", "tests\System.Runtime.Tests.csproj", "{4EE36055-AD7C-4779-B3F6-08687960DCC3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities.Unicode", "..\Common\tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestCollectibleAssembly", "tests\TestCollectibleAssembly\TestCollectibleAssembly.csproj", "{C230AC88-A377-4BEB-824F-AB174C14DC86}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestLoadAssembly", "tests\TestLoadAssembly\TestLoadAssembly.csproj", "{1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.TestModule", "tests\TestModule\System.Reflection.TestModule.ilproj", "{0F83B07B-2E3F-4708-BE6D-7A8DA8168803}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.TestStructs", "tests\TestStructs\System.TestStructs.ilproj", "{833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{67E57433-4571-442C-9EB7-5512847FFE51}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{F6A8185B-07C6-401D-9B40-3C560239E05F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{F5D24DC1-048D-4306-9C48-5963685F825C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{82A02402-0C05-4A8C-98DD-058844E8D224}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.AccessControl", "..\System.Threading.AccessControl\src\System.Threading.AccessControl.csproj", "{9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{82728202-1098-4E16-B598-5762EAF67D08}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{069C2B51-069A-4FBB-BFE9-42D573F1CEEA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C7032EBC-8AB7-4BE6-9D95-B420F058FAAF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BDCC9986-D51F-48D9-9650-388E172CD91E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F4F10B6C-21C0-4C9D-8909-76FC52145120}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {26541647-B653-4480-9448-BA275D53C81D} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {A83A8520-F5E2-49B4-83BC-0F82A412951D} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {F6A8185B-07C6-401D-9B40-3C560239E05F} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {82A02402-0C05-4A8C-98DD-058844E8D224} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA} = {C7032EBC-8AB7-4BE6-9D95-B420F058FAAF} + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {FB17AC52-1633-4845-932B-9218DF895957} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {4EE36055-AD7C-4779-B3F6-08687960DCC3} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {C230AC88-A377-4BEB-824F-AB174C14DC86} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD} = {BDCC9986-D51F-48D9-9650-388E172CD91E} + {D98FBB47-1DFD-4021-9C80-3034D699EAD6} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {9C41B325-1225-43CA-9436-549AFF6D90A1} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {67E57433-4571-442C-9EB7-5512847FFE51} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {F5D24DC1-048D-4306-9C48-5963685F825C} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + {82728202-1098-4E16-B598-5762EAF67D08} = {F4F10B6C-21C0-4C9D-8909-76FC52145120} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Checked|Any CPU = Checked|Any CPU + Checked|x64 = Checked|x64 + Checked|x86 = Checked|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C}.Release|Any CPU.Build.0 = Release|Any CPU - {F6ED1D9D-DBF6-420A-9710-672BF78A00E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F6ED1D9D-DBF6-420A-9710-672BF78A00E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F6ED1D9D-DBF6-420A-9710-672BF78A00E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F6ED1D9D-DBF6-420A-9710-672BF78A00E4}.Release|Any CPU.Build.0 = Release|Any CPU - {F9C30DC5-30C1-45DA-9336-F7BE358C367C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9C30DC5-30C1-45DA-9336-F7BE358C367C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9C30DC5-30C1-45DA-9336-F7BE358C367C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9C30DC5-30C1-45DA-9336-F7BE358C367C}.Release|Any CPU.Build.0 = Release|Any CPU - {71DE1A1F-F8E2-452A-9D54-0385F6099DD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {71DE1A1F-F8E2-452A-9D54-0385F6099DD3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {71DE1A1F-F8E2-452A-9D54-0385F6099DD3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {71DE1A1F-F8E2-452A-9D54-0385F6099DD3}.Release|Any CPU.Build.0 = Release|Any CPU - {3B7489C4-65DB-4E69-BE01-F6234133400C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B7489C4-65DB-4E69-BE01-F6234133400C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B7489C4-65DB-4E69-BE01-F6234133400C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B7489C4-65DB-4E69-BE01-F6234133400C}.Release|Any CPU.Build.0 = Release|Any CPU - {6B002B34-089C-4BC4-91DD-57D350DEA91C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B002B34-089C-4BC4-91DD-57D350DEA91C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B002B34-089C-4BC4-91DD-57D350DEA91C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B002B34-089C-4BC4-91DD-57D350DEA91C}.Release|Any CPU.Build.0 = Release|Any CPU - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2}.Release|Any CPU.Build.0 = Release|Any CPU - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6}.Release|Any CPU.Build.0 = Release|Any CPU - {9EE64AF5-E04D-4E0E-8D87-F263E3CAF247}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EE64AF5-E04D-4E0E-8D87-F263E3CAF247}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EE64AF5-E04D-4E0E-8D87-F263E3CAF247}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EE64AF5-E04D-4E0E-8D87-F263E3CAF247}.Release|Any CPU.Build.0 = Release|Any CPU - {D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B}.Release|Any CPU.Build.0 = Release|Any CPU + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|Any CPU.ActiveCfg = Debug|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|Any CPU.Build.0 = Debug|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|x64.ActiveCfg = Debug|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|x64.Build.0 = Debug|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|x86.ActiveCfg = Debug|x86 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Debug|x86.Build.0 = Debug|x86 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|Any CPU.ActiveCfg = Release|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|Any CPU.Build.0 = Release|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|x64.ActiveCfg = Release|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|x64.Build.0 = Release|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|x86.ActiveCfg = Release|x86 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Release|x86.Build.0 = Release|x86 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|Any CPU.ActiveCfg = Checked|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|Any CPU.Build.0 = Checked|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|x64.ActiveCfg = Checked|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|x64.Build.0 = Checked|x64 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|x86.ActiveCfg = Checked|x86 + {71AB8240-F179-4B21-A8BE-8BE6CD774ED9}.Checked|x86.Build.0 = Checked|x86 + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|x64.ActiveCfg = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|x64.Build.0 = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|x86.ActiveCfg = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Debug|x86.Build.0 = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|Any CPU.Build.0 = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|x64.ActiveCfg = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|x64.Build.0 = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|x86.ActiveCfg = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Release|x86.Build.0 = Release|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Checked|x64.ActiveCfg = Debug|Any CPU + {9DF0247E-5B81-4EF3-82CA-3E70B3A56742}.Checked|x86.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|x64.Build.0 = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Debug|x86.Build.0 = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|Any CPU.Build.0 = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|x64.ActiveCfg = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|x64.Build.0 = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|x86.ActiveCfg = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Release|x86.Build.0 = Release|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Checked|x64.ActiveCfg = Debug|Any CPU + {FB17AC52-1633-4845-932B-9218DF895957}.Checked|x86.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|x64.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|x64.Build.0 = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|x86.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Debug|x86.Build.0 = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|Any CPU.Build.0 = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|x64.ActiveCfg = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|x64.Build.0 = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|x86.ActiveCfg = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Release|x86.Build.0 = Release|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Checked|x64.ActiveCfg = Debug|Any CPU + {D98FBB47-1DFD-4021-9C80-3034D699EAD6}.Checked|x86.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|x64.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|x64.Build.0 = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|x86.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Debug|x86.Build.0 = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|Any CPU.Build.0 = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|x64.ActiveCfg = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|x64.Build.0 = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|x86.ActiveCfg = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Release|x86.Build.0 = Release|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Checked|x64.ActiveCfg = Debug|Any CPU + {9C41B325-1225-43CA-9436-549AFF6D90A1}.Checked|x86.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|x64.Build.0 = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Debug|x86.Build.0 = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|Any CPU.Build.0 = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|x64.ActiveCfg = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|x64.Build.0 = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|x86.ActiveCfg = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Release|x86.Build.0 = Release|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Checked|x64.ActiveCfg = Debug|Any CPU + {E7A05515-DABE-4C09-83CB-CE84EFDCD4CC}.Checked|x86.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|x64.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|x64.Build.0 = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|x86.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Debug|x86.Build.0 = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|Any CPU.Build.0 = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|x64.ActiveCfg = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|x64.Build.0 = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|x86.ActiveCfg = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Release|x86.Build.0 = Release|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Checked|x64.ActiveCfg = Debug|Any CPU + {C1B93F37-FDD5-4ABB-A244-C6C60BD11CF3}.Checked|x86.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|x64.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|x64.Build.0 = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|x86.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Debug|x86.Build.0 = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|Any CPU.Build.0 = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|x64.ActiveCfg = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|x64.Build.0 = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|x86.ActiveCfg = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Release|x86.Build.0 = Release|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Checked|x64.ActiveCfg = Debug|Any CPU + {26541647-B653-4480-9448-BA275D53C81D}.Checked|x86.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|x64.Build.0 = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Debug|x86.Build.0 = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|Any CPU.Build.0 = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|x64.ActiveCfg = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|x64.Build.0 = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|x86.ActiveCfg = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Release|x86.Build.0 = Release|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Checked|x64.ActiveCfg = Debug|Any CPU + {F39E2C7E-5FE1-460C-AC2C-7E2B50955F2C}.Checked|x86.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|x64.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|x64.Build.0 = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|x86.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Debug|x86.Build.0 = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|Any CPU.Build.0 = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|x64.ActiveCfg = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|x64.Build.0 = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|x86.ActiveCfg = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Release|x86.Build.0 = Release|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Checked|x64.ActiveCfg = Debug|Any CPU + {A83A8520-F5E2-49B4-83BC-0F82A412951D}.Checked|x86.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|x64.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|x64.Build.0 = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|x86.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Debug|x86.Build.0 = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|Any CPU.Build.0 = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|x64.ActiveCfg = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|x64.Build.0 = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|x86.ActiveCfg = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Release|x86.Build.0 = Release|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Checked|x64.ActiveCfg = Debug|Any CPU + {3B79DD71-8C2F-41BC-A1A7-86A490D6C726}.Checked|x86.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|x64.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|x64.Build.0 = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|x86.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Debug|x86.Build.0 = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|Any CPU.Build.0 = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|x64.ActiveCfg = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|x64.Build.0 = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|x86.ActiveCfg = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Release|x86.Build.0 = Release|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Checked|x64.ActiveCfg = Debug|Any CPU + {4EE36055-AD7C-4779-B3F6-08687960DCC3}.Checked|x86.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|x64.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|x64.Build.0 = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|x86.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Debug|x86.Build.0 = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|Any CPU.Build.0 = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|x64.ActiveCfg = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|x64.Build.0 = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|x86.ActiveCfg = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Release|x86.Build.0 = Release|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Checked|x64.ActiveCfg = Debug|Any CPU + {C230AC88-A377-4BEB-824F-AB174C14DC86}.Checked|x86.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|x64.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|x64.Build.0 = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|x86.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Debug|x86.Build.0 = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|Any CPU.Build.0 = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|x64.ActiveCfg = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|x64.Build.0 = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|x86.ActiveCfg = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Release|x86.Build.0 = Release|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Checked|x64.ActiveCfg = Debug|Any CPU + {1BCCD2F5-A561-4641-8A0B-51F3EDCA35DC}.Checked|x86.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|x64.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|x64.Build.0 = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|x86.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Debug|x86.Build.0 = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|Any CPU.Build.0 = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|x64.ActiveCfg = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|x64.Build.0 = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|x86.ActiveCfg = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Release|x86.Build.0 = Release|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Checked|x64.ActiveCfg = Debug|Any CPU + {0F83B07B-2E3F-4708-BE6D-7A8DA8168803}.Checked|x86.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|x64.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|x64.Build.0 = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|x86.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Debug|x86.Build.0 = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|Any CPU.Build.0 = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|x64.ActiveCfg = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|x64.Build.0 = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|x86.ActiveCfg = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Release|x86.Build.0 = Release|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Checked|x64.ActiveCfg = Debug|Any CPU + {833C1D45-9BBB-4A92-93B7-4EFFD9E945AD}.Checked|x86.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|x64.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|x64.Build.0 = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|x86.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Debug|x86.Build.0 = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|Any CPU.Build.0 = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|x64.ActiveCfg = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|x64.Build.0 = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|x86.ActiveCfg = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Release|x86.Build.0 = Release|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Checked|x64.ActiveCfg = Debug|Any CPU + {67E57433-4571-442C-9EB7-5512847FFE51}.Checked|x86.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|x64.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|x64.Build.0 = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Debug|x86.Build.0 = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|Any CPU.Build.0 = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|x64.ActiveCfg = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|x64.Build.0 = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|x86.ActiveCfg = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Release|x86.Build.0 = Release|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Checked|x64.ActiveCfg = Debug|Any CPU + {DBFDC8D7-97CA-444C-BE48-BAA09331CD1B}.Checked|x86.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|x64.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|x64.Build.0 = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|x86.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Debug|x86.Build.0 = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|Any CPU.Build.0 = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|x64.ActiveCfg = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|x64.Build.0 = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|x86.ActiveCfg = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Release|x86.Build.0 = Release|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Checked|x64.ActiveCfg = Debug|Any CPU + {1B4552A4-91FD-4C6F-9EB4-3454C4BE428F}.Checked|x86.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|x64.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|x64.Build.0 = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|x86.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Debug|x86.Build.0 = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|Any CPU.Build.0 = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|x64.ActiveCfg = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|x64.Build.0 = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|x86.ActiveCfg = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Release|x86.Build.0 = Release|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Checked|x64.ActiveCfg = Debug|Any CPU + {F6A8185B-07C6-401D-9B40-3C560239E05F}.Checked|x86.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|x64.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|x64.Build.0 = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Debug|x86.Build.0 = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|Any CPU.Build.0 = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|x64.ActiveCfg = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|x64.Build.0 = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|x86.ActiveCfg = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Release|x86.Build.0 = Release|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Checked|x64.ActiveCfg = Debug|Any CPU + {F5D24DC1-048D-4306-9C48-5963685F825C}.Checked|x86.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|x64.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|x64.Build.0 = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|x86.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Debug|x86.Build.0 = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|Any CPU.Build.0 = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|x64.ActiveCfg = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|x64.Build.0 = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|x86.ActiveCfg = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Release|x86.Build.0 = Release|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Checked|x64.ActiveCfg = Debug|Any CPU + {82A02402-0C05-4A8C-98DD-058844E8D224}.Checked|x86.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|x64.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|x64.Build.0 = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|x86.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Debug|x86.Build.0 = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|Any CPU.Build.0 = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|x64.ActiveCfg = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|x64.Build.0 = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|x86.ActiveCfg = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Release|x86.Build.0 = Release|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Checked|x64.ActiveCfg = Debug|Any CPU + {9CF6C6E6-0E9F-4A95-84B5-6083EAB6FA13}.Checked|x86.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|x64.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|x64.Build.0 = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|x86.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Debug|x86.Build.0 = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|Any CPU.Build.0 = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|x64.ActiveCfg = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|x64.Build.0 = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|x86.ActiveCfg = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Release|x86.Build.0 = Release|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Checked|x64.ActiveCfg = Debug|Any CPU + {82728202-1098-4E16-B598-5762EAF67D08}.Checked|x86.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|x64.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|x64.Build.0 = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|x86.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Debug|x86.Build.0 = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|Any CPU.Build.0 = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|x64.ActiveCfg = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|x64.Build.0 = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|x86.ActiveCfg = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Release|x86.Build.0 = Release|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Checked|x64.ActiveCfg = Debug|Any CPU + {069C2B51-069A-4FBB-BFE9-42D573F1CEEA}.Checked|x86.ActiveCfg = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B1BF7CE0-CAB5-4FA2-A39C-450B05D5DB1C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F6ED1D9D-DBF6-420A-9710-672BF78A00E4} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F9C30DC5-30C1-45DA-9336-F7BE358C367C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {71DE1A1F-F8E2-452A-9D54-0385F6099DD3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3B7489C4-65DB-4E69-BE01-F6234133400C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6B002B34-089C-4BC4-91DD-57D350DEA91C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {56B9D0A9-44D3-488E-8B42-C14A6E30CAB2} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {ADBCF120-3454-4A3C-9D1D-AC4293E795D6} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9EE64AF5-E04D-4E0E-8D87-F263E3CAF247} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D7833CAD-D4DB-4E60-8F77-A8EFF4B2D86B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FBD1A5A2-A6F0-444D-9D7D-86D77604F1F5} + SolutionGuid = {19706846-1F47-42ED-B649-B0982EE96E6B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index c954f9be6226..e7b8eac6abc5 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -497,8 +497,8 @@ public abstract partial class Attribute public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType, bool inherit) { throw null; } public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element) { throw null; } public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, bool inherit) { throw null; } - public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type type) { throw null; } - public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type type, bool inherit) { throw null; } + public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type attributeType) { throw null; } + public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { throw null; } public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element) { throw null; } public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, bool inherit) { throw null; } public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, System.Type attributeType) { throw null; } @@ -2177,9 +2177,9 @@ public partial class GopherStyleUriParser : System.UriParser { public GopherStyleUriParser() { } } - public partial struct Guid : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable + public readonly partial struct Guid : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable { - private int _dummyPrimitive; + private readonly int _dummyPrimitive; public static readonly System.Guid Empty; public Guid(byte[] b) { throw null; } public Guid(int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) { throw null; } @@ -4202,6 +4202,8 @@ public abstract partial class Type : System.Reflection.MemberInfo, System.Reflec public virtual int GetArrayRank() { throw null; } protected abstract System.Reflection.TypeAttributes GetAttributeFlagsImpl(); [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] + public System.Reflection.ConstructorInfo? GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Type[] types) { throw null; } + [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] public System.Reflection.ConstructorInfo? GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[]? modifiers) { throw null; } [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] public System.Reflection.ConstructorInfo? GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Type[] types, System.Reflection.ParameterModifier[]? modifiers) { throw null; } @@ -4267,6 +4269,8 @@ public abstract partial class Type : System.Reflection.MemberInfo, System.Reflec [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)] public System.Reflection.MethodInfo? GetMethod(string name, System.Reflection.BindingFlags bindingAttr) { throw null; } [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)] + public System.Reflection.MethodInfo? GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Type[] types) { throw null; } + [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)] public System.Reflection.MethodInfo? GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[]? modifiers) { throw null; } [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)] public System.Reflection.MethodInfo? GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Type[] types, System.Reflection.ParameterModifier[]? modifiers) { throw null; } @@ -6669,6 +6673,9 @@ public partial class StringInfo public override int GetHashCode() { throw null; } public static string GetNextTextElement(string str) { throw null; } public static string GetNextTextElement(string str, int index) { throw null; } + public static int GetNextTextElementLength(string str) { throw null; } + public static int GetNextTextElementLength(string str, int index) { throw null; } + public static int GetNextTextElementLength(System.ReadOnlySpan str) { throw null; } public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str) { throw null; } public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index) { throw null; } public static int[] ParseCombiningCharacters(string str) { throw null; } @@ -7087,8 +7094,8 @@ public partial class FileStream : System.IO.Stream public virtual string Name { get { throw null; } } public override long Position { get { throw null; } set { } } public virtual Microsoft.Win32.SafeHandles.SafeFileHandle SafeFileHandle { get { throw null; } } - public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int numBytes, System.AsyncCallback? callback, object? state) { throw null; } - public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int numBytes, System.AsyncCallback? callback, object? state) { throw null; } + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback? callback, object? state) { throw null; } + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback? callback, object? state) { throw null; } public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; } protected override void Dispose(bool disposing) { } public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; } @@ -7158,18 +7165,18 @@ public partial class MemoryStream : System.IO.Stream public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; } public virtual byte[] GetBuffer() { throw null; } public override int Read(byte[] buffer, int offset, int count) { throw null; } - public override int Read(System.Span destination) { throw null; } + public override int Read(System.Span buffer) { throw null; } public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; } - public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override int ReadByte() { throw null; } public override long Seek(long offset, System.IO.SeekOrigin loc) { throw null; } public override void SetLength(long value) { } public virtual byte[] ToArray() { throw null; } public virtual bool TryGetBuffer(out System.ArraySegment buffer) { throw null; } public override void Write(byte[] buffer, int offset, int count) { } - public override void Write(System.ReadOnlySpan source) { } + public override void Write(System.ReadOnlySpan buffer) { } public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; } - public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override void WriteByte(byte value) { } public virtual void WriteTo(System.IO.Stream stream) { } } @@ -7541,14 +7548,14 @@ public partial class UnmanagedMemoryStream : System.IO.Stream protected unsafe void Initialize(byte* pointer, long length, long capacity, System.IO.FileAccess access) { } protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length, System.IO.FileAccess access) { } public override int Read(byte[] buffer, int offset, int count) { throw null; } - public override int Read(System.Span destination) { throw null; } + public override int Read(System.Span buffer) { throw null; } public override System.Threading.Tasks.Task ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; } public override System.Threading.Tasks.ValueTask ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override int ReadByte() { throw null; } public override long Seek(long offset, System.IO.SeekOrigin loc) { throw null; } public override void SetLength(long value) { } public override void Write(byte[] buffer, int offset, int count) { } - public override void Write(System.ReadOnlySpan source) { } + public override void Write(System.ReadOnlySpan buffer) { } public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { throw null; } public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override void WriteByte(byte value) { } @@ -11075,10 +11082,15 @@ public partial class Task : System.IAsyncResult, System.IDisposable public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { throw null; } public void Wait(System.Threading.CancellationToken cancellationToken) { } public bool Wait(System.TimeSpan timeout) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static void WaitAll(params System.Threading.Tasks.Task[] tasks) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static void WaitAll(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static bool WaitAll(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) { throw null; } public static int WaitAny(params System.Threading.Tasks.Task[] tasks) { throw null; } public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) { throw null; } diff --git a/src/libraries/System.Runtime/tests/System/Reflection/BindingFlagsDoNotWrap.cs b/src/libraries/System.Runtime/tests/System/Reflection/BindingFlagsDoNotWrap.cs index b7d940b422f2..98cc175c84da 100644 --- a/src/libraries/System.Runtime/tests/System/Reflection/BindingFlagsDoNotWrap.cs +++ b/src/libraries/System.Runtime/tests/System/Reflection/BindingFlagsDoNotWrap.cs @@ -20,7 +20,14 @@ public static void MethodInvoke() [Fact] public static void ConstructorInvoke() { - ConstructorInfo c = typeof(TestClass).GetConstructor(BindingFlags.Public|BindingFlags.Instance, null, Array.Empty(), null); + ConstructorInfo c = typeof(TestClass).GetConstructor(BindingFlags.Public|BindingFlags.Instance, null, Type.EmptyTypes, null); + TestDoNotWrap((bf) => c.Invoke(bf, null, Array.Empty(), null)); + } + + [Fact] + public static void ConstructorInvokeTwoArgs() + { + ConstructorInfo c = typeof(TestClass).GetConstructor(BindingFlags.Public | BindingFlags.Instance, Type.EmptyTypes); TestDoNotWrap((bf) => c.Invoke(bf, null, Array.Empty(), null)); } @@ -32,10 +39,17 @@ public static void ConstructorInvokeStringCtor() TestDoNotWrap((bf) => c.Invoke(bf, null, new object[] { null, 0, 0 }, null)); } + [Fact] + public static void ConstructorInvokeStringCtorTwoArgs() + { + ConstructorInfo c = typeof(string).GetConstructor(BindingFlags.Public | BindingFlags.Instance, new Type[] { typeof(char[]), typeof(int), typeof(int) }); + TestDoNotWrap((bf) => c.Invoke(bf, null, new object[] { null, 0, 0 }, null)); + } + [Fact] public static void ConstructorInvokeUsingMethodInfoInvoke() { - ConstructorInfo c = typeof(TestClass).GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, Array.Empty(), null); + ConstructorInfo c = typeof(TestClass).GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, Type.EmptyTypes, null); TestDoNotWrap((bf) => c.Invoke(new TestClass(0), bf, null, Array.Empty(), null)); } diff --git a/src/libraries/System.Runtime/tests/System/Reflection/SignatureTypes.cs b/src/libraries/System.Runtime/tests/System/Reflection/SignatureTypes.cs index fd9a1d862c46..f631cd6f1e31 100644 --- a/src/libraries/System.Runtime/tests/System/Reflection/SignatureTypes.cs +++ b/src/libraries/System.Runtime/tests/System/Reflection/SignatureTypes.cs @@ -129,6 +129,19 @@ public static void GetMethodOverloadTest(bool exactBinding) AssertIsMarked(moo, 3); } + [Fact] + public static void GetMethodBindingFlagsAndArgs() + { + Type t = typeof(SignatureTypeTests); + const BindingFlags bf = BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly; + MethodInfo testMethod = t.GetMethod(nameof(GetMethodBindingFlagsAndArgs), bf, Type.EmptyTypes); + Assert.NotNull(testMethod); + + t = typeof(TestClass1); + Type[] args = { typeof(int) }; + Assert.Throws(() => t.GetMethod("Moo", bf, args)); + } + [Theory] [InlineData(true)] [InlineData(false)] diff --git a/src/libraries/System.Runtime/tests/System/Runtime/CompilerServices/RuntimeHelpersTests.cs b/src/libraries/System.Runtime/tests/System/Runtime/CompilerServices/RuntimeHelpersTests.cs index d3097d931641..33327d00fed4 100644 --- a/src/libraries/System.Runtime/tests/System/Runtime/CompilerServices/RuntimeHelpersTests.cs +++ b/src/libraries/System.Runtime/tests/System/Runtime/CompilerServices/RuntimeHelpersTests.cs @@ -1,11 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Reflection; using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; +using System.IO; +using System.Reflection; using System.Runtime.InteropServices; using Xunit; @@ -192,16 +191,106 @@ private static void FillStack(int depth) } } + public static IEnumerable GetUninitializedObject_NegativeTestCases() + { + // TODO: Test actual function pointer types when typeof(delegate*<...>) support is available + + yield return new[] { typeof(string), typeof(ArgumentException) }; // variable-length type + yield return new[] { typeof(int[]), typeof(ArgumentException) }; // variable-length type + yield return new[] { typeof(int[,]), typeof(ArgumentException) }; // variable-length type + yield return new[] { Array.CreateInstance(typeof(int), new[] { 1 }, new[] { 1 }).GetType(), typeof(ArgumentException) }; // variable-length type (non-szarray) + yield return new[] { typeof(Array), typeof(MemberAccessException) }; // abstract type + yield return new[] { typeof(Enum), typeof(MemberAccessException) }; // abstract type + + yield return new[] { typeof(Stream), typeof(MemberAccessException) }; // abstract type + yield return new[] { typeof(Buffer), typeof(MemberAccessException) }; // static type (runtime sees it as abstract) + yield return new[] { typeof(IDisposable), typeof(MemberAccessException) }; // interface type + + yield return new[] { typeof(List<>), typeof(MemberAccessException) }; // open generic type + yield return new[] { typeof(List<>).GetGenericArguments()[0], PlatformDetection.IsMonoRuntime ? typeof(MemberAccessException) : typeof(ArgumentException) }; // 'T' placeholder typedesc + + yield return new[] { typeof(Delegate), typeof(MemberAccessException) }; // abstract type + + yield return new[] { typeof(void), typeof(ArgumentException) }; // explicit block in place + yield return new[] { typeof(int).MakePointerType(), typeof(ArgumentException) }; // pointer typedesc + yield return new[] { typeof(int).MakeByRefType(), typeof(ArgumentException) }; // byref typedesc + + yield return new[] { typeof(ReadOnlySpan), typeof(NotSupportedException) }; // byref type + yield return new[] { typeof(ArgIterator), typeof(NotSupportedException) }; // byref type + + Type canonType = typeof(object).Assembly.GetType("System.__Canon", throwOnError: false); + if (canonType != null) + { + yield return new[] { typeof(List<>).MakeGenericType(canonType), typeof(NotSupportedException) }; // shared by generic instantiations + } + + Type comObjType = typeof(object).Assembly.GetType("System.__ComObject", throwOnError: false); + if (comObjType != null) + { + yield return new[] { comObjType, typeof(NotSupportedException) }; // COM type + } + + if (PlatformDetection.SupportsComInterop) + { + yield return new[] { typeof(WbemContext), typeof(NotSupportedException) }; // COM type + } + } + + // This type definition is lifted from System.Management, just for testing purposes + [ClassInterface((short)0x0000)] + [Guid("674B6698-EE92-11D0-AD71-00C04FD8FDFF")] + [ComImport] + internal class WbemContext + { + } + + internal class ClassWithBeforeFieldInitCctor + { + private static readonly int _theInt = GetInt(); + + private static int GetInt() + { + AppDomain.CurrentDomain.SetData("ClassWithBeforeFieldInitCctor_CctorRan", true); + return 0; + } + } + + internal class ClassWithNormalCctor + { +#pragma warning disable CS0414 // unused private field + private static readonly int _theInt; +#pragma warning restore CS0414 + + static ClassWithNormalCctor() + { + AppDomain.CurrentDomain.SetData("ClassWithNormalCctor_CctorRan", true); + _theInt = 0; + } + } + [Fact] - public static void GetUninitializedObject_InvalidArguments_ThrowsException() + public static void GetUninitalizedObject_DoesNotRunBeforeFieldInitCctors() { - AssertExtensions.Throws("type", () => RuntimeHelpers.GetUninitializedObject(null)); + object o = RuntimeHelpers.GetUninitializedObject(typeof(ClassWithBeforeFieldInitCctor)); + Assert.IsType(o); - AssertExtensions.Throws(null, () => RuntimeHelpers.GetUninitializedObject(typeof(string))); // special type - Assert.Throws(() => RuntimeHelpers.GetUninitializedObject(typeof(System.IO.Stream))); // abstract type - Assert.Throws(() => RuntimeHelpers.GetUninitializedObject(typeof(System.Collections.IEnumerable))); // interface - Assert.Throws(() => RuntimeHelpers.GetUninitializedObject(typeof(System.Collections.Generic.List<>))); // generic definition - Assert.Throws(() => RuntimeHelpers.GetUninitializedObject(typeof(TypedReference))); // byref-like type + Assert.Null(AppDomain.CurrentDomain.GetData("ClassWithBeforeFieldInitCctor_CctorRan")); + } + + [Fact] + public static void GetUninitalizedObject_RunsNormalStaticCtors() + { + object o = RuntimeHelpers.GetUninitializedObject(typeof(ClassWithNormalCctor)); + Assert.IsType(o); + + Assert.Equal(true, AppDomain.CurrentDomain.GetData("ClassWithNormalCctor_CctorRan")); + } + + [Theory] + [MemberData(nameof(GetUninitializedObject_NegativeTestCases))] + public static void GetUninitializedObject_InvalidArguments_ThrowsException(Type typeToInstantiate, Type expectedExceptionType) + { + Assert.Throws(expectedExceptionType, () => RuntimeHelpers.GetUninitializedObject(typeToInstantiate)); } [Fact] @@ -211,11 +300,19 @@ public static void GetUninitializedObject_DoesNotRunConstructor() Assert.Equal(0, ((ObjectWithDefaultCtor)RuntimeHelpers.GetUninitializedObject(typeof(ObjectWithDefaultCtor))).Value); } + [Fact] + public static void GetUninitializedObject_Struct() + { + object o = RuntimeHelpers.GetUninitializedObject(typeof(Guid)); + Assert.Equal(Guid.Empty, Assert.IsType(o)); + } + [Fact] public static void GetUninitializedObject_Nullable() { // Nullable returns the underlying type instead - Assert.Equal(typeof(int), RuntimeHelpers.GetUninitializedObject(typeof(Nullable)).GetType()); + object o = RuntimeHelpers.GetUninitializedObject(typeof(int?)); + Assert.Equal(0, Assert.IsType(o)); } private class ObjectWithDefaultCtor diff --git a/src/libraries/System.Security.AccessControl/System.Security.AccessControl.sln b/src/libraries/System.Security.AccessControl/System.Security.AccessControl.sln index 89cf5628a598..7bbb6e6ce0a1 100644 --- a/src/libraries/System.Security.AccessControl/System.Security.AccessControl.sln +++ b/src/libraries/System.Security.AccessControl/System.Security.AccessControl.sln @@ -1,60 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl.Tests", "tests\System.Security.AccessControl.Tests.csproj", "{70FAC855-CAC6-4523-8477-880548D58A1B}" - ProjectSection(ProjectDependencies) = postProject - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D} = {D27FFA1F-B446-4D24-B60A-1F88385CDB6D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{FE3865D4-48C5-4F67-A5EB-C041A1895100}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "src\System.Security.AccessControl.csproj", "{D27FFA1F-B446-4D24-B60A-1F88385CDB6D}" - ProjectSection(ProjectDependencies) = postProject - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F} = {F80C478C-48EE-46A5-89C4-EE0CFB23A14F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{700350E8-B09E-4CC9-B718-0F727D11EDE2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "ref\System.Security.AccessControl.csproj", "{F80C478C-48EE-46A5-89C4-EE0CFB23A14F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{AF88522D-FC01-4DCF-9C26-24672857E978}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{BF6925D4-3E90-4530-995F-7879D5F303EB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{29593DA3-C071-4001-82C1-B473203AD08C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "ref\System.Security.AccessControl.csproj", "{28201266-9EA3-4B92-83C5-ADEC5608E27A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "src\System.Security.AccessControl.csproj", "{E1E671BC-A82F-400A-9C93-ACB199A43BDA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl.Tests", "tests\System.Security.AccessControl.Tests.csproj", "{0B9499DE-C86E-4F3F-8F92-73DCC244A13B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{91215EF1-A93A-4C77-81CA-4AFDBC41182C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{CE278690-2333-49FC-8760-0BD967125E41}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A6560EDE-E3FA-4D30-ACB1-5F2A4F961584}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{A52AA406-A3E3-4B7A-9252-9C61E066A6A7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C357AA01-3BA4-46A7-BCBD-77513E81D3AA}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {FE3865D4-48C5-4F67-A5EB-C041A1895100} = {A6560EDE-E3FA-4D30-ACB1-5F2A4F961584} + {0B9499DE-C86E-4F3F-8F92-73DCC244A13B} = {A6560EDE-E3FA-4D30-ACB1-5F2A4F961584} + {700350E8-B09E-4CC9-B718-0F727D11EDE2} = {A52AA406-A3E3-4B7A-9252-9C61E066A6A7} + {AF88522D-FC01-4DCF-9C26-24672857E978} = {A52AA406-A3E3-4B7A-9252-9C61E066A6A7} + {BF6925D4-3E90-4530-995F-7879D5F303EB} = {A52AA406-A3E3-4B7A-9252-9C61E066A6A7} + {28201266-9EA3-4B92-83C5-ADEC5608E27A} = {A52AA406-A3E3-4B7A-9252-9C61E066A6A7} + {91215EF1-A93A-4C77-81CA-4AFDBC41182C} = {A52AA406-A3E3-4B7A-9252-9C61E066A6A7} + {28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340} = {C357AA01-3BA4-46A7-BCBD-77513E81D3AA} + {29593DA3-C071-4001-82C1-B473203AD08C} = {C357AA01-3BA4-46A7-BCBD-77513E81D3AA} + {E1E671BC-A82F-400A-9C93-ACB199A43BDA} = {C357AA01-3BA4-46A7-BCBD-77513E81D3AA} + {CE278690-2333-49FC-8760-0BD967125E41} = {C357AA01-3BA4-46A7-BCBD-77513E81D3AA} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {70FAC855-CAC6-4523-8477-880548D58A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70FAC855-CAC6-4523-8477-880548D58A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70FAC855-CAC6-4523-8477-880548D58A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70FAC855-CAC6-4523-8477-880548D58A1B}.Release|Any CPU.Build.0 = Release|Any CPU - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D}.Release|Any CPU.Build.0 = Release|Any CPU - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F}.Release|Any CPU.Build.0 = Release|Any CPU - {7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3}.Release|Any CPU.Build.0 = Release|Any CPU + {FE3865D4-48C5-4F67-A5EB-C041A1895100}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE3865D4-48C5-4F67-A5EB-C041A1895100}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE3865D4-48C5-4F67-A5EB-C041A1895100}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE3865D4-48C5-4F67-A5EB-C041A1895100}.Release|Any CPU.Build.0 = Release|Any CPU + {700350E8-B09E-4CC9-B718-0F727D11EDE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {700350E8-B09E-4CC9-B718-0F727D11EDE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {700350E8-B09E-4CC9-B718-0F727D11EDE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {700350E8-B09E-4CC9-B718-0F727D11EDE2}.Release|Any CPU.Build.0 = Release|Any CPU + {AF88522D-FC01-4DCF-9C26-24672857E978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF88522D-FC01-4DCF-9C26-24672857E978}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF88522D-FC01-4DCF-9C26-24672857E978}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF88522D-FC01-4DCF-9C26-24672857E978}.Release|Any CPU.Build.0 = Release|Any CPU + {28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28ACBF6E-C0FF-46BE-B9C0-0FA1AE05C340}.Release|Any CPU.Build.0 = Release|Any CPU + {BF6925D4-3E90-4530-995F-7879D5F303EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF6925D4-3E90-4530-995F-7879D5F303EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF6925D4-3E90-4530-995F-7879D5F303EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF6925D4-3E90-4530-995F-7879D5F303EB}.Release|Any CPU.Build.0 = Release|Any CPU + {29593DA3-C071-4001-82C1-B473203AD08C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29593DA3-C071-4001-82C1-B473203AD08C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29593DA3-C071-4001-82C1-B473203AD08C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29593DA3-C071-4001-82C1-B473203AD08C}.Release|Any CPU.Build.0 = Release|Any CPU + {28201266-9EA3-4B92-83C5-ADEC5608E27A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28201266-9EA3-4B92-83C5-ADEC5608E27A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28201266-9EA3-4B92-83C5-ADEC5608E27A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28201266-9EA3-4B92-83C5-ADEC5608E27A}.Release|Any CPU.Build.0 = Release|Any CPU + {E1E671BC-A82F-400A-9C93-ACB199A43BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1E671BC-A82F-400A-9C93-ACB199A43BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1E671BC-A82F-400A-9C93-ACB199A43BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1E671BC-A82F-400A-9C93-ACB199A43BDA}.Release|Any CPU.Build.0 = Release|Any CPU + {0B9499DE-C86E-4F3F-8F92-73DCC244A13B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B9499DE-C86E-4F3F-8F92-73DCC244A13B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B9499DE-C86E-4F3F-8F92-73DCC244A13B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B9499DE-C86E-4F3F-8F92-73DCC244A13B}.Release|Any CPU.Build.0 = Release|Any CPU + {91215EF1-A93A-4C77-81CA-4AFDBC41182C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91215EF1-A93A-4C77-81CA-4AFDBC41182C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91215EF1-A93A-4C77-81CA-4AFDBC41182C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91215EF1-A93A-4C77-81CA-4AFDBC41182C}.Release|Any CPU.Build.0 = Release|Any CPU + {CE278690-2333-49FC-8760-0BD967125E41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE278690-2333-49FC-8760-0BD967125E41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE278690-2333-49FC-8760-0BD967125E41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE278690-2333-49FC-8760-0BD967125E41}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {70FAC855-CAC6-4523-8477-880548D58A1B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D27FFA1F-B446-4D24-B60A-1F88385CDB6D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F80C478C-48EE-46A5-89C4-EE0CFB23A14F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7BC2D7E9-03C7-4577-A895-6EB91B6A7EA3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FB302CDD-C173-44F3-B0F3-C9C36248368E} + SolutionGuid = {7F4F25A0-74DA-46ED-BC2B-99607E973B0D} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.AccessControl/pkg/System.Security.AccessControl.pkgproj b/src/libraries/System.Security.AccessControl/pkg/System.Security.AccessControl.pkgproj index 8ad164b12e06..1ef45f103a6d 100644 --- a/src/libraries/System.Security.AccessControl/pkg/System.Security.AccessControl.pkgproj +++ b/src/libraries/System.Security.AccessControl/pkg/System.Security.AccessControl.pkgproj @@ -2,12 +2,8 @@ - net461;netcoreapp2.0;$(AllXamarinFrameworks) + net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks) - - runtimes/win/lib/uap10.0.16299 - - diff --git a/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj b/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj index d94b4a0b5a25..1273cc6c5d1c 100644 --- a/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +++ b/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj @@ -1,16 +1,16 @@ true - $(NetCoreAppCurrent)-windows;net461-windows;netcoreapp2.0-windows;netstandard2.0 + $(NetCoreAppCurrent)-windows;net461-windows;netstandard2.0-windows;netstandard2.0 true enable true - SR.PlatformNotSupported_AccessControl + SR.PlatformNotSupported_AccessControl - + @@ -67,8 +67,8 @@ Link="Common\Interop\Interop.OpenThreadToken_SafeTokenHandle.cs" /> - + - + diff --git a/src/libraries/System.Security.Claims/System.Security.Claims.sln b/src/libraries/System.Security.Claims/System.Security.Claims.sln index fedc4e90d104..c45d68be81c0 100644 --- a/src/libraries/System.Security.Claims/System.Security.Claims.sln +++ b/src/libraries/System.Security.Claims/System.Security.Claims.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims.Tests", "tests\System.Security.Claims.Tests.csproj", "{BE8B728D-86C1-406F-8F5F-6656EC486B01}" - ProjectSection(ProjectDependencies) = postProject - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52} = {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{74402B68-53BF-4B2F-BDEA-91F665E130D2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims", "src\System.Security.Claims.csproj", "{A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52}" - ProjectSection(ProjectDependencies) = postProject - {4372807C-BD21-476F-BCE2-3D192AC0B96C} = {4372807C-BD21-476F-BCE2-3D192AC0B96C} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{44A1B07B-B7F9-4686-AA94-7CBAE7C42C01}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims", "ref\System.Security.Claims.csproj", "{4372807C-BD21-476F-BCE2-3D192AC0B96C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{F46E0AB4-C56D-4E59-838C-B36E79F47B2D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{E594FAC1-435A-4E29-9BF3-334DC2E3628D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{30144836-40EF-4DF9-844E-B22C1003CD29}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims", "ref\System.Security.Claims.csproj", "{DBBE28DA-7239-4C32-8308-2A65C10410DE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{4DEC508A-B53D-4F0F-8017-BE78E88FEF14}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims", "src\System.Security.Claims.csproj", "{85FAD30C-2D0C-406D-9F3B-DB7236016CC5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Claims.Tests", "tests\System.Security.Claims.Tests.csproj", "{12F9C4AA-F238-42A1-9324-2C3CB643595B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F2F12708-F538-4B75-A12C-513288670FD7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9B53DE74-48BA-4C89-8169-68F564321B79}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {74402B68-53BF-4B2F-BDEA-91F665E130D2} = {F2F12708-F538-4B75-A12C-513288670FD7} + {12F9C4AA-F238-42A1-9324-2C3CB643595B} = {F2F12708-F538-4B75-A12C-513288670FD7} + {44A1B07B-B7F9-4686-AA94-7CBAE7C42C01} = {E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D} + {F46E0AB4-C56D-4E59-838C-B36E79F47B2D} = {E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D} + {30144836-40EF-4DF9-844E-B22C1003CD29} = {E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D} + {DBBE28DA-7239-4C32-8308-2A65C10410DE} = {E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D} + {5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8} = {E83130DD-BE8E-4CE3-ABAD-6837CE1FAB1D} + {E594FAC1-435A-4E29-9BF3-334DC2E3628D} = {9B53DE74-48BA-4C89-8169-68F564321B79} + {85FAD30C-2D0C-406D-9F3B-DB7236016CC5} = {9B53DE74-48BA-4C89-8169-68F564321B79} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BE8B728D-86C1-406F-8F5F-6656EC486B01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE8B728D-86C1-406F-8F5F-6656EC486B01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE8B728D-86C1-406F-8F5F-6656EC486B01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE8B728D-86C1-406F-8F5F-6656EC486B01}.Release|Any CPU.Build.0 = Release|Any CPU - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52}.Release|Any CPU.Build.0 = Release|Any CPU - {4372807C-BD21-476F-BCE2-3D192AC0B96C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4372807C-BD21-476F-BCE2-3D192AC0B96C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4372807C-BD21-476F-BCE2-3D192AC0B96C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4372807C-BD21-476F-BCE2-3D192AC0B96C}.Release|Any CPU.Build.0 = Release|Any CPU - {4DEC508A-B53D-4F0F-8017-BE78E88FEF14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4DEC508A-B53D-4F0F-8017-BE78E88FEF14}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4DEC508A-B53D-4F0F-8017-BE78E88FEF14}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4DEC508A-B53D-4F0F-8017-BE78E88FEF14}.Release|Any CPU.Build.0 = Release|Any CPU + {74402B68-53BF-4B2F-BDEA-91F665E130D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74402B68-53BF-4B2F-BDEA-91F665E130D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74402B68-53BF-4B2F-BDEA-91F665E130D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74402B68-53BF-4B2F-BDEA-91F665E130D2}.Release|Any CPU.Build.0 = Release|Any CPU + {44A1B07B-B7F9-4686-AA94-7CBAE7C42C01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44A1B07B-B7F9-4686-AA94-7CBAE7C42C01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44A1B07B-B7F9-4686-AA94-7CBAE7C42C01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44A1B07B-B7F9-4686-AA94-7CBAE7C42C01}.Release|Any CPU.Build.0 = Release|Any CPU + {F46E0AB4-C56D-4E59-838C-B36E79F47B2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F46E0AB4-C56D-4E59-838C-B36E79F47B2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F46E0AB4-C56D-4E59-838C-B36E79F47B2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F46E0AB4-C56D-4E59-838C-B36E79F47B2D}.Release|Any CPU.Build.0 = Release|Any CPU + {E594FAC1-435A-4E29-9BF3-334DC2E3628D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E594FAC1-435A-4E29-9BF3-334DC2E3628D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E594FAC1-435A-4E29-9BF3-334DC2E3628D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E594FAC1-435A-4E29-9BF3-334DC2E3628D}.Release|Any CPU.Build.0 = Release|Any CPU + {30144836-40EF-4DF9-844E-B22C1003CD29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30144836-40EF-4DF9-844E-B22C1003CD29}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30144836-40EF-4DF9-844E-B22C1003CD29}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30144836-40EF-4DF9-844E-B22C1003CD29}.Release|Any CPU.Build.0 = Release|Any CPU + {DBBE28DA-7239-4C32-8308-2A65C10410DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBBE28DA-7239-4C32-8308-2A65C10410DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBBE28DA-7239-4C32-8308-2A65C10410DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBBE28DA-7239-4C32-8308-2A65C10410DE}.Release|Any CPU.Build.0 = Release|Any CPU + {85FAD30C-2D0C-406D-9F3B-DB7236016CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85FAD30C-2D0C-406D-9F3B-DB7236016CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85FAD30C-2D0C-406D-9F3B-DB7236016CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85FAD30C-2D0C-406D-9F3B-DB7236016CC5}.Release|Any CPU.Build.0 = Release|Any CPU + {12F9C4AA-F238-42A1-9324-2C3CB643595B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F9C4AA-F238-42A1-9324-2C3CB643595B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F9C4AA-F238-42A1-9324-2C3CB643595B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F9C4AA-F238-42A1-9324-2C3CB643595B}.Release|Any CPU.Build.0 = Release|Any CPU + {5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5CFA6B5C-6C73-4ED8-BCF3-F9E26E13ACE8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BE8B728D-86C1-406F-8F5F-6656EC486B01} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {A70BEC0D-5A1C-4DA0-8A0F-69F3BF565D52} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {4372807C-BD21-476F-BCE2-3D192AC0B96C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {4DEC508A-B53D-4F0F-8017-BE78E88FEF14} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2951ABBC-F548-4A88-A600-8469ABF1E135} + SolutionGuid = {5C5ECBED-DFC4-4727-8DA2-68375AAB996B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Algorithms/System.Security.Cryptography.Algorithms.sln b/src/libraries/System.Security.Cryptography.Algorithms/System.Security.Cryptography.Algorithms.sln index c633dbf0affe..ffa1a551c7dc 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/System.Security.Cryptography.Algorithms.sln +++ b/src/libraries/System.Security.Cryptography.Algorithms/System.Security.Cryptography.Algorithms.sln @@ -1,60 +1,121 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms.Tests", "tests\System.Security.Cryptography.Algorithms.Tests.csproj", "{508A7D81-6462-459C-9F8F-B58FCCCFC8E7}" - ProjectSection(ProjectDependencies) = postProject - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9} = {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms", "src\System.Security.Cryptography.Algorithms.csproj", "{81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9}" - ProjectSection(ProjectDependencies) = postProject - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F} = {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms", "ref\System.Security.Cryptography.Algorithms.csproj", "{102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{AA21E963-CF6B-4474-81A6-D13279854954}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{11EF92B5-6C9B-4272-8360-F34A1109F831}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{520D79FA-3E30-48D7-84E9-67A8BF69ABA8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3F87192A-32C0-4D92-A28C-D104FB86CBFB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms", "ref\System.Security.Cryptography.Algorithms.csproj", "{64C0BC45-368B-44E6-9E04-2F7787CDF153}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms", "src\System.Security.Cryptography.Algorithms.csproj", "{4146BAB4-BA7C-405E-BEBC-9BE9826514BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Algorithms.Tests", "tests\System.Security.Cryptography.Algorithms.Tests.csproj", "{DD7260B7-A224-46EB-8CE6-94A4B22CB7CD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\ref\System.Security.Cryptography.Cng.csproj", "{DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\src\System.Security.Cryptography.Cng.csproj", "{3928EE57-D7D0-45B8-AACD-57DF67D7089A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "..\System.Security.Cryptography.Pkcs\ref\System.Security.Cryptography.Pkcs.csproj", "{5BD4A2ED-6203-41E2-9892-002BCC40B0C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "..\System.Security.Cryptography.Pkcs\src\System.Security.Cryptography.Pkcs.csproj", "{E5E427F0-D149-4992-AF31-F8616600E188}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0DB71748-BC54-496E-80C3-77BFA27E0C26}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{B5E268A4-3A93-4135-A0E9-CB216FC7A503}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0} = {0DB71748-BC54-496E-80C3-77BFA27E0C26} + {DD7260B7-A224-46EB-8CE6-94A4B22CB7CD} = {0DB71748-BC54-496E-80C3-77BFA27E0C26} + {7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {520D79FA-3E30-48D7-84E9-67A8BF69ABA8} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {64C0BC45-368B-44E6-9E04-2F7787CDF153} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {5BD4A2ED-6203-41E2-9892-002BCC40B0C8} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6} = {B5E268A4-3A93-4135-A0E9-CB216FC7A503} + {AA21E963-CF6B-4474-81A6-D13279854954} = {16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E} + {11EF92B5-6C9B-4272-8360-F34A1109F831} = {16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E} + {4146BAB4-BA7C-405E-BEBC-9BE9826514BA} = {16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E} + {3928EE57-D7D0-45B8-AACD-57DF67D7089A} = {16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E} + {E5E427F0-D149-4992-AF31-F8616600E188} = {16443C56-0A5D-4D36-9ACF-4A26D9BF5C8E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {508A7D81-6462-459C-9F8F-B58FCCCFC8E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {508A7D81-6462-459C-9F8F-B58FCCCFC8E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {508A7D81-6462-459C-9F8F-B58FCCCFC8E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {508A7D81-6462-459C-9F8F-B58FCCCFC8E7}.Release|Any CPU.Build.0 = Release|Any CPU - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9}.Release|Any CPU.Build.0 = Release|Any CPU - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F}.Release|Any CPU.Build.0 = Release|Any CPU - {3F87192A-32C0-4D92-A28C-D104FB86CBFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F87192A-32C0-4D92-A28C-D104FB86CBFB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F87192A-32C0-4D92-A28C-D104FB86CBFB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F87192A-32C0-4D92-A28C-D104FB86CBFB}.Release|Any CPU.Build.0 = Release|Any CPU + {E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E59CB8E0-D601-44F4-8A5E-6DC09F1A14C0}.Release|Any CPU.Build.0 = Release|Any CPU + {7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D8A3A8D-1D0B-48E3-AB03-F32EF60B2D9A}.Release|Any CPU.Build.0 = Release|Any CPU + {AA21E963-CF6B-4474-81A6-D13279854954}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA21E963-CF6B-4474-81A6-D13279854954}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA21E963-CF6B-4474-81A6-D13279854954}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA21E963-CF6B-4474-81A6-D13279854954}.Release|Any CPU.Build.0 = Release|Any CPU + {4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BC0C63E-CF17-4D38-8910-FE9FC4FB6E40}.Release|Any CPU.Build.0 = Release|Any CPU + {11EF92B5-6C9B-4272-8360-F34A1109F831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11EF92B5-6C9B-4272-8360-F34A1109F831}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11EF92B5-6C9B-4272-8360-F34A1109F831}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11EF92B5-6C9B-4272-8360-F34A1109F831}.Release|Any CPU.Build.0 = Release|Any CPU + {520D79FA-3E30-48D7-84E9-67A8BF69ABA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {520D79FA-3E30-48D7-84E9-67A8BF69ABA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {520D79FA-3E30-48D7-84E9-67A8BF69ABA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {520D79FA-3E30-48D7-84E9-67A8BF69ABA8}.Release|Any CPU.Build.0 = Release|Any CPU + {64C0BC45-368B-44E6-9E04-2F7787CDF153}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64C0BC45-368B-44E6-9E04-2F7787CDF153}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64C0BC45-368B-44E6-9E04-2F7787CDF153}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64C0BC45-368B-44E6-9E04-2F7787CDF153}.Release|Any CPU.Build.0 = Release|Any CPU + {4146BAB4-BA7C-405E-BEBC-9BE9826514BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4146BAB4-BA7C-405E-BEBC-9BE9826514BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4146BAB4-BA7C-405E-BEBC-9BE9826514BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4146BAB4-BA7C-405E-BEBC-9BE9826514BA}.Release|Any CPU.Build.0 = Release|Any CPU + {DD7260B7-A224-46EB-8CE6-94A4B22CB7CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD7260B7-A224-46EB-8CE6-94A4B22CB7CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD7260B7-A224-46EB-8CE6-94A4B22CB7CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD7260B7-A224-46EB-8CE6-94A4B22CB7CD}.Release|Any CPU.Build.0 = Release|Any CPU + {DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBCB0DE3-3BD7-4FE0-87E8-21FAD692B2AE}.Release|Any CPU.Build.0 = Release|Any CPU + {3928EE57-D7D0-45B8-AACD-57DF67D7089A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3928EE57-D7D0-45B8-AACD-57DF67D7089A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3928EE57-D7D0-45B8-AACD-57DF67D7089A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3928EE57-D7D0-45B8-AACD-57DF67D7089A}.Release|Any CPU.Build.0 = Release|Any CPU + {5BD4A2ED-6203-41E2-9892-002BCC40B0C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BD4A2ED-6203-41E2-9892-002BCC40B0C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BD4A2ED-6203-41E2-9892-002BCC40B0C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BD4A2ED-6203-41E2-9892-002BCC40B0C8}.Release|Any CPU.Build.0 = Release|Any CPU + {E5E427F0-D149-4992-AF31-F8616600E188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5E427F0-D149-4992-AF31-F8616600E188}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5E427F0-D149-4992-AF31-F8616600E188}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5E427F0-D149-4992-AF31-F8616600E188}.Release|Any CPU.Build.0 = Release|Any CPU + {9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CC71D46-5FAA-4CF2-BC86-A8BC89BFC4F6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {508A7D81-6462-459C-9F8F-B58FCCCFC8E7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {81A05E2E-E3AE-4246-B4E6-DD5F31FB71F9} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {102247C1-3DB9-4DB5-80B3-EE9F80DD4E8F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3F87192A-32C0-4D92-A28C-D104FB86CBFB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CC136687-FDBD-4E35-9849-99D64A0D816B} + SolutionGuid = {FBAD4B5E-6059-47BF-A909-9D20CE67E4E0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AesImplementation.Unix.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AesImplementation.Unix.cs index 1e4b413130dd..24dce8379f15 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AesImplementation.Unix.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AesImplementation.Unix.cs @@ -25,50 +25,29 @@ internal partial class AesImplementation return UniversalCryptoTransform.Create(paddingMode, cipher, encrypting); } - private static readonly Tuple>[] s_algorithmInitializers = - { - // Neither OpenSSL nor Cng Aes support CTS mode. - // second parameter is feedback size (required only for CFB). - - Tuple.Create(128, 0, CipherMode.CBC, (Func)Interop.Crypto.EvpAes128Cbc), - Tuple.Create(128, 0, CipherMode.ECB, (Func)Interop.Crypto.EvpAes128Ecb), - Tuple.Create(128, 8, CipherMode.CFB, (Func)Interop.Crypto.EvpAes128Cfb8), - Tuple.Create(128, 128, CipherMode.CFB, (Func)Interop.Crypto.EvpAes128Cfb128), - - Tuple.Create(192, 0, CipherMode.CBC, (Func)Interop.Crypto.EvpAes192Cbc), - Tuple.Create(192, 0, CipherMode.ECB, (Func)Interop.Crypto.EvpAes192Ecb), - Tuple.Create(192, 8, CipherMode.CFB, (Func)Interop.Crypto.EvpAes192Cfb8), - Tuple.Create(192, 128, CipherMode.CFB, (Func)Interop.Crypto.EvpAes192Cfb128), - - Tuple.Create(256, 0, CipherMode.CBC, (Func)Interop.Crypto.EvpAes256Cbc), - Tuple.Create(256, 0, CipherMode.ECB, (Func)Interop.Crypto.EvpAes256Ecb), - Tuple.Create(256, 8, CipherMode.CFB, (Func)Interop.Crypto.EvpAes256Cfb8), - Tuple.Create(256, 128, CipherMode.CFB, (Func)Interop.Crypto.EvpAes256Cfb128), - }; - - private static IntPtr GetAlgorithm(int keySize, int feedback, CipherMode cipherMode) - { - bool foundKeysize = false; - - foreach (var tuple in s_algorithmInitializers) - { - if (tuple.Item1 == keySize && (tuple.Item2 == 0 || tuple.Item2 == feedback) && tuple.Item3 == cipherMode) - { - return tuple.Item4(); - } - - if (tuple.Item1 == keySize) - { - foundKeysize = true; - } - } - - if (!foundKeysize) + private static IntPtr GetAlgorithm(int keySize, int feedback, CipherMode cipherMode) => + (keySize, cipherMode) switch { - throw new CryptographicException(SR.Cryptography_InvalidKeySize); - } - - throw new NotSupportedException(); - } + // Neither OpenSSL nor Cng Aes support CTS mode. + + (128, CipherMode.CBC) => Interop.Crypto.EvpAes128Cbc(), + (128, CipherMode.ECB) => Interop.Crypto.EvpAes128Ecb(), + (128, CipherMode.CFB) when feedback == 8 => Interop.Crypto.EvpAes128Cfb8(), + (128, CipherMode.CFB) when feedback == 128 => Interop.Crypto.EvpAes128Cfb128(), + + (192, CipherMode.CBC) => Interop.Crypto.EvpAes192Cbc(), + (192, CipherMode.ECB) => Interop.Crypto.EvpAes192Ecb(), + (192, CipherMode.CFB) when feedback == 8 => Interop.Crypto.EvpAes192Cfb8(), + (192, CipherMode.CFB) when feedback == 128 => Interop.Crypto.EvpAes192Cfb128(), + + (256, CipherMode.CBC) => Interop.Crypto.EvpAes256Cbc(), + (256, CipherMode.ECB) => Interop.Crypto.EvpAes256Ecb(), + (256, CipherMode.CFB) when feedback == 8 => Interop.Crypto.EvpAes256Cfb8(), + (256, CipherMode.CFB) when feedback == 128 => Interop.Crypto.EvpAes256Cfb128(), + + _ => throw (keySize == 128 || keySize == 192 || keySize == 256 ? (Exception) + new NotSupportedException() : + new CryptographicException(SR.Cryptography_InvalidKeySize)), + }; } } diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.Android.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.Android.cs deleted file mode 100644 index 4b579804fbe3..000000000000 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.Android.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Security.Cryptography; -using Microsoft.Win32.SafeHandles; - -namespace Internal.Cryptography -{ - internal static partial class HashProviderDispenser - { - public static HashProvider CreateHashProvider(string hashAlgorithmId) - { - switch (hashAlgorithmId) - { - case HashAlgorithmNames.SHA1: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA256: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA384: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA512: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.MD5: - return new NotImplementedHashProvider(); - } - throw new CryptographicException(SR.Format(SR.Cryptography_UnknownHashAlgorithm, hashAlgorithmId)); - } - - public static unsafe HashProvider CreateMacProvider(string hashAlgorithmId, ReadOnlySpan key) - { - switch (hashAlgorithmId) - { - case HashAlgorithmNames.SHA1: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA256: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA384: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.SHA512: - return new NotImplementedHashProvider(); - case HashAlgorithmNames.MD5: - return new NotImplementedHashProvider(); - } - throw new CryptographicException(SR.Format(SR.Cryptography_UnknownHashAlgorithm, hashAlgorithmId)); - } - - public static class OneShotHashProvider - { - public static int HashData(string hashAlgorithmId, ReadOnlySpan source, Span destination) - { - throw new NotImplementedException(); - } - } - - private sealed class NotImplementedHashProvider : HashProvider - { - public NotImplementedHashProvider() - { - } - - public override void AppendHashData(ReadOnlySpan data) - { - throw new NotImplementedException(); - } - - public override int FinalizeHashAndReset(Span destination) - { - throw new NotImplementedException(); - } - - public override int GetCurrentHash(Span destination) - { - throw new NotImplementedException(); - } - - public override int HashSizeInBytes => throw new NotImplementedException(); - - public override void Dispose(bool disposing) - { - } - } - } -} diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/SHAHashProvider.Browser.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/SHAHashProvider.Browser.cs index 9fd4ab1a4766..4515b8ae75c2 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/SHAHashProvider.Browser.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/SHAHashProvider.Browser.cs @@ -4,6 +4,7 @@ using System; using System.IO; using System.Diagnostics; +using System.Numerics; using System.Security.Cryptography; namespace Internal.Cryptography @@ -84,213 +85,186 @@ private abstract class SHAManagedImplementationBase public abstract byte[] HashFinal(); } - // ported from https://github.com/microsoft/referencesource/blob/a48449cb48a9a693903668a71449ac719b76867c/mscorlib/system/security/cryptography/sha1managed.cs + // Ported from src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs. + // n.b. It's ok to use a "non-secret purposes" hashing implementation here, as this is only + // used in wasm scenarios, and as of the current release we don't make any security guarantees + // about our crypto primitives in wasm environments. private class SHA1ManagedImplementation : SHAManagedImplementationBase { - private byte[] _buffer; - private long _count; // Number of bytes in the hashed message - private uint[] _stateSHA1; - private uint[] _expandedBuffer; + private Sha1ForNonSecretPurposes _state; // mutable struct - don't make readonly - public SHA1ManagedImplementation() + public override void Initialize() { - _stateSHA1 = new uint[5]; - _buffer = new byte[64]; - _expandedBuffer = new uint[80]; - - InitializeState(); + _state = default; + _state.Start(); } - public override void Initialize() + public override void HashCore(byte[] partIn, int ibStart, int cbSize) { - InitializeState(); - - // Zeroize potentially sensitive information. - Array.Clear(_buffer, 0, _buffer.Length); - Array.Clear(_expandedBuffer, 0, _expandedBuffer.Length); + _state.Append(partIn.AsSpan(ibStart, cbSize)); } - private void InitializeState() + public override byte[] HashFinal() { - _count = 0; - - _stateSHA1[0] = 0x67452301; - _stateSHA1[1] = 0xefcdab89; - _stateSHA1[2] = 0x98badcfe; - _stateSHA1[3] = 0x10325476; - _stateSHA1[4] = 0xc3d2e1f0; + byte[] output = new byte[20]; + _state.Finish(output); + return output; } - /* Copyright (C) RSA Data Security, Inc. created 1993. This is an - unpublished work protected as such under copyright law. This work - contains proprietary, confidential, and trade secret information of - RSA Data Security, Inc. Use, disclosure or reproduction without the - express written authorization of RSA Data Security, Inc. is - prohibited. - */ - - /* SHA block update operation. Continues an SHA message-digest - operation, processing another message block, and updating the - context. - */ - public override unsafe void HashCore(byte[] partIn, int ibStart, int cbSize) + /// + /// Implements the SHA1 hashing algorithm. Note that this + /// implementation is for hashing public information. Do not + /// use this code to hash private data, as this implementation does + /// not take any steps to avoid information disclosure. + /// + private struct Sha1ForNonSecretPurposes { - int bufferLen; - int partInLen = cbSize; - int partInBase = ibStart; - - /* Compute length of buffer */ - bufferLen = (int)(_count & 0x3f); - - /* Update number of bytes */ - _count += partInLen; + private long length; // Total message length in bits + private uint[] w; // Workspace + private int pos; // Length of current chunk in bytes + + /// + /// Call Start() to initialize the hash object. + /// + public void Start() + { + this.w ??= new uint[85]; + + this.length = 0; + this.pos = 0; + this.w[80] = 0x67452301; + this.w[81] = 0xEFCDAB89; + this.w[82] = 0x98BADCFE; + this.w[83] = 0x10325476; + this.w[84] = 0xC3D2E1F0; + } - fixed (uint* stateSHA1 = _stateSHA1) + /// + /// Adds an input byte to the hash. + /// + /// Data to include in the hash. + public void Append(byte input) { - fixed (byte* buffer = _buffer) + this.w[this.pos / 4] = (this.w[this.pos / 4] << 8) | input; + if (64 == ++this.pos) { - fixed (uint* expandedBuffer = _expandedBuffer) - { - if ((bufferLen > 0) && (bufferLen + partInLen >= 64)) - { - Buffer.BlockCopy(partIn, partInBase, _buffer, bufferLen, 64 - bufferLen); - partInBase += (64 - bufferLen); - partInLen -= (64 - bufferLen); - SHATransform(expandedBuffer, stateSHA1, buffer); - bufferLen = 0; - } - - /* Copy input to temporary buffer and hash */ - while (partInLen >= 64) - { - Buffer.BlockCopy(partIn, partInBase, _buffer, 0, 64); - partInBase += 64; - partInLen -= 64; - SHATransform(expandedBuffer, stateSHA1, buffer); - } - - if (partInLen > 0) - { - Buffer.BlockCopy(partIn, partInBase, _buffer, bufferLen, partInLen); - } - } + this.Drain(); } } - } - /* SHA finalization. Ends an SHA message-digest operation, writing - the message digest. - */ - public override byte[] HashFinal() - { - byte[] pad; - int padLen; - long bitCount; - byte[] hash = new byte[20]; - - /* Compute padding: 80 00 00 ... 00 00 - */ - - padLen = 64 - (int)(_count & 0x3f); - if (padLen <= 8) - padLen += 64; - - pad = new byte[padLen]; - pad[0] = 0x80; - - // Convert count to bit count - bitCount = _count * 8; - - pad[padLen - 8] = (byte)((bitCount >> 56) & 0xff); - pad[padLen - 7] = (byte)((bitCount >> 48) & 0xff); - pad[padLen - 6] = (byte)((bitCount >> 40) & 0xff); - pad[padLen - 5] = (byte)((bitCount >> 32) & 0xff); - pad[padLen - 4] = (byte)((bitCount >> 24) & 0xff); - pad[padLen - 3] = (byte)((bitCount >> 16) & 0xff); - pad[padLen - 2] = (byte)((bitCount >> 8) & 0xff); - pad[padLen - 1] = (byte)((bitCount >> 0) & 0xff); - - /* Digest padding */ - HashCore(pad, 0, pad.Length); - - /* Store digest */ - SHAUtils.DWORDToBigEndian(hash, _stateSHA1, 5); - - return hash; - } - - private unsafe void SHATransform(uint* expandedBuffer, uint* state, byte* block) - { - uint a = state[0]; - uint b = state[1]; - uint c = state[2]; - uint d = state[3]; - uint e = state[4]; - - int i; - - SHAUtils.DWORDFromBigEndian(expandedBuffer, 16, block); - SHAExpand(expandedBuffer); - - /* Round 1 */ - for (i = 0; i < 20; i += 5) + /// + /// Adds input bytes to the hash. + /// + /// + /// Data to include in the hash. Must not be null. + /// + public void Append(ReadOnlySpan input) { - { (e) += (((((a)) << (5)) | (((a)) >> (32 - (5)))) + ((d) ^ ((b) & ((c) ^ (d)))) + (expandedBuffer[i]) + 0x5a827999); (b) = ((((b)) << (30)) | (((b)) >> (32 - (30)))); } - { (d) += (((((e)) << (5)) | (((e)) >> (32 - (5)))) + ((c) ^ ((a) & ((b) ^ (c)))) + (expandedBuffer[i + 1]) + 0x5a827999); (a) = ((((a)) << (30)) | (((a)) >> (32 - (30)))); } - { (c) += (((((d)) << (5)) | (((d)) >> (32 - (5)))) + ((b) ^ ((e) & ((a) ^ (b)))) + (expandedBuffer[i + 2]) + 0x5a827999); (e) = ((((e)) << (30)) | (((e)) >> (32 - (30)))); }; ; - { (b) += (((((c)) << (5)) | (((c)) >> (32 - (5)))) + ((a) ^ ((d) & ((e) ^ (a)))) + (expandedBuffer[i + 3]) + 0x5a827999); (d) = ((((d)) << (30)) | (((d)) >> (32 - (30)))); }; ; - { (a) += (((((b)) << (5)) | (((b)) >> (32 - (5)))) + ((e) ^ ((c) & ((d) ^ (e)))) + (expandedBuffer[i + 4]) + 0x5a827999); (c) = ((((c)) << (30)) | (((c)) >> (32 - (30)))); }; ; + foreach (byte b in input) + { + this.Append(b); + } } - /* Round 2 */ - for (; i < 40; i += 5) + /// + /// Retrieves the hash value. + /// Note that after calling this function, the hash object should + /// be considered uninitialized. Subsequent calls to Append or + /// Finish will produce useless results. Call Start() to + /// reinitialize. + /// + /// + /// Buffer to receive the hash value. Must not be null. + /// Up to 20 bytes of hash will be written to the output buffer. + /// If the buffer is smaller than 20 bytes, the remaining hash + /// bytes will be lost. If the buffer is larger than 20 bytes, the + /// rest of the buffer is left unmodified. + /// + public void Finish(byte[] output) { - { (e) += (((((a)) << (5)) | (((a)) >> (32 - (5)))) + ((b) ^ (c) ^ (d)) + (expandedBuffer[i]) + 0x6ed9eba1); (b) = ((((b)) << (30)) | (((b)) >> (32 - (30)))); }; ; - { (d) += (((((e)) << (5)) | (((e)) >> (32 - (5)))) + ((a) ^ (b) ^ (c)) + (expandedBuffer[i + 1]) + 0x6ed9eba1); (a) = ((((a)) << (30)) | (((a)) >> (32 - (30)))); }; ; - { (c) += (((((d)) << (5)) | (((d)) >> (32 - (5)))) + ((e) ^ (a) ^ (b)) + (expandedBuffer[i + 2]) + 0x6ed9eba1); (e) = ((((e)) << (30)) | (((e)) >> (32 - (30)))); }; ; - { (b) += (((((c)) << (5)) | (((c)) >> (32 - (5)))) + ((d) ^ (e) ^ (a)) + (expandedBuffer[i + 3]) + 0x6ed9eba1); (d) = ((((d)) << (30)) | (((d)) >> (32 - (30)))); }; ; - { (a) += (((((b)) << (5)) | (((b)) >> (32 - (5)))) + ((c) ^ (d) ^ (e)) + (expandedBuffer[i + 4]) + 0x6ed9eba1); (c) = ((((c)) << (30)) | (((c)) >> (32 - (30)))); }; ; - } + long l = this.length + 8 * this.pos; + this.Append(0x80); + while (this.pos != 56) + { + this.Append(0x00); + } - /* Round 3 */ - for (; i < 60; i += 5) - { - { (e) += (((((a)) << (5)) | (((a)) >> (32 - (5)))) + (((b) & (c)) | ((d) & ((b) | (c)))) + (expandedBuffer[i]) + 0x8f1bbcdc); (b) = ((((b)) << (30)) | (((b)) >> (32 - (30)))); }; ; - { (d) += (((((e)) << (5)) | (((e)) >> (32 - (5)))) + (((a) & (b)) | ((c) & ((a) | (b)))) + (expandedBuffer[i + 1]) + 0x8f1bbcdc); (a) = ((((a)) << (30)) | (((a)) >> (32 - (30)))); }; ; - { (c) += (((((d)) << (5)) | (((d)) >> (32 - (5)))) + (((e) & (a)) | ((b) & ((e) | (a)))) + (expandedBuffer[i + 2]) + 0x8f1bbcdc); (e) = ((((e)) << (30)) | (((e)) >> (32 - (30)))); }; ; - { (b) += (((((c)) << (5)) | (((c)) >> (32 - (5)))) + (((d) & (e)) | ((a) & ((d) | (e)))) + (expandedBuffer[i + 3]) + 0x8f1bbcdc); (d) = ((((d)) << (30)) | (((d)) >> (32 - (30)))); }; ; - { (a) += (((((b)) << (5)) | (((b)) >> (32 - (5)))) + (((c) & (d)) | ((e) & ((c) | (d)))) + (expandedBuffer[i + 4]) + 0x8f1bbcdc); (c) = ((((c)) << (30)) | (((c)) >> (32 - (30)))); }; ; + unchecked + { + this.Append((byte)(l >> 56)); + this.Append((byte)(l >> 48)); + this.Append((byte)(l >> 40)); + this.Append((byte)(l >> 32)); + this.Append((byte)(l >> 24)); + this.Append((byte)(l >> 16)); + this.Append((byte)(l >> 8)); + this.Append((byte)l); + + int end = output.Length < 20 ? output.Length : 20; + for (int i = 0; i != end; i++) + { + uint temp = this.w[80 + i / 4]; + output[i] = (byte)(temp >> 24); + this.w[80 + i / 4] = temp << 8; + } + } } - /* Round 4 */ - for (; i < 80; i += 5) + /// + /// Called when this.pos reaches 64. + /// + private void Drain() { - { (e) += (((((a)) << (5)) | (((a)) >> (32 - (5)))) + ((b) ^ (c) ^ (d)) + (expandedBuffer[i]) + 0xca62c1d6); (b) = ((((b)) << (30)) | (((b)) >> (32 - (30)))); }; ; - { (d) += (((((e)) << (5)) | (((e)) >> (32 - (5)))) + ((a) ^ (b) ^ (c)) + (expandedBuffer[i + 1]) + 0xca62c1d6); (a) = ((((a)) << (30)) | (((a)) >> (32 - (30)))); }; ; - { (c) += (((((d)) << (5)) | (((d)) >> (32 - (5)))) + ((e) ^ (a) ^ (b)) + (expandedBuffer[i + 2]) + 0xca62c1d6); (e) = ((((e)) << (30)) | (((e)) >> (32 - (30)))); }; ; - { (b) += (((((c)) << (5)) | (((c)) >> (32 - (5)))) + ((d) ^ (e) ^ (a)) + (expandedBuffer[i + 3]) + 0xca62c1d6); (d) = ((((d)) << (30)) | (((d)) >> (32 - (30)))); }; ; - { (a) += (((((b)) << (5)) | (((b)) >> (32 - (5)))) + ((c) ^ (d) ^ (e)) + (expandedBuffer[i + 4]) + 0xca62c1d6); (c) = ((((c)) << (30)) | (((c)) >> (32 - (30)))); }; ; - } + for (int i = 16; i != 80; i++) + { + this.w[i] = BitOperations.RotateLeft(this.w[i - 3] ^ this.w[i - 8] ^ this.w[i - 14] ^ this.w[i - 16], 1); + } - state[0] += a; - state[1] += b; - state[2] += c; - state[3] += d; - state[4] += e; - } + unchecked + { + uint a = this.w[80]; + uint b = this.w[81]; + uint c = this.w[82]; + uint d = this.w[83]; + uint e = this.w[84]; - /* Expands x[0..15] into x[16..79], according to the recurrence - x[i] = x[i-3] ^ x[i-8] ^ x[i-14] ^ x[i-16]. - */ - private unsafe void SHAExpand(uint* x) - { - int i; - uint tmp; + for (int i = 0; i != 20; i++) + { + const uint k = 0x5A827999; + uint f = (b & c) | ((~b) & d); + uint temp = BitOperations.RotateLeft(a, 5) + f + e + k + this.w[i]; e = d; d = c; c = BitOperations.RotateLeft(b, 30); b = a; a = temp; + } - for (i = 16; i < 80; i++) - { - tmp = (x[i - 3] ^ x[i - 8] ^ x[i - 14] ^ x[i - 16]); - x[i] = ((tmp << 1) | (tmp >> 31)); + for (int i = 20; i != 40; i++) + { + uint f = b ^ c ^ d; + const uint k = 0x6ED9EBA1; + uint temp = BitOperations.RotateLeft(a, 5) + f + e + k + this.w[i]; e = d; d = c; c = BitOperations.RotateLeft(b, 30); b = a; a = temp; + } + + for (int i = 40; i != 60; i++) + { + uint f = (b & c) | (b & d) | (c & d); + const uint k = 0x8F1BBCDC; + uint temp = BitOperations.RotateLeft(a, 5) + f + e + k + this.w[i]; e = d; d = c; c = BitOperations.RotateLeft(b, 30); b = a; a = temp; + } + + for (int i = 60; i != 80; i++) + { + uint f = b ^ c ^ d; + const uint k = 0xCA62C1D6; + uint temp = BitOperations.RotateLeft(a, 5) + f + e + k + this.w[i]; e = d; d = c; c = BitOperations.RotateLeft(b, 30); b = a; a = temp; + } + + this.w[80] += a; + this.w[81] += b; + this.w[82] += c; + this.w[83] += d; + this.w[84] += e; + } + + this.length += 512; // 64 bytes == 512 bits + this.pos = 0; } } } diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj index 2c53e1d74031..b492b5474b83 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj @@ -487,8 +487,7 @@ Link="Common\System\Security\Cryptography\RSAOpenSsl.cs" /> - - + diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/Rfc2898DeriveBytes.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/Rfc2898DeriveBytes.cs index 395a42352f88..b6e615e2b880 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/Rfc2898DeriveBytes.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/Rfc2898DeriveBytes.cs @@ -27,6 +27,9 @@ public class Rfc2898DeriveBytes : DeriveBytes private int _startIndex; private int _endIndex; + /// + /// Gets the hash algorithm used for byte derivation. + /// public HashAlgorithmName HashAlgorithm { get; } public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations) diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/XmlKeyHelper.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/XmlKeyHelper.cs index b810f22935f5..be6c871a1b6c 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/XmlKeyHelper.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/XmlKeyHelper.cs @@ -277,7 +277,7 @@ private static class Functions "Elements", BindingFlags.Instance | BindingFlags.Public, null, - Array.Empty(), + Type.EmptyTypes, null)!; private static readonly PropertyInfo s_elementNameProperty = s_docRootProperty.PropertyType.GetProperty("Name")!; private static readonly PropertyInfo s_nameNameProperty = s_elementNameProperty.PropertyType.GetProperty("LocalName")!; diff --git a/src/libraries/System.Security.Cryptography.Cng/System.Security.Cryptography.Cng.sln b/src/libraries/System.Security.Cryptography.Cng/System.Security.Cryptography.Cng.sln index 01c6e1196e81..421b6eda9975 100644 --- a/src/libraries/System.Security.Cryptography.Cng/System.Security.Cryptography.Cng.sln +++ b/src/libraries/System.Security.Cryptography.Cng/System.Security.Cryptography.Cng.sln @@ -1,60 +1,100 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng.Tests", "tests\System.Security.Cryptography.Cng.Tests.csproj", "{FF53459F-66F7-4F00-8D36-DF440CE18419}" - ProjectSection(ProjectDependencies) = postProject - {4C1BD451-6A99-45E7-9339-79C77C42EE9E} = {4C1BD451-6A99-45E7-9339-79C77C42EE9E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7FAF92EB-F974-4279-8ED4-431ADAF3584C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "src\System.Security.Cryptography.Cng.csproj", "{4C1BD451-6A99-45E7-9339-79C77C42EE9E}" - ProjectSection(ProjectDependencies) = postProject - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD} = {9FD12550-3A7C-49D3-9A1E-C4B7410989DD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{9A827563-B3C5-453F-B3BD-494283E21AC3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "ref\System.Security.Cryptography.Cng.csproj", "{9FD12550-3A7C-49D3-9A1E-C4B7410989DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{28FC516D-19C2-43C6-BCBE-10273185673D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{866AEC4B-C3DE-4F2C-B6E9-7628856FA078}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{39FEA352-F1A3-48AC-89FE-79E976218AC1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{38FDD4FD-E839-4FE1-882D-CC8E4CA89A55}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2E55E921-96F9-409F-8C35-9822C7479E18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "ref\System.Security.Cryptography.Cng.csproj", "{B88D8B7E-7682-4F23-82AF-DF186BDD3255}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "src\System.Security.Cryptography.Cng.csproj", "{4BAA22AA-6F42-4C31-8CCF-256F30A26228}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng.Tests", "tests\System.Security.Cryptography.Cng.Tests.csproj", "{4DCE069F-1F04-45F7-AA64-CE095F9DA385}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{929388A9-0224-4FF8-867A-267E47A03311}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C60E2EAD-5AE6-4E89-9681-9C14CC90475A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2007BD8D-00ED-4E8C-8883-DC4B8351F2DA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C74E4669-E94E-4C31-8ECA-2CBFDF568A4F}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {7FAF92EB-F974-4279-8ED4-431ADAF3584C} = {C60E2EAD-5AE6-4E89-9681-9C14CC90475A} + {4DCE069F-1F04-45F7-AA64-CE095F9DA385} = {C60E2EAD-5AE6-4E89-9681-9C14CC90475A} + {9A827563-B3C5-453F-B3BD-494283E21AC3} = {2007BD8D-00ED-4E8C-8883-DC4B8351F2DA} + {866AEC4B-C3DE-4F2C-B6E9-7628856FA078} = {2007BD8D-00ED-4E8C-8883-DC4B8351F2DA} + {38FDD4FD-E839-4FE1-882D-CC8E4CA89A55} = {2007BD8D-00ED-4E8C-8883-DC4B8351F2DA} + {B88D8B7E-7682-4F23-82AF-DF186BDD3255} = {2007BD8D-00ED-4E8C-8883-DC4B8351F2DA} + {D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D} = {2007BD8D-00ED-4E8C-8883-DC4B8351F2DA} + {28FC516D-19C2-43C6-BCBE-10273185673D} = {C74E4669-E94E-4C31-8ECA-2CBFDF568A4F} + {39FEA352-F1A3-48AC-89FE-79E976218AC1} = {C74E4669-E94E-4C31-8ECA-2CBFDF568A4F} + {4BAA22AA-6F42-4C31-8CCF-256F30A26228} = {C74E4669-E94E-4C31-8ECA-2CBFDF568A4F} + {929388A9-0224-4FF8-867A-267E47A03311} = {C74E4669-E94E-4C31-8ECA-2CBFDF568A4F} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FF53459F-66F7-4F00-8D36-DF440CE18419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FF53459F-66F7-4F00-8D36-DF440CE18419}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FF53459F-66F7-4F00-8D36-DF440CE18419}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FF53459F-66F7-4F00-8D36-DF440CE18419}.Release|Any CPU.Build.0 = Release|Any CPU - {4C1BD451-6A99-45E7-9339-79C77C42EE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C1BD451-6A99-45E7-9339-79C77C42EE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C1BD451-6A99-45E7-9339-79C77C42EE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C1BD451-6A99-45E7-9339-79C77C42EE9E}.Release|Any CPU.Build.0 = Release|Any CPU - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD}.Release|Any CPU.Build.0 = Release|Any CPU - {2E55E921-96F9-409F-8C35-9822C7479E18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E55E921-96F9-409F-8C35-9822C7479E18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E55E921-96F9-409F-8C35-9822C7479E18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E55E921-96F9-409F-8C35-9822C7479E18}.Release|Any CPU.Build.0 = Release|Any CPU + {7FAF92EB-F974-4279-8ED4-431ADAF3584C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FAF92EB-F974-4279-8ED4-431ADAF3584C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FAF92EB-F974-4279-8ED4-431ADAF3584C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FAF92EB-F974-4279-8ED4-431ADAF3584C}.Release|Any CPU.Build.0 = Release|Any CPU + {9A827563-B3C5-453F-B3BD-494283E21AC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A827563-B3C5-453F-B3BD-494283E21AC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A827563-B3C5-453F-B3BD-494283E21AC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A827563-B3C5-453F-B3BD-494283E21AC3}.Release|Any CPU.Build.0 = Release|Any CPU + {28FC516D-19C2-43C6-BCBE-10273185673D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FC516D-19C2-43C6-BCBE-10273185673D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FC516D-19C2-43C6-BCBE-10273185673D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FC516D-19C2-43C6-BCBE-10273185673D}.Release|Any CPU.Build.0 = Release|Any CPU + {866AEC4B-C3DE-4F2C-B6E9-7628856FA078}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {866AEC4B-C3DE-4F2C-B6E9-7628856FA078}.Debug|Any CPU.Build.0 = Debug|Any CPU + {866AEC4B-C3DE-4F2C-B6E9-7628856FA078}.Release|Any CPU.ActiveCfg = Release|Any CPU + {866AEC4B-C3DE-4F2C-B6E9-7628856FA078}.Release|Any CPU.Build.0 = Release|Any CPU + {39FEA352-F1A3-48AC-89FE-79E976218AC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39FEA352-F1A3-48AC-89FE-79E976218AC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39FEA352-F1A3-48AC-89FE-79E976218AC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39FEA352-F1A3-48AC-89FE-79E976218AC1}.Release|Any CPU.Build.0 = Release|Any CPU + {38FDD4FD-E839-4FE1-882D-CC8E4CA89A55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38FDD4FD-E839-4FE1-882D-CC8E4CA89A55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38FDD4FD-E839-4FE1-882D-CC8E4CA89A55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38FDD4FD-E839-4FE1-882D-CC8E4CA89A55}.Release|Any CPU.Build.0 = Release|Any CPU + {B88D8B7E-7682-4F23-82AF-DF186BDD3255}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B88D8B7E-7682-4F23-82AF-DF186BDD3255}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B88D8B7E-7682-4F23-82AF-DF186BDD3255}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B88D8B7E-7682-4F23-82AF-DF186BDD3255}.Release|Any CPU.Build.0 = Release|Any CPU + {4BAA22AA-6F42-4C31-8CCF-256F30A26228}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BAA22AA-6F42-4C31-8CCF-256F30A26228}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BAA22AA-6F42-4C31-8CCF-256F30A26228}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BAA22AA-6F42-4C31-8CCF-256F30A26228}.Release|Any CPU.Build.0 = Release|Any CPU + {4DCE069F-1F04-45F7-AA64-CE095F9DA385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DCE069F-1F04-45F7-AA64-CE095F9DA385}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DCE069F-1F04-45F7-AA64-CE095F9DA385}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DCE069F-1F04-45F7-AA64-CE095F9DA385}.Release|Any CPU.Build.0 = Release|Any CPU + {D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2F806E8-EDDF-4F60-8CB1-0D9AD0F49D5D}.Release|Any CPU.Build.0 = Release|Any CPU + {929388A9-0224-4FF8-867A-267E47A03311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {929388A9-0224-4FF8-867A-267E47A03311}.Debug|Any CPU.Build.0 = Debug|Any CPU + {929388A9-0224-4FF8-867A-267E47A03311}.Release|Any CPU.ActiveCfg = Release|Any CPU + {929388A9-0224-4FF8-867A-267E47A03311}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {FF53459F-66F7-4F00-8D36-DF440CE18419} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4C1BD451-6A99-45E7-9339-79C77C42EE9E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {9FD12550-3A7C-49D3-9A1E-C4B7410989DD} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {2E55E921-96F9-409F-8C35-9822C7479E18} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {946D0BC8-AC86-4941-8E28-FC386E071E93} + SolutionGuid = {219CF3E9-50CB-43C5-99B4-9F8B23255A31} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Csp/System.Security.Cryptography.Csp.sln b/src/libraries/System.Security.Cryptography.Csp/System.Security.Cryptography.Csp.sln index caaf0c477141..5d0e46e5d5d8 100644 --- a/src/libraries/System.Security.Cryptography.Csp/System.Security.Cryptography.Csp.sln +++ b/src/libraries/System.Security.Cryptography.Csp/System.Security.Cryptography.Csp.sln @@ -1,60 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp.Tests", "tests\System.Security.Cryptography.Csp.Tests.csproj", "{A05C2EF2-A986-448C-9C63-735CC17409AA}" - ProjectSection(ProjectDependencies) = postProject - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E} = {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{CC4119F0-EEF6-4443-A3BD-D21063991D8B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp", "src\System.Security.Cryptography.Csp.csproj", "{3B7F91D7-0677-40CA-B4E7-D4E09D89A74E}" - ProjectSection(ProjectDependencies) = postProject - {FD10679A-8C98-42E6-B7E5-9424E5443912} = {FD10679A-8C98-42E6-B7E5-9424E5443912} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{FA8817A5-58CA-4FAE-9858-D5C3FD560D28}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp", "ref\System.Security.Cryptography.Csp.csproj", "{FD10679A-8C98-42E6-B7E5-9424E5443912}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{DA82AA17-5946-4454-B22E-11B3FC3F8D5C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{441BBB8B-D6D7-4518-83B6-687AFC2C6202}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{92E54CF3-47BF-4ABE-88FE-BE014A056C57}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{3A088210-D888-4407-801D-D4E9BDE42093}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\ref\System.Security.Cryptography.Cng.csproj", "{15F36B80-D084-471C-BF74-02841609486B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\src\System.Security.Cryptography.Cng.csproj", "{3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp", "ref\System.Security.Cryptography.Csp.csproj", "{D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp", "src\System.Security.Cryptography.Csp.csproj", "{153000A6-96D2-4E0D-8E34-13B85E8ECACD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Csp.Tests", "tests\System.Security.Cryptography.Csp.Tests.csproj", "{9136AFBB-5173-4AD7-AD77-641E1EB8506C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{20628BA2-00CC-40F8-B319-7148ABB08896}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{87939B92-73C7-41D5-AFB0-44B5B717C4E9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E8101C8F-FFDA-4997-8E8A-B9C77F3FE008}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E14C02BE-9BFD-4C28-88C4-3A00571D6AEE}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {CC4119F0-EEF6-4443-A3BD-D21063991D8B} = {87939B92-73C7-41D5-AFB0-44B5B717C4E9} + {9136AFBB-5173-4AD7-AD77-641E1EB8506C} = {87939B92-73C7-41D5-AFB0-44B5B717C4E9} + {FA8817A5-58CA-4FAE-9858-D5C3FD560D28} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {92E54CF3-47BF-4ABE-88FE-BE014A056C57} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {15F36B80-D084-471C-BF74-02841609486B} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {20628BA2-00CC-40F8-B319-7148ABB08896} = {E8101C8F-FFDA-4997-8E8A-B9C77F3FE008} + {DA82AA17-5946-4454-B22E-11B3FC3F8D5C} = {E14C02BE-9BFD-4C28-88C4-3A00571D6AEE} + {441BBB8B-D6D7-4518-83B6-687AFC2C6202} = {E14C02BE-9BFD-4C28-88C4-3A00571D6AEE} + {3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10} = {E14C02BE-9BFD-4C28-88C4-3A00571D6AEE} + {153000A6-96D2-4E0D-8E34-13B85E8ECACD} = {E14C02BE-9BFD-4C28-88C4-3A00571D6AEE} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A05C2EF2-A986-448C-9C63-735CC17409AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A05C2EF2-A986-448C-9C63-735CC17409AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A05C2EF2-A986-448C-9C63-735CC17409AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A05C2EF2-A986-448C-9C63-735CC17409AA}.Release|Any CPU.Build.0 = Release|Any CPU - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E}.Release|Any CPU.Build.0 = Release|Any CPU - {FD10679A-8C98-42E6-B7E5-9424E5443912}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD10679A-8C98-42E6-B7E5-9424E5443912}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD10679A-8C98-42E6-B7E5-9424E5443912}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD10679A-8C98-42E6-B7E5-9424E5443912}.Release|Any CPU.Build.0 = Release|Any CPU - {3A088210-D888-4407-801D-D4E9BDE42093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A088210-D888-4407-801D-D4E9BDE42093}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A088210-D888-4407-801D-D4E9BDE42093}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A088210-D888-4407-801D-D4E9BDE42093}.Release|Any CPU.Build.0 = Release|Any CPU + {CC4119F0-EEF6-4443-A3BD-D21063991D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC4119F0-EEF6-4443-A3BD-D21063991D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC4119F0-EEF6-4443-A3BD-D21063991D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC4119F0-EEF6-4443-A3BD-D21063991D8B}.Release|Any CPU.Build.0 = Release|Any CPU + {FA8817A5-58CA-4FAE-9858-D5C3FD560D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA8817A5-58CA-4FAE-9858-D5C3FD560D28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA8817A5-58CA-4FAE-9858-D5C3FD560D28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA8817A5-58CA-4FAE-9858-D5C3FD560D28}.Release|Any CPU.Build.0 = Release|Any CPU + {DA82AA17-5946-4454-B22E-11B3FC3F8D5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA82AA17-5946-4454-B22E-11B3FC3F8D5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA82AA17-5946-4454-B22E-11B3FC3F8D5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA82AA17-5946-4454-B22E-11B3FC3F8D5C}.Release|Any CPU.Build.0 = Release|Any CPU + {3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A94D2A7-DE56-4BDD-AFE4-5B936DE176BF}.Release|Any CPU.Build.0 = Release|Any CPU + {441BBB8B-D6D7-4518-83B6-687AFC2C6202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {441BBB8B-D6D7-4518-83B6-687AFC2C6202}.Debug|Any CPU.Build.0 = Debug|Any CPU + {441BBB8B-D6D7-4518-83B6-687AFC2C6202}.Release|Any CPU.ActiveCfg = Release|Any CPU + {441BBB8B-D6D7-4518-83B6-687AFC2C6202}.Release|Any CPU.Build.0 = Release|Any CPU + {92E54CF3-47BF-4ABE-88FE-BE014A056C57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92E54CF3-47BF-4ABE-88FE-BE014A056C57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92E54CF3-47BF-4ABE-88FE-BE014A056C57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92E54CF3-47BF-4ABE-88FE-BE014A056C57}.Release|Any CPU.Build.0 = Release|Any CPU + {15F36B80-D084-471C-BF74-02841609486B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15F36B80-D084-471C-BF74-02841609486B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15F36B80-D084-471C-BF74-02841609486B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15F36B80-D084-471C-BF74-02841609486B}.Release|Any CPU.Build.0 = Release|Any CPU + {3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CA5ECAF-C3E1-48F2-905F-BFEE4E164E10}.Release|Any CPU.Build.0 = Release|Any CPU + {D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D960CDE1-79C4-46A5-A0E3-3F49AB63DEF9}.Release|Any CPU.Build.0 = Release|Any CPU + {153000A6-96D2-4E0D-8E34-13B85E8ECACD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {153000A6-96D2-4E0D-8E34-13B85E8ECACD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {153000A6-96D2-4E0D-8E34-13B85E8ECACD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {153000A6-96D2-4E0D-8E34-13B85E8ECACD}.Release|Any CPU.Build.0 = Release|Any CPU + {9136AFBB-5173-4AD7-AD77-641E1EB8506C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9136AFBB-5173-4AD7-AD77-641E1EB8506C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9136AFBB-5173-4AD7-AD77-641E1EB8506C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9136AFBB-5173-4AD7-AD77-641E1EB8506C}.Release|Any CPU.Build.0 = Release|Any CPU + {20628BA2-00CC-40F8-B319-7148ABB08896}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20628BA2-00CC-40F8-B319-7148ABB08896}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20628BA2-00CC-40F8-B319-7148ABB08896}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20628BA2-00CC-40F8-B319-7148ABB08896}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A05C2EF2-A986-448C-9C63-735CC17409AA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {3B7F91D7-0677-40CA-B4E7-D4E09D89A74E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {FD10679A-8C98-42E6-B7E5-9424E5443912} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {3A088210-D888-4407-801D-D4E9BDE42093} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {70B17739-0EEC-4B73-833E-E52683B5AEFF} + SolutionGuid = {C1FD6721-0F7E-4ACC-8409-4E518EA1C98A} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.sln b/src/libraries/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.sln index 6aa9876e49a3..2ff5160f9785 100644 --- a/src/libraries/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.sln +++ b/src/libraries/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding.Tests", "tests\System.Security.Cryptography.Encoding.Tests.csproj", "{0581E9FA-D639-4B88-96D8-D092760F90B0}" - ProjectSection(ProjectDependencies) = postProject - {AA81E343-5E54-40B0-9381-C459419BE780} = {AA81E343-5E54-40B0-9381-C459419BE780} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{201E9083-CCA0-4AA8-A2B2-B37AC13481E3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding", "src\System.Security.Cryptography.Encoding.csproj", "{AA81E343-5E54-40B0-9381-C459419BE780}" - ProjectSection(ProjectDependencies) = postProject - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD} = {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{6AFF6FDE-7B13-45B3-A492-C0DCA58E9004}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding", "ref\System.Security.Cryptography.Encoding.csproj", "{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A428E072-E4DD-4F64-AFE3-DC9FC8D5563D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{43B33B0D-4009-4838-B9F4-E5308C1827F7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{A7225A2D-C36C-473F-BD46-001A4CD836EE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding", "ref\System.Security.Cryptography.Encoding.csproj", "{465CB04B-D2D8-4E64-BA6D-571BE95391B4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{8EA82BA5-5634-410C-8D76-8065D666F4F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding", "src\System.Security.Cryptography.Encoding.csproj", "{4B1D276E-6576-4F42-9F38-C91C95437F20}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Encoding.Tests", "tests\System.Security.Cryptography.Encoding.Tests.csproj", "{8A8D5FD7-557E-42EF-AA8A-5453E82574F2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A73E4863-4F96-46E3-AF1B-3631C71A509D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{91CBF5BD-DA49-4787-975B-A49BC30CB6B0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFACE727-34FE-4680-900D-9556A46832F8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {201E9083-CCA0-4AA8-A2B2-B37AC13481E3} = {A73E4863-4F96-46E3-AF1B-3631C71A509D} + {8A8D5FD7-557E-42EF-AA8A-5453E82574F2} = {A73E4863-4F96-46E3-AF1B-3631C71A509D} + {6AFF6FDE-7B13-45B3-A492-C0DCA58E9004} = {91CBF5BD-DA49-4787-975B-A49BC30CB6B0} + {A428E072-E4DD-4F64-AFE3-DC9FC8D5563D} = {91CBF5BD-DA49-4787-975B-A49BC30CB6B0} + {A7225A2D-C36C-473F-BD46-001A4CD836EE} = {91CBF5BD-DA49-4787-975B-A49BC30CB6B0} + {465CB04B-D2D8-4E64-BA6D-571BE95391B4} = {91CBF5BD-DA49-4787-975B-A49BC30CB6B0} + {FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500} = {91CBF5BD-DA49-4787-975B-A49BC30CB6B0} + {43B33B0D-4009-4838-B9F4-E5308C1827F7} = {AFACE727-34FE-4680-900D-9556A46832F8} + {4B1D276E-6576-4F42-9F38-C91C95437F20} = {AFACE727-34FE-4680-900D-9556A46832F8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0581E9FA-D639-4B88-96D8-D092760F90B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0581E9FA-D639-4B88-96D8-D092760F90B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0581E9FA-D639-4B88-96D8-D092760F90B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0581E9FA-D639-4B88-96D8-D092760F90B0}.Release|Any CPU.Build.0 = Release|Any CPU - {AA81E343-5E54-40B0-9381-C459419BE780}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AA81E343-5E54-40B0-9381-C459419BE780}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AA81E343-5E54-40B0-9381-C459419BE780}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AA81E343-5E54-40B0-9381-C459419BE780}.Release|Any CPU.Build.0 = Release|Any CPU - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Release|Any CPU.Build.0 = Release|Any CPU - {8EA82BA5-5634-410C-8D76-8065D666F4F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8EA82BA5-5634-410C-8D76-8065D666F4F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8EA82BA5-5634-410C-8D76-8065D666F4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8EA82BA5-5634-410C-8D76-8065D666F4F7}.Release|Any CPU.Build.0 = Release|Any CPU + {201E9083-CCA0-4AA8-A2B2-B37AC13481E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {201E9083-CCA0-4AA8-A2B2-B37AC13481E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {201E9083-CCA0-4AA8-A2B2-B37AC13481E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {201E9083-CCA0-4AA8-A2B2-B37AC13481E3}.Release|Any CPU.Build.0 = Release|Any CPU + {6AFF6FDE-7B13-45B3-A492-C0DCA58E9004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AFF6FDE-7B13-45B3-A492-C0DCA58E9004}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AFF6FDE-7B13-45B3-A492-C0DCA58E9004}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AFF6FDE-7B13-45B3-A492-C0DCA58E9004}.Release|Any CPU.Build.0 = Release|Any CPU + {A428E072-E4DD-4F64-AFE3-DC9FC8D5563D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A428E072-E4DD-4F64-AFE3-DC9FC8D5563D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A428E072-E4DD-4F64-AFE3-DC9FC8D5563D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A428E072-E4DD-4F64-AFE3-DC9FC8D5563D}.Release|Any CPU.Build.0 = Release|Any CPU + {43B33B0D-4009-4838-B9F4-E5308C1827F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43B33B0D-4009-4838-B9F4-E5308C1827F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43B33B0D-4009-4838-B9F4-E5308C1827F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43B33B0D-4009-4838-B9F4-E5308C1827F7}.Release|Any CPU.Build.0 = Release|Any CPU + {A7225A2D-C36C-473F-BD46-001A4CD836EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7225A2D-C36C-473F-BD46-001A4CD836EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7225A2D-C36C-473F-BD46-001A4CD836EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7225A2D-C36C-473F-BD46-001A4CD836EE}.Release|Any CPU.Build.0 = Release|Any CPU + {465CB04B-D2D8-4E64-BA6D-571BE95391B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {465CB04B-D2D8-4E64-BA6D-571BE95391B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {465CB04B-D2D8-4E64-BA6D-571BE95391B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {465CB04B-D2D8-4E64-BA6D-571BE95391B4}.Release|Any CPU.Build.0 = Release|Any CPU + {4B1D276E-6576-4F42-9F38-C91C95437F20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B1D276E-6576-4F42-9F38-C91C95437F20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B1D276E-6576-4F42-9F38-C91C95437F20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B1D276E-6576-4F42-9F38-C91C95437F20}.Release|Any CPU.Build.0 = Release|Any CPU + {8A8D5FD7-557E-42EF-AA8A-5453E82574F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A8D5FD7-557E-42EF-AA8A-5453E82574F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A8D5FD7-557E-42EF-AA8A-5453E82574F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A8D5FD7-557E-42EF-AA8A-5453E82574F2}.Release|Any CPU.Build.0 = Release|Any CPU + {FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBDCBFDB-0F6D-4C41-8D2D-E9CAB6C24500}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0581E9FA-D639-4B88-96D8-D092760F90B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AA81E343-5E54-40B0-9381-C459419BE780} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {8EA82BA5-5634-410C-8D76-8065D666F4F7} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C0D18BF7-C6E6-42ED-B445-A20A40375EA0} + SolutionGuid = {FFED340A-44D5-49A5-8D41-F53CD3520C58} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.OpenSsl/System.Security.Cryptography.OpenSsl.sln b/src/libraries/System.Security.Cryptography.OpenSsl/System.Security.Cryptography.OpenSsl.sln index 94842fb8277a..72bf9e111016 100644 --- a/src/libraries/System.Security.Cryptography.OpenSsl/System.Security.Cryptography.OpenSsl.sln +++ b/src/libraries/System.Security.Cryptography.OpenSsl/System.Security.Cryptography.OpenSsl.sln @@ -1,60 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl.Tests", "tests\System.Security.Cryptography.OpenSsl.Tests.csproj", "{E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690}" - ProjectSection(ProjectDependencies) = postProject - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4} = {78452F3E-BA91-47E7-BB0F-02E8A5C116C4} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{29991657-E677-42A4-894C-6BE781C51DD7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "src\System.Security.Cryptography.OpenSsl.csproj", "{78452F3E-BA91-47E7-BB0F-02E8A5C116C4}" - ProjectSection(ProjectDependencies) = postProject - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F} = {8DEA82EF-2214-4295-8CC1-9FFB9B18838F} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{46747AE8-BF89-473A-9B3B-F0418390076C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "ref\System.Security.Cryptography.OpenSsl.csproj", "{8DEA82EF-2214-4295-8CC1-9FFB9B18838F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{A84FF2B2-5272-4F02-AA2B-C0FA61586AA4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{6C660B52-0FE3-43B9-838E-2F92B34E97D9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{41D067DF-C935-4F19-BE17-78122D39D629}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{42A6795A-8E6D-4328-B41E-6B1414043CEF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\ref\System.Security.Cryptography.Cng.csproj", "{0434D61E-39F7-45A1-8678-41E170E90EBA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\src\System.Security.Cryptography.Cng.csproj", "{12345E87-4C47-4857-B7E4-6673D6ECC05F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "ref\System.Security.Cryptography.OpenSsl.csproj", "{5AC30FC5-0E64-4C71-AD80-FE758709E22B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "src\System.Security.Cryptography.OpenSsl.csproj", "{A0136D6F-CF53-42F8-9227-2FFF2A1841AA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl.Tests", "tests\System.Security.Cryptography.OpenSsl.Tests.csproj", "{DE8A9283-1375-4651-B1B0-4E5C6D1D07AD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{EDB4DEAC-FECE-4895-912B-CF75686EBFF1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{34D682B4-A2EE-4751-9D45-46278345EF44}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{8F2D30ED-D817-4BF6-8E0F-C329572D57E4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ABD163BE-B0F8-4704-A959-588EF6275320}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {29991657-E677-42A4-894C-6BE781C51DD7} = {34D682B4-A2EE-4751-9D45-46278345EF44} + {DE8A9283-1375-4651-B1B0-4E5C6D1D07AD} = {34D682B4-A2EE-4751-9D45-46278345EF44} + {46747AE8-BF89-473A-9B3B-F0418390076C} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {41D067DF-C935-4F19-BE17-78122D39D629} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {0434D61E-39F7-45A1-8678-41E170E90EBA} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {5AC30FC5-0E64-4C71-AD80-FE758709E22B} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {EDB4DEAC-FECE-4895-912B-CF75686EBFF1} = {8F2D30ED-D817-4BF6-8E0F-C329572D57E4} + {A84FF2B2-5272-4F02-AA2B-C0FA61586AA4} = {ABD163BE-B0F8-4704-A959-588EF6275320} + {6C660B52-0FE3-43B9-838E-2F92B34E97D9} = {ABD163BE-B0F8-4704-A959-588EF6275320} + {12345E87-4C47-4857-B7E4-6673D6ECC05F} = {ABD163BE-B0F8-4704-A959-588EF6275320} + {A0136D6F-CF53-42F8-9227-2FFF2A1841AA} = {ABD163BE-B0F8-4704-A959-588EF6275320} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690}.Release|Any CPU.Build.0 = Release|Any CPU - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4}.Release|Any CPU.Build.0 = Release|Any CPU - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F}.Release|Any CPU.Build.0 = Release|Any CPU - {42A6795A-8E6D-4328-B41E-6B1414043CEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42A6795A-8E6D-4328-B41E-6B1414043CEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42A6795A-8E6D-4328-B41E-6B1414043CEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42A6795A-8E6D-4328-B41E-6B1414043CEF}.Release|Any CPU.Build.0 = Release|Any CPU + {29991657-E677-42A4-894C-6BE781C51DD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29991657-E677-42A4-894C-6BE781C51DD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29991657-E677-42A4-894C-6BE781C51DD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29991657-E677-42A4-894C-6BE781C51DD7}.Release|Any CPU.Build.0 = Release|Any CPU + {46747AE8-BF89-473A-9B3B-F0418390076C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46747AE8-BF89-473A-9B3B-F0418390076C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46747AE8-BF89-473A-9B3B-F0418390076C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46747AE8-BF89-473A-9B3B-F0418390076C}.Release|Any CPU.Build.0 = Release|Any CPU + {A84FF2B2-5272-4F02-AA2B-C0FA61586AA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A84FF2B2-5272-4F02-AA2B-C0FA61586AA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A84FF2B2-5272-4F02-AA2B-C0FA61586AA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A84FF2B2-5272-4F02-AA2B-C0FA61586AA4}.Release|Any CPU.Build.0 = Release|Any CPU + {A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7ED3F95-30B3-45E8-AD71-5B6A9F547EC1}.Release|Any CPU.Build.0 = Release|Any CPU + {6C660B52-0FE3-43B9-838E-2F92B34E97D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C660B52-0FE3-43B9-838E-2F92B34E97D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C660B52-0FE3-43B9-838E-2F92B34E97D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C660B52-0FE3-43B9-838E-2F92B34E97D9}.Release|Any CPU.Build.0 = Release|Any CPU + {41D067DF-C935-4F19-BE17-78122D39D629}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41D067DF-C935-4F19-BE17-78122D39D629}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41D067DF-C935-4F19-BE17-78122D39D629}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41D067DF-C935-4F19-BE17-78122D39D629}.Release|Any CPU.Build.0 = Release|Any CPU + {0434D61E-39F7-45A1-8678-41E170E90EBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0434D61E-39F7-45A1-8678-41E170E90EBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0434D61E-39F7-45A1-8678-41E170E90EBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0434D61E-39F7-45A1-8678-41E170E90EBA}.Release|Any CPU.Build.0 = Release|Any CPU + {12345E87-4C47-4857-B7E4-6673D6ECC05F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12345E87-4C47-4857-B7E4-6673D6ECC05F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12345E87-4C47-4857-B7E4-6673D6ECC05F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12345E87-4C47-4857-B7E4-6673D6ECC05F}.Release|Any CPU.Build.0 = Release|Any CPU + {5AC30FC5-0E64-4C71-AD80-FE758709E22B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AC30FC5-0E64-4C71-AD80-FE758709E22B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AC30FC5-0E64-4C71-AD80-FE758709E22B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AC30FC5-0E64-4C71-AD80-FE758709E22B}.Release|Any CPU.Build.0 = Release|Any CPU + {A0136D6F-CF53-42F8-9227-2FFF2A1841AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0136D6F-CF53-42F8-9227-2FFF2A1841AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0136D6F-CF53-42F8-9227-2FFF2A1841AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0136D6F-CF53-42F8-9227-2FFF2A1841AA}.Release|Any CPU.Build.0 = Release|Any CPU + {DE8A9283-1375-4651-B1B0-4E5C6D1D07AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE8A9283-1375-4651-B1B0-4E5C6D1D07AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE8A9283-1375-4651-B1B0-4E5C6D1D07AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE8A9283-1375-4651-B1B0-4E5C6D1D07AD}.Release|Any CPU.Build.0 = Release|Any CPU + {EDB4DEAC-FECE-4895-912B-CF75686EBFF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDB4DEAC-FECE-4895-912B-CF75686EBFF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDB4DEAC-FECE-4895-912B-CF75686EBFF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDB4DEAC-FECE-4895-912B-CF75686EBFF1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E1DAF7B9-BECB-4D25-AABB-C9E0BC73C690} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {78452F3E-BA91-47E7-BB0F-02E8A5C116C4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {8DEA82EF-2214-4295-8CC1-9FFB9B18838F} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {42A6795A-8E6D-4328-B41E-6B1414043CEF} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {43A2E052-7F63-42D1-B22E-47C2A06358F4} + SolutionGuid = {46980D07-0EA0-4C0F-BCB8-C9557CE69B51} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Pkcs/System.Security.Cryptography.Pkcs.sln b/src/libraries/System.Security.Cryptography.Pkcs/System.Security.Cryptography.Pkcs.sln index 9d09f4f04d30..1cbca23ab7c4 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/System.Security.Cryptography.Pkcs.sln +++ b/src/libraries/System.Security.Cryptography.Pkcs/System.Security.Cryptography.Pkcs.sln @@ -1,60 +1,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs.Tests", "tests\System.Security.Cryptography.Pkcs.Tests.csproj", "{2DD8DFFA-09FF-46C6-8313-4A9CC1849A44}" - ProjectSection(ProjectDependencies) = postProject - {03D84CBD-896D-4B2F-9A22-07034F51E73D} = {03D84CBD-896D-4B2F-9A22-07034F51E73D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6F930741-A5ED-401E-ABEE-77BEA461D9A5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "src\System.Security.Cryptography.Pkcs.csproj", "{03D84CBD-896D-4B2F-9A22-07034F51E73D}" - ProjectSection(ProjectDependencies) = postProject - {881269F5-9F22-4427-8DC5-63E2C05875BA} = {881269F5-9F22-4427-8DC5-63E2C05875BA} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{14753A03-861F-40F0-A63F-FE53B7B7686B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "ref\System.Security.Cryptography.Pkcs.csproj", "{881269F5-9F22-4427-8DC5-63E2C05875BA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{3DAFB198-0B50-4F31-A3A9-3826042431F5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DA204355-86E3-431D-B08E-483A49BEB3DB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{AB6DADC6-C481-46AB-8F4C-2948E643B58B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{782B9BF3-D18E-4750-A88B-1D9F0E7CA55B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\ref\System.Security.Cryptography.Cng.csproj", "{4085C2AC-9B58-49D0-B9B5-C78D58393E2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\src\System.Security.Cryptography.Cng.csproj", "{906CF937-8BCE-4ABF-B35C-23D51D59232E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "ref\System.Security.Cryptography.Pkcs.csproj", "{1AFD2D0A-B962-449B-AC3B-12ED1F439E91}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "src\System.Security.Cryptography.Pkcs.csproj", "{DDD75646-C8BD-4B16-8E59-E6A3668FD9A2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs.Tests", "tests\System.Security.Cryptography.Pkcs.Tests.csproj", "{2C8C1360-AC50-4493-BC0B-950149A875A3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{C2439BB4-69E6-4EC5-A46F-14BC4C055D2B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{76CCF857-F776-49CD-86CD-AFC78AAC32BC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DC4BC75B-3419-4DE9-9B6D-B87E0829E35C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1963587F-0608-47E5-B90F-F7C1849648E8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {6F930741-A5ED-401E-ABEE-77BEA461D9A5} = {76CCF857-F776-49CD-86CD-AFC78AAC32BC} + {2C8C1360-AC50-4493-BC0B-950149A875A3} = {76CCF857-F776-49CD-86CD-AFC78AAC32BC} + {14753A03-861F-40F0-A63F-FE53B7B7686B} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {3DAFB198-0B50-4F31-A3A9-3826042431F5} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {AB6DADC6-C481-46AB-8F4C-2948E643B58B} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {4085C2AC-9B58-49D0-B9B5-C78D58393E2A} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {1AFD2D0A-B962-449B-AC3B-12ED1F439E91} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {C2439BB4-69E6-4EC5-A46F-14BC4C055D2B} = {DC4BC75B-3419-4DE9-9B6D-B87E0829E35C} + {A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD} = {1963587F-0608-47E5-B90F-F7C1849648E8} + {DA204355-86E3-431D-B08E-483A49BEB3DB} = {1963587F-0608-47E5-B90F-F7C1849648E8} + {906CF937-8BCE-4ABF-B35C-23D51D59232E} = {1963587F-0608-47E5-B90F-F7C1849648E8} + {DDD75646-C8BD-4B16-8E59-E6A3668FD9A2} = {1963587F-0608-47E5-B90F-F7C1849648E8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2DD8DFFA-09FF-46C6-8313-4A9CC1849A44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DD8DFFA-09FF-46C6-8313-4A9CC1849A44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DD8DFFA-09FF-46C6-8313-4A9CC1849A44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DD8DFFA-09FF-46C6-8313-4A9CC1849A44}.Release|Any CPU.Build.0 = Release|Any CPU - {03D84CBD-896D-4B2F-9A22-07034F51E73D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03D84CBD-896D-4B2F-9A22-07034F51E73D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03D84CBD-896D-4B2F-9A22-07034F51E73D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03D84CBD-896D-4B2F-9A22-07034F51E73D}.Release|Any CPU.Build.0 = Release|Any CPU - {881269F5-9F22-4427-8DC5-63E2C05875BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {881269F5-9F22-4427-8DC5-63E2C05875BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {881269F5-9F22-4427-8DC5-63E2C05875BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {881269F5-9F22-4427-8DC5-63E2C05875BA}.Release|Any CPU.Build.0 = Release|Any CPU - {782B9BF3-D18E-4750-A88B-1D9F0E7CA55B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {782B9BF3-D18E-4750-A88B-1D9F0E7CA55B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {782B9BF3-D18E-4750-A88B-1D9F0E7CA55B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {782B9BF3-D18E-4750-A88B-1D9F0E7CA55B}.Release|Any CPU.Build.0 = Release|Any CPU + {6F930741-A5ED-401E-ABEE-77BEA461D9A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F930741-A5ED-401E-ABEE-77BEA461D9A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F930741-A5ED-401E-ABEE-77BEA461D9A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F930741-A5ED-401E-ABEE-77BEA461D9A5}.Release|Any CPU.Build.0 = Release|Any CPU + {14753A03-861F-40F0-A63F-FE53B7B7686B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14753A03-861F-40F0-A63F-FE53B7B7686B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14753A03-861F-40F0-A63F-FE53B7B7686B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14753A03-861F-40F0-A63F-FE53B7B7686B}.Release|Any CPU.Build.0 = Release|Any CPU + {A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8D95486-BBE9-4AD2-9D7C-D5B7CF6B90FD}.Release|Any CPU.Build.0 = Release|Any CPU + {3DAFB198-0B50-4F31-A3A9-3826042431F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DAFB198-0B50-4F31-A3A9-3826042431F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DAFB198-0B50-4F31-A3A9-3826042431F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DAFB198-0B50-4F31-A3A9-3826042431F5}.Release|Any CPU.Build.0 = Release|Any CPU + {DA204355-86E3-431D-B08E-483A49BEB3DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA204355-86E3-431D-B08E-483A49BEB3DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA204355-86E3-431D-B08E-483A49BEB3DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA204355-86E3-431D-B08E-483A49BEB3DB}.Release|Any CPU.Build.0 = Release|Any CPU + {AB6DADC6-C481-46AB-8F4C-2948E643B58B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB6DADC6-C481-46AB-8F4C-2948E643B58B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB6DADC6-C481-46AB-8F4C-2948E643B58B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB6DADC6-C481-46AB-8F4C-2948E643B58B}.Release|Any CPU.Build.0 = Release|Any CPU + {4085C2AC-9B58-49D0-B9B5-C78D58393E2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4085C2AC-9B58-49D0-B9B5-C78D58393E2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4085C2AC-9B58-49D0-B9B5-C78D58393E2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4085C2AC-9B58-49D0-B9B5-C78D58393E2A}.Release|Any CPU.Build.0 = Release|Any CPU + {906CF937-8BCE-4ABF-B35C-23D51D59232E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {906CF937-8BCE-4ABF-B35C-23D51D59232E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {906CF937-8BCE-4ABF-B35C-23D51D59232E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {906CF937-8BCE-4ABF-B35C-23D51D59232E}.Release|Any CPU.Build.0 = Release|Any CPU + {1AFD2D0A-B962-449B-AC3B-12ED1F439E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AFD2D0A-B962-449B-AC3B-12ED1F439E91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AFD2D0A-B962-449B-AC3B-12ED1F439E91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AFD2D0A-B962-449B-AC3B-12ED1F439E91}.Release|Any CPU.Build.0 = Release|Any CPU + {DDD75646-C8BD-4B16-8E59-E6A3668FD9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDD75646-C8BD-4B16-8E59-E6A3668FD9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDD75646-C8BD-4B16-8E59-E6A3668FD9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDD75646-C8BD-4B16-8E59-E6A3668FD9A2}.Release|Any CPU.Build.0 = Release|Any CPU + {2C8C1360-AC50-4493-BC0B-950149A875A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C8C1360-AC50-4493-BC0B-950149A875A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C8C1360-AC50-4493-BC0B-950149A875A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C8C1360-AC50-4493-BC0B-950149A875A3}.Release|Any CPU.Build.0 = Release|Any CPU + {C2439BB4-69E6-4EC5-A46F-14BC4C055D2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2439BB4-69E6-4EC5-A46F-14BC4C055D2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2439BB4-69E6-4EC5-A46F-14BC4C055D2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2439BB4-69E6-4EC5-A46F-14BC4C055D2B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {2DD8DFFA-09FF-46C6-8313-4A9CC1849A44} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {03D84CBD-896D-4B2F-9A22-07034F51E73D} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {881269F5-9F22-4427-8DC5-63E2C05875BA} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {782B9BF3-D18E-4750-A88B-1D9F0E7CA55B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7899FDA5-3069-403B-9243-D0B0363EF8E2} + SolutionGuid = {CF4AD1E7-1B60-4FDF-894F-7F0EF613012B} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Pkcs/ref/System.Security.Cryptography.Pkcs.netcoreapp.cs b/src/libraries/System.Security.Cryptography.Pkcs/ref/System.Security.Cryptography.Pkcs.netcoreapp.cs index 925be44cde14..6de5865e2b10 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/ref/System.Security.Cryptography.Pkcs.netcoreapp.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/ref/System.Security.Cryptography.Pkcs.netcoreapp.cs @@ -207,8 +207,8 @@ public sealed partial class SignerInfo { public System.Security.Cryptography.Oid SignatureAlgorithm { get { throw null; } } public byte[] GetSignature() { throw null; } - public void AddUnsignedAttribute(System.Security.Cryptography.AsnEncodedData asnEncodedData) { } - public void RemoveUnsignedAttribute(System.Security.Cryptography.AsnEncodedData asnEncodedData) { } + public void AddUnsignedAttribute(System.Security.Cryptography.AsnEncodedData unsignedAttribute) { } + public void RemoveUnsignedAttribute(System.Security.Cryptography.AsnEncodedData unsignedAttribute) { } } public sealed partial class SubjectIdentifier { diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs index bb0e6ee90f42..7e810dae5e7b 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs @@ -227,7 +227,20 @@ public static string OctetStringToUnicode(this byte[] octets) if (octets.Length < 2) return string.Empty; // .NET Framework compat: 0-length byte array maps to string.empty. 1-length byte array gets passed to Marshal.PtrToStringUni() with who knows what outcome. - string s = Encoding.Unicode.GetString(octets, 0, octets.Length - 2); + int end = octets.Length; + int endMinusOne = end - 1; + + // Truncate the string to before the first embedded \0 (probably the last two bytes). + for (int i = 0; i < endMinusOne; i += 2) + { + if (octets[i] == 0 && octets[i + 1] == 0) + { + end = i; + break; + } + } + + string s = Encoding.Unicode.GetString(octets, 0, end); return s; } diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampRequest.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampRequest.cs index 68f22657bf29..e2f30dd54bb7 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampRequest.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampRequest.cs @@ -4,7 +4,6 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Formats.Asn1; -using System.Linq; using System.Security.Cryptography.Asn1; using System.Security.Cryptography.Pkcs.Asn1; using System.Security.Cryptography.X509Certificates; @@ -58,9 +57,9 @@ public X509ExtensionCollection GetExtensions() return coll; } - public Rfc3161TimestampToken ProcessResponse(ReadOnlyMemory source, out int bytesConsumed) + public Rfc3161TimestampToken ProcessResponse(ReadOnlyMemory responseBytes, out int bytesConsumed) { - if (ProcessResponse(source, out Rfc3161TimestampToken? token, out Rfc3161RequestResponseStatus status, out int localBytesRead, shouldThrow: true)) + if (ProcessResponse(responseBytes, out Rfc3161TimestampToken? token, out Rfc3161RequestResponseStatus status, out int localBytesRead, shouldThrow: true)) { Debug.Assert(status == Rfc3161RequestResponseStatus.Accepted); bytesConsumed = localBytesRead; @@ -317,8 +316,11 @@ public bool TryEncode(Span destination, out int bytesWritten) if (extensions != null) { - req.Extensions = - extensions.OfType().Select(e => new X509ExtensionAsn(e)).ToArray(); + req.Extensions = new X509ExtensionAsn[extensions.Count]; + for (int i = 0; i < extensions.Count; i++) + { + req.Extensions[i] = new X509ExtensionAsn(extensions[i]); + } } // The RFC implies DER (see TryParse), and DER is the most widely understood given that diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampToken.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampToken.cs index dde7077c699b..7d0d6b08cc50 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampToken.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampToken.cs @@ -4,7 +4,6 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Formats.Asn1; -using System.Linq; using System.Security.Cryptography.Asn1; using System.Security.Cryptography.Asn1.Pkcs7; using System.Security.Cryptography.Pkcs.Asn1; @@ -241,14 +240,21 @@ private bool VerifyData(ReadOnlySpan data) // // id-kp-timeStamping. This extension MUST be critical. - using (var ekuExts = tsaCertificate.Extensions.OfType().GetEnumerator()) + X509ExtensionCollection extensions = tsaCertificate.Extensions; + bool anyFound = false; + for (int i = 0; i < extensions.Count; i++) { - if (!ekuExts.MoveNext()) + if (extensions[i] is not X509EnhancedKeyUsageExtension ekuExt) + { + continue; + } + + if (anyFound) { return false; } - X509EnhancedKeyUsageExtension ekuExt = ekuExts.Current; + anyFound = true; if (!ekuExt.Critical) { @@ -270,37 +276,36 @@ private bool VerifyData(ReadOnlySpan data) { return false; } + } - if (ekuExts.MoveNext()) + if (anyFound) + { + try + { + signer.CheckSignature(new X509Certificate2Collection(tsaCertificate), true); + return true; + } + catch (CryptographicException) { - return false; } } - try - { - signer.CheckSignature(new X509Certificate2Collection(tsaCertificate), true); - return true; - } - catch (CryptographicException) - { - return false; - } + return false; } - public static bool TryDecode(ReadOnlyMemory source, [NotNullWhen(true)] out Rfc3161TimestampToken? token, out int bytesConsumed) + public static bool TryDecode(ReadOnlyMemory encodedBytes, [NotNullWhen(true)] out Rfc3161TimestampToken? token, out int bytesConsumed) { bytesConsumed = 0; token = null; try { - AsnValueReader reader = new AsnValueReader(source.Span, AsnEncodingRules.BER); + AsnValueReader reader = new AsnValueReader(encodedBytes.Span, AsnEncodingRules.BER); int bytesActuallyRead = reader.PeekEncodedValue().Length; ContentInfoAsn.Decode( ref reader, - source, + encodedBytes, out ContentInfoAsn contentInfo); // https://tools.ietf.org/html/rfc3161#section-2.4.2 @@ -317,7 +322,7 @@ public static bool TryDecode(ReadOnlyMemory source, [NotNullWhen(true)] ou } SignedCms cms = new SignedCms(); - cms.Decode(source.Span); + cms.Decode(encodedBytes.Span); // The fields of type EncapsulatedContentInfo of the SignedData // construct have the following meanings: diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs index b5f87e551333..f3e70b14d2a1 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs @@ -4,7 +4,6 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Formats.Asn1; -using System.Linq; using System.Security.Cryptography.Asn1; using System.Security.Cryptography.Pkcs.Asn1; using System.Security.Cryptography.X509Certificates; @@ -12,6 +11,9 @@ namespace System.Security.Cryptography.Pkcs { + /// + /// Represents the timestamp token information class defined in RFC3161 as TSTInfo. + /// public sealed class Rfc3161TimestampTokenInfo { private readonly byte[] _encodedBytes; @@ -20,6 +22,21 @@ public sealed class Rfc3161TimestampTokenInfo private Oid? _hashAlgorithmId; private ReadOnlyMemory? _tsaNameBytes; + /// + /// Initializes a new instance of the class with the specified parameters. + /// + /// An OID representing the TSA's policy under which the response was produced. + /// A hash algorithm OID of the data to be timestamped. + /// A hash value of the data to be timestamped. + /// An integer assigned by the TSA to the . + /// The timestamp encoded in the token. + /// The accuracy with which is compared. Also see . + /// to ensure that every timestamp token from the same TSA can always be ordered based on the , regardless of the accuracy; to make indicate when token has been created by the TSA. + /// The nonce associated with this timestamp token. Using a nonce always allows to detect replays, and hence its use is recommended. + /// The hint in the TSA name identification. The actual identification of the entity that signed the response will always occur through the use of the certificate identifier. + /// The extension values associated with the timestamp. + /// If , , or are present in the , then the same value should be used. If is not provided, then the accuracy may be available through other means such as i.e. . + /// ASN.1 corrupted data. public Rfc3161TimestampTokenInfo( Oid policyId, Oid hashAlgorithmId, @@ -29,7 +46,7 @@ public sealed class Rfc3161TimestampTokenInfo long? accuracyInMicroseconds = null, bool isOrdering = false, ReadOnlyMemory? nonce = null, - ReadOnlyMemory? tsaName = null, + ReadOnlyMemory? timestampAuthorityName = null, X509ExtensionCollection? extensions = null) { _encodedBytes = Encode( @@ -41,7 +58,7 @@ public sealed class Rfc3161TimestampTokenInfo isOrdering, accuracyInMicroseconds, nonce, - tsaName, + timestampAuthorityName, extensions); if (!TryDecode(_encodedBytes, true, out _parsedData, out _, out _)) @@ -57,17 +74,76 @@ private Rfc3161TimestampTokenInfo(byte[] copiedBytes, Rfc3161TstInfo tstInfo) _parsedData = tstInfo; } + /// + /// Gets the version of the timestamp token. + /// + /// The version of the timestamp token. public int Version => _parsedData.Version; + + /// + /// Gets an OID representing the TSA's policy under which the response was produced. + /// + /// An OID representing the TSA's policy under which the response was produced. public Oid PolicyId => (_policyOid ??= new Oid(_parsedData.Policy, null)); + + /// + /// Gets an OID of the hash algorithm. + /// + /// An OID of the hash algorithm. public Oid HashAlgorithmId => (_hashAlgorithmId ??= new Oid(_parsedData.MessageImprint.HashAlgorithm.Algorithm, null)); + + /// + /// Gets the data representing the message hash. + /// + /// The data representing the message hash. public ReadOnlyMemory GetMessageHash() => _parsedData.MessageImprint.HashedMessage; + + /// + /// Gets an integer assigned by the TSA to the . + /// + /// An integer assigned by the TSA to the . public ReadOnlyMemory GetSerialNumber() => _parsedData.SerialNumber; + + /// + /// Gets the timestamp encoded in the token. + /// + /// The timestamp encoded in the token. public DateTimeOffset Timestamp => _parsedData.GenTime; + + /// + /// Gets the accuracy with which is compared. + /// + /// + /// The accuracy with which is compared. public long? AccuracyInMicroseconds => _parsedData.Accuracy?.TotalMicros; + + /// + /// Gets a value indicating if every timestamp token from the same TSA can always be ordered based on the , regardless of the accuracy; If , indicates when the token has been created by the TSA. + /// + /// A value indicating if every timestamp token from the same TSA can always be ordered based on the . public bool IsOrdering => _parsedData.Ordering; + + /// + /// Gets the nonce associated with this timestamp token. + /// + /// The nonce associated with this timestamp token. public ReadOnlyMemory? GetNonce() => _parsedData.Nonce; + + /// + /// Gets a value indicating whether there are any extensions associated with this timestamp token. + /// + /// A value indicating whether there are any extensions associated with this timestamp token. public bool HasExtensions => _parsedData.Extensions?.Length > 0; + /// + /// Gets the data representing the hint in the TSA name identification. + /// + /// The data representing the hint in the TSA name identification. + /// + /// The actual identification of the entity that signed the response + /// will always occur through the use of the certificate identifier (ESSCertID Attribute) + /// inside a SigningCertificate attribute which is part of the signer info. + /// public ReadOnlyMemory? GetTimestampAuthorityName() { if (_tsaNameBytes == null) @@ -88,6 +164,10 @@ private Rfc3161TimestampTokenInfo(byte[] copiedBytes, Rfc3161TstInfo tstInfo) return _tsaNameBytes.Value; } + /// + /// Gets the extension values associated with the timestamp. + /// + /// The extension values associated with the timestamp. public X509ExtensionCollection GetExtensions() { var coll = new X509ExtensionCollection(); @@ -115,11 +195,21 @@ public X509ExtensionCollection GetExtensions() return coll; } + /// + /// Encodes this object into a TSTInfo value + /// + /// The encoded TSTInfo value. public byte[] Encode() { return _encodedBytes.CloneByteArray(); } + /// + /// Attempts to encode this object as a TSTInfo value, writing the result into the provided buffer. + /// + /// The destination buffer. + /// When this method returns , contains the bytes written to the buffer. + /// if the operation succeeded; if the buffer size was insufficient. public bool TryEncode(Span destination, out int bytesWritten) { if (destination.Length < _encodedBytes.Length) @@ -133,12 +223,19 @@ public bool TryEncode(Span destination, out int bytesWritten) return true; } + /// + /// Decodes an encoded TSTInfo value. + /// + /// The input or source buffer. + /// When this method returns , the decoded data. When this method returns , the value is , meaning the data could not be decoded. + /// The number of bytes used for decoding. + /// if the operation succeeded; otherwise. public static bool TryDecode( - ReadOnlyMemory source, + ReadOnlyMemory encodedBytes, [NotNullWhen(true)] out Rfc3161TimestampTokenInfo? timestampTokenInfo, out int bytesConsumed) { - if (TryDecode(source, false, out Rfc3161TstInfo tstInfo, out bytesConsumed, out byte[]? copiedBytes)) + if (TryDecode(encodedBytes, false, out Rfc3161TstInfo tstInfo, out bytesConsumed, out byte[]? copiedBytes)) { timestampTokenInfo = new Rfc3161TimestampTokenInfo(copiedBytes!, tstInfo); return true; @@ -264,8 +361,11 @@ public bool TryEncode(Span destination, out int bytesWritten) if (extensions != null) { - tstInfo.Extensions = extensions.OfType(). - Select(ex => new X509ExtensionAsn(ex)).ToArray(); + tstInfo.Extensions = new X509ExtensionAsn[extensions.Count]; + for (int i = 0; i < extensions.Count; i++) + { + tstInfo.Extensions[i] = new X509ExtensionAsn(extensions[i]); + } } AsnWriter writer = new AsnWriter(AsnEncodingRules.DER); diff --git a/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs b/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs index cf5fdba5960b..3b653450eb49 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs @@ -177,6 +177,31 @@ public static void DocumentDescriptionFromRawData() Assert.Equal(s_OidDocumentDescription, oid); } + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/45168", TargetFrameworkMonikers.NetFramework)] + public static void DocumentDescriptionMissingTerminator() + { + byte[] rawData = "041e4d00790020004400650073006300720069007000740069006f006e002100".HexToByteArray(); + Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentDescription; + Assert.Equal("My Description!", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentDescription, oid); + } + + [Fact] + public static void DocumentDescriptionEmbeddedTerminator() + { + byte[] rawData = "041e4d00790020004400650073006300720000007000740069006f006e000000".HexToByteArray(); + Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentDescription; + Assert.Equal("My Descr", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentDescription, oid); + } + [Fact] public static void DocumentDescriptionFromCookedData() { @@ -226,6 +251,31 @@ public static void DocumentNameFromRawData() Assert.Equal(s_OidDocumentName, oid); } + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/45168", TargetFrameworkMonikers.NetFramework)] + public static void DocumentNameMissingTerminator() + { + byte[] rawData = "04104d00790020004e0061006d0065002100".HexToByteArray(); + Pkcs9DocumentName p = new Pkcs9DocumentName(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentName; + Assert.Equal("My Name!", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentName, oid); + } + + [Fact] + public static void DocumentNameEmbeddedTerminator() + { + byte[] rawData = "04104d00790020004e006100000065000000".HexToByteArray(); + Pkcs9DocumentName p = new Pkcs9DocumentName(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentName; + Assert.Equal("My Na", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentName, oid); + } + [Fact] public static void DocumentNameFromCookedData() { diff --git a/src/libraries/System.Security.Cryptography.Primitives/System.Security.Cryptography.Primitives.sln b/src/libraries/System.Security.Cryptography.Primitives/System.Security.Cryptography.Primitives.sln index 374809c1fd76..d096014fc4be 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/System.Security.Cryptography.Primitives.sln +++ b/src/libraries/System.Security.Cryptography.Primitives/System.Security.Cryptography.Primitives.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives.Tests", "tests\System.Security.Cryptography.Primitives.Tests.csproj", "{101EB757-55A4-4F48-841C-C088640B8F57}" - ProjectSection(ProjectDependencies) = postProject - {DF73E985-E143-4BF5-9FA4-E199E7D36235} = {DF73E985-E143-4BF5-9FA4-E199E7D36235} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0C78AEB2-80BD-4B1B-B5CD-F038522D065D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives", "src\System.Security.Cryptography.Primitives.csproj", "{DF73E985-E143-4BF5-9FA4-E199E7D36235}" - ProjectSection(ProjectDependencies) = postProject - {F050C895-297F-41C6-98C3-406D791AD515} = {F050C895-297F-41C6-98C3-406D791AD515} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{7F7293E9-FEEB-4148-8D66-03AD330A12AF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives", "ref\System.Security.Cryptography.Primitives.csproj", "{F050C895-297F-41C6-98C3-406D791AD515}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{B6CAEAD5-36A0-4F32-A80D-D6B152028945}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{483D067C-49EF-4501-B56A-02F540D96BE5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{76DAD859-77D8-4479-90D4-72FE05CF8368}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives", "ref\System.Security.Cryptography.Primitives.csproj", "{E9BF1F4D-7D5C-4539-B426-2FCCB2585138}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9D12B486-07A6-47DD-A4FC-4922BE3DD57D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives", "src\System.Security.Cryptography.Primitives.csproj", "{AF227727-11A6-4E5F-98DE-C362FC829633}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Primitives.Tests", "tests\System.Security.Cryptography.Primitives.Tests.csproj", "{A242B3AB-EE45-4C95-9550-DB970BA23CD5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{ADE3B433-7388-44AB-B401-6BA23F3DF5D2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D60C311E-AA28-41EE-817F-CD26333E7378}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{53F9B859-79CA-4E38-B569-6426DDA529AB}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {0C78AEB2-80BD-4B1B-B5CD-F038522D065D} = {D60C311E-AA28-41EE-817F-CD26333E7378} + {A242B3AB-EE45-4C95-9550-DB970BA23CD5} = {D60C311E-AA28-41EE-817F-CD26333E7378} + {7F7293E9-FEEB-4148-8D66-03AD330A12AF} = {42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C} + {B6CAEAD5-36A0-4F32-A80D-D6B152028945} = {42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C} + {76DAD859-77D8-4479-90D4-72FE05CF8368} = {42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C} + {E9BF1F4D-7D5C-4539-B426-2FCCB2585138} = {42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C} + {ADE3B433-7388-44AB-B401-6BA23F3DF5D2} = {42B3ABBC-EBAC-4DB3-8FDA-CBC3945EF03C} + {483D067C-49EF-4501-B56A-02F540D96BE5} = {53F9B859-79CA-4E38-B569-6426DDA529AB} + {AF227727-11A6-4E5F-98DE-C362FC829633} = {53F9B859-79CA-4E38-B569-6426DDA529AB} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {101EB757-55A4-4F48-841C-C088640B8F57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {101EB757-55A4-4F48-841C-C088640B8F57}.Debug|Any CPU.Build.0 = Debug|Any CPU - {101EB757-55A4-4F48-841C-C088640B8F57}.Release|Any CPU.ActiveCfg = Release|Any CPU - {101EB757-55A4-4F48-841C-C088640B8F57}.Release|Any CPU.Build.0 = Release|Any CPU - {DF73E985-E143-4BF5-9FA4-E199E7D36235}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF73E985-E143-4BF5-9FA4-E199E7D36235}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF73E985-E143-4BF5-9FA4-E199E7D36235}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF73E985-E143-4BF5-9FA4-E199E7D36235}.Release|Any CPU.Build.0 = Release|Any CPU - {F050C895-297F-41C6-98C3-406D791AD515}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F050C895-297F-41C6-98C3-406D791AD515}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F050C895-297F-41C6-98C3-406D791AD515}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F050C895-297F-41C6-98C3-406D791AD515}.Release|Any CPU.Build.0 = Release|Any CPU - {9D12B486-07A6-47DD-A4FC-4922BE3DD57D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D12B486-07A6-47DD-A4FC-4922BE3DD57D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D12B486-07A6-47DD-A4FC-4922BE3DD57D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D12B486-07A6-47DD-A4FC-4922BE3DD57D}.Release|Any CPU.Build.0 = Release|Any CPU + {0C78AEB2-80BD-4B1B-B5CD-F038522D065D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C78AEB2-80BD-4B1B-B5CD-F038522D065D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C78AEB2-80BD-4B1B-B5CD-F038522D065D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C78AEB2-80BD-4B1B-B5CD-F038522D065D}.Release|Any CPU.Build.0 = Release|Any CPU + {7F7293E9-FEEB-4148-8D66-03AD330A12AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F7293E9-FEEB-4148-8D66-03AD330A12AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F7293E9-FEEB-4148-8D66-03AD330A12AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F7293E9-FEEB-4148-8D66-03AD330A12AF}.Release|Any CPU.Build.0 = Release|Any CPU + {B6CAEAD5-36A0-4F32-A80D-D6B152028945}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6CAEAD5-36A0-4F32-A80D-D6B152028945}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6CAEAD5-36A0-4F32-A80D-D6B152028945}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6CAEAD5-36A0-4F32-A80D-D6B152028945}.Release|Any CPU.Build.0 = Release|Any CPU + {483D067C-49EF-4501-B56A-02F540D96BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {483D067C-49EF-4501-B56A-02F540D96BE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {483D067C-49EF-4501-B56A-02F540D96BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {483D067C-49EF-4501-B56A-02F540D96BE5}.Release|Any CPU.Build.0 = Release|Any CPU + {76DAD859-77D8-4479-90D4-72FE05CF8368}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76DAD859-77D8-4479-90D4-72FE05CF8368}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76DAD859-77D8-4479-90D4-72FE05CF8368}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76DAD859-77D8-4479-90D4-72FE05CF8368}.Release|Any CPU.Build.0 = Release|Any CPU + {E9BF1F4D-7D5C-4539-B426-2FCCB2585138}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9BF1F4D-7D5C-4539-B426-2FCCB2585138}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9BF1F4D-7D5C-4539-B426-2FCCB2585138}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9BF1F4D-7D5C-4539-B426-2FCCB2585138}.Release|Any CPU.Build.0 = Release|Any CPU + {AF227727-11A6-4E5F-98DE-C362FC829633}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF227727-11A6-4E5F-98DE-C362FC829633}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF227727-11A6-4E5F-98DE-C362FC829633}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF227727-11A6-4E5F-98DE-C362FC829633}.Release|Any CPU.Build.0 = Release|Any CPU + {A242B3AB-EE45-4C95-9550-DB970BA23CD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A242B3AB-EE45-4C95-9550-DB970BA23CD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A242B3AB-EE45-4C95-9550-DB970BA23CD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A242B3AB-EE45-4C95-9550-DB970BA23CD5}.Release|Any CPU.Build.0 = Release|Any CPU + {ADE3B433-7388-44AB-B401-6BA23F3DF5D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADE3B433-7388-44AB-B401-6BA23F3DF5D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADE3B433-7388-44AB-B401-6BA23F3DF5D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADE3B433-7388-44AB-B401-6BA23F3DF5D2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {101EB757-55A4-4F48-841C-C088640B8F57} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {DF73E985-E143-4BF5-9FA4-E199E7D36235} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F050C895-297F-41C6-98C3-406D791AD515} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {9D12B486-07A6-47DD-A4FC-4922BE3DD57D} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E69C9500-E894-44EA-8A1F-0BC23F3C878B} + SolutionGuid = {F5615383-F387-45EA-A05A-CB65D8A6FE88} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.Primitives/ref/System.Security.Cryptography.Primitives.cs b/src/libraries/System.Security.Cryptography.Primitives/ref/System.Security.Cryptography.Primitives.cs index 0c7b73074e25..dbe106511bcd 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/ref/System.Security.Cryptography.Primitives.cs +++ b/src/libraries/System.Security.Cryptography.Primitives/ref/System.Security.Cryptography.Primitives.cs @@ -248,6 +248,9 @@ public abstract partial class SymmetricAlgorithm : System.IDisposable protected virtual void Dispose(bool disposing) { } public abstract void GenerateIV(); public abstract void GenerateKey(); + public int GetCiphertextLengthCbc(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode = System.Security.Cryptography.PaddingMode.PKCS7) { throw null; } + public int GetCiphertextLengthCfb(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode = System.Security.Cryptography.PaddingMode.None, int feedbackSizeInBits = 8) { throw null; } + public int GetCiphertextLengthEcb(int plaintextLength, System.Security.Cryptography.PaddingMode paddingMode) { throw null; } public bool ValidKeySize(int bitLength) { throw null; } } } diff --git a/src/libraries/System.Security.Cryptography.Primitives/src/Resources/Strings.resx b/src/libraries/System.Security.Cryptography.Primitives/src/Resources/Strings.resx index a1b8604ebcd3..75639b420001 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/src/Resources/Strings.resx +++ b/src/libraries/System.Security.Cryptography.Primitives/src/Resources/Strings.resx @@ -72,6 +72,9 @@ Stream was not writable. + + The value specified in bits must be a whole number of bytes. + Non-negative number required. @@ -108,6 +111,15 @@ The specified OID ({0}) does not represent a known hash algorithm. + + The specified plaintext size is not valid for the the padding and block size. + + + The specified plaintext size is not valid for the the padding and feedback size. + + + The specified plaintext size is too large. + Method not supported. Derived class must override. @@ -129,4 +141,7 @@ The algorithm's implementation is incorrect. + + The algorithm's block size is not supported. + diff --git a/src/libraries/System.Security.Cryptography.Primitives/src/System.Security.Cryptography.Primitives.csproj b/src/libraries/System.Security.Cryptography.Primitives/src/System.Security.Cryptography.Primitives.csproj index 681bb084de8a..e75bb29692d4 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/src/System.Security.Cryptography.Primitives.csproj +++ b/src/libraries/System.Security.Cryptography.Primitives/src/System.Security.Cryptography.Primitives.csproj @@ -25,8 +25,6 @@ - ReadAsyncInternal(byte[] buffer, int offset, int count, // async requests outstanding, we will block the application's main // thread if it does a second IO request until the first one completes. - SemaphoreSlim semaphore = AsyncActiveSemaphore; - await semaphore.WaitAsync(cancellationToken).ForceAsync(); + await AsyncActiveSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try { return await ReadAsyncCore(buffer, offset, count, cancellationToken, useAsync: true).ConfigureAwait(false); } finally { - semaphore.Release(); + _lazyAsyncActiveSemaphore.Release(); } } @@ -495,15 +495,14 @@ private async Task WriteAsyncInternal(byte[] buffer, int offset, int count, Canc // async requests outstanding, we will block the application's main // thread if it does a second IO request until the first one completes. - SemaphoreSlim semaphore = AsyncActiveSemaphore; - await semaphore.WaitAsync(cancellationToken).ForceAsync(); + await AsyncActiveSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try { await WriteAsyncCore(buffer, offset, count, cancellationToken, useAsync: true).ConfigureAwait(false); } finally { - semaphore.Release(); + _lazyAsyncActiveSemaphore.Release(); } } @@ -748,6 +747,7 @@ private void InitializeBuffer() } } + [MemberNotNull(nameof(_lazyAsyncActiveSemaphore))] private SemaphoreSlim AsyncActiveSemaphore { get diff --git a/src/libraries/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/SymmetricAlgorithm.cs b/src/libraries/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/SymmetricAlgorithm.cs index 9ad7b01d7b6c..0ee176f21ec0 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/SymmetricAlgorithm.cs +++ b/src/libraries/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/SymmetricAlgorithm.cs @@ -222,6 +222,212 @@ public bool ValidKeySize(int bitLength) return bitLength.IsLegalSize(validSizes); } + /// + /// Gets the length of a ciphertext with a given padding mode and plaintext length in ECB mode. + /// + /// The padding mode used to pad the plaintext to the algorithm's block size. + /// The plaintext length, in bytes. + /// The length, in bytes, of the ciphertext with padding. + /// + /// + /// is a negative number. + /// + /// + /// - or - + /// + /// + /// when padded is too large to represent as + /// a signed 32-bit integer. + /// + /// + /// - or - + /// + /// + /// is not a valid padding mode. + /// + /// + /// + /// + /// is not a positive integer. + /// + /// + /// - or - + /// + /// + /// is not a whole number of bytes. It must be divisible by 8. + /// + /// + /// + /// + /// The padding mode was used, but + /// is not a whole number of blocks. + /// + /// + public int GetCiphertextLengthEcb(int plaintextLength, PaddingMode paddingMode) => + GetCiphertextLengthBlockAligned(plaintextLength, paddingMode); + + /// + /// Gets the length of a ciphertext with a given padding mode and plaintext length in CBC mode. + /// + /// The padding mode used to pad the plaintext to the algorithm's block size. + /// The plaintext length, in bytes. + /// The length, in bytes, of the ciphertext with padding. + /// + /// + /// is a negative number. + /// + /// + /// - or - + /// + /// + /// when padded is too large to represent as + /// a signed 32-bit integer. + /// + /// + /// - or - + /// + /// + /// is not a valid padding mode. + /// + /// + /// + /// + /// is not a positive integer. + /// + /// + /// - or - + /// + /// + /// is not a whole number of bytes. It must be divisible by 8. + /// + /// + /// + /// + /// The padding mode was used, but + /// is not a whole number of blocks. + /// + /// + public int GetCiphertextLengthCbc(int plaintextLength, PaddingMode paddingMode = PaddingMode.PKCS7) => + GetCiphertextLengthBlockAligned(plaintextLength, paddingMode); + + private int GetCiphertextLengthBlockAligned(int plaintextLength, PaddingMode paddingMode) + { + if (plaintextLength < 0) + throw new ArgumentOutOfRangeException(nameof(plaintextLength), SR.ArgumentOutOfRange_NeedNonNegNum); + + int blockSizeBits = BlockSize; // The BlockSize property is in bits. + + if (blockSizeBits <= 0 || (blockSizeBits & 0b111) != 0) + throw new InvalidOperationException(SR.InvalidOperation_UnsupportedBlockSize); + + int blockSizeBytes = blockSizeBits >> 3; + int wholeBlocks = Math.DivRem(plaintextLength, blockSizeBytes, out int remainder) * blockSizeBytes; + + switch (paddingMode) + { + case PaddingMode.None when remainder != 0: + throw new ArgumentException(SR.Cryptography_MatchBlockSize, nameof(plaintextLength)); + case PaddingMode.None: + case PaddingMode.Zeros when remainder == 0: + return plaintextLength; + case PaddingMode.Zeros: + case PaddingMode.PKCS7: + case PaddingMode.ANSIX923: + case PaddingMode.ISO10126: + if (int.MaxValue - wholeBlocks < blockSizeBytes) + { + throw new ArgumentOutOfRangeException(nameof(plaintextLength), SR.Cryptography_PlaintextTooLarge); + } + + return wholeBlocks + blockSizeBytes; + default: + throw new ArgumentOutOfRangeException(nameof(paddingMode), SR.Cryptography_InvalidPaddingMode); + } + } + + /// + /// Gets the length of a ciphertext with a given padding mode and plaintext length in CFB mode. + /// + /// The padding mode used to pad the plaintext to the feedback size. + /// The plaintext length, in bytes. + /// The feedback size, in bits. + /// The length, in bytes, of the ciphertext with padding. + /// + /// + /// is not a positive number. + /// + /// + /// - or - + /// + /// + /// is a negative number. + /// + /// + /// - or - + /// + /// + /// when padded is too large to represent as + /// a signed 32-bit integer. + /// + /// + /// - or - + /// + /// + /// is not a valid padding mode. + /// + /// + /// + /// + /// The padding mode was used, but + /// is not a whole number of blocks. + /// + /// + /// - or - + /// + /// + /// is not a whole number of bytes. It must be divisible by 8. + /// + /// + /// + /// accepts any value that is a valid feedback size, regardless if the algorithm + /// supports the specified feedback size. + /// + public int GetCiphertextLengthCfb(int plaintextLength, PaddingMode paddingMode = PaddingMode.None, int feedbackSizeInBits = 8) + { + if (plaintextLength < 0) + throw new ArgumentOutOfRangeException(nameof(plaintextLength), SR.ArgumentOutOfRange_NeedNonNegNum); + + if (feedbackSizeInBits <= 0) + throw new ArgumentOutOfRangeException(nameof(feedbackSizeInBits), SR.ArgumentOutOfRange_NeedPosNum); + + if ((feedbackSizeInBits & 0b111) != 0) + throw new ArgumentException(SR.Argument_BitsMustBeWholeBytes, nameof(feedbackSizeInBits)); + + int feedbackSizeInBytes = feedbackSizeInBits >> 3; + int feedbackAligned = Math.DivRem(plaintextLength, feedbackSizeInBytes, out int remainder) * feedbackSizeInBytes; + + switch (paddingMode) + { + case PaddingMode.None when remainder != 0: + throw new ArgumentException(SR.Cryptography_MatchFeedbackSize, nameof(plaintextLength)); + case PaddingMode.None: + case PaddingMode.Zeros when remainder == 0: + return plaintextLength; + case PaddingMode.Zeros: + case PaddingMode.PKCS7: + case PaddingMode.ANSIX923: + case PaddingMode.ISO10126: + if (int.MaxValue - feedbackAligned < feedbackSizeInBytes) + { + throw new ArgumentOutOfRangeException(nameof(plaintextLength), SR.Cryptography_PlaintextTooLarge); + } + + return feedbackAligned + feedbackSizeInBytes; + default: + throw new ArgumentOutOfRangeException(nameof(paddingMode), SR.Cryptography_InvalidPaddingMode); + } + } + protected CipherMode ModeValue; protected PaddingMode PaddingValue; protected byte[]? KeyValue; diff --git a/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoConfigTests.cs b/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoConfigTests.cs index 7dcdd650ea27..dbd140ad5465 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoConfigTests.cs +++ b/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoConfigTests.cs @@ -55,7 +55,7 @@ public static void NamedHashAlgorithmCreate(string identifier, Type baseType) Assert.IsAssignableFrom(baseType, created); using (HashAlgorithm equivalent = - (HashAlgorithm)baseType.GetMethod("Create", Array.Empty()).Invoke(null, null)) + (HashAlgorithm)baseType.GetMethod("Create", Type.EmptyTypes).Invoke(null, null)) { byte[] input = { 1, 2, 3, 4, 5 }; byte[] equivHash = equivalent.ComputeHash(input); diff --git a/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoStream.cs b/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoStream.cs index bb23983679a1..ea43dc8ca10a 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoStream.cs +++ b/src/libraries/System.Security.Cryptography.Primitives/tests/CryptoStream.cs @@ -28,6 +28,11 @@ protected override Task CreateWrappedConnectedStreamsAsync(StreamPai protected override Type UnsupportedConcurrentExceptionType => null; + [ActiveIssue("https://github.com/dotnet/runtime/issues/45080")] + [Theory] + [MemberData(nameof(ReadWrite_Success_Large_MemberData))] + public override Task ReadWrite_Success_Large(ReadWriteMode mode, int writeSize, bool startWithFlush) => base.ReadWrite_Success_Large(mode, writeSize, startWithFlush); + [Fact] public static void Ctor() { diff --git a/src/libraries/System.Security.Cryptography.Primitives/tests/SymmetricAlgorithmTests.cs b/src/libraries/System.Security.Cryptography.Primitives/tests/SymmetricAlgorithmTests.cs new file mode 100644 index 000000000000..8edfa2b0650a --- /dev/null +++ b/src/libraries/System.Security.Cryptography.Primitives/tests/SymmetricAlgorithmTests.cs @@ -0,0 +1,235 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using Xunit; + +namespace System.Security.Cryptography.Primitives.Tests +{ + public static class SymmetricAlgorithmTests + { + [Theory] + [MemberData(nameof(CiphertextLengthTheories))] + public static void GetCiphertextLengthBlock_ValidInputs( + PaddingMode mode, + int plaintextSize, + int expectedCiphertextSize, + int alignmentSizeInBits) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = alignmentSizeInBits }; + int ciphertextSizeCbc = alg.GetCiphertextLengthCbc(plaintextSize, mode); + int ciphertextSizeEcb = alg.GetCiphertextLengthEcb(plaintextSize, mode); + Assert.Equal(expectedCiphertextSize, ciphertextSizeCbc); + Assert.Equal(expectedCiphertextSize, ciphertextSizeEcb); + } + + [Theory] + [MemberData(nameof(CiphertextLengthTheories))] + public static void GetCiphertextLengthCfb_ValidInputs( + PaddingMode mode, + int plaintextSize, + int expectedCiphertextSize, + int alignmentSizeInBits) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm(); + int ciphertextSizeCfb = alg.GetCiphertextLengthCfb(plaintextSize, mode, alignmentSizeInBits); + Assert.Equal(expectedCiphertextSize, ciphertextSizeCfb); + } + + [Theory] + [MemberData(nameof(AllPaddingModes))] + public static void GetCiphertextLength_ThrowsForNegativeInput(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 128 }; + AssertExtensions.Throws("plaintextLength", () => alg.GetCiphertextLengthCbc(-1, mode)); + AssertExtensions.Throws("plaintextLength", () => alg.GetCiphertextLengthEcb(-1, mode)); + AssertExtensions.Throws("plaintextLength", () => alg.GetCiphertextLengthCfb(-1, mode)); + } + + [Theory] + [InlineData(PaddingMode.ANSIX923)] + [InlineData(PaddingMode.ISO10126)] + [InlineData(PaddingMode.PKCS7)] + [InlineData(PaddingMode.Zeros)] + public static void GetCiphertextLengthBlock_ThrowsForOverflow(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 128 }; + AssertExtensions.Throws("plaintextLength", () => alg.GetCiphertextLengthCbc(0x7FFFFFF1, mode)); + AssertExtensions.Throws("plaintextLength", () => alg.GetCiphertextLengthEcb(0x7FFFFFF1, mode)); + } + + [Theory] + [InlineData(PaddingMode.ANSIX923)] + [InlineData(PaddingMode.ISO10126)] + [InlineData(PaddingMode.PKCS7)] + [InlineData(PaddingMode.Zeros)] + public static void GetCiphertextLengthCfb_ThrowsForOverflow(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm(); + AssertExtensions.Throws("plaintextLength", () => + alg.GetCiphertextLengthCfb(0x7FFFFFFF, mode, feedbackSizeInBits: 128)); + } + + [Theory] + [MemberData(nameof(AllPaddingModes))] + public static void GetCiphertextLengthBlock_ThrowsForNonByteBlockSize(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 5 }; + Assert.Throws(() => alg.GetCiphertextLengthCbc(16, mode)); + Assert.Throws(() => alg.GetCiphertextLengthEcb(16, mode)); + } + + [Theory] + [MemberData(nameof(AllPaddingModes))] + public static void GetCiphertextLengthCfb_ThrowsForNonByteFeedbackSize(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm(); + AssertExtensions.Throws("feedbackSizeInBits", () => + alg.GetCiphertextLengthCfb(16, mode, 7)); + } + + [Theory] + [MemberData(nameof(AllPaddingModes))] + public static void GetCiphertextLengthBlock_ThrowsForZeroBlockSize(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 0 }; + Assert.Throws(() => alg.GetCiphertextLengthCbc(16, mode)); + Assert.Throws(() => alg.GetCiphertextLengthEcb(16, mode)); + } + + [Theory] + [MemberData(nameof(AllPaddingModes))] + public static void GetCiphertextLengthCfb_ThrowsForZeroFeedbackSize(PaddingMode mode) + { + AnySizeAlgorithm alg = new AnySizeAlgorithm(); + AssertExtensions.Throws("feedbackSizeInBits", () => + alg.GetCiphertextLengthCfb(16, mode, 0)); + } + + [Fact] + public static void GetCiphertextLength_ThrowsForInvalidPaddingMode() + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 128 }; + PaddingMode mode = (PaddingMode)(-1); + Assert.Throws("paddingMode", () => alg.GetCiphertextLengthCbc(16, mode)); + Assert.Throws("paddingMode", () => alg.GetCiphertextLengthEcb(16, mode)); + Assert.Throws("paddingMode", () => alg.GetCiphertextLengthCfb(16, mode)); + } + + [Fact] + public static void GetCiphertextLengthBlock_NoPaddingAndPlaintextSizeNotBlockAligned() + { + AnySizeAlgorithm alg = new AnySizeAlgorithm { BlockSize = 128 }; + Assert.Throws("plaintextLength", () => alg.GetCiphertextLengthCbc(17, PaddingMode.None)); + Assert.Throws("plaintextLength", () => alg.GetCiphertextLengthEcb(17, PaddingMode.None)); + } + + [Fact] + public static void GetCiphertextLengthCfb_NoPaddingAndPlaintextSizeNotFeedbackAligned() + { + AnySizeAlgorithm alg = new AnySizeAlgorithm(); + Assert.Throws("plaintextLength", () => + alg.GetCiphertextLengthCfb(17, PaddingMode.None, feedbackSizeInBits: 128)); + } + + public static IEnumerable CiphertextLengthTheories + { + get + { + // new object[] { PaddingMode mode, int plaintextSize, int expectedCiphertextSize, int alignmentSizeInBits } + + PaddingMode[] fullPaddings = new[] { + PaddingMode.ANSIX923, + PaddingMode.ISO10126, + PaddingMode.PKCS7, + }; + + foreach (PaddingMode mode in fullPaddings) + { + // 128-bit aligned value + yield return new object[] { mode, 0, 16, 128 }; + yield return new object[] { mode, 15, 16, 128 }; + yield return new object[] { mode, 16, 32, 128 }; + yield return new object[] { mode, 17, 32, 128 }; + yield return new object[] { mode, 1023, 1024, 128 }; + yield return new object[] { mode, 0x7FFFFFEF, 0x7FFFFFF0, 128 }; + + // 64-bit aligned value + yield return new object[] { mode, 0, 8, 64 }; + yield return new object[] { mode, 15, 16, 64 }; + yield return new object[] { mode, 16, 24, 64 }; + yield return new object[] { mode, 17, 24, 64 }; + yield return new object[] { mode, 1023, 1024, 64 }; + yield return new object[] { mode, 0x7FFFFFF7, 0x7FFFFFF8, 64 }; + + // 8-bit aligned value + yield return new object[] { mode, 0, 1, 8 }; + yield return new object[] { mode, 7, 8, 8 }; + yield return new object[] { mode, 16, 17, 8 }; + yield return new object[] { mode, 17, 18, 8 }; + yield return new object[] { mode, 1023, 1024, 8 }; + yield return new object[] { mode, 0x7FFFFFFE, 0x7FFFFFFF, 8 }; + + // 176-bit (22 byte) aligned value + yield return new object[] { mode, 0, 22, 176 }; + yield return new object[] { mode, 21, 22, 176 }; + yield return new object[] { mode, 22, 44, 176 }; + yield return new object[] { mode, 43, 44, 176 }; + yield return new object[] { mode, 1011, 1012, 176 }; + yield return new object[] { mode, 0x7FFFFFFD, 0x7FFFFFFE, 176 }; + } + + PaddingMode[] noPadOnAlignSize = new[] { + PaddingMode.Zeros, + PaddingMode.None, + }; + + foreach(PaddingMode mode in noPadOnAlignSize) + { + // 128-bit aligned + yield return new object[] { mode, 16, 16, 128 }; + yield return new object[] { mode, 00, 00, 128 }; + yield return new object[] { mode, 1024, 1024, 128 }; + yield return new object[] { mode, 0x7FFFFFF0, 0x7FFFFFF0, 128 }; + + // 8-bit aligned + yield return new object[] { mode, 0x7FFFFFFF, 0x7FFFFFFF, 8 }; + } + + // Pad only when length is not aligned + yield return new object[] { PaddingMode.Zeros, 15, 16, 128 }; + yield return new object[] { PaddingMode.Zeros, 17, 32, 128 }; + yield return new object[] { PaddingMode.Zeros, 0x7FFFFFEF, 0x7FFFFFF0, 128 }; + } + } + + public static IEnumerable AllPaddingModes + { + get + { + yield return new object[] { PaddingMode.ANSIX923 }; + yield return new object[] { PaddingMode.ISO10126 }; + yield return new object[] { PaddingMode.PKCS7 }; + yield return new object[] { PaddingMode.Zeros }; + yield return new object[] { PaddingMode.None }; + } + } + + private class AnySizeAlgorithm : SymmetricAlgorithm + { + public override int BlockSize + { + get => BlockSizeValue; + set => BlockSizeValue = value; + } + + public override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) => + throw new NotImplementedException(); + public override ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV) => + throw new NotImplementedException(); + public override void GenerateIV() => throw new NotImplementedException(); + public override void GenerateKey() => throw new NotImplementedException(); + } + } +} diff --git a/src/libraries/System.Security.Cryptography.Primitives/tests/System.Security.Cryptography.Primitives.Tests.csproj b/src/libraries/System.Security.Cryptography.Primitives/tests/System.Security.Cryptography.Primitives.Tests.csproj index caa018377958..9fde6f5f339c 100644 --- a/src/libraries/System.Security.Cryptography.Primitives/tests/System.Security.Cryptography.Primitives.Tests.csproj +++ b/src/libraries/System.Security.Cryptography.Primitives/tests/System.Security.Cryptography.Primitives.Tests.csproj @@ -22,6 +22,7 @@ + diff --git a/src/libraries/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.sln b/src/libraries/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.sln index 4363c4d3fe6c..f405d1179d45 100644 --- a/src/libraries/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.sln +++ b/src/libraries/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData.Tests", "tests\System.Security.Cryptography.ProtectedData.Tests.csproj", "{749ED7AD-E3C1-4611-99BD-C5D4B3934B3A}" - ProjectSection(ProjectDependencies) = postProject - {FB39F994-1504-4B96-9588-E0385D3B73F1} = {FB39F994-1504-4B96-9588-E0385D3B73F1} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{21CC9F35-ACAA-4452-BE92-BBAE2E927B20}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "src\System.Security.Cryptography.ProtectedData.csproj", "{FB39F994-1504-4B96-9588-E0385D3B73F1}" - ProjectSection(ProjectDependencies) = postProject - {28AA66B1-615B-462F-BD63-DC0A20052998} = {28AA66B1-615B-462F-BD63-DC0A20052998} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{4248C69F-DFF2-4E47-9749-E12D1312F5D5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "ref\System.Security.Cryptography.ProtectedData.csproj", "{28AA66B1-615B-462F-BD63-DC0A20052998}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{179902DA-28E6-42F5-BA2D-905BEC68A32C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{C25543F0-E445-45AF-809D-388DF6496520}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "ref\System.Security.Cryptography.ProtectedData.csproj", "{E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D066EC34-EF43-4663-9D3D-F1C65685F81B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData", "src\System.Security.Cryptography.ProtectedData.csproj", "{7773DB7A-494F-4508-9471-F737FDC7661E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.ProtectedData.Tests", "tests\System.Security.Cryptography.ProtectedData.Tests.csproj", "{3A6C62D5-EFCA-4119-BC60-C917533848A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{B3C3180D-31E8-4225-8A5D-6765945C9647}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4BF33DE6-1FFA-4CC3-92DA-02A6931B89FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{E71CB63B-6EB0-473D-A2AE-487B7B280AB1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{60F975CB-2CC9-43E1-804B-9FB4142F49E8}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {21CC9F35-ACAA-4452-BE92-BBAE2E927B20} = {4BF33DE6-1FFA-4CC3-92DA-02A6931B89FD} + {3A6C62D5-EFCA-4119-BC60-C917533848A8} = {4BF33DE6-1FFA-4CC3-92DA-02A6931B89FD} + {4248C69F-DFF2-4E47-9749-E12D1312F5D5} = {E71CB63B-6EB0-473D-A2AE-487B7B280AB1} + {179902DA-28E6-42F5-BA2D-905BEC68A32C} = {E71CB63B-6EB0-473D-A2AE-487B7B280AB1} + {C25543F0-E445-45AF-809D-388DF6496520} = {E71CB63B-6EB0-473D-A2AE-487B7B280AB1} + {E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE} = {E71CB63B-6EB0-473D-A2AE-487B7B280AB1} + {B3C3180D-31E8-4225-8A5D-6765945C9647} = {E71CB63B-6EB0-473D-A2AE-487B7B280AB1} + {90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7} = {60F975CB-2CC9-43E1-804B-9FB4142F49E8} + {7773DB7A-494F-4508-9471-F737FDC7661E} = {60F975CB-2CC9-43E1-804B-9FB4142F49E8} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {749ED7AD-E3C1-4611-99BD-C5D4B3934B3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {749ED7AD-E3C1-4611-99BD-C5D4B3934B3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {749ED7AD-E3C1-4611-99BD-C5D4B3934B3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {749ED7AD-E3C1-4611-99BD-C5D4B3934B3A}.Release|Any CPU.Build.0 = Release|Any CPU - {FB39F994-1504-4B96-9588-E0385D3B73F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB39F994-1504-4B96-9588-E0385D3B73F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB39F994-1504-4B96-9588-E0385D3B73F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB39F994-1504-4B96-9588-E0385D3B73F1}.Release|Any CPU.Build.0 = Release|Any CPU - {28AA66B1-615B-462F-BD63-DC0A20052998}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28AA66B1-615B-462F-BD63-DC0A20052998}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28AA66B1-615B-462F-BD63-DC0A20052998}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28AA66B1-615B-462F-BD63-DC0A20052998}.Release|Any CPU.Build.0 = Release|Any CPU - {D066EC34-EF43-4663-9D3D-F1C65685F81B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066EC34-EF43-4663-9D3D-F1C65685F81B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066EC34-EF43-4663-9D3D-F1C65685F81B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066EC34-EF43-4663-9D3D-F1C65685F81B}.Release|Any CPU.Build.0 = Release|Any CPU + {21CC9F35-ACAA-4452-BE92-BBAE2E927B20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21CC9F35-ACAA-4452-BE92-BBAE2E927B20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21CC9F35-ACAA-4452-BE92-BBAE2E927B20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21CC9F35-ACAA-4452-BE92-BBAE2E927B20}.Release|Any CPU.Build.0 = Release|Any CPU + {4248C69F-DFF2-4E47-9749-E12D1312F5D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4248C69F-DFF2-4E47-9749-E12D1312F5D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4248C69F-DFF2-4E47-9749-E12D1312F5D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4248C69F-DFF2-4E47-9749-E12D1312F5D5}.Release|Any CPU.Build.0 = Release|Any CPU + {179902DA-28E6-42F5-BA2D-905BEC68A32C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {179902DA-28E6-42F5-BA2D-905BEC68A32C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {179902DA-28E6-42F5-BA2D-905BEC68A32C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {179902DA-28E6-42F5-BA2D-905BEC68A32C}.Release|Any CPU.Build.0 = Release|Any CPU + {90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90042C2E-6AD9-4BFF-B7CA-8E6BF9B3D3C7}.Release|Any CPU.Build.0 = Release|Any CPU + {C25543F0-E445-45AF-809D-388DF6496520}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C25543F0-E445-45AF-809D-388DF6496520}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C25543F0-E445-45AF-809D-388DF6496520}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C25543F0-E445-45AF-809D-388DF6496520}.Release|Any CPU.Build.0 = Release|Any CPU + {E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E40DBC0E-386A-4B32-8DCE-9FE13EAD47BE}.Release|Any CPU.Build.0 = Release|Any CPU + {7773DB7A-494F-4508-9471-F737FDC7661E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7773DB7A-494F-4508-9471-F737FDC7661E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7773DB7A-494F-4508-9471-F737FDC7661E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7773DB7A-494F-4508-9471-F737FDC7661E}.Release|Any CPU.Build.0 = Release|Any CPU + {3A6C62D5-EFCA-4119-BC60-C917533848A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A6C62D5-EFCA-4119-BC60-C917533848A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A6C62D5-EFCA-4119-BC60-C917533848A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A6C62D5-EFCA-4119-BC60-C917533848A8}.Release|Any CPU.Build.0 = Release|Any CPU + {B3C3180D-31E8-4225-8A5D-6765945C9647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3C3180D-31E8-4225-8A5D-6765945C9647}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3C3180D-31E8-4225-8A5D-6765945C9647}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3C3180D-31E8-4225-8A5D-6765945C9647}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {749ED7AD-E3C1-4611-99BD-C5D4B3934B3A} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {FB39F994-1504-4B96-9588-E0385D3B73F1} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {28AA66B1-615B-462F-BD63-DC0A20052998} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {D066EC34-EF43-4663-9D3D-F1C65685F81B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {69CE1761-488C-47EA-BDAD-8A34ED736BE8} + SolutionGuid = {FB101479-5EAB-495B-ACF3-4B6FC3F830EF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.sln b/src/libraries/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.sln index a0dd5aa9512b..87151a3549c6 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.sln +++ b/src/libraries/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.sln @@ -1,60 +1,135 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates.Tests", "tests\System.Security.Cryptography.X509Certificates.Tests.csproj", "{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}" - ProjectSection(ProjectDependencies) = postProject - {6F8576C2-6CD0-4DF3-8394-00B002D82E40} = {6F8576C2-6CD0-4DF3-8394-00B002D82E40} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{FC10D700-60DF-4D00-9433-47DFC3E3DC26}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates", "src\System.Security.Cryptography.X509Certificates.csproj", "{6F8576C2-6CD0-4DF3-8394-00B002D82E40}" - ProjectSection(ProjectDependencies) = postProject - {B37248D0-B191-4971-AD50-01CFEDF1E09B} = {B37248D0-B191-4971-AD50-01CFEDF1E09B} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{855567D5-A188-405D-BCC0-8769098813A5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates", "ref\System.Security.Cryptography.X509Certificates.csproj", "{B37248D0-B191-4971-AD50-01CFEDF1E09B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Asn1", "..\System.Formats.Asn1\src\System.Formats.Asn1.csproj", "{C2D74126-653E-41C9-9CF8-E58F1FD110B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{201E349A-1CC7-4591-8332-29BEBF3DAA49}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{52FC346D-2936-43FD-93A6-02F019A5F5EC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{829DAB88-0339-4F92-A954-E5586FDC0A7A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B10D4AA3-247D-498A-84DD-ABAE8FE65093}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\ref\System.Security.Cryptography.Cng.csproj", "{3F8B63DA-BE4E-4580-A904-C047EA4A7347}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Cng", "..\System.Security.Cryptography.Cng\src\System.Security.Cryptography.Cng.csproj", "{EEFBEDAF-C620-4C4E-867E-80A1EFEC4357}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "..\System.Security.Cryptography.OpenSsl\ref\System.Security.Cryptography.OpenSsl.csproj", "{D1909495-B957-4A31-BC79-04AA3F5C5E0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.OpenSsl", "..\System.Security.Cryptography.OpenSsl\src\System.Security.Cryptography.OpenSsl.csproj", "{97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "..\System.Security.Cryptography.Pkcs\ref\System.Security.Cryptography.Pkcs.csproj", "{9E04AD65-21BC-4FF4-B38C-9B17488AACA5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Pkcs", "..\System.Security.Cryptography.Pkcs\src\System.Security.Cryptography.Pkcs.csproj", "{76812DB0-A6A2-4F0C-B560-18FC7A97E419}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates", "ref\System.Security.Cryptography.X509Certificates.csproj", "{4EC57148-D181-49B9-BDAF-1735D4687C79}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates", "src\System.Security.Cryptography.X509Certificates.csproj", "{2A203F48-05D2-4E45-8A98-98F02EE639A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.X509Certificates.Tests", "tests\System.Security.Cryptography.X509Certificates.Tests.csproj", "{53F1E058-B5A4-4348-9BE6-8B006A6861AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{0059505B-9A88-4FC5-8583-E497ECFEA0F4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0B0B3B2F-E47A-46AA-84AA-69A5E344AC63}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{098568FC-B917-4AC9-8919-94D6653C38E0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{283892D1-8C1C-4826-BE27-C84BF99DD98E}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {FC10D700-60DF-4D00-9433-47DFC3E3DC26} = {0B0B3B2F-E47A-46AA-84AA-69A5E344AC63} + {53F1E058-B5A4-4348-9BE6-8B006A6861AF} = {0B0B3B2F-E47A-46AA-84AA-69A5E344AC63} + {855567D5-A188-405D-BCC0-8769098813A5} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {201E349A-1CC7-4591-8332-29BEBF3DAA49} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {829DAB88-0339-4F92-A954-E5586FDC0A7A} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {3F8B63DA-BE4E-4580-A904-C047EA4A7347} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {D1909495-B957-4A31-BC79-04AA3F5C5E0F} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {9E04AD65-21BC-4FF4-B38C-9B17488AACA5} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {4EC57148-D181-49B9-BDAF-1735D4687C79} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {0059505B-9A88-4FC5-8583-E497ECFEA0F4} = {098568FC-B917-4AC9-8919-94D6653C38E0} + {C2D74126-653E-41C9-9CF8-E58F1FD110B8} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + {52FC346D-2936-43FD-93A6-02F019A5F5EC} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + {EEFBEDAF-C620-4C4E-867E-80A1EFEC4357} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + {97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + {76812DB0-A6A2-4F0C-B560-18FC7A97E419} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + {2A203F48-05D2-4E45-8A98-98F02EE639A8} = {283892D1-8C1C-4826-BE27-C84BF99DD98E} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.Release|Any CPU.Build.0 = Release|Any CPU - {6F8576C2-6CD0-4DF3-8394-00B002D82E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6F8576C2-6CD0-4DF3-8394-00B002D82E40}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6F8576C2-6CD0-4DF3-8394-00B002D82E40}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6F8576C2-6CD0-4DF3-8394-00B002D82E40}.Release|Any CPU.Build.0 = Release|Any CPU - {B37248D0-B191-4971-AD50-01CFEDF1E09B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B37248D0-B191-4971-AD50-01CFEDF1E09B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B37248D0-B191-4971-AD50-01CFEDF1E09B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B37248D0-B191-4971-AD50-01CFEDF1E09B}.Release|Any CPU.Build.0 = Release|Any CPU - {B10D4AA3-247D-498A-84DD-ABAE8FE65093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B10D4AA3-247D-498A-84DD-ABAE8FE65093}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B10D4AA3-247D-498A-84DD-ABAE8FE65093}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B10D4AA3-247D-498A-84DD-ABAE8FE65093}.Release|Any CPU.Build.0 = Release|Any CPU + {FC10D700-60DF-4D00-9433-47DFC3E3DC26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC10D700-60DF-4D00-9433-47DFC3E3DC26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC10D700-60DF-4D00-9433-47DFC3E3DC26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC10D700-60DF-4D00-9433-47DFC3E3DC26}.Release|Any CPU.Build.0 = Release|Any CPU + {855567D5-A188-405D-BCC0-8769098813A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {855567D5-A188-405D-BCC0-8769098813A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {855567D5-A188-405D-BCC0-8769098813A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {855567D5-A188-405D-BCC0-8769098813A5}.Release|Any CPU.Build.0 = Release|Any CPU + {C2D74126-653E-41C9-9CF8-E58F1FD110B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2D74126-653E-41C9-9CF8-E58F1FD110B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2D74126-653E-41C9-9CF8-E58F1FD110B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2D74126-653E-41C9-9CF8-E58F1FD110B8}.Release|Any CPU.Build.0 = Release|Any CPU + {201E349A-1CC7-4591-8332-29BEBF3DAA49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {201E349A-1CC7-4591-8332-29BEBF3DAA49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {201E349A-1CC7-4591-8332-29BEBF3DAA49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {201E349A-1CC7-4591-8332-29BEBF3DAA49}.Release|Any CPU.Build.0 = Release|Any CPU + {52FC346D-2936-43FD-93A6-02F019A5F5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52FC346D-2936-43FD-93A6-02F019A5F5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52FC346D-2936-43FD-93A6-02F019A5F5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52FC346D-2936-43FD-93A6-02F019A5F5EC}.Release|Any CPU.Build.0 = Release|Any CPU + {829DAB88-0339-4F92-A954-E5586FDC0A7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {829DAB88-0339-4F92-A954-E5586FDC0A7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {829DAB88-0339-4F92-A954-E5586FDC0A7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {829DAB88-0339-4F92-A954-E5586FDC0A7A}.Release|Any CPU.Build.0 = Release|Any CPU + {3F8B63DA-BE4E-4580-A904-C047EA4A7347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F8B63DA-BE4E-4580-A904-C047EA4A7347}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F8B63DA-BE4E-4580-A904-C047EA4A7347}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F8B63DA-BE4E-4580-A904-C047EA4A7347}.Release|Any CPU.Build.0 = Release|Any CPU + {EEFBEDAF-C620-4C4E-867E-80A1EFEC4357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEFBEDAF-C620-4C4E-867E-80A1EFEC4357}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEFBEDAF-C620-4C4E-867E-80A1EFEC4357}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEFBEDAF-C620-4C4E-867E-80A1EFEC4357}.Release|Any CPU.Build.0 = Release|Any CPU + {D1909495-B957-4A31-BC79-04AA3F5C5E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1909495-B957-4A31-BC79-04AA3F5C5E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1909495-B957-4A31-BC79-04AA3F5C5E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1909495-B957-4A31-BC79-04AA3F5C5E0F}.Release|Any CPU.Build.0 = Release|Any CPU + {97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97BBCB3E-6924-4EE7-94AD-9B2B793A7ABD}.Release|Any CPU.Build.0 = Release|Any CPU + {9E04AD65-21BC-4FF4-B38C-9B17488AACA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E04AD65-21BC-4FF4-B38C-9B17488AACA5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E04AD65-21BC-4FF4-B38C-9B17488AACA5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E04AD65-21BC-4FF4-B38C-9B17488AACA5}.Release|Any CPU.Build.0 = Release|Any CPU + {76812DB0-A6A2-4F0C-B560-18FC7A97E419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76812DB0-A6A2-4F0C-B560-18FC7A97E419}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76812DB0-A6A2-4F0C-B560-18FC7A97E419}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76812DB0-A6A2-4F0C-B560-18FC7A97E419}.Release|Any CPU.Build.0 = Release|Any CPU + {4EC57148-D181-49B9-BDAF-1735D4687C79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EC57148-D181-49B9-BDAF-1735D4687C79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EC57148-D181-49B9-BDAF-1735D4687C79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EC57148-D181-49B9-BDAF-1735D4687C79}.Release|Any CPU.Build.0 = Release|Any CPU + {2A203F48-05D2-4E45-8A98-98F02EE639A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A203F48-05D2-4E45-8A98-98F02EE639A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A203F48-05D2-4E45-8A98-98F02EE639A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A203F48-05D2-4E45-8A98-98F02EE639A8}.Release|Any CPU.Build.0 = Release|Any CPU + {53F1E058-B5A4-4348-9BE6-8B006A6861AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F1E058-B5A4-4348-9BE6-8B006A6861AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F1E058-B5A4-4348-9BE6-8B006A6861AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F1E058-B5A4-4348-9BE6-8B006A6861AF}.Release|Any CPU.Build.0 = Release|Any CPU + {0059505B-9A88-4FC5-8583-E497ECFEA0F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0059505B-9A88-4FC5-8583-E497ECFEA0F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0059505B-9A88-4FC5-8583-E497ECFEA0F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0059505B-9A88-4FC5-8583-E497ECFEA0F4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {A28B0064-EFB2-4B77-B97C-DECF5DAB074E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6F8576C2-6CD0-4DF3-8394-00B002D82E40} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B37248D0-B191-4971-AD50-01CFEDF1E09B} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B10D4AA3-247D-498A-84DD-ABAE8FE65093} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F153909E-6E31-4502-B353-AAA99D13C50D} + SolutionGuid = {5ED3739E-C629-4900-BC1B-DF714AB4BB45} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs index ef3b0e6aa9f7..40c2cc60dece 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs @@ -255,18 +255,16 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) throw new CryptographicException(); } - Tuple[] elements = ParseResults(_chainHandle!, _revocationMode); + (X509Certificate2, int)[] elements = ParseResults(_chainHandle!, _revocationMode); Debug.Assert(elements.Length > 0); if (!IsPolicyMatch(elements, applicationPolicy, certificatePolicy)) { for (int i = 0; i < elements.Length; i++) { - Tuple currentValue = elements[i]; + (X509Certificate2, int) currentValue = elements[i]; - elements[i] = Tuple.Create( - currentValue.Item1, - currentValue.Item2 | (int)X509ChainStatusFlags.NotValidForUsage); + elements[i] = (currentValue.Item1, currentValue.Item2 | (int)X509ChainStatusFlags.NotValidForUsage); } } @@ -274,12 +272,12 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) BuildAndSetProperties(elements); } - private static Tuple[] ParseResults( + private static (X509Certificate2, int)[] ParseResults( SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) { long elementCount = Interop.AppleCrypto.X509ChainGetChainSize(chainHandle); - var elements = new Tuple[elementCount]; + var elements = new (X509Certificate2, int)[elementCount]; using (var trustResults = Interop.AppleCrypto.X509ChainGetTrustResults(chainHandle)) { @@ -303,7 +301,7 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) FixupStatus(cert, revocationMode, ref dwStatus); - elements[elementIdx] = Tuple.Create(cert, dwStatus); + elements[elementIdx] = (cert, dwStatus); } } @@ -311,7 +309,7 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) } private bool IsPolicyMatch( - Tuple[] elements, + (X509Certificate2, int)[] elements, OidCollection applicationPolicy, OidCollection certificatePolicy) { @@ -319,9 +317,9 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) { List certsToRead = new List(); - foreach (var element in elements) + for (int i = 0; i < elements.Length; i++) { - certsToRead.Add(element.Item1); + certsToRead.Add(elements[i].Item1); } CertificatePolicyChain policyChain = new CertificatePolicyChain(certsToRead); @@ -346,14 +344,14 @@ private SafeCreateHandle GetCertsArray(IList safeHandles) return true; } - private void BuildAndSetProperties(Tuple[] elementTuples) + private void BuildAndSetProperties((X509Certificate2, int)[] elementTuples) { X509ChainElement[] elements = new X509ChainElement[elementTuples.Length]; int allStatus = 0; for (int i = 0; i < elementTuples.Length; i++) { - Tuple tuple = elementTuples[i]; + (X509Certificate2, int) tuple = elementTuples[i]; elements[i] = BuildElement(tuple.Item1, tuple.Item2); allStatus |= tuple.Item2; @@ -366,14 +364,14 @@ private void BuildAndSetProperties(Tuple[] elementTuples) } private static void FixupRevocationStatus( - Tuple[] elements, + (X509Certificate2, int)[] elements, X509RevocationFlag revocationFlag) { if (revocationFlag == X509RevocationFlag.ExcludeRoot) { // When requested int idx = elements.Length - 1; - Tuple element = elements[idx]; + (X509Certificate2, int) element = elements[idx]; X509ChainStatusFlags statusFlags = (X509ChainStatusFlags)element.Item2; // Apple will terminate the chain at the first "root" or "trustAsRoot" certificate @@ -383,7 +381,7 @@ private void BuildAndSetProperties(Tuple[] elementTuples) if ((statusFlags & X509ChainStatusFlags.PartialChain) == 0) { statusFlags &= ~RevocationRelevantFlags; - elements[idx] = Tuple.Create(element.Item1, (int)statusFlags); + elements[idx] = (element.Item1, (int)statusFlags); } } else if (revocationFlag == X509RevocationFlag.EndCertificateOnly) @@ -393,11 +391,11 @@ private void BuildAndSetProperties(Tuple[] elementTuples) // Start at element 1, and move to the end. for (int i = 1; i < elements.Length; i++) { - Tuple element = elements[i]; + (X509Certificate2, int) element = elements[i]; X509ChainStatusFlags statusFlags = (X509ChainStatusFlags)element.Item2; statusFlags &= ~RevocationRelevantFlags; - elements[i] = Tuple.Create(element.Item1, (int)statusFlags); + elements[i] = (element.Item1, (int)statusFlags); } } } diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CachedSystemStoreProvider.cs b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CachedSystemStoreProvider.cs index b3d7ce1d1a8f..d78e648a0005 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CachedSystemStoreProvider.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CachedSystemStoreProvider.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Linq; using System.Runtime.InteropServices; using System.Security.Cryptography.X509Certificates; using System.Threading; diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/Interop.crypt32.cs b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/Interop.crypt32.cs index 92cd68f0c03a..2b59f383266d 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/Interop.crypt32.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/Interop.crypt32.cs @@ -150,18 +150,32 @@ public static SafeCertStoreHandle CertOpenStore(CertStoreProvider lpszStoreProvi /// the next certificate in the iteration. The final call sets pCertContext to an invalid SafeCertStoreHandle /// and returns "false" to indicate the end of the store has been reached. /// - public static bool CertEnumCertificatesInStore(SafeCertStoreHandle hCertStore, [NotNull] ref SafeCertContextHandle? pCertContext) + public static unsafe bool CertEnumCertificatesInStore(SafeCertStoreHandle hCertStore, [NotNull] ref SafeCertContextHandle? pCertContext) { - unsafe + CERT_CONTEXT* pPrevCertContext; + if (pCertContext == null) { - CERT_CONTEXT* pPrevCertContext = pCertContext == null ? null : pCertContext.Disconnect(); - pCertContext = CertEnumCertificatesInStore(hCertStore, pPrevCertContext); - return !pCertContext.IsInvalid; + pCertContext = new SafeCertContextHandle(); + pPrevCertContext = null; } + else + { + pPrevCertContext = pCertContext.Disconnect(); + } + + pCertContext.SetHandle((IntPtr)CertEnumCertificatesInStore(hCertStore, pPrevCertContext)); + + if (!pCertContext.IsInvalid) + { + return true; + } + + pCertContext.Dispose(); + return false; } [DllImport(Libraries.Crypt32, CharSet = CharSet.Unicode, SetLastError = true)] - private static extern unsafe SafeCertContextHandle CertEnumCertificatesInStore(SafeCertStoreHandle hCertStore, CERT_CONTEXT* pPrevCertContext); + private static extern unsafe CERT_CONTEXT* CertEnumCertificatesInStore(SafeCertStoreHandle hCertStore, CERT_CONTEXT* pPrevCertContext); [DllImport(Libraries.Crypt32, CharSet = CharSet.Unicode, SetLastError = true)] public static extern SafeCertStoreHandle PFXImportCertStore([In] ref CRYPTOAPI_BLOB pPFX, SafePasswordHandle password, PfxCertStoreFlags dwFlags); diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/SafeHandles.cs b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/SafeHandles.cs index 4643f6fa211c..4c3ba2011b67 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/SafeHandles.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/Native/SafeHandles.cs @@ -62,6 +62,8 @@ public SafeCertContextHandle(SafeCertContextHandle parent) SetHandle(_parent.handle); } + internal new void SetHandle(IntPtr handle) => base.SetHandle(handle); + protected override bool ReleaseHandle() { if (_parent != null) diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/tests/RevocationTests/TimeoutTests.cs b/src/libraries/System.Security.Cryptography.X509Certificates/tests/RevocationTests/TimeoutTests.cs index bda193030e40..59d72a330e30 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/tests/RevocationTests/TimeoutTests.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/tests/RevocationTests/TimeoutTests.cs @@ -38,7 +38,7 @@ public static void RevocationCheckingDelayed(PkiOptions pkiOptions) X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; // This needs to be greater than delay, but less than 2x delay to ensure // that the time is a timeout for individual fetches, not a running total. @@ -90,7 +90,7 @@ public static void RevocationCheckingTimeout(PkiOptions pkiOptions) X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(1); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; @@ -148,7 +148,7 @@ public static void RevocationCheckingMaximum(PkiOptions pkiOptions) X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromMinutes(2); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; @@ -200,7 +200,7 @@ public static void RevocationCheckingNegativeTimeout(PkiOptions pkiOptions) X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromMinutes(-1); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; @@ -216,6 +216,47 @@ public static void RevocationCheckingNegativeTimeout(PkiOptions pkiOptions) }); } + [Theory] + [InlineData(DelayedActionsFlag.Ocsp)] + [InlineData(DelayedActionsFlag.Crl)] + [PlatformSpecific(TestPlatforms.Windows | TestPlatforms.Linux)] + public static void RevocationCheckingTimeoutFallbackToOther(DelayedActionsFlag delayFlags) + { + RetryHelper.Execute(() => { + CertificateAuthority.BuildPrivatePki( + PkiOptions.AllRevocation, + out RevocationResponder responder, + out CertificateAuthority rootAuthority, + out CertificateAuthority intermediateAuthority, + out X509Certificate2 endEntityCert, + nameof(RevocationCheckingTimeoutFallbackToOther)); + + using (responder) + using (rootAuthority) + using (intermediateAuthority) + using (endEntityCert) + using (ChainHolder holder = new ChainHolder()) + using (X509Certificate2 rootCert = rootAuthority.CloneIssuerCert()) + using (X509Certificate2 intermediateCert = intermediateAuthority.CloneIssuerCert()) + { + X509Chain chain = holder.Chain; + responder.ResponseDelay = TimeSpan.FromSeconds(8); + responder.DelayedActions = delayFlags; + + chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(4); + chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; + chain.ChainPolicy.CustomTrustStore.Add(rootCert); + chain.ChainPolicy.ExtraStore.Add(intermediateCert); + chain.ChainPolicy.RevocationMode = X509RevocationMode.Online; + chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly; + + chain.ChainPolicy.DisableCertificateDownloads = true; + + Assert.True(chain.Build(endEntityCert), $"chain.Build; Chain status: {chain.AllStatusFlags()}"); + } + }); + } + [Fact] [PlatformSpecific(TestPlatforms.Linux)] public static void AiaFetchDelayed() @@ -241,7 +282,7 @@ public static void AiaFetchDelayed() X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(15); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; @@ -281,7 +322,7 @@ public static void AiaFetchTimeout() X509Chain chain = holder.Chain; responder.ResponseDelay = delay; - responder.DelayedActions = RevocationResponder.DelayedActionsFlag.All; + responder.DelayedActions = DelayedActionsFlag.All; chain.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(2); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; diff --git a/src/libraries/System.Security.Cryptography.Xml/System.Security.Cryptography.Xml.sln b/src/libraries/System.Security.Cryptography.Xml/System.Security.Cryptography.Xml.sln index 4fa94c1febf0..ba354295d577 100644 --- a/src/libraries/System.Security.Cryptography.Xml/System.Security.Cryptography.Xml.sln +++ b/src/libraries/System.Security.Cryptography.Xml/System.Security.Cryptography.Xml.sln @@ -1,60 +1,135 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml.Tests", "tests\System.Security.Cryptography.Xml.Tests.csproj", "{4A85232C-E914-4E06-8542-26DAF4B22D60}" - ProjectSection(ProjectDependencies) = postProject - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A} = {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B3180E55-B9B3-4B71-8A52-DDDCB3E39F77}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "src\System.Security.Cryptography.Xml.csproj", "{0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A}" - ProjectSection(ProjectDependencies) = postProject - {C7266957-DB20-4250-9C2E-E1FF83EDBD71} = {C7266957-DB20-4250-9C2E-E1FF83EDBD71} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{20F477F1-0708-43AF-9521-69C8DB54AA46}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "ref\System.Security.Cryptography.Xml.csproj", "{C7266957-DB20-4250-9C2E-E1FF83EDBD71}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{F2034D74-55F1-4055-AC85-12F80A7E56CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FB3C7609-962F-4414-8702-B3D4121AC51B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{158DDF64-D678-492E-A38A-0EE12E096F84}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{504B9542-8D3F-4E86-B3DA-CC3B009337F2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{50DC25BA-7590-40F0-B579-402F51040995}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "ref\System.Security.Cryptography.Xml.csproj", "{2BB35F95-AD1A-45D3-B8E2-84CC690073A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml", "src\System.Security.Cryptography.Xml.csproj", "{848640EF-9F7D-4D01-AA87-E16617FDEE0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Cryptography.Xml.Tests", "tests\System.Security.Cryptography.Xml.Tests.csproj", "{675D4EE3-1F0E-4445-A9CD-635ED3351751}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\ref\System.Security.Permissions.csproj", "{42320794-D862-4CD4-9D67-F667A8820AA6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "..\System.Security.Permissions\src\System.Security.Permissions.csproj", "{B52971E5-EABD-4BE9-942A-EDAA290DB09B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{024A3245-5F94-4EFA-A8E7-4F68BC3AB578}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{6D66988A-4D72-466B-ADE2-2011C5906A2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{28200C76-F42D-4E11-B948-C8D9193A58A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{404253AC-EAFF-488F-8980-2249F4703278}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{928942C8-844E-4108-BB56-385FC622C0A2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42C92222-6242-4374-8D45-7A79EA117479}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B3180E55-B9B3-4B71-8A52-DDDCB3E39F77} = {928942C8-844E-4108-BB56-385FC622C0A2} + {675D4EE3-1F0E-4445-A9CD-635ED3351751} = {928942C8-844E-4108-BB56-385FC622C0A2} + {20F477F1-0708-43AF-9521-69C8DB54AA46} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {F2034D74-55F1-4055-AC85-12F80A7E56CD} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {FB3C7609-962F-4414-8702-B3D4121AC51B} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {504B9542-8D3F-4E86-B3DA-CC3B009337F2} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {2BB35F95-AD1A-45D3-B8E2-84CC690073A8} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {42320794-D862-4CD4-9D67-F667A8820AA6} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {024A3245-5F94-4EFA-A8E7-4F68BC3AB578} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {28200C76-F42D-4E11-B948-C8D9193A58A1} = {DC2A53DC-8E9A-4395-B01A-54BBC4CAB49F} + {158DDF64-D678-492E-A38A-0EE12E096F84} = {42C92222-6242-4374-8D45-7A79EA117479} + {4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2} = {42C92222-6242-4374-8D45-7A79EA117479} + {848640EF-9F7D-4D01-AA87-E16617FDEE0B} = {42C92222-6242-4374-8D45-7A79EA117479} + {B52971E5-EABD-4BE9-942A-EDAA290DB09B} = {42C92222-6242-4374-8D45-7A79EA117479} + {6D66988A-4D72-466B-ADE2-2011C5906A2A} = {42C92222-6242-4374-8D45-7A79EA117479} + {404253AC-EAFF-488F-8980-2249F4703278} = {42C92222-6242-4374-8D45-7A79EA117479} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4A85232C-E914-4E06-8542-26DAF4B22D60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A85232C-E914-4E06-8542-26DAF4B22D60}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A85232C-E914-4E06-8542-26DAF4B22D60}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A85232C-E914-4E06-8542-26DAF4B22D60}.Release|Any CPU.Build.0 = Release|Any CPU - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A}.Release|Any CPU.Build.0 = Release|Any CPU - {C7266957-DB20-4250-9C2E-E1FF83EDBD71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7266957-DB20-4250-9C2E-E1FF83EDBD71}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7266957-DB20-4250-9C2E-E1FF83EDBD71}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7266957-DB20-4250-9C2E-E1FF83EDBD71}.Release|Any CPU.Build.0 = Release|Any CPU - {50DC25BA-7590-40F0-B579-402F51040995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50DC25BA-7590-40F0-B579-402F51040995}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50DC25BA-7590-40F0-B579-402F51040995}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50DC25BA-7590-40F0-B579-402F51040995}.Release|Any CPU.Build.0 = Release|Any CPU + {B3180E55-B9B3-4B71-8A52-DDDCB3E39F77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3180E55-B9B3-4B71-8A52-DDDCB3E39F77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3180E55-B9B3-4B71-8A52-DDDCB3E39F77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3180E55-B9B3-4B71-8A52-DDDCB3E39F77}.Release|Any CPU.Build.0 = Release|Any CPU + {20F477F1-0708-43AF-9521-69C8DB54AA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20F477F1-0708-43AF-9521-69C8DB54AA46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20F477F1-0708-43AF-9521-69C8DB54AA46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20F477F1-0708-43AF-9521-69C8DB54AA46}.Release|Any CPU.Build.0 = Release|Any CPU + {F2034D74-55F1-4055-AC85-12F80A7E56CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2034D74-55F1-4055-AC85-12F80A7E56CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2034D74-55F1-4055-AC85-12F80A7E56CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2034D74-55F1-4055-AC85-12F80A7E56CD}.Release|Any CPU.Build.0 = Release|Any CPU + {FB3C7609-962F-4414-8702-B3D4121AC51B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB3C7609-962F-4414-8702-B3D4121AC51B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB3C7609-962F-4414-8702-B3D4121AC51B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB3C7609-962F-4414-8702-B3D4121AC51B}.Release|Any CPU.Build.0 = Release|Any CPU + {158DDF64-D678-492E-A38A-0EE12E096F84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {158DDF64-D678-492E-A38A-0EE12E096F84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {158DDF64-D678-492E-A38A-0EE12E096F84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {158DDF64-D678-492E-A38A-0EE12E096F84}.Release|Any CPU.Build.0 = Release|Any CPU + {504B9542-8D3F-4E86-B3DA-CC3B009337F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {504B9542-8D3F-4E86-B3DA-CC3B009337F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {504B9542-8D3F-4E86-B3DA-CC3B009337F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {504B9542-8D3F-4E86-B3DA-CC3B009337F2}.Release|Any CPU.Build.0 = Release|Any CPU + {4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F5D04A1-AB8E-4EDF-92B1-534DB2977FA2}.Release|Any CPU.Build.0 = Release|Any CPU + {2BB35F95-AD1A-45D3-B8E2-84CC690073A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BB35F95-AD1A-45D3-B8E2-84CC690073A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BB35F95-AD1A-45D3-B8E2-84CC690073A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BB35F95-AD1A-45D3-B8E2-84CC690073A8}.Release|Any CPU.Build.0 = Release|Any CPU + {848640EF-9F7D-4D01-AA87-E16617FDEE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {848640EF-9F7D-4D01-AA87-E16617FDEE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {848640EF-9F7D-4D01-AA87-E16617FDEE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {848640EF-9F7D-4D01-AA87-E16617FDEE0B}.Release|Any CPU.Build.0 = Release|Any CPU + {675D4EE3-1F0E-4445-A9CD-635ED3351751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {675D4EE3-1F0E-4445-A9CD-635ED3351751}.Debug|Any CPU.Build.0 = Debug|Any CPU + {675D4EE3-1F0E-4445-A9CD-635ED3351751}.Release|Any CPU.ActiveCfg = Release|Any CPU + {675D4EE3-1F0E-4445-A9CD-635ED3351751}.Release|Any CPU.Build.0 = Release|Any CPU + {42320794-D862-4CD4-9D67-F667A8820AA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42320794-D862-4CD4-9D67-F667A8820AA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42320794-D862-4CD4-9D67-F667A8820AA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42320794-D862-4CD4-9D67-F667A8820AA6}.Release|Any CPU.Build.0 = Release|Any CPU + {B52971E5-EABD-4BE9-942A-EDAA290DB09B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B52971E5-EABD-4BE9-942A-EDAA290DB09B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B52971E5-EABD-4BE9-942A-EDAA290DB09B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B52971E5-EABD-4BE9-942A-EDAA290DB09B}.Release|Any CPU.Build.0 = Release|Any CPU + {024A3245-5F94-4EFA-A8E7-4F68BC3AB578}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {024A3245-5F94-4EFA-A8E7-4F68BC3AB578}.Debug|Any CPU.Build.0 = Debug|Any CPU + {024A3245-5F94-4EFA-A8E7-4F68BC3AB578}.Release|Any CPU.ActiveCfg = Release|Any CPU + {024A3245-5F94-4EFA-A8E7-4F68BC3AB578}.Release|Any CPU.Build.0 = Release|Any CPU + {6D66988A-4D72-466B-ADE2-2011C5906A2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D66988A-4D72-466B-ADE2-2011C5906A2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D66988A-4D72-466B-ADE2-2011C5906A2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D66988A-4D72-466B-ADE2-2011C5906A2A}.Release|Any CPU.Build.0 = Release|Any CPU + {28200C76-F42D-4E11-B948-C8D9193A58A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28200C76-F42D-4E11-B948-C8D9193A58A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28200C76-F42D-4E11-B948-C8D9193A58A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28200C76-F42D-4E11-B948-C8D9193A58A1}.Release|Any CPU.Build.0 = Release|Any CPU + {404253AC-EAFF-488F-8980-2249F4703278}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {404253AC-EAFF-488F-8980-2249F4703278}.Debug|Any CPU.Build.0 = Debug|Any CPU + {404253AC-EAFF-488F-8980-2249F4703278}.Release|Any CPU.ActiveCfg = Release|Any CPU + {404253AC-EAFF-488F-8980-2249F4703278}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4A85232C-E914-4E06-8542-26DAF4B22D60} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {0544EAE3-0CF2-4EA6-93BE-A9FF8B52724A} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {C7266957-DB20-4250-9C2E-E1FF83EDBD71} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {50DC25BA-7590-40F0-B579-402F51040995} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {53A61DC6-1798-4086-97EA-EBBF9FE9D6D1} + SolutionGuid = {E0287BE2-B499-4885-8EE8-0B35585CA885} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Permissions/Directory.Build.props b/src/libraries/System.Security.Permissions/Directory.Build.props index bdcfca3b543c..1db5968484c1 100644 --- a/src/libraries/System.Security.Permissions/Directory.Build.props +++ b/src/libraries/System.Security.Permissions/Directory.Build.props @@ -2,5 +2,6 @@ Open + true \ No newline at end of file diff --git a/src/libraries/System.Security.Permissions/System.Security.Permissions.sln b/src/libraries/System.Security.Permissions/System.Security.Permissions.sln index 5e7b33d99a32..2a7b54421aed 100644 --- a/src/libraries/System.Security.Permissions/System.Security.Permissions.sln +++ b/src/libraries/System.Security.Permissions/System.Security.Permissions.sln @@ -1,60 +1,149 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions.Tests", "tests\System.Security.Permissions.Tests.csproj", "{7517F1E9-EEB4-4676-A054-CE4A44A66B66}" - ProjectSection(ProjectDependencies) = postProject - {07390899-C8F6-4E83-A3A9-6867B8CB46A0} = {07390899-C8F6-4E83-A3A9-6867B8CB46A0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{74374CDE-23F8-4041-8F94-D5CBC23735C6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "src\System.Security.Permissions.csproj", "{07390899-C8F6-4E83-A3A9-6867B8CB46A0}" - ProjectSection(ProjectDependencies) = postProject - {07CAF142-B259-418E-86EF-C4BD8B50253E} = {07CAF142-B259-418E-86EF-C4BD8B50253E} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{2EC16C81-3395-4603-A760-AF9E5623CF1D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "ref\System.Security.Permissions.csproj", "{07CAF142-B259-418E-86EF-C4BD8B50253E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\ref\System.DirectoryServices.csproj", "{A629F9A5-1EA5-475F-9A49-29C81198CF34}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.DirectoryServices", "..\System.DirectoryServices\src\System.DirectoryServices.csproj", "{7E64D2D1-7ED9-490A-B658-5E2162F571D6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{E71E8D52-CF85-4713-9634-EB04CAE7F21A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\ref\System.IO.FileSystem.AccessControl.csproj", "{425A517E-3019-42B3-8716-A1B076B60E71}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.FileSystem.AccessControl", "..\System.IO.FileSystem.AccessControl\src\System.IO.FileSystem.AccessControl.csproj", "{81617FB4-9B76-41C2-9F20-085C6DAB2058}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{85FEB4C5-8566-4FEB-925B-C49B8EB10B66}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{A4AC5507-621D-4651-89D9-DB2444697CFF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{58A475C8-2753-44A7-8BB8-D4D5C86830D8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\src\System.Security.AccessControl.csproj", "{21DAD828-003D-4FB4-9F2B-4B4295DA5E06}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "ref\System.Security.Permissions.csproj", "{F238F227-522D-4886-A6B5-474948B3C660}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions", "src\System.Security.Permissions.csproj", "{CE88C6B8-C9B6-4695-BA23-BE8955018E26}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Permissions.Tests", "tests\System.Security.Permissions.Tests.csproj", "{B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{96AFAA70-4823-4350-89E7-DBB28EC2B7B9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj", "{01B09A8A-148B-410B-8905-33B14C3EBA8D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\ref\System.Windows.Extensions.csproj", "{19AB8565-1ADA-4E64-B5C8-FD2DA7525358}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "..\System.Windows.Extensions\src\System.Windows.Extensions.csproj", "{F2FF3B73-B971-4C07-B9C9-9EA600C288BD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{EF5BF55A-14FA-424D-87DB-A902EADF398E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{BFAF2236-6772-469A-9F4F-01D3DC76AC50}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{41EB5802-6C84-43F7-996D-FF2762D44206}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {74374CDE-23F8-4041-8F94-D5CBC23735C6} = {EF5BF55A-14FA-424D-87DB-A902EADF398E} + {B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1} = {EF5BF55A-14FA-424D-87DB-A902EADF398E} + {2EC16C81-3395-4603-A760-AF9E5623CF1D} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {A629F9A5-1EA5-475F-9A49-29C81198CF34} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {E71E8D52-CF85-4713-9634-EB04CAE7F21A} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {425A517E-3019-42B3-8716-A1B076B60E71} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {85FEB4C5-8566-4FEB-925B-C49B8EB10B66} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {58A475C8-2753-44A7-8BB8-D4D5C86830D8} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {F238F227-522D-4886-A6B5-474948B3C660} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {96AFAA70-4823-4350-89E7-DBB28EC2B7B9} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {19AB8565-1ADA-4E64-B5C8-FD2DA7525358} = {BFAF2236-6772-469A-9F4F-01D3DC76AC50} + {7E64D2D1-7ED9-490A-B658-5E2162F571D6} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {81617FB4-9B76-41C2-9F20-085C6DAB2058} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {A4AC5507-621D-4651-89D9-DB2444697CFF} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {21DAD828-003D-4FB4-9F2B-4B4295DA5E06} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {CE88C6B8-C9B6-4695-BA23-BE8955018E26} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {01B09A8A-148B-410B-8905-33B14C3EBA8D} = {41EB5802-6C84-43F7-996D-FF2762D44206} + {F2FF3B73-B971-4C07-B9C9-9EA600C288BD} = {41EB5802-6C84-43F7-996D-FF2762D44206} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7517F1E9-EEB4-4676-A054-CE4A44A66B66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7517F1E9-EEB4-4676-A054-CE4A44A66B66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7517F1E9-EEB4-4676-A054-CE4A44A66B66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7517F1E9-EEB4-4676-A054-CE4A44A66B66}.Release|Any CPU.Build.0 = Release|Any CPU - {07390899-C8F6-4E83-A3A9-6867B8CB46A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07390899-C8F6-4E83-A3A9-6867B8CB46A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07390899-C8F6-4E83-A3A9-6867B8CB46A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07390899-C8F6-4E83-A3A9-6867B8CB46A0}.Release|Any CPU.Build.0 = Release|Any CPU - {07CAF142-B259-418E-86EF-C4BD8B50253E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07CAF142-B259-418E-86EF-C4BD8B50253E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07CAF142-B259-418E-86EF-C4BD8B50253E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07CAF142-B259-418E-86EF-C4BD8B50253E}.Release|Any CPU.Build.0 = Release|Any CPU - {2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71}.Release|Any CPU.Build.0 = Release|Any CPU + {74374CDE-23F8-4041-8F94-D5CBC23735C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74374CDE-23F8-4041-8F94-D5CBC23735C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74374CDE-23F8-4041-8F94-D5CBC23735C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74374CDE-23F8-4041-8F94-D5CBC23735C6}.Release|Any CPU.Build.0 = Release|Any CPU + {2EC16C81-3395-4603-A760-AF9E5623CF1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EC16C81-3395-4603-A760-AF9E5623CF1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EC16C81-3395-4603-A760-AF9E5623CF1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EC16C81-3395-4603-A760-AF9E5623CF1D}.Release|Any CPU.Build.0 = Release|Any CPU + {A629F9A5-1EA5-475F-9A49-29C81198CF34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A629F9A5-1EA5-475F-9A49-29C81198CF34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A629F9A5-1EA5-475F-9A49-29C81198CF34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A629F9A5-1EA5-475F-9A49-29C81198CF34}.Release|Any CPU.Build.0 = Release|Any CPU + {7E64D2D1-7ED9-490A-B658-5E2162F571D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E64D2D1-7ED9-490A-B658-5E2162F571D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E64D2D1-7ED9-490A-B658-5E2162F571D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E64D2D1-7ED9-490A-B658-5E2162F571D6}.Release|Any CPU.Build.0 = Release|Any CPU + {E71E8D52-CF85-4713-9634-EB04CAE7F21A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E71E8D52-CF85-4713-9634-EB04CAE7F21A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E71E8D52-CF85-4713-9634-EB04CAE7F21A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E71E8D52-CF85-4713-9634-EB04CAE7F21A}.Release|Any CPU.Build.0 = Release|Any CPU + {425A517E-3019-42B3-8716-A1B076B60E71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {425A517E-3019-42B3-8716-A1B076B60E71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {425A517E-3019-42B3-8716-A1B076B60E71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {425A517E-3019-42B3-8716-A1B076B60E71}.Release|Any CPU.Build.0 = Release|Any CPU + {81617FB4-9B76-41C2-9F20-085C6DAB2058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81617FB4-9B76-41C2-9F20-085C6DAB2058}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81617FB4-9B76-41C2-9F20-085C6DAB2058}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81617FB4-9B76-41C2-9F20-085C6DAB2058}.Release|Any CPU.Build.0 = Release|Any CPU + {85FEB4C5-8566-4FEB-925B-C49B8EB10B66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85FEB4C5-8566-4FEB-925B-C49B8EB10B66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85FEB4C5-8566-4FEB-925B-C49B8EB10B66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85FEB4C5-8566-4FEB-925B-C49B8EB10B66}.Release|Any CPU.Build.0 = Release|Any CPU + {A4AC5507-621D-4651-89D9-DB2444697CFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4AC5507-621D-4651-89D9-DB2444697CFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4AC5507-621D-4651-89D9-DB2444697CFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4AC5507-621D-4651-89D9-DB2444697CFF}.Release|Any CPU.Build.0 = Release|Any CPU + {58A475C8-2753-44A7-8BB8-D4D5C86830D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58A475C8-2753-44A7-8BB8-D4D5C86830D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58A475C8-2753-44A7-8BB8-D4D5C86830D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58A475C8-2753-44A7-8BB8-D4D5C86830D8}.Release|Any CPU.Build.0 = Release|Any CPU + {21DAD828-003D-4FB4-9F2B-4B4295DA5E06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21DAD828-003D-4FB4-9F2B-4B4295DA5E06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21DAD828-003D-4FB4-9F2B-4B4295DA5E06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21DAD828-003D-4FB4-9F2B-4B4295DA5E06}.Release|Any CPU.Build.0 = Release|Any CPU + {F238F227-522D-4886-A6B5-474948B3C660}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F238F227-522D-4886-A6B5-474948B3C660}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F238F227-522D-4886-A6B5-474948B3C660}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F238F227-522D-4886-A6B5-474948B3C660}.Release|Any CPU.Build.0 = Release|Any CPU + {CE88C6B8-C9B6-4695-BA23-BE8955018E26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE88C6B8-C9B6-4695-BA23-BE8955018E26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE88C6B8-C9B6-4695-BA23-BE8955018E26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE88C6B8-C9B6-4695-BA23-BE8955018E26}.Release|Any CPU.Build.0 = Release|Any CPU + {B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9CD9B45-D3AC-433F-B316-6DB40FCCC8F1}.Release|Any CPU.Build.0 = Release|Any CPU + {96AFAA70-4823-4350-89E7-DBB28EC2B7B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96AFAA70-4823-4350-89E7-DBB28EC2B7B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96AFAA70-4823-4350-89E7-DBB28EC2B7B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96AFAA70-4823-4350-89E7-DBB28EC2B7B9}.Release|Any CPU.Build.0 = Release|Any CPU + {01B09A8A-148B-410B-8905-33B14C3EBA8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01B09A8A-148B-410B-8905-33B14C3EBA8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01B09A8A-148B-410B-8905-33B14C3EBA8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01B09A8A-148B-410B-8905-33B14C3EBA8D}.Release|Any CPU.Build.0 = Release|Any CPU + {19AB8565-1ADA-4E64-B5C8-FD2DA7525358}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19AB8565-1ADA-4E64-B5C8-FD2DA7525358}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19AB8565-1ADA-4E64-B5C8-FD2DA7525358}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19AB8565-1ADA-4E64-B5C8-FD2DA7525358}.Release|Any CPU.Build.0 = Release|Any CPU + {F2FF3B73-B971-4C07-B9C9-9EA600C288BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2FF3B73-B971-4C07-B9C9-9EA600C288BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2FF3B73-B971-4C07-B9C9-9EA600C288BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2FF3B73-B971-4C07-B9C9-9EA600C288BD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {7517F1E9-EEB4-4676-A054-CE4A44A66B66} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {07390899-C8F6-4E83-A3A9-6867B8CB46A0} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {07CAF142-B259-418E-86EF-C4BD8B50253E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {2099802E-5EA6-4EAB-8EE0-2BB2B1AD0B71} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4BAFEB16-A9FB-4A42-BA81-FDEF4EFF0E36} + SolutionGuid = {3A482AFF-93CE-43E0-9C2A-64424A25D364} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs index 0ef3beb0bad3..88e6cd47c146 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs @@ -1327,7 +1327,7 @@ public sealed partial class PrincipalPermission : System.Security.IPermission, S public PrincipalPermission(string name, string role, bool isAuthenticated) { } public System.Security.IPermission Copy() { throw null; } public void Demand() { } - public override bool Equals(object o) { throw null; } + public override bool Equals(object obj) { throw null; } public void FromXml(System.Security.SecurityElement elem) { } public override int GetHashCode() { throw null; } public System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; } @@ -2323,7 +2323,7 @@ public sealed partial class UrlMembershipCondition : System.Security.ISecurityEn public string Url { get { throw null; } set { } } public bool Check(System.Security.Policy.Evidence evidence) { throw null; } public System.Security.Policy.IMembershipCondition Copy() { throw null; } - public override bool Equals(object o) { throw null; } + public override bool Equals(object obj) { throw null; } public void FromXml(System.Security.SecurityElement e) { } public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) { } public override int GetHashCode() { throw null; } diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.netcoreapp.cs b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.netcoreapp.cs index 6de1351b17e5..4ed1e3eea90e 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.netcoreapp.cs +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.netcoreapp.cs @@ -14,6 +14,7 @@ public sealed partial class XamlLoadPermission : System.Security.CodeAccessPermi public XamlLoadPermission(System.Collections.Generic.IEnumerable allowedAccess) { } public XamlLoadPermission(System.Security.Permissions.PermissionState state) { } public XamlLoadPermission(System.Xaml.Permissions.XamlAccessLevel allowedAccess) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] public System.Collections.Generic.IList AllowedAccess { get { throw null; } } public override System.Security.IPermission Copy() { throw null; } public override bool Equals(object obj) { throw null; } diff --git a/src/libraries/System.Security.Permissions/src/System/Data/Common/DBDataPermission.cs b/src/libraries/System.Security.Permissions/src/System/Data/Common/DBDataPermission.cs index d6d97f1aa61c..7b23c5e9aed0 100644 --- a/src/libraries/System.Security.Permissions/src/System/Data/Common/DBDataPermission.cs +++ b/src/libraries/System.Security.Permissions/src/System/Data/Common/DBDataPermission.cs @@ -12,20 +12,20 @@ namespace System.Data.Common public abstract class DBDataPermission : CodeAccessPermission, IUnrestrictedPermission { protected DBDataPermission() { } - protected DBDataPermission(DBDataPermission dataPermission) { } - protected DBDataPermission(DBDataPermissionAttribute attribute) { } + protected DBDataPermission(DBDataPermission permission) { } + protected DBDataPermission(DBDataPermissionAttribute permissionAttribute) { } protected DBDataPermission(PermissionState state) { } - protected DBDataPermission(PermissionState state, bool blankPassword) { } + protected DBDataPermission(PermissionState state, bool allowBlankPassword) { } public bool AllowBlankPassword { get; set; } public virtual void Add(string connectionString, string restrictions, KeyRestrictionBehavior behavior) { } protected void Clear() { } protected virtual DBDataPermission CreateInstance() => null; public override IPermission Copy() => null; - public override void FromXml(SecurityElement elem) { } + public override void FromXml(SecurityElement securityElement) { } public override IPermission Intersect(IPermission target) => null; public override bool IsSubsetOf(IPermission target) => false; public bool IsUnrestricted() => false; public override SecurityElement ToXml() => null; - public override IPermission Union(IPermission other) { return default(IPermission); } + public override IPermission Union(IPermission target) { return default(IPermission); } } } diff --git a/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs index 12e7abe0a0f2..cc98e5d7774f 100644 --- a/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs +++ b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; @@ -21,6 +22,7 @@ public sealed class XamlLoadPermission : CodeAccessPermission, IUnrestrictedPerm public override bool Equals(object obj) { return ReferenceEquals(this, obj); } [ComVisible(false)] public override int GetHashCode() { return base.GetHashCode(); } + [SupportedOSPlatform("windows")] public IList AllowedAccess { get; private set; } = new ReadOnlyCollection(Array.Empty()); public override IPermission Copy() { return new XamlLoadPermission(PermissionState.Unrestricted); } public override void FromXml(SecurityElement elem) { } diff --git a/src/libraries/System.Security.Principal.Windows/System.Security.Principal.Windows.sln b/src/libraries/System.Security.Principal.Windows/System.Security.Principal.Windows.sln index 94db410b84bd..ffde9a866a41 100644 --- a/src/libraries/System.Security.Principal.Windows/System.Security.Principal.Windows.sln +++ b/src/libraries/System.Security.Principal.Windows/System.Security.Principal.Windows.sln @@ -1,60 +1,79 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows.Tests", "tests\System.Security.Principal.Windows.Tests.csproj", "{6C36F3AC-54A1-4021-9F5D-CDEFF7347277}" - ProjectSection(ProjectDependencies) = postProject - {F9E9894E-2513-4085-9046-311AD49D8AE6} = {F9E9894E-2513-4085-9046-311AD49D8AE6} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1F05702D-1F77-4EA3-AFB2-94893104F248}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "src\System.Security.Principal.Windows.csproj", "{F9E9894E-2513-4085-9046-311AD49D8AE6}" - ProjectSection(ProjectDependencies) = postProject - {25A02E40-D12C-4184-B599-E4F954D142DB} = {25A02E40-D12C-4184-B599-E4F954D142DB} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{DBF0307E-E88A-4155-85AC-E532BE33AE14}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "ref\System.Security.Principal.Windows.csproj", "{25A02E40-D12C-4184-B599-E4F954D142DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{61C7DD7C-76A8-4103-89B6-13A819871E20}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{C4E3304E-6916-4352-BD79-AE4274B75A1E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{116A2823-528E-4BE7-8DD7-0E4118285542}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "ref\System.Security.Principal.Windows.csproj", "{F6A57CBE-E4F4-444A-8CFA-918D1124BC93}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{348DFAFA-6DBE-4FAA-9990-DC50E9AC416B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "src\System.Security.Principal.Windows.csproj", "{AA2C3AEB-53FA-4F69-8769-89DCE8221299}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows.Tests", "tests\System.Security.Principal.Windows.Tests.csproj", "{9310D24A-AB63-4CB0-9718-A8C2D57C20FE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BFA40A55-F5F4-415B-B4EA-EBCC626E20A8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{922AF82E-D993-4FA1-B076-0342CB45A156}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{56A50198-EEDC-4AA8-9C5B-E7A4372914A6}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {1F05702D-1F77-4EA3-AFB2-94893104F248} = {BFA40A55-F5F4-415B-B4EA-EBCC626E20A8} + {9310D24A-AB63-4CB0-9718-A8C2D57C20FE} = {BFA40A55-F5F4-415B-B4EA-EBCC626E20A8} + {DBF0307E-E88A-4155-85AC-E532BE33AE14} = {922AF82E-D993-4FA1-B076-0342CB45A156} + {61C7DD7C-76A8-4103-89B6-13A819871E20} = {922AF82E-D993-4FA1-B076-0342CB45A156} + {116A2823-528E-4BE7-8DD7-0E4118285542} = {922AF82E-D993-4FA1-B076-0342CB45A156} + {F6A57CBE-E4F4-444A-8CFA-918D1124BC93} = {922AF82E-D993-4FA1-B076-0342CB45A156} + {C4E3304E-6916-4352-BD79-AE4274B75A1E} = {56A50198-EEDC-4AA8-9C5B-E7A4372914A6} + {AA2C3AEB-53FA-4F69-8769-89DCE8221299} = {56A50198-EEDC-4AA8-9C5B-E7A4372914A6} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6C36F3AC-54A1-4021-9F5D-CDEFF7347277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C36F3AC-54A1-4021-9F5D-CDEFF7347277}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C36F3AC-54A1-4021-9F5D-CDEFF7347277}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C36F3AC-54A1-4021-9F5D-CDEFF7347277}.Release|Any CPU.Build.0 = Release|Any CPU - {F9E9894E-2513-4085-9046-311AD49D8AE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9E9894E-2513-4085-9046-311AD49D8AE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9E9894E-2513-4085-9046-311AD49D8AE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9E9894E-2513-4085-9046-311AD49D8AE6}.Release|Any CPU.Build.0 = Release|Any CPU - {25A02E40-D12C-4184-B599-E4F954D142DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25A02E40-D12C-4184-B599-E4F954D142DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25A02E40-D12C-4184-B599-E4F954D142DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25A02E40-D12C-4184-B599-E4F954D142DB}.Release|Any CPU.Build.0 = Release|Any CPU - {348DFAFA-6DBE-4FAA-9990-DC50E9AC416B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {348DFAFA-6DBE-4FAA-9990-DC50E9AC416B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {348DFAFA-6DBE-4FAA-9990-DC50E9AC416B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {348DFAFA-6DBE-4FAA-9990-DC50E9AC416B}.Release|Any CPU.Build.0 = Release|Any CPU + {1F05702D-1F77-4EA3-AFB2-94893104F248}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F05702D-1F77-4EA3-AFB2-94893104F248}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F05702D-1F77-4EA3-AFB2-94893104F248}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F05702D-1F77-4EA3-AFB2-94893104F248}.Release|Any CPU.Build.0 = Release|Any CPU + {DBF0307E-E88A-4155-85AC-E532BE33AE14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBF0307E-E88A-4155-85AC-E532BE33AE14}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBF0307E-E88A-4155-85AC-E532BE33AE14}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBF0307E-E88A-4155-85AC-E532BE33AE14}.Release|Any CPU.Build.0 = Release|Any CPU + {61C7DD7C-76A8-4103-89B6-13A819871E20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61C7DD7C-76A8-4103-89B6-13A819871E20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61C7DD7C-76A8-4103-89B6-13A819871E20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61C7DD7C-76A8-4103-89B6-13A819871E20}.Release|Any CPU.Build.0 = Release|Any CPU + {C4E3304E-6916-4352-BD79-AE4274B75A1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4E3304E-6916-4352-BD79-AE4274B75A1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4E3304E-6916-4352-BD79-AE4274B75A1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4E3304E-6916-4352-BD79-AE4274B75A1E}.Release|Any CPU.Build.0 = Release|Any CPU + {116A2823-528E-4BE7-8DD7-0E4118285542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {116A2823-528E-4BE7-8DD7-0E4118285542}.Debug|Any CPU.Build.0 = Debug|Any CPU + {116A2823-528E-4BE7-8DD7-0E4118285542}.Release|Any CPU.ActiveCfg = Release|Any CPU + {116A2823-528E-4BE7-8DD7-0E4118285542}.Release|Any CPU.Build.0 = Release|Any CPU + {F6A57CBE-E4F4-444A-8CFA-918D1124BC93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6A57CBE-E4F4-444A-8CFA-918D1124BC93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6A57CBE-E4F4-444A-8CFA-918D1124BC93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6A57CBE-E4F4-444A-8CFA-918D1124BC93}.Release|Any CPU.Build.0 = Release|Any CPU + {AA2C3AEB-53FA-4F69-8769-89DCE8221299}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA2C3AEB-53FA-4F69-8769-89DCE8221299}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA2C3AEB-53FA-4F69-8769-89DCE8221299}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA2C3AEB-53FA-4F69-8769-89DCE8221299}.Release|Any CPU.Build.0 = Release|Any CPU + {9310D24A-AB63-4CB0-9718-A8C2D57C20FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9310D24A-AB63-4CB0-9718-A8C2D57C20FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9310D24A-AB63-4CB0-9718-A8C2D57C20FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9310D24A-AB63-4CB0-9718-A8C2D57C20FE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {6C36F3AC-54A1-4021-9F5D-CDEFF7347277} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {F9E9894E-2513-4085-9046-311AD49D8AE6} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {25A02E40-D12C-4184-B599-E4F954D142DB} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {348DFAFA-6DBE-4FAA-9990-DC50E9AC416B} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C1987ECC-F822-45E1-8652-9C4CE1E41A88} + SolutionGuid = {F45E7C49-4541-4445-ADF1-DD57AF4E13F5} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Security.Principal.Windows/pkg/System.Security.Principal.Windows.pkgproj b/src/libraries/System.Security.Principal.Windows/pkg/System.Security.Principal.Windows.pkgproj index 0bfe3fcb47c2..bfe20bca7a21 100644 --- a/src/libraries/System.Security.Principal.Windows/pkg/System.Security.Principal.Windows.pkgproj +++ b/src/libraries/System.Security.Principal.Windows/pkg/System.Security.Principal.Windows.pkgproj @@ -2,13 +2,9 @@ - net461;netcoreapp2.0;$(AllXamarinFrameworks) + net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks) - - runtimes/win/lib/uap10.0.16299 - - - Open - - \ No newline at end of file diff --git a/src/libraries/System.Utf8String.Experimental/README.md b/src/libraries/System.Utf8String.Experimental/README.md deleted file mode 100644 index c4e05f915d6d..000000000000 --- a/src/libraries/System.Utf8String.Experimental/README.md +++ /dev/null @@ -1,40 +0,0 @@ -The `Utf8String` and `Char8` types are now available for experimentation. They currently exist in the package __System.Utf8String.Experimental__. Because this is an experimental package, it is unsupported for use in production workloads. - -To install: - -```ps -install-package System.Utf8String.Experimental -prerelease -source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json -``` - -This package can only be installed into a project targeting a __nightly__ build of coreclr or libraries. Anything under the _master_ column of https://github.com/dotnet/core-sdk would work, as would any coreclr + libraries built from your own dev box (as long as you're building from _master_ instead of _release/..._). Installing this onto a project targeting an official Preview build would not work, as official Preview builds come from the _release_ branch. - -It's possible that installing the package might fail with an error similar to that seen below. - -```txt -install-package : NU1605: Detected package downgrade: Microsoft.NETCore.Platforms from 3.0.0-preview6.19251.6 to 3.0.0-preview6.19223.2. Reference the package directly from the project to select a different version. -``` - -This can occur if the NuGet client attempts to install a newer version of the package than allowed by the .NET Runtime version your application is targeting. For now you can work around this error by specifying the explicit package version in the install command. Match the version passed to the NuGet client (shown below) to the version specified in the error message (shown above). - -```ps -install-package System.Utf8String.Experimental -prerelease -source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json -version 3.0.0-preview6.19223.2 -``` - -Not all of the APIs are hooked up yet, but we have some preliminary APIs that allow experimentation with the feature, including basic creation and inspection of `Utf8String` instances, wrapping a `ReadOnlySpan` or a `ReadOnlyMemory` around a `Utf8String` instance, and passing a `Utf8String` instance through `HttpClient`. Full list of APIs available at https://github.com/dotnet/runtime/blob/master/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.cs. - -Certain language features also work as expected. - -```cs -Utf8String s1 = new Utf8String(/* ... */); - -// range indexers work -Utf8String s2 = s1[2..5]; - -// as does pinning -fixed (byte* pUtf8 = s1) { /* use 'pUtf8' here */ } - -// and allocating a GCHandle -GCHandle handle = GCHandle.Alloc(s1, GCHandleType.Pinned); -``` - -For more information on the feature and API usage, see https://github.com/dotnet/corefxlab/issues/2350 and https://github.com/dotnet/runtime/issues/933. diff --git a/src/libraries/System.Utf8String.Experimental/System.Utf8String.Experimental.sln b/src/libraries/System.Utf8String.Experimental/System.Utf8String.Experimental.sln deleted file mode 100644 index 9a92feba4d1c..000000000000 --- a/src/libraries/System.Utf8String.Experimental/System.Utf8String.Experimental.sln +++ /dev/null @@ -1,60 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Utf8String.Experimental.Tests", "tests\System.Utf8String.Experimental.Tests.csproj", "{72E9FB32-4692-4692-A10B-9F053F8F1A88}" - ProjectSection(ProjectDependencies) = postProject - {D4266847-6692-481B-9459-6141DB7DA339} = {D4266847-6692-481B-9459-6141DB7DA339} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Utf8String.Experimental", "src\System.Utf8String.Experimental.csproj", "{D4266847-6692-481B-9459-6141DB7DA339}" - ProjectSection(ProjectDependencies) = postProject - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0} = {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Utf8String.Experimental", "ref\System.Utf8String.Experimental.csproj", "{7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{911886E1-C0A6-4830-AAAE-BF320F644704}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {72E9FB32-4692-4692-A10B-9F053F8F1A88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72E9FB32-4692-4692-A10B-9F053F8F1A88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72E9FB32-4692-4692-A10B-9F053F8F1A88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72E9FB32-4692-4692-A10B-9F053F8F1A88}.Release|Any CPU.Build.0 = Release|Any CPU - {D4266847-6692-481B-9459-6141DB7DA339}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4266847-6692-481B-9459-6141DB7DA339}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4266847-6692-481B-9459-6141DB7DA339}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4266847-6692-481B-9459-6141DB7DA339}.Release|Any CPU.Build.0 = Release|Any CPU - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0}.Release|Any CPU.Build.0 = Release|Any CPU - {911886E1-C0A6-4830-AAAE-BF320F644704}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {911886E1-C0A6-4830-AAAE-BF320F644704}.Debug|Any CPU.Build.0 = Debug|Any CPU - {911886E1-C0A6-4830-AAAE-BF320F644704}.Release|Any CPU.ActiveCfg = Release|Any CPU - {911886E1-C0A6-4830-AAAE-BF320F644704}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {72E9FB32-4692-4692-A10B-9F053F8F1A88} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D4266847-6692-481B-9459-6141DB7DA339} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {7AF57E6B-2CED-45C9-8BCA-5BBA60D018E0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {911886E1-C0A6-4830-AAAE-BF320F644704} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7196F6AB-8F22-4E4D-B6D1-3C2CFF86229C} - EndGlobalSection -EndGlobal diff --git a/src/libraries/System.Utf8String.Experimental/pkg/System.Utf8String.Experimental.pkgproj b/src/libraries/System.Utf8String.Experimental/pkg/System.Utf8String.Experimental.pkgproj deleted file mode 100644 index 5de0422cf63b..000000000000 --- a/src/libraries/System.Utf8String.Experimental/pkg/System.Utf8String.Experimental.pkgproj +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks) - - - - diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Forwards.cs b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Forwards.cs deleted file mode 100644 index 5f1d14ec279d..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Forwards.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#if !NETSTANDARD2_0 && !NETFRAMEWORK -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Index))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Range))] - -#if !NETSTANDARD2_1 -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Text.Rune))] -#endif // !NETSTANDARD2_1 - -#endif // !NETSTANDARD2_0 diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Range.cs b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Range.cs deleted file mode 100644 index 7c4116944f7c..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Range.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the https://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace System -{ - public readonly partial struct Index : System.IEquatable - { - private readonly int _dummyPrimitive; - public Index(int value, bool fromEnd = false) { throw null; } - public static System.Index End { get { throw null; } } - public bool IsFromEnd { get { throw null; } } - public static System.Index Start { get { throw null; } } - public int Value { get { throw null; } } - public bool Equals(System.Index other) { throw null; } - public override bool Equals(object? value) { throw null; } - public static System.Index FromEnd(int value) { throw null; } - public static System.Index FromStart(int value) { throw null; } - public override int GetHashCode() { throw null; } - public int GetOffset(int length) { throw null; } - public static implicit operator System.Index(int value) { throw null; } - public override string ToString() { throw null; } - } - public readonly partial struct Range : System.IEquatable - { - private readonly int _dummyPrimitive; - public Range(System.Index start, System.Index end) { throw null; } - public static System.Range All { get { throw null; } } - public System.Index End { get { throw null; } } - public System.Index Start { get { throw null; } } - public static System.Range EndAt(System.Index end) { throw null; } - public override bool Equals(object? value) { throw null; } - public bool Equals(System.Range other) { throw null; } - public override int GetHashCode() { throw null; } - public (int Offset, int Length) GetOffsetAndLength(int length) { throw null; } - public static System.Range StartAt(System.Index start) { throw null; } - public override string ToString() { throw null; } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Rune.cs b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Rune.cs deleted file mode 100644 index da7e4be0f234..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.Rune.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the https://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace System.Text -{ - public readonly partial struct Rune : System.IComparable, System.IComparable, System.IEquatable - { - private readonly int _dummyPrimitive; - public Rune(char ch) { throw null; } - public Rune(char highSurrogate, char lowSurrogate) { throw null; } - public Rune(int value) { throw null; } - [System.CLSCompliantAttribute(false)] - public Rune(uint value) { throw null; } - public bool IsAscii { get { throw null; } } - public bool IsBmp { get { throw null; } } - public int Plane { get { throw null; } } - public static System.Text.Rune ReplacementChar { get { throw null; } } - public int Utf16SequenceLength { get { throw null; } } - public int Utf8SequenceLength { get { throw null; } } - public int Value { get { throw null; } } - public int CompareTo(System.Text.Rune other) { throw null; } - public static System.Buffers.OperationStatus DecodeFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) { throw null; } - public static System.Buffers.OperationStatus DecodeFromUtf8(System.ReadOnlySpan source, out System.Text.Rune result, out int bytesConsumed) { throw null; } - public static System.Buffers.OperationStatus DecodeLastFromUtf16(System.ReadOnlySpan source, out System.Text.Rune result, out int charsConsumed) { throw null; } - public static System.Buffers.OperationStatus DecodeLastFromUtf8(System.ReadOnlySpan source, out System.Text.Rune value, out int bytesConsumed) { throw null; } - public int EncodeToUtf16(System.Span destination) { throw null; } - public int EncodeToUtf8(System.Span destination) { throw null; } - public override bool Equals(object? obj) { throw null; } - public bool Equals(System.Text.Rune other) { throw null; } - public override int GetHashCode() { throw null; } - public static double GetNumericValue(System.Text.Rune value) { throw null; } - public static System.Text.Rune GetRuneAt(string input, int index) { throw null; } - public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.Text.Rune value) { throw null; } - public static bool IsControl(System.Text.Rune value) { throw null; } - public static bool IsDigit(System.Text.Rune value) { throw null; } - public static bool IsLetter(System.Text.Rune value) { throw null; } - public static bool IsLetterOrDigit(System.Text.Rune value) { throw null; } - public static bool IsLower(System.Text.Rune value) { throw null; } - public static bool IsNumber(System.Text.Rune value) { throw null; } - public static bool IsPunctuation(System.Text.Rune value) { throw null; } - public static bool IsSeparator(System.Text.Rune value) { throw null; } - public static bool IsSymbol(System.Text.Rune value) { throw null; } - public static bool IsUpper(System.Text.Rune value) { throw null; } - public static bool IsValid(int value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static bool IsValid(uint value) { throw null; } - public static bool IsWhiteSpace(System.Text.Rune value) { throw null; } - public static bool operator ==(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static explicit operator System.Text.Rune(char ch) { throw null; } - public static explicit operator System.Text.Rune(int value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator System.Text.Rune(uint value) { throw null; } - public static bool operator >(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static bool operator >=(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static bool operator !=(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static bool operator <(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static bool operator <=(System.Text.Rune left, System.Text.Rune right) { throw null; } - public static System.Text.Rune ToLower(System.Text.Rune value, System.Globalization.CultureInfo culture) { throw null; } - public static System.Text.Rune ToLowerInvariant(System.Text.Rune value) { throw null; } - public override string ToString() { throw null; } - public static System.Text.Rune ToUpper(System.Text.Rune value, System.Globalization.CultureInfo culture) { throw null; } - public static System.Text.Rune ToUpperInvariant(System.Text.Rune value) { throw null; } - public static bool TryCreate(char highSurrogate, char lowSurrogate, out System.Text.Rune result) { throw null; } - public static bool TryCreate(char ch, out System.Text.Rune result) { throw null; } - public static bool TryCreate(int value, out System.Text.Rune result) { throw null; } - [System.CLSCompliantAttribute(false)] - public static bool TryCreate(uint value, out System.Text.Rune result) { throw null; } - public bool TryEncodeToUtf16(System.Span destination, out int charsWritten) { throw null; } - public bool TryEncodeToUtf8(System.Span destination, out int bytesWritten) { throw null; } - public static bool TryGetRuneAt(string input, int index, out System.Text.Rune value) { throw null; } - int IComparable.CompareTo(object? obj) { throw null; } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.cs b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.cs deleted file mode 100644 index a72e76090dea..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.cs +++ /dev/null @@ -1,442 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the https://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace System -{ - public readonly partial struct Char8 : System.IComparable, System.IEquatable - { - private readonly int _dummyPrimitive; - public int CompareTo(System.Char8 other) { throw null; } - public bool Equals(System.Char8 other) { throw null; } - public override bool Equals(object? obj) { throw null; } - public override int GetHashCode() { throw null; } - public static bool operator ==(System.Char8 left, System.Char8 right) { throw null; } - public static explicit operator System.Char8(char value) { throw null; } - public static explicit operator char(System.Char8 value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator sbyte(System.Char8 value) { throw null; } - public static explicit operator System.Char8(short value) { throw null; } - public static explicit operator System.Char8(int value) { throw null; } - public static explicit operator System.Char8(long value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator System.Char8(sbyte value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator System.Char8(ushort value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator System.Char8(uint value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static explicit operator System.Char8(ulong value) { throw null; } - public static bool operator >(System.Char8 left, System.Char8 right) { throw null; } - public static bool operator >=(System.Char8 left, System.Char8 right) { throw null; } - public static implicit operator System.Char8(byte value) { throw null; } - public static implicit operator byte(System.Char8 value) { throw null; } - public static implicit operator short(System.Char8 value) { throw null; } - public static implicit operator int(System.Char8 value) { throw null; } - public static implicit operator long(System.Char8 value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static implicit operator ushort(System.Char8 value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static implicit operator uint(System.Char8 value) { throw null; } - [System.CLSCompliantAttribute(false)] - public static implicit operator ulong(System.Char8 value) { throw null; } - public static bool operator !=(System.Char8 left, System.Char8 right) { throw null; } - public static bool operator <(System.Char8 left, System.Char8 right) { throw null; } - public static bool operator <=(System.Char8 left, System.Char8 right) { throw null; } - public override string ToString() { throw null; } - } - public static partial class Utf8Extensions - { - public static System.ReadOnlySpan AsBytes(this System.ReadOnlySpan text) { throw null; } - public static System.ReadOnlySpan AsBytes(this System.Utf8String? text) { throw null; } - public static System.ReadOnlySpan AsBytes(this System.Utf8String? text, int start) { throw null; } - public static System.ReadOnlySpan AsBytes(this System.Utf8String? text, int start, int length) { throw null; } - public static System.ReadOnlyMemory AsMemoryBytes(this System.Utf8String? text) { throw null; } - public static System.ReadOnlyMemory AsMemoryBytes(this System.Utf8String? text, System.Index startIndex) { throw null; } - public static System.ReadOnlyMemory AsMemoryBytes(this System.Utf8String? text, int start) { throw null; } - public static System.ReadOnlyMemory AsMemoryBytes(this System.Utf8String? text, int start, int length) { throw null; } - public static System.ReadOnlyMemory AsMemoryBytes(this System.Utf8String? text, System.Range range) { throw null; } - public static System.Text.Utf8Span AsSpan(this System.Utf8String? text) { throw null; } - public static System.Text.Utf8Span AsSpan(this System.Utf8String? text, int start) { throw null; } - public static System.Text.Utf8Span AsSpan(this System.Utf8String? text, int start, int length) { throw null; } - public static System.Utf8String ToUtf8String(this System.Text.Rune rune) { throw null; } - } - public sealed partial class Utf8String : System.IComparable, System.IEquatable - { - public static readonly System.Utf8String Empty; - [System.CLSCompliantAttribute(false)] - public unsafe Utf8String(byte* value) { } - public Utf8String(byte[] value, int startIndex, int length) { } - [System.CLSCompliantAttribute(false)] - public unsafe Utf8String(char* value) { } - public Utf8String(char[] value, int startIndex, int length) { } - public Utf8String(System.ReadOnlySpan value) { } - public Utf8String(System.ReadOnlySpan value) { } - public Utf8String(string value) { } - public ByteEnumerable Bytes { get { throw null; } } - public CharEnumerable Chars { get { throw null; } } - public int Length { get { throw null; } } - public RuneEnumerable Runes { get { throw null; } } - public static bool AreEquivalent(System.Utf8String? utf8Text, string? utf16Text) { throw null; } - public static bool AreEquivalent(System.Text.Utf8Span utf8Text, System.ReadOnlySpan utf16Text) { throw null; } - public static bool AreEquivalent(System.ReadOnlySpan utf8Text, System.ReadOnlySpan utf16Text) { throw null; } - public int CompareTo(System.Utf8String? other) { throw null; } - public int CompareTo(System.Utf8String? other, System.StringComparison comparison) { throw null; } - public bool Contains(char value) { throw null; } - public bool Contains(char value, System.StringComparison comparison) { throw null; } - public bool Contains(System.Text.Rune value) { throw null; } - public bool Contains(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool Contains(System.Utf8String value) { throw null; } - public bool Contains(System.Utf8String value, System.StringComparison comparison) { throw null; } -#if !NETSTANDARD2_0 && !NETFRAMEWORK - public static System.Utf8String Create(int length, TState state, System.Buffers.SpanAction action) { throw null; } -#endif - public static System.Utf8String CreateFromRelaxed(System.ReadOnlySpan buffer) { throw null; } - public static System.Utf8String CreateFromRelaxed(System.ReadOnlySpan buffer) { throw null; } -#if !NETSTANDARD2_0 && !NETFRAMEWORK - public static System.Utf8String CreateRelaxed(int length, TState state, System.Buffers.SpanAction action) { throw null; } -#endif - public bool EndsWith(char value) { throw null; } - public bool EndsWith(char value, System.StringComparison comparison) { throw null; } - public bool EndsWith(System.Text.Rune value) { throw null; } - public bool EndsWith(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool EndsWith(System.Utf8String value) { throw null; } - public bool EndsWith(System.Utf8String value, System.StringComparison comparison) { throw null; } - public override bool Equals(object? obj) { throw null; } - public static bool Equals(System.Utf8String? a, System.Utf8String? b, System.StringComparison comparison) { throw null; } - public static bool Equals(System.Utf8String? left, System.Utf8String? right) { throw null; } - public bool Equals(System.Utf8String? value) { throw null; } - public bool Equals(System.Utf8String? value, System.StringComparison comparison) { throw null; } - public override int GetHashCode() { throw null; } - public int GetHashCode(System.StringComparison comparison) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public ref readonly byte GetPinnableReference() { throw null; } - public static implicit operator System.Text.Utf8Span(System.Utf8String? value) { throw null; } - public bool IsAscii() { throw null; } - public bool IsNormalized(System.Text.NormalizationForm normalizationForm = System.Text.NormalizationForm.FormC) { throw null; } - public static bool IsNullOrEmpty([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(false)] System.Utf8String? value) { throw null; } - public static bool IsNullOrWhiteSpace([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(false)] System.Utf8String? value) { throw null; } - public System.Utf8String Normalize(System.Text.NormalizationForm normalizationForm = System.Text.NormalizationForm.FormC) { throw null; } - public static bool operator !=(System.Utf8String? left, System.Utf8String? right) { throw null; } - public static bool operator ==(System.Utf8String? left, System.Utf8String? right) { throw null; } - public SplitResult Split(char separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitResult Split(System.Text.Rune separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitResult Split(System.Utf8String separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitOnResult SplitOn(char separator) { throw null; } - public SplitOnResult SplitOn(char separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOn(System.Text.Rune separator) { throw null; } - public SplitOnResult SplitOn(System.Text.Rune separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOn(System.Utf8String separator) { throw null; } - public SplitOnResult SplitOn(System.Utf8String separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(char separator) { throw null; } - public SplitOnResult SplitOnLast(char separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Rune separator) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Rune separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(System.Utf8String separator) { throw null; } - public SplitOnResult SplitOnLast(System.Utf8String separator, System.StringComparison comparisonType) { throw null; } - public bool StartsWith(char value) { throw null; } - public bool StartsWith(char value, System.StringComparison comparison) { throw null; } - public bool StartsWith(System.Text.Rune value) { throw null; } - public bool StartsWith(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool StartsWith(System.Utf8String value) { throw null; } - public bool StartsWith(System.Utf8String value, System.StringComparison comparison) { throw null; } - public System.Utf8String this[System.Range range] { get { throw null; } } - public byte[] ToByteArray() { throw null; } - public char[] ToCharArray() { throw null; } - public System.Utf8String ToLower(System.Globalization.CultureInfo culture) { throw null; } - public System.Utf8String ToLowerInvariant() { throw null; } - public override string ToString() { throw null; } - public System.Utf8String ToUpper(System.Globalization.CultureInfo culture) { throw null; } - public System.Utf8String ToUpperInvariant() { throw null; } - public System.Utf8String Trim() { throw null; } - public System.Utf8String TrimEnd() { throw null; } - public System.Utf8String TrimStart() { throw null; } - public static bool TryCreateFrom(System.ReadOnlySpan buffer, [System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] out System.Utf8String? value) { throw null; } - public static bool TryCreateFrom(System.ReadOnlySpan buffer, [System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] out System.Utf8String? value) { throw null; } - public bool TryFind(char value, out System.Range range) { throw null; } - public bool TryFind(char value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFind(System.Text.Rune value, out System.Range range) { throw null; } - public bool TryFind(System.Text.Rune value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFind(System.Utf8String value, out System.Range range) { throw null; } - public bool TryFind(System.Utf8String value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(char value, out System.Range range) { throw null; } - public bool TryFindLast(char value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Rune value, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Rune value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(System.Utf8String value, out System.Range range) { throw null; } - public bool TryFindLast(System.Utf8String value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public static System.Utf8String UnsafeCreateWithoutValidation(System.ReadOnlySpan utf8Contents) { throw null; } -#if !NETSTANDARD2_0 && !NETFRAMEWORK - public static System.Utf8String UnsafeCreateWithoutValidation(int length, TState state, System.Buffers.SpanAction action) { throw null; } -#endif - public readonly partial struct ByteEnumerable : System.Collections.Generic.IEnumerable - { - private readonly object _dummy; - public Enumerator GetEnumerator() { throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public readonly byte Current { get { throw null; } } - public bool MoveNext() { throw null; } - void System.IDisposable.Dispose() { } - object System.Collections.IEnumerator.Current { get { throw null; } } - void System.Collections.IEnumerator.Reset() { } - } - } - public readonly partial struct CharEnumerable : System.Collections.Generic.IEnumerable - { - private readonly object _dummy; - public Enumerator GetEnumerator() { throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public char Current { get { throw null; } } - public bool MoveNext() { throw null; } - void System.IDisposable.Dispose() { } - object System.Collections.IEnumerator.Current { get { throw null; } } - void System.Collections.IEnumerator.Reset() { } - } - } - public readonly partial struct RuneEnumerable : System.Collections.Generic.IEnumerable - { - private readonly object _dummy; - public Enumerator GetEnumerator() { throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public System.Text.Rune Current { get { throw null; } } - public bool MoveNext() { throw null; } - void System.IDisposable.Dispose() { } - object System.Collections.IEnumerator.Current { get { throw null; } } - void System.Collections.IEnumerator.Reset() { } - } - } - public readonly struct SplitResult : System.Collections.Generic.IEnumerable - { - private readonly object _dummy; - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3, out System.Utf8String? item4) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3, out System.Utf8String? item4, out System.Utf8String? item5) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3, out System.Utf8String? item4, out System.Utf8String? item5, out System.Utf8String? item6) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3, out System.Utf8String? item4, out System.Utf8String? item5, out System.Utf8String? item6, out System.Utf8String? item7) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String? item1, out System.Utf8String? item2, out System.Utf8String? item3, out System.Utf8String? item4, out System.Utf8String? item5, out System.Utf8String? item6, out System.Utf8String? item7, out System.Utf8String? item8) { throw null; } - public Enumerator GetEnumerator() { throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } - System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } - public struct Enumerator : System.Collections.Generic.IEnumerator - { - private readonly object _dummy; - public System.Utf8String? Current { get { throw null; } } - public bool MoveNext() { throw null; } - void System.IDisposable.Dispose() { } - object? System.Collections.IEnumerator.Current { get { throw null; } } - void System.Collections.IEnumerator.Reset() { throw null; } - } - } - public readonly struct SplitOnResult - { - private readonly object _dummy; - public System.Utf8String? After { get { throw null; } } - public System.Utf8String Before { get { throw null; } } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Utf8String before, out System.Utf8String? after) { throw null; } - } - } - [System.FlagsAttribute] - public enum Utf8StringSplitOptions - { - None = 0, - RemoveEmptyEntries = 1, - TrimEntries = 2 - } -} -namespace System.Net.Http -{ - public sealed partial class Utf8StringContent : System.Net.Http.HttpContent - { - public Utf8StringContent(System.Utf8String content) { } - public Utf8StringContent(System.Utf8String content, string? mediaType) { } - protected override System.Threading.Tasks.Task CreateContentReadStreamAsync() { throw null; } - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext? context) { throw null; } - protected override bool TryComputeLength(out long length) { throw null; } - } -} -namespace System.Text -{ - public readonly ref partial struct Utf8Span - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public Utf8Span(System.Utf8String? value) { throw null; } - public System.ReadOnlySpan Bytes { get { throw null; } } - public CharEnumerable Chars { get { throw null; } } - public static System.Text.Utf8Span Empty { get { throw null; } } - public bool IsEmpty { get { throw null; } } - public int Length { get { throw null; } } - public RuneEnumerable Runes { get { throw null; } } - public int CompareTo(System.Text.Utf8Span other) { throw null; } - public int CompareTo(System.Text.Utf8Span other, System.StringComparison comparison) { throw null; } - public bool Contains(char value) { throw null; } - public bool Contains(char value, System.StringComparison comparison) { throw null; } - public bool Contains(System.Text.Rune value) { throw null; } - public bool Contains(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool Contains(System.Text.Utf8Span value) { throw null; } - public bool Contains(System.Text.Utf8Span value, System.StringComparison comparison) { throw null; } - public bool EndsWith(char value) { throw null; } - public bool EndsWith(char value, System.StringComparison comparison) { throw null; } - public bool EndsWith(System.Text.Rune value) { throw null; } - public bool EndsWith(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool EndsWith(System.Text.Utf8Span value) { throw null; } - public bool EndsWith(System.Text.Utf8Span value, System.StringComparison comparison) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - [System.ObsoleteAttribute("Equals(object) on Utf8Span will always throw an exception. Use Equals(Utf8Span) or == instead.")] - public override bool Equals(object? obj) { throw null; } - public bool Equals(System.Text.Utf8Span other) { throw null; } - public bool Equals(System.Text.Utf8Span other, System.StringComparison comparison) { throw null; } - public static bool Equals(System.Text.Utf8Span left, System.Text.Utf8Span right) { throw null; } - public static bool Equals(System.Text.Utf8Span left, System.Text.Utf8Span right, System.StringComparison comparison) { throw null; } - public override int GetHashCode() { throw null; } - public int GetHashCode(System.StringComparison comparison) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public ref readonly byte GetPinnableReference() { throw null; } - public bool IsAscii() { throw null; } - public bool IsEmptyOrWhiteSpace() { throw null; } - public bool IsNormalized(System.Text.NormalizationForm normalizationForm = System.Text.NormalizationForm.FormC) { throw null; } - public System.Utf8String Normalize(System.Text.NormalizationForm normalizationForm = System.Text.NormalizationForm.FormC) { throw null; } - public int Normalize(System.Span destination, System.Text.NormalizationForm normalizationForm = System.Text.NormalizationForm.FormC) { throw null; } - public static bool operator !=(System.Text.Utf8Span left, System.Text.Utf8Span right) { throw null; } - public static bool operator ==(System.Text.Utf8Span left, System.Text.Utf8Span right) { throw null; } - public System.Text.Utf8Span this[System.Range range] { get { throw null; } } - public SplitResult Split(char separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitResult Split(System.Text.Rune separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitResult Split(System.Text.Utf8Span separator, System.Utf8StringSplitOptions options = System.Utf8StringSplitOptions.None) { throw null; } - public SplitOnResult SplitOn(char separator) { throw null; } - public SplitOnResult SplitOn(char separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOn(System.Text.Rune separator) { throw null; } - public SplitOnResult SplitOn(System.Text.Rune separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOn(System.Text.Utf8Span separator) { throw null; } - public SplitOnResult SplitOn(System.Text.Utf8Span separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(char separator) { throw null; } - public SplitOnResult SplitOnLast(char separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Rune separator) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Rune separator, System.StringComparison comparisonType) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Utf8Span separator) { throw null; } - public SplitOnResult SplitOnLast(System.Text.Utf8Span separator, System.StringComparison comparisonType) { throw null; } - public bool StartsWith(char value) { throw null; } - public bool StartsWith(char value, System.StringComparison comparison) { throw null; } - public bool StartsWith(System.Text.Rune value) { throw null; } - public bool StartsWith(System.Text.Rune value, System.StringComparison comparison) { throw null; } - public bool StartsWith(System.Text.Utf8Span value) { throw null; } - public bool StartsWith(System.Text.Utf8Span value, System.StringComparison comparison) { throw null; } - public System.Text.Utf8Span Trim() { throw null; } - public System.Text.Utf8Span TrimEnd() { throw null; } - public System.Text.Utf8Span TrimStart() { throw null; } - public byte[] ToByteArray() { throw null; } - public char[] ToCharArray() { throw null; } - public int ToChars(System.Span destination) { throw null; } - public System.Utf8String ToLower(System.Globalization.CultureInfo culture) { throw null; } - public int ToLower(System.Span destination, System.Globalization.CultureInfo culture) { throw null; } - public System.Utf8String ToLowerInvariant() { throw null; } - public int ToLowerInvariant(System.Span destination) { throw null; } - public override string ToString() { throw null; } - public System.Utf8String ToUpper(System.Globalization.CultureInfo culture) { throw null; } - public int ToUpper(System.Span destination, System.Globalization.CultureInfo culture) { throw null; } - public System.Utf8String ToUpperInvariant() { throw null; } - public int ToUpperInvariant(System.Span destination) { throw null; } - public System.Utf8String ToUtf8String() { throw null; } - public bool TryFind(char value, out System.Range range) { throw null; } - public bool TryFind(char value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFind(System.Text.Rune value, out System.Range range) { throw null; } - public bool TryFind(System.Text.Rune value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFind(System.Text.Utf8Span value, out System.Range range) { throw null; } - public bool TryFind(System.Text.Utf8Span value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(char value, out System.Range range) { throw null; } - public bool TryFindLast(char value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Rune value, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Rune value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Utf8Span value, out System.Range range) { throw null; } - public bool TryFindLast(System.Text.Utf8Span value, System.StringComparison comparisonType, out System.Range range) { throw null; } - public static System.Text.Utf8Span UnsafeCreateWithoutValidation(System.ReadOnlySpan buffer) { throw null; } - public readonly ref struct CharEnumerable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public Enumerator GetEnumerator() { throw null; } - public ref struct Enumerator - { - private object _dummy; - private int _dummyPrimitive; - public char Current { get { throw null; } } - public bool MoveNext() { throw null; } - } - } - public readonly ref struct RuneEnumerable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public Enumerator GetEnumerator() { throw null; } - public ref struct Enumerator - { - private object _dummy; - private int _dummyPrimitive; - public System.Text.Rune Current { get { throw null; } } - public bool MoveNext() { throw null; } - } - } - public readonly ref struct SplitResult - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3, out System.Text.Utf8Span item4) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3, out System.Text.Utf8Span item4, out System.Text.Utf8Span item5) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3, out System.Text.Utf8Span item4, out System.Text.Utf8Span item5, out System.Text.Utf8Span item6) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3, out System.Text.Utf8Span item4, out System.Text.Utf8Span item5, out System.Text.Utf8Span item6, out System.Text.Utf8Span item7) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span item1, out System.Text.Utf8Span item2, out System.Text.Utf8Span item3, out System.Text.Utf8Span item4, out System.Text.Utf8Span item5, out System.Text.Utf8Span item6, out System.Text.Utf8Span item7, out System.Text.Utf8Span item8) { throw null; } - public Enumerator GetEnumerator() { throw null; } - public ref struct Enumerator - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public System.Text.Utf8Span Current { get { throw null; } } - public bool MoveNext() { throw null; } - } - } - public readonly ref struct SplitOnResult - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public Utf8Span After { get { throw null; } } - public Utf8Span Before { get { throw null; } } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public void Deconstruct(out System.Text.Utf8Span before, out System.Text.Utf8Span after) { throw null; } - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.csproj b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.csproj deleted file mode 100644 index eb5a1414f8cd..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - true - - $(NoWarn);0809;0618 - netstandard2.0;netstandard2.1;netcoreapp3.0;$(NetCoreAppCurrent);net461 - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.net5.0.cs b/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.net5.0.cs deleted file mode 100644 index 85f2598f8de5..000000000000 --- a/src/libraries/System.Utf8String.Experimental/ref/System.Utf8String.Experimental.net5.0.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the https://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace System -{ - public static partial class Utf8Extensions - { - public static System.ReadOnlyMemory AsMemory(this System.Utf8String? text) { throw null; } - public static System.ReadOnlyMemory AsMemory(this System.Utf8String? text, System.Index startIndex) { throw null; } - public static System.ReadOnlyMemory AsMemory(this System.Utf8String? text, int start) { throw null; } - public static System.ReadOnlyMemory AsMemory(this System.Utf8String? text, int start, int length) { throw null; } - public static System.ReadOnlyMemory AsMemory(this System.Utf8String? text, System.Range range) { throw null; } - } -} -namespace System.Net.Http -{ - public sealed partial class Utf8StringContent : System.Net.Http.HttpContent - { - protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) { throw null; } - protected override void SerializeToStream(System.IO.Stream stream, System.Net.TransportContext? context, System.Threading.CancellationToken cancellationToken) { } - protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext? context, System.Threading.CancellationToken cancellationToken) { throw null; } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System.Utf8String.Experimental.csproj b/src/libraries/System.Utf8String.Experimental/src/System.Utf8String.Experimental.csproj deleted file mode 100644 index 8b72b9161c55..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System.Utf8String.Experimental.csproj +++ /dev/null @@ -1,154 +0,0 @@ - - - true - $(NetCoreAppCurrent);netstandard2.0;netstandard2.1;netcoreapp3.0;net461 - enable - $(DefineContants);FEATURE_UTF8STRING - - - - - - $(NoWarn);CS3019;CS0162 - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Globalization/GlobalizationMode.cs b/src/libraries/System.Utf8String.Experimental/src/System/Globalization/GlobalizationMode.cs deleted file mode 100644 index a59114c85bff..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Globalization/GlobalizationMode.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Globalization -{ - internal static partial class GlobalizationMode - { - internal static bool Invariant { get; } // TODO: should we enable this? - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/IO/Utf8StringStream.cs b/src/libraries/System.Utf8String.Experimental/src/System/IO/Utf8StringStream.cs deleted file mode 100644 index d448a7cc1b90..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/IO/Utf8StringStream.cs +++ /dev/null @@ -1,141 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Threading; -using System.Threading.Tasks; - -namespace System.IO -{ - internal sealed class Utf8StringStream : Stream - { - private readonly Utf8String _content; - private int _position; - - public Utf8StringStream(Utf8String content) - { - _content = content ?? Utf8String.Empty; - } - - public override bool CanRead => true; - - public override bool CanSeek => true; - - public override bool CanTimeout => true; - - public override bool CanWrite => false; - - public override long Length => _content.Length; - - public override long Position - { - get => _position; - set - { - if ((ulong)value > (uint)_content.Length) - { - throw new ArgumentOutOfRangeException(nameof(value)); - } - - _position = (int)value; - } - } - - public override void Flush() - { - /* no-op */ - } - - public override Task FlushAsync(CancellationToken cancellationToken) - { - /* no-op */ - return Task.CompletedTask; - } - - public override int Read(byte[] buffer, int offset, int count) - { - return Read(new Span(buffer, offset, count)); - } - - public -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - override -#endif - int Read(Span buffer) - { - ReadOnlySpan contentToWrite = _content.AsBytes(_position); - if (buffer.Length < contentToWrite.Length) - { - contentToWrite = contentToWrite.Slice(buffer.Length); - } - - contentToWrite.CopyTo(buffer); - _position += contentToWrite.Length; - - return contentToWrite.Length; - } - - public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) - { - return Task.FromResult(Read(new Span(buffer, offset, count))); - } - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - public override ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default) - { - return new ValueTask(Read(buffer.Span)); - } -#endif - - public override int ReadByte() - { - int position = _position; - if ((uint)position >= (uint)_content.Length) - { - return -1; - } - - _position++; - return _content.AsBytes()[position]; - } - - public override long Seek(long offset, SeekOrigin origin) - { - switch (origin) - { - case SeekOrigin.Begin: - break; - case SeekOrigin.Current: - offset += _position; - break; - case SeekOrigin.End: - offset += _content.Length; - break; - default: - throw new ArgumentOutOfRangeException(nameof(origin)); - } - - if ((ulong)offset > (uint)_content.Length) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - _position = (int)offset; - return offset; - } - - public override void SetLength(long value) => throw new NotSupportedException(); - - public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException(); - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - public override void Write(ReadOnlySpan buffer) => throw new NotSupportedException(); -#endif - - public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) => throw new NotSupportedException(); - -#if (!NETSTANDARD2_0 && !NETFRAMEWORK) - public override ValueTask WriteAsync(ReadOnlyMemory buffer, CancellationToken cancellationToken = default) => throw new NotSupportedException(); -#endif - public override void WriteByte(byte value) => throw new NotSupportedException(); - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.cs b/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.cs deleted file mode 100644 index f5fc6a1f843b..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.IO; -using System.Net.Http.Headers; -using System.Runtime.InteropServices; -using System.Threading; -using System.Threading.Tasks; - -namespace System.Net.Http -{ - public sealed partial class Utf8StringContent : HttpContent - { - private const string DefaultMediaType = "text/plain"; - - private readonly Utf8String _content; - - public Utf8StringContent(Utf8String content) - : this(content, mediaType: null) - { - } - - public Utf8StringContent(Utf8String content, string? mediaType) - { - if (content is null) - { - throw new ArgumentNullException(nameof(content)); - } - - _content = content; - - // Initialize the 'Content-Type' header with information provided by parameters. - - Headers.ContentType = new MediaTypeHeaderValue(mediaType ?? DefaultMediaType) - { - CharSet = "utf-8" // Encoding.UTF8.WebName - }; - } - - protected override Task CreateContentReadStreamAsync() => - Task.FromResult(new Utf8StringStream(_content)); - -#if (NETSTANDARD2_0 || NETFRAMEWORK) - protected override async Task SerializeToStreamAsync(Stream stream, TransportContext? context) - { - ReadOnlyMemory buffer = _content.AsMemoryBytes(); - if (MemoryMarshal.TryGetArray(buffer, out ArraySegment array)) - { - await stream.WriteAsync(array.Array, array.Offset, array.Count).ConfigureAwait(false); - } - else - { - byte[] localBuffer = ArrayPool.Shared.Rent(buffer.Length); - buffer.Span.CopyTo(localBuffer); - - await stream.WriteAsync(localBuffer, 0, buffer.Length).ConfigureAwait(false); - - ArrayPool.Shared.Return(localBuffer); - } - } -#elif NETSTANDARD2_1 || NETCOREAPP3_0 - protected override Task SerializeToStreamAsync(Stream stream, TransportContext? context) => - stream.WriteAsync(_content.AsMemoryBytes()).AsTask(); -#else - protected override Task SerializeToStreamAsync(Stream stream, TransportContext? context) => - SerializeToStreamAsync(stream, context, default); - - protected override Task SerializeToStreamAsync(Stream stream, TransportContext? context, CancellationToken cancellationToken) => - stream.WriteAsync(_content.AsMemoryBytes(), cancellationToken).AsTask(); -#endif - - protected override bool TryComputeLength(out long length) - { - length = _content.Length; - return true; - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.netcoreapp.cs deleted file mode 100644 index 15eba2615094..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Net/Http/Utf8StringContent.netcoreapp.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.IO; -using System.Net.Http.Headers; -using System.Runtime.InteropServices; -using System.Threading; -using System.Threading.Tasks; - -namespace System.Net.Http -{ - public sealed partial class Utf8StringContent - { - protected override Stream CreateContentReadStream(CancellationToken cancellationToken) => - new Utf8StringStream(_content); - - protected override void SerializeToStream(Stream stream, TransportContext? context, CancellationToken cancellationToken) => - stream.Write(_content.AsBytes()); - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Runtime/Intrinsics/Intrinsics.Shims.cs b/src/libraries/System.Utf8String.Experimental/src/System/Runtime/Intrinsics/Intrinsics.Shims.cs deleted file mode 100644 index ff020e0259cf..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Runtime/Intrinsics/Intrinsics.Shims.cs +++ /dev/null @@ -1,149 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Runtime.Intrinsics -{ - internal static class Vector64 - { - public static Vector64 Create(ulong value) => throw new PlatformNotSupportedException(); - public static Vector64 CreateScalar(uint value) => throw new PlatformNotSupportedException(); - public static Vector64 AsByte(this Vector64 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector64 AsUInt32(this Vector64 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector64 GetLower(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector64 AsUInt64(this Vector64 vector) where T : struct => throw new PlatformNotSupportedException(); - } - internal readonly struct Vector64 - where T : struct - { - } - - internal static class Vector128 - { - public static Vector128 Create(long value) => throw new PlatformNotSupportedException(); - public static Vector128 Create(short value) => throw new PlatformNotSupportedException(); - public static Vector128 Create(ulong value) => throw new PlatformNotSupportedException(); - public static Vector128 Create(ushort value) => throw new PlatformNotSupportedException(); - public static Vector128 Create(byte value) => throw new PlatformNotSupportedException(); - public static Vector128 Create(uint value) => throw new PlatformNotSupportedException(); - public static Vector128 CreateScalarUnsafe(ulong value) => throw new PlatformNotSupportedException(); - public static Vector128 AsByte(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector128 AsInt16(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector128 AsSByte(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector128 AsUInt16(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector128 AsUInt32(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static Vector128 AsUInt64(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - public static T GetElement(this Vector128 vector, int index) where T : struct => throw new PlatformNotSupportedException(); - public static T ToScalar(this Vector64 vector) where T : struct => throw new PlatformNotSupportedException(); - public static unsafe Vector128 CreateScalar(ulong value) => throw new PlatformNotSupportedException(); - public static T ToScalar(this Vector128 vector) where T : struct => throw new PlatformNotSupportedException(); - } - internal readonly struct Vector128 - where T : struct - { - public static Vector128 Zero => throw new PlatformNotSupportedException(); - public static int Count => throw new PlatformNotSupportedException(); - } -} - -namespace System.Runtime.Intrinsics.X86 -{ - internal static class X86Base - { - internal static class X64 - { - public const bool IsSupported = false; - internal static ulong BitScanForward(ulong value) => throw new PlatformNotSupportedException(); - internal static ulong BitScanReverse(ulong value) => throw new PlatformNotSupportedException(); - } - public const bool IsSupported = false; - internal static uint BitScanForward(uint value) => throw new PlatformNotSupportedException(); - internal static uint BitScanReverse(uint value) => throw new PlatformNotSupportedException(); - } - internal abstract class Bmi1 - { - public abstract class X64 - { - public const bool IsSupported = false; - public static ulong TrailingZeroCount(ulong value) => throw new PlatformNotSupportedException(); - } - public const bool IsSupported = false; - public static uint TrailingZeroCount(uint value) => throw new PlatformNotSupportedException(); - } - internal abstract class Lzcnt - { - public abstract class X64 - { - public const bool IsSupported = false; - public static ulong LeadingZeroCount(ulong value) => throw new PlatformNotSupportedException(); - } - public const bool IsSupported = false; - public static uint LeadingZeroCount(uint value) => throw new PlatformNotSupportedException(); - } - internal abstract class Popcnt - { - public abstract class X64 - { - public const bool IsSupported = false; - public static ulong PopCount(ulong value) => throw new PlatformNotSupportedException(); - } - public const bool IsSupported = false; - public static uint PopCount(uint value) => throw new PlatformNotSupportedException(); - } - - internal abstract class Sse2 - { - public abstract class X64 - { - public const bool IsSupported = false; - public static Vector128 ConvertScalarToVector128UInt64(ulong value) => throw new PlatformNotSupportedException(); - public static ulong ConvertToUInt64(Vector128 value) => throw new PlatformNotSupportedException(); - } - public const bool IsSupported = false; - public static Vector128 Add(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 AddSaturate(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 AndNot(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 CompareGreaterThan(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 CompareLessThan(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 ConvertScalarToVector128UInt32(uint value) => throw new PlatformNotSupportedException(); - public static uint ConvertToUInt32(Vector128 value) => throw new PlatformNotSupportedException(); - public static unsafe Vector128 LoadAlignedVector128(byte* address) => throw new PlatformNotSupportedException(); - public static unsafe Vector128 LoadAlignedVector128(ushort* address) => throw new PlatformNotSupportedException(); - public static unsafe Vector128 LoadVector128(byte* address) => throw new PlatformNotSupportedException(); - public static unsafe Vector128 LoadVector128(short* address) => throw new PlatformNotSupportedException(); - public static unsafe Vector128 LoadVector128(ushort* address) => throw new PlatformNotSupportedException(); - public static int MoveMask(Vector128 value) => throw new PlatformNotSupportedException(); - public static Vector128 Or(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 Or(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 PackUnsignedSaturate(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 ShiftRightLogical(Vector128 value, byte count) => throw new PlatformNotSupportedException(); - public static unsafe void Store(byte* address, Vector128 source) => throw new PlatformNotSupportedException(); - public static unsafe void StoreAligned(byte* address, Vector128 source) => throw new PlatformNotSupportedException(); - public static unsafe void StoreScalar(ulong* address, Vector128 source) => throw new PlatformNotSupportedException(); - public static Vector128 Subtract(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 UnpackHigh(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static Vector128 UnpackLow(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - } - - internal abstract class Sse41 - { - public abstract class X64 - { - public const bool IsSupported = false; - } - public const bool IsSupported = false; - public static Vector128 Min(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static bool TestZ(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - public static bool TestZ(Vector128 left, Vector128 right) => throw new PlatformNotSupportedException(); - } -} - -namespace System.Runtime.CompilerServices -{ - // Calls to methods or references to fields marked with this attribute may be replaced at - // some call sites with jit intrinsic expansions. - // Types marked with this attribute may be specially treated by the runtime/compiler. - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Field, Inherited = false)] - internal sealed class IntrinsicAttribute : Attribute - { - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/ThrowHelper.cs b/src/libraries/System.Utf8String.Experimental/src/System/ThrowHelper.cs deleted file mode 100644 index 2df780d86fee..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/ThrowHelper.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -namespace System -{ - internal static class ThrowHelper - { - [DoesNotReturn] - internal static void ThrowArgumentException(string resource, ExceptionArgument argument) - { - throw new ArgumentException(resource, argument.ToString()); - } - - [DoesNotReturn] - internal static void ThrowArgumentNullException(ExceptionArgument argument) { throw CreateArgumentNullException(argument); } - [MethodImpl(MethodImplOptions.NoInlining)] - private static Exception CreateArgumentNullException(ExceptionArgument argument) { return new ArgumentNullException(argument.ToString()); } - - [DoesNotReturn] - internal static void ThrowArgumentOutOfRangeException() { throw new ArgumentOutOfRangeException(); } - - internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument) { throw CreateArgumentOutOfRangeException(argument); } - [MethodImpl(MethodImplOptions.NoInlining)] - private static Exception CreateArgumentOutOfRangeException(ExceptionArgument argument) { return new ArgumentOutOfRangeException(argument.ToString()); } - - [DoesNotReturn] - internal static void ThrowValueArgumentOutOfRange_NeedNonNegNumException() - { - throw GetArgumentOutOfRangeException(ExceptionArgument.value, - SR.ArgumentOutOfRange_NeedNonNegNum); - } - - [DoesNotReturn] - internal static void ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum() - { - throw GetArgumentOutOfRangeException(ExceptionArgument.length, - SR.ArgumentOutOfRange_NeedNonNegNum); - } - - [DoesNotReturn] - internal static void ThrowInvalidOperationException() { throw CreateInvalidOperationException(); } - [MethodImpl(MethodImplOptions.NoInlining)] - private static Exception CreateInvalidOperationException() { return new InvalidOperationException(); } - - [DoesNotReturn] - internal static void ThrowArgumentException_DestinationTooShort() - { - throw new ArgumentException(SR.Argument_DestinationTooShort, "destination"); - } - - [DoesNotReturn] - internal static void ThrowArgumentException_CannotExtractScalar(ExceptionArgument argument) - { - throw new ArgumentException(SR.Argument_CannotExtractScalar, argument.ToString()); - } - - internal static void ThrowArgumentOutOfRange_IndexException() - { - throw GetArgumentOutOfRangeException(ExceptionArgument.index, - SR.ArgumentOutOfRange_Index); - } - - private static ArgumentOutOfRangeException GetArgumentOutOfRangeException(ExceptionArgument argument, string resource) - { - return new ArgumentOutOfRangeException(argument.ToString(), resource); - } - - [DoesNotReturn] - internal static void ThrowNotSupportedException(string message) - { - throw new NotSupportedException(message); - } - } - - // - // The convention for this enum is using the argument name as the enum name - // - internal enum ExceptionArgument - { - action, - ch, - comparisonType, - culture, - index, - input, - length, - start, - text, - value, - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Utf8Extensions.Portable.cs b/src/libraries/System.Utf8String.Experimental/src/System/Utf8Extensions.Portable.cs deleted file mode 100644 index 8a881022fbbc..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Utf8Extensions.Portable.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.CompilerServices; - -namespace System -{ - public static partial class Utf8Extensions - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static ReadOnlySpan CreateSpan(Utf8String text) => text.GetSpan(); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static ReadOnlySpan CreateSpan(Utf8String text, int start) => - text.GetSpan().Slice(start); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static ReadOnlySpan CreateSpan(Utf8String text, int start, int length) => - text.GetSpan().Slice(start, length); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static ReadOnlyMemory CreateMemoryBytes(Utf8String text, int start, int length) => - text.CreateMemoryBytes(start, length); - } -} diff --git a/src/libraries/System.Utf8String.Experimental/src/System/Utf8String.Portable.cs b/src/libraries/System.Utf8String.Experimental/src/System/Utf8String.Portable.cs deleted file mode 100644 index da0a4de8cc2d..000000000000 --- a/src/libraries/System.Utf8String.Experimental/src/System/Utf8String.Portable.cs +++ /dev/null @@ -1,239 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text.Unicode; - -namespace System -{ - public sealed partial class Utf8String - { - private readonly byte[] _bytes; - - /// - /// Returns the length (in UTF-8 code units, or s) of this instance. - /// - public int Length => _bytes.Length - 1; // -1 because the bytes are always null-terminated - - public Utf8String(ReadOnlySpan value) - { - _bytes = InitializeBuffer(value); - } - - public Utf8String(byte[] value, int startIndex, int length) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - _bytes = InitializeBuffer(new ReadOnlySpan(value, startIndex, length)); - } - - [CLSCompliant(false)] - public unsafe Utf8String(byte* value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - _bytes = InitializeBuffer(new ReadOnlySpan(value, strlen(value))); - } - - public Utf8String(ReadOnlySpan value) - { - _bytes = InitializeBuffer(value); - } - - public Utf8String(char[] value, int startIndex, int length) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - _bytes = InitializeBuffer(new ReadOnlySpan(value, startIndex, length)); - } - - [CLSCompliant(false)] - public unsafe Utf8String(char* value) - { - if (value == null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - _bytes = InitializeBuffer(new ReadOnlySpan(value, wcslen(value))); - } - - public Utf8String(string value) - { - if (value is null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); - } - - _bytes = InitializeBuffer(value.AsSpan()); - } - - private static byte[] InitializeBuffer(ReadOnlySpan value) - { - if (value.IsEmpty) - { - return Empty._bytes; - } - - // Create and populate the Utf8String buffer. - - byte[] newBuffer = AllocateBuffer(value.Length); - value.CopyTo(newBuffer); - - // Now perform validation. - // Reminder: Perform validation over the copy, not over the source. - - if (!Utf8Utility.IsWellFormedUtf8(newBuffer)) - { - throw new ArgumentException( - message: SR.Utf8String_InputContainedMalformedUtf8, - paramName: nameof(value)); - } - - return newBuffer; - } - - private static byte[] InitializeBuffer(ReadOnlySpan value) - { - byte[]? newBuffer = CreateBufferFromUtf16Common(value, replaceInvalidSequences: false); - - if (newBuffer is null) - { - // Input buffer contained invalid UTF-16 data. - - throw new ArgumentException( - message: SR.Utf8String_InputContainedMalformedUtf16, - paramName: nameof(value)); - } - - return newBuffer; - } - - // This should only be called from FastAllocate - private Utf8String(byte[] bytes) - { - _bytes = bytes; - } - - /// - /// Returns a mutable reference to the first byte of this - /// (or the null terminator if the string is empty). - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ref byte DangerousGetMutableReference() => - ref MemoryMarshal.GetReference(_bytes.AsSpan()); - - /// - /// Returns a mutable that can be used to populate this - /// instance. Only to be used during construction. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal Span DangerousGetMutableSpan() - { - Debug.Assert(Length > 0, $"This should only ever be called on a non-empty {nameof(Utf8String)}."); - return _bytes.AsSpan(0, Length); - } - - /// - /// Returns a for this - /// instance. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ReadOnlySpan GetSpan() => _bytes.AsSpan(0, Length); - - /// - /// Gets an immutable reference that can be used in a statement. The resulting - /// reference can be pinned and used as a null-terminated LPCUTF8STR. - /// - /// - /// If this instance is empty, returns a reference to the null terminator. - /// - [EditorBrowsable(EditorBrowsableState.Never)] // for compiler use only - public ref readonly byte GetPinnableReference() => ref _bytes.AsSpan().GetPinnableReference(); - - /// - /// Similar to , but skips the null check on the input. - /// Throws a if the input is null. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ReadOnlySpan AsBytesSkipNullCheck() => GetSpan(); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal ReadOnlyMemory CreateMemoryBytes(int start, int length) => - _bytes.AsMemory(start, length); - - /// - /// Creates a new zero-initialized instance of the specified length. Actual storage allocated is "length + 1" bytes - /// because instances are null-terminated. - /// - /// - /// The implementation of this method checks its input argument for overflow. - /// - private static Utf8String FastAllocate(int length) - { - // just simulate a "fast allocate", since this is portable - return new Utf8String(AllocateBuffer(length)); - } - - private static byte[] AllocateBuffer(int length) - { - Debug.Assert(length > 0); - - if (length == int.MaxValue) - { - // Ensure we don't overflow below. The VM will throw an OutOfMemoryException - // if we try to create a byte[] this large anyway. - length = int.MaxValue - 1; - } - - // Actual storage allocated is "length + 1" bytes because instances are null-terminated. - return new byte[length + 1]; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static unsafe int wcslen(char* ptr) - { - // IndexOf processes memory in aligned chunks, and thus it won't crash even if it accesses memory beyond the null terminator. - int length = new ReadOnlySpan(ptr, int.MaxValue).IndexOf('\0'); - if (length < 0) - { - ThrowMustBeNullTerminatedString(); - } - - return length; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static unsafe int strlen(byte* ptr) - { - // IndexOf processes memory in aligned chunks, and thus it won't crash even if it accesses memory beyond the null terminator. - int length = new ReadOnlySpan(ptr, int.MaxValue).IndexOf((byte)'\0'); - if (length < 0) - { - ThrowMustBeNullTerminatedString(); - } - - return length; - } - - [DoesNotReturn] - private static void ThrowMustBeNullTerminatedString() - { - throw new ArgumentException(SR.Arg_MustBeNullTerminatedString); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System.Utf8String.Experimental.Tests.csproj b/src/libraries/System.Utf8String.Experimental/tests/System.Utf8String.Experimental.Tests.csproj deleted file mode 100644 index 73efb5b00c82..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System.Utf8String.Experimental.Tests.csproj +++ /dev/null @@ -1,53 +0,0 @@ - - - true - true - $(NetCoreAppCurrent);net461 - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/BoundedUtf8Span.cs b/src/libraries/System.Utf8String.Experimental/tests/System/BoundedUtf8Span.cs deleted file mode 100644 index 26f07e5889b2..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/BoundedUtf8Span.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Text; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - /// - /// Allows creating instances that wrap . - /// Useful for ensuring an API under test doesn't read past the end of the span. - /// - public sealed class BoundedUtf8Span : IDisposable - { - private readonly BoundedMemory _boundedMemory; - - public BoundedUtf8Span(string utf16Data, PoisonPagePlacement placement = PoisonPagePlacement.After) - : this(utf16Data.AsSpan(), placement) - { - } - - public BoundedUtf8Span(ReadOnlySpan utf16Data, PoisonPagePlacement placement = PoisonPagePlacement.After) - : this(u8(utf16Data.ToString()).AsBytes(), placement) - { - } - - public BoundedUtf8Span(ReadOnlySpan utf8Data, PoisonPagePlacement placement = PoisonPagePlacement.After) - { - _boundedMemory = BoundedMemory.AllocateFromExistingData(utf8Data, placement); - } - - public Utf8Span Span => Utf8Span.UnsafeCreateWithoutValidation(_boundedMemory.Span); - - public void Dispose() - { - _boundedMemory.Dispose(); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Char8Tests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Char8Tests.cs deleted file mode 100644 index d5f00ac25564..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Char8Tests.cs +++ /dev/null @@ -1,112 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Globalization; -using Xunit; - -namespace System.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public unsafe partial class Char8Tests - { - [Theory] - [InlineData(10, 20, -1)] - [InlineData(20, 10, 1)] - [InlineData(30, 30, 0)] - public static void CompareTo(int a, int b, int expectedSign) - { - Assert.Equal(expectedSign, Math.Sign(((Char8)a).CompareTo((Char8)b))); - } - - [Theory] - [InlineData(-1)] - [InlineData(0xFF)] - [InlineData(0x80)] - [InlineData(0x00)] - [InlineData(0x1234)] - [InlineData(0x12345678)] - [InlineData(0x1234567812345678)] - public static void CastOperators(long value) - { - // Only the low byte is preserved when casting through Char8. - - Assert.Equal((byte)value, (byte)(Char8)(byte)value); - Assert.Equal((sbyte)value, (sbyte)(Char8)(sbyte)value); - Assert.Equal((char)(value & 0xFF), (char)(Char8)(char)value); - Assert.Equal((short)(value & 0xFF), (short)(Char8)(short)value); - Assert.Equal((ushort)(value & 0xFF), (ushort)(Char8)(ushort)value); - Assert.Equal((int)(value & 0xFF), (int)(Char8)(int)value); - Assert.Equal((uint)(value & 0xFF), (uint)(Char8)(uint)value); - Assert.Equal((long)(value & 0xFF), (long)(Char8)(long)value); - Assert.Equal((ulong)(value & 0xFF), (ulong)(Char8)(ulong)value); - } - - [Fact] - public static void EqualsObject() - { - Assert.False(((Char8)42).Equals((object)null)); - Assert.False(((Char8)42).Equals((object)(int)42)); - Assert.False(((Char8)42).Equals((object)(Char8)43)); - Assert.True(((Char8)42).Equals((object)(Char8)42)); - } - - [Fact] - public static void EqualsChar8() - { - Assert.True(((Char8)42).Equals(42)); // implicit cast to Char8 - Assert.False(((Char8)42).Equals(43)); // implicit cast to Char8 - } - - [Fact] - public static void GetHashCode_ReturnsValue() - { - for (int i = 0; i <= byte.MaxValue; i++) - { - Assert.Equal(i, ((Char8)i).GetHashCode()); - } - } - - [Theory] - [InlineData(10, 20, false)] - [InlineData(20, 10, false)] - [InlineData(30, 30, true)] - public static void OperatorEquals(int a, int b, bool expected) - { - Assert.Equal(expected, (Char8)a == (Char8)b); - Assert.NotEqual(expected, (Char8)a != (Char8)b); - } - - [Theory] - [InlineData(10, 20, true)] - [InlineData(20, 10, false)] - [InlineData(29, 30, true)] - [InlineData(30, 30, false)] - [InlineData(31, 30, false)] - public static void OperatorLessThan(int a, int b, bool expected) - { - Assert.Equal(expected, (Char8)a < (Char8)b); - Assert.NotEqual(expected, (Char8)a >= (Char8)b); - } - - [Theory] - [InlineData(10, 20, false)] - [InlineData(20, 10, true)] - [InlineData(29, 30, false)] - [InlineData(30, 30, false)] - [InlineData(31, 30, true)] - public static void OperatorGreaterThan(int a, int b, bool expected) - { - Assert.Equal(expected, (Char8)a > (Char8)b); - Assert.NotEqual(expected, (Char8)a <= (Char8)b); - } - - [Fact] - public static void ToString_ReturnsHexValue() - { - for (int i = 0; i <= byte.MaxValue; i++) - { - Assert.Equal(i.ToString("X2", CultureInfo.InvariantCulture), ((Char8)i).ToString()); - } - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.cs deleted file mode 100644 index f6185fd5baa6..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public partial class MemoryTests - { - [Fact] - public static unsafe void MemoryOfByte_WithUtf8String_Pin() - { - Utf8String theString = u8("Hello"); - ReadOnlyMemory rom = theString.AsMemoryBytes(); - MemoryHandle memHandle = default; - try - { - memHandle = Unsafe.As, Memory>(ref rom).Pin(); - Assert.True(memHandle.Pointer == Unsafe.AsPointer(ref Unsafe.AsRef(in theString.GetPinnableReference()))); - } - finally - { - memHandle.Dispose(); - } - } - - [Fact] - public static void MemoryOfByte_WithUtf8String_ToString() - { - ReadOnlyMemory rom = u8("Hello").AsMemoryBytes(); - Assert.Equal("System.Memory[5]", Unsafe.As, Memory>(ref rom).ToString()); - } - - [Fact] - public static unsafe void ReadOnlyMemoryOfByte_WithUtf8String_Pin() - { - Utf8String theString = u8("Hello"); - ReadOnlyMemory rom = theString.AsMemoryBytes(); - MemoryHandle memHandle = default; - try - { - memHandle = rom.Pin(); - Assert.True(memHandle.Pointer == Unsafe.AsPointer(ref Unsafe.AsRef(in theString.GetPinnableReference()))); - } - finally - { - memHandle.Dispose(); - } - } - - [Fact] - public static void ReadOnlyMemoryOfByte_WithUtf8String_ToString() - { - Assert.Equal("System.ReadOnlyMemory[5]", u8("Hello").AsMemoryBytes().ToString()); - } - - [Fact] - public static void ReadOnlySpanOfByte_ToString() - { - ReadOnlySpan span = stackalloc byte[] { (byte)'H', (byte)'i' }; - Assert.Equal("System.ReadOnlySpan[2]", span.ToString()); - } - - [Fact] - public static void SpanOfByte_ToString() - { - Span span = stackalloc byte[] { (byte)'H', (byte)'i' }; - Assert.Equal("System.Span[2]", span.ToString()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netcoreapp.cs deleted file mode 100644 index dd5919baa89a..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netcoreapp.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public partial class MemoryTests - { - [Fact] - public static void MemoryMarshal_TryGetArrayOfByte_Utf8String() - { - ReadOnlyMemory rom = u8("Hello").AsMemoryBytes(); - - Assert.False(MemoryMarshal.TryGetArray(rom, out ArraySegment segment)); - Assert.True(default(ArraySegment).Equals(segment)); - } - - [Fact] - public static void MemoryMarshal_TryGetArrayOfChar8_Utf8String() - { - ReadOnlyMemory rom = u8("Hello").AsMemory(); - - Assert.False(MemoryMarshal.TryGetArray(rom, out ArraySegment segment)); - Assert.True(default(ArraySegment).Equals(segment)); - } - - [Fact] - public static unsafe void MemoryOfChar8_WithUtf8String_Pin() - { - Utf8String theString = u8("Hello"); - ReadOnlyMemory rom = theString.AsMemory(); - MemoryHandle memHandle = default; - try - { - memHandle = Unsafe.As, Memory>(ref rom).Pin(); - Assert.True(memHandle.Pointer == Unsafe.AsPointer(ref Unsafe.AsRef(in theString.GetPinnableReference()))); - } - finally - { - memHandle.Dispose(); - } - } - - [Fact] - public static void MemoryOfChar8_WithUtf8String_ToString() - { - ReadOnlyMemory rom = u8("Hello").AsMemory(); - Assert.Equal("Hello", Unsafe.As, Memory>(ref rom).ToString()); - } - - [Fact] - public static unsafe void ReadOnlyMemoryOfChar8_WithUtf8String_Pin() - { - Utf8String theString = u8("Hello"); - ReadOnlyMemory rom = theString.AsMemory(); - MemoryHandle memHandle = default; - try - { - memHandle = rom.Pin(); - Assert.True(memHandle.Pointer == Unsafe.AsPointer(ref Unsafe.AsRef(in theString.GetPinnableReference()))); - } - finally - { - memHandle.Dispose(); - } - } - - [Fact] - public static void ReadOnlyMemoryOfChar8_WithUtf8String_ToString() - { - Assert.Equal("Hello", u8("Hello").AsMemory().ToString()); - } - - [Fact] - public static void ReadOnlySpanOfChar8_ToString() - { - ReadOnlySpan span = stackalloc Char8[] { (Char8)'H', (Char8)'i' }; - Assert.Equal("Hi", span.ToString()); - } - - [Fact] - public static void SpanOfChar8_ToString() - { - Span span = stackalloc Char8[] { (Char8)'H', (Char8)'i' }; - Assert.Equal("Hi", span.ToString()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netfx.cs b/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netfx.cs deleted file mode 100644 index 4c26154e48b8..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/MemoryTests.netfx.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public partial class MemoryTests - { - [Fact] - public static void MemoryMarshal_TryGetArrayOfByte_Utf8String() - { - ReadOnlyMemory rom = u8("Hello").AsMemoryBytes(); - - Assert.True(MemoryMarshal.TryGetArray(rom, out ArraySegment segment)); - Assert.NotNull(segment.Array); - Assert.Equal(0, segment.Offset); - Assert.Equal(5, segment.Count); - } - - [Fact] - public static void ReadOnlySpanOfChar8_ToString() - { - // unable to override ReadOnlySpan.ToString on netfx - - ReadOnlySpan span = stackalloc Char8[] { (Char8)'H', (Char8)'i' }; - Assert.Equal("System.ReadOnlySpan[2]", span.ToString()); - } - - [Fact] - public static void SpanOfChar8_ToString() - { - // unable to override Span.ToString on netfx - - Span span = stackalloc Char8[] { (Char8)'H', (Char8)'i' }; - Assert.Equal("System.Span[2]", span.ToString()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.cs deleted file mode 100644 index 9ea0a4ccb632..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.IO; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Net.Http.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public partial class Utf8StringContentTests - { - [Fact] - public static void Ctor_NullContent_Throws() - { - Assert.Throws("content", () => new Utf8StringContent(null)); - Assert.Throws("content", () => new Utf8StringContent(null, "application/json")); - } - - [Theory] - [InlineData(null, "text/plain")] - [InlineData("application/json", "application/json")] - public static void Ctor_SetsContentTypeHeader(string mediaTypeForCtor, string expectedMediaType) - { - HttpContent httpContent = new Utf8StringContent(u8("Hello"), mediaTypeForCtor); - - Assert.Equal(expectedMediaType, httpContent.Headers.ContentType.MediaType); - Assert.Equal(Encoding.UTF8.WebName, httpContent.Headers.ContentType.CharSet); - } - - [Fact] - public static async Task Ctor_CopyToAsync_GetStream() - { - MemoryStream memoryStream = new MemoryStream(); - - await new Utf8StringContent(u8("Hello")).CopyToAsync(memoryStream); - - Assert.Equal(u8("Hello").ToByteArray(), memoryStream.ToArray()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.netcoreapp.cs deleted file mode 100644 index 249bd063004d..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Net/Http/Utf8StringContentTests.netcoreapp.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.IO; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Net.Http.Tests -{ - public partial class Utf8StringContentTests - { - [Fact] - public static void Ctor_CopyTo_GetStream() - { - var memoryStream = new MemoryStream(); - - new Utf8StringContent(u8("Hello")).CopyTo(memoryStream, default, default); - - Assert.Equal(u8("Hello").ToByteArray(), memoryStream.ToArray()); - } - - [Fact] - public static void Ctor_ReadAsStream() - { - var content = new Utf8StringContent(u8("Hello")); - Stream stream = content.ReadAsStream(); - - var memoryStream = new MemoryStream(); - stream.CopyTo(memoryStream); - memoryStream.Seek(0, SeekOrigin.Begin); - Assert.Equal(u8("Hello").ToByteArray(), memoryStream.ToArray()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/RangeEqualityComparer.cs b/src/libraries/System.Utf8String.Experimental/tests/System/RangeEqualityComparer.cs deleted file mode 100644 index 417844caa255..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/RangeEqualityComparer.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using Xunit; - -namespace System.Tests -{ - /// - /// Given a fixed length, compares two instances for equality. - /// - public sealed class RangeEqualityComparer : IEqualityComparer - { - private int _length; - - public RangeEqualityComparer(int length) - { - Assert.True(length >= 0); - - _length = length; - } - - public bool Equals(Range x, Range y) - { - (int offsetX, int lengthX) = x.GetOffsetAndLength(_length); - (int offsetY, int lengthY) = y.GetOffsetAndLength(_length); - - return offsetX == offsetY && lengthX == lengthY; - } - - public int GetHashCode(Range obj) - { - (int offset, int length) = obj.GetOffsetAndLength(_length); -#if NETCOREAPP - return HashCode.Combine(offset, length); -#else - return Tuple.Create(offset, length).GetHashCode(); -#endif - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.cs deleted file mode 100644 index b402ebf7ff50..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.Serialization; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public partial class ReflectionTests - { - [Fact] - public static void ActivatorCreateInstance_CanCallParameterfulCtor() - { - Utf8String theString = (Utf8String)Activator.CreateInstance(typeof(Utf8String), "Hello"); - Assert.Equal(u8("Hello"), theString); - } - - [Fact] - public static void ActivatorCreateInstance_CannotCallParameterlessCtor() - { - Assert.Throws(() => Activator.CreateInstance(typeof(Utf8String))); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.netcoreapp.cs deleted file mode 100644 index f6ce4770e247..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/ReflectionTests.netcoreapp.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.Serialization; -using Xunit; - -namespace System.Tests -{ - public partial class ReflectionTests - { - [Fact] - public static void FormatterServices_GetUninitializedObject_Throws() - { - // Like String, shouldn't be able to create an uninitialized Utf8String. - - Assert.Throws(() => FormatterServices.GetSafeUninitializedObject(typeof(Utf8String))); - Assert.Throws(() => FormatterServices.GetUninitializedObject(typeof(Utf8String))); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.cs deleted file mode 100644 index d68746129348..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.cs +++ /dev/null @@ -1,163 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public partial class Utf8ExtensionsTests - { - [Fact] - public unsafe void AsBytes_FromSpan_Default() - { - // First, a default span should become a default span. - - Assert.True(default(ReadOnlySpan) == new ReadOnlySpan().AsBytes()); - - // Next, an empty but non-default span should become an empty but non-default span. - - Assert.True(new ReadOnlySpan((void*)0x12345, 0) == new ReadOnlySpan((void*)0x12345, 0).AsBytes()); - } - - [Fact] - public void AsBytes_FromUtf8String() - { - Assert.True(default(ReadOnlySpan) == ((Utf8String)null).AsBytes()); - } - - [Fact] - public void AsBytes_FromUtf8String_WithStart() - { - Assert.True(default(ReadOnlySpan) == ((Utf8String)null).AsBytes(0)); - Assert.True(u8("Hello").AsBytes(5).IsEmpty); - - SpanAssert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l', (byte)'o' }, u8("Hello").AsBytes(1)); - } - - [Fact] - public void AsBytes_FromUtf8String_WithStart_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsBytes(1)); - Assert.Throws("start", () => u8("Hello").AsBytes(-1)); - Assert.Throws("start", () => u8("Hello").AsBytes(6)); - } - - [Fact] - public void AsBytes_FromUtf8String_WithStartAndLength() - { - Assert.True(default(ReadOnlySpan) == ((Utf8String)null).AsBytes(0, 0)); - Assert.True(u8("Hello").AsBytes(5, 0).IsEmpty); - - SpanAssert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l' }, u8("Hello").AsBytes(1, 3)); - } - - [Fact] - public void AsBytes_FromUtf8String_WithStartAndLength_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsBytes(0, 1)); - Assert.Throws("start", () => ((Utf8String)null).AsBytes(1, 0)); - Assert.Throws("start", () => u8("Hello").AsBytes(5, 1)); - Assert.Throws("start", () => u8("Hello").AsBytes(4, -2)); - } - - [Fact] - public unsafe void AsMemoryBytes_FromUtf8String() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemoryBytes())); - - Utf8String theString = u8("Hello"); - fixed (byte* pTheString = theString) - { - fixed (byte* pTheStringAsMemoryBytes = theString.AsMemoryBytes().Span) - { - Assert.True(pTheString == pTheStringAsMemoryBytes); - } - } - } - - [Fact] - public void AsMemoryBytes_FromUtf8String_WithStart() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemoryBytes(0))); - Assert.True(u8("Hello").AsMemoryBytes(5).IsEmpty); - - SpanAssert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l', (byte)'o' }, u8("Hello").AsMemoryBytes(1).Span); - } - - [Fact] - public void AsMemoryBytes_FromUtf8String_WithStart_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsMemoryBytes(1)); - Assert.Throws("start", () => u8("Hello").AsMemoryBytes(-1)); - Assert.Throws("start", () => u8("Hello").AsMemoryBytes(6)); - } - - [Fact] - public void AsMemoryBytes_FromUtf8String_WithStartAndLength() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemoryBytes(0, 0))); - Assert.True(u8("Hello").AsMemoryBytes(5, 0).IsEmpty); - - SpanAssert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l' }, u8("Hello").AsMemoryBytes(1, 3).Span); - } - - [Fact] - public void AsMemoryBytes_FromUtf8String_WithStartAndLength_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsMemoryBytes(0, 1)); - Assert.Throws("start", () => ((Utf8String)null).AsMemoryBytes(1, 0)); - Assert.Throws("start", () => u8("Hello").AsMemoryBytes(5, 1)); - Assert.Throws("start", () => u8("Hello").AsMemoryBytes(4, -2)); - } - - [Fact] - public void AsSpan_FromUtf8String() - { - Assert.True(((Utf8String)null).AsSpan().Bytes == default); // referential equality check - - Utf8String theString = u8("Hello"); - - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in theString.GetPinnableReference()), ref Unsafe.AsRef(in theString.AsSpan().GetPinnableReference()))); - Assert.Equal(5, theString.AsSpan().Length); - } - - [Fact] - public void AsSpan_FromUtf8String_WithStart() - { - Assert.True(((Utf8String)null).AsSpan(0).Bytes == default); // referential equality check - Assert.True(u8("Hello").AsSpan(5).IsEmpty); - Assert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l', (byte)'o' }, u8("Hello").AsSpan(1).Bytes.ToArray()); - } - - [Fact] - public void AsSpan_FromUtf8String_WithStart_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsSpan(1)); - Assert.Throws("start", () => u8("Hello").AsSpan(-1)); - Assert.Throws("start", () => u8("Hello").AsSpan(6)); - } - - [Fact] - public void AsSpan_FromUtf8String_WithStartAndLength() - { - Assert.True(((Utf8String)null).AsSpan(0, 0).Bytes == default); // referential equality check - Assert.True(u8("Hello").AsSpan(5, 0).IsEmpty); - Assert.Equal(new byte[] { (byte)'e', (byte)'l', (byte)'l' }, u8("Hello").AsSpan(1, 3).Bytes.ToArray()); - } - - [Fact] - public void AsSpan_FromUtf8String_WithStartAndLength_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsSpan(0, 1)); - Assert.Throws("start", () => ((Utf8String)null).AsSpan(1, 0)); - Assert.Throws("start", () => u8("Hello").AsSpan(5, 1)); - Assert.Throws("start", () => u8("Hello").AsSpan(4, -2)); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.netcoreapp.cs deleted file mode 100644 index 560946c8b0fc..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8ExtensionsTests.netcoreapp.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public partial class Utf8ExtensionsTests - { - [Fact] - public void AsBytes_FromSpan_Default_netcoreapp() - { - // a span wrapping data should become a span wrapping that same data. - - Utf8String theString = u8("Hello"); - - Assert.True(MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in theString.GetPinnableReference()), 5) == (theString.AsMemory().Span).AsBytes()); - } - - [Fact] - public void AsBytes_FromUtf8String_netcoreapp() - { - Utf8String theString = u8("Hello"); - Assert.True(MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in theString.GetPinnableReference()), 5) == theString.AsBytes()); - } - - [Fact] - public void AsMemory_FromUtf8String() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemory())); - - Utf8String theString = u8("Hello"); - Assert.True(MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As(ref Unsafe.AsRef(in theString.GetPinnableReference())), 5) == theString.AsMemory().Span); - } - - [Fact] - public void AsMemory_FromUtf8String_WithStart() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemory(0))); - Assert.True(u8("Hello").AsMemory(5).IsEmpty); - - SpanAssert.Equal(new Char8[] { (Char8)'e', (Char8)'l', (Char8)'l', (Char8)'o' }, u8("Hello").AsMemory(1).Span); - } - - [Fact] - public void AsMemory_FromUtf8String_WithStart_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsMemory(1)); - Assert.Throws("start", () => u8("Hello").AsMemory(-1)); - Assert.Throws("start", () => u8("Hello").AsMemory(6)); - } - - [Fact] - public void AsMemory_FromUtf8String_WithStartAndLength() - { - Assert.True(default(ReadOnlyMemory).Equals(((Utf8String)null).AsMemory(0, 0))); - Assert.True(u8("Hello").AsMemory(5, 0).IsEmpty); - - SpanAssert.Equal(new Char8[] { (Char8)'e', (Char8)'l', (Char8)'l' }, u8("Hello").AsMemory(1, 3).Span); - } - - [Fact] - public void AsMemory_FromUtf8String_WithStartAndLength_ArgOutOfRange() - { - Assert.Throws("start", () => ((Utf8String)null).AsMemory(0, 1)); - Assert.Throws("start", () => ((Utf8String)null).AsMemory(1, 0)); - Assert.Throws("start", () => u8("Hello").AsMemory(5, 1)); - Assert.Throws("start", () => u8("Hello").AsMemory(4, -2)); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Comparison.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Comparison.cs deleted file mode 100644 index 7cc4f55009ba..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Comparison.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Globalization; -using System.Tests; -using Microsoft.DotNet.RemoteExecutor; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Text.Tests -{ - public partial class Utf8SpanTests - { - [Fact] - public static void Equals_Object_ThrowsNotSupported() - { - Utf8Span span = Utf8Span.Empty; - - Assert.Throws(() => Utf8Span.Empty.Equals((object)null)); - Assert.Throws(() => Utf8Span.Empty.Equals(new object())); - } - - [Fact] - public static void Equals_Ordinal() - { - // First make sure referential equality passes - - Utf8Span span1 = u8("Hello!"); - Utf8Span span2 = span1; - AssertEqualOrdinal(span1, span2); - - // Now make sure deep equality passes - - span2 = Utf8Span.UnsafeCreateWithoutValidation(Encoding.UTF8.GetBytes("Hello!")); - AssertEqualOrdinal(span1, span2); - - // Now mutate one of the inputs and make sure they're inequal - - span2 = u8("Bello!"); - AssertNotEqualOrdinal(span1, span2); - - // Finally, make sure null / null and null / empty are treated as the same - - AssertEqualOrdinal(Utf8Span.Empty, Utf8Span.Empty); - AssertEqualOrdinal(Utf8Span.Empty, u8("")); - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [InlineData(null, null, StringComparison.OrdinalIgnoreCase, null, true)] - [InlineData("encyclopaedia", "encyclopædia", StringComparison.OrdinalIgnoreCase, null, false)] - [InlineData("encyclopaedia", "encyclopædia", StringComparison.InvariantCulture, null, true)] - [InlineData("encyclopaedia", "ENCYCLOPÆDIA", StringComparison.InvariantCulture, null, false)] - [InlineData("encyclopaedia", "encyclopædia", StringComparison.InvariantCultureIgnoreCase, null, true)] - [InlineData("encyclopaedia", "ENCYCLOPÆDIA", StringComparison.InvariantCultureIgnoreCase, null, true)] - [InlineData("Weiß", "WEISS", StringComparison.OrdinalIgnoreCase, null, false)] - [InlineData("Weiß", "WEISS", StringComparison.InvariantCulture, null, false)] - [InlineData("Weiß", "WEISS", StringComparison.InvariantCultureIgnoreCase, null, true)] - [InlineData("Weiß", "WEISS", StringComparison.CurrentCulture, "de-DE", false)] - [InlineData("Weiß", "WEISS", StringComparison.CurrentCultureIgnoreCase, "de-DE", true)] - [InlineData("γένεσις", "ΓΈΝΕΣΙΣ", StringComparison.InvariantCultureIgnoreCase, null, true)] - [InlineData("ıI", "iI", StringComparison.CurrentCulture, "tr-TR", false)] - [InlineData("ıI", "iI", StringComparison.CurrentCultureIgnoreCase, "tr-TR", false)] - [InlineData("İI", "iI", StringComparison.CurrentCultureIgnoreCase, "tr-TR", true)] - public static void Equals_NonOrdinal(string str1, string str2, StringComparison comparison, string culture, bool shouldCompareAsEqual) - { - using (new ThreadCultureChange(culture)) - { - using BoundedUtf8Span boundedSpan1 = new BoundedUtf8Span(str1); - using BoundedUtf8Span boundedSpan2 = new BoundedUtf8Span(str2); - - Utf8Span span1 = boundedSpan1.Span; - Utf8Span span2 = boundedSpan2.Span; - - Assert.Equal(shouldCompareAsEqual, span1.Equals(span2, comparison)); - Assert.Equal(shouldCompareAsEqual, span2.Equals(span1, comparison)); - Assert.Equal(shouldCompareAsEqual, Utf8Span.Equals(span1, span2, comparison)); - Assert.Equal(shouldCompareAsEqual, Utf8Span.Equals(span2, span1, comparison)); - } - } - - private static void AssertEqualOrdinal(Utf8Span span1, Utf8Span span2) - { - Assert.True(span1.Equals(span2)); - Assert.True(span2.Equals(span1)); - - Assert.True(span1.Equals(span2, StringComparison.Ordinal)); - Assert.True(span2.Equals(span1, StringComparison.Ordinal)); - - Assert.True(Utf8Span.Equals(span1, span2)); - Assert.True(Utf8Span.Equals(span2, span1)); - - Assert.True(Utf8Span.Equals(span1, span2, StringComparison.Ordinal)); - Assert.True(Utf8Span.Equals(span2, span1, StringComparison.Ordinal)); - - Assert.True(span1 == span2); - Assert.True(span2 == span1); - - Assert.False(span1 != span2); - Assert.False(span2 != span1); - } - - private static void AssertNotEqualOrdinal(Utf8Span span1, Utf8Span span2) - { - Assert.False(span1.Equals(span2)); - Assert.False(span2.Equals(span1)); - - Assert.False(span1.Equals(span2, StringComparison.Ordinal)); - Assert.False(span2.Equals(span1, StringComparison.Ordinal)); - - Assert.False(Utf8Span.Equals(span1, span2)); - Assert.False(Utf8Span.Equals(span2, span1)); - - Assert.False(Utf8Span.Equals(span1, span2, StringComparison.Ordinal)); - Assert.False(Utf8Span.Equals(span2, span1, StringComparison.Ordinal)); - - Assert.False(span1 == span2); - Assert.False(span2 == span1); - - Assert.True(span1 != span2); - Assert.True(span2 != span1); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Conversion.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Conversion.cs deleted file mode 100644 index 802794c1e69a..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Conversion.cs +++ /dev/null @@ -1,241 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Globalization; -using System.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public partial class Utf8SpanTests - { - [Theory] - [MemberData(nameof(NormalizationData))] - public static void Normalize(string utf16Source, string utf16Expected, NormalizationForm normalizationForm) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(utf16Source); - Utf8Span utf8Source = boundedSpan.Span; - - // Quick IsNormalized tests - - Assert.Equal(utf16Source == utf16Expected, utf8Source.IsNormalized(normalizationForm)); - - // Normalize and return new Utf8String instances - - ustring utf8Normalized = utf8Source.Normalize(normalizationForm); - Assert.True(ustring.AreEquivalent(utf8Normalized, utf16Expected)); - - // Normalize to byte arrays which are too small, expect -1 (failure) - - Assert.Equal(-1, utf8Source.Normalize(new byte[utf8Normalized.Length - 1], normalizationForm)); - - // Normalize to byte arrays which are the correct length, expect success, - // then compare buffer contents for ordinal equality. - - foreach (int bufferLength in new int[] { utf8Normalized.Length /* just right */, utf8Normalized.Length + 1 /* with extra room */}) - { - byte[] dest = new byte[bufferLength]; - Assert.Equal(utf8Normalized.Length, utf8Source.Normalize(dest, normalizationForm)); - Utf8Span normalizedSpan = Utf8Span.UnsafeCreateWithoutValidation(dest.AsSpan().Slice(0, utf8Normalized.Length)); - Assert.True(utf8Normalized.AsSpan() == normalizedSpan); // ordinal equality - Assert.True(normalizedSpan.IsNormalized(normalizationForm)); - } - } - - [Theory] - [MemberData(nameof(CaseConversionData))] - public static void ToLower(string testData) - { - static void RunTest(string testData, string expected, CultureInfo culture) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(testData); - Utf8Span inputSpan = boundedSpan.Span; - - // First try the allocating APIs - - ustring expectedUtf8 = u8(expected) ?? ustring.Empty; - ustring actualUtf8; - - if (culture is null) - { - actualUtf8 = inputSpan.ToLowerInvariant(); - } - else - { - actualUtf8 = inputSpan.ToLower(culture); - } - - Assert.Equal(expectedUtf8, actualUtf8); - - // Next, try the non-allocating APIs with too small a buffer - - if (expectedUtf8.Length > 0) - { - byte[] bufferTooSmall = new byte[expectedUtf8.Length - 1]; - - if (culture is null) - { - Assert.Equal(-1, inputSpan.ToLowerInvariant(bufferTooSmall)); - } - else - { - Assert.Equal(-1, inputSpan.ToLower(bufferTooSmall, culture)); - } - } - - // Then the non-allocating APIs with a properly sized buffer - - foreach (int bufferSize in new[] { expectedUtf8.Length, expectedUtf8.Length + 1 }) - { - byte[] buffer = new byte[expectedUtf8.Length]; - - if (culture is null) - { - Assert.Equal(expectedUtf8.Length, inputSpan.ToLowerInvariant(buffer)); - } - else - { - Assert.Equal(expectedUtf8.Length, inputSpan.ToLower(buffer, culture)); - } - - Assert.True(expectedUtf8.AsBytes().SequenceEqual(buffer)); - } - } - - RunTest(testData, testData?.ToLowerInvariant(), null); - RunTest(testData, testData?.ToLower(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); - RunTest(testData, testData?.ToLower(CultureInfo.GetCultureInfo("en-US")), CultureInfo.GetCultureInfo("en-US")); - RunTest(testData, testData?.ToLower(CultureInfo.GetCultureInfo("tr-TR")), CultureInfo.GetCultureInfo("tr-TR")); - } - - [Theory] - [MemberData(nameof(CaseConversionData))] - public static void ToUpper(string testData) - { - static void RunTest(string testData, string expected, CultureInfo culture) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(testData); - Utf8Span inputSpan = boundedSpan.Span; - - // First try the allocating APIs - - ustring expectedUtf8 = u8(expected) ?? ustring.Empty; - ustring actualUtf8; - - if (culture is null) - { - actualUtf8 = inputSpan.ToUpperInvariant(); - } - else - { - actualUtf8 = inputSpan.ToUpper(culture); - } - - Assert.Equal(expectedUtf8, actualUtf8); - - // Next, try the non-allocating APIs with too small a buffer - - if (expectedUtf8.Length > 0) - { - byte[] bufferTooSmall = new byte[expectedUtf8.Length - 1]; - - if (culture is null) - { - Assert.Equal(-1, inputSpan.ToUpperInvariant(bufferTooSmall)); - } - else - { - Assert.Equal(-1, inputSpan.ToUpper(bufferTooSmall, culture)); - } - } - - // Then the non-allocating APIs with a properly sized buffer - - foreach (int bufferSize in new[] { expectedUtf8.Length, expectedUtf8.Length + 1 }) - { - byte[] buffer = new byte[bufferSize]; - - if (culture is null) - { - Assert.Equal(expectedUtf8.Length, inputSpan.ToUpperInvariant(buffer)); - } - else - { - Assert.Equal(expectedUtf8.Length, inputSpan.ToUpper(buffer, culture)); - } - - Assert.True(expectedUtf8.AsBytes().SequenceEqual(buffer.AsSpan(0, expectedUtf8.Length))); - } - } - - RunTest(testData, testData?.ToUpperInvariant(), null); - RunTest(testData, testData?.ToUpper(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); - RunTest(testData, testData?.ToUpper(CultureInfo.GetCultureInfo("en-US")), CultureInfo.GetCultureInfo("en-US")); - RunTest(testData, testData?.ToUpper(CultureInfo.GetCultureInfo("tr-TR")), CultureInfo.GetCultureInfo("tr-TR")); - } - - public static IEnumerable CaseConversionData() - { - string[] testCases = new string[] - { - null, - string.Empty, - "Hello", - "iı", // dotted and dotless I - "İI", // dotted and dotless I - }; - - foreach (string testCase in testCases) - { - yield return new object[] { testCase }; - } - } - - public static IEnumerable NormalizationData() - { - // These test cases are from the Unicode Standard Annex #15, Figure 6 - // https://unicode.org/reports/tr15/ - - var testCases = new[] - { - new - { - Source = "\ufb01", // "fi" (LATIN SMALL LIGATURE FI) - NFD = "\ufb01", // same as source - NFC = "\ufb01", // same as source - NFKD = "fi", // compatibility decomposed into ASCII chars - NFKC = "fi", // compatibility decomposed into ASCII chars - }, - new - { - Source = "2\u2075", // "2⁵" (SUPERSCRIPT FIVE) - NFD = "2\u2075", // same as source - NFC = "2\u2075", // same as source - NFKD = "25", // compatibility decomposed into ASCII chars - NFKC = "25", // compatibility decomposed into ASCII chars - }, - new - { - Source = "\u1e9b\u0323", // 'ẛ' (LATIN SMALL LETTER LONG S WITH DOT ABOVE) + COMBINING DOT BELOW - NFD = "\u017f\u0323\u0307", // 'ſ' (LATIN SMALL LETTER LONG S) + COMBINING DOT BELOW + COMBINING DOT ABOVE - NFC = "\u1e9b\u0323", // same as source - NFKD = "s\u0323\u0307", // ASCII 's' + COMBINING DOT BELOW + COMBINING DOT ABOVE - NFKC = "\u1e69", // "ṩ" (LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE) - } - }; - - foreach (var testCase in testCases) - { - yield return new object[] { testCase.Source, testCase.NFD, NormalizationForm.FormD }; - yield return new object[] { testCase.Source, testCase.NFC, NormalizationForm.FormC }; - yield return new object[] { testCase.Source, testCase.NFKD, NormalizationForm.FormKD }; - yield return new object[] { testCase.Source, testCase.NFKC, NormalizationForm.FormKC }; - } - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Ctor.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Ctor.cs deleted file mode 100644 index 6dc0e30ca477..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Ctor.cs +++ /dev/null @@ -1,134 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public unsafe partial class Utf8SpanTests - { - [Fact] - public static void Ctor_EmptyUtf8String() - { - // Arrange - - ustring str = ustring.Empty; - - // Act - - Utf8Span span = new Utf8Span(str); - - // Assert - // GetPinnableReference should be 'null' to match behavior of empty ROS.GetPinnableReference(); - - Assert.True(span.IsEmpty); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in str.GetPinnableReference()), ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(0, span.Length); - } - - [Fact] - public static void Ctor_NonEmptyUtf8String() - { - // Arrange - - ustring str = u8("Hello!"); - - // Act - - Utf8Span span = new Utf8Span(str); - - // Assert - - Assert.False(span.IsEmpty); - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in str.GetPinnableReference()), ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in str.GetPinnableReference()), ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(6, span.Length); - } - - [Fact] - public static void Ctor_NullUtf8String() - { - // Arrange - - ustring str = null; - - // Act - - Utf8Span span = new Utf8Span(str); - - // Assert - // GetPinnableReference should be 'null' to match behavior of empty ROS.GetPinnableReference(); - - Assert.True(span.IsEmpty); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(0, span.Length); - } - - [Fact] - public static void Ctor_UnsafeFromByteSpan_NonEmpty() - { - // Arrange - - ReadOnlySpan original = new byte[] { 1, 2, 3, 4, 5 }; - - // Act - - Utf8Span span = Utf8Span.UnsafeCreateWithoutValidation(original); - - // Assert - - Assert.False(span.IsEmpty); - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in original.GetPinnableReference()), ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.True(Unsafe.AreSame(ref Unsafe.AsRef(in original.GetPinnableReference()), ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(5, span.Length); - } - - [Fact] - public static void Ctor_UnsafeFromByteSpan_NonNullEmptyArray() - { - // Arrange - - ReadOnlySpan original = new byte[0]; - - // Act - - Utf8Span span = Utf8Span.UnsafeCreateWithoutValidation(original); - - // Assert - // GetPinnableReference should be 'null' to match behavior of empty ROS.GetPinnableReference(); - - Assert.True(span.IsEmpty); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.True(Unsafe.AreSame(ref MemoryMarshal.GetReference(original), ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(0, span.Length); - } - - [Fact] - public static void Ctor_UnsafeFromByteSpan_Default() - { - // Arrange - - ReadOnlySpan original = default; - - // Act - - Utf8Span span = Utf8Span.UnsafeCreateWithoutValidation(original); - - // Assert - // GetPinnableReference should be 'null' to match behavior of empty ROS.GetPinnableReference(); - - Assert.True(span.IsEmpty); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(0, span.Length); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Enumeration.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Enumeration.cs deleted file mode 100644 index cafeca20576b..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Enumeration.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Tests; -using Xunit; - -namespace System.Text.Tests -{ - public unsafe partial class Utf8SpanTests - { - [Fact] - public static void CharsProperty_FromData() - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("\U00000012\U00000123\U00001234\U00101234\U00000012\U00000123\U00001234\U00101234"); - Utf8Span span = boundedSpan.Span; - - var charsEnumerator = span.Chars.GetEnumerator(); - - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00000012', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00000123', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00001234', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\uDBC4', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\uDE34', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00000012', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00000123', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\U00001234', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\uDBC4', charsEnumerator.Current); - Assert.True(charsEnumerator.MoveNext()); - Assert.Equal('\uDE34', charsEnumerator.Current); - Assert.False(charsEnumerator.MoveNext()); - } - - [Fact] - public static void CharsProperty_FromEmpty() - { - Assert.False(Utf8Span.Empty.Chars.GetEnumerator().MoveNext()); - } - - [Fact] - public static void RunesProperty_FromData() - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("\U00000012\U00000123\U00001234\U00101234\U00000012\U00000123\U00001234\U00101234"); - Utf8Span span = boundedSpan.Span; - - var runesEnumerator = span.Runes.GetEnumerator(); - - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x0012), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x0123), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x1234), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x101234), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x0012), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x0123), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x1234), runesEnumerator.Current); - Assert.True(runesEnumerator.MoveNext()); - Assert.Equal(new Rune(0x101234), runesEnumerator.Current); - Assert.False(runesEnumerator.MoveNext()); - } - - [Fact] - public static void RunesProperty_FromEmpty() - { - Assert.False(Utf8Span.Empty.Runes.GetEnumerator().MoveNext()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.TestData.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.TestData.cs deleted file mode 100644 index 94a85ae9ac16..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.TestData.cs +++ /dev/null @@ -1,129 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Collections.Generic; -using System.Globalization; -using System.Tests; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public partial class Utf8SpanTests - { - public static IEnumerable SplitData_CharSeparator() - { - foreach (SplitTestData entry in SplitData_All()) - { - if (!TryParseSearchTermAsChar(entry.SearchTerm, out char searchChar)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchChar, - entry.ExpectedRanges - }; - } - } - - public static IEnumerable SplitData_RuneSeparator() - { - foreach (SplitTestData entry in SplitData_All()) - { - if (!TryParseSearchTermAsRune(entry.SearchTerm, out Rune searchRune)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchRune, - entry.ExpectedRanges - }; - } - } - - public static IEnumerable SplitData_Utf8SpanSeparator() - { - foreach (SplitTestData entry in SplitData_All()) - { - if (!TryParseSearchTermAsUtf8String(entry.SearchTerm, out ustring searchTerm)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchTerm, - entry.ExpectedRanges - }; - } - } - - private static IEnumerable SplitData_All() - { - SplitTestData[] testDataEntries = new SplitTestData[] - { - new SplitTestData - { - // Empty source, searching for anything results in no match - Source = null, - SearchTerm = '\0', - ExpectedRanges = new[] { 0..0 } - }, - new SplitTestData - { - // If no match, then return original span - Source = u8("Hello"), - SearchTerm = 'x', - ExpectedRanges = new[] { Range.All } - }, - new SplitTestData - { - // Match returns multiple spans (some may be empty) - Source = u8("Hello"), - SearchTerm = 'l', - ExpectedRanges = new[] { 0..2, 3..3, 4..5 } - }, - new SplitTestData - { - // Match returns multiple spans (non-empty) - Source = u8("Hello"), - SearchTerm = "ell", - ExpectedRanges = new[] { 0..1, ^1.. } - }, - new SplitTestData - { - // Match returns multiple spans (non-empty, with whitespace) - Source = u8("aax aaa xxax \u2028\u2029"), // includes LS, PS as whitespace - SearchTerm = 'x', - ExpectedRanges = new[] { 0..2, 3..8, 9..9, 10..11, 12.. } - }, - new SplitTestData - { - // Matching on U+1F600 GRINNING FACE (with whitespace) - Source = u8("x \U0001F600 y"), - SearchTerm = new Rune(0x1F600), - ExpectedRanges = new[] { 0..2, ^2.. } - }, - }; - - return testDataEntries; - } - - public class SplitTestData - { - public ustring Source; - public object SearchTerm; - public Range[] ExpectedRanges; - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.cs deleted file mode 100644 index 01eee60d8f01..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Manipulation.cs +++ /dev/null @@ -1,328 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Linq; -using System.Buffers; -using System.Collections.Generic; -using System.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public partial class Utf8SpanTests - { - private delegate Utf8Span.SplitResult Utf8SpanSplitDelegate(Utf8Span span, Utf8StringSplitOptions splitOptions); - - [Fact] - public static void Split_EmptySearchSpan_Throws() - { - // Shouldn't be able to split on an empty UTF-8 span. - // Such an enumerator would iterate forever, so we forbid it. - - var ex = Assert.Throws(() => { u8("Hello").AsSpan().Split(Utf8Span.Empty); }); - Assert.Equal("separator", ex.ParamName); - } - - [Fact] - public static void Split_InvalidChar_Throws() - { - // Shouldn't be able to split on a standalone surrogate char - // Other search methods (TryFind) return false when given a standalone surrogate char as input, - // but the Split methods returns a complex data structure instead of a simple bool. So to keep - // the logic of that data structure relatively simple we'll forbid the bad char at the call site. - - var ex = Assert.Throws(() => { u8("Hello").AsSpan().Split('\ud800'); }); - Assert.Equal("separator", ex.ParamName); - } - - [Fact] - public static void Split_Char_NullInput() - { - // First, make sure that .Split(',') yields a single-element [ ]. - - Utf8Span source = Utf8Span.Empty; - - var enumerator = source.Split(',').GetEnumerator(); - Assert.True(enumerator.MoveNext()); - Assert.True(source.Bytes == enumerator.Current.Bytes); // referential equality - Assert.False(enumerator.MoveNext()); - - // Next, make sure that if "remove empty entries" is specified, yields the empty set [ ]. - - enumerator = source.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries).GetEnumerator(); - Assert.False(enumerator.MoveNext()); - } - - [Theory] - [MemberData(nameof(SplitData_CharSeparator))] - public static void Split_Char(ustring source, char separator, Range[] expectedRanges) - { - SplitTest_Common(source, (span, splitOptions) => span.Split(separator, splitOptions), expectedRanges); - } - - [Fact] - public static void Split_Deconstruct() - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("a,b,c,d,e"); - Utf8Span span = boundedSpan.Span; - - // Note referential equality checks below (since we want to know exact slices - // into the original buffer), not deep (textual) equality checks. - - { - (Utf8Span a, Utf8Span b) = span.Split('x'); // not found - Assert.True(a.Bytes == span.Bytes, "Expected referential equality of input."); - Assert.True(b.Bytes == default); - } - - { - (Utf8Span a, Utf8Span b) = span.Split(','); - Assert.True(a.Bytes == span.Bytes[..1]); // "a" - Assert.True(b.Bytes == span.Bytes[2..]); // "b,c,d,e" - } - - { - (Utf8Span a, Utf8Span b, Utf8Span c, Utf8Span d, Utf8Span e) = span.Split(','); - Assert.True(a.Bytes == span.Bytes[0..1]); // "a" - Assert.True(b.Bytes == span.Bytes[2..3]); // "b" - Assert.True(c.Bytes == span.Bytes[4..5]); // "c" - Assert.True(d.Bytes == span.Bytes[6..7]); // "d" - Assert.True(e.Bytes == span.Bytes[8..9]); // "e" - } - - { - (Utf8Span a, Utf8Span b, Utf8Span c, Utf8Span d, Utf8Span e, Utf8Span f, Utf8Span g, Utf8Span h) = span.Split(','); - Assert.True(a.Bytes == span.Bytes[0..1]); // "a" - Assert.True(b.Bytes == span.Bytes[2..3]); // "b" - Assert.True(c.Bytes == span.Bytes[4..5]); // "c" - Assert.True(d.Bytes == span.Bytes[6..7]); // "d" - Assert.True(e.Bytes == span.Bytes[8..9]); // "e" - Assert.True(f.Bytes == default); - Assert.True(g.Bytes == default); - Assert.True(h.Bytes == default); - } - } - - [Fact] - public static void Split_Deconstruct_WithOptions() - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("a, , b, c,, d, e"); - Utf8Span span = boundedSpan.Span; - - // Note referential equality checks below (since we want to know exact slices - // into the original buffer), not deep (textual) equality checks. - - { - (Utf8Span a, Utf8Span b) = span.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries); - Assert.True(a.Bytes == span.Bytes[..1]); // "a" - Assert.True(b.Bytes == span.Bytes[2..]); // " , b, c,, d, e" - } - - { - (Utf8Span a, Utf8Span x, Utf8Span b, Utf8Span c, Utf8Span d, Utf8Span e) = span.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries); - Assert.True(a.Bytes == span.Bytes[0..1]); // "a" - Assert.True(x.Bytes == span.Bytes[2..3]); // " " - Assert.True(b.Bytes == span.Bytes[4..6]); // " b" - Assert.True(c.Bytes == span.Bytes[7..9]); // " c" - Assert.True(d.Bytes == span.Bytes[11..13]); // " d" - Assert.True(e.Bytes == span.Bytes[14..]); // " e" - } - - { - (Utf8Span a, Utf8Span b, Utf8Span c, Utf8Span d, Utf8Span e, Utf8Span f, Utf8Span g, Utf8Span h) = span.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries | Utf8StringSplitOptions.TrimEntries); - Assert.True(a.Bytes == span.Bytes[0..1]); // "a" - Assert.True(b.Bytes == span.Bytes[5..6]); // "b" - Assert.True(c.Bytes == span.Bytes[8..9]); // "c" - Assert.True(d.Bytes == span.Bytes[12..13]); // "d" - Assert.True(e.Bytes == span.Bytes[15..]); // "e" - Assert.True(f.Bytes == default); - Assert.True(g.Bytes == default); - Assert.True(h.Bytes == default); - } - } - - [Theory] - [MemberData(nameof(SplitData_RuneSeparator))] - public static void Split_Rune(ustring source, Rune separator, Range[] expectedRanges) - { - SplitTest_Common(source, (span, splitOptions) => span.Split(separator, splitOptions), expectedRanges); - } - - [Theory] - [MemberData(nameof(SplitData_Utf8SpanSeparator))] - public static void Split_Utf8Span(ustring source, ustring separator, Range[] expectedRanges) - { - SplitTest_Common(source, (span, splitOptions) => span.Split(separator.AsSpan(), splitOptions), expectedRanges); - } - - private static void SplitTest_Common(ustring source, Utf8SpanSplitDelegate splitAction, Range[] expectedRanges) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span span = boundedSpan.Span; - int totalSpanLengthInBytes = span.Length; - source = null; // to avoid inadvertently using this for the remainder of the method - - // First, run the split with default options and make sure the ranges are equivalent - - List actualRanges = new List(); - foreach (Utf8Span slice in splitAction(span, Utf8StringSplitOptions.None)) - { - actualRanges.Add(GetRangeOfSubspan(span, slice)); - } - - Assert.Equal(expectedRanges, actualRanges, new RangeEqualityComparer(totalSpanLengthInBytes)); - - // Next, run the split with empty entries removed - - actualRanges = new List(); - foreach (Utf8Span slice in splitAction(span, Utf8StringSplitOptions.RemoveEmptyEntries)) - { - actualRanges.Add(GetRangeOfSubspan(span, slice)); - } - - Assert.Equal(expectedRanges.Where(range => !range.IsEmpty(totalSpanLengthInBytes)), actualRanges, new RangeEqualityComparer(totalSpanLengthInBytes)); - - // Next, run the split with results trimmed (but allowing empty results) - - expectedRanges = (Range[])expectedRanges.Clone(); // clone the array since we're about to mutate it - for (int i = 0; i < expectedRanges.Length; i++) - { - expectedRanges[i] = GetRangeOfSubspan(span, span[expectedRanges[i]].Trim()); - } - - actualRanges = new List(); - foreach (Utf8Span slice in splitAction(span, Utf8StringSplitOptions.TrimEntries)) - { - actualRanges.Add(GetRangeOfSubspan(span, slice)); - } - - Assert.Equal(expectedRanges, actualRanges, new RangeEqualityComparer(totalSpanLengthInBytes)); - - // Finally, run the split both trimmed and with empty entries removed - - actualRanges = new List(); - foreach (Utf8Span slice in splitAction(span, Utf8StringSplitOptions.TrimEntries | Utf8StringSplitOptions.RemoveEmptyEntries)) - { - actualRanges.Add(GetRangeOfSubspan(span, slice)); - } - - Assert.Equal(expectedRanges.Where(range => !range.IsEmpty(totalSpanLengthInBytes)), actualRanges, new RangeEqualityComparer(totalSpanLengthInBytes)); - } - - [Theory] - [MemberData(nameof(Trim_TestData))] - public static void Trim(string input) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - Utf8Span span = boundedSpan.Span; - - // Act - - Utf8Span trimmed = span.Trim(); - - // Assert - // Compute the trim manually and ensure it matches the trimmed span's characteristics. - - ReadOnlySpan utf8Bytes = span.Bytes; - while (!utf8Bytes.IsEmpty) - { - OperationStatus status = Rune.DecodeFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); - Assert.Equal(OperationStatus.Done, status); - - if (!Rune.IsWhiteSpace(decodedRune)) - { - break; - } - - utf8Bytes = utf8Bytes.Slice(bytesConsumed); - } - while (!utf8Bytes.IsEmpty) - { - OperationStatus status = Rune.DecodeLastFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); - Assert.Equal(OperationStatus.Done, status); - - if (!Rune.IsWhiteSpace(decodedRune)) - { - break; - } - - utf8Bytes = utf8Bytes[..^bytesConsumed]; - } - - Assert.True(trimmed.Bytes == utf8Bytes); // must be an exact buffer match (address + length) - } - - [Theory] - [MemberData(nameof(Trim_TestData))] - public static void TrimEnd(string input) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - Utf8Span span = boundedSpan.Span; - - // Act - - Utf8Span trimmed = span.TrimEnd(); - - // Assert - // Compute the trim manually and ensure it matches the trimmed span's characteristics. - - ReadOnlySpan utf8Bytes = span.Bytes; - while (!utf8Bytes.IsEmpty) - { - OperationStatus status = Rune.DecodeLastFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); - Assert.Equal(OperationStatus.Done, status); - - if (!Rune.IsWhiteSpace(decodedRune)) - { - break; - } - - utf8Bytes = utf8Bytes[..^bytesConsumed]; - } - - Assert.True(trimmed.Bytes == utf8Bytes); // must be an exact buffer match (address + length) - } - - [Theory] - [MemberData(nameof(Trim_TestData))] - public static void TrimStart(string input) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - Utf8Span span = boundedSpan.Span; - - // Act - - Utf8Span trimmed = span.TrimStart(); - - // Assert - // Compute the trim manually and ensure it matches the trimmed span's characteristics. - - ReadOnlySpan utf8Bytes = span.Bytes; - while (!utf8Bytes.IsEmpty) - { - OperationStatus status = Rune.DecodeFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); - Assert.Equal(OperationStatus.Done, status); - - if (!Rune.IsWhiteSpace(decodedRune)) - { - break; - } - - utf8Bytes = utf8Bytes.Slice(bytesConsumed); - } - - Assert.True(trimmed.Bytes == utf8Bytes); // must be an exact buffer match (address + length) - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.TestData.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.TestData.cs deleted file mode 100644 index b7010c34c484..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.TestData.cs +++ /dev/null @@ -1,575 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Globalization; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public partial class Utf8SpanTests - { - public static IEnumerable TryFindData_Char_Ordinal() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal) || entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - continue; - } - - if (!TryParseSearchTermAsChar(entry.SearchTerm, out char searchChar)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchChar, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - public static IEnumerable TryFindData_Char_WithComparison() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!TryParseSearchTermAsChar(entry.SearchTerm, out char searchChar)) - { - continue; - } - - if (entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal)) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.Ordinal, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.OrdinalIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - foreach (CultureInfo culture in entry.AdditionalCultures ?? Array.Empty()) - { - if (culture == CultureInfo.InvariantCulture) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.InvariantCulture, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.InvariantCultureIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.CurrentCulture, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchChar, - StringComparison.CurrentCultureIgnoreCase, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - } - } - - public static IEnumerable TryFindData_Rune_Ordinal() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal) || entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - continue; - } - - if (!TryParseSearchTermAsRune(entry.SearchTerm, out Rune searchRune)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchRune, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - public static IEnumerable TryFindData_Rune_WithComparison() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!TryParseSearchTermAsRune(entry.SearchTerm, out Rune searchRune)) - { - continue; - } - - if (entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal)) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.Ordinal, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.OrdinalIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - foreach (CultureInfo culture in entry.AdditionalCultures ?? Array.Empty()) - { - if (culture == CultureInfo.InvariantCulture) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.InvariantCulture, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.InvariantCultureIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.CurrentCulture, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchRune, - StringComparison.CurrentCultureIgnoreCase, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - } - } - - public static IEnumerable TryFindData_Utf8Span_Ordinal() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal) || entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - continue; - } - - if (!TryParseSearchTermAsUtf8String(entry.SearchTerm, out ustring searchTerm)) - { - continue; - } - - yield return new object[] - { - entry.Source, - searchTerm, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - public static IEnumerable TryFindData_Utf8Span_WithComparison() - { - foreach (TryFindTestData entry in TryFindData_All()) - { - if (!TryParseSearchTermAsUtf8String(entry.SearchTerm, out ustring searchTerm)) - { - continue; - } - - if (entry.Options.HasFlag(TryFindTestDataOptions.TestOrdinal)) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.Ordinal, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.OrdinalIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - foreach (CultureInfo culture in entry.AdditionalCultures ?? Array.Empty()) - { - if (culture == CultureInfo.InvariantCulture) - { - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.InvariantCulture, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.InvariantCultureIgnoreCase, - null /* culture */, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestIgnoreCaseOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.CurrentCulture, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - if (!entry.Options.HasFlag(TryFindTestDataOptions.TestCaseSensitiveOnly)) - { - yield return new object[] - { - entry.Source, - searchTerm, - StringComparison.CurrentCultureIgnoreCase, - culture, - entry.ExpectedFirstMatch, - entry.ExpectedLastMatch, - }; - } - } - } - } - - private static IEnumerable TryFindData_All() - { - CultureInfo inv = CultureInfo.InvariantCulture; - CultureInfo en_US = CultureInfo.GetCultureInfo("en-US"); - CultureInfo tr_TR = CultureInfo.GetCultureInfo("tr-TR"); - CultureInfo hu_HU = CultureInfo.GetCultureInfo("hu-HU"); - - TryFindTestData[] testDataEntries = new TryFindTestData[] - { - new TryFindTestData - { - // Searching for the empty string within the empty string should result in 0..0 / ^0..^0 across all comparers and all cultures - Source = null, - SearchTerm = null, - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv, en_US, tr_TR, hu_HU }, - ExpectedFirstMatch = 0..0, - ExpectedLastMatch = ^0..^0, - }, - new TryFindTestData - { - // Searching for the empty string within a non-empty string should result in 0..0 / ^0..^0 across all comparers and all cultures - Source = u8("Hello"), - SearchTerm = null, - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv, en_US, tr_TR, hu_HU }, - ExpectedFirstMatch = 0..0, - ExpectedLastMatch = ^0..^0, - }, - new TryFindTestData - { - // Searching for a non-empty string within an empty string should fail across all comparers and all cultures - Source = null, - SearchTerm = u8("Hello"), - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv, en_US, tr_TR, hu_HU }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // Searching for the null terminator shouldn't match unless the input contains a null terminator - Source = u8("Hello"), - SearchTerm = '\0', - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = null, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // Searching for the null terminator shouldn't match unless the input contains a null terminator - Source = u8("H\0ell\0o"), - SearchTerm = '\0', - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = null, - ExpectedFirstMatch = 1..2, - ExpectedLastMatch = ^2..^1, - }, - new TryFindTestData - { - // Simple ASCII search with success (case-sensitive) - Source = u8("Hello"), - SearchTerm = 'l', - Options = TryFindTestDataOptions.TestOrdinal | TryFindTestDataOptions.TestCaseSensitiveOnly, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = 2..3, - ExpectedLastMatch = 3..4, - }, - new TryFindTestData - { - // Simple ASCII search with failure (case-sensitive) - Source = u8("Hello"), - SearchTerm = 'L', - Options = TryFindTestDataOptions.TestOrdinal | TryFindTestDataOptions.TestCaseSensitiveOnly, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // Simple ASCII search with success (case-insensitive) - Source = u8("Hello"), - SearchTerm = 'L', - Options = TryFindTestDataOptions.TestOrdinal | TryFindTestDataOptions.TestIgnoreCaseOnly, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = 2..3, - ExpectedLastMatch = 3..4, - }, - new TryFindTestData - { - // U+1F600 GRINNING FACE, should match an exact Rune search - Source = u8("x\U0001F600y"), - SearchTerm = new Rune(0x1F600), - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = 1..5, - ExpectedLastMatch = 1..5, - }, - new TryFindTestData - { - // U+1F600 GRINNING FACE, shouldn't match looking for individual UTF-16 surrogate chars - Source = u8("x\ud83d\ude00y"), - SearchTerm = '\ud83d', - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // U+1F600 GRINNING FACE, shouldn't match on the standalone [ F0 ] byte that begins the multi-byte sequence - Source = u8("x\ud83d\ude00y"), - SearchTerm = '\u00f0', - Options = TryFindTestDataOptions.TestOrdinal, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // hu_HU shouldn't match "d" within "dz" - Source = u8("ab_dz_ba"), - SearchTerm = 'd', - Options = TryFindTestDataOptions.None, - AdditionalCultures = new CultureInfo[] { hu_HU }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // Turkish I, case-sensitive - Source = u8("\u0069\u0130\u0131\u0049"), // iİıI - SearchTerm = 'i', - Options = TryFindTestDataOptions.TestCaseSensitiveOnly, - AdditionalCultures = new CultureInfo[] { tr_TR }, - ExpectedFirstMatch = 0..1, - ExpectedLastMatch = 0..1, - }, - new TryFindTestData - { - // Turkish I, case-insensitive - Source = u8("\u0069\u0130\u0131\u0049"), // iİıI - SearchTerm = 'i', - Options = TryFindTestDataOptions.TestIgnoreCaseOnly, - AdditionalCultures = new CultureInfo[] { tr_TR }, - ExpectedFirstMatch = 0..1, - ExpectedLastMatch = 1..3, - }, - new TryFindTestData - { - // denormalized forms, no match - Source = u8("a\u0308e\u0308A\u0308E\u0308"), // äëÄË (denormalized) - SearchTerm = 'e', // shouldn't match letter paired with diacritic - Options = TryFindTestDataOptions.None, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = null, - ExpectedLastMatch = null, - }, - new TryFindTestData - { - // denormalized forms, case-sensitive - Source = u8("a\u0308e\u0308A\u0308E\u0308"), // äëÄË (denormalized) - SearchTerm = '\u00eb', // ë, normalized form - Options = TryFindTestDataOptions.TestCaseSensitiveOnly, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = 3..6, - ExpectedLastMatch = 3..6, - }, - new TryFindTestData - { - // denormalized forms, case-insensitive - Source = u8("a\u0308e\u0308A\u0308E\u0308"), // äëÄË (denormalized) - SearchTerm = '\u00eb', // ë, normalized form - Options = TryFindTestDataOptions.TestIgnoreCaseOnly, - AdditionalCultures = new CultureInfo[] { inv }, - ExpectedFirstMatch = 3..6, - ExpectedLastMatch = ^3.., - }, - }; - - return testDataEntries; - } - - public class TryFindTestData - { - public ustring Source; - public object SearchTerm; - public TryFindTestDataOptions Options; - public CultureInfo[] AdditionalCultures; - public Range? ExpectedFirstMatch; - public Range? ExpectedLastMatch; - } - - [Flags] - public enum TryFindTestDataOptions - { - None = 0, - TestOrdinal = 1 << 0, - TestCaseSensitiveOnly = 1 << 1, - TestIgnoreCaseOnly = 2 << 1, - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.cs deleted file mode 100644 index 67409d978b5a..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.Searching.cs +++ /dev/null @@ -1,461 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Globalization; -using System.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - /* - * Please keep these tests in sync with those in Utf8StringTests.Searching.cs. - */ - - public unsafe partial class Utf8SpanTests - { - [Theory] - [MemberData(nameof(TryFindData_Char_Ordinal))] - public static void TryFind_Char_Ordinal(ustring source, char searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm)); - - (var before, var after) = searchSpan.SplitOn(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm)); - - (before, after) = searchSpan.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Char_WithComparison))] - public static void TryFind_Char_WithComparison(ustring source, char searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - RunOnDedicatedThread(() => - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - - (var before, var after) = searchSpan.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - - (before, after) = searchSpan.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - else - { - Assert.Throws(() => boundedSpan.Span.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.SplitOn(searchTerm, comparison)); - Assert.Throws(() => boundedSpan.Span.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && searchSpan.Bytes[..expectedForwardMatch.Value.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && searchSpan.Bytes[expectedBackwardMatch.Value.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - } - }); - } - - [Theory] - [MemberData(nameof(TryFindData_Rune_Ordinal))] - public static void TryFind_Rune_Ordinal(ustring source, Rune searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm)); - - (var before, var after) = searchSpan.SplitOn(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm)); - - (before, after) = searchSpan.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Rune_WithComparison))] - public static void TryFind_Rune_WithComparison(ustring source, Rune searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - RunOnDedicatedThread(() => - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - - (var before, var after) = searchSpan.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - - (before, after) = searchSpan.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - else - { - Assert.Throws(() => boundedSpan.Span.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.SplitOn(searchTerm, comparison)); - Assert.Throws(() => boundedSpan.Span.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && searchSpan.Bytes[..expectedForwardMatch.Value.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && searchSpan.Bytes[expectedBackwardMatch.Value.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - } - }); - } - - [Theory] - [MemberData(nameof(TryFindData_Utf8Span_Ordinal))] - public static void TryFind_Utf8Span_Ordinal(ustring source, ustring searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm)); - - (var before, var after) = searchSpan.SplitOn(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm)); - - (before, after) = searchSpan.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Utf8Span_WithComparison))] - public static void TryFind_Utf8Span_WithComparison(ustring source, ustring searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - RunOnDedicatedThread(() => - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(source.AsBytes()); - Utf8Span searchSpan = boundedSpan.Span; - source = null; // to avoid accidentally using this for the remainder of the test - - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = searchSpan.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && searchSpan.Bytes[..actualForwardMatch.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - - (var before, var after) = searchSpan.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualForwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualForwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - - // Now search backward - - wasFound = searchSpan.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(searchSpan.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && searchSpan.Bytes[actualBackwardMatch.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - - (before, after) = searchSpan.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.True(searchSpan.Bytes[..actualBackwardMatch.Start] == before.Bytes); // check for referential equality - Assert.True(searchSpan.Bytes[actualBackwardMatch.End..] == after.Bytes); // check for referential equality - } - else - { - Assert.True(searchSpan.Bytes == before.Bytes); // check for reference equality - Assert.True(after.IsNull()); - } - } - else - { - Assert.Throws(() => boundedSpan.Span.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() => boundedSpan.Span.SplitOn(searchTerm, comparison)); - Assert.Throws(() => boundedSpan.Span.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, searchSpan.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && searchSpan.Bytes[..expectedForwardMatch.Value.Start].IsEmpty, searchSpan.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && searchSpan.Bytes[expectedBackwardMatch.Value.End..].IsEmpty, searchSpan.EndsWith(searchTerm, comparison)); - } - }); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.TestData.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.TestData.cs deleted file mode 100644 index 5c5eb903e0e3..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.TestData.cs +++ /dev/null @@ -1,178 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Collections.Generic; -using System.Linq; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - public unsafe partial class Utf8SpanTests - { - /// - /// All s, U+0000..U+D800 and U+E000..U+10FFFF. - /// - private static IEnumerable AllRunes - { - get - { - for (uint i = 0; i < 0xD800; i++) - { - yield return new Rune(i); - } - for (uint i = 0xE000; i <= 0x10FFFF; i++) - { - yield return new Rune(i); - } - } - } - - /// - /// All s where returns . - /// - private static readonly Lazy WhiteSpaceRunes = new Lazy(() => AllRunes.Where(Rune.IsWhiteSpace).ToArray()); - - public static IEnumerable Trim_TestData() - { - string[] testData = new string[] - { - null, // null - "", // empty - "\0", // contains null character - shouldn't be trimmed - "Hello", // simple non-whitespace ASCII data - "\u0009Hello\u000d", // C0 whitespace characters - "\u0009\u0008\u0009Hello\u000e\u000b", // C0 whitespace + non-whitespace characters - " Hello! ", // simple space chars (plus !, since it's adjacent to U+0020 SPACE) - "\u0085\u0084\u0086\u0085", // U+0085 NEXT LINE (NEL), surrounded by adjacent non-whitespace chars - }; - - foreach (string entry in testData) - { - yield return new object[] { entry }; - } - - // A string with every possible whitespace character, just to test the limits - - StringBuilder builder = new StringBuilder(); - foreach (Rune whitespaceRune in WhiteSpaceRunes.Value) - { - builder.Append(whitespaceRune); - } - builder.Append("xyz"); - foreach (Rune whitespaceRune in WhiteSpaceRunes.Value) - { - builder.Append(whitespaceRune); - } - - yield return new object[] { builder.ToString() }; - } - - private static bool TryParseSearchTermAsChar(object searchTerm, out char parsed) - { - if (searchTerm is char ch) - { - parsed = ch; - return true; - } - else if (searchTerm is Rune r) - { - if (r.IsBmp) - { - parsed = (char)r.Value; - return true; - } - } - else if (searchTerm is string str) - { - if (str.Length == 1) - { - parsed = str[0]; - return true; - } - } - else if (searchTerm is ustring ustr) - { - var enumerator = ustr.Chars.GetEnumerator(); - if (enumerator.MoveNext()) - { - parsed = enumerator.Current; - if (!enumerator.MoveNext()) - { - return true; - } - } - } - - parsed = default; // failed to turn the search term into a single char - return false; - } - - private static bool TryParseSearchTermAsRune(object searchTerm, out Rune parsed) - { - if (searchTerm is char ch) - { - return Rune.TryCreate(ch, out parsed); - } - else if (searchTerm is Rune r) - { - parsed = r; - return true; - } - else if (searchTerm is string str) - { - if (Rune.DecodeFromUtf16(str.AsSpan(), out parsed, out int charsConsumed) == OperationStatus.Done - && charsConsumed == str.Length) - { - return true; - } - } - else if (searchTerm is ustring ustr) - { - if (Rune.DecodeFromUtf8(ustr.AsBytes(), out parsed, out int bytesConsumed) == OperationStatus.Done - && bytesConsumed == ustr.Length) - { - return true; - } - } - - parsed = default; // failed to turn the search term into a single Rune - return false; - } - - private static bool TryParseSearchTermAsUtf8String(object searchTerm, out ustring parsed) - { - if (searchTerm is char ch) - { - if (Rune.TryCreate(ch, out Rune rune)) - { - parsed = rune.ToUtf8String(); - return true; - } - } - else if (searchTerm is Rune r) - { - parsed = r.ToUtf8String(); - return true; - } - else if (searchTerm is string str) - { - if (ustring.TryCreateFrom(str.AsSpan(), out parsed)) - { - return true; - } - } - else if (searchTerm is ustring ustr) - { - parsed = ustr; - return true; - } - - parsed = default; // failed to turn the search term into a ustring - return false; - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.cs deleted file mode 100644 index b6d611097ebd..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8SpanTests.cs +++ /dev/null @@ -1,353 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Collections.Generic; -using System.Globalization; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Text.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public unsafe partial class Utf8SpanTests - { - [Fact] - public static void BytesProperty_FromCustomBytes() - { - byte[] bytes = Encoding.UTF8.GetBytes("Hello!"); - Assert.True(bytes.AsSpan() == Utf8Span.UnsafeCreateWithoutValidation(bytes).Bytes); - } - - [Fact] - public static void BytesProperty_FromEmpty() - { - Assert.True(Utf8Span.Empty.Bytes == ReadOnlySpan.Empty); - } - - [Fact] - public static void BytesProperty_FromUtf8String() - { - ustring ustr = u8("Hello!"); - Utf8Span uspan = new Utf8Span(ustr); - - Assert.True(ustr.AsBytes() == uspan.Bytes); - } - - [Fact] - public static void EmptyProperty() - { - // Act - - Utf8Span span = Utf8Span.Empty; - - // Assert - // GetPinnableReference should be 'null' to match behavior of empty ROS.GetPinnableReference(); - - Assert.True(span.IsEmpty); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref Unsafe.AsRef(in span.GetPinnableReference()))); - Assert.Equal(IntPtr.Zero, (IntPtr)(void*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(span.Bytes))); - Assert.Equal(0, span.Length); - } - - [Fact] - public static void GetHashCode_Ordinal() - { - // Generate 17 all-null strings and make sure they have unique hash codes. - // Assuming Marvin32 is a good PRF and has a full 32-bit output domain, we should - // expect this test to fail only once every ~30 million runs due to the birthday paradox. - // That should be good enough for inclusion as a unit test. - - HashSet seenHashCodes = new HashSet(); - - for (int i = 0; i <= 16; i++) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(new byte[i]); - Utf8Span span = boundedSpan.Span; - - Assert.True(seenHashCodes.Add(span.GetHashCode()), "This hash code was previously seen."); - } - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - public static void GetHashCode_WithComparison() - { - // Since hash code generation is randomized, it's possible (though unlikely) that - // we might see unanticipated collisions. It's ok if this unit test fails once in - // every few million runs, but if the unit test becomes truly flaky then that would - // be indicative of a larger problem with hash code generation. - // - // These tests also make sure that the hash code is computed over the buffer rather - // than over the reference. - - // Ordinal - - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("ababaaAA"); - Utf8Span span = boundedSpan.Span; - - Assert.Equal(span[0..2].GetHashCode(StringComparison.Ordinal), span[2..4].GetHashCode(StringComparison.Ordinal)); - Assert.NotEqual(span[4..6].GetHashCode(StringComparison.Ordinal), span[6..8].GetHashCode(StringComparison.Ordinal)); - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.Ordinal), span[^0..].GetHashCode(StringComparison.Ordinal)); // null should equal empty - } - - // OrdinalIgnoreCase - - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("ababaaAA"); - Utf8Span span = boundedSpan.Span; - - Assert.Equal(span[0..2].GetHashCode(StringComparison.OrdinalIgnoreCase), span[2..4].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.Equal(span[4..6].GetHashCode(StringComparison.OrdinalIgnoreCase), span[6..8].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.NotEqual(span[0..2].GetHashCode(StringComparison.OrdinalIgnoreCase), span[6..8].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.OrdinalIgnoreCase), span[^0..].GetHashCode(StringComparison.OrdinalIgnoreCase)); // null should equal empty - } - - // InvariantCulture - - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("ae\u00e6AE\u00c6"); // U+00E6 = 'æ' LATIN SMALL LETTER AE, U+00E6 = 'Æ' LATIN CAPITAL LETTER AE - Utf8Span span = boundedSpan.Span; - - Assert.Equal(span[0..2].GetHashCode(StringComparison.InvariantCulture), span[2..4].GetHashCode(StringComparison.InvariantCulture)); - Assert.NotEqual(span[0..2].GetHashCode(StringComparison.InvariantCulture), span[4..6].GetHashCode(StringComparison.InvariantCulture)); - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.InvariantCulture), span[^0..].GetHashCode(StringComparison.InvariantCulture)); // null should equal empty - } - - // InvariantCultureIgnoreCase - - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("ae\u00e6AE\u00c6EA"); - Utf8Span span = boundedSpan.Span; - - Assert.Equal(span[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), span[2..4].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.Equal(span[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), span[6..8].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.NotEqual(span[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), span[8..10].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.InvariantCultureIgnoreCase), span[^0..].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); // null should equal empty - } - - // Invariant culture should not match Turkish I case conversion - - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("i\u0130"); // U+0130 = 'İ' LATIN CAPITAL LETTER I WITH DOT ABOVE - Utf8Span span = boundedSpan.Span; - - Assert.NotEqual(span[0..1].GetHashCode(StringComparison.InvariantCultureIgnoreCase), span[1..3].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - } - - // CurrentCulture (we'll use tr-TR) - - RunOnDedicatedThread(() => - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("i\u0131\u0130Ii\u0131\u0130I"); // U+0131 = 'ı' LATIN SMALL LETTER DOTLESS I - Utf8Span span = boundedSpan.Span; - - CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("tr-TR"); - - Assert.Equal(span[0..6].GetHashCode(StringComparison.CurrentCulture), span[6..12].GetHashCode(StringComparison.CurrentCulture)); - Assert.NotEqual(span[0..1].GetHashCode(StringComparison.CurrentCulture), span[1..3].GetHashCode(StringComparison.CurrentCulture)); - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.CurrentCulture), span[^0..].GetHashCode(StringComparison.CurrentCulture)); // null should equal empty - }); - - // CurrentCultureIgnoreCase (we'll use tr-TR) - - RunOnDedicatedThread(() => - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span("i\u0131\u0130Ii\u0131\u0130I"); - Utf8Span span = boundedSpan.Span; - - CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("tr-TR"); - - Assert.Equal(span[0..6].GetHashCode(StringComparison.CurrentCultureIgnoreCase), span[6..12].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); - Assert.NotEqual(span[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), span[1..3].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' shouldn't match 'ı' - Assert.Equal(span[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), span[3..5].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' should match 'İ' - Assert.NotEqual(span[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), span[5..6].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' shouldn't match 'I' - Assert.Equal(Utf8Span.Empty.GetHashCode(StringComparison.CurrentCultureIgnoreCase), span[^0..].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // null should equal empty - }); - } - - [Theory] - [InlineData("", true)] - [InlineData("Hello", true)] - [InlineData("\u1234", false)] - public static void IsAscii(string input, bool expected) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - - Assert.Equal(expected, boundedSpan.Span.IsAscii()); - } - - [Theory] - [InlineData(null, true)] - [InlineData("", true)] - [InlineData(" \u2028\u2029\t\v", true)] - [InlineData(" x\r\n", false)] - [InlineData("\r\nhello\r\n", false)] - [InlineData("\r\n\0\r\n", false)] - [InlineData("\r\n\r\n", true)] - public static void IsEmptyOrWhiteSpace(string input, bool expected) - { - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - - Assert.Equal(expected, boundedSpan.Span.IsEmptyOrWhiteSpace()); - } - - [Theory] - [InlineData("", "..")] - [InlineData("Hello", "1..")] - [InlineData("Hello", "1..2")] - [InlineData("Hello", "1..^2")] - [InlineData("Hello", "^2..")] - [InlineData("Hello", "^0..")] - [InlineData("résumé", "1..^2")] // include first 'é', exclude last 'é' - [InlineData("résumé", "^2..")] // include only last 'é' - public static void Indexer_Success(string input, string rangeExpression) - { - Range range = ParseRangeExpr(rangeExpression); - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - Utf8Span originalSpan = boundedSpan.Span; - Utf8Span slicedSpan = originalSpan[range]; // shouldn't throw - - ref byte startOfOriginalSpan = ref MemoryMarshal.GetReference(originalSpan.Bytes); - ref byte startOfSlicedSpan = ref MemoryMarshal.GetReference(slicedSpan.Bytes); - - // Now ensure the slice was correctly produced by comparing the references directly. - - (int offset, int length) = range.GetOffsetAndLength(originalSpan.Length); - Assert.True(Unsafe.AreSame(ref startOfSlicedSpan, ref Unsafe.Add(ref startOfOriginalSpan, offset))); - Assert.Equal(length, slicedSpan.Length); - } - - [Theory] - [InlineData("résumé", "2..")] // try to split the first 'é' - [InlineData("résumé", "..^1")] // try to split the last 'é' - public static void Indexer_ThrowsIfTryToSplitMultiByteSubsequence(string input, string rangeExpression) - { - Range range = ParseRangeExpr(rangeExpression); - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); - - Assert.Throws(() => { var _ = boundedSpan.Span[range]; }); - } - - - [Theory] - [MemberData(nameof(TranscodingTestData))] - public static void ToCharArrayTest(string expected) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(expected); - Utf8Span span = boundedSpan.Span; - - // Act - - char[] returned = span.ToCharArray(); - - // Assert - - Assert.Equal(expected, returned); // IEnumerable - } - - [Fact] - public static void ToCharArrayTest_Null() - { - Assert.Same(Array.Empty(), Utf8Span.Empty.ToCharArray()); - } - - [Theory] - [MemberData(nameof(TranscodingTestData))] - public static void ToCharsTest(string expected) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(expected); - Utf8Span span = boundedSpan.Span; - - // Act & assert, first with improperly-sized buffer - - if (expected.Length > 0) - { - using BoundedMemory boundedMemory = BoundedMemory.Allocate(expected.Length - 1); - Assert.Equal(-1, span.ToChars(boundedMemory.Span)); - } - - // Then with properly-sized buffer and too-large buffer - - for (int i = expected.Length; i <= expected.Length + 1; i++) - { - using BoundedMemory boundedMemory = BoundedMemory.Allocate(i); - Assert.Equal(expected.Length, span.ToChars(boundedMemory.Span)); - Assert.True(boundedMemory.Span.Slice(0, expected.Length).SequenceEqual(expected.AsSpan())); - } - } - - [Fact] - public static void ToCharsTest_Null() - { - for (int i = 0; i <= 1; i++) // test both with properly-sized buffer and with too-large buffer - { - using BoundedMemory boundedMemory = BoundedMemory.Allocate(i); - Assert.Equal(0, Utf8Span.Empty.ToChars(boundedMemory.Span)); - } - } - - [Theory] - [MemberData(nameof(TranscodingTestData))] - public static void ToStringTest(string expected) - { - // Arrange - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(expected); - Utf8Span span = boundedSpan.Span; - - // Act & assert - - Assert.Equal(expected, span.ToString()); - } - - [Fact] - public static void ToStringTest_Null() - { - Assert.Same(string.Empty, Utf8Span.Empty.ToString()); - } - - [Theory] - [MemberData(nameof(TranscodingTestData))] - public static void ToUtf8StringTest(string expected) - { - // Arrange - - ustring utf8 = u8(expected); - - using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(expected); - Utf8Span span = boundedSpan.Span; - - // Act & assert - - Assert.Equal(utf8, span.ToUtf8String()); - } - - [Fact] - public static void ToUtf8StringTest_Null() - { - Assert.Same(ustring.Empty, Utf8Span.Empty.ToUtf8String()); - } - - public static IEnumerable TranscodingTestData() - { - yield return new object[] { "" }; // empty - yield return new object[] { "Hello" }; // simple ASCII - yield return new object[] { "a\U00000123b\U00001234c\U00101234d" }; // with multi-byte sequences of varying lengths - yield return new object[] { "\uF8FF\uE000\U000FFFFF" }; // with scalars from the private use areas - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Comparison.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Comparison.cs deleted file mode 100644 index 4c17c5de74f1..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Comparison.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - [Fact] - public static void AreEquivalent_Utf8StringAndString_NullHandling() - { - Assert.True(Utf8String.AreEquivalent((Utf8String)null, (string)null)); - Assert.False(Utf8String.AreEquivalent(Utf8String.Empty, (string)null)); - Assert.False(Utf8String.AreEquivalent((Utf8String)null, string.Empty)); - Assert.True(Utf8String.AreEquivalent(Utf8String.Empty, string.Empty)); - } - - [Theory] - [InlineData("Hello", "hello", false)] - [InlineData("hello", "hello", true)] - [InlineData("hello", "helloo", false)] - [InlineData("hellooo", "helloo", false)] - [InlineData("encyclopaedia", "encyclopaedia", true)] - [InlineData("encyclopaedia", "encyclop\u00e6dia", false)] - [InlineData("encyclop\u00e6dia", "encyclop\u00e6dia", true)] - public static void AreEquivalent_Tests(string utf8Input, string utf16Input, bool expected) - { - Utf8String asUtf8 = u8(utf8Input); - - // Call all three overloads - - Assert.Equal(expected, Utf8String.AreEquivalent(asUtf8, utf16Input)); - Assert.Equal(expected, Utf8String.AreEquivalent(asUtf8.AsSpan(), utf16Input.AsSpan())); - Assert.Equal(expected, Utf8String.AreEquivalent(asUtf8.AsBytes(), utf16Input.AsSpan())); - } - - [Theory] - [InlineData(new byte[] { 0xED, 0xA0, 0x80 }, new char[] { '\uD800' })] // don't support "wobbly" UTF-8 - [InlineData(new byte[] { 0xED, 0xA0, 0x80, 0xED, 0xBF, 0xBF }, new char[] { '\uD800', '\uDFFF' })] // don't support "wobbly" UTF-8 - [InlineData(new byte[] { 0xED }, new char[] { '\uD800' })] // don't support partials - public static void AreEquivalent_IllFormedData_AlwaysReturnsFalse(byte[] asUtf8, char[] asUtf16) - { - Assert.False(Utf8String.AreEquivalent(asUtf8, asUtf16)); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Conversion.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Conversion.cs deleted file mode 100644 index c4896fb88189..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Conversion.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Globalization; -using System.Text; -using System.Text.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - public static IEnumerable NormalizationData() => Utf8SpanTests.NormalizationData(); - - [Theory] - [MemberData(nameof(NormalizationData))] - public static void Normalize(string utf16Source, string utf16Expected, NormalizationForm normalizationForm) - { - Utf8String utf8Source = u8(utf16Source); - - // Quick IsNormalized tests - - Assert.Equal(utf16Source == utf16Expected, utf8Source.IsNormalized(normalizationForm)); - - // Normalize and return new Utf8String instances - - Utf8String utf8Normalized = utf8Source.Normalize(normalizationForm); - Assert.True(Utf8String.AreEquivalent(utf8Normalized, utf16Expected)); - } - - public static IEnumerable CaseConversionData() => Utf8SpanTests.CaseConversionData(); - - [Theory] - [MemberData(nameof(CaseConversionData))] - public static void ToLower(string testData) - { - static void RunTest(string testData, string expected, CultureInfo culture) - { - if (culture is null) - { - Assert.Equal(u8(expected), u8(testData).ToLowerInvariant()); - } - else - { - Assert.Equal(u8(expected), u8(testData).ToLower(culture)); - } - } - - if (testData is null) - { - return; // no point in testing null "this" objects; we'll just null-ref - } - - RunTest(testData, testData.ToLowerInvariant(), null); - RunTest(testData, testData.ToLower(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); - RunTest(testData, testData.ToLower(CultureInfo.GetCultureInfo("en-US")), CultureInfo.GetCultureInfo("en-US")); - RunTest(testData, testData.ToLower(CultureInfo.GetCultureInfo("tr-TR")), CultureInfo.GetCultureInfo("tr-TR")); - } - - [Theory] - [MemberData(nameof(CaseConversionData))] - public static void ToUpper(string testData) - { - static void RunTest(string testData, string expected, CultureInfo culture) - { - if (culture is null) - { - Assert.Equal(u8(expected), u8(testData).ToUpperInvariant()); - } - else - { - Assert.Equal(u8(expected), u8(testData).ToUpper(culture)); - } - } - - if (testData is null) - { - return; // no point in testing null "this" objects; we'll just null-ref - } - - RunTest(testData, testData.ToUpperInvariant(), null); - RunTest(testData, testData.ToUpper(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); - RunTest(testData, testData.ToUpper(CultureInfo.GetCultureInfo("en-US")), CultureInfo.GetCultureInfo("en-US")); - RunTest(testData, testData.ToUpper(CultureInfo.GetCultureInfo("tr-TR")), CultureInfo.GetCultureInfo("tr-TR")); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.cs deleted file mode 100644 index f3615ff15477..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.cs +++ /dev/null @@ -1,344 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - [Fact] - public static void Ctor_ByteArrayOffset_Empty_ReturnsEmpty() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o' }; - AssertSameAsEmpty(new Utf8String(inputData, 3, 0)); - } - - [Fact] - public static void Ctor_ByteArrayOffset_ValidData_ReturnsOriginalContents() - { - byte[] inputData = new byte[] { (byte)'x', (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o', (byte)'x' }; - Utf8String expected = u8("Hello"); - - var actual = new Utf8String(inputData, 1, 5); - Assert.Equal(expected, actual); - } - - [Fact] - public static void Ctor_ByteArrayOffset_InvalidData_Throws() - { - byte[] inputData = new byte[] { (byte)'x', (byte)'H', (byte)'e', (byte)0xFF, (byte)'l', (byte)'o', (byte)'x' }; - - Assert.Throws(() => new Utf8String(inputData, 0, inputData.Length)); - } - - [Fact] - public static void Ctor_ByteArrayOffset_NullValue_Throws() - { - var exception = Assert.Throws(() => new Utf8String((byte[])null, 0, 0)); - Assert.Equal("value", exception.ParamName); - } - - [Fact] - public static void Ctor_ByteArrayOffset_InvalidStartIndexOrLength_Throws() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o' }; - - Assert.Throws(() => new Utf8String(inputData, 1, 5)); - } - - [Fact] - public static void Ctor_BytePointer_Null_Throws() - { - var exception = Assert.Throws(() => new Utf8String((byte*)null)); - Assert.Equal("value", exception.ParamName); - } - - [Fact] - public static void Ctor_BytePointer_Empty_ReturnsEmpty() - { - byte[] inputData = new byte[] { 0 }; // standalone null byte - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - AssertSameAsEmpty(new Utf8String((byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_BytePointer_ValidData_ReturnsOriginalContents() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o', (byte)'\0' }; - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - Assert.Equal(u8("Hello"), new Utf8String((byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_BytePointer_InvalidData_Throws() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)0xFF, (byte)'l', (byte)'o', (byte)'\0' }; - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - Assert.Throws(() => new Utf8String((byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_ByteSpan_Empty_ReturnsEmpty() - { - AssertSameAsEmpty(new Utf8String(ReadOnlySpan.Empty)); - } - - [Fact] - public static void Ctor_ByteSpan_ValidData_ReturnsOriginalContents() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o' }; - Utf8String expected = u8("Hello"); - - var actual = new Utf8String(inputData.AsSpan()); - Assert.Equal(expected, actual); - } - - [Fact] - public static void Ctor_ByteSpan_InvalidData_Throws() - { - byte[] inputData = new byte[] { (byte)'H', (byte)'e', (byte)0xFF, (byte)'l', (byte)'o' }; - - Assert.Throws(() => new Utf8String(inputData.AsSpan())); - } - - [Fact] - public static void Ctor_CharArrayOffset_Empty_ReturnsEmpty() - { - char[] inputData = "H\U00012345ello".ToCharArray(); // ok to have an empty slice in the middle of a multi-byte subsequence - AssertSameAsEmpty(new Utf8String(inputData, 3, 0)); - } - - [Fact] - public static void Ctor_CharArrayOffset_ValidData_ReturnsAsUtf8() - { - char[] inputData = "H\U00012345\u07ffello".ToCharArray(); - Utf8String expected = u8("\u07ffello"); - - var actual = new Utf8String(inputData, 3, 5); - Assert.Equal(expected, actual); - } - - [Fact] - public static void Ctor_CharArrayOffset_InvalidData_Throws() - { - char[] inputData = "H\ud800ello".ToCharArray(); - - Assert.Throws(() => new Utf8String(inputData, 0, inputData.Length)); - } - - [Fact] - public static void Ctor_CharArrayOffset_NullValue_Throws() - { - var exception = Assert.Throws(() => new Utf8String((char[])null, 0, 0)); - Assert.Equal("value", exception.ParamName); - } - - [Fact] - public static void Ctor_CharArrayOffset_InvalidStartIndexOrLength_Throws() - { - char[] inputData = "Hello".ToCharArray(); - - Assert.Throws(() => new Utf8String(inputData, 1, 5)); - } - - [Fact] - public static void Ctor_CharPointer_Null_Throws() - { - var exception = Assert.Throws(() => new Utf8String((char*)null)); - Assert.Equal("value", exception.ParamName); - } - - [Fact] - public static void Ctor_CharPointer_Empty_ReturnsEmpty() - { - char[] inputData = new char[] { '\0' }; // standalone null char - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - AssertSameAsEmpty(new Utf8String((char*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_CharPointer_ValidData_ReturnsOriginalContents() - { - char[] inputData = "Hello\0".ToCharArray(); // need to manually null-terminate - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - Assert.Equal(u8("Hello"), new Utf8String((char*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_CharPointer_InvalidData_Throws() - { - char[] inputData = "He\ud800llo\0".ToCharArray(); // need to manually null-terminate - - using (BoundedMemory boundedMemory = BoundedMemory.AllocateFromExistingData(inputData)) - { - Assert.Throws(() => new Utf8String((char*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(boundedMemory.Span)))); - } - } - - [Fact] - public static void Ctor_CharSpan_Empty_ReturnsEmpty() - { - AssertSameAsEmpty(new Utf8String(ReadOnlySpan.Empty)); - } - - [Fact] - public static void Ctor_CharSpan_ValidData_ReturnsOriginalContents() - { - char[] inputData = "Hello".ToCharArray(); - Utf8String expected = u8("Hello"); - - var actual = new Utf8String(inputData.AsSpan()); - Assert.Equal(expected, actual); - } - - [Fact] - public static void Ctor_CharSpan_InvalidData_Throws() - { - char[] inputData = "He\ud800llo".ToCharArray(); - - Assert.Throws(() => new Utf8String(inputData.AsSpan())); - } - - [Fact] - public static void Ctor_String_Null_Throws() - { - var exception = Assert.Throws(() => new Utf8String((string)null)); - Assert.Equal("value", exception.ParamName); - } - - [Fact] - public static void Ctor_String_Empty_ReturnsEmpty() - { - AssertSameAsEmpty(new Utf8String(string.Empty)); - } - - [Fact] - public static void Ctor_String_ValidData_ReturnsOriginalContents() - { - Assert.Equal(u8("Hello"), new Utf8String("Hello")); - } - - [Fact] - public static void Ctor_String_Long_ReturnsOriginalContents() - { - string longString = new string('a', 500); - Assert.Equal(u8(longString), new Utf8String(longString)); - } - - [Fact] - public static void Ctor_String_InvalidData_Throws() - { - Assert.Throws(() => new Utf8String("He\uD800lo")); - } - - [Fact] - public static void Ctor_NonValidating_FromByteSpan() - { - byte[] inputData = new byte[] { (byte)'x', (byte)'y', (byte)'z' }; - Utf8String actual = Utf8String.UnsafeCreateWithoutValidation(inputData); - - Assert.Equal(u8("xyz"), actual); - } - - [Fact] - public static void Ctor_CreateFromRelaxed_Utf16() - { - Assert.Same(Utf8String.Empty, Utf8String.CreateFromRelaxed(ReadOnlySpan.Empty)); - Assert.Equal(u8("xy\uFFFDz"), Utf8String.CreateFromRelaxed("xy\ud800z".AsSpan())); - } - - [Fact] - public static void Ctor_CreateFromRelaxed_Utf8() - { - Assert.Same(Utf8String.Empty, Utf8String.CreateFromRelaxed(ReadOnlySpan.Empty)); - Assert.Equal(u8("xy\uFFFDz"), Utf8String.CreateFromRelaxed(new byte[] { (byte)'x', (byte)'y', 0xF4, 0x80, 0x80, (byte)'z' })); - } - - [Fact] - public static void Ctor_TryCreateFrom_Utf8() - { - Utf8String value; - - // Empty string - - Assert.True(Utf8String.TryCreateFrom(ReadOnlySpan.Empty, out value)); - Assert.Same(Utf8String.Empty, value); - - // Well-formed ASCII contents - - Assert.True(Utf8String.TryCreateFrom(new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o' }, out value)); - Assert.Equal(u8("Hello"), value); - - // Well-formed non-ASCII contents - - Assert.True(Utf8String.TryCreateFrom(new byte[] { 0xF0, 0x9F, 0x91, 0xBD }, out value)); // U+1F47D EXTRATERRESTRIAL ALIEN - Assert.Equal(u8("\U0001F47D"), value); - - // Ill-formed contents - - Assert.False(Utf8String.TryCreateFrom(new byte[] { 0xF0, 0x9F, 0x91, (byte)'x' }, out value)); - Assert.Null(value); - } - - [Fact] - public static void Ctor_TryCreateFrom_Utf16() - { - Utf8String value; - - // Empty string - - Assert.True(Utf8String.TryCreateFrom(ReadOnlySpan.Empty, out value)); - Assert.Same(Utf8String.Empty, value); - - // Well-formed ASCII contents - - Assert.True(Utf8String.TryCreateFrom("Hello".AsSpan(), out value)); - Assert.Equal(u8("Hello"), value); - - // Well-formed non-ASCII contents - - Assert.True(Utf8String.TryCreateFrom("\U0001F47D".AsSpan(), out value)); // U+1F47D EXTRATERRESTRIAL ALIEN - Assert.Equal(u8("\U0001F47D"), value); - - // Ill-formed contents - - Assert.False(Utf8String.TryCreateFrom("\uD800x".AsSpan(), out value)); - Assert.Null(value); - } - - private static void AssertSameAsEmpty(Utf8String value) - { -#if NETFRAMEWORK - // When OOB, we can't change the actual object returned from a constructor. - // So just assert the underlying "_bytes" is the same. - Assert.Equal(0, value.Length); - Assert.True(Unsafe.AreSame( - ref Unsafe.AsRef(in Utf8String.Empty.GetPinnableReference()), - ref Unsafe.AsRef(in value.GetPinnableReference()))); -#else - Assert.Same(Utf8String.Empty, value); -#endif - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.netcoreapp.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.netcoreapp.cs deleted file mode 100644 index f6c334e6f800..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Ctor.netcoreapp.cs +++ /dev/null @@ -1,107 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Buffers; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - [Fact] - public static void Ctor_NonValidating_FromDelegate() - { - object expectedState = new object(); - SpanAction spanAction = (span, actualState) => - { - Assert.Same(expectedState, actualState); - Assert.NotEqual(0, span.Length); // shouldn't have been called for a zero-length span - - for (int i = 0; i < span.Length; i++) - { - Assert.Equal(0, span[i]); // should've been zero-inited - span[i] = (byte)('a' + (i % 26)); // writes "abc...xyzabc...xyz..." - } - }; - - ArgumentException exception = Assert.Throws(() => Utf8String.UnsafeCreateWithoutValidation(-1, expectedState, spanAction)); - Assert.Equal("length", exception.ParamName); - - exception = Assert.Throws(() => Utf8String.UnsafeCreateWithoutValidation(10, expectedState, action: null)); - Assert.Equal("action", exception.ParamName); - - Assert.Same(Utf8String.Empty, Utf8String.UnsafeCreateWithoutValidation(0, expectedState, spanAction)); - - Assert.Equal(u8("abcde"), Utf8String.UnsafeCreateWithoutValidation(5, expectedState, spanAction)); - } - - [Fact] - public static void Ctor_Validating_FromDelegate() - { - object expectedState = new object(); - SpanAction spanAction = (span, actualState) => - { - Assert.Same(expectedState, actualState); - Assert.NotEqual(0, span.Length); // shouldn't have been called for a zero-length span - - for (int i = 0; i < span.Length; i++) - { - Assert.Equal(0, span[i]); // should've been zero-inited - span[i] = (byte)('a' + (i % 26)); // writes "abc...xyzabc...xyz..." - } - }; - - ArgumentException exception = Assert.Throws(() => Utf8String.Create(-1, expectedState, spanAction)); - Assert.Equal("length", exception.ParamName); - - exception = Assert.Throws(() => Utf8String.Create(10, expectedState, action: null)); - Assert.Equal("action", exception.ParamName); - - Assert.Same(Utf8String.Empty, Utf8String.Create(0, expectedState, spanAction)); - - Assert.Equal(u8("abcde"), Utf8String.Create(5, expectedState, spanAction)); - } - - [Fact] - public static void Ctor_Validating_FromDelegate_ThrowsIfDelegateProvidesInvalidData() - { - SpanAction spanAction = (span, actualState) => - { - span[0] = 0xFF; // never a valid UTF-8 byte - }; - - Assert.Throws(() => Utf8String.Create(10, new object(), spanAction)); - } - - [Fact] - public static void Ctor_CreateRelaxed_FromDelegate() - { - object expectedState = new object(); - SpanAction spanAction = (span, actualState) => - { - Assert.Same(expectedState, actualState); - Assert.NotEqual(0, span.Length); // shouldn't have been called for a zero-length span - - for (int i = 0; i < span.Length; i++) - { - Assert.Equal(0, span[i]); // should've been zero-inited - span[i] = 0xFF; // never a valid UTF-8 byte - } - }; - - ArgumentException exception = Assert.Throws(() => Utf8String.CreateRelaxed(-1, expectedState, spanAction)); - Assert.Equal("length", exception.ParamName); - - exception = Assert.Throws(() => Utf8String.CreateRelaxed(10, expectedState, action: null)); - Assert.Equal("action", exception.ParamName); - - Assert.Same(Utf8String.Empty, Utf8String.CreateRelaxed(0, expectedState, spanAction)); - - Assert.Equal(u8("\uFFFD\uFFFD"), Utf8String.CreateRelaxed(2, expectedState, spanAction)); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Enumeration.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Enumeration.cs deleted file mode 100644 index e8ea054578e6..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Enumeration.cs +++ /dev/null @@ -1,85 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Text; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - [Fact] - public static void BytesProperty_FromData() - { - Utf8String ustr = u8("\U00000012\U00000123\U00001234\U00101234\U00000012\U00000123\U00001234\U00101234"); - - Assert.Equal(new byte[] - { - 0x12, - 0xC4, 0xA3, - 0xE1, 0x88, 0xB4, - 0xF4, 0x81, 0x88, 0xB4, - 0x12, - 0xC4, 0xA3, - 0xE1, 0x88, 0xB4, - 0xF4, 0x81, 0x88, 0xB4, - }, ustr.Bytes); - } - - [Fact] - public static void BytesProperty_FromEmpty() - { - Assert.False(Utf8String.Empty.Bytes.GetEnumerator().MoveNext()); - } - - [Fact] - public static void CharsProperty_FromData() - { - Utf8String ustr = u8("\U00000012\U00000123\U00001234\U00101234\U00000012\U00000123\U00001234\U00101234"); - - Assert.Equal(new char[] - { - '\u0012', - '\u0123', - '\u1234', - '\uDBC4', '\uDE34', - '\u0012', - '\u0123', - '\u1234', - '\uDBC4', '\uDE34', - }, ustr.Chars); - } - - [Fact] - public static void CharsProperty_FromEmpty() - { - Assert.False(Utf8String.Empty.Chars.GetEnumerator().MoveNext()); - } - - [Fact] - public static void RunesProperty_FromData() - { - Utf8String ustr = u8("\U00000012\U00000123\U00001234\U00101234\U00000012\U00000123\U00001234\U00101234"); - - Assert.Equal(new Rune[] - { - new Rune(0x0012), - new Rune(0x0123), - new Rune(0x1234), - new Rune(0x101234), - new Rune(0x0012), - new Rune(0x0123), - new Rune(0x1234), - new Rune(0x101234), - }, ustr.Runes); - } - - [Fact] - public static void RunesProperty_FromEmpty() - { - Assert.False(Utf8String.Empty.Runes.GetEnumerator().MoveNext()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Manipulation.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Manipulation.cs deleted file mode 100644 index 74ddd641beaa..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Manipulation.cs +++ /dev/null @@ -1,210 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - public unsafe partial class Utf8StringTests - { - private delegate Utf8String.SplitResult Utf8StringSplitDelegate(Utf8String ustr, Utf8StringSplitOptions splitOptions); - - [Fact] - public static void Split_Utf8StringSeparator_WithNullOrEmptySeparator_Throws() - { - var ex = Assert.Throws(() => { u8("Hello").Split((Utf8String)null); }); - Assert.Equal("separator", ex.ParamName); - - // Shouldn't be able to split on an empty Utf8String. - // Such an enumerator would iterate forever, so we forbid it. - - ex = Assert.Throws(() => { u8("Hello").Split(Utf8String.Empty); }); - Assert.Equal("separator", ex.ParamName); - } - - [Fact] - public static void Split_InvalidChar_Throws() - { - // Shouldn't be able to split on a standalone surrogate char - // Other search methods (TryFind) return false when given a standalone surrogate char as input, - // but the Split methods returns a complex data structure instead of a simple bool. So to keep - // the logic of that data structure relatively simple we'll forbid the bad char at the call site. - - var ex = Assert.Throws(() => { u8("Hello").Split('\ud800'); }); - Assert.Equal("separator", ex.ParamName); - } - - public static IEnumerable SplitData_CharSeparator => Utf8SpanTests.SplitData_CharSeparator(); - - [Theory] - [MemberData(nameof(SplitData_CharSeparator))] - public static void Split_Char(Utf8String source, char separator, Range[] expectedRanges) - { - SplitTest_Common(source ?? Utf8String.Empty, (ustr, splitOptions) => ustr.Split(separator, splitOptions), expectedRanges); - } - - [Fact] - public static void Split_Deconstruct() - { - Utf8String ustr = u8("a,b,c,d,e"); - - { - (Utf8String a, Utf8String b) = ustr.Split('x'); // not found - Assert.Same(ustr, a); // Expected referential equality of input - Assert.Null(b); - } - - { - (Utf8String a, Utf8String b) = ustr.Split(','); - Assert.Equal(u8("a"), a); - Assert.Equal(u8("b,c,d,e"), b); - } - - { - (Utf8String a, Utf8String b, Utf8String c, Utf8String d, Utf8String e) = ustr.Split(','); - Assert.Equal(u8("a"), a); - Assert.Equal(u8("b"), b); - Assert.Equal(u8("c"), c); - Assert.Equal(u8("d"), d); - Assert.Equal(u8("e"), e); - } - - { - (Utf8String a, Utf8String b, Utf8String c, Utf8String d, Utf8String e, Utf8String f, Utf8String g, Utf8String h) = ustr.Split(','); - Assert.Equal(u8("a"), a); - Assert.Equal(u8("b"), b); - Assert.Equal(u8("c"), c); - Assert.Equal(u8("d"), d); - Assert.Equal(u8("e"), e); - Assert.Null(f); - Assert.Null(g); - Assert.Null(h); - } - } - - [Fact] - public static void Split_Deconstruct_WithOptions() - { - Utf8String ustr = u8("a, , b, c,, d, e"); - - // Note referential equality checks below (since we want to know exact slices - // into the original buffer), not deep (textual) equality checks. - - { - (Utf8String a, Utf8String b) = ustr.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries); - Assert.Equal(u8("a"), a); - Assert.Equal(u8(" , b, c,, d, e"), b); - } - - { - (Utf8String a, Utf8String x, Utf8String b, Utf8String c, Utf8String d, Utf8String e) = ustr.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries); - Assert.Equal(u8("a"), a); // "a" - Assert.Equal(u8(" "), x); // " " - Assert.Equal(u8(" b"), b); // " b" - Assert.Equal(u8(" c"), c); // " c" - Assert.Equal(u8(" d"), d); // " d" - Assert.Equal(u8(" e"), e); // " e" - } - - { - (Utf8String a, Utf8String b, Utf8String c, Utf8String d, Utf8String e, Utf8String f, Utf8String g, Utf8String h) = ustr.Split(',', Utf8StringSplitOptions.RemoveEmptyEntries | Utf8StringSplitOptions.TrimEntries); - Assert.Equal(u8("a"), a); - Assert.Equal(u8("b"), b); - Assert.Equal(u8("c"), c); - Assert.Equal(u8("d"), d); - Assert.Equal(u8("e"), e); - Assert.Null(f); - Assert.Null(g); - Assert.Null(h); - } - } - - public static IEnumerable SplitData_RuneSeparator() => Utf8SpanTests.SplitData_RuneSeparator(); - - [Theory] - [MemberData(nameof(SplitData_RuneSeparator))] - public static void Split_Rune(Utf8String source, Rune separator, Range[] expectedRanges) - { - SplitTest_Common(source ?? Utf8String.Empty, (ustr, splitOptions) => ustr.Split(separator, splitOptions), expectedRanges); - } - - public static IEnumerable SplitData_Utf8StringSeparator() => Utf8SpanTests.SplitData_Utf8SpanSeparator(); - - [Theory] - [MemberData(nameof(SplitData_Utf8StringSeparator))] - public static void Split_Utf8String(Utf8String source, Utf8String separator, Range[] expectedRanges) - { - SplitTest_Common(source ?? Utf8String.Empty, (ustr, splitOptions) => ustr.Split(separator, splitOptions), expectedRanges); - } - - private static void SplitTest_Common(Utf8String source, Utf8StringSplitDelegate splitAction, Range[] expectedRanges) - { - // First, run the split with default options and make sure the results are equivalent - - Assert.Equal( - expected: expectedRanges.Select(range => source[range]), - actual: splitAction(source, Utf8StringSplitOptions.None)); - - // Next, run the split with empty entries removed - - Assert.Equal( - expected: expectedRanges.Select(range => source[range]).Where(ustr => ustr.Length != 0), - actual: splitAction(source, Utf8StringSplitOptions.RemoveEmptyEntries)); - - // Next, run the split with results trimmed (but allowing empty results) - - Assert.Equal( - expected: expectedRanges.Select(range => source[range].Trim()), - actual: splitAction(source, Utf8StringSplitOptions.TrimEntries)); - - // Finally, run the split both trimmed and with empty entries removed - - Assert.Equal( - expected: expectedRanges.Select(range => source[range].Trim()).Where(ustr => ustr.Length != 0), - actual: splitAction(source, Utf8StringSplitOptions.TrimEntries | Utf8StringSplitOptions.RemoveEmptyEntries)); - } - - public static IEnumerable Trim_TestData() => Utf8SpanTests.Trim_TestData(); - - [Theory] - [MemberData(nameof(Trim_TestData))] - public static void Trim(string input) - { - if (input is null) - { - return; // don't want to null ref - } - - Utf8String utf8Input = u8(input); - - void RunTest(Func utf8TrimAction, Func utf16TrimAction) - { - Utf8String utf8Trimmed = utf8TrimAction(utf8Input); - string utf16Trimmed = utf16TrimAction(input); - - if (utf16Trimmed.Length == input.Length) - { - Assert.Same(utf8Input, utf8Trimmed); // Trimming should no-op, return original input - } - else if (utf16Trimmed.Length == 0) - { - Assert.Same(Utf8String.Empty, utf8Trimmed); // Trimming an all-whitespace input, return Empty - } - else - { - Assert.True(Utf8String.AreEquivalent(utf8Trimmed, utf16Trimmed)); - } - } - - RunTest(ustr => ustr.Trim(), str => str.Trim()); - RunTest(ustr => ustr.TrimStart(), str => str.TrimStart()); - RunTest(ustr => ustr.TrimEnd(), str => str.TrimEnd()); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Searching.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Searching.cs deleted file mode 100644 index 53307936c5e6..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.Searching.cs +++ /dev/null @@ -1,512 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Globalization; -using System.Text; -using System.Text.Tests; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -using ustring = System.Utf8String; - -namespace System.Tests -{ - /* - * Please keep these tests in sync with those in Utf8SpanTests.Searching.cs. - */ - - public unsafe partial class Utf8StringTests - { - public static IEnumerable TryFindData_Char_Ordinal() => Utf8SpanTests.TryFindData_Char_Ordinal(); - - [Theory] - [MemberData(nameof(TryFindData_Char_Ordinal))] - public static void TryFind_Char_Ordinal(ustring source, char searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - // First, search forward - - bool wasFound = source.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm)); - - (var before, var after) = source.SplitOn(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm)); - - (before, after) = source.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - - public static IEnumerable TryFindData_Char_WithComparison() => Utf8SpanTests.TryFindData_Char_WithComparison(); - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Char_WithComparison))] - public static void TryFind_Char_WithComparison(ustring source, char searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - RunOnDedicatedThread(() => - { - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = source.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - - (var before, var after) = source.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - - (before, after) = source.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - else - { - Assert.Throws(() => source.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() => source.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() => source.SplitOn(searchTerm, comparison)); - Assert.Throws(() => source.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, source.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && source[..expectedForwardMatch.Value.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && source[expectedBackwardMatch.Value.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - } - }); - } - - public static IEnumerable TryFindData_Rune_Ordinal() => Utf8SpanTests.TryFindData_Rune_Ordinal(); - - [Theory] - [MemberData(nameof(TryFindData_Rune_Ordinal))] - public static void TryFind_Rune_Ordinal(ustring source, Rune searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - // First, search forward - - bool wasFound = source.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm)); - - (var before, var after) = source.SplitOn(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm)); - - (before, after) = source.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - - public static IEnumerable TryFindData_Rune_WithComparison() => Utf8SpanTests.TryFindData_Rune_WithComparison(); - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Rune_WithComparison))] - public static void TryFind_Rune_WithComparison(ustring source, Rune searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - RunOnDedicatedThread(() => - { - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = source.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - - (var before, var after) = source.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - - (before, after) = source.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - else - { - Assert.Throws(() =>source.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() =>source.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() =>source.SplitOn(searchTerm, comparison)); - Assert.Throws(() =>source.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, source.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && source[..expectedForwardMatch.Value.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && source[expectedBackwardMatch.Value.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - } - }); - } - - public static IEnumerable TryFindData_Utf8String_Ordinal() => Utf8SpanTests.TryFindData_Utf8Span_Ordinal(); - - [Theory] - [MemberData(nameof(TryFindData_Utf8String_Ordinal))] - public static void TryFind_Utf8String_Ordinal(ustring source, ustring searchTerm, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - // First, search forward - - bool wasFound = source.TryFind(searchTerm, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm)); - - (var before, var after) = source.SplitOn(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm)); - - (before, after) = source.SplitOnLast(searchTerm); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - - public static IEnumerable TryFindData_Utf8String_WithComparison() => Utf8SpanTests.TryFindData_Utf8Span_WithComparison(); - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - [MemberData(nameof(TryFindData_Utf8String_WithComparison))] - public static void TryFind_Utf8String_WithComparison(ustring source, ustring searchTerm, StringComparison comparison, CultureInfo currentCulture, Range? expectedForwardMatch, Range? expectedBackwardMatch) - { - if (source is null) - { - return; // don't null ref - } - - RunOnDedicatedThread(() => - { - if (currentCulture != null) - { - CultureInfo.CurrentCulture = currentCulture; - } - - if (IsTryFindSupported(comparison)) - { - // First, search forward - - bool wasFound = source.TryFind(searchTerm, comparison, out Range actualForwardMatch); - Assert.Equal(expectedForwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedForwardMatch.Value, actualForwardMatch); - } - - // Also check Contains / StartsWith / SplitOn - - Assert.Equal(wasFound, source.Contains(searchTerm, comparison)); - Assert.Equal(wasFound && source[..actualForwardMatch.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - - (var before, var after) = source.SplitOn(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualForwardMatch.Start], before); - Assert.Equal(source[actualForwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - - // Now search backward - - wasFound = source.TryFindLast(searchTerm, comparison, out Range actualBackwardMatch); - Assert.Equal(expectedBackwardMatch.HasValue, wasFound); - - if (wasFound) - { - AssertRangesEqual(source.Length, expectedBackwardMatch.Value, actualBackwardMatch); - } - - // Also check EndsWith / SplitOnLast - - Assert.Equal(wasFound && source[actualBackwardMatch.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - - (before, after) = source.SplitOnLast(searchTerm, comparison); - if (wasFound) - { - Assert.Equal(source[..actualBackwardMatch.Start], before); - Assert.Equal(source[actualBackwardMatch.End..], after); - } - else - { - Assert.Same(source, before); // check for reference equality - Assert.Null(after); - } - } - else - { - Assert.Throws(() => source.TryFind(searchTerm, comparison, out var _)); - Assert.Throws(() => source.TryFindLast(searchTerm, comparison, out var _)); - Assert.Throws(() => source.SplitOn(searchTerm, comparison)); - Assert.Throws(() => source.SplitOnLast(searchTerm, comparison)); - - Assert.Equal(expectedForwardMatch.HasValue, source.Contains(searchTerm, comparison)); - Assert.Equal(expectedForwardMatch.HasValue && source[..expectedForwardMatch.Value.Start].Length == 0, source.StartsWith(searchTerm, comparison)); - Assert.Equal(expectedBackwardMatch.HasValue && source[expectedBackwardMatch.Value.End..].Length == 0, source.EndsWith(searchTerm, comparison)); - } - }); - } - - [Fact] - public static void TryFind_WithNullUtf8String_Throws() - { - static void RunTest(Action action) - { - var exception = Assert.Throws(action); - Assert.Equal("value", exception.ParamName); - } - - ustring str = u8("Hello!"); - const ustring value = null; - const StringComparison comparison = StringComparison.OrdinalIgnoreCase; - - // Run this test for a bunch of methods, not simply TryFind - - RunTest(() => str.Contains(value)); - RunTest(() => str.Contains(value, comparison)); - RunTest(() => str.EndsWith(value)); - RunTest(() => str.EndsWith(value, comparison)); - RunTest(() => str.SplitOn(value)); - RunTest(() => str.SplitOn(value, comparison)); - RunTest(() => str.SplitOnLast(value)); - RunTest(() => str.SplitOnLast(value, comparison)); - RunTest(() => str.StartsWith(value)); - RunTest(() => str.StartsWith(value, comparison)); - RunTest(() => str.TryFind(value, out _)); - RunTest(() => str.TryFind(value, comparison, out _)); - RunTest(() => str.TryFindLast(value, out _)); - RunTest(() => str.TryFindLast(value, comparison, out _)); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.cs deleted file mode 100644 index 042f9287742e..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8StringTests.cs +++ /dev/null @@ -1,307 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Globalization; -using Xunit; - -using static System.Tests.Utf8TestUtilities; - -namespace System.Tests -{ - [SkipOnMono("The features from System.Utf8String.Experimental namespace are experimental.")] - public unsafe partial class Utf8StringTests - { - [Fact] - public static void Empty_HasLengthZero() - { - Assert.Equal(0, Utf8String.Empty.Length); - SpanAssert.Equal(ReadOnlySpan.Empty, Utf8String.Empty.AsBytes()); - } - - [Fact] - public static void Empty_ReturnsSingleton() - { - Assert.Same(Utf8String.Empty, Utf8String.Empty); - } - - [Theory] - [InlineData(null, null, true)] - [InlineData("", null, false)] - [InlineData(null, "", false)] - [InlineData("hello", null, false)] - [InlineData(null, "hello", false)] - [InlineData("hello", "hello", true)] - [InlineData("hello", "Hello", false)] - [InlineData("hello there", "hello", false)] - public static void Equality_Ordinal(string aString, string bString, bool expected) - { - Utf8String a = u8(aString); - Utf8String b = u8(bString); - - // Operators - - Assert.Equal(expected, a == b); - Assert.NotEqual(expected, a != b); - - // Static methods - - Assert.Equal(expected, Utf8String.Equals(a, b)); - Assert.Equal(expected, Utf8String.Equals(a, b, StringComparison.Ordinal)); - - // Instance methods - - if (a != null) - { - Assert.Equal(expected, a.Equals((object)b)); - Assert.Equal(expected, a.Equals(b)); - Assert.Equal(expected, a.Equals(b, StringComparison.Ordinal)); - } - } - - [Fact] - public static void GetHashCode_Ordinal() - { - // Generate 17 all-null strings and make sure they have unique hash codes. - // Assuming Marvin32 is a good PRF and has a full 32-bit output domain, we should - // expect this test to fail only once every ~30 million runs due to the birthday paradox. - // That should be good enough for inclusion as a unit test. - - HashSet seenHashCodes = new HashSet(); - - for (int i = 0; i <= 16; i++) - { - Utf8String ustr = new Utf8String(new byte[i]); - - Assert.True(seenHashCodes.Add(ustr.GetHashCode()), "This hash code was previously seen."); - } - } - - [PlatformSpecific(TestPlatforms.Windows)] - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNlsGlobalization))] - public static void GetHashCode_WithComparison() - { - // Since hash code generation is randomized, it's possible (though unlikely) that - // we might see unanticipated collisions. It's ok if this unit test fails once in - // every few million runs, but if the unit test becomes truly flaky then that would - // be indicative of a larger problem with hash code generation. - // - // These tests also make sure that the hash code is computed over the buffer rather - // than over the reference. - - // Ordinal - - { - Utf8String ustr = u8("ababaaAA"); - - Assert.Equal(ustr[0..2].GetHashCode(StringComparison.Ordinal), ustr[2..4].GetHashCode(StringComparison.Ordinal)); - Assert.NotEqual(ustr[4..6].GetHashCode(StringComparison.Ordinal), ustr[6..8].GetHashCode(StringComparison.Ordinal)); - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.Ordinal), ustr[^0..].GetHashCode(StringComparison.Ordinal)); - } - - // OrdinalIgnoreCase - - { - Utf8String ustr = u8("ababaaAA"); - - Assert.Equal(ustr[0..2].GetHashCode(StringComparison.OrdinalIgnoreCase), ustr[2..4].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.Equal(ustr[4..6].GetHashCode(StringComparison.OrdinalIgnoreCase), ustr[6..8].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.NotEqual(ustr[0..2].GetHashCode(StringComparison.OrdinalIgnoreCase), ustr[6..8].GetHashCode(StringComparison.OrdinalIgnoreCase)); - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.OrdinalIgnoreCase), ustr[^0..].GetHashCode(StringComparison.OrdinalIgnoreCase)); - } - - // InvariantCulture - - { - Utf8String ustr = u8("ae\u00e6AE\u00c6"); // U+00E6 = 'æ' LATIN SMALL LETTER AE, U+00E6 = 'Æ' LATIN CAPITAL LETTER AE - - Assert.Equal(ustr[0..2].GetHashCode(StringComparison.InvariantCulture), ustr[2..4].GetHashCode(StringComparison.InvariantCulture)); - Assert.NotEqual(ustr[0..2].GetHashCode(StringComparison.InvariantCulture), ustr[4..6].GetHashCode(StringComparison.InvariantCulture)); - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.InvariantCulture), ustr[^0..].GetHashCode(StringComparison.InvariantCulture)); - } - - // InvariantCultureIgnoreCase - - { - Utf8String ustr = u8("ae\u00e6AE\u00c6EA"); - - Assert.Equal(ustr[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), ustr[2..4].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.Equal(ustr[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), ustr[6..8].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.NotEqual(ustr[0..2].GetHashCode(StringComparison.InvariantCultureIgnoreCase), ustr[8..10].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.InvariantCultureIgnoreCase), ustr[^0..].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - } - - // Invariant culture should not match Turkish I case conversion - - { - Utf8String ustr = u8("i\u0130"); // U+0130 = 'İ' LATIN CAPITAL LETTER I WITH DOT ABOVE - - Assert.NotEqual(ustr[0..1].GetHashCode(StringComparison.InvariantCultureIgnoreCase), ustr[1..3].GetHashCode(StringComparison.InvariantCultureIgnoreCase)); - } - - // CurrentCulture (we'll use tr-TR) - - RunOnDedicatedThread(() => - { - Utf8String ustr = u8("i\u0131\u0130Ii\u0131\u0130I"); // U+0131 = 'ı' LATIN SMALL LETTER DOTLESS I - - CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("tr-TR"); - - Assert.Equal(ustr[0..6].GetHashCode(StringComparison.CurrentCulture), ustr[6..12].GetHashCode(StringComparison.CurrentCulture)); - Assert.NotEqual(ustr[0..1].GetHashCode(StringComparison.CurrentCulture), ustr[1..3].GetHashCode(StringComparison.CurrentCulture)); - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.CurrentCulture), ustr[^0..].GetHashCode(StringComparison.CurrentCulture)); - }); - - // CurrentCultureIgnoreCase (we'll use tr-TR) - - RunOnDedicatedThread(() => - { - Utf8String ustr = u8("i\u0131\u0130Ii\u0131\u0130I"); - - CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("tr-TR"); - - Assert.Equal(ustr[0..6].GetHashCode(StringComparison.CurrentCultureIgnoreCase), ustr[6..12].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); - Assert.NotEqual(ustr[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), ustr[1..3].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' shouldn't match 'ı' - Assert.Equal(ustr[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), ustr[3..5].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' should match 'İ' - Assert.NotEqual(ustr[0..1].GetHashCode(StringComparison.CurrentCultureIgnoreCase), ustr[5..6].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); // 'i' shouldn't match 'I' - Assert.Equal(Utf8String.Empty.GetHashCode(StringComparison.CurrentCultureIgnoreCase), ustr[^0..].GetHashCode(StringComparison.CurrentCultureIgnoreCase)); - }); - } - - [Fact] - public static void GetPinnableReference_CalledMultipleTimes_ReturnsSameValue() - { - var utf8 = u8("Hello!"); - - fixed (byte* pA = utf8) - fixed (byte* pB = utf8) - { - Assert.True(pA == pB); - } - } - - [Fact] - public static void GetPinnableReference_Empty() - { - fixed (byte* pStr = Utf8String.Empty) - { - Assert.True(pStr != null); - Assert.Equal((byte)0, *pStr); // should point to null terminator - } - } - - [Fact] - public static void GetPinnableReference_NotEmpty() - { - fixed (byte* pStr = u8("Hello!")) - { - Assert.True(pStr != null); - - Assert.Equal((byte)'H', pStr[0]); - Assert.Equal((byte)'e', pStr[1]); - Assert.Equal((byte)'l', pStr[2]); - Assert.Equal((byte)'l', pStr[3]); - Assert.Equal((byte)'o', pStr[4]); - Assert.Equal((byte)'!', pStr[5]); - Assert.Equal((byte)'\0', pStr[6]); - } - } - - [Theory] - [InlineData(null, true)] - [InlineData("", true)] - [InlineData("\r\n", false)] - [InlineData("not empty", false)] - public static void IsNullOrEmpty(string value, bool expectedIsNullOrEmpty) - { - Assert.Equal(expectedIsNullOrEmpty, Utf8String.IsNullOrEmpty(u8(value))); - } - - [Theory] - [InlineData(null, true)] - [InlineData("", true)] - [InlineData(" \u2028\u2029\t\v", true)] - [InlineData(" x\r\n", false)] - [InlineData("\r\nhello\r\n", false)] - [InlineData("\r\n\0\r\n", false)] - [InlineData("\r\n\r\n", true)] - public static void IsNullOrWhiteSpace(string input, bool expected) - { - Assert.Equal(expected, Utf8String.IsNullOrWhiteSpace(u8(input))); - } - - [Fact] - public static void ToByteArray_Empty() - { -#if NETFRAMEWORK - // An empty Span.ToArray doesn't return Array.Empty on netfx - Assert.Equal(Array.Empty(), Utf8String.Empty.ToByteArray()); -#else - Assert.Same(Array.Empty(), Utf8String.Empty.ToByteArray()); -#endif - } - - [Fact] - public static void ToByteArray_NotEmpty() - { - Assert.Equal(new byte[] { (byte)'H', (byte)'i' }, u8("Hi").ToByteArray()); - } - - [Fact] - public static void ToCharArray_NotEmpty() - { - Assert.Equal("Hi".ToCharArray(), u8("Hi").ToCharArray()); - } - - [Fact] - public static void ToCharArray_Empty() - { - Assert.Same(Array.Empty(), Utf8String.Empty.ToCharArray()); - } - - [Theory] - [InlineData("")] - [InlineData("Hello!")] - public static void ToString_ReturnsUtf16(string value) - { - Assert.Equal(value, u8(value).ToString()); - } - - [Theory] - [InlineData("Hello", "6..")] - [InlineData("Hello", "3..7")] - [InlineData("Hello", "2..1")] - [InlineData("Hello", "^10..")] - public static void Indexer_Range_ArgOutOfRange_Throws(string strAsUtf16, string rangeAsString) - { - Utf8String utf8String = u8(strAsUtf16); - Range range = ParseRangeExpr(rangeAsString); - - Assert.Throws(() => utf8String[range]); - } - - [Fact] - public static void Indexer_Range_Success() - { - Utf8String utf8String = u8("Hello\u0800world."); - - Assert.Equal(u8("Hello"), utf8String[..5]); - Assert.Equal(u8("world."), utf8String[^6..]); - Assert.Equal(u8("o\u0800w"), utf8String[4..9]); - - Assert.Same(utf8String, utf8String[..]); // don't allocate new instance if slicing to entire string - Assert.Same(Utf8String.Empty, utf8String[1..1]); // don't allocare new zero-length string instane - Assert.Same(Utf8String.Empty, utf8String[6..6]); // ok to have a zero-length slice within a multi-byte sequence - } - - [Fact] - public static void Indexer_Range_TriesToSplitMultiByteSequence_Throws() - { - Utf8String utf8String = u8("Hello\u0800world."); - - Assert.Throws(() => utf8String[..6]); - Assert.Throws(() => utf8String[6..]); - Assert.Throws(() => utf8String[7..8]); - } - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8TestUtilities.cs b/src/libraries/System.Utf8String.Experimental/tests/System/Utf8TestUtilities.cs deleted file mode 100644 index 0160d327c8c0..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/System/Utf8TestUtilities.cs +++ /dev/null @@ -1,208 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Globalization; -using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.ExceptionServices; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading; -using Xunit; - -namespace System.Tests -{ - public static class Utf8TestUtilities - { - private static readonly Lazy> _utf8StringFactory = CreateUtf8StringFactory(); - - private static Lazy> CreateUtf8StringFactory() - { - return new Lazy>(() => - { - MethodInfo fastAllocateMethod = typeof(Utf8String).GetMethod("FastAllocate", BindingFlags.NonPublic | BindingFlags.Static, null, new[] { typeof(int) }, null); - Assert.NotNull(fastAllocateMethod); - return (Func)fastAllocateMethod.CreateDelegate(typeof(Func)); - }); - } - - public unsafe static bool IsNull(this Utf8Span span) - { - return Unsafe.AreSame(ref Unsafe.AsRef(null), ref MemoryMarshal.GetReference(span.Bytes)); - } - - /// - /// Parses an expression of the form "a..b" and returns a . - /// - public static Range ParseRangeExpr(string expression) => ParseRangeExpr(expression.AsSpan()); - - /// - /// Parses an expression of the form "a..b" and returns a . - /// - public static Range ParseRangeExpr(ReadOnlySpan expression) - { - int idxOfDots = expression.IndexOf("..".AsSpan(), StringComparison.Ordinal); - if (idxOfDots < 0) - { - goto Error; - } - - ReadOnlySpan firstPart = expression[..idxOfDots].Trim(); - Index firstIndex = Index.Start; - - if (!firstPart.IsWhiteSpace()) - { - bool fromEnd = false; - - if (!firstPart.IsEmpty && firstPart[0] == '^') - { - fromEnd = true; - firstPart = firstPart[1..]; - } - - if (!int.TryParse(firstPart.ToString(), NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, CultureInfo.InvariantCulture, out int startIndex)) - { - goto Error; - } - - firstIndex = new Index(startIndex, fromEnd); - } - - ReadOnlySpan secondPart = expression[(idxOfDots + 2)..].Trim(); - Index secondIndex = Index.End; - - if (!secondPart.IsWhiteSpace()) - { - bool fromEnd = false; - - if (!secondPart.IsEmpty && secondPart[0] == '^') - { - fromEnd = true; - secondPart = secondPart[1..]; - } - - if (!int.TryParse(secondPart.ToString(), NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, CultureInfo.InvariantCulture, out int endIndex)) - { - goto Error; - } - - secondIndex = new Index(endIndex, fromEnd); - } - - return new Range(firstIndex, secondIndex); - - Error: - throw new ArgumentException($"Range expression '{expression.ToString()}' is invalid."); - } - - public static void AssertRangesEqual(int originalLength, Range expected, Range actual) - { - Assert.Equal(expected, actual, new RangeEqualityComparer(originalLength)); - } - - /// - /// Runs this test on its own dedicated thread; allows for setting CurrentCulture and other thread-statics. - /// - /// - public static void RunOnDedicatedThread(Action testCode) - { - Assert.NotNull(testCode); - - ExceptionDispatchInfo edi = default; - Thread newThread = new Thread(() => - { - try - { - testCode(); - } - catch (Exception ex) - { - edi = ExceptionDispatchInfo.Capture(ex); - } - }); - - newThread.Start(); - newThread.Join(); - - if (edi != null) - { - edi.Throw(); - } - } - - /// - /// Mimics returning a literal instance. - /// - public static Utf8String u8(string str) - { - if (str is null) - { - return null; - } - else if (str.Length == 0) - { - return Utf8String.Empty; - } - - // First, transcode UTF-16 to UTF-8. We use direct by-scalar transcoding here - // because we have good reference implementation tests for this and it'll help - // catch any errors we introduce to our bulk transcoding implementations. - - MemoryStream memStream = new MemoryStream(); - - byte[] utf8Bytes = new byte[4]; // 4 UTF-8 code units is the largest any scalar value can be encoded as - - int index = 0; - while (index < str.Length) - { - if (Rune.TryGetRuneAt(str, index, out Rune value) && value.TryEncodeToUtf8(utf8Bytes, out int bytesWritten)) - { - memStream.Write(utf8Bytes, 0, bytesWritten); - index += value.Utf16SequenceLength; - } - else - { - throw new ArgumentException($"String '{str}' is not a well-formed UTF-16 string."); - } - } - - Assert.True(memStream.TryGetBuffer(out ArraySegment buffer)); - - // Now allocate a UTF-8 string instance and set this as the contents. - - return Utf8String.UnsafeCreateWithoutValidation(buffer); - } - - public unsafe static Range GetRangeOfSubspan(ReadOnlySpan outerSpan, ReadOnlySpan innerSpan) - { - ulong byteOffset = (ulong)(void*)Unsafe.ByteOffset(ref MemoryMarshal.GetReference(outerSpan), ref MemoryMarshal.GetReference(innerSpan)); - ulong elementOffset = byteOffset / (uint)Unsafe.SizeOf(); - - checked - { - int elementOffsetAsInt = (int)elementOffset; - Range retVal = elementOffsetAsInt..(elementOffsetAsInt + innerSpan.Length); - - _ = outerSpan[retVal]; // call the real slice logic to make sure we're really within the outer span - return retVal; - } - } - - public static Range GetRangeOfSubspan(Utf8Span outerSpan, Utf8Span innerSpan) - { - return GetRangeOfSubspan(outerSpan.Bytes, innerSpan.Bytes); - } - - public static bool IsEmpty(this Range range, int length) - { - (_, int actualLength) = range.GetOffsetAndLength(length); - return (actualLength == 0); - } - - public static bool IsTryFindSupported(StringComparison comparison) => - !PlatformDetection.IsNetFramework || - comparison == StringComparison.Ordinal || - comparison == StringComparison.OrdinalIgnoreCase; - } -} diff --git a/src/libraries/System.Utf8String.Experimental/tests/Xunit/SpanAssert.cs b/src/libraries/System.Utf8String.Experimental/tests/Xunit/SpanAssert.cs deleted file mode 100644 index db7fe744d253..000000000000 --- a/src/libraries/System.Utf8String.Experimental/tests/Xunit/SpanAssert.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Collections.Generic; - -namespace Xunit -{ - public static class SpanAssert - { - public static void Equal(ReadOnlySpan a, ReadOnlySpan b, IEqualityComparer comparer = null) where T : IEquatable - { - if (comparer is null) - { - Assert.Equal(a.ToArray(), b.ToArray()); - } - else - { - Assert.Equal(a.ToArray(), b.ToArray(), comparer); - } - } - - public static void Equal(Span a, Span b, IEqualityComparer comparer = null) where T : IEquatable - { - if (comparer is null) - { - Assert.Equal(a.ToArray(), b.ToArray()); - } - else - { - Assert.Equal(a.ToArray(), b.ToArray(), comparer); - } - } - } -} diff --git a/src/libraries/System.ValueTuple/System.ValueTuple.sln b/src/libraries/System.ValueTuple/System.ValueTuple.sln index b49266d0fd47..adc579996192 100644 --- a/src/libraries/System.ValueTuple/System.ValueTuple.sln +++ b/src/libraries/System.ValueTuple/System.ValueTuple.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple.Tests", "tests\System.ValueTuple.Tests.csproj", "{CBD5AE8D-8595-48E2-848F-1A3492A28FDB}" - ProjectSection(ProjectDependencies) = postProject - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29} = {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E7F22DF6-4869-4B34-BCFA-D007FE89616C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple", "src\System.ValueTuple.csproj", "{4C2655DB-BD9E-4C86-83A6-744ECDDBDF29}" - ProjectSection(ProjectDependencies) = postProject - {11AE73F7-3532-47B9-8FF6-B4F22D76456D} = {11AE73F7-3532-47B9-8FF6-B4F22D76456D} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple", "ref\System.ValueTuple.csproj", "{11AE73F7-3532-47B9-8FF6-B4F22D76456D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{0405F77B-A8AE-47A9-9880-68B7A238DB21}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{63D5BFEA-99F5-4DAF-8793-5B0C0615B210}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{223C81BA-EE1B-4660-B0D7-29E2B4791743}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{4E8486DB-62DA-4D3F-A677-5887F891256F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B6303241-90AC-4094-AFCE-803E6E1136AB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple", "ref\System.ValueTuple.csproj", "{F48CCB0E-7FA3-490A-BCF0-9918C496D3B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple", "src\System.ValueTuple.csproj", "{F4EDEAED-F616-41EE-9FBA-76986DCDB528}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ValueTuple.Tests", "tests\System.ValueTuple.Tests.csproj", "{3070EAA5-CBA9-4359-844B-2EFCDDC37020}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3F8BA399-B525-4BC1-8AF6-F84825DDC5BA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{81A0ED73-BF10-4DE5-A1F5-F09F030DC8B7}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E7F22DF6-4869-4B34-BCFA-D007FE89616C} = {3F8BA399-B525-4BC1-8AF6-F84825DDC5BA} + {3070EAA5-CBA9-4359-844B-2EFCDDC37020} = {3F8BA399-B525-4BC1-8AF6-F84825DDC5BA} + {D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5} = {F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B} + {0405F77B-A8AE-47A9-9880-68B7A238DB21} = {F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B} + {223C81BA-EE1B-4660-B0D7-29E2B4791743} = {F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B} + {4E8486DB-62DA-4D3F-A677-5887F891256F} = {F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B} + {F48CCB0E-7FA3-490A-BCF0-9918C496D3B1} = {F7C087B6-A4C1-4ADF-8F55-5F1DC5FD4E5B} + {63D5BFEA-99F5-4DAF-8793-5B0C0615B210} = {81A0ED73-BF10-4DE5-A1F5-F09F030DC8B7} + {F4EDEAED-F616-41EE-9FBA-76986DCDB528} = {81A0ED73-BF10-4DE5-A1F5-F09F030DC8B7} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CBD5AE8D-8595-48E2-848F-1A3492A28FDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CBD5AE8D-8595-48E2-848F-1A3492A28FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CBD5AE8D-8595-48E2-848F-1A3492A28FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CBD5AE8D-8595-48E2-848F-1A3492A28FDB}.Release|Any CPU.Build.0 = Release|Any CPU - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29}.Release|Any CPU.Build.0 = Release|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {11AE73F7-3532-47B9-8FF6-B4F22D76456D}.Release|Any CPU.Build.0 = Release|Any CPU - {B6303241-90AC-4094-AFCE-803E6E1136AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6303241-90AC-4094-AFCE-803E6E1136AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6303241-90AC-4094-AFCE-803E6E1136AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6303241-90AC-4094-AFCE-803E6E1136AB}.Release|Any CPU.Build.0 = Release|Any CPU + {E7F22DF6-4869-4B34-BCFA-D007FE89616C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7F22DF6-4869-4B34-BCFA-D007FE89616C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7F22DF6-4869-4B34-BCFA-D007FE89616C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7F22DF6-4869-4B34-BCFA-D007FE89616C}.Release|Any CPU.Build.0 = Release|Any CPU + {D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D52E5291-FF1D-43F5-8BD6-4546BFFB7FF5}.Release|Any CPU.Build.0 = Release|Any CPU + {0405F77B-A8AE-47A9-9880-68B7A238DB21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0405F77B-A8AE-47A9-9880-68B7A238DB21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0405F77B-A8AE-47A9-9880-68B7A238DB21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0405F77B-A8AE-47A9-9880-68B7A238DB21}.Release|Any CPU.Build.0 = Release|Any CPU + {63D5BFEA-99F5-4DAF-8793-5B0C0615B210}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63D5BFEA-99F5-4DAF-8793-5B0C0615B210}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63D5BFEA-99F5-4DAF-8793-5B0C0615B210}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63D5BFEA-99F5-4DAF-8793-5B0C0615B210}.Release|Any CPU.Build.0 = Release|Any CPU + {223C81BA-EE1B-4660-B0D7-29E2B4791743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {223C81BA-EE1B-4660-B0D7-29E2B4791743}.Debug|Any CPU.Build.0 = Debug|Any CPU + {223C81BA-EE1B-4660-B0D7-29E2B4791743}.Release|Any CPU.ActiveCfg = Release|Any CPU + {223C81BA-EE1B-4660-B0D7-29E2B4791743}.Release|Any CPU.Build.0 = Release|Any CPU + {4E8486DB-62DA-4D3F-A677-5887F891256F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E8486DB-62DA-4D3F-A677-5887F891256F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E8486DB-62DA-4D3F-A677-5887F891256F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E8486DB-62DA-4D3F-A677-5887F891256F}.Release|Any CPU.Build.0 = Release|Any CPU + {F48CCB0E-7FA3-490A-BCF0-9918C496D3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F48CCB0E-7FA3-490A-BCF0-9918C496D3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F48CCB0E-7FA3-490A-BCF0-9918C496D3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F48CCB0E-7FA3-490A-BCF0-9918C496D3B1}.Release|Any CPU.Build.0 = Release|Any CPU + {F4EDEAED-F616-41EE-9FBA-76986DCDB528}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4EDEAED-F616-41EE-9FBA-76986DCDB528}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4EDEAED-F616-41EE-9FBA-76986DCDB528}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4EDEAED-F616-41EE-9FBA-76986DCDB528}.Release|Any CPU.Build.0 = Release|Any CPU + {3070EAA5-CBA9-4359-844B-2EFCDDC37020}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3070EAA5-CBA9-4359-844B-2EFCDDC37020}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3070EAA5-CBA9-4359-844B-2EFCDDC37020}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3070EAA5-CBA9-4359-844B-2EFCDDC37020}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {CBD5AE8D-8595-48E2-848F-1A3492A28FDB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {4C2655DB-BD9E-4C86-83A6-744ECDDBDF29} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {11AE73F7-3532-47B9-8FF6-B4F22D76456D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {B6303241-90AC-4094-AFCE-803E6E1136AB} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DC3F0B38-F32E-4F1E-9FC9-B541747AC4F3} + SolutionGuid = {B203AA51-F643-4542-8F44-E337F58D2C61} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Web.HttpUtility/System.Web.HttpUtility.sln b/src/libraries/System.Web.HttpUtility/System.Web.HttpUtility.sln index 098655bc199c..5e6855ce5346 100644 --- a/src/libraries/System.Web.HttpUtility/System.Web.HttpUtility.sln +++ b/src/libraries/System.Web.HttpUtility/System.Web.HttpUtility.sln @@ -1,60 +1,86 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility.Tests", "tests\System.Web.HttpUtility.Tests.csproj", "{914279EE-58B1-4B27-BA18-66D988C8DFFA}" - ProjectSection(ProjectDependencies) = postProject - {CE959FC9-5E04-4F29-96B5-454BF3E76306} = {CE959FC9-5E04-4F29-96B5-454BF3E76306} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{DE086FBB-952B-491A-A59C-733C33682562}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility", "src\System.Web.HttpUtility.csproj", "{CE959FC9-5E04-4F29-96B5-454BF3E76306}" - ProjectSection(ProjectDependencies) = postProject - {CB57F978-2BA8-4BF3-A755-A032030974A0} = {CB57F978-2BA8-4BF3-A755-A032030974A0} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{3F33730C-497E-419A-A792-61DB2B936C10}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility", "ref\System.Web.HttpUtility.csproj", "{CB57F978-2BA8-4BF3-A755-A032030974A0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{2529A763-7FF2-470F-8B61-B687B739B756}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{FA4BA62E-70F4-4280-A756-0E4046A5B365}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{12E52512-1A77-4DE6-BBBC-3EFD0AB04D91}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{8B26C383-DB8A-4716-9B44-6038C36E370F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7B451E08-E47D-42A3-AD91-8C697A311759}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility", "ref\System.Web.HttpUtility.csproj", "{063B8BE1-1713-40FE-BD22-A258FD50108E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility", "src\System.Web.HttpUtility.csproj", "{C294097C-8171-4FA2-9C58-11A7FE3BEBDA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Web.HttpUtility.Tests", "tests\System.Web.HttpUtility.Tests.csproj", "{BA3C5AE7-937C-47E1-B861-1F149499889F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8383E3CF-DD6E-40E3-9596-2E80EC06F623}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{3C05F087-13BF-4207-B5DE-D08AAB41057F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BF2F381D-E865-43BD-9439-20831B9785DE}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {DE086FBB-952B-491A-A59C-733C33682562} = {8383E3CF-DD6E-40E3-9596-2E80EC06F623} + {BA3C5AE7-937C-47E1-B861-1F149499889F} = {8383E3CF-DD6E-40E3-9596-2E80EC06F623} + {3F33730C-497E-419A-A792-61DB2B936C10} = {3C05F087-13BF-4207-B5DE-D08AAB41057F} + {2529A763-7FF2-470F-8B61-B687B739B756} = {3C05F087-13BF-4207-B5DE-D08AAB41057F} + {12E52512-1A77-4DE6-BBBC-3EFD0AB04D91} = {3C05F087-13BF-4207-B5DE-D08AAB41057F} + {8B26C383-DB8A-4716-9B44-6038C36E370F} = {3C05F087-13BF-4207-B5DE-D08AAB41057F} + {063B8BE1-1713-40FE-BD22-A258FD50108E} = {3C05F087-13BF-4207-B5DE-D08AAB41057F} + {FA4BA62E-70F4-4280-A756-0E4046A5B365} = {BF2F381D-E865-43BD-9439-20831B9785DE} + {C294097C-8171-4FA2-9C58-11A7FE3BEBDA} = {BF2F381D-E865-43BD-9439-20831B9785DE} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {914279EE-58B1-4B27-BA18-66D988C8DFFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {914279EE-58B1-4B27-BA18-66D988C8DFFA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {914279EE-58B1-4B27-BA18-66D988C8DFFA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {914279EE-58B1-4B27-BA18-66D988C8DFFA}.Release|Any CPU.Build.0 = Release|Any CPU - {CE959FC9-5E04-4F29-96B5-454BF3E76306}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE959FC9-5E04-4F29-96B5-454BF3E76306}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CE959FC9-5E04-4F29-96B5-454BF3E76306}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CE959FC9-5E04-4F29-96B5-454BF3E76306}.Release|Any CPU.Build.0 = Release|Any CPU - {CB57F978-2BA8-4BF3-A755-A032030974A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB57F978-2BA8-4BF3-A755-A032030974A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB57F978-2BA8-4BF3-A755-A032030974A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB57F978-2BA8-4BF3-A755-A032030974A0}.Release|Any CPU.Build.0 = Release|Any CPU - {7B451E08-E47D-42A3-AD91-8C697A311759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B451E08-E47D-42A3-AD91-8C697A311759}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B451E08-E47D-42A3-AD91-8C697A311759}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B451E08-E47D-42A3-AD91-8C697A311759}.Release|Any CPU.Build.0 = Release|Any CPU + {DE086FBB-952B-491A-A59C-733C33682562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE086FBB-952B-491A-A59C-733C33682562}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE086FBB-952B-491A-A59C-733C33682562}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE086FBB-952B-491A-A59C-733C33682562}.Release|Any CPU.Build.0 = Release|Any CPU + {3F33730C-497E-419A-A792-61DB2B936C10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F33730C-497E-419A-A792-61DB2B936C10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F33730C-497E-419A-A792-61DB2B936C10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F33730C-497E-419A-A792-61DB2B936C10}.Release|Any CPU.Build.0 = Release|Any CPU + {2529A763-7FF2-470F-8B61-B687B739B756}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2529A763-7FF2-470F-8B61-B687B739B756}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2529A763-7FF2-470F-8B61-B687B739B756}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2529A763-7FF2-470F-8B61-B687B739B756}.Release|Any CPU.Build.0 = Release|Any CPU + {FA4BA62E-70F4-4280-A756-0E4046A5B365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA4BA62E-70F4-4280-A756-0E4046A5B365}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA4BA62E-70F4-4280-A756-0E4046A5B365}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA4BA62E-70F4-4280-A756-0E4046A5B365}.Release|Any CPU.Build.0 = Release|Any CPU + {12E52512-1A77-4DE6-BBBC-3EFD0AB04D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12E52512-1A77-4DE6-BBBC-3EFD0AB04D91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12E52512-1A77-4DE6-BBBC-3EFD0AB04D91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12E52512-1A77-4DE6-BBBC-3EFD0AB04D91}.Release|Any CPU.Build.0 = Release|Any CPU + {8B26C383-DB8A-4716-9B44-6038C36E370F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B26C383-DB8A-4716-9B44-6038C36E370F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B26C383-DB8A-4716-9B44-6038C36E370F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B26C383-DB8A-4716-9B44-6038C36E370F}.Release|Any CPU.Build.0 = Release|Any CPU + {063B8BE1-1713-40FE-BD22-A258FD50108E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {063B8BE1-1713-40FE-BD22-A258FD50108E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {063B8BE1-1713-40FE-BD22-A258FD50108E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {063B8BE1-1713-40FE-BD22-A258FD50108E}.Release|Any CPU.Build.0 = Release|Any CPU + {C294097C-8171-4FA2-9C58-11A7FE3BEBDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C294097C-8171-4FA2-9C58-11A7FE3BEBDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C294097C-8171-4FA2-9C58-11A7FE3BEBDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C294097C-8171-4FA2-9C58-11A7FE3BEBDA}.Release|Any CPU.Build.0 = Release|Any CPU + {BA3C5AE7-937C-47E1-B861-1F149499889F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA3C5AE7-937C-47E1-B861-1F149499889F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA3C5AE7-937C-47E1-B861-1F149499889F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA3C5AE7-937C-47E1-B861-1F149499889F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {914279EE-58B1-4B27-BA18-66D988C8DFFA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {CE959FC9-5E04-4F29-96B5-454BF3E76306} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {CB57F978-2BA8-4BF3-A755-A032030974A0} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7B451E08-E47D-42A3-AD91-8C697A311759} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {75205C4D-1F4F-4C65-B827-EE6C4B781DE8} + SolutionGuid = {F217C7E2-5993-44CD-B205-72A0167F266F} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Windows.Extensions/System.Windows.Extensions.sln b/src/libraries/System.Windows.Extensions/System.Windows.Extensions.sln index 1ac5523ca809..29b2505ef2cb 100644 --- a/src/libraries/System.Windows.Extensions/System.Windows.Extensions.sln +++ b/src/libraries/System.Windows.Extensions/System.Windows.Extensions.sln @@ -1,60 +1,114 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions.Tests", "tests\System.Windows.Extensions.Tests.csproj", "{AC1A1515-70D8-42E4-9B19-A72F739E974C}" - ProjectSection(ProjectDependencies) = postProject - {E0C4E267-B1D6-463B-9C95-8C0D3C335924} = {E0C4E267-B1D6-463B-9C95-8C0D3C335924} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E51D8981-999E-4516-82BF-5766CE531E53}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "src\System.Windows.Extensions.csproj", "{E0C4E267-B1D6-463B-9C95-8C0D3C335924}" - ProjectSection(ProjectDependencies) = postProject - {36A0298D-E01E-411D-A19B-19EEC60B9A8A} = {36A0298D-E01E-411D-A19B-19EEC60B9A8A} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.Registry", "..\Microsoft.Win32.Registry\ref\Microsoft.Win32.Registry.csproj", "{A9027B85-D964-42CC-8275-CDAC13E326D2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "ref\System.Windows.Extensions.csproj", "{36A0298D-E01E-411D-A19B-19EEC60B9A8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj", "{2518617E-3EFC-4CD1-AF86-D7115B5065B0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Win32.SystemEvents", "..\Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj", "{63747E82-DCD9-445E-A20E-753B1A6D603B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\ref\System.Drawing.Common.csproj", "{DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Drawing.Common", "..\System.Drawing.Common\src\System.Drawing.Common.csproj", "{532CAA5E-15F7-4E76-9EBC-B08C56390172}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{09BA10C4-8B7A-4713-932F-5439A0964A93}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\ref\System.Runtime.CompilerServices.Unsafe.csproj", "{FD006B85-C406-4F32-8349-038B1CDA1FBA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe", "..\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{DEC4B7DB-8F6C-4228-AD22-16BEBC125C91}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.AccessControl", "..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj", "{C10F0726-F415-4502-AA36-F68608CDD020}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Security.Principal.Windows", "..\System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj", "{1BCBFD21-119F-47D1-8797-0C735CC6306B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "ref\System.Windows.Extensions.csproj", "{AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions", "src\System.Windows.Extensions.csproj", "{6324EAB4-058A-4D80-8D99-5DFB7AEA8928}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Extensions.Tests", "tests\System.Windows.Extensions.Tests.csproj", "{5CE6447B-ECCE-461C-918D-A37A7ACDF2AC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AC21A11-4160-46B3-8F6B-76FD4FD3CBF1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{CAA9FD9A-8A4E-40AD-85A2-160762C9C478}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{69E04E17-A14D-4B05-BBD7-12F4E63FE602}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {E51D8981-999E-4516-82BF-5766CE531E53} = {0AC21A11-4160-46B3-8F6B-76FD4FD3CBF1} + {5CE6447B-ECCE-461C-918D-A37A7ACDF2AC} = {0AC21A11-4160-46B3-8F6B-76FD4FD3CBF1} + {A9027B85-D964-42CC-8275-CDAC13E326D2} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {2518617E-3EFC-4CD1-AF86-D7115B5065B0} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {FD006B85-C406-4F32-8349-038B1CDA1FBA} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {C10F0726-F415-4502-AA36-F68608CDD020} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {1BCBFD21-119F-47D1-8797-0C735CC6306B} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B} = {CAA9FD9A-8A4E-40AD-85A2-160762C9C478} + {63747E82-DCD9-445E-A20E-753B1A6D603B} = {69E04E17-A14D-4B05-BBD7-12F4E63FE602} + {532CAA5E-15F7-4E76-9EBC-B08C56390172} = {69E04E17-A14D-4B05-BBD7-12F4E63FE602} + {DEC4B7DB-8F6C-4228-AD22-16BEBC125C91} = {69E04E17-A14D-4B05-BBD7-12F4E63FE602} + {6324EAB4-058A-4D80-8D99-5DFB7AEA8928} = {69E04E17-A14D-4B05-BBD7-12F4E63FE602} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AC1A1515-70D8-42E4-9B19-A72F739E974C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC1A1515-70D8-42E4-9B19-A72F739E974C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC1A1515-70D8-42E4-9B19-A72F739E974C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC1A1515-70D8-42E4-9B19-A72F739E974C}.Release|Any CPU.Build.0 = Release|Any CPU - {E0C4E267-B1D6-463B-9C95-8C0D3C335924}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0C4E267-B1D6-463B-9C95-8C0D3C335924}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0C4E267-B1D6-463B-9C95-8C0D3C335924}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0C4E267-B1D6-463B-9C95-8C0D3C335924}.Release|Any CPU.Build.0 = Release|Any CPU - {36A0298D-E01E-411D-A19B-19EEC60B9A8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36A0298D-E01E-411D-A19B-19EEC60B9A8A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36A0298D-E01E-411D-A19B-19EEC60B9A8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36A0298D-E01E-411D-A19B-19EEC60B9A8A}.Release|Any CPU.Build.0 = Release|Any CPU - {09BA10C4-8B7A-4713-932F-5439A0964A93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {09BA10C4-8B7A-4713-932F-5439A0964A93}.Debug|Any CPU.Build.0 = Debug|Any CPU - {09BA10C4-8B7A-4713-932F-5439A0964A93}.Release|Any CPU.ActiveCfg = Release|Any CPU - {09BA10C4-8B7A-4713-932F-5439A0964A93}.Release|Any CPU.Build.0 = Release|Any CPU + {E51D8981-999E-4516-82BF-5766CE531E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E51D8981-999E-4516-82BF-5766CE531E53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E51D8981-999E-4516-82BF-5766CE531E53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E51D8981-999E-4516-82BF-5766CE531E53}.Release|Any CPU.Build.0 = Release|Any CPU + {A9027B85-D964-42CC-8275-CDAC13E326D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9027B85-D964-42CC-8275-CDAC13E326D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9027B85-D964-42CC-8275-CDAC13E326D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9027B85-D964-42CC-8275-CDAC13E326D2}.Release|Any CPU.Build.0 = Release|Any CPU + {2518617E-3EFC-4CD1-AF86-D7115B5065B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2518617E-3EFC-4CD1-AF86-D7115B5065B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2518617E-3EFC-4CD1-AF86-D7115B5065B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2518617E-3EFC-4CD1-AF86-D7115B5065B0}.Release|Any CPU.Build.0 = Release|Any CPU + {63747E82-DCD9-445E-A20E-753B1A6D603B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63747E82-DCD9-445E-A20E-753B1A6D603B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63747E82-DCD9-445E-A20E-753B1A6D603B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63747E82-DCD9-445E-A20E-753B1A6D603B}.Release|Any CPU.Build.0 = Release|Any CPU + {DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDAEB258-71D9-4D26-A6A4-67F5CC8D77DE}.Release|Any CPU.Build.0 = Release|Any CPU + {532CAA5E-15F7-4E76-9EBC-B08C56390172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {532CAA5E-15F7-4E76-9EBC-B08C56390172}.Debug|Any CPU.Build.0 = Debug|Any CPU + {532CAA5E-15F7-4E76-9EBC-B08C56390172}.Release|Any CPU.ActiveCfg = Release|Any CPU + {532CAA5E-15F7-4E76-9EBC-B08C56390172}.Release|Any CPU.Build.0 = Release|Any CPU + {FD006B85-C406-4F32-8349-038B1CDA1FBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD006B85-C406-4F32-8349-038B1CDA1FBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD006B85-C406-4F32-8349-038B1CDA1FBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD006B85-C406-4F32-8349-038B1CDA1FBA}.Release|Any CPU.Build.0 = Release|Any CPU + {DEC4B7DB-8F6C-4228-AD22-16BEBC125C91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEC4B7DB-8F6C-4228-AD22-16BEBC125C91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEC4B7DB-8F6C-4228-AD22-16BEBC125C91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEC4B7DB-8F6C-4228-AD22-16BEBC125C91}.Release|Any CPU.Build.0 = Release|Any CPU + {C10F0726-F415-4502-AA36-F68608CDD020}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C10F0726-F415-4502-AA36-F68608CDD020}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C10F0726-F415-4502-AA36-F68608CDD020}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C10F0726-F415-4502-AA36-F68608CDD020}.Release|Any CPU.Build.0 = Release|Any CPU + {1BCBFD21-119F-47D1-8797-0C735CC6306B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BCBFD21-119F-47D1-8797-0C735CC6306B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BCBFD21-119F-47D1-8797-0C735CC6306B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BCBFD21-119F-47D1-8797-0C735CC6306B}.Release|Any CPU.Build.0 = Release|Any CPU + {AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFB20E97-6E12-43EA-BA9B-9E8AC0D05C1B}.Release|Any CPU.Build.0 = Release|Any CPU + {6324EAB4-058A-4D80-8D99-5DFB7AEA8928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6324EAB4-058A-4D80-8D99-5DFB7AEA8928}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6324EAB4-058A-4D80-8D99-5DFB7AEA8928}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6324EAB4-058A-4D80-8D99-5DFB7AEA8928}.Release|Any CPU.Build.0 = Release|Any CPU + {5CE6447B-ECCE-461C-918D-A37A7ACDF2AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5CE6447B-ECCE-461C-918D-A37A7ACDF2AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5CE6447B-ECCE-461C-918D-A37A7ACDF2AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5CE6447B-ECCE-461C-918D-A37A7ACDF2AC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {AC1A1515-70D8-42E4-9B19-A72F739E974C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E0C4E267-B1D6-463B-9C95-8C0D3C335924} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {36A0298D-E01E-411D-A19B-19EEC60B9A8A} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {09BA10C4-8B7A-4713-932F-5439A0964A93} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DC3F0B38-F32E-4F1E-9FC9-B541747AC4F3} + SolutionGuid = {26319C28-068C-4C45-9692-D516A03AA6F0} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.ReaderWriter/System.Xml.ReaderWriter.sln b/src/libraries/System.Xml.ReaderWriter/System.Xml.ReaderWriter.sln index bda1c0aff3f6..033b7036ab6c 100644 --- a/src/libraries/System.Xml.ReaderWriter/System.Xml.ReaderWriter.sln +++ b/src/libraries/System.Xml.ReaderWriter/System.Xml.ReaderWriter.sln @@ -1,48 +1,42 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.ReaderWriter", "src\System.Xml.ReaderWriter.csproj", "{C559743A-762E-4D9D-B986-E77BDB97652E}" - ProjectSection(ProjectDependencies) = postProject - {6F785D18-A969-4DB9-AB45-DD294839087D} = {6F785D18-A969-4DB9-AB45-DD294839087D} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{4886A8C5-3546-459A-8800-ED0DA91C6B15}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.ReaderWriter", "ref\System.Xml.ReaderWriter.csproj", "{6F785D18-A969-4DB9-AB45-DD294839087D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.ReaderWriter", "ref\System.Xml.ReaderWriter.csproj", "{2FE5F437-4CE1-4A27-8547-B950F8043D89}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.ReaderWriter", "src\System.Xml.ReaderWriter.csproj", "{FA7C251C-D1FD-45C3-8CC8-D094F70A03AA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{46194C7F-6456-4EF8-8D88-98315E7B6418}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{6BF38109-85EC-4409-BFEA-7B2DAB946024}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{DE97B555-0DDC-42D4-98D3-2B00A532B6CF}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {4886A8C5-3546-459A-8800-ED0DA91C6B15} = {46194C7F-6456-4EF8-8D88-98315E7B6418} + {FA7C251C-D1FD-45C3-8CC8-D094F70A03AA} = {46194C7F-6456-4EF8-8D88-98315E7B6418} + {2FE5F437-4CE1-4A27-8547-B950F8043D89} = {DE97B555-0DDC-42D4-98D3-2B00A532B6CF} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C559743A-762E-4D9D-B986-E77BDB97652E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C559743A-762E-4D9D-B986-E77BDB97652E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C559743A-762E-4D9D-B986-E77BDB97652E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C559743A-762E-4D9D-B986-E77BDB97652E}.Release|Any CPU.Build.0 = Release|Any CPU - {6F785D18-A969-4DB9-AB45-DD294839087D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6F785D18-A969-4DB9-AB45-DD294839087D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6F785D18-A969-4DB9-AB45-DD294839087D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6F785D18-A969-4DB9-AB45-DD294839087D}.Release|Any CPU.Build.0 = Release|Any CPU - {6BF38109-85EC-4409-BFEA-7B2DAB946024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6BF38109-85EC-4409-BFEA-7B2DAB946024}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6BF38109-85EC-4409-BFEA-7B2DAB946024}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6BF38109-85EC-4409-BFEA-7B2DAB946024}.Release|Any CPU.Build.0 = Release|Any CPU + {4886A8C5-3546-459A-8800-ED0DA91C6B15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4886A8C5-3546-459A-8800-ED0DA91C6B15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4886A8C5-3546-459A-8800-ED0DA91C6B15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4886A8C5-3546-459A-8800-ED0DA91C6B15}.Release|Any CPU.Build.0 = Release|Any CPU + {2FE5F437-4CE1-4A27-8547-B950F8043D89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2FE5F437-4CE1-4A27-8547-B950F8043D89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2FE5F437-4CE1-4A27-8547-B950F8043D89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2FE5F437-4CE1-4A27-8547-B950F8043D89}.Release|Any CPU.Build.0 = Release|Any CPU + {FA7C251C-D1FD-45C3-8CC8-D094F70A03AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA7C251C-D1FD-45C3-8CC8-D094F70A03AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA7C251C-D1FD-45C3-8CC8-D094F70A03AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA7C251C-D1FD-45C3-8CC8-D094F70A03AA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C559743A-762E-4D9D-B986-E77BDB97652E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {6F785D18-A969-4DB9-AB45-DD294839087D} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {6BF38109-85EC-4409-BFEA-7B2DAB946024} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D394A911-8F2F-446B-B9F2-6B075160DF6A} + SolutionGuid = {B00449BC-6738-4BD0-A908-5DE1002A348C} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.ReaderWriter/ref/System.Xml.ReaderWriter.cs b/src/libraries/System.Xml.ReaderWriter/ref/System.Xml.ReaderWriter.cs index ef1f8e22a2f4..ddbf60bfb624 100644 --- a/src/libraries/System.Xml.ReaderWriter/ref/System.Xml.ReaderWriter.cs +++ b/src/libraries/System.Xml.ReaderWriter/ref/System.Xml.ReaderWriter.cs @@ -1138,7 +1138,9 @@ public partial class XmlUrlResolver : System.Xml.XmlResolver { public XmlUrlResolver() { } public System.Net.Cache.RequestCachePolicy CachePolicy { set { } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public override System.Net.ICredentials? Credentials { set { } } + [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public System.Net.IWebProxy? Proxy { set { } } public override object? GetEntity(System.Uri absoluteUri, string? role, System.Type? ofObjectToReturn) { throw null; } public override System.Threading.Tasks.Task GetEntityAsync(System.Uri absoluteUri, string? role, System.Type? ofObjectToReturn) { throw null; } diff --git a/src/libraries/System.Xml.XDocument/System.Xml.XDocument.sln b/src/libraries/System.Xml.XDocument/System.Xml.XDocument.sln index f76ae08202fc..0326fe7a7b06 100644 --- a/src/libraries/System.Xml.XDocument/System.Xml.XDocument.sln +++ b/src/libraries/System.Xml.XDocument/System.Xml.XDocument.sln @@ -1,55 +1,49 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XDocument", "src\System.Xml.XDocument.csproj", "{442C5A88-29C2-4B00-B1DF-730D646D3861}" - ProjectSection(ProjectDependencies) = postProject - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225} = {506A8ECB-E5B4-4F10-8419-26A0EC7AB225} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "..\System.Private.Xml.Linq\src\System.Private.Xml.Linq.csproj", "{09DBC219-3DE1-40E1-ABD2-CD972410F03E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XDocument", "ref\System.Xml.XDocument.csproj", "{506A8ECB-E5B4-4F10-8419-26A0EC7AB225}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{CE19D781-5542-4024-9829-FE589BA93146}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XDocument", "ref\System.Xml.XDocument.csproj", "{1516AD95-61E7-40F6-A9A8-59A6E8A0467A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XDocument", "src\System.Xml.XDocument.csproj", "{B229C42C-204A-43B4-AB71-587AD46F927E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "..\System.Private.Xml.Linq\src\System.Private.Xml.Linq.csproj", "{C5273844-69B0-429C-92B8-0BBDC5C7562F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0503C121-0F76-4207-86E6-03C409D4DEA4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{B31AAA00-76C3-45EA-9B6F-5996EAFCE73B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{96EF6C6D-D8A4-4410-93FC-951EC70589F3}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {09DBC219-3DE1-40E1-ABD2-CD972410F03E} = {0503C121-0F76-4207-86E6-03C409D4DEA4} + {CE19D781-5542-4024-9829-FE589BA93146} = {0503C121-0F76-4207-86E6-03C409D4DEA4} + {B229C42C-204A-43B4-AB71-587AD46F927E} = {0503C121-0F76-4207-86E6-03C409D4DEA4} + {1516AD95-61E7-40F6-A9A8-59A6E8A0467A} = {96EF6C6D-D8A4-4410-93FC-951EC70589F3} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {442C5A88-29C2-4B00-B1DF-730D646D3861}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {442C5A88-29C2-4B00-B1DF-730D646D3861}.Debug|Any CPU.Build.0 = Debug|Any CPU - {442C5A88-29C2-4B00-B1DF-730D646D3861}.Release|Any CPU.ActiveCfg = Release|Any CPU - {442C5A88-29C2-4B00-B1DF-730D646D3861}.Release|Any CPU.Build.0 = Release|Any CPU - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225}.Debug|Any CPU.Build.0 = Debug|Any CPU - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225}.Release|Any CPU.ActiveCfg = Release|Any CPU - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225}.Release|Any CPU.Build.0 = Release|Any CPU - {C5273844-69B0-429C-92B8-0BBDC5C7562F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5273844-69B0-429C-92B8-0BBDC5C7562F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5273844-69B0-429C-92B8-0BBDC5C7562F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5273844-69B0-429C-92B8-0BBDC5C7562F}.Release|Any CPU.Build.0 = Release|Any CPU - {B31AAA00-76C3-45EA-9B6F-5996EAFCE73B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B31AAA00-76C3-45EA-9B6F-5996EAFCE73B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B31AAA00-76C3-45EA-9B6F-5996EAFCE73B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B31AAA00-76C3-45EA-9B6F-5996EAFCE73B}.Release|Any CPU.Build.0 = Release|Any CPU + {09DBC219-3DE1-40E1-ABD2-CD972410F03E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09DBC219-3DE1-40E1-ABD2-CD972410F03E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09DBC219-3DE1-40E1-ABD2-CD972410F03E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09DBC219-3DE1-40E1-ABD2-CD972410F03E}.Release|Any CPU.Build.0 = Release|Any CPU + {CE19D781-5542-4024-9829-FE589BA93146}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE19D781-5542-4024-9829-FE589BA93146}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE19D781-5542-4024-9829-FE589BA93146}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE19D781-5542-4024-9829-FE589BA93146}.Release|Any CPU.Build.0 = Release|Any CPU + {1516AD95-61E7-40F6-A9A8-59A6E8A0467A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1516AD95-61E7-40F6-A9A8-59A6E8A0467A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1516AD95-61E7-40F6-A9A8-59A6E8A0467A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1516AD95-61E7-40F6-A9A8-59A6E8A0467A}.Release|Any CPU.Build.0 = Release|Any CPU + {B229C42C-204A-43B4-AB71-587AD46F927E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B229C42C-204A-43B4-AB71-587AD46F927E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B229C42C-204A-43B4-AB71-587AD46F927E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B229C42C-204A-43B4-AB71-587AD46F927E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {442C5A88-29C2-4B00-B1DF-730D646D3861} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {506A8ECB-E5B4-4F10-8419-26A0EC7AB225} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {C5273844-69B0-429C-92B8-0BBDC5C7562F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {B31AAA00-76C3-45EA-9B6F-5996EAFCE73B} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7D65CA50-781D-47DB-B000-870C0E0ED32E} + SolutionGuid = {E25A5CFF-8135-4023-9954-63B182032639} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.XDocument/ref/System.Xml.XDocument.cs b/src/libraries/System.Xml.XDocument/ref/System.Xml.XDocument.cs index f43da1b82697..2e03c245bb4e 100644 --- a/src/libraries/System.Xml.XDocument/ref/System.Xml.XDocument.cs +++ b/src/libraries/System.Xml.XDocument/ref/System.Xml.XDocument.cs @@ -214,8 +214,7 @@ public partial class XDocumentType : System.Xml.Linq.XNode { public XDocumentType(string name, string? publicId, string? systemId, string? internalSubset) { } public XDocumentType(System.Xml.Linq.XDocumentType other) { } - [System.Diagnostics.CodeAnalysis.AllowNull] - public string InternalSubset { get { throw null; } set { } } + public string? InternalSubset { get { throw null; } set { } } public string Name { get { throw null; } set { } } public override System.Xml.XmlNodeType NodeType { get { throw null; } } public string? PublicId { get { throw null; } set { } } diff --git a/src/libraries/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.sln b/src/libraries/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.sln index f5f7c70e845a..f05e56119a8f 100644 --- a/src/libraries/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.sln +++ b/src/libraries/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.sln @@ -1,55 +1,49 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument", "src\System.Xml.XPath.XDocument.csproj", "{DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5}" - ProjectSection(ProjectDependencies) = postProject - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092} = {F44BEAB4-EDDB-497B-B15C-11E8DFB94092} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "..\System.Private.Xml.Linq\src\System.Private.Xml.Linq.csproj", "{A03326C2-C437-44C6-91C5-07AA8F24D51C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument", "ref\System.Xml.XPath.XDocument.csproj", "{F44BEAB4-EDDB-497B-B15C-11E8DFB94092}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{C1BE1D97-D078-4882-A772-C3CA11FD1F73}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument", "ref\System.Xml.XPath.XDocument.csproj", "{E0E5B798-30CC-4D39-B164-C009141E2ABC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XDocument", "src\System.Xml.XPath.XDocument.csproj", "{D52C68D2-B6DD-4FFB-B3B5-011B76733202}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{E0E66923-602E-4629-8886-3C8118644D09}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E5B2BE2B-B7CC-4CAB-BF3E-9AFCCA5F8A15}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml.Linq", "..\System.Private.Xml.Linq\src\System.Private.Xml.Linq.csproj", "{0E7066DB-D05A-48C5-ADDD-027FEB658D9C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{83432D9A-61B9-470F-A3EC-AC125DCCFAA9}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {A03326C2-C437-44C6-91C5-07AA8F24D51C} = {E5B2BE2B-B7CC-4CAB-BF3E-9AFCCA5F8A15} + {C1BE1D97-D078-4882-A772-C3CA11FD1F73} = {E5B2BE2B-B7CC-4CAB-BF3E-9AFCCA5F8A15} + {D52C68D2-B6DD-4FFB-B3B5-011B76733202} = {E5B2BE2B-B7CC-4CAB-BF3E-9AFCCA5F8A15} + {E0E5B798-30CC-4D39-B164-C009141E2ABC} = {83432D9A-61B9-470F-A3EC-AC125DCCFAA9} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5}.Release|Any CPU.Build.0 = Release|Any CPU - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092}.Release|Any CPU.Build.0 = Release|Any CPU - {E0E66923-602E-4629-8886-3C8118644D09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0E66923-602E-4629-8886-3C8118644D09}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0E66923-602E-4629-8886-3C8118644D09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0E66923-602E-4629-8886-3C8118644D09}.Release|Any CPU.Build.0 = Release|Any CPU - {0E7066DB-D05A-48C5-ADDD-027FEB658D9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0E7066DB-D05A-48C5-ADDD-027FEB658D9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0E7066DB-D05A-48C5-ADDD-027FEB658D9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0E7066DB-D05A-48C5-ADDD-027FEB658D9C}.Release|Any CPU.Build.0 = Release|Any CPU + {A03326C2-C437-44C6-91C5-07AA8F24D51C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A03326C2-C437-44C6-91C5-07AA8F24D51C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A03326C2-C437-44C6-91C5-07AA8F24D51C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A03326C2-C437-44C6-91C5-07AA8F24D51C}.Release|Any CPU.Build.0 = Release|Any CPU + {C1BE1D97-D078-4882-A772-C3CA11FD1F73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1BE1D97-D078-4882-A772-C3CA11FD1F73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1BE1D97-D078-4882-A772-C3CA11FD1F73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1BE1D97-D078-4882-A772-C3CA11FD1F73}.Release|Any CPU.Build.0 = Release|Any CPU + {E0E5B798-30CC-4D39-B164-C009141E2ABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0E5B798-30CC-4D39-B164-C009141E2ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0E5B798-30CC-4D39-B164-C009141E2ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0E5B798-30CC-4D39-B164-C009141E2ABC}.Release|Any CPU.Build.0 = Release|Any CPU + {D52C68D2-B6DD-4FFB-B3B5-011B76733202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D52C68D2-B6DD-4FFB-B3B5-011B76733202}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D52C68D2-B6DD-4FFB-B3B5-011B76733202}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D52C68D2-B6DD-4FFB-B3B5-011B76733202}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {DAA1EA56-C318-4D2E-AB8D-1AB87D9F98F5} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {F44BEAB4-EDDB-497B-B15C-11E8DFB94092} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {E0E66923-602E-4629-8886-3C8118644D09} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {0E7066DB-D05A-48C5-ADDD-027FEB658D9C} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {895DF830-8667-4661-9AA4-E7F9E6C34D73} + SolutionGuid = {AC5CC49B-D68E-4B1E-8C4B-ECBE2F5E3AED} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.XPath/System.Xml.XPath.sln b/src/libraries/System.Xml.XPath/System.Xml.XPath.sln index 7d64e6855110..9aa6a12b9b35 100644 --- a/src/libraries/System.Xml.XPath/System.Xml.XPath.sln +++ b/src/libraries/System.Xml.XPath/System.Xml.XPath.sln @@ -1,48 +1,42 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath", "src\System.Xml.XPath.csproj", "{783F801D-50DE-45B1-B8BE-C36A1F5049F1}" - ProjectSection(ProjectDependencies) = postProject - {A3B3FF23-D123-4F5A-8618-5128B18987C5} = {A3B3FF23-D123-4F5A-8618-5128B18987C5} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{B7D48F78-4580-4398-A93F-FD02A15AD0BD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath", "ref\System.Xml.XPath.csproj", "{A3B3FF23-D123-4F5A-8618-5128B18987C5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath", "ref\System.Xml.XPath.csproj", "{38040AE0-59E4-46CE-861D-A33A383BB0FC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath", "src\System.Xml.XPath.csproj", "{F825C114-FF6D-4826-BC8A-586246369695}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BB1DEC66-E05D-414F-974B-6287EE7CB9CF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{F6E1C6DF-ADD6-4634-88E1-A51872A1CF96}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {B7D48F78-4580-4398-A93F-FD02A15AD0BD} = {BB1DEC66-E05D-414F-974B-6287EE7CB9CF} + {F825C114-FF6D-4826-BC8A-586246369695} = {BB1DEC66-E05D-414F-974B-6287EE7CB9CF} + {38040AE0-59E4-46CE-861D-A33A383BB0FC} = {F6E1C6DF-ADD6-4634-88E1-A51872A1CF96} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {783F801D-50DE-45B1-B8BE-C36A1F5049F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {783F801D-50DE-45B1-B8BE-C36A1F5049F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {783F801D-50DE-45B1-B8BE-C36A1F5049F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {783F801D-50DE-45B1-B8BE-C36A1F5049F1}.Release|Any CPU.Build.0 = Release|Any CPU - {A3B3FF23-D123-4F5A-8618-5128B18987C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3B3FF23-D123-4F5A-8618-5128B18987C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3B3FF23-D123-4F5A-8618-5128B18987C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3B3FF23-D123-4F5A-8618-5128B18987C5}.Release|Any CPU.Build.0 = Release|Any CPU - {A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE}.Release|Any CPU.Build.0 = Release|Any CPU + {B7D48F78-4580-4398-A93F-FD02A15AD0BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7D48F78-4580-4398-A93F-FD02A15AD0BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7D48F78-4580-4398-A93F-FD02A15AD0BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7D48F78-4580-4398-A93F-FD02A15AD0BD}.Release|Any CPU.Build.0 = Release|Any CPU + {38040AE0-59E4-46CE-861D-A33A383BB0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38040AE0-59E4-46CE-861D-A33A383BB0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38040AE0-59E4-46CE-861D-A33A383BB0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38040AE0-59E4-46CE-861D-A33A383BB0FC}.Release|Any CPU.Build.0 = Release|Any CPU + {F825C114-FF6D-4826-BC8A-586246369695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F825C114-FF6D-4826-BC8A-586246369695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F825C114-FF6D-4826-BC8A-586246369695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F825C114-FF6D-4826-BC8A-586246369695}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {783F801D-50DE-45B1-B8BE-C36A1F5049F1} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {A3B3FF23-D123-4F5A-8618-5128B18987C5} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {A7BF3BB6-1D0A-431F-A4E6-135E6257EDCE} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D9A010CC-3ADD-49CA-8F5B-93D3B4C48E97} + SolutionGuid = {DF8F269A-6F5E-4DE2-A0D7-6852F6470D4C} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.XmlDocument/System.Xml.XmlDocument.sln b/src/libraries/System.Xml.XmlDocument/System.Xml.XmlDocument.sln index 186be500ee2f..86c14e66335f 100644 --- a/src/libraries/System.Xml.XmlDocument/System.Xml.XmlDocument.sln +++ b/src/libraries/System.Xml.XmlDocument/System.Xml.XmlDocument.sln @@ -1,48 +1,42 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument", "src\System.Xml.XmlDocument.csproj", "{EC0F9F33-3D4E-470A-90E6-AE9D005F023A}" - ProjectSection(ProjectDependencies) = postProject - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E} = {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{733E5502-5F1A-4ECC-8C44-0E057B11437D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument", "ref\System.Xml.XmlDocument.csproj", "{DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument", "ref\System.Xml.XmlDocument.csproj", "{9FA44EA8-BEDA-412E-A366-9334FDBA77A9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlDocument", "src\System.Xml.XmlDocument.csproj", "{8656FF2F-1024-4D56-B38C-F99BE27B732D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2AF6C583-07EB-4E6D-9DE0-8DA4ADD98CB4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{7ECF0E1E-ABCA-4E1A-9353-C311279DA82F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{848E7A87-B1DC-41C3-845B-7FCF44C59219}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {733E5502-5F1A-4ECC-8C44-0E057B11437D} = {2AF6C583-07EB-4E6D-9DE0-8DA4ADD98CB4} + {8656FF2F-1024-4D56-B38C-F99BE27B732D} = {2AF6C583-07EB-4E6D-9DE0-8DA4ADD98CB4} + {9FA44EA8-BEDA-412E-A366-9334FDBA77A9} = {848E7A87-B1DC-41C3-845B-7FCF44C59219} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EC0F9F33-3D4E-470A-90E6-AE9D005F023A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC0F9F33-3D4E-470A-90E6-AE9D005F023A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC0F9F33-3D4E-470A-90E6-AE9D005F023A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC0F9F33-3D4E-470A-90E6-AE9D005F023A}.Release|Any CPU.Build.0 = Release|Any CPU - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E}.Release|Any CPU.Build.0 = Release|Any CPU - {7ECF0E1E-ABCA-4E1A-9353-C311279DA82F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7ECF0E1E-ABCA-4E1A-9353-C311279DA82F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7ECF0E1E-ABCA-4E1A-9353-C311279DA82F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7ECF0E1E-ABCA-4E1A-9353-C311279DA82F}.Release|Any CPU.Build.0 = Release|Any CPU + {733E5502-5F1A-4ECC-8C44-0E057B11437D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {733E5502-5F1A-4ECC-8C44-0E057B11437D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {733E5502-5F1A-4ECC-8C44-0E057B11437D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {733E5502-5F1A-4ECC-8C44-0E057B11437D}.Release|Any CPU.Build.0 = Release|Any CPU + {9FA44EA8-BEDA-412E-A366-9334FDBA77A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FA44EA8-BEDA-412E-A366-9334FDBA77A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FA44EA8-BEDA-412E-A366-9334FDBA77A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FA44EA8-BEDA-412E-A366-9334FDBA77A9}.Release|Any CPU.Build.0 = Release|Any CPU + {8656FF2F-1024-4D56-B38C-F99BE27B732D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8656FF2F-1024-4D56-B38C-F99BE27B732D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8656FF2F-1024-4D56-B38C-F99BE27B732D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8656FF2F-1024-4D56-B38C-F99BE27B732D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EC0F9F33-3D4E-470A-90E6-AE9D005F023A} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {DFF03D7C-82DF-4E4C-A722-2EFFD844DA7E} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {7ECF0E1E-ABCA-4E1A-9353-C311279DA82F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6A00ACB9-4345-4301-9AEE-A34D09CB1E42} + SolutionGuid = {61A561C5-14D4-487B-B5CF-940E55806DBF} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.XmlSerializer/System.Xml.XmlSerializer.sln b/src/libraries/System.Xml.XmlSerializer/System.Xml.XmlSerializer.sln index 66c1ae3cef23..2ebc4ee00077 100644 --- a/src/libraries/System.Xml.XmlSerializer/System.Xml.XmlSerializer.sln +++ b/src/libraries/System.Xml.XmlSerializer/System.Xml.XmlSerializer.sln @@ -1,48 +1,42 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer", "src\System.Xml.XmlSerializer.csproj", "{D62A6082-5229-4845-8BE9-75753E08C65A}" - ProjectSection(ProjectDependencies) = postProject - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46} = {3F7C5D50-7CDA-44EF-BB05-912D496BAA46} - EndProjectSection +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{EF514C0C-ECA7-419A-BDED-A6735FEA16F9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer", "ref\System.Xml.XmlSerializer.csproj", "{3F7C5D50-7CDA-44EF-BB05-912D496BAA46}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer", "ref\System.Xml.XmlSerializer.csproj", "{A463D0F1-1814-4276-B7A9-59780C755D0A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XmlSerializer", "src\System.Xml.XmlSerializer.csproj", "{67D79968-DF22-4273-B2FA-D3EEC905095C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8737C3AD-DAEC-43CA-935F-1211164262F1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.Xml", "..\System.Private.Xml\src\System.Private.Xml.csproj", "{D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{10671B07-C5EE-43EF-80A2-44124A196835}" EndProject Global + GlobalSection(NestedProjects) = preSolution + {EF514C0C-ECA7-419A-BDED-A6735FEA16F9} = {8737C3AD-DAEC-43CA-935F-1211164262F1} + {67D79968-DF22-4273-B2FA-D3EEC905095C} = {8737C3AD-DAEC-43CA-935F-1211164262F1} + {A463D0F1-1814-4276-B7A9-59780C755D0A} = {10671B07-C5EE-43EF-80A2-44124A196835} + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D62A6082-5229-4845-8BE9-75753E08C65A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D62A6082-5229-4845-8BE9-75753E08C65A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D62A6082-5229-4845-8BE9-75753E08C65A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D62A6082-5229-4845-8BE9-75753E08C65A}.Release|Any CPU.Build.0 = Release|Any CPU - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46}.Release|Any CPU.Build.0 = Release|Any CPU - {D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E}.Release|Any CPU.Build.0 = Release|Any CPU + {EF514C0C-ECA7-419A-BDED-A6735FEA16F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF514C0C-ECA7-419A-BDED-A6735FEA16F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF514C0C-ECA7-419A-BDED-A6735FEA16F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF514C0C-ECA7-419A-BDED-A6735FEA16F9}.Release|Any CPU.Build.0 = Release|Any CPU + {A463D0F1-1814-4276-B7A9-59780C755D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A463D0F1-1814-4276-B7A9-59780C755D0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A463D0F1-1814-4276-B7A9-59780C755D0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A463D0F1-1814-4276-B7A9-59780C755D0A}.Release|Any CPU.Build.0 = Release|Any CPU + {67D79968-DF22-4273-B2FA-D3EEC905095C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67D79968-DF22-4273-B2FA-D3EEC905095C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67D79968-DF22-4273-B2FA-D3EEC905095C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67D79968-DF22-4273-B2FA-D3EEC905095C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {D62A6082-5229-4845-8BE9-75753E08C65A} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {3F7C5D50-7CDA-44EF-BB05-912D496BAA46} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - {D8D6D6CD-3014-4D0D-8DD7-DFCFB49FE58E} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5E74729B-F552-4E3F-9B11-3E121D6A83A0} + SolutionGuid = {24AD78FE-B27D-46DE-B574-17F4CC6DF7CC} EndGlobalSection EndGlobal diff --git a/src/libraries/System.Xml.XmlSerializer/ref/System.Xml.XmlSerializer.Forwards.cs b/src/libraries/System.Xml.XmlSerializer/ref/System.Xml.XmlSerializer.Forwards.cs index 17d94a56e9e5..baf952178143 100644 --- a/src/libraries/System.Xml.XmlSerializer/ref/System.Xml.XmlSerializer.Forwards.cs +++ b/src/libraries/System.Xml.XmlSerializer/ref/System.Xml.XmlSerializer.Forwards.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // ------------------------------------------------------------------------------ -// Changes to this file must follow the http://aka.ms/api-review process. +// Changes to this file must follow the https://aka.ms/api-review process. // ------------------------------------------------------------------------------ [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Xml.Serialization.IXmlSerializable))] diff --git a/src/libraries/UpdateLibrariesSlns.ps1 b/src/libraries/UpdateLibrariesSlns.ps1 new file mode 100644 index 000000000000..de8ba885b05d --- /dev/null +++ b/src/libraries/UpdateLibrariesSlns.ps1 @@ -0,0 +1,24 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. + +$ProjContent = @' + + + false + + + + + + + +'@ + +foreach ($file in Get-ChildItem *\*.sln) +{ + $ProjFilePath = "$(Join-Path $file.DirectoryName $file.BaseName).proj" + + $ProjContent | Out-File -FilePath $ProjFilePath + dotnet slngen "$ProjFilePath -p SlnGenMainProject=$($file.BaseName) --launch false --nologo" + Remove-Item $ProjFilePath +} diff --git a/src/libraries/externals.csproj b/src/libraries/externals.csproj index 20eb5e92624e..1fece622cdb5 100644 --- a/src/libraries/externals.csproj +++ b/src/libraries/externals.csproj @@ -30,7 +30,7 @@ true - false + false + false diff --git a/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/net/DisableVerifyClosure.targets b/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/net/DisableVerifyClosure.targets deleted file mode 100644 index a5776c439144..000000000000 --- a/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/net/DisableVerifyClosure.targets +++ /dev/null @@ -1,7 +0,0 @@ - - - - false - - \ No newline at end of file diff --git a/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/netcoreapp/DisableVerifyClosure.targets b/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/netcoreapp/DisableVerifyClosure.targets deleted file mode 100644 index a5776c439144..000000000000 --- a/src/libraries/pkg/test/packageSettings/System.Utf8String.Experimental/netcoreapp/DisableVerifyClosure.targets +++ /dev/null @@ -1,7 +0,0 @@ - - - - false - - \ No newline at end of file diff --git a/src/libraries/shims/ApiCompatBaseline.PreviousNetCoreApp.txt b/src/libraries/shims/ApiCompatBaseline.PreviousNetCoreApp.txt index a8d1145db398..00f5742042d1 100644 --- a/src/libraries/shims/ApiCompatBaseline.PreviousNetCoreApp.txt +++ b/src/libraries/shims/ApiCompatBaseline.PreviousNetCoreApp.txt @@ -1,8 +1,18 @@ -Compat issues with assembly System.Diagnostics.Process: +Compat issues with assembly netstandard: +CannotChangeAttribute : Attribute 'System.ComponentModel.DesignerAttribute' on 'System.ComponentModel.IComponent' changed from '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the contract to '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the implementation. +CannotRemoveAttribute : Attribute 'System.ComponentModel.DesignerAttribute' exists on 'System.ComponentModel.MarshalByValueComponent' in the contract but not the implementation. CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MaxWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MinWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. +Compat issues with assembly System: +CannotChangeAttribute : Attribute 'System.ComponentModel.DesignerAttribute' on 'System.ComponentModel.IComponent' changed from '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the contract to '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the implementation. +CannotRemoveAttribute : Attribute 'System.ComponentModel.DesignerAttribute' exists on 'System.ComponentModel.MarshalByValueComponent' in the contract but not the implementation. CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MaxWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MinWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. +Compat issues with assembly System.ComponentModel.Primitives: +CannotChangeAttribute : Attribute 'System.ComponentModel.DesignerAttribute' on 'System.ComponentModel.IComponent' changed from '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the contract to '[DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]' in the implementation. +Compat issues with assembly System.ComponentModel.TypeConverter: +CannotRemoveAttribute : Attribute 'System.ComponentModel.DesignerAttribute' exists on 'System.ComponentModel.MarshalByValueComponent' in the contract but not the implementation. +Compat issues with assembly System.Diagnostics.Process: CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MaxWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. CannotChangeAttribute : Attribute 'System.Runtime.Versioning.SupportedOSPlatformAttribute' on 'System.Diagnostics.Process.MinWorkingSet.set(System.IntPtr)' changed from '[SupportedOSPlatformAttribute("windows")]' in the contract to '[SupportedOSPlatformAttribute("freebsd")]' in the implementation. Compat issues with assembly System.Net.Http: @@ -13,4 +23,4 @@ MembersMustExist : Member 'public void System.Net.Http.SocketsHttpHandler.Plaint Compat issues with assembly System.Net.Primitives: TypesMustExist : Type 'System.Net.NetworkError' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.NetworkException' does not exist in the implementation but it does exist in the contract. -Total Issues: 12 \ No newline at end of file +Total Issues: 18 diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 511f7f68fe00..7a57738a2f7b 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -157,7 +157,6 @@ - diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index bbc2963fc7e1..310d2ba0d53f 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -1,12 +1,15 @@ cmake_minimum_required(VERSION 3.14.5) +if (CMAKE_VERSION VERSION_GREATER 3.15 OR CMAKE_VERSION VERSION_EQUAL 3.15) + cmake_policy(SET CMP0091 NEW) +endif() + project(mono) include(GNUInstallDirs) include(CheckIncludeFile) include(CheckFunctionExists) include(TestBigEndian) -include(FindPkgConfig) include(CheckCCompilerFlag) include("cmake/QuietOSXRanlib.cmake") @@ -30,8 +33,6 @@ endfunction() # User options include(options) -# Header/function checks -include(configure) function(process_enable_minimal) string(REPLACE "," ";" tmp1 "${ENABLE_MINIMAL}") @@ -45,16 +46,23 @@ if(ENABLE_MINIMAL) process_enable_minimal() endif() -execute_process( - COMMAND grep ^MONO_CORLIB_VERSION= ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac - COMMAND cut -d = -f 2 - OUTPUT_VARIABLE CORLIB_VERSION_OUT -) -if(CORLIB_VERSION_OUT STREQUAL "") - message(FATAL_ERROR) -endif() -string(STRIP "${CORLIB_VERSION_OUT}" MONO_CORLIB_VERSION_BASE) -set(MONO_CORLIB_VERSION "\"${MONO_CORLIB_VERSION_BASE}\"") +function(extract_mono_corlib_version) + file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac corlib_version_line REGEX ^MONO_CORLIB_VERSION=) + + if(corlib_version_line STREQUAL "") + message(FATAL_ERROR "Couldn't find MONO_CORLIB_VERSION from configure.ac") + endif() + + string(REGEX REPLACE "MONO_CORLIB_VERSION=([0-9a-fA-F\-]+)" "\\1" corlib_version ${corlib_version_line}) + + if(corlib_version STREQUAL "") + message(FATAL_ERROR "Couldn't parse corlib version") + endif() + + set(MONO_CORLIB_VERSION "\"${corlib_version}\"" PARENT_SCOPE) +endfunction() + +extract_mono_corlib_version() if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/mono.proj") set(ENABLE_NETCORE 1) @@ -96,31 +104,26 @@ if(ENABLE_LAZY_GC_THREAD_CREATION) set(LAZY_GC_THREAD_CREATION 1) endif() -#FIXME: -set(VERSION "\"\"") set(DISABLED_FEATURES "\"\"") if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")) set(GCC 1) endif() -add_definitions(-g) add_definitions(-DHAVE_CONFIG_H) -add_definitions(-D_THREAD_SAFE) +add_definitions(-DMONO_DLL_EXPORT) if(GCC) + add_definitions(-g) # TODO: should this really be on by default? add_definitions(-fPIC) - add_definitions(-DMONO_DLL_EXPORT) add_definitions(-fvisibility=hidden) + set(USE_GCC_ATOMIC_OPS 1) endif() -set(USE_GCC_ATOMIC_OPS 1) set(HAVE_CLASSIC_WINAPI_SUPPORT 1) set(HAVE_MOVING_COLLECTOR 1) set(HAVE_CONC_GC_AS_DEFAULT 1) set(MONO_INSIDE_RUNTIME 1) -# FIXME: -set(NAME_DEV_RANDOM "/dev/random") ###################################### # AOT CROSS COMPILER SUPPORT @@ -155,39 +158,6 @@ if(NOT AOT_TARGET_TRIPLE STREQUAL "") endif() endif() -###################################### -# GCC CHECKS -###################################### - -if(GCC) - # We require C99 with some GNU extensions, e.g. `linux` macro - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") - # The runtime code does not respect ANSI C strict aliasing rules - append("-fno-strict-aliasing" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - # We rely on signed overflow to behave - append("-fwrapv" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - - set(WARNINGS "-Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -Wno-unused-function") - - if (CMAKE_C_COMPILER_ID MATCHES "Clang") - set(WARNINGS "${WARNINGS} -Qunused-arguments -Wno-tautological-compare -Wno-parentheses-equality -Wno-self-assign -Wno-return-stack-address -Wno-constant-logical-operand -Wno-zero-length-array") - endif() - - check_c_compiler_flag("-Werror=incompatible-pointer-types" WERROR_INCOMPATIBLE_POINTER_TYPES) - if(WERROR_INCOMPATIBLE_POINTER_TYPES) - set(WERROR "-Werror=incompatible-pointer-types") - endif() - set(WERROR "-Werror=return-type -Werror-implicit-function-declaration") - - append("${WARNINGS} ${WERROR}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - - set(MONO_ZERO_LEN_ARRAY 0) - - if(ENABLE_WERROR) - append("-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - endif() -endif() - ###################################### # HOST OS CHECKS ###################################### @@ -197,6 +167,7 @@ message ("CMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") add_definitions(-D_THREAD_SAFE) set(HOST_DARWIN 1) + set(HOST_OSX 1) set(PTHREAD_POINTER_ID 1) set(USE_MACH_SEMA 1) elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS" OR CMAKE_SYSTEM_NAME STREQUAL "tvOS") @@ -206,40 +177,26 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS" OR CMAKE_SYSTEM_NAME STREQUAL "tvOS") add_definitions(-D_THREAD_SAFE) set(HOST_DARWIN 1) set(HOST_IOS 1) + if(CMAKE_SYSTEM_NAME STREQUAL "tvOS") + set(HOST_TVOS 1) + endif() set(PTHREAD_POINTER_ID 1) set(USE_MACH_SEMA 1) set(DISABLE_EXECUTABLES 1) set(DISABLE_CRASH_REPORTING 1) set(ENABLE_MONOTOUCH 1) add_definitions(-DMONOTOUCH=1) - set(HAVE_SYSTEM 0) - if(CMAKE_SYSTEM_NAME STREQUAL "tvOS") - set(HOST_TVOS 1) - endif() - - # Force some defines - set(HAVE_GETPWUID_R 0) - set(HAVE_SYS_USER_H 0) - set(HAVE_GETENTROPY 0) - if(CMAKE_SYSTEM_NAME STREQUAL "tvOS") - set(HAVE_PTHREAD_KILL 0) - set(HAVE_KILL 0) - set(HAVE_SIGACTION 0) - set(HAVE_FORK 0) - set(HAVE_EXECV 0) - set(HAVE_EXECVE 0) - set(HAVE_EXECVP 0) - set(HAVE_SIGNAL 0) - endif() add_definitions("-DSMALL_CONFIG") add_definitions("-D_XOPEN_SOURCE") add_definitions("-DHAVE_LARGE_FILE_SUPPORT=1") elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(HOST_LINUX 1) add_definitions(-D_GNU_SOURCE -D_REENTRANT) + add_definitions(-D_THREAD_SAFE) elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") set(HOST_LINUX 1) add_definitions(-D_GNU_SOURCE -D_REENTRANT) + add_definitions(-D_THREAD_SAFE) # The normal check fails because it uses --isystem /sysroot/usr/include set(HAVE_USR_INCLUDE_MALLOC_H 1) set(HOST_ANDROID 1) @@ -252,6 +209,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") set(HAVE_SCHED_SETAFFINITY 0) # FIXME: Rest of the flags from configure.ac elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") + add_definitions(-D_THREAD_SAFE) set(HOST_WASM 1) set(TARGET_ARCH "wasm") # CMAKE_SYSTEM_PROCESSOR is set to x86 @@ -261,6 +219,28 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") set(DISABLE_SHARED_LIBS 1) # sys/random.h exists, but its not found set(HAVE_SYS_RANDOM_H 1) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(HOST_WIN32 1) + set(DISABLE_CRASH_REPORTING 1) + set(DISABLE_PORTABILITY 1) + set(HOST_NO_SYMLINKS 1) + set(MONO_KEYWORD_THREAD "__declspec (thread)") + set(MONO_ZERO_LEN_ARRAY 1) + + # FIXME: disable SIMD support for Windows, see https://github.com/dotnet/runtime/issues/1933 + set(DISABLE_SIMD 1) + + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") # statically link VC runtime library + add_compile_options(/W3) # set warning level 3 + add_compile_options(/EHsc) # set exception handling behavior + add_compile_options(/FC) # use full pathnames in diagnostics + if(CMAKE_BUILD_TYPE STREQUAL "Release") + add_compile_options(/Oi) # enable intrinsics + add_compile_options(/GF) # enable string pooling + add_compile_options(/Zi) # enable debugging information + add_compile_options(/GL) # whole program optimization + add_link_options(/LTCG) # link-time code generation + endif() else() message(FATAL_ERROR "Host '${CMAKE_SYSTEM_NAME}' not supported.") endif() @@ -276,13 +256,21 @@ endif() if(TARGET_SYSTEM_NAME STREQUAL "Darwin") set(TARGET_MACH 1) set(TARGET_OSX 1) + set(TARGET_DARWIN 1) if (GC_SUSPEND STREQUAL "default") set(GC_SUSPEND "hybrid") endif() elseif(TARGET_SYSTEM_NAME STREQUAL "iOS" OR TARGET_SYSTEM_NAME STREQUAL "tvOS") set(TARGET_MACH 1) set(TARGET_IOS 1) + set(TARGET_DARWIN 1) + if(TARGET_SYSTEM_NAME STREQUAL "tvOS") + set(TARGET_TVOS 1) + endif() + set(ENABLE_MONOTOUCH 1) + add_definitions(-DMONOTOUCH=1) elseif(TARGET_SYSTEM_NAME STREQUAL "Linux") + set(TARGET_LINUX 1) elseif(TARGET_SYSTEM_NAME STREQUAL "Android") set(TARGET_ANDROID 1) elseif(TARGET_SYSTEM_NAME STREQUAL "Emscripten") @@ -290,6 +278,8 @@ elseif(TARGET_SYSTEM_NAME STREQUAL "Emscripten") if (CMAKE_BUILD_TYPE STREQUAL "Release") add_compile_options(-Os) endif() +elseif(TARGET_SYSTEM_NAME STREQUAL "Windows") + set(TARGET_WIN32 1) else() message(FATAL_ERROR "Target '${TARGET_SYSTEM_NAME}' not supported.") endif() @@ -316,7 +306,7 @@ endif() message ("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}") -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") set(HOST_AMD64 1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") set(HOST_X86 1) @@ -344,6 +334,8 @@ elseif(TARGET_ARCH STREQUAL "i686") set(TARGET_ARCH "x86") elseif(TARGET_ARCH STREQUAL "aarch64") set(TARGET_ARCH "arm64") +elseif(TARGET_ARCH STREQUAL "AMD64") + set(TARGET_ARCH "x86_64") endif() message("TARGET_ARCH=${TARGET_ARCH}") @@ -378,6 +370,44 @@ else() message(FATAL_ERROR "TARGET_ARCH='${TARGET_ARCH}' not supported.") endif() +###################################### +# HEADER/FUNCTION CHECKS +###################################### +include(configure) + +###################################### +# GCC CHECKS +###################################### + +if(GCC) + # We require C99 with some GNU extensions, e.g. `linux` macro + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") + # The runtime code does not respect ANSI C strict aliasing rules + append("-fno-strict-aliasing" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + # We rely on signed overflow to behave + append("-fwrapv" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + + set(WARNINGS "-Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -Wno-unused-function") + + if (CMAKE_C_COMPILER_ID MATCHES "Clang") + set(WARNINGS "${WARNINGS} -Qunused-arguments -Wno-tautological-compare -Wno-parentheses-equality -Wno-self-assign -Wno-return-stack-address -Wno-constant-logical-operand -Wno-zero-length-array") + endif() + + check_c_compiler_flag("-Werror=incompatible-pointer-types" WERROR_INCOMPATIBLE_POINTER_TYPES) + if(WERROR_INCOMPATIBLE_POINTER_TYPES) + set(WERROR "-Werror=incompatible-pointer-types") + endif() + set(WERROR "-Werror=return-type -Werror-implicit-function-declaration") + + append("${WARNINGS} ${WERROR}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + + set(MONO_ZERO_LEN_ARRAY 0) + + if(ENABLE_WERROR) + append("-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + endif() +endif() + ###################################### # LLVM CHECKS ###################################### @@ -402,8 +432,8 @@ if(LLVM_PREFIX) set(llvm_config_path "${LLVM_PREFIX}/include/llvm/Config/llvm-config.h") # llvm-config --mono-api-version - find_program(AWK awk mawk gawk) - execute_process(COMMAND /bin/sh -c "\"${AWK}\" '/MONO_API_VERSION/ { print $3 }' ${llvm_config_path}" RESULT_VARIABLE awk_res OUTPUT_VARIABLE llvm_api_version OUTPUT_STRIP_TRAILING_WHITESPACE) + file(STRINGS ${llvm_config_path} llvm_api_version_line REGEX "MONO_API_VERSION ") + string(REGEX REPLACE ".*MONO_API_VERSION ([0-9]+)" "\\1" llvm_api_version ${llvm_api_version_line}) # llvm-config --cflags set(llvm_cflags "-I${LLVM_PREFIX}/include") @@ -444,7 +474,7 @@ if(LLVM_PREFIX) execute_process(COMMAND ${LLVM_CONFIG} --cxxflags OUTPUT_VARIABLE llvm_cxxflags OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND ${LLVM_CONFIG} --system-libs OUTPUT_VARIABLE llvm_system_libs OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND ${LLVM_CONFIG} --libs analysis core bitwriter mcjit orcjit ${llvm_codegen_libs} OUTPUT_VARIABLE llvm_libs OUTPUT_STRIP_TRAILING_WHITESPACE) -endif() + endif() if (${llvm_api_version} LESS 900) message(FATAL_ERROR "LLVM version too old.") @@ -464,7 +494,8 @@ endif() ###################################### set(ICU_SHIM_PATH "../../../libraries/Native/Unix/System.Globalization.Native") if(MONO_CROSS_COMPILE) -elseif(TARGET_OSX) +elseif(HOST_OSX) + include(FindPkgConfig) # FIXME: Handle errors # Defines ICU_INCLUDEDIR/ICU_LIBDIR set(ENV{PKG_CONFIG_PATH} "{$PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig") @@ -472,23 +503,27 @@ elseif(TARGET_OSX) set(OSX_ICU_LIBRARY_PATH /usr/lib/libicucore.dylib) set(ICU_FLAGS "-DTARGET_UNIX -DU_DISABLE_RENAMING -Wno-reserved-id-macro -Wno-documentation -Wno-documentation-unknown-command -Wno-switch-enum -Wno-covered-switch-default -Wno-extra-semi-stmt -Wno-unknown-warning-option -Wno-deprecated-declarations") set(HAVE_SYS_ICU 1) -elseif(TARGET_WASM) +elseif(HOST_WASM) #set(ICU_CFLAGS "-DTARGET_UNIX -DU_DISABLE_RENAMING -DHAVE_UDAT_STANDALONE_SHORTER_WEEKDAYS -DHAVE_SET_MAX_VARIABLE") set(ICU_FLAGS "-DPALEXPORT=\"\" -DTARGET_UNIX -Wno-reserved-id-macro -Wno-documentation -Wno-documentation-unknown-command -Wno-switch-enum -Wno-covered-switch-default -Wno-extra-semi-stmt -Wno-unknown-warning-option") set(HAVE_SYS_ICU 1) set(STATIC_ICU 1) set(ICU_LIBS "icucore") -elseif(TARGET_IOS) +elseif(HOST_IOS) # FIXME: -elseif(TARGET_ANDROID) +elseif(HOST_ANDROID) set(ICU_FLAGS "-DPALEXPORT=\"\" -DHAVE_UDAT_STANDALONE_SHORTER_WEEKDAYS -DHAVE_SET_MAX_VARIABLE -DTARGET_UNIX -DTARGET_ANDROID -Wno-reserved-id-macro -Wno-documentation -Wno-documentation-unknown-command -Wno-switch-enum -Wno-covered-switch-default -Wno-covered-switch-default -Wno-extra-semi-stmt -Wno-unknown-warning-option") set(HAVE_SYS_ICU 1) elseif(HOST_LINUX) + include(FindPkgConfig) pkg_check_modules(ICU icu-uc) set(ICU_FLAGS "-DTARGET_UNIX -DU_DISABLE_RENAMING -Wno-reserved-id-macro -Wno-documentation -Wno-documentation-unknown-command -Wno-switch-enum -Wno-covered-switch-default -Wno-extra-semi-stmt -Wno-unknown-warning-option -Wno-deprecated-declarations") set(HAVE_SYS_ICU 1) +elseif(HOST_WIN32) + set(ICU_FLAGS "-DTARGET_WINDOWS -DPALEXPORT=EXTERN_C") + set(HAVE_SYS_ICU 1) else() - message(FATAL_ERROR "") + message(FATAL_ERROR "Unknown host") endif() ###################################### @@ -511,7 +546,7 @@ set(BREAKPOINT "G_STMT_START { raise(SIGTRAP); } G_STMT_END") if(GCC) set(GNUC_UNUSED "__attribute__((__unused__))") set(GNUC_NORETURN "__attribute__((__noreturn__))") - if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|x86_64") + if(HOST_AMD64 OR HOST_X86) set(BREAKPOINT "G_STMT_START { __asm__(\"int \$03\"); } G_STMT_END") endif() endif() @@ -522,9 +557,11 @@ else() set(ORDER G_LITTLE_ENDIAN) endif() -if(WIN32) - # FIXME: - message(FATAL_ERROR "FIXME") +if(HOST_WIN32) + set(PATHSEP "\\") + set(SEARCHSEP ";") + set(OS "WIN32") + set(PIDTYPE "void *") else() set(PATHSEP "/") set(SEARCHSEP ":") @@ -573,21 +610,51 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug") endif() ### End of debug build checks +###################################### +# OTHER CHECKS +###################################### +if(HOST_WIN32) + set(NAME_DEV_RANDOM "\"\"") +else() + # FIXME: + set(NAME_DEV_RANDOM "\"/dev/random\"") +endif() +### End of other checks + +###################################### +# EXTRACT VERSION +###################################### +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") + file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/_version.h" product_version_string_line REGEX "VER_PRODUCTVERSION_STR ") + string(REGEX REPLACE ".*VER_PRODUCTVERSION_STR *(.*)" "\\1" product_version_string ${product_version_string_line}) +else() + file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/_version.h" product_version_string_line REGEX "sccsid") + string(REGEX REPLACE ".*Version *(.*)\";" "\"\\1\"" product_version_string ${product_version_string_line}) +endif() + +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/runtime_version.h" runtime_version_major_line REGEX "RuntimeProductMajorVersion ") +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/runtime_version.h" runtime_version_minor_line REGEX "RuntimeProductMinorVersion ") +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/runtime_version.h" runtime_version_patch_line REGEX "RuntimeProductPatchVersion ") +string(REGEX REPLACE ".*RuntimeProductMajorVersion *([0-9]+)" "\\1" runtime_version_major ${runtime_version_major_line}) +string(REGEX REPLACE ".*RuntimeProductMinorVersion *([0-9]+)" "\\1" runtime_version_minor ${runtime_version_minor_line}) +string(REGEX REPLACE ".*RuntimeProductPatchVersion *([0-9]+)" "\\1" runtime_version_patch ${runtime_version_patch_line}) + +set(VERSION "\"${runtime_version_major}.${runtime_version_minor}.${runtime_version_patch}.0\"") +set(FULL_VERSION ${product_version_string}) +### End of extract version ###################################### # OS SPECIFIC CHECKS ###################################### -if(ENABLE_NETCORE) - if(TARGET_IOS OR TARGET_ANDROID) - # FIXME: the mobile products use mono_dllmap_insert so allow this - unset(DISABLE_DLLMAP) - else() - set(DISABLE_DLLMAP 1) - endif() +if(TARGET_IOS OR TARGET_ANDROID) + # FIXME: the mobile products use mono_dllmap_insert so allow this + unset(DISABLE_DLLMAP) +else() + set(DISABLE_DLLMAP 1) endif() ### End of OS specific checks add_subdirectory(mono) configure_file(cmake/config.h.in config.h) -configure_file(cmake/eglib-config.h.cmake.in mono/eglib/eglib-config.h) +configure_file(cmake/eglib-config.h.cmake.in mono/eglib/eglib-config.h) # TODO: eglib-config.h is not needed, we're using hardcoded eglib-config.hw diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props index 738bf3c5566c..20f40bcfac59 100644 --- a/src/mono/Directory.Build.props +++ b/src/mono/Directory.Build.props @@ -31,24 +31,6 @@ $(PackageVersion) - - - true - true - true - true - true - true - true - true - true - true - true - true - true - true - - 8.0 @@ -91,9 +73,6 @@ false - - $(NumberOfCores) - strict;nullablePublicOnly diff --git a/src/mono/cmake/config.h.in b/src/mono/cmake/config.h.in index 4dec7609cbf2..a610c55d579b 100644 --- a/src/mono/cmake/config.h.in +++ b/src/mono/cmake/config.h.in @@ -1,3 +1,8 @@ +#ifdef _MSC_VER +#include +#include +#endif + /* Define to the full name of this package. */ #cmakedefine PACKAGE_NAME 1 @@ -463,7 +468,7 @@ #cmakedefine HAVE_NULL_GC 1 /* Length of zero length arrays */ -#cmakedefine MONO_ZERO_LEN_ARRAY 1 +#define MONO_ZERO_LEN_ARRAY @MONO_ZERO_LEN_ARRAY@ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_SIGNAL_H 1 @@ -1018,7 +1023,13 @@ #cmakedefine HAVE_SETPGID 1 /* Define to 1 if you have the `system' function. */ +#ifdef _MSC_VER +#if HAVE_WINAPI_FAMILY_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT) +#cmakedefine HAVE_SYSTEM 1 +#endif +#else #cmakedefine HAVE_SYSTEM 1 +#endif /* Define to 1 if you have the `fork' function. */ #cmakedefine HAVE_FORK 1 @@ -1375,7 +1386,7 @@ #cmakedefine HAVE_EXECVP 1 /* Name of /dev/random */ -#cmakedefine NAME_DEV_RANDOM "@NAME_DEV_RANDOM@" +#define NAME_DEV_RANDOM @NAME_DEV_RANDOM@ /* Have /dev/random */ #cmakedefine HAVE_CRYPT_RNG 1 @@ -1600,7 +1611,7 @@ #cmakedefine DISABLE_QCALLS 1 /* Have __thread keyword */ -#cmakedefine MONO_KEYWORD_THREAD 1 +#cmakedefine MONO_KEYWORD_THREAD @MONO_KEYWORD_THREAD@ /* tls_model available */ #cmakedefine HAVE_TLS_MODEL_ATTR 1 @@ -1680,6 +1691,9 @@ /* Version number of package */ #define VERSION @VERSION@ +/* Full version number of package */ +#define FULL_VERSION @FULL_VERSION@ + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_DLFCN_H 1 @@ -1703,3 +1717,7 @@ /* Enable runtime checks of mempool references between metadata images (must set env var MONO_CHECK_MODE=metadata) */ #cmakedefine ENABLE_CHECKED_BUILD_METADATA 1 + +#if defined(ENABLE_LLVM) && defined(HOST_WIN32) && defined(TARGET_WIN32) && (!defined(TARGET_AMD64) || !defined(_MSC_VER)) +#error LLVM for host=Windows and target=Windows is only supported on x64 MSVC build. +#endif diff --git a/src/mono/cmake/configure.cmake b/src/mono/cmake/configure.cmake index f0c094348cdb..f7e6e78c27c0 100644 --- a/src/mono/cmake/configure.cmake +++ b/src/mono/cmake/configure.cmake @@ -5,9 +5,15 @@ include(CheckTypeSize) include(CheckStructHasMember) include(CheckSymbolExists) - -if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") - set(DARWIN 1) +include(CheckCCompilerFlag) + +# Apple platforms like macOS/iOS allow targeting older operating system versions with a single SDK, +# the mere presence of a symbol in the SDK doesn't tell us whether the deployment target really supports it. +# The compiler raises a warning when using an unsupported API, turn that into an error so check_symbol_exists() +# can correctly identify whether the API is supported on the target. +check_c_compiler_flag("-Wunguarded-availability" "C_SUPPORTS_WUNGUARDED_AVAILABILITY") +if(C_SUPPORTS_WUNGUARDED_AVAILABILITY) + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unguarded-availability") endif() function(ac_check_headers) @@ -52,8 +58,8 @@ ac_check_headers ( sys/mkdev.h sys/types.h sys/stat.h sys/filio.h sys/sockio.h sys/utime.h sys/un.h sys/syscall.h sys/uio.h sys/param.h sys/sysctl.h sys/prctl.h sys/socket.h sys/utsname.h sys/select.h sys/inotify.h sys/user.h sys/poll.h sys/wait.h sts/auxv.h sys/resource.h sys/event.h sys/ioctl.h sys/errno.h sys/sendfile.h sys/statvfs.h sys/statfs.h sys/mman.h sys/mount.h sys/time.h sys/random.h - memory.h strings.h stdint.h unistd.h netdb.h utime.h semaphore.h libproc.h alloca.h ucontext.h pwd.h - gnu/lib-names.h netinet/tcp.h netinet/in.h link.h arpa/inet.h unwind.h poll.h grp.h wchar.h linux/magic.h + memory.h strings.h string.h stdint.h signal.h inttypes.h stdlib.h unistd.h netdb.h utime.h semaphore.h libproc.h alloca.h ucontext.h pwd.h + gnu/lib-names.h netinet/tcp.h netinet/in.h link.h arpa/inet.h complex.h unwind.h poll.h grp.h wchar.h linux/magic.h android/legacy_signal_inlines.h android/ndk-version.h execinfo.h pthread.h pthread_np.h net/if.h dirent.h CommonCrypto/CommonDigest.h curses.h term.h termios.h dlfcn.h getopt.h pwd.h iconv.h alloca.h /usr/include/malloc.h) @@ -69,7 +75,8 @@ ac_check_funcs ( gethrtime read_real_time gethostbyname gethostbyname2 getnameinfo getifaddrs if_nametoindex access inet_ntop Qp2getifaddrs) -if (NOT DARWIN) +if(NOT HOST_DARWIN) + # getentropy was introduced in macOS 10.12 / iOS 10.0 ac_check_funcs (getentropy) endif() @@ -123,3 +130,37 @@ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c ) try_compile(GLIBC_HAS_CPU_COUNT ${CMAKE_BINARY_DIR}/CMakeTmp SOURCES "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c" COMPILE_DEFINITIONS "-D_GNU_SOURCE") + + +if(HOST_WIN32) + # checking for this doesn't work for some reason, hardcode result + set(HAVE_WINTERNL_H 1) + set(HAVE_SIGNAL 1) + set(HAVE_CRYPT_RNG 1) + set(HAVE_GETADDRINFO 1) + set(HAVE_GETNAMEINFO 1) + set(HAVE_GETPROTOBYNAME 1) + set(HAVE_INET_NTOP 1) + set(HAVE_INET_PTON 1) + set(HAVE_STRUCT_SOCKADDR_IN6 1) + set(HAVE_STRUCT_IP_MREQ 1) + set(HAVE_STRTOK_R 1) + set(HAVE_EXECVP 0) +endif() + +if(HOST_IOS) + set(HAVE_SYSTEM 0) + set(HAVE_GETPWUID_R 0) + set(HAVE_SYS_USER_H 0) + set(HAVE_GETENTROPY 0) + if(HOST_TVOS) + set(HAVE_PTHREAD_KILL 0) + set(HAVE_KILL 0) + set(HAVE_SIGACTION 0) + set(HAVE_FORK 0) + set(HAVE_EXECV 0) + set(HAVE_EXECVE 0) + set(HAVE_EXECVP 0) + set(HAVE_SIGNAL 0) + endif() +endif() \ No newline at end of file diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 95f46723df97..afde59eeda04 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -2,7 +2,7 @@ - - - - + - - <_MonoBuildParams Include="/p:MONO_BUILD_DIR_PREFIX=""$(MonoObjDir)""" /> - <_MonoBuildParams Include="/p:MONO_ENABLE_NETCORE=true" /> - <_MonoBuildParams Include="/p:MONO_ENABLE_PERFTRACING=true" /> - <_MonoBuildParams Include="/p:MONO_USE_STATIC_C_RUNTIME=true" /> - <_MonoBuildParams Include="/p:CL_MPCount=$([System.Environment]::ProcessorCount)" /> - <_MonoBuildParams Include="/v:minimal" /> - <_MonoBuildParams Condition="$(MonoEnableLLVM) == true" Include="/p:MONO_ENABLE_LLVM=true" /> - <_MonoBuildParams Condition="$(MonoEnableLLVM) == true" Include="/p:MONO_EXTERNAL_LLVM_CONFIG=""$(MonoLLVMDir)\bin\llvm-config.exe""" /> - + + + + - <_MonoBuildPlatform Condition="'$(Platform)' == 'x64'">x64 - <_MonoBuildPlatform Condition="'$(Platform)' == 'x86'">win32 - - <_MonoBuildCommand>msvc\run-msbuild.bat build $(_MonoBuildPlatform) $(Configuration) sgen "@(_MonoBuildParams, ' ')" msvc\mono-netcore.sln + <_MonoUseNinja Condition="'$(Ninja)' == 'true' or '$(_MonoFindNinjaExitCode)' == '0'">true - - - @@ -128,19 +110,10 @@ - - - - - - - <_MonoVerboseArg Condition="'$(MonoVerboseBuild)' == 'true' and '$(MonoNinjaFound)' == '0'">-v - <_MonoVerboseArg Condition="'$(MonoVerboseBuild)' == 'true' and '$(MonoNinjaFound)' != '0'">VERBOSE=1 - ninja - make -j$([System.Environment]::ProcessorCount) - + + - <_MonoCMakeArgs Condition="'$(MonoBuildTool)' == 'ninja'" Include="-G Ninja"/> + <_MonoCMakeArgs Condition="'$(_MonoUseNinja)' == 'true'" Include="-G Ninja"/> <_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX=$(MonoObjDir)out"/> <_MonoCMakeArgs Include="-DCMAKE_INSTALL_LIBDIR=lib"/> <_MonoCMakeArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)"/> @@ -172,6 +145,27 @@ <_MonoBuildEnv Condition="'$(Platform)' == 'arm'" Include="PKG_CONFIG_PATH=$(MonoCrossDir)/usr/lib/arm-linux-gnueabihf/pkgconfig" /> + + + <_MonoCPPFLAGS Include="-DWIN32" /> + <_MonoCPPFLAGS Include="-DWIN32_LEAN_AND_MEAN" /> + + <_MonoCPPFLAGS Condition="'$(Platform)' == 'x64' or '$(Platform)' == 'arm64'" Include="-DWIN64" /> + <_MonoCPPFLAGS Condition="'$(Configuration)' == 'Release'" Include="-DNDEBUG" /> + <_MonoCPPFLAGS Condition="'$(Configuration)' == 'Debug'" Include="-D_DEBUG" /> + + <_MonoCPPFLAGS Include="-D_CRT_SECURE_NO_WARNINGS" /> + <_MonoCPPFLAGS Include="-D_CRT_NONSTDC_NO_DEPRECATE" /> + + <_MonoCPPFLAGS Include="-DWIN32_THREADS" /> + <_MonoCPPFLAGS Include="-DWINVER=0x0601" /> + <_MonoCPPFLAGS Include="-D_WIN32_WINNT=0x0601" /> + <_MonoCPPFLAGS Include="-D_WIN32_IE=0x0501" /> + <_MonoCPPFLAGS Include="-D_UNICODE" /> + <_MonoCPPFLAGS Include="-DUNICODE" /> + <_MonoCPPFLAGS Include="-DFD_SETSIZE=1024" /> + <_MonoCPPFLAGS Include="-DNVALGRIND" /> + <_MonoCMakeArgs Include="-DCMAKE_OSX_DEPLOYMENT_TARGET=$(macOSVersionMin)" /> @@ -186,7 +180,7 @@ <_MonoMinimal Condition="'$(Configuration)' == 'Release'">,assert_messages - <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,com,jit,reflection_emit_save,portability,assembly_remapping,attach,verifier,appdomains,shadowcopy,security,sgen_marksweep_conc,sgen_split_nursery,sgen_gc_bridge,sgen_toggleref,logging,remoting,shared_perfcounters,sgen_debug_helpers,sgen_binary_protocol,soft_debug,interpreter,cleanup,mdb,gac,threads,eventpipe,aot,interpreter,qcalls$(_MonoMinimal)"/> + <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,com,jit,reflection_emit_save,portability,assembly_remapping,attach,verifier,appdomains,shadowcopy,security,sgen_marksweep_conc,sgen_split_nursery,sgen_gc_bridge,sgen_toggleref,logging,remoting,shared_perfcounters,sgen_debug_helpers,sgen_binary_protocol,soft_debug,interpreter,cleanup,mdb,gac,threads,eventpipe,qcalls$(_MonoMinimal)"/> <_MonoCMakeArgs Include="-DENABLE_INTERP_LIB=1"/> <_MonoCMakeArgs Include="-DDISABLE_ICALL_TABLES=1"/> <_MonoCMakeArgs Include="-DDISABLE_CRASH_REPORTING=1"/> @@ -205,7 +199,6 @@ <_MonoCMakeSysroot Condition="'$(TargetstvOS)' == 'true' and '$(TargetstvOSSimulator)' == 'true'">$(XcodeDir)/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator$(tvOSVersion).sdk <_MonoCMakeSystemName Condition="'$(TargetsiOS)' == 'true'">iOS <_MonoCMakeSystemName Condition="'$(TargetstvOS)' == 'true'">tvOS - <_MonoCMakeVersionMin Condition="'$(TargetstvOS)' == 'true'">$(tvOSVersionMin) <_MonoCMakeVersionMin Condition="'$(TargetsiOS)' == 'true'">$(iOSVersionMin) <_MonoCMakeVersionMin Condition="'$(TargetstvOS)' == 'true'">$(tvOSVersionMin) @@ -226,10 +219,7 @@ - <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,com,interpreter,jit,portability,assembly_remapping,attach,verifier,appdomains,security,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,remoting,shared_perfcounters,gac,eventpipe" /> - <_MonoCMakeArgs Include="-DENABLE_INTERP_LIB=1"/> - <_MonoCMakeArgs Include="-DDISABLE_ICALL_TABLES=1"/> - <_MonoCMakeArgs Include="-DENABLE_ICALL_EXPORT=0"/> + <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,com,jit,portability,assembly_remapping,attach,verifier,appdomains,security,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,remoting,shared_perfcounters,gac,eventpipe" /> <_MonoCMakeArgs Include="-DENABLE_VISIBILITY_HIDDEN=1"/> <_MonoCMakeArgs Include="-DENABLE_LAZY_GC_THREAD_CREATION=1"/> <_MonoCMakeArgs Include="-DENABLE_SIGALTSTACK=0"/> @@ -252,7 +242,7 @@ <_MonoCMakeArgs Condition="'$(Platform)' == 'arm'" Include="-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a" /> <_MonoCMakeArgs Condition="'$(Platform)' == 'x86'" Include="-DCMAKE_ANDROID_ARCH_ABI=x86" /> <_MonoCMakeArgs Condition="'$(Platform)' == 'x64'" Include="-DCMAKE_ANDROID_ARCH_ABI=x86_64" /> - <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,portability,attach,verifier,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,security,shared_handles,interpreter,gac,cfgdir_config" /> + <_MonoCMakeArgs Include="-DENABLE_MINIMAL=ssa,portability,attach,verifier,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,security,shared_handles,gac,cfgdir_config" /> <_MonoCMakeArgs Include="-DENABLE_SIGALTSTACK=1"/> <_MonoCMakeArgs Include="-DDISABLE_CRASH_REPORTING=1"/> <_MonoCMakeArgs Include="-DENABLE_PERFTRACING=0"/> @@ -306,41 +296,50 @@ <_MonoCMakeArgs Include="$(_MonoCFLAGSOption)"/> <_MonoCMakeArgs Include="$(_MonoCXXFLAGSOption)"/> + + + <_MonoCMakeConfigureCommand>cmake @(_MonoCMakeArgs, ' ') $(MonoProjectRoot) + <_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(_MonoRunInitCompiler)' != 'false' and '$(OS)' != 'Windows_NT'">bash -c 'source $(RepositoryEngineeringDir)native/init-compiler.sh $(Platform) $(MonoCCompiler) && @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand)' + <_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(_MonoRunInitCompiler)' != 'false' and '$(OS)' == 'Windows_NT'">set __repoRoot="$(RepoRoot)" && call "$(RepositoryEngineeringDir)native\init-compiler-and-cmake.cmd" $(Platform) && @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand) + <_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(_MonoRunInitCompiler)' == 'false'">$(_MonoCCOption) $(_MonoCXXOption) @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand) + <_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' == 'true'">bash -c 'source $(EMSDK_PATH)/emsdk_env.sh && emcmake $(_MonoCMakeConfigureCommand)' + + <_MonoCMakeBuildCommand>cmake --build . --target install --config $(Configuration) + <_MonoCMakeBuildCommand Condition="'$(MonoVerboseBuild)' == 'true'">$(_MonoCMakeBuildCommand) --verbose + <_MonoCMakeBuildCommand Condition="'$(_MonoUseNinja)' != 'true'">$(_MonoCMakeBuildCommand) --parallel $([System.Environment]::ProcessorCount) + <_MonoCMakeBuildCommand Condition="'$(TargetsBrowser)' != 'true' and '$(OS)' != 'Windows_NT'">@(_MonoBuildEnv, ' ') $(_MonoCMakeBuildCommand) + <_MonoCMakeBuildCommand Condition="'$(TargetsBrowser)' != 'true' and '$(OS)' == 'Windows_NT'">set __repoRoot="$(RepoRoot)" && call "$(RepositoryEngineeringDir)native\init-compiler-and-cmake.cmd" $(Platform) && @(_MonoBuildEnv, ' ') $(_MonoCMakeBuildCommand) + + - - - - - - - - + + + + + + - - - - - - ninja - make -j$([System.Environment]::ProcessorCount) - + true - $(XcodeDir)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).sdk - $(XcodeDir)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(iOSVersion).sdk - $(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk - $(XcodeDir)/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator$(tvOSVersion).sdk + $(XcodeDir)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).sdk + $(XcodeDir)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(iOSVersion).sdk + $(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk + $(XcodeDir)/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator$(tvOSVersion).sdk $(MonoObjDir)cross/offsets-$(Platform)-darwin.h aarch64-apple-darwin10 arm-apple-darwin10 i386-apple-darwin10 x86_64-apple-darwin10 + + + true @@ -360,7 +359,7 @@ $(XcodeDir)/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib - $(MonoCrossDir) + $(MonoCrossDir) @@ -370,21 +369,16 @@ - + - - python3 $(MonoProjectRoot)mono/tools/offsets-tool/offsets-tool.py @(MonoAotCrossOffsetsToolParams, ' ') - - <_MonoAOTCXXFLAGSOption>-DCMAKE_CXX_FLAGS="@(_MonoAOTCXXFLAGS, ' ')" - - + @@ -397,32 +391,56 @@ + + <_MonoAotCrossOffsetsCommand Condition="'$(MonoUseCrossTool)' == 'true'">python3 $(MonoProjectRoot)mono/tools/offsets-tool/offsets-tool.py @(MonoAotCrossOffsetsToolParams, ' ') + <_MonoAotCMakeConfigureCommand>cmake @(MonoAOTCMakeArgs, ' ') $(MonoProjectRoot) + <_MonoAotCMakeBuildCommand>cmake --build . --target install --config $(Configuration) + <_MonoAotCMakeBuildCommand Condition="'$(MonoVerboseBuild)' == 'true'">$(_MonoAotCMakeBuildCommand) --verbose + <_MonoAotCMakeBuildCommand Condition="'$(_MonoUseNinja)' != 'true'">$(_MonoAotCMakeBuildCommand) --parallel $([System.Environment]::ProcessorCount) + + - - - - - - - + + + + + + + + + + + + + + + + + - + - <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x64'">$(MonoObjDir)x64\Bin\$(Configuration)\mono-2.0-sgen.dll - <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x86'">$(MonoObjDir)Win32\Bin\$(Configuration)\mono-2.0-sgen.dll + <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true'">$(MonoObjDir)out\bin\monosgen-2.0.dll <_MonoRuntimeFilePath Condition="'$(TargetsOSX)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(TargetsiOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(TargetstvOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(TargetsBrowser)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.a <_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)out\lib\libmonosgen-2.0.so <_MonoRuntimeStaticFilePath Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.a - <_MonoIncludeInterpStaticFiles Condition="'$(TargetsBrowser)' == 'true' or ('$(TargetsiOS)' == 'true' and '$(TargetsiOSSimulator)' != 'true')">true + <_MonoIncludeInterpStaticFiles Condition="'$(TargetsBrowser)' == 'true'">true - <_MonoAotCrossFilePath >$(MonoObjDir)cross\out\bin\mono-sgen + <_MonoAotCrossFilePath>$(MonoObjDir)cross\out\bin\mono-sgen diff --git a/src/mono/mono/CMakeLists.txt b/src/mono/mono/CMakeLists.txt index 6f86d9a26ccf..817a804b6875 100644 --- a/src/mono/mono/CMakeLists.txt +++ b/src/mono/mono/CMakeLists.txt @@ -1,8 +1,13 @@ project(mono) -#set(subdirs eglib arch utils cil sgen metadata mini dis profiler) set(subdirs mini profiler) +if(ENABLE_PERFTRACING) + list(APPEND subdirs + eventpipe/test + ) +endif(ENABLE_PERFTRACING) + foreach(dir ${subdirs}) add_subdirectory(${dir}) endforeach() diff --git a/src/mono/mono/arch/s390x/s390x-codegen.h b/src/mono/mono/arch/s390x/s390x-codegen.h index e621c5225294..1af7de1e3bd8 100644 --- a/src/mono/mono/arch/s390x/s390x-codegen.h +++ b/src/mono/mono/arch/s390x/s390x-codegen.h @@ -195,6 +195,7 @@ typedef enum { #define S390_PARM_SAVE_OFFSET 16 #define S390_RET_ADDR_OFFSET 112 #define S390_FLOAT_SAVE_OFFSET 128 +#define S390_CFA_OFFSET 160 #define S390_CC_ZR 8 #define S390_CC_NE 7 diff --git a/src/mono/mono/eventpipe/CMakeLists.txt b/src/mono/mono/eventpipe/CMakeLists.txt index 88b72f1a5b5b..6cef17ca6972 100644 --- a/src/mono/mono/eventpipe/CMakeLists.txt +++ b/src/mono/mono/eventpipe/CMakeLists.txt @@ -1,73 +1,41 @@ - -set(eventpipe_sources_base - ds-dump-protocol.c - ds-dump-protocol.h - ds-eventpipe-protocol.c - ds-eventpipe-protocol.h - ds-getter-setter.h - ds-ipc.c - ds-ipc.h - ds-ipc-posix.c - ds-ipc-posix.h - ds-process-protocol.c - ds-process-protocol.h - ds-profiler-protocol.c - ds-profiler-protocol.h - ds-protocol.c - ds-protocol.h - ds-rt.h - ds-rt-config.h - ds-rt-mono.c - ds-rt-mono.h - ds-rt-types.h - ds-rt-types-mono.h - ds-server.c - ds-server.h - ds-types.h - ep.c - ep.h - ep-block.c - ep-block.h - ep-buffer.c - ep-buffer.h - ep-buffer-manager.c - ep-buffer-manager.h - ep-config.c - ep-config.h - ep-config-internals.h - ep-event.c - ep-event.h - ep-event-instance.h - ep-event-instance.c - ep-event-payload.c - ep-event-payload.h - ep-event-source.c - ep-event-source.h - ep-file.c - ep-file.h - ep-getter-setter.h - ep-metadata-generator.c - ep-metadata-generator.h - ep-provider.c - ep-provider.h - ep-provider-internals.h - ep-rt.h - ep-rt-config.h - ep-rt-config-mono.h - ep-rt-mono.c - ep-rt-mono.h - ep-rt-types.h - ep-rt-types-mono.h - ep-thread.c - ep-thread.h - ep-types.h - ep-session.c - ep-session.h - ep-session-provider.c - ep-stack-contents.c - ep-stack-contents.h - ep-stream.c - ep-stream.h) if(ENABLE_PERFTRACING) - addprefix(eventpipe_sources ../eventpipe "${eventpipe_sources_base}") -endif() + + include (${SHARED_EVENTPIPE_SOURCE_PATH}CMakeLists.txt) + + set(MONO_EVENTPIPE_SHIM_SOURCES "") + set(MONO_EVENTPIPE_SHIM_HEADERS "") + + list(APPEND MONO_EVENTPIPE_SHIM_SOURCES + ds-rt-mono.c + ep-rt-mono.c + ) + + list(APPEND MONO_EVENTPIPE_SHIM_HEADERS + ds-rt-mono.h + ds-rt-types-mono.h + ep-rt-config-mono.h + ep-rt-mono.h + ep-rt-types-mono.h + ) + + set(shared_eventpipe_sources_base "") + set(mono_eventpipe_shim_sources_base "") + + list(APPEND shared_eventpipe_sources_base + ${SHARED_EVENTPIPE_SOURCES} + ${SHARED_EVENTPIPE_HEADERS} + ${SHARED_DIAGNOSTIC_SERVER_SOURCES} + ${SHARED_DIAGNOSTIC_SERVER_HEADERS} + ) + + list(APPEND mono_eventpipe_shim_sources_base + ${MONO_EVENTPIPE_SHIM_SOURCES} + ${MONO_EVENTPIPE_SHIM_HEADERS} + ) + + addprefix(shared_eventpipe_sources_base ${SHARED_EVENTPIPE_SOURCE_PATH} "${shared_eventpipe_sources_base}") + addprefix(mono_eventpipe_shim_sources_base ${MONO_EVENTPIPE_SHIM_SOURCE_PATH} "${mono_eventpipe_shim_sources_base}") + + set(eventpipe_sources ${shared_eventpipe_sources_base} ${mono_eventpipe_shim_sources_base}) + +endif(ENABLE_PERFTRACING) diff --git a/src/mono/mono/eventpipe/Makefile.am b/src/mono/mono/eventpipe/Makefile.am index 2c28b8c8d1e4..439d8799f817 100644 --- a/src/mono/mono/eventpipe/Makefile.am +++ b/src/mono/mono/eventpipe/Makefile.am @@ -3,82 +3,97 @@ MAKEFLAGS := $(MAKEFLAGS) --no-builtin-rules if !ENABLE_MSVC_ONLY if ENABLE_PERFTRACING +shared_eventpipe_path=$(top_srcdir)/../native/eventpipe AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/mono $(GLIB_CFLAGS) $(SHARED_CFLAGS) noinst_LTLIBRARIES = libeventpipe.la -eventpipe_sources = \ - ds-dump-protocol.c \ - ds-dump-protocol.h \ - ds-eventpipe-protocol.c \ - ds-eventpipe-protocol.h \ - ds-getter-setter.h \ - ds-ipc.c \ - ds-ipc.h \ - ds-ipc-posix.c \ - ds-ipc-posix.h \ - ds-process-protocol.c \ - ds-process-protocol.h \ - ds-profiler-protocol.c \ - ds-profiler-protocol.h \ - ds-protocol.c \ - ds-protocol.h \ - ds-rt.h \ - ds-rt-config.h \ +shared_eventpipe_sources = \ + $(shared_eventpipe_path)/ds.c \ + $(shared_eventpipe_path)/ds-dump-protocol.c \ + $(shared_eventpipe_path)/ds-dump-protocol.h \ + $(shared_eventpipe_path)/ds-eventpipe-protocol.c \ + $(shared_eventpipe_path)/ds-eventpipe-protocol.h \ + $(shared_eventpipe_path)/ds-getter-setter.h \ + $(shared_eventpipe_path)/ds-ipc.c \ + $(shared_eventpipe_path)/ds-ipc.h \ + $(shared_eventpipe_path)/ds-process-protocol.c \ + $(shared_eventpipe_path)/ds-process-protocol.h \ + $(shared_eventpipe_path)/ds-profiler-protocol.c \ + $(shared_eventpipe_path)/ds-profiler-protocol.h \ + $(shared_eventpipe_path)/ds-protocol.c \ + $(shared_eventpipe_path)/ds-protocol.h \ + $(shared_eventpipe_path)/ds-rt.h \ + $(shared_eventpipe_path)/ds-rt-config.h \ + $(shared_eventpipe_path)/ds-rt-types.h \ + $(shared_eventpipe_path)/ds-server.c \ + $(shared_eventpipe_path)/ds-server.h \ + $(shared_eventpipe_path)/ds-types.h \ + $(shared_eventpipe_path)/ep.c \ + $(shared_eventpipe_path)/ep.h \ + $(shared_eventpipe_path)/ep-block.c \ + $(shared_eventpipe_path)/ep-block.h \ + $(shared_eventpipe_path)/ep-buffer.c \ + $(shared_eventpipe_path)/ep-buffer.h \ + $(shared_eventpipe_path)/ep-buffer-manager.c \ + $(shared_eventpipe_path)/ep-buffer-manager.h \ + $(shared_eventpipe_path)/ep-config.c \ + $(shared_eventpipe_path)/ep-config.h \ + $(shared_eventpipe_path)/ep-config-internals.h \ + $(shared_eventpipe_path)/ep-event.c \ + $(shared_eventpipe_path)/ep-event.h \ + $(shared_eventpipe_path)/ep-event-instance.h \ + $(shared_eventpipe_path)/ep-event-instance.c \ + $(shared_eventpipe_path)/ep-event-payload.c \ + $(shared_eventpipe_path)/ep-event-payload.h \ + $(shared_eventpipe_path)/ep-event-source.c \ + $(shared_eventpipe_path)/ep-event-source.h \ + $(shared_eventpipe_path)/ep-file.c \ + $(shared_eventpipe_path)/ep-file.h \ + $(shared_eventpipe_path)/ep-getter-setter.h \ + $(shared_eventpipe_path)/ep-json-file.c \ + $(shared_eventpipe_path)/ep-json-file.h \ + $(shared_eventpipe_path)/ep-metadata-generator.c \ + $(shared_eventpipe_path)/ep-metadata-generator.h \ + $(shared_eventpipe_path)/ep-provider.c \ + $(shared_eventpipe_path)/ep-provider.h \ + $(shared_eventpipe_path)/ep-provider-internals.h \ + $(shared_eventpipe_path)/ep-rt.h \ + $(shared_eventpipe_path)/ep-rt-config.h \ + $(shared_eventpipe_path)/ep-rt-types.h \ + $(shared_eventpipe_path)/ep-thread.c \ + $(shared_eventpipe_path)/ep-thread.h \ + $(shared_eventpipe_path)/ep-types.h \ + $(shared_eventpipe_path)/ep-sample-profiler.c \ + $(shared_eventpipe_path)/ep-sample-profiler.h \ + $(shared_eventpipe_path)/ep-session.c \ + $(shared_eventpipe_path)/ep-session.h \ + $(shared_eventpipe_path)/ep-session-provider.c \ + $(shared_eventpipe_path)/ep-stack-contents.c \ + $(shared_eventpipe_path)/ep-stack-contents.h \ + $(shared_eventpipe_path)/ep-stream.c \ + $(shared_eventpipe_path)/ep-stream.h + +if HOST_WIN32 +shared_eventpipe_platform_sources = \ + $(shared_eventpipe_path)/ds-ipc-win32.c \ + $(shared_eventpipe_path)/ds-ipc-win32.h +else +shared_eventpipe_platform_sources = \ + $(shared_eventpipe_path)/ds-ipc-posix.c \ + $(shared_eventpipe_path)/ds-ipc-posix.h +endif + +eventpipe_mono_shim_sources = \ ds-rt-mono.c \ ds-rt-mono.h \ - ds-rt-types.h \ ds-rt-types-mono.h \ - ds-server.c \ - ds-server.h \ - ds-types.h \ - ep.c \ - ep.h \ - ep-block.c \ - ep-block.h \ - ep-buffer.c \ - ep-buffer.h \ - ep-buffer-manager.c \ - ep-buffer-manager.h \ - ep-config.c \ - ep-config.h \ - ep-config-internals.h \ - ep-event.c \ - ep-event.h \ - ep-event-instance.h \ - ep-event-instance.c \ - ep-event-payload.c \ - ep-event-payload.h \ - ep-event-source.c \ - ep-event-source.h \ - ep-file.c \ - ep-file.h \ - ep-getter-setter.h \ - ep-metadata-generator.c \ - ep-metadata-generator.h \ - ep-provider.c \ - ep-provider.h \ - ep-provider-internals.h \ - ep-rt.h \ - ep-rt-config.h \ ep-rt-config-mono.h \ ep-rt-mono.c \ ep-rt-mono.h \ - ep-rt-types.h \ - ep-rt-types-mono.h \ - ep-thread.c \ - ep-thread.h \ - ep-types.h \ - ep-session.c \ - ep-session.h \ - ep-session-provider.c \ - ep-stack-contents.c \ - ep-stack-contents.h \ - ep-stream.c \ - ep-stream.h - + ep-rt-types-mono.h -libeventpipe_la_SOURCES = $(eventpipe_sources) +libeventpipe_la_SOURCES = $(shared_eventpipe_sources) $(shared_eventpipe_platform_sources) $(eventpipe_mono_shim_sources) endif # ENABLE_PERFTRACING endif # !ENABLE_MSVC_ONLY diff --git a/src/mono/mono/eventpipe/ds-dump-protocol.c b/src/mono/mono/eventpipe/ds-dump-protocol.c deleted file mode 100644 index b71c3065c1f2..000000000000 --- a/src/mono/mono/eventpipe/ds-dump-protocol.c +++ /dev/null @@ -1,32 +0,0 @@ -#include - -#ifdef ENABLE_PERFTRACING -#include "ds-rt-config.h" -#if !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) - -#define DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER -#include "ds-protocol.h" -#include "ds-dump-protocol.h" -#include "ds-rt.h" - -void -ds_dump_protocol_helper_handle_ipc_message ( - DiagnosticsIpcMessage *message, - DiagnosticsIpcStream *stream) -{ - EP_ASSERT (message != NULL); - EP_ASSERT (stream != NULL); - - // TODO: Implement. - DS_LOG_WARNING_0 ("Generate Core Dump not implemented\n"); - ds_ipc_message_send_error (stream, DS_IPC_E_NOTSUPPORTED); - ds_ipc_stream_free (stream); -} - -#endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ -#endif /* ENABLE_PERFTRACING */ - -#ifndef DS_INCLUDE_SOURCE_FILES -extern const char quiet_linker_empty_file_warning_diagnostics_dump_protocol; -const char quiet_linker_empty_file_warning_diagnostics_dump_protocol = 0; -#endif diff --git a/src/mono/mono/eventpipe/ds-dump-protocol.h b/src/mono/mono/eventpipe/ds-dump-protocol.h deleted file mode 100644 index 17b86a8b999c..000000000000 --- a/src/mono/mono/eventpipe/ds-dump-protocol.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __DIAGNOSTICS_DUMP_PROTOCOL_H__ -#define __DIAGNOSTICS_DUMP_PROTOCOL_H__ - -#include - -#ifdef ENABLE_PERFTRACING -#include "ds-rt-config.h" -#include "ds-types.h" -#include "ds-ipc.h" - -#undef DS_IMPL_GETTER_SETTER -#ifdef DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER -#define DS_IMPL_GETTER_SETTER -#endif -#include "ds-getter-setter.h" - -/* - * DiagnosticsDumpProtocolHelper. - */ - -void -ds_dump_protocol_helper_handle_ipc_message ( - DiagnosticsIpcMessage *message, - DiagnosticsIpcStream *stream); - -#endif /* ENABLE_PERFTRACING */ -#endif /* __DIAGNOSTICS_DUMP_PROTOCOL_H__ */ diff --git a/src/mono/mono/eventpipe/ds-profiler-protocol.c b/src/mono/mono/eventpipe/ds-profiler-protocol.c deleted file mode 100644 index 1f63c8a34296..000000000000 --- a/src/mono/mono/eventpipe/ds-profiler-protocol.c +++ /dev/null @@ -1,32 +0,0 @@ -#include - -#if defined(ENABLE_PERFTRACING) && defined(FEATURE_PROFAPI_ATTACH_DETACH) -#include "ds-rt-config.h" -#if !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) - -#define DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER -#include "ds-protocol.h" -#include "ds-profiler-protocol.h" -#include "ds-rt.h" - -void -ds_profiler_protocol_helper_handle_ipc_message ( - DiagnosticsIpcMessage *message, - DiagnosticsIpcStream *stream) -{ - EP_ASSERT (message != NULL); - EP_ASSERT (stream != NULL); - - // TODO: Implement. - DS_LOG_WARNING_0 ("Attach profiler not implemented\n"); - ds_ipc_message_send_error (stream, DS_IPC_E_NOTSUPPORTED); - ds_ipc_stream_free (stream); -} - -#endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ -#endif /* #if defined(ENABLE_PERFTRACING) && defined(FEATURE_PROFAPI_ATTACH_DETACH) */ - -#ifndef DS_INCLUDE_SOURCE_FILES -extern const char quiet_linker_empty_file_warning_diagnostics_profiler_protocol; -const char quiet_linker_empty_file_warning_diagnostics_profiler_protocol = 0; -#endif diff --git a/src/mono/mono/eventpipe/ds-profiler-protocol.h b/src/mono/mono/eventpipe/ds-profiler-protocol.h deleted file mode 100644 index 3cd5055fdcb5..000000000000 --- a/src/mono/mono/eventpipe/ds-profiler-protocol.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __DIAGNOSTICS_PROFILER_PROTOCOL_H__ -#define __DIAGNOSTICS_PROFILER_PROTOCOL_H__ - -#include - -#if defined(ENABLE_PERFTRACING) && defined(FEATURE_PROFAPI_ATTACH_DETACH) -#include "ds-rt-config.h" -#include "ds-types.h" -#include "ds-ipc.h" - -#undef DS_IMPL_GETTER_SETTER -#ifdef DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER -#define DS_IMPL_GETTER_SETTER -#endif -#include "ds-getter-setter.h" - -/* - * DiagnosticsProfilerProtocolHelper. - */ - -void -ds_profiler_protocol_helper_handle_ipc_message ( - DiagnosticsIpcMessage *message, - DiagnosticsIpcStream *stream); - -#endif /* defined(ENABLE_PERFTRACING) && defined(FEATURE_PROFAPI_ATTACH_DETACH) */ -#endif /* __DIAGNOSTICS_PROFILER_PROTOCOL_H__ */ diff --git a/src/mono/mono/eventpipe/ds-rt-mono.c b/src/mono/mono/eventpipe/ds-rt-mono.c index 0e1813dd8e75..d30305351f92 100644 --- a/src/mono/mono/eventpipe/ds-rt-mono.c +++ b/src/mono/mono/eventpipe/ds-rt-mono.c @@ -1,9 +1,9 @@ #include #ifdef ENABLE_PERFTRACING -#include "ds-rt-config.h" -#include "ds-types.h" -#include "ds-rt.h" +#include +#include +#include #ifdef __APPLE__ #define APPLICATION_CONTAINER_BASE_PATH_SUFFIX "/Library/Group Containers/" @@ -31,7 +31,8 @@ ipc_get_process_id_disambiguation_key ( uint64_t *key); #endif /* !HOST_WIN32 */ -void ipc_transport_get_default_name ( +bool +ipc_transport_get_default_name ( ep_char8_t *name, uint32_t name_len, const ep_char8_t *prefix, @@ -177,7 +178,7 @@ ipc_get_process_id_disambiguation_key ( #endif } -void +bool ipc_transport_get_default_name ( ep_char8_t *name, uint32_t name_len, @@ -189,7 +190,8 @@ ipc_transport_get_default_name ( EP_ASSERT (name != NULL); EP_ASSERT (name > 0); - int32_t result = 0; + bool result = false; + int32_t format_result = 0; uint64_t disambiguation_key = 0; ep_char8_t *format_buffer = NULL; @@ -226,8 +228,8 @@ ipc_transport_get_default_name ( ep_raise_error (); } - result = snprintf (format_buffer, name_len, "%s%s%s/", home_dir, APPLICATION_CONTAINER_BASE_PATH_SUFFIX, group_id); - if (result <= 0 || (uint32_t)result > name_len) { + format_result = snprintf (format_buffer, name_len, "%s%s%s/", home_dir, APPLICATION_CONTAINER_BASE_PATH_SUFFIX, group_id); + if (format_result <= 0 || (uint32_t)format_result > name_len) { DS_LOG_ERROR_0 ("format_buffer to small"); ep_raise_error (); } @@ -236,31 +238,34 @@ ipc_transport_get_default_name ( #endif // __APPLE__ { // Get a temp file location - result = ep_rt_temp_path_get (format_buffer, name_len); - if (result == 0) { + format_result = ep_rt_temp_path_get (format_buffer, name_len); + if (format_result == 0) { DS_LOG_ERROR_0 ("ep_rt_temp_path_get failed"); ep_raise_error (); } - EP_ASSERT (result <= name_len); + EP_ASSERT (format_result <= name_len); } - result = snprintf(name, name_len, "%s%s-%d-%llu-%s", format_buffer, prefix, id, (unsigned long long)disambiguation_key, suffix); - if (result <= 0 || (uint32_t)result > name_len) { + format_result = snprintf(name, name_len, "%s%s-%d-%llu-%s", format_buffer, prefix, id, (unsigned long long)disambiguation_key, suffix); + if (format_result <= 0 || (uint32_t)format_result > name_len) { DS_LOG_ERROR_0 ("name buffer to small"); ep_raise_error (); } + result = true; + ep_on_exit: free (format_buffer); - return; + return result; ep_on_error: + EP_ASSERT (!result); name [0] = '\0'; ep_exit_error_handler (); } #else /* !HOST_WIN32 */ -void +bool ipc_transport_get_default_name ( ep_char8_t *name, uint32_t name_len, diff --git a/src/mono/mono/eventpipe/ds-rt-mono.h b/src/mono/mono/eventpipe/ds-rt-mono.h index 2d9fcbf31980..c4577cd1ce75 100644 --- a/src/mono/mono/eventpipe/ds-rt-mono.h +++ b/src/mono/mono/eventpipe/ds-rt-mono.h @@ -43,6 +43,9 @@ #undef DS_LOG_WARNING_2 #define DS_LOG_WARNING_2(msg, data1, data2) +#undef DS_LOG_DEBUG_0 +#define DS_LOG_DEBUG_0(msg) + #undef DS_ENTER_BLOCKING_PAL_SECTION #define DS_ENTER_BLOCKING_PAL_SECTION \ MONO_REQ_GC_UNSAFE_MODE \ @@ -60,6 +63,45 @@ #define DS_RT_DEFINE_ARRAY_ITERATOR(array_name, array_type, iterator_type, item_type) \ EP_RT_DEFINE_ARRAY_ITERATOR_PREFIX(ds, array_name, array_type, iterator_type, item_type) +#define DS_RT_DEFINE_ARRAY_REVERSE_ITERATOR(array_name, array_type, iterator_type, item_type) \ + EP_RT_DEFINE_ARRAY_REVERSE_ITERATOR_PREFIX(ds, array_name, array_type, iterator_type, item_type) + +/* +* AutoTrace. +*/ + +static +inline +void +ds_rt_auto_trace_init (void) +{ + // TODO: Implement. +} + +static +inline +void +ds_rt_auto_trace_launch (void) +{ + // TODO: Implement. +} + +static +inline +void +ds_rt_auto_trace_signal (void) +{ + // TODO: Implement. +} + +static +inline +void +ds_rt_auto_trace_wait (void) +{ + // TODO: Implement. +} + /* * DiagnosticsConfiguration. */ @@ -87,15 +129,28 @@ ds_rt_config_value_get_ports (void) static inline -int32_t +uint32_t ds_rt_config_value_get_default_port_suspend (void) { - int32_t value_int32_t = 0; + uint32_t value_uint32_t = 0; gchar *value = g_getenv ("DOTNET_DefaultDiagnosticPortSuspend"); if (value) - value_int32_t = atoi (value); + value_uint32_t = (uint32_t)atoi (value); g_free (value); - return value_int32_t; + return value_uint32_t; +} + +/* +* DiagnosticsDump. +*/ + +static +inline +ds_ipc_result_t +ds_rt_generate_core_dump (DiagnosticsGenerateCoreDumpCommandPayload *payload) +{ + // TODO: Implement. + return DS_IPC_E_NOTSUPPORTED; } /* @@ -104,7 +159,7 @@ ds_rt_config_value_get_default_port_suspend (void) static inline -void +bool ds_rt_transport_get_default_name ( ep_char8_t *name, int32_t name_len, @@ -113,8 +168,8 @@ ds_rt_transport_get_default_name ( const ep_char8_t *group_id, const ep_char8_t *suffix) { - extern void ipc_transport_get_default_name (ep_char8_t *name, uint32_t name_len, const ep_char8_t *prefix, int32_t id, const ep_char8_t *group_id, const ep_char8_t *suffix); - ipc_transport_get_default_name (name, name_len, prefix, id, group_id, suffix); + extern bool ipc_transport_get_default_name (ep_char8_t *name, uint32_t name_len, const ep_char8_t *prefix, int32_t id, const ep_char8_t *group_id, const ep_char8_t *suffix); + return ipc_transport_get_default_name (name, name_len, prefix, id, group_id, suffix); } /* @@ -133,6 +188,46 @@ DS_RT_DEFINE_ARRAY_ITERATOR (port_array, ds_rt_port_array_t, ds_rt_port_array_it DS_RT_DEFINE_ARRAY (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_iterator_t, ep_char8_t *) DS_RT_DEFINE_ARRAY_ITERATOR (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_iterator_t, ep_char8_t *) +DS_RT_DEFINE_ARRAY_REVERSE_ITERATOR (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_reverse_iterator_t, ep_char8_t *) + +/* +* DiagnosticsProfiler. +*/ + +static +inline +uint32_t +ds_rt_profiler_attach (DiagnosticsAttachProfilerCommandPayload *payload) +{ + // TODO: Implement. + return DS_IPC_E_NOTSUPPORTED; +} + +/* +* DiagnosticServer. +*/ + +static +inline +void +ds_rt_server_log_pause_message (void) +{ + ep_char8_t * ports = ds_rt_config_value_get_ports (); +#if WCHAR_MAX == 0xFFFF + wchar_t* ports_wcs = ports ? (wchar_t *)g_utf8_to_utf16 ((const gchar *)ports, -1, NULL, NULL, NULL) : NULL; +#else + wchar_t* ports_wcs = ports ? (wchar_t *)g_utf8_to_ucs4 ((const gchar *)ports, -1, NULL, NULL, NULL) : NULL; +#endif + uint32_t port_suspended = ds_rt_config_value_get_default_port_suspend (); + + printf ("The runtime has been configured to pause during startup and is awaiting a Diagnostics IPC ResumeStartup command from a Diagnostic Port.\n"); + printf ("DOTNET_DiagnosticPorts=\"%ls\"\n", ports_wcs == NULL ? L"" : ports_wcs); + printf("DOTNET_DefaultDiagnosticPortSuspend=%d\n", port_suspended); + fflush (stdout); + + g_free (ports_wcs); + ep_rt_utf8_string_free (ports); +} #endif /* ENABLE_PERFTRACING */ #endif /* __DIAGNOSTICS_RT_MONO_H__ */ diff --git a/src/mono/mono/eventpipe/ds-rt-types-mono.h b/src/mono/mono/eventpipe/ds-rt-types-mono.h index 9b6778f5a1d6..c00d146c4b71 100644 --- a/src/mono/mono/eventpipe/ds-rt-types-mono.h +++ b/src/mono/mono/eventpipe/ds-rt-types-mono.h @@ -5,7 +5,7 @@ #include #ifdef ENABLE_PERFTRACING -#include "ds-rt-config.h" +#include #include "ep-rt-types-mono.h" typedef struct _rt_mono_array_internal_t ds_rt_port_array_t; @@ -13,6 +13,7 @@ typedef struct _rt_mono_array_iterator_internal_t ds_rt_port_array_iterator_t; typedef struct _rt_mono_array_internal_t ds_rt_port_config_array_t; typedef struct _rt_mono_array_iterator_internal_t ds_rt_port_config_array_iterator_t; +typedef struct _rt_mono_array_iterator_internal_t ds_rt_port_config_array_reverse_iterator_t; typedef struct _rt_mono_array_internal_t ds_rt_ipc_poll_handle_array_t; typedef struct _rt_mono_array_iterator_internal_t ds_rt_ipc_poll_handle_array_iterator_t; diff --git a/src/mono/mono/eventpipe/ep-rt-config-mono.h b/src/mono/mono/eventpipe/ep-rt-config-mono.h index 0e5eb527c2f7..ec3ceb9f4aba 100644 --- a/src/mono/mono/eventpipe/ep-rt-config-mono.h +++ b/src/mono/mono/eventpipe/ep-rt-config-mono.h @@ -1,7 +1,7 @@ #ifndef __EVENTPIPE_RT_CONFIG_MONO_H__ #define __EVENTPIPE_RT_CONFIG_MONO_H__ -#include #define EP_RT_MONO_USE_STATIC_RUNTIME +#define EP_THREAD_INCLUDE_ACTIVITY_ID #endif /* __EVENTPIPE_RT_CONFIG_MONO_H__ */ diff --git a/src/mono/mono/eventpipe/ep-rt-config.h b/src/mono/mono/eventpipe/ep-rt-config.h deleted file mode 100644 index 3e1d416d1345..000000000000 --- a/src/mono/mono/eventpipe/ep-rt-config.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __EVENTPIPE_RT_CONFIG_H__ -#define __EVENTPIPE_RT_CONFIG_H__ - -#include "ep-rt-config-mono.h" - -#define EP_INLINE_GETTER_SETTER - -#ifdef EP_INLINE_GETTER_SETTER -#define EP_INCLUDE_SOURCE_FILES -#endif - -#endif /* __EVENTPIPE_RT_CONFIG_H__ */ diff --git a/src/mono/mono/eventpipe/ep-rt-mono.c b/src/mono/mono/eventpipe/ep-rt-mono.c index c9e7bf5a5066..6c99338dadaf 100644 --- a/src/mono/mono/eventpipe/ep-rt-mono.c +++ b/src/mono/mono/eventpipe/ep-rt-mono.c @@ -1,9 +1,9 @@ #include #ifdef ENABLE_PERFTRACING -#include "ep-rt-config.h" -#include "ep-types.h" -#include "ep-rt.h" +#include +#include +#include #include ep_rt_spin_lock_handle_t _ep_rt_mono_config_lock = {0}; @@ -232,6 +232,45 @@ ep_rt_mono_system_timestamp_get (void) } #endif +#ifndef HOST_WIN32 +#if defined(__APPLE__) +#if defined (TARGET_OSX) +G_BEGIN_DECLS +gchar ***_NSGetEnviron(void); +G_END_DECLS +#define environ (*_NSGetEnviron()) +#else +static char *_ep_rt_mono_environ[1] = { NULL }; +#define environ _ep_rt_mono_environ +#endif /* defined (TARGET_OSX) */ +#else +G_BEGIN_DECLS +extern char **environ; +G_END_DECLS +#endif /* defined (__APPLE__) */ +#endif /* !defined (HOST_WIN32) */ + +void +ep_rt_mono_os_environment_get_utf16 (ep_rt_env_array_utf16_t *env_array) +{ + EP_ASSERT (env_array != NULL); +#ifdef HOST_WIN32 + LPWSTR envs = GetEnvironmentStringsW (); + if (envs) { + LPWSTR next = envs; + while (*next) { + ep_rt_env_array_utf16_append (env_array, ep_rt_utf16_string_dup (next)); + next += ep_rt_utf16_string_len (next) + 1; + } + FreeEnvironmentStringsW (envs); + } +#else + gchar **next = NULL; + for (next = environ; *next != NULL; ++next) + ep_rt_env_array_utf16_append (env_array, ep_rt_utf8_to_utf16_string (*next, -1)); +#endif +} + #endif /* ENABLE_PERFTRACING */ MONO_EMPTY_SOURCE_FILE(eventpipe_rt_mono); diff --git a/src/mono/mono/eventpipe/ep-rt-mono.h b/src/mono/mono/eventpipe/ep-rt-mono.h index 48c67d318019..a70bb1199407 100644 --- a/src/mono/mono/eventpipe/ep-rt-mono.h +++ b/src/mono/mono/eventpipe/ep-rt-mono.h @@ -5,11 +5,11 @@ #include #ifdef ENABLE_PERFTRACING -#include "ep-rt-config.h" -#include "ep-thread.h" -#include "ep-types.h" -#include "ep-provider.h" -#include "ep-session-provider.h" +#include +#include +#include +#include +#include #include #include #include @@ -50,126 +50,261 @@ prefix_name ## _rt_ ## type_name ## _ ## func_name #endif #define EP_RT_DEFINE_LIST_PREFIX(prefix_name, list_name, list_type, item_type) \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, alloc) (list_type *list) { ; } \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, free) (list_type *list, void (*callback)(void *)) { \ - if (callback) { \ - for (GSList *l = list->list; l; l = l->next) { \ - callback (l->data); \ + if (list && list->list) { \ + if (callback) { \ + for (GSList *l = list->list; l; l = l->next) { \ + callback (l->data); \ + } \ } \ + g_slist_free (list->list); \ + list->list = NULL; \ } \ - g_slist_free (list->list); \ - list->list = NULL; \ } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, clear) (list_type *list, void (*callback)(void *)) { ep_rt_ ## list_name ## _free (list, callback); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, append) (list_type *list, item_type item) { list->list = g_slist_append (list->list, ((gpointer)(gsize)item)); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, remove) (list_type *list, const item_type item) { list->list = g_slist_remove (list->list, ((gconstpointer)(const gsize)item)); } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, clear) (list_type *list, void (*callback)(void *)) { \ + EP_ASSERT (list != NULL); \ + ep_rt_ ## list_name ## _free (list, callback); \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, append) (list_type *list, item_type item) { \ + EP_ASSERT (list != NULL); \ + list->list = g_slist_append (list->list, ((gpointer)(gsize)item)); \ + return list->list != NULL; \ + } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, remove) (list_type *list, const item_type item) { \ + EP_ASSERT (list != NULL); \ + list->list = g_slist_remove (list->list, ((gconstpointer)(const gsize)item)); \ + } \ static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, find) (const list_type *list, const item_type item_to_find, item_type *found_item) { \ + EP_ASSERT (list != NULL && found_item != NULL); \ GSList *found_glist_item = g_slist_find (list->list, ((gconstpointer)(const gsize)item_to_find)); \ *found_item = (found_glist_item != NULL) ? ((item_type)(gsize)(found_glist_item->data)) : ((item_type)(gsize)NULL); \ return *found_item != NULL; \ } \ - static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_empty) (const list_type *list) { return list->list == NULL; } + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_empty) (const list_type *list) { \ + EP_ASSERT (list != NULL); \ + return list->list == NULL; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_valid) (const list_type *list) { return (list != NULL && list->list == NULL); } #define EP_RT_DEFINE_LIST(list_name, list_type, item_type) \ EP_RT_DEFINE_LIST_PREFIX(ep, list_name, list_type, item_type) #define EP_RT_DEFINE_LIST_ITERATOR_PREFIX(prefix_name, list_name, list_type, iterator_type, item_type) \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_begin) (const list_type *list, iterator_type *iterator) { iterator->iterator = list->list; } \ - static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_end) (const list_type *list, const iterator_type *iterator) { return iterator->iterator == NULL; } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_next) (const list_type *list, iterator_type *iterator) { iterator->iterator = iterator->iterator->next; } \ - static inline item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_value) (const iterator_type *iterator) { return ((item_type)(gsize)(iterator->iterator->data)); } + static inline iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_begin) (const list_type *list) { \ + EP_ASSERT (list != NULL); \ + iterator_type temp; \ + temp.iterator = list->list; \ + return temp;\ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_end) (const list_type *list, const iterator_type *iterator) { \ + EP_ASSERT (list != NULL && iterator != NULL); \ + return iterator->iterator == NULL; \ + } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_next) (iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ + iterator->iterator = iterator->iterator->next; \ + } \ + static inline item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_value) (const iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ + return ((item_type)(gsize)(iterator->iterator->data)); \ + } #define EP_RT_DEFINE_LIST_ITERATOR(list_name, list_type, iterator_type, item_type) \ EP_RT_DEFINE_LIST_ITERATOR_PREFIX(ep, list_name, list_type, iterator_type, item_type) #define EP_RT_DEFINE_QUEUE_PREFIX(prefix_name, queue_name, queue_type, item_type) \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, alloc) (queue_type *queue) { queue->queue = g_queue_new (); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, free) (queue_type *queue) { g_queue_free (queue->queue); queue->queue = NULL; } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, pop_head) (queue_type *queue, item_type *item) { *item = ((item_type)(gsize)g_queue_pop_head (queue->queue)); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_head) (queue_type *queue, item_type item) { g_queue_push_head (queue->queue, ((gpointer)(gsize)item)); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_tail) (queue_type *queue, item_type item) { g_queue_push_tail (queue->queue, ((gpointer)(gsize)item)); } \ - static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_empty) (const queue_type *queue) { return g_queue_is_empty (queue->queue); } + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, free) (queue_type *queue) { \ + EP_ASSERT (queue != NULL); \ + g_queue_free (queue->queue); \ + queue->queue = NULL; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, pop_head) (queue_type *queue, item_type *item) { \ + EP_ASSERT (queue != NULL && item != NULL); \ + *item = ((item_type)(gsize)g_queue_pop_head (queue->queue)); \ + return true; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_head) (queue_type *queue, item_type item) { \ + EP_ASSERT (queue != NULL); \ + g_queue_push_head (queue->queue, ((gpointer)(gsize)item)); \ + return true; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_tail) (queue_type *queue, item_type item) { \ + EP_ASSERT (queue != NULL); \ + g_queue_push_tail (queue->queue, ((gpointer)(gsize)item)); \ + return true; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_empty) (const queue_type *queue) { \ + EP_ASSERT (queue != NULL); \ + return g_queue_is_empty (queue->queue); \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_valid) (const queue_type *queue) { return (queue != NULL && queue->queue != NULL); } #define EP_RT_DEFINE_QUEUE(queue_name, queue_type, item_type) \ EP_RT_DEFINE_QUEUE_PREFIX(ep, queue_name, queue_type, item_type) #define EP_RT_DEFINE_ARRAY_PREFIX(prefix_name, array_name, array_type, iterator_type, item_type) \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc) (array_type *ep_array) { ep_array->array = g_array_new (FALSE, FALSE, sizeof (item_type)); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc_capacity) (array_type *ep_array, size_t capacity) { ep_array->array = g_array_sized_new (FALSE, FALSE, sizeof (item_type), capacity); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, free) (array_type *ep_array) { g_array_free (ep_array->array, TRUE); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, append) (array_type *ep_array, item_type item) { g_array_append_val (ep_array->array, item); } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, clear) (array_type *ep_array, void (*callback)(void *)) { g_array_set_size (ep_array->array, 0); } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc) (array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + ep_array->array = g_array_new (FALSE, FALSE, sizeof (item_type)); \ + } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc_capacity) (array_type *ep_array, size_t capacity) { \ + EP_ASSERT (ep_array != NULL); \ + ep_array->array = g_array_sized_new (FALSE, FALSE, sizeof (item_type), capacity); \ + } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, free) (array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + g_array_free (ep_array->array, TRUE); \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, append) (array_type *ep_array, item_type item) { \ + EP_ASSERT (ep_array != NULL); \ + return g_array_append_val (ep_array->array, item) != NULL; \ + } \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, clear) (array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + g_array_set_size (ep_array->array, 0); \ + } \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, remove) (array_type *ep_array, iterator_type *pos) { \ + EP_ASSERT (ep_array != NULL && pos != NULL); \ EP_ASSERT (pos->index < ep_array->array->len); \ ep_array->array = g_array_remove_index_fast (ep_array->array, pos->index); \ } \ - static inline size_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, size) (const array_type *ep_array) { return ep_array->array->len; } \ - static inline item_type * EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, data) (const array_type *ep_array) { return (item_type *)ep_array->array->data; } + static inline size_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, size) (const array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + return ep_array->array->len; \ + } \ + static inline item_type * EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, data) (const array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + return (item_type *)ep_array->array->data; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, is_valid) (const array_type *ep_array) { return (ep_array != NULL && ep_array->array != NULL); } #define EP_RT_DEFINE_ARRAY(array_name, array_type, iterator_type, item_type) \ EP_RT_DEFINE_ARRAY_PREFIX(ep, array_name, array_type, iterator_type, item_type) #define EP_RT_DEFINE_ARRAY_ITERATOR_PREFIX(prefix_name, array_name, array_type, iterator_type, item_type) \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_begin) (const array_type *ep_array, iterator_type *iterator) { iterator->array = ep_array->array; iterator->index = 0; } \ - static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_end) (const array_type *ep_array, const iterator_type *iterator) { return iterator->index >= iterator->array->len; } \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_next) (const array_type *ep_array, iterator_type *iterator) { iterator->index++; } \ - static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_value) (const iterator_type *iterator) { return g_array_index(iterator->array, item_type, iterator->index); } + static inline iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_begin) (const array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + iterator_type temp; \ + temp.array = ep_array->array; \ + temp.index = 0; \ + return temp; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_end) (const array_type *ep_array, const iterator_type *iterator) { \ + EP_ASSERT (ep_array != NULL && iterator != NULL && iterator->array == ep_array->array); \ + return iterator->index >= iterator->array->len; \ + } \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_next) (iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ + iterator->index++; \ + } \ + static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_value) (const iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ + return g_array_index(iterator->array, item_type, iterator->index); \ + } + +#define EP_RT_DEFINE_ARRAY_REVERSE_ITERATOR_PREFIX(prefix_name, array_name, array_type, iterator_type, item_type) \ + static inline iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_begin) (const array_type *ep_array) { \ + EP_ASSERT (ep_array != NULL); \ + iterator_type temp; \ + temp.array = ep_array->array; \ + temp.index = ep_array->array->len - 1; \ + return temp; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_end) (const array_type *ep_array, const iterator_type *iterator) { \ + EP_ASSERT (ep_array != NULL && iterator != NULL && iterator->array == ep_array->array); \ + return iterator->index < 0; \ + } \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_next) (iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL && iterator->array != NULL); \ + iterator->index--; \ + } \ + static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_value) (const iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL && iterator->array != NULL); \ + EP_ASSERT (iterator->index >= 0); \ + return g_array_index(iterator->array, item_type, iterator->index); \ + } #define EP_RT_DEFINE_ARRAY_ITERATOR(array_name, array_type, iterator_type, item_type) \ EP_RT_DEFINE_ARRAY_ITERATOR_PREFIX(ep, array_name, array_type, iterator_type, item_type) +#define EP_RT_DEFINE_ARRAY_REVERSE_ITERATOR(array_name, array_type, iterator_type, item_type) \ + EP_RT_DEFINE_ARRAY_REVERSE_ITERATOR_PREFIX(ep, array_name, array_type, iterator_type, item_type) + #define EP_RT_DEFINE_HASH_MAP_PREFIX(prefix_name, hash_map_name, hash_map_type, key_type, value_type) \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, alloc) (hash_map_type *hash_map, uint32_t (*hash_callback)(const void *), bool (*eq_callback)(const void *, const void *), void (*key_free_callback)(void *), void (*value_free_callback)(void *)) { \ + EP_ASSERT (hash_map != NULL); \ + EP_ASSERT (key_free_callback == NULL); \ hash_map->table = g_hash_table_new_full ((GHashFunc)hash_callback, (GEqualFunc)eq_callback, (GDestroyNotify)key_free_callback, (GDestroyNotify)value_free_callback); \ hash_map->count = 0;\ } \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, free) (hash_map_type *hash_map) { \ + EP_ASSERT (hash_map != NULL); \ g_hash_table_destroy (hash_map->table); \ hash_map->table = NULL; \ hash_map->count = 0; \ } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, add) (hash_map_type *hash_map, key_type key, value_type value) { \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, add) (hash_map_type *hash_map, key_type key, value_type value) { \ + EP_ASSERT (hash_map != NULL); \ g_hash_table_replace (hash_map->table, (gpointer)key, ((gpointer)(gsize)value)); \ hash_map->count++; \ + return true; \ } \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, remove) (hash_map_type *hash_map, const key_type key) { \ + EP_ASSERT (hash_map != NULL); \ if (g_hash_table_remove (hash_map->table, (gconstpointer)key)) \ hash_map->count--; \ } \ static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, remove_all) (hash_map_type *hash_map) { \ + EP_ASSERT (hash_map != NULL); \ g_hash_table_remove_all (hash_map->table); \ hash_map->count = 0; \ } \ static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, lookup) (const hash_map_type *hash_map, const key_type key, value_type *value) { \ + EP_ASSERT (hash_map != NULL && value != NULL); \ gpointer _value = NULL; \ bool result = g_hash_table_lookup_extended (hash_map->table, (gconstpointer)key, NULL, &_value); \ *value = ((value_type)(gsize)_value); \ return result; \ } \ static inline uint32_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, count) (const hash_map_type *hash_map) { \ + EP_ASSERT (hash_map != NULL); \ return hash_map->count; \ + } \ + static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, is_valid) (const hash_map_type *hash_map) { \ + EP_ASSERT (hash_map != NULL); \ + return (hash_map != NULL && hash_map->table != NULL); \ } #define EP_RT_DEFINE_HASH_MAP(hash_map_name, hash_map_type, key_type, value_type) \ EP_RT_DEFINE_HASH_MAP_PREFIX(ep, hash_map_name, hash_map_type, key_type, value_type) #define EP_RT_DEFINE_HASH_MAP_ITERATOR_PREFIX(prefix_name, hash_map_name, hash_map_type, iterator_type, key_type, value_type) \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_begin) (const hash_map_type *hash_map, iterator_type *iterator) { \ - g_hash_table_iter_init (&iterator->iterator, hash_map->table); \ + static inline iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_begin) (const hash_map_type *hash_map) { \ + EP_ASSERT (hash_map != NULL); \ + iterator_type temp; \ + g_hash_table_iter_init (&temp.iterator, hash_map->table); \ if (hash_map->table && hash_map->count > 0) \ - iterator->end = !g_hash_table_iter_next (&iterator->iterator, &iterator->key, &iterator->value); \ + temp.end = !g_hash_table_iter_next (&temp.iterator, &temp.key, &temp.value); \ else \ - iterator->end = true; \ + temp.end = true; \ + return temp; \ } \ static inline bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_end) (const hash_map_type *hash_map, const iterator_type *iterator) { \ + EP_ASSERT (hash_map != NULL && iterator != NULL); \ return iterator->end; \ } \ - static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_next) (const hash_map_type *hash_map, iterator_type *iterator) { \ + static inline void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_next) (iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ iterator->end = !g_hash_table_iter_next (&iterator->iterator, &iterator->key, &iterator->value); \ } \ static inline key_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_key) (const iterator_type *iterator) { \ - return ((key_type)(gsize)iterator->key); \ + EP_ASSERT (iterator != NULL); \ + return ((key_type)(gsize)iterator->key); \ } \ static inline value_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_value) (const iterator_type *iterator) { \ + EP_ASSERT (iterator != NULL); \ return ((value_type)(gsize)iterator->value); \ } @@ -253,6 +388,9 @@ ep_rt_mono_system_time_get (EventPipeSystemTime *system_time); int64_t ep_rt_mono_system_timestamp_get (void); +void +ep_rt_mono_os_environment_get_utf16 (ep_rt_env_array_utf16_t *env_array); + #ifndef EP_RT_MONO_USE_STATIC_RUNTIME static inline @@ -477,6 +615,39 @@ ep_rt_mono_w32file_close (gpointer handle) #endif } +static +inline +void +ep_rt_mono_thread_setup (bool background_thread) +{ +#ifdef EP_RT_MONO_USE_STATIC_RUNTIME + // NOTE, under netcore, only root domain exists. + if (!mono_thread_current ()) { + MonoThread *thread = mono_thread_internal_attach (mono_get_root_domain ()); + if (background_thread && thread) { + mono_thread_set_state (thread, ThreadState_Background); + mono_thread_info_set_flags (MONO_THREAD_INFO_FLAGS_NO_SAMPLE); + } + } +#else + ep_rt_mono_func_table_get ()->ep_rt_mono_thread_attach (background_thread); +#endif +} + +static +inline +void +ep_rt_mono_thread_teardown (void) +{ +#ifdef EP_RT_MONO_USE_STATIC_RUNTIME + MonoThread *current_thread = mono_thread_current (); + if (current_thread) + mono_thread_internal_detach (current_thread); +#else + ep_rt_mono_func_table_get ()->ep_rt_mono_thread_detach (); +#endif +} + /* * Atomics. */ @@ -582,16 +753,15 @@ inline bool ep_rt_config_aquire (void) { - ep_rt_spin_lock_aquire (ep_rt_mono_config_lock_get ()); - return true; + return ep_rt_spin_lock_aquire (ep_rt_mono_config_lock_get ()); } static inline -void +bool ep_rt_config_release (void) { - ep_rt_spin_lock_release (ep_rt_mono_config_lock_get ()); + return ep_rt_spin_lock_release (ep_rt_mono_config_lock_get ()); } #ifdef EP_CHECKED_BUILD @@ -615,12 +785,38 @@ ep_rt_config_requires_lock_not_held (void) static inline bool -ep_rt_walk_managed_stack_for_current_thread (EventPipeStackContents *stack_contents) +ep_rt_walk_managed_stack_for_thread ( + ep_rt_thread_handle_t thread, + EventPipeStackContents *stack_contents) { // TODO: Implement. return true; } +static +inline +bool +ep_rt_method_get_simple_assembly_name ( + ep_rt_method_desc_t *method, + ep_char8_t *name, + size_t name_len) +{ + //TODO: Implement. + return false; +} + +static +inline +bool +ep_rt_method_get_full_name ( + ep_rt_method_desc_t *method, + ep_char8_t *name, + size_t name_len) +{ + //TODO: Implement. + return false; +} + static inline void @@ -637,6 +833,46 @@ ep_rt_init_providers_and_events (void) ; } +static +inline +bool +ep_rt_providers_validate_all_disabled (void) +{ + return true; +} + +static +inline +void +ep_rt_prepare_provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data) +{ + ; +} + +static +inline +void +ep_rt_provider_invoke_callback ( + EventPipeCallback callback_func, + const uint8_t *source_id, + unsigned long is_enabled, + uint8_t level, + uint64_t match_any_keywords, + uint64_t match_all_keywords, + EventFilterDescriptor *filter_data, + void *callback_data) +{ + EP_ASSERT (callback_func != NULL); + (*callback_func)( + source_id, + is_enabled, + level, + match_any_keywords, + match_all_keywords, + filter_data, + callback_data); +} + /* * EventPipeBuffer. */ @@ -662,7 +898,7 @@ EP_RT_DEFINE_LIST_ITERATOR (event_list, ep_rt_event_list_t, ep_rt_event_list_ite * EventPipeFile. */ -EP_RT_DEFINE_HASH_MAP(metadata_labels, ep_rt_metadata_labels_hash_map_t, EventPipeEvent *, uint32_t) +EP_RT_DEFINE_HASH_MAP(metadata_labels_hash, ep_rt_metadata_labels_hash_map_t, EventPipeEvent *, uint32_t) EP_RT_DEFINE_HASH_MAP(stack_hash, ep_rt_stack_hash_map_t, StackHashKey *, StackHashEntry *) EP_RT_DEFINE_HASH_MAP_ITERATOR(stack_hash, ep_rt_stack_hash_map_t, ep_rt_stack_hash_map_iterator_t, StackHashKey *, StackHashEntry *) @@ -750,51 +986,13 @@ ep_rt_config_value_get_circular_mb (void) */ static -inline -void -ep_rt_sample_profiler_init (EventPipeProviderCallbackDataQueue *provider_callback_data_queue) -{ - // TODO: Not supported. -} - -static -inline void -ep_rt_sample_profiler_enable (void) +ep_rt_sample_profiler_write_sampling_event_for_threads (ep_rt_thread_handle_t sampling_thread, EventPipeEvent *sampling_event) { - // TODO: Not supported. -} - -static -inline -void -ep_rt_sample_profiler_disable (void) -{ - // TODO: Not supported. -} - -static -inline -uint32_t -ep_rt_sample_profiler_get_sampling_rate (void) -{ - // TODO: Not supported. - return 0; -} - -static -inline -void -ep_rt_sample_profiler_set_sampling_rate (uint32_t nanoseconds) -{ - // TODO: Not supported. -} - -static -void -ep_rt_sample_profiler_can_start_sampling (void) -{ - // TODO: Not supported. + // TODO: Implement. + // Suspend threads. + // Stack walk each thread, write sample event. + // Resume threads. } static @@ -822,6 +1020,9 @@ EP_RT_DEFINE_LIST_ITERATOR (sequence_point_list, ep_rt_sequence_point_list_t, ep * EventPipeThread. */ +EP_RT_DEFINE_LIST (thread_list, ep_rt_thread_list_t, EventPipeThread *) +EP_RT_DEFINE_LIST_ITERATOR (thread_list, ep_rt_thread_list_t, ep_rt_thread_list_iterator_t, EventPipeThread *) + EP_RT_DEFINE_ARRAY (thread_array, ep_rt_thread_array_t, ep_rt_thread_array_iterator_t, EventPipeThread *) EP_RT_DEFINE_ARRAY_ITERATOR (thread_array, ep_rt_thread_array_t, ep_rt_thread_array_iterator_t, EventPipeThread *) @@ -947,7 +1148,7 @@ EventPipeWaitHandle ep_rt_wait_event_get_wait_handle (ep_rt_wait_event_handle_t *wait_event) { EP_ASSERT (wait_event != NULL); - return (EventPipeWaitHandle)wait_event; + return (EventPipeWaitHandle)wait_event->event; } static @@ -989,6 +1190,14 @@ ep_rt_process_detach (void) #endif } +static +inline +bool +ep_rt_process_shutdown (void) +{ + return ep_rt_process_detach (); +} + static inline void @@ -1026,6 +1235,22 @@ ep_rt_create_activity_id ( memcpy (activity_id_d, &d, sizeof (d)); } +static +inline +bool +ep_rt_is_running (void) +{ + return ep_rt_process_detach (); +} + +static +inline +void +ep_rt_execute_rundown (void) +{ + //TODO: Implement. +} + /* * Objects. */ @@ -1056,19 +1281,57 @@ ep_rt_object_free (void *ptr) * PAL. */ +typedef struct ep_rt_thread_params_t { + ep_rt_thread_handle_t thread; + EventPipeThreadType thread_type; + ep_rt_thread_start_func thread_func; + void *thread_params; +} ep_rt_thread_params_t; + +typedef struct _rt_mono_thread_params_internal_t { + ep_rt_thread_params_t thread_params; + bool background_thread; +} rt_mono_thread_params_internal_t; + +EP_RT_DEFINE_THREAD_FUNC (ep_rt_thread_mono_start_func) +{ + rt_mono_thread_params_internal_t *thread_params = (rt_mono_thread_params_internal_t *)data; + + ep_rt_mono_thread_setup (thread_params->background_thread); + + thread_params->thread_params.thread = ep_rt_thread_get_handle (); + mono_thread_start_return_t result = thread_params->thread_params.thread_func (thread_params); + + ep_rt_mono_thread_teardown (); + + g_free (thread_params); + + return result; +} + static inline bool ep_rt_thread_create ( void *thread_func, void *params, + EventPipeThreadType thread_type, void *id) { + rt_mono_thread_params_internal_t *thread_params = g_new0 (rt_mono_thread_params_internal_t, 1); + if (thread_params) { + thread_params->thread_params.thread_type = thread_type; + thread_params->thread_params.thread_func = thread_func; + thread_params->thread_params.thread_params = params; + thread_params->background_thread = true; #ifdef EP_RT_MONO_USE_STATIC_RUNTIME - return (bool)mono_thread_platform_create_thread ((ep_rt_thread_start_func)thread_func, params, NULL, (ep_rt_thread_id_t *)id); + return (bool)mono_thread_platform_create_thread (ep_rt_thread_mono_start_func, thread_params, NULL, (ep_rt_thread_id_t *)id); #else - return (bool)ep_rt_mono_func_table_get ()->ep_rt_mono_thread_platform_create_thread ((ep_rt_thread_start_func)thread_func, params, NULL, (ep_rt_thread_id_t *)id); + return (bool)ep_rt_mono_func_table_get ()->ep_rt_mono_thread_platform_create_thread (ep_rt_thread_mono_start_func, thread_params, NULL, (ep_rt_thread_id_t *)id); #endif + } + + return false; } static @@ -1285,6 +1548,17 @@ ep_rt_temp_path_get ( ep_exit_error_handler (); } +EP_RT_DEFINE_ARRAY (env_array_utf16, ep_rt_env_array_utf16_t, ep_rt_env_array_utf16_iterator_t, ep_char16_t *) +EP_RT_DEFINE_ARRAY_ITERATOR (env_array_utf16, ep_rt_env_array_utf16_t, ep_rt_env_array_utf16_iterator_t, ep_char16_t *) + +static +inline +void +ep_rt_os_environment_get_utf16 (ep_rt_env_array_utf16_t *env_array) +{ + ep_rt_mono_os_environment_get_utf16 (env_array); +} + /* * SpinLock. */ @@ -1316,7 +1590,7 @@ ep_rt_spin_lock_free (ep_rt_spin_lock_handle_t *spin_lock) static inline -void +bool ep_rt_spin_lock_aquire (ep_rt_spin_lock_handle_t *spin_lock) { if (spin_lock && spin_lock->lock) { @@ -1326,11 +1600,12 @@ ep_rt_spin_lock_aquire (ep_rt_spin_lock_handle_t *spin_lock) spin_lock->lock_is_held = true; #endif } + return true; } static inline -void +bool ep_rt_spin_lock_release (ep_rt_spin_lock_handle_t *spin_lock) { if (spin_lock && spin_lock->lock) { @@ -1340,6 +1615,7 @@ ep_rt_spin_lock_release (ep_rt_spin_lock_handle_t *spin_lock) #endif mono_coop_mutex_unlock (spin_lock->lock); } + return true; } #ifdef EP_CHECKED_BUILD @@ -1360,18 +1636,17 @@ ep_rt_spin_lock_requires_lock_not_held (const ep_rt_spin_lock_handle_t *spin_loc } #endif -/* - * String. - */ - static -inline -size_t -ep_rt_utf8_string_len (const ep_char8_t *str) +bool +ep_rt_spin_lock_is_valid (const ep_rt_spin_lock_handle_t *spin_lock) { - return g_utf8_strlen ((const gchar *)str, -1); + return (spin_lock != NULL && spin_lock->lock != NULL); } +/* + * String. + */ + static inline int @@ -1444,6 +1719,18 @@ ep_rt_utf8_string_strtok ( format, ...) \ g_snprintf ((gchar *)str, (gulong)str_len, (const gchar *)format, __VA_ARGS__) +static +inline +ep_char16_t * +ep_rt_utf16_string_dup (const ep_char16_t *str) +{ + size_t str_size = (ep_rt_utf16_string_len (str) + 1) * sizeof (ep_char16_t); + ep_char16_t *str_dup = (ep_char16_t *)malloc (str_size); + if (str_dup) + memcpy (str_dup, str, str_size); + return str_dup; +} + static inline void @@ -1478,28 +1765,6 @@ ep_rt_utf16_string_free (ep_char16_t *str) g_free (str); } -static -inline -wchar_t * -ep_rt_utf8_to_wcs_string ( - const ep_char8_t *str, - size_t len) -{ -#if WCHAR_MAX == 0xFFFF - return (wchar_t *)ep_rt_utf8_to_utf16_string (str, len); -#else - return (wchar_t *)g_utf8_to_ucs4 (str, len, NULL, NULL, NULL); -#endif -} - -static -inline -void -ep_rt_wcs_string_free (wchar_t *str) -{ - g_free (str); -} - static inline const ep_char8_t * @@ -1517,40 +1782,28 @@ ep_rt_managed_command_line_get (void) return *managed_command_line_get_ref (); } -/* - * Thread. - */ static -inline -void -ep_rt_thread_setup (bool background_thread) +const ep_char8_t * +ep_rt_diagnostics_command_line_get (void) { -#ifdef EP_RT_MONO_USE_STATIC_RUNTIME - // NOTE, under netcore, only root domain exists. - if (!mono_thread_current ()) { - MonoThread *thread = mono_thread_internal_attach (mono_get_root_domain ()); - if (background_thread && thread) { - mono_thread_set_state (thread, ThreadState_Background); - mono_thread_info_set_flags (MONO_THREAD_INFO_FLAGS_NO_SAMPLE); - } - } -#else - ep_rt_mono_func_table_get ()->ep_rt_mono_thread_attach (background_thread); -#endif + const ep_char8_t * cmd_line = ep_rt_managed_command_line_get (); + + // Checkout https://github.com/dotnet/coreclr/pull/24433 for more information about this fall back. + if (cmd_line == NULL) + cmd_line = ep_rt_os_command_line_get (); + + return cmd_line; } +/* + * Thread. + */ static inline void -ep_rt_thread_teardown (void) +ep_rt_thread_setup () { -#ifdef EP_RT_MONO_USE_STATIC_RUNTIME - MonoThread *current_thread = mono_thread_current (); - if (current_thread) - mono_thread_internal_detach (current_thread); -#else - ep_rt_mono_func_table_get ()->ep_rt_mono_thread_detach (); -#endif + ep_rt_mono_thread_setup (false); } static @@ -1585,6 +1838,77 @@ ep_rt_thread_get_or_create (void) #endif } +static +inline +ep_rt_thread_handle_t +ep_rt_thread_get_handle (void) +{ + return mono_thread_info_current (); +} + +static +inline +size_t +ep_rt_thread_get_id (ep_rt_thread_handle_t thread_handle) +{ + return MONO_NATIVE_THREAD_ID_TO_UINT (mono_thread_info_get_tid (thread_handle)); +} + +static +inline +bool +ep_rt_thread_has_started (ep_rt_thread_handle_t thread_handle) +{ + return thread_handle == ep_rt_thread_get_handle (); +} + +static +inline +ep_rt_thread_activity_id_handle_t +ep_rt_thread_get_activity_id_handle (void) +{ + return ep_rt_thread_get_or_create (); +} + +static +inline +const uint8_t * +ep_rt_thread_get_activity_id_cref (ep_rt_thread_activity_id_handle_t activity_id_handle) +{ + EP_ASSERT (!"EP_THREAD_INCLUDE_ACTIVITY_ID should have been defined on Mono"); + return NULL; +} + +static +inline +void +ep_rt_thread_get_activity_id ( + ep_rt_thread_activity_id_handle_t activity_id_handle, + uint8_t *activity_id, + uint32_t activity_id_len) +{ + EP_ASSERT (activity_id_handle != NULL); + EP_ASSERT (activity_id != NULL); + EP_ASSERT (activity_id_len == EP_ACTIVITY_ID_SIZE); + + memcpy (activity_id, ep_thread_get_activity_id_cref (activity_id_handle), EP_ACTIVITY_ID_SIZE); +} + +static +inline +void +ep_rt_thread_set_activity_id ( + ep_rt_thread_activity_id_handle_t activity_id_handle, + const uint8_t *activity_id, + uint32_t activity_id_len) +{ + EP_ASSERT (activity_id_handle != NULL); + EP_ASSERT (activity_id != NULL); + EP_ASSERT (activity_id_len == EP_ACTIVITY_ID_SIZE); + + memcpy (ep_thread_get_activity_id_ref (activity_id_handle), activity_id, EP_ACTIVITY_ID_SIZE); +} + static inline int32_t diff --git a/src/mono/mono/eventpipe/ep-rt-types-mono.h b/src/mono/mono/eventpipe/ep-rt-types-mono.h index f0a5a995b796..916c7378de29 100644 --- a/src/mono/mono/eventpipe/ep-rt-types-mono.h +++ b/src/mono/mono/eventpipe/ep-rt-types-mono.h @@ -5,7 +5,7 @@ #include #ifdef ENABLE_PERFTRACING -#include "ep-rt-config.h" +#include #include #include #include @@ -89,6 +89,9 @@ typedef struct _rt_mono_array_iterator_internal_t ep_rt_thread_session_state_arr typedef struct _rt_mono_list_internal_t ep_rt_sequence_point_list_t; typedef struct _rt_mono_list_iterator_internal_t ep_rt_sequence_point_list_iterator_t; +typedef struct _rt_mono_list_internal_t ep_rt_thread_list_t; +typedef struct _rt_mono_list_iterator_internal_t ep_rt_thread_list_iterator_t; + typedef struct _rt_mono_queue_internal_t ep_rt_provider_callback_data_queue_t; typedef struct _rt_mono_table_internal_t ep_rt_metadata_labels_hash_map_t; @@ -115,7 +118,12 @@ typedef struct _rt_mono_array_iterator_internal_t ep_rt_session_id_array_iterato typedef struct _rt_mono_array_internal_t ep_rt_provider_config_array_t; typedef struct _rt_mono_array_iterator_internal_t ep_rt_provider_config_array_iterator_t; -typedef MonoThreadHandle ep_rt_thread_handle_t; +typedef struct _rt_mono_array_internal_t ep_rt_env_array_utf16_t; +typedef struct _rt_mono_array_iterator_internal_t ep_rt_env_array_utf16_iterator_t; + +typedef THREAD_INFO_TYPE * ep_rt_thread_handle_t; + +typedef EventPipeThread * ep_rt_thread_activity_id_handle_t; typedef gpointer ep_rt_file_handle_t; diff --git a/src/mono/mono/eventpipe/test/CMakeLists.txt b/src/mono/mono/eventpipe/test/CMakeLists.txt new file mode 100644 index 000000000000..af29b0aaf213 --- /dev/null +++ b/src/mono/mono/eventpipe/test/CMakeLists.txt @@ -0,0 +1,65 @@ +if(ENABLE_PERFTRACING) + + if(ENABLE_EVENTPIPE_TEST AND (NOT DISABLE_LIBS) AND (NOT DISABLE_EXECUTABLES)) + set(EVENTPIPE_TEST_SOURCES "") + set(EVENTPIPE_TEST_HEADERS "") + + list(APPEND EVENTPIPE_TEST_SOURCES + ep-buffer-manager-tests.c + ep-buffer-tests.c + ep-fake-tests.c + ep-fastserializer-tests.c + ep-file-tests.c + ep-provider-callback-dataqueue-tests.c + ep-rt-tests.c + ep-session-tests.c + ep-setup-tests.c + ep-teardown-tests.c + ep-tests.c + ep-test-runner.c + ep-test-driver.c + ep-thread-tests.c + ) + + list(APPEND EVENTPIPE_TEST_HEADERS + ep-tests.h + ep-tests-debug.h + ) + + include_directories( + ${PROJECT_SOURCE_DIR}/../../native/ + ${PROJECT_SOURCE_DIR}/.. + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/eglib + ${PROJECT_BINARY_DIR}/.. + ${PROJECT_BINARY_DIR}/eglib + ) + + if(HAVE_SYS_ICU) + if(ICU_LIBDIR) + set(ICU_LDFLAGS "-L${ICU_LIBDIR}") + endif() + endif() + + if(HOST_DARWIN) + set(OS_LIBS "-framework CoreFoundation" "-framework Foundation") + elseif(HOST_IOS) + set(OS_LIBS "-framework CoreFoundation" "-lobjc" "-lc++") + elseif(HOST_ANDROID) + set(OS_LIBS m dl log) + elseif(HOST_LINUX) + set(OS_LIBS pthread m dl) + endif() + + set(CMAKE_SKIP_RPATH 1) + add_executable(ep-test ${EVENTPIPE_TEST_SOURCES}) + target_link_libraries(ep-test monosgen-static ${OS_LIBS} ${ICONV_LIB} ${LLVM_LIBS} ${ICU_LIBS}) + if(ICU_LDFLAGS) + set_target_properties(ep-test PROPERTIES LINK_FLAGS ${ICU_LDFLAGS}) + endif() + install(TARGETS ep-test RUNTIME) + else(ENABLE_EVENTPIPE_TEST AND (NOT DISABLE_LIBS) AND (NOT DISABLE_EXECUTABLES)) + message(STATUS "Skip building native EventPipe library test runner.") + endif(ENABLE_EVENTPIPE_TEST AND (NOT DISABLE_LIBS) AND (NOT DISABLE_EXECUTABLES)) + +endif(ENABLE_PERFTRACING) diff --git a/src/mono/mono/eventpipe/test/ep-buffer-manager-tests.c b/src/mono/mono/eventpipe/test/ep-buffer-manager-tests.c index ce0106164fd2..72018585f23a 100644 --- a/src/mono/mono/eventpipe/test/ep-buffer-manager-tests.c +++ b/src/mono/mono/eventpipe/test/ep-buffer-manager-tests.c @@ -1,12 +1,12 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-config.h" -#include "mono/eventpipe/ep-buffer.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-event-payload.h" -#include "mono/eventpipe/ep-session.h" -#include "mono/eventpipe/ep-buffer-manager.h" -#include "mono/eventpipe/ep-file.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" @@ -65,6 +65,7 @@ RESULT buffer_manager_init ( EventPipeSerializationFormat format, EventPipeBufferManager **buffer_manager, + ep_rt_thread_handle_t *thread_handle, EventPipeThread **thread, EventPipeSession **session, EventPipeProvider **provider, @@ -81,7 +82,7 @@ buffer_manager_init ( EventPipeProviderConfiguration provider_config; EventPipeProviderConfiguration *current_provider_config; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -125,6 +126,10 @@ buffer_manager_init ( *thread = ep_thread_get_or_create (); ep_raise_error_if_nok (*thread != NULL); + test_location = 6; + + *thread_handle = ep_rt_thread_get_handle (); + ep_on_exit: ep_provider_config_fini (current_provider_config); return result; @@ -142,7 +147,7 @@ static bool write_events ( EventPipeBufferManager *buffer_manager, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeSession *session, EventPipeEvent *ep_event, uint32_t event_count, @@ -180,12 +185,13 @@ test_create_free_buffer_manager (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -209,6 +215,7 @@ test_buffer_manager_init_sequence_point (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; @@ -216,7 +223,7 @@ test_buffer_manager_init_sequence_point (void) EventPipeSequencePoint sequence_point; EventPipeSequencePoint *current_sequence_point = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -248,12 +255,13 @@ test_buffer_manager_write_event (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -263,7 +271,7 @@ test_buffer_manager_write_event (void) test_location = 2; - ep_raise_error_if_nok (write_events (buffer_manager, thread, session, ep_event, 1, NULL) == true); + ep_raise_error_if_nok (write_events (buffer_manager, thread_handle, session, ep_event, 1, NULL) == true); EP_LOCK_ENTER (section1) ep_buffer_manager_suspend_write_event (buffer_manager, ep_session_get_index (session)); @@ -285,13 +293,14 @@ test_buffer_manager_read_event (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; EventPipeEventInstance *ep_event_instance = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -301,7 +310,7 @@ test_buffer_manager_read_event (void) test_location = 2; - ep_raise_error_if_nok (write_events (buffer_manager, thread, session, ep_event, 1, NULL) == true); + ep_raise_error_if_nok (write_events (buffer_manager, thread_handle, session, ep_event, 1, NULL) == true); EP_LOCK_ENTER (section1) ep_buffer_manager_suspend_write_event (buffer_manager, ep_session_get_index (session)); @@ -338,12 +347,13 @@ test_buffer_manager_deallocate_buffers (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -353,7 +363,7 @@ test_buffer_manager_deallocate_buffers (void) test_location = 2; - ep_raise_error_if_nok (write_events (buffer_manager, thread, session, ep_event, 1, NULL) == true); + ep_raise_error_if_nok (write_events (buffer_manager, thread_handle, session, ep_event, 1, NULL) == true); EP_LOCK_ENTER (section1) ep_buffer_manager_suspend_write_event (buffer_manager, ep_session_get_index (session)); @@ -377,13 +387,14 @@ test_buffer_manager_write_events_to_file (EventPipeSerializationFormat format) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; bool events_written = false; - result = buffer_manager_init (format, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (format, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -393,7 +404,7 @@ test_buffer_manager_write_events_to_file (EventPipeSerializationFormat format) test_location = 2; - ep_raise_error_if_nok (write_events (buffer_manager, thread, session, ep_event, 10, NULL) == true); + ep_raise_error_if_nok (write_events (buffer_manager, thread_handle, session, ep_event, 10, NULL) == true); test_location = 3; @@ -437,12 +448,13 @@ test_buffer_manager_oom (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -452,7 +464,7 @@ test_buffer_manager_oom (void) test_location = 2; - ep_raise_error_if_nok (write_events (buffer_manager, thread, session, ep_event, 1000 * 1000, NULL) == false); + ep_raise_error_if_nok (write_events (buffer_manager, thread_handle, session, ep_event, 1000 * 1000, NULL) == false); EP_LOCK_ENTER (section1) ep_buffer_manager_suspend_write_event (buffer_manager, ep_session_get_index (session)); @@ -474,6 +486,7 @@ test_buffer_manager_perf (void) RESULT result = NULL; uint32_t test_location = 0; EventPipeBufferManager *buffer_manager = NULL; + ep_rt_thread_handle_t thread_handle; EventPipeThread *thread = NULL; EventPipeSession *session = NULL; EventPipeProvider *provider = NULL; @@ -488,7 +501,7 @@ test_buffer_manager_perf (void) EventPipeFile *null_file = NULL; bool done = false; - result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread, &session, &provider, &ep_event); + result = buffer_manager_init (EP_SERIALIZATION_FORMAT_NETTRACE_V4, &buffer_manager, &thread_handle, &thread, &session, &provider, &ep_event); ep_raise_error_if_nok (result == NULL); @@ -507,7 +520,7 @@ test_buffer_manager_perf (void) while (!done) { int64_t start = ep_perf_timestamp_get (); - write_result = write_events (buffer_manager, thread, session, ep_event, 10 * 1000 * 1000, &events_written); + write_result = write_events (buffer_manager, thread_handle, session, ep_event, 10 * 1000 * 1000, &events_written); int64_t stop = ep_perf_timestamp_get (); accumulted_buffer_manager_write_time_ticks += stop - start; diff --git a/src/mono/mono/eventpipe/test/ep-buffer-tests.c b/src/mono/mono/eventpipe/test/ep-buffer-tests.c index f6b818113710..e1bde22dfc4d 100644 --- a/src/mono/mono/eventpipe/test/ep-buffer-tests.c +++ b/src/mono/mono/eventpipe/test/ep-buffer-tests.c @@ -1,10 +1,10 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-config.h" -#include "mono/eventpipe/ep-buffer.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-event-payload.h" -#include "mono/eventpipe/ep-session.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" @@ -70,7 +70,7 @@ load_buffer_with_events_init ( EventPipeProviderConfiguration provider_config; EventPipeProviderConfiguration *current_provider_config; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -140,7 +140,7 @@ load_buffer ( } if (event_data) { ep_event_payload_init (&payload, (uint8_t *)event_data, event_data_len); - result = ep_buffer_write_event (buffer, ep_buffer_get_writer_thread (buffer), session, ep_event, &payload, NULL, NULL, NULL); + result = ep_buffer_write_event (buffer, ep_rt_thread_get_handle (), session, ep_event, &payload, NULL, NULL, NULL); ep_event_payload_fini (&payload); if (!perf_test) diff --git a/src/mono/mono/eventpipe/test/ep-fastserializer-tests.c b/src/mono/mono/eventpipe/test/ep-fastserializer-tests.c index a4abdcb5f201..6df68f607785 100644 --- a/src/mono/mono/eventpipe/test/ep-fastserializer-tests.c +++ b/src/mono/mono/eventpipe/test/ep-fastserializer-tests.c @@ -1,9 +1,9 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-block.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-event-instance.h" -#include "mono/eventpipe/ep-stream.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" diff --git a/src/mono/mono/eventpipe/test/ep-file-tests.c b/src/mono/mono/eventpipe/test/ep-file-tests.c index f04fd685ba1f..0edc18d9b44c 100644 --- a/src/mono/mono/eventpipe/test/ep-file-tests.c +++ b/src/mono/mono/eventpipe/test/ep-file-tests.c @@ -1,9 +1,9 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-config.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-event-instance.h" -#include "mono/eventpipe/ep-file.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" diff --git a/src/mono/mono/eventpipe/test/ep-provider-callback-dataqueue-tests.c b/src/mono/mono/eventpipe/test/ep-provider-callback-dataqueue-tests.c index 06a45c4c6a5e..77636f833440 100644 --- a/src/mono/mono/eventpipe/test/ep-provider-callback-dataqueue-tests.c +++ b/src/mono/mono/eventpipe/test/ep-provider-callback-dataqueue-tests.c @@ -1,5 +1,5 @@ -#include "mono/eventpipe/ep.h" -#include "eglib/test/test.h" +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" @@ -49,7 +49,7 @@ test_provider_callback_data_queue (void) provider_callback, NULL, 1, - EP_EVENT_LEVEL_LOG_ALWAYS, + EP_EVENT_LEVEL_LOGALWAYS, true); for (uint32_t i = 0; i < 1000; ++i) diff --git a/src/mono/mono/eventpipe/test/ep-rt-tests.c b/src/mono/mono/eventpipe/test/ep-rt-tests.c index 5956237982c5..9a0025502cf7 100644 --- a/src/mono/mono/eventpipe/test/ep-rt-tests.c +++ b/src/mono/mono/eventpipe/test/ep-rt-tests.c @@ -1,5 +1,5 @@ -#include "mono/eventpipe/ep.h" -#include "eglib/test/test.h" +#include +#include #ifdef _CRTDBG_MAP_ALLOC static _CrtMemState eventpipe_memory_start_snapshot; diff --git a/src/mono/mono/eventpipe/test/ep-session-tests.c b/src/mono/mono/eventpipe/test/ep-session-tests.c index 5d1e2854cf8e..7800a12756c0 100644 --- a/src/mono/mono/eventpipe/test/ep-session-tests.c +++ b/src/mono/mono/eventpipe/test/ep-session-tests.c @@ -1,8 +1,8 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-config.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-session.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" @@ -30,7 +30,7 @@ test_create_delete_session (void) EventPipeSession *test_session = NULL; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -71,7 +71,7 @@ test_add_session_providers (void) EventPipeSessionProvider *test_session_provider = NULL; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -96,37 +96,43 @@ test_add_session_providers (void) test_location = 2; - if (!ep_session_is_valid (test_session)) { - result = FAILED ("ep_session_is_valid returned false with session providers"); - ep_raise_error (); - } + EP_LOCK_ENTER (section2) + if (!ep_session_is_valid (test_session)) { + result = FAILED ("ep_session_is_valid returned false with session providers"); + ep_raise_error_holding_lock (section2); + } + EP_LOCK_EXIT (section2) test_location = 3; - test_session_provider = ep_session_provider_alloc (TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + test_session_provider = ep_session_provider_alloc (TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (test_session_provider != NULL); test_location = 4; - EP_LOCK_ENTER (section2) + EP_LOCK_ENTER (section3) ep_session_add_session_provider (test_session, test_session_provider); - EP_LOCK_EXIT (section2) + EP_LOCK_EXIT (section3) test_session_provider = NULL; - if (!ep_session_is_valid (test_session)) { - result = FAILED ("ep_session_is_valid returned false with session providers"); - ep_raise_error (); - } + EP_LOCK_ENTER (section4) + if (!ep_session_is_valid (test_session)) { + result = FAILED ("ep_session_is_valid returned false with session providers"); + ep_raise_error_holding_lock (section4); + } + EP_LOCK_EXIT (section4) test_location = 5; ep_session_disable (test_session); - if (ep_session_is_valid (test_session)) { - result = FAILED ("ep_session_is_valid returned true without session providers"); - ep_raise_error (); - } + EP_LOCK_ENTER (section5) + if (ep_session_is_valid (test_session)) { + result = FAILED ("ep_session_is_valid returned true without session providers"); + ep_raise_error_holding_lock (section5); + } + EP_LOCK_EXIT (section5) ep_on_exit: ep_session_free (test_session); @@ -147,7 +153,7 @@ test_session_special_get_set (void) EventPipeSession *test_session = NULL; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; diff --git a/src/mono/mono/eventpipe/test/ep-setup-tests.c b/src/mono/mono/eventpipe/test/ep-setup-tests.c index 30e51463bc16..30743664ac6c 100644 --- a/src/mono/mono/eventpipe/test/ep-setup-tests.c +++ b/src/mono/mono/eventpipe/test/ep-setup-tests.c @@ -1,5 +1,5 @@ -#include "mono/eventpipe/ep.h" -#include "eglib/test/test.h" +#include +#include #include #include diff --git a/src/mono/mono/eventpipe/test/ep-teardown-tests.c b/src/mono/mono/eventpipe/test/ep-teardown-tests.c index 3800f9360e72..8a074206c498 100644 --- a/src/mono/mono/eventpipe/test/ep-teardown-tests.c +++ b/src/mono/mono/eventpipe/test/ep-teardown-tests.c @@ -1,5 +1,5 @@ -#include "mono/eventpipe/ep.h" -#include "eglib/test/test.h" +#include +#include #include #define TEST_FILE "./ep_test_create_file.txt" diff --git a/src/mono/mono/eventpipe/test/ep-test.vcxproj b/src/mono/mono/eventpipe/test/ep-test.vcxproj index 7c1544b75332..8cb96ddebcbe 100644 --- a/src/mono/mono/eventpipe/test/ep-test.vcxproj +++ b/src/mono/mono/eventpipe/test/ep-test.vcxproj @@ -123,7 +123,7 @@ - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) Level4 Disabled $(ProjectDir)ep-tests-debug.h @@ -137,7 +137,7 @@ Level4 - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) true true true @@ -154,7 +154,7 @@ X64 - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) Level4 Disabled $(ProjectDir)ep-tests-debug.h @@ -171,7 +171,7 @@ Level4 - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) true true true diff --git a/src/mono/mono/eventpipe/test/ep-tests.c b/src/mono/mono/eventpipe/test/ep-tests.c index 8b8541db489a..205ea79337b3 100644 --- a/src/mono/mono/eventpipe/test/ep-tests.c +++ b/src/mono/mono/eventpipe/test/ep-tests.c @@ -1,10 +1,11 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-config.h" -#include "mono/eventpipe/ep-event.h" -#include "mono/eventpipe/ep-session.h" -#include "mono/eventpipe/ep-event-instance.h" -#include "mono/eventpipe/ep-event-payload.h" -#include "eglib/test/test.h" +#include +#include +#include +#include +#include +#include +#include +#include #define TEST_PROVIDER_NAME "MyTestProvider" #define TEST_FILE "./ep_test_create_file.txt" @@ -20,15 +21,31 @@ static _CrtMemState eventpipe_memory_diff_snapshot; static RESULT test_eventpipe_setup (void) { + uint32_t test_location = 0; + // Lazy initialized, force now to not show up as leak. ep_rt_os_command_line_get (); ep_rt_managed_command_line_get (); + test_location = 1; + + // Init profiler, force now to not show up as leaks. + // Set long sampling rate to reduce impact. + EP_LOCK_ENTER (section1) + ep_sample_profiler_init (NULL); + ep_sample_profiler_set_sampling_rate (1000 * 1000 * 100); + EP_LOCK_EXIT (section1) + + test_location = 2; + #ifdef _CRTDBG_MAP_ALLOC _CrtMemCheckpoint (&eventpipe_memory_start_snapshot); #endif ep_thread_get_or_create (); return NULL; + +ep_on_error: + return FAILED ("Failed at test location=%i", test_location); } static RESULT @@ -131,8 +148,11 @@ test_create_same_provider_twice (void) { RESULT result = NULL; uint32_t test_location = 0; + EventPipeProvider *test_provider = NULL; + EventPipeProvider *test_provider2 = NULL; + EventPipeProvider *returned_test_provider = NULL; - EventPipeProvider *test_provider = ep_create_provider (TEST_PROVIDER_NAME, NULL, NULL, NULL); + test_provider = ep_create_provider (TEST_PROVIDER_NAME, NULL, NULL, NULL); if (!test_provider) { result = FAILED ("Failed to create provider %s, ep_create_provider returned NULL", TEST_PROVIDER_NAME); ep_raise_error (); @@ -140,7 +160,7 @@ test_create_same_provider_twice (void) test_location = 1; - EventPipeProvider *returned_test_provider = ep_get_provider (TEST_PROVIDER_NAME); + returned_test_provider = ep_get_provider (TEST_PROVIDER_NAME); if (!returned_test_provider) { result = FAILED ("Failed to get provider %s, ep_get_provider returned NULL", TEST_PROVIDER_NAME); ep_raise_error (); @@ -148,9 +168,9 @@ test_create_same_provider_twice (void) test_location = 2; - EventPipeProvider *test_provider2 = ep_create_provider (TEST_PROVIDER_NAME, NULL, NULL, NULL); - if (test_provider2) { - result = FAILED ("Creating an already existing provider %s, succeeded", TEST_PROVIDER_NAME); + test_provider2 = ep_create_provider (TEST_PROVIDER_NAME, NULL, NULL, NULL); + if (!test_provider2) { + result = FAILED ("Creating to create an already existing provider %s", TEST_PROVIDER_NAME); ep_raise_error (); } @@ -162,7 +182,14 @@ test_create_same_provider_twice (void) ep_raise_error (); } + test_location = 4; + if (returned_test_provider != test_provider) { + result = FAILED ("Failed to get provider %s, ep_get_provider returned unexpected provider instance", TEST_PROVIDER_NAME); + ep_raise_error (); + } + ep_on_exit: + ep_delete_provider (test_provider2); ep_delete_provider (test_provider); return result; @@ -181,7 +208,7 @@ test_enable_disable (void) EventPipeSessionID session_id = 0; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -388,7 +415,7 @@ test_enable_disable_provider_config (void) test_location = 5; - ep_raise_error_if_nok (ep_session_provider_get_logging_level (session_provider) == EP_EVENT_LEVEL_LOG_ALWAYS); + ep_raise_error_if_nok (ep_session_provider_get_logging_level (session_provider) == EP_EVENT_LEVEL_LOGALWAYS); test_location = 6; @@ -502,7 +529,7 @@ test_create_delete_provider_with_callback (void) EventPipeProvider *test_provider = NULL; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config =ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config =ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -603,7 +630,7 @@ test_session_start_streaming (void) EventPipeSessionID session_id = 0; EventPipeProviderConfiguration provider_config; - EventPipeProviderConfiguration *current_provider_config =ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + EventPipeProviderConfiguration *current_provider_config =ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -651,7 +678,7 @@ test_session_write_event (void) EventPipeProviderConfiguration *current_provider_config = NULL; bool write_result = false; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -661,7 +688,7 @@ test_session_write_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -675,7 +702,7 @@ test_session_write_event (void) EventPipeEventPayload payload;; ep_event_payload_init (&payload, NULL, 0); - write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_thread_get (), ep_event, &payload, NULL, NULL, NULL, NULL); + write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_rt_thread_get_handle (), ep_event, &payload, NULL, NULL, NULL, NULL); ep_event_payload_fini (&payload); ep_raise_error_if_nok (write_result == true); @@ -704,7 +731,7 @@ test_session_write_event_seq_point (void) EventPipeProviderConfiguration *current_provider_config = NULL; bool write_result = false; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -714,7 +741,7 @@ test_session_write_event_seq_point (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -728,7 +755,7 @@ test_session_write_event_seq_point (void) EventPipeEventPayload payload;; ep_event_payload_init (&payload, NULL, 0); - write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_thread_get (), ep_event, &payload, NULL, NULL, NULL, NULL); + write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_rt_thread_get_handle (), ep_event, &payload, NULL, NULL, NULL, NULL); ep_event_payload_fini (&payload); ep_raise_error_if_nok (write_result == true); @@ -761,7 +788,7 @@ test_session_write_wait_get_next_event (void) EventPipeProviderConfiguration *current_provider_config = NULL; bool write_result = false; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -771,7 +798,7 @@ test_session_write_wait_get_next_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -785,7 +812,7 @@ test_session_write_wait_get_next_event (void) EventPipeEventPayload payload;; ep_event_payload_init (&payload, NULL, 0); - write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_thread_get (), ep_event, &payload, NULL, NULL, NULL, NULL); + write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_rt_thread_get_handle (), ep_event, &payload, NULL, NULL, NULL, NULL); ep_event_payload_fini (&payload); ep_raise_error_if_nok (write_result == true); @@ -826,7 +853,7 @@ test_session_write_get_next_event (void) EventPipeProviderConfiguration *current_provider_config = NULL; bool write_result = false; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -836,7 +863,7 @@ test_session_write_get_next_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -857,7 +884,7 @@ test_session_write_get_next_event (void) EventPipeEventPayload payload;; ep_event_payload_init (&payload, NULL, 0); - write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_thread_get (), ep_event, &payload, NULL, NULL, NULL, NULL); + write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_rt_thread_get_handle (), ep_event, &payload, NULL, NULL, NULL, NULL); ep_event_payload_fini (&payload); ep_raise_error_if_nok (write_result == true); @@ -903,7 +930,7 @@ test_session_write_suspend_event (void) EventPipeProviderConfiguration *current_provider_config = NULL; bool write_result = false; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -913,7 +940,7 @@ test_session_write_suspend_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -927,7 +954,7 @@ test_session_write_suspend_event (void) EventPipeEventPayload payload;; ep_event_payload_init (&payload, NULL, 0); - write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_thread_get (), ep_event, &payload, NULL, NULL, NULL, NULL); + write_result = ep_session_write_event ((EventPipeSession *)session_id, ep_rt_thread_get_handle (), ep_event, &payload, NULL, NULL, NULL, NULL); ep_event_payload_fini (&payload); ep_raise_error_if_nok (write_result == true); @@ -963,7 +990,7 @@ test_write_event (void) EventPipeProviderConfiguration provider_config; EventPipeProviderConfiguration *current_provider_config = NULL; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -973,7 +1000,7 @@ test_write_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -987,7 +1014,7 @@ test_write_event (void) EventData data[1]; ep_event_data_init (&data[0], 0, 0, 0); - ep_write_event (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); + ep_write_event_2 (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); ep_event_data_fini (data); ep_on_exit: @@ -1014,7 +1041,7 @@ test_write_get_next_event (void) EventPipeProviderConfiguration *current_provider_config = NULL; EventPipeEventInstance *event_instance = NULL; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -1024,7 +1051,7 @@ test_write_get_next_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -1038,7 +1065,7 @@ test_write_get_next_event (void) EventData data[1]; ep_event_data_init (&data[0], 0, 0, 0); - ep_write_event (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); + ep_write_event_2 (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); ep_event_data_fini (data); event_instance = ep_get_next_event (session_id); @@ -1069,11 +1096,12 @@ test_write_wait_get_next_event (void) EventPipeProvider *provider = NULL; EventPipeEvent *ep_event = NULL; EventPipeSessionID session_id = 0; + EventPipeSession *session = NULL; EventPipeProviderConfiguration provider_config; EventPipeProviderConfiguration *current_provider_config = NULL; EventPipeEventInstance *event_instance = NULL; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -1083,7 +1111,7 @@ test_write_wait_get_next_event (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -1091,18 +1119,21 @@ test_write_wait_get_next_event (void) session_id = ep_enable (TEST_FILE, 1, current_provider_config, 1, EP_SESSION_TYPE_FILE, EP_SERIALIZATION_FORMAT_NETTRACE_V4,false, NULL, false); ep_raise_error_if_nok (session_id != 0); + session = ep_get_session (session_id); + ep_raise_error_if_nok (session != NULL); + test_location = 4; ep_start_streaming (session_id); // Starts as signaled. // TODO: Is this expected behavior, just a way to notify observer that we are up and running? - uint32_t test = ep_rt_wait_event_wait ((ep_rt_wait_event_handle_t *)ep_get_wait_handle (session_id), 0, false); + uint32_t test = ep_rt_wait_event_wait (ep_session_get_wait_event (session), 0, false); ep_raise_error_if_nok (test == 0); test_location = 5; - test = ep_rt_wait_event_wait ((ep_rt_wait_event_handle_t *)ep_get_wait_handle (session_id), 0, false); + test = ep_rt_wait_event_wait (ep_session_get_wait_event (session), 0, false); ep_raise_error_if_nok (test != 0); test_location = 6; @@ -1110,11 +1141,11 @@ test_write_wait_get_next_event (void) EventData data[1]; ep_event_data_init (&data[0], 0, 0, 0); for (int i = 0; i < 100; i++) - ep_write_event (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); + ep_write_event_2 (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); ep_event_data_fini (data); //Should be signaled, since we should have buffers put in readonly by now. - test = ep_rt_wait_event_wait ((ep_rt_wait_event_handle_t *)ep_get_wait_handle (session_id), 0, false); + test = ep_rt_wait_event_wait (ep_session_get_wait_event (session), 0, false); ep_raise_error_if_nok (test == 0); test_location = 7; @@ -1150,7 +1181,7 @@ test_write_event_perf (void) int64_t accumulted_write_time_ticks = 0; uint32_t events_written = 0; - current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOG_ALWAYS, ""); + current_provider_config = ep_provider_config_init (&provider_config, TEST_PROVIDER_NAME, 1, EP_EVENT_LEVEL_LOGALWAYS, ""); ep_raise_error_if_nok (current_provider_config != NULL); test_location = 1; @@ -1160,7 +1191,7 @@ test_write_event_perf (void) test_location = 2; - ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOG_ALWAYS, false, NULL, 0); + ep_event = ep_provider_add_event (provider, 1, 1, 1, EP_EVENT_LEVEL_LOGALWAYS, false, NULL, 0); ep_raise_error_if_nok (ep_event != NULL); test_location = 3; @@ -1179,7 +1210,7 @@ test_write_event_perf (void) for (events_written = 0; events_written < 10 * 1000 * 1000; events_written += 1000) { int64_t start = ep_perf_timestamp_get (); for (uint32_t i = 0; i < 1000; i++) - ep_write_event (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); + ep_write_event_2 (ep_event, data, EP_ARRAY_SIZE (data), NULL, NULL); int64_t stop = ep_perf_timestamp_get (); accumulted_write_time_ticks += stop - start; @@ -1215,20 +1246,56 @@ test_write_event_perf (void) // TODO: Add consumer thread test, flushing file buffers/session, acting on signal. static RESULT -test_eventpipe_teardown (void) +test_eventpipe_mem_checkpoint (void) { + RESULT result = NULL; +#ifdef _CRTDBG_MAP_ALLOC // Need to emulate a thread exit to make sure TLS gets cleaned up for current thread // or we will get memory leaks reported. ep_rt_mono_thread_exited (); + _CrtMemCheckpoint (&eventpipe_memory_end_snapshot); + if ( _CrtMemDifference(&eventpipe_memory_diff_snapshot, &eventpipe_memory_start_snapshot, &eventpipe_memory_end_snapshot) ) { + _CrtMemDumpStatistics( &eventpipe_memory_diff_snapshot ); + result = FAILED ("Memory leak detected!"); + } + _CrtMemCheckpoint (&eventpipe_memory_start_snapshot); +#endif + return result; +} + +static RESULT +test_eventpipe_reset_mem_checkpoint (void) +{ +#ifdef _CRTDBG_MAP_ALLOC + _CrtMemCheckpoint (&eventpipe_memory_start_snapshot); +#endif + return NULL; +} + + +static RESULT +test_eventpipe_teardown (void) +{ + uint32_t test_location = 0; + #ifdef _CRTDBG_MAP_ALLOC _CrtMemCheckpoint (&eventpipe_memory_end_snapshot); - if ( _CrtMemDifference( &eventpipe_memory_diff_snapshot, &eventpipe_memory_start_snapshot, &eventpipe_memory_end_snapshot) ) { + if ( _CrtMemDifference(&eventpipe_memory_diff_snapshot, &eventpipe_memory_start_snapshot, &eventpipe_memory_end_snapshot) ) { _CrtMemDumpStatistics( &eventpipe_memory_diff_snapshot ); return FAILED ("Memory leak detected!"); } #endif + test_location = 1; + + EP_LOCK_ENTER (section1) + ep_sample_profiler_shutdown (); + EP_LOCK_EXIT (section1) + return NULL; + +ep_on_error: + return FAILED ("Failed at test location=%i", test_location); } static Test ep_tests [] = { @@ -1238,9 +1305,7 @@ static Test ep_tests [] = { {"test_get_provider", test_get_provider}, {"test_create_same_provider_twice", test_create_same_provider_twice}, {"test_enable_disable", test_enable_disable}, - {"test_enable_disable_default_provider_config", test_enable_disable_default_provider_config}, {"test_enable_disable_provider_config", test_enable_disable_provider_config}, - {"test_enable_disable_provider_parse_default_config", test_enable_disable_provider_parse_default_config}, {"test_create_delete_provider_with_callback", test_create_delete_provider_with_callback}, {"test_build_event_metadata", test_build_event_metadata}, {"test_session_start_streaming", test_session_start_streaming}, @@ -1255,6 +1320,10 @@ static Test ep_tests [] = { #ifdef TEST_PERF {"test_write_event_perf", test_write_event_perf}, #endif + {"test_eventpipe_mem_checkpoint", test_eventpipe_mem_checkpoint}, + {"test_enable_disable_default_provider_config", test_enable_disable_default_provider_config}, + {"test_enable_disable_provider_parse_default_config", test_enable_disable_provider_parse_default_config}, + {"test_eventpipe_reset_mem_checkpoint", test_eventpipe_reset_mem_checkpoint}, {"test_eventpipe_teardown", test_eventpipe_teardown}, {NULL, NULL} }; diff --git a/src/mono/mono/eventpipe/test/ep-tests.h b/src/mono/mono/eventpipe/test/ep-tests.h index e3511fa7ffa5..af7d0b4d4d05 100644 --- a/src/mono/mono/eventpipe/test/ep-tests.h +++ b/src/mono/mono/eventpipe/test/ep-tests.h @@ -1,7 +1,7 @@ #ifndef _EVENTPIPE_TESTS_H #define _EVENTPIPE_TESTS_H -#include "eglib/test/test.h" +#include DEFINE_TEST_GROUP_INIT_H(ep_setup_tests_init); DEFINE_TEST_GROUP_INIT_H(ep_rt_tests_init); diff --git a/src/mono/mono/eventpipe/test/ep-thread-tests.c b/src/mono/mono/eventpipe/test/ep-thread-tests.c index b0bcbc5f8ebe..89e7d232adc0 100644 --- a/src/mono/mono/eventpipe/test/ep-thread-tests.c +++ b/src/mono/mono/eventpipe/test/ep-thread-tests.c @@ -1,7 +1,7 @@ -#include "mono/eventpipe/ep.h" -#include "mono/eventpipe/ep-session.h" -#include "mono/eventpipe/ep-thread.h" -#include "eglib/test/test.h" +#include +#include +#include +#include #define TEST_FILE "./ep_test_create_file.txt" @@ -315,7 +315,7 @@ test_thread_session_write (void) test_location = 1; uint32_t session_write = ep_thread_get_session_write_in_progress (thread); - if (session_write) { + if (session_write < EP_MAX_NUMBER_OF_SESSIONS) { result = FAILED ("Session write is in progress"); ep_raise_error (); } @@ -335,7 +335,7 @@ test_thread_session_write (void) ep_thread_set_session_write_in_progress (thread, 0); session_write = ep_thread_get_session_write_in_progress (thread); - if (session_write) { + if (session_write != 0) { result = FAILED ("Session write is in progress"); ep_raise_error (); } diff --git a/src/mono/mono/metadata/appdomain.c b/src/mono/mono/metadata/appdomain.c index 47035b4ab245..5c13c9316918 100644 --- a/src/mono/mono/metadata/appdomain.c +++ b/src/mono/mono/metadata/appdomain.c @@ -76,7 +76,7 @@ #include #ifdef ENABLE_PERFTRACING -#include +#include #endif #ifdef HOST_WIN32 diff --git a/src/mono/mono/metadata/attach.c b/src/mono/mono/metadata/attach.c index 72d994dea3b9..14b653d6a01b 100644 --- a/src/mono/mono/metadata/attach.c +++ b/src/mono/mono/metadata/attach.c @@ -13,7 +13,7 @@ #include #include "attach.h" -#ifdef HOST_WIN32 +#if defined(HOST_WIN32) && !defined(DISABLE_ATTACH) #define DISABLE_ATTACH #endif #ifndef DISABLE_ATTACH diff --git a/src/mono/mono/metadata/custom-attrs.c b/src/mono/mono/metadata/custom-attrs.c index b521943acd9d..fe3165f16905 100644 --- a/src/mono/mono/metadata/custom-attrs.c +++ b/src/mono/mono/metadata/custom-attrs.c @@ -374,7 +374,9 @@ load_cattr_value (MonoImage *image, MonoType *t, MonoObject **out_obj, const cha g_error ("generic valutype %s not handled in custom attr value decoding", m_class_get_name (t->data.klass)); break; - case MONO_TYPE_STRING: + case MONO_TYPE_STRING: { + const char *start = p; + if (!bcheck_blob (p, 0, boundp, error)) return NULL; MONO_DISABLE_WARNING (4310) // cast truncates constant value @@ -389,7 +391,7 @@ MONO_RESTORE_WARNING return NULL; *end = p + slen; if (!out_obj) - return (void*)p; + return (void*)start; // https://bugzilla.xamarin.com/show_bug.cgi?id=60848 // Custom attribute strings are encoded as wtf-8 instead of utf-8. // If we decode using utf-8 like the spec says, we will silently fail @@ -398,6 +400,7 @@ MONO_RESTORE_WARNING // See https://simonsapin.github.io/wtf-8/ for a description of wtf-8. *out_obj = (MonoObject*)mono_string_new_wtf8_len_checked (mono_domain_get (), p, slen, error); return NULL; + } case MONO_TYPE_CLASS: { MonoType *type = load_cattr_type (image, t, TRUE, p, boundp, end, error, &slen); if (out_obj) { @@ -1204,7 +1207,9 @@ mono_reflection_create_custom_attr_data_args (MonoImage *image, MonoMethod *meth * mono_reflection_create_custom_attr_data_args_noalloc: * * Same as mono_reflection_create_custom_attr_data_args but allocate no managed objects, return values - * using C arrays. Only usable for cattrs with primitive/type arguments. + * using C arrays. Only usable for cattrs with primitive/type/string arguments. + * For types, a MonoType* is returned. + * For strings, the address in the metadata blob is returned. * TYPED_ARGS, NAMED_ARGS, and NAMED_ARG_INFO should be freed using g_free (). */ void diff --git a/src/mono/mono/metadata/icall-eventpipe.c b/src/mono/mono/metadata/icall-eventpipe.c index e6961c646912..f3b785fc37c6 100644 --- a/src/mono/mono/metadata/icall-eventpipe.c +++ b/src/mono/mono/metadata/icall-eventpipe.c @@ -6,11 +6,11 @@ #include #if defined(ENABLE_PERFTRACING) && !defined(DISABLE_EVENTPIPE) -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -362,32 +362,32 @@ ves_icall_System_Diagnostics_Tracing_EventPipeInternal_EventActivityIdControl ( /* GUID * */uint8_t *activity_id) { int32_t result = 0; - EventPipeThread *thread = ep_thread_get_or_create (); + ep_rt_thread_activity_id_handle_t activity_id_handle = ep_thread_get_activity_id_handle (); - if (thread == NULL) + if (activity_id_handle == NULL) return 1; uint8_t current_activity_id [EP_ACTIVITY_ID_SIZE]; EventPipeActivityControlCode activity_control_code = (EventPipeActivityControlCode)control_code; switch (activity_control_code) { case EP_ACTIVITY_CONTROL_GET_ID: - ep_thread_get_activity_id (thread, activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_get_activity_id (activity_id_handle, activity_id, EP_ACTIVITY_ID_SIZE); break; case EP_ACTIVITY_CONTROL_SET_ID: - ep_thread_set_activity_id (thread, activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_set_activity_id (activity_id_handle, activity_id, EP_ACTIVITY_ID_SIZE); break; case EP_ACTIVITY_CONTROL_CREATE_ID: ep_thread_create_activity_id (activity_id, EP_ACTIVITY_ID_SIZE); break; case EP_ACTIVITY_CONTROL_GET_SET_ID: - ep_thread_get_activity_id (thread, current_activity_id, EP_ACTIVITY_ID_SIZE); - ep_thread_set_activity_id (thread, activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_get_activity_id (activity_id_handle, current_activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_set_activity_id (activity_id_handle, activity_id, EP_ACTIVITY_ID_SIZE); memcpy (activity_id, current_activity_id, EP_ACTIVITY_ID_SIZE); break; case EP_ACTIVITY_CONTROL_CREATE_SET_ID: - ep_thread_get_activity_id (thread, activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_get_activity_id (activity_id_handle, activity_id, EP_ACTIVITY_ID_SIZE); ep_thread_create_activity_id (current_activity_id, EP_ACTIVITY_ID_SIZE); - ep_thread_set_activity_id (thread, current_activity_id, EP_ACTIVITY_ID_SIZE); + ep_thread_set_activity_id (activity_id_handle, current_activity_id, EP_ACTIVITY_ID_SIZE); break; default: result = 1; @@ -475,7 +475,7 @@ ves_icall_System_Diagnostics_Tracing_EventPipeInternal_WriteEventData ( { g_assert (event_handle); EventPipeEvent *ep_event = (EventPipeEvent *)event_handle; - ep_write_event (ep_event, (EventData *)event_data, event_data_len, activity_id, related_activity_id); + ep_write_event_2 (ep_event, (EventData *)event_data, event_data_len, activity_id, related_activity_id); } #else /* ENABLE_PERFTRACING */ diff --git a/src/mono/mono/metadata/icall.c b/src/mono/mono/metadata/icall.c index 2d70ba3d1ed9..727889bd4567 100644 --- a/src/mono/mono/metadata/icall.c +++ b/src/mono/mono/metadata/icall.c @@ -1372,6 +1372,7 @@ MonoObjectHandle ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetUninitializedObjectInternal (MonoType *handle, MonoError *error) { MonoClass *klass; + MonoVTable *vtable; g_assert (handle); @@ -1381,6 +1382,16 @@ ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetUninitializedObjectI return NULL_HANDLE; } + if (mono_class_is_array (klass) || mono_class_is_pointer (klass) || handle->byref) { + mono_error_set_argument (error, NULL, NULL); + return NULL_HANDLE; + } + + if (MONO_TYPE_IS_VOID (handle)) { + mono_error_set_argument (error, NULL, NULL); + return NULL_HANDLE; + } + if (m_class_is_abstract (klass) || m_class_is_interface (klass) || m_class_is_gtd (klass)) { mono_error_set_member_access (error, NULL, NULL); return NULL_HANDLE; @@ -1391,6 +1402,14 @@ ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetUninitializedObjectI return NULL_HANDLE; } + if (!mono_class_is_before_field_init (klass)) { + vtable = mono_class_vtable_checked (mono_domain_get (), klass, error); + return_val_if_nok (error, NULL_HANDLE); + + mono_runtime_class_init_full (vtable, error); + return_val_if_nok (error, NULL_HANDLE); + } + if (m_class_is_nullable (klass)) return mono_object_new_handle (mono_domain_get (), m_class_get_nullable_elem_class (klass), error); else diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt index a18365f55354..10c788a22167 100644 --- a/src/mono/mono/mini/CMakeLists.txt +++ b/src/mono/mono/mini/CMakeLists.txt @@ -26,36 +26,56 @@ include(../eglib/CMakeLists.txt) include(../utils/CMakeLists.txt) include(../metadata/CMakeLists.txt) include(../sgen/CMakeLists.txt) -include(../eventpipe/CMakeLists.txt) +if(TARGET_WIN32) # TODO: hook up HAVE_SYS_ZLIB instead + include(../zlib/CMakeLists.txt) +endif() + +if(ENABLE_PERFTRACING) + + set (SHARED_EVENTPIPE_INCLUDE_PATH "../../../native/") + set (SHARED_EVENTPIPE_SOURCE_PATH "../../../native/eventpipe/") + set (MONO_EVENTPIPE_SHIM_SOURCE_PATH "../eventpipe/") + + include(${MONO_EVENTPIPE_SHIM_SOURCE_PATH}/CMakeLists.txt) + + include_directories( + ${SHARED_EVENTPIPE_INCLUDE_PATH} + ${MONO_EVENTPIPE_SHIM_SOURCE_PATH} + ) + +endif(ENABLE_PERFTRACING) # ICU if(HAVE_SYS_ICU) -if(STATIC_ICU) -set(pal_icushim_sources_base - pal_icushim_static.c) -else() -set(pal_icushim_sources_base - pal_icushim.c) -endif() + if(STATIC_ICU) + set(pal_icushim_sources_base + pal_icushim_static.c) + else() + set(pal_icushim_sources_base + pal_icushim.c) + endif() -set(icu_shim_sources_base - pal_calendarData.c - pal_casing.c - pal_collation.c - pal_idna.c - pal_locale.c - pal_localeNumberData.c - pal_localeStringData.c - pal_normalization.c - pal_timeZoneInfo.c - entrypoints.c - ${pal_icushim_sources_base}) -addprefix(icu_shim_sources "${ICU_SHIM_PATH}" "${icu_shim_sources_base}") -set_source_files_properties(${icu_shim_sources} PROPERTIES COMPILE_DEFINITIONS OSX_ICU_LIBRARY_PATH="${OSX_ICU_LIBRARY_PATH}") -set_source_files_properties(${icu_shim_sources} PROPERTIES COMPILE_FLAGS "-I${ICU_INCLUDEDIR} -I${CMAKE_CURRENT_SOURCE_DIR}/../../../libraries/Native/Unix/System.Globalization.Native/ -I${CMAKE_CURRENT_SOURCE_DIR}/../../../libraries/Native/Unix/Common/ ${ICU_FLAGS}") -if(ICU_LIBDIR) - set(ICU_LDFLAGS "-L${ICU_LIBDIR}") -endif() + set(icu_shim_sources_base + pal_calendarData.c + pal_casing.c + pal_collation.c + pal_idna.c + pal_locale.c + pal_localeNumberData.c + pal_localeStringData.c + pal_normalization.c + pal_timeZoneInfo.c + entrypoints.c + ${pal_icushim_sources_base}) + addprefix(icu_shim_sources "${ICU_SHIM_PATH}" "${icu_shim_sources_base}") + set_source_files_properties(${icu_shim_sources} PROPERTIES COMPILE_DEFINITIONS OSX_ICU_LIBRARY_PATH="${OSX_ICU_LIBRARY_PATH}") + set_source_files_properties(${icu_shim_sources} PROPERTIES COMPILE_FLAGS "-I${ICU_INCLUDEDIR} -I${CMAKE_CURRENT_SOURCE_DIR}/../../../libraries/Native/Unix/System.Globalization.Native/ -I${CMAKE_CURRENT_SOURCE_DIR}/../../../libraries/Native/Unix/Common/ ${ICU_FLAGS}") + if(TARGET_WIN32) + set_source_files_properties(${icu_shim_sources} PROPERTIES LANGUAGE CXX) + endif() + if(ICU_LIBDIR) + set(ICU_LDFLAGS "-L${ICU_LIBDIR}") + endif() endif() # @@ -74,7 +94,6 @@ set(mini_common_sources calls.c decompose.c mini.h - version.h optflags-def.h jit-icalls.h jit-icalls.c @@ -215,9 +234,11 @@ set(darwin_sources set(windows_sources mini-windows.c + mini-windows-tls-callback.c mini-windows.h mini-windows-dllmain.c - mini-windows-dlldac.c) + # mini-windows-dlldac.c + ) set(posix_sources mini-posix.c) @@ -226,6 +247,8 @@ if(HOST_DARWIN) set(os_sources "${darwin_sources};${posix_sources}") elseif(HOST_LINUX) set(os_sources "${posix_sources}") +elseif(HOST_WIN32) +set(os_sources "${windows_sources}") endif() set(interp_sources @@ -289,9 +312,13 @@ elseif(HOST_ANDROID) set(OS_LIBS m dl log) elseif(HOST_LINUX) set(OS_LIBS pthread m dl) +elseif(HOST_WIN32) +set(OS_LIBS bcrypt.lib Mswsock.lib ws2_32.lib psapi.lib version.lib advapi32.lib winmm.lib kernel32.lib) +set(mini_sources "${mini_sources};${PROJECT_BINARY_DIR}/../../NativeVersion.rc") # this is generated by GenerateMonoVersionFile in mono.proj endif() -add_library(monosgen-objects OBJECT "${eglib_sources};${metadata_sources};${utils_sources};${sgen_sources};${icu_shim_sources};${eventpipe_sources};${mini_sources}") + +add_library(monosgen-objects OBJECT "${eglib_sources};${metadata_sources};${utils_sources};${sgen_sources};${icu_shim_sources};${eventpipe_sources};${mini_sources};${zlib_sources}") add_library(monosgen-static STATIC $) set_target_properties(monosgen-static PROPERTIES OUTPUT_NAME monosgen-2.0) if(NOT DISABLE_LIBS) @@ -304,40 +331,27 @@ if(NOT DISABLE_LIBS) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mono-2.0/mono/jit) endif() if(NOT DISABLE_SHARED_LIBS) - add_library(monosgen SHARED $) - set_target_properties(monosgen PROPERTIES OUTPUT_NAME monosgen-2.0) - target_link_libraries(monosgen ${OS_LIBS} ${ICONV_LIB} ${LLVM_LIBS} ${ICU_LIBS}) + add_library(monosgen-shared SHARED $ ) + set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME monosgen-2.0) + if(TARGET_WIN32) + # on Windows the import library for the shared monosgen-2.0 library will have the same name as the static library (monosgen-2.0.lib), + # to avoid a conflict we rename the import library with the .import.lib suffix + set_target_properties(monosgen-shared PROPERTIES IMPORT_SUFFIX ".import.lib") + endif() + target_link_libraries(monosgen-shared ${OS_LIBS} ${ICONV_LIB} ${LLVM_LIBS} ${ICU_LIBS}) if(ICU_LDFLAGS) - set_property(TARGET monosgen APPEND_STRING PROPERTY LINK_FLAGS ${ICU_LDFLAGS}) + set_property(TARGET monosgen-shared APPEND_STRING PROPERTY LINK_FLAGS " ${ICU_LDFLAGS}") endif() - if(TARGET_DARWIN OR TARGET_IOS OR TARGET_TVOS) - set_property(TARGET monosgen APPEND_STRING PROPERTY LINK_FLAGS "-Wl,-compatibility_version -Wl,2.0 -Wl,-current_version -Wl,2.0") + if(TARGET_DARWIN) + set_property(TARGET monosgen-shared APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-compatibility_version -Wl,2.0 -Wl,-current_version -Wl,2.0") endif() - install(TARGETS monosgen LIBRARY) + install(TARGETS monosgen-shared LIBRARY) endif() find_package(Python3 COMPONENTS Interpreter) -# FIXME: Always rebuilds, creates non-deterministic builds -# FIXME: Use the previous format -#string(TIMESTAMP BUILD_DATE) - -#add_custom_command( -# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/buildver-sgen.h -# COMMAND echo "const char *build_date = \"${BUILD_DATE}\";" > ${CMAKE_CURRENT_BINARY_DIR}/buildver-sgen.h -# VERBATIM -#) -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/buildver-sgen.h - COMMAND echo "const char *build_date = \"\";" > ${CMAKE_CURRENT_BINARY_DIR}/buildver-sgen.h - VERBATIM -) - -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/gen-version-h.sh ${CMAKE_CURRENT_SOURCE_DIR}/../.. - VERBATIM -) +# don't set build_date, it creates non-deterministic builds +file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/buildver-sgen.h CONTENT [=[const char *build_date = "";]=]) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpu-amd64.h @@ -370,11 +384,10 @@ add_custom_command( ) if(NOT DISABLE_EXECUTABLES) - set(CMAKE_SKIP_RPATH 1) add_executable(mono-sgen "main-sgen.c") target_link_libraries(mono-sgen monosgen-static ${OS_LIBS} ${ICONV_LIB} ${LLVM_LIBS} ${ICU_LIBS}) if(ICU_LDFLAGS) - set_target_properties(mono-sgen PROPERTIES LINK_FLAGS ${ICU_LDFLAGS}) + set_property(TARGET mono-sgen APPEND_STRING PROPERTY LINK_FLAGS " ${ICU_LDFLAGS}") endif() install(TARGETS mono-sgen RUNTIME) endif() diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 291c7a168694..a07c0e2d1e75 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -5054,6 +5054,51 @@ MONO_RESTORE_WARNING if (export_name) g_hash_table_insert (acfg->export_names, wrapper, export_name); } + +#ifdef ENABLE_NETCORE + for (j = 0; j < cattr->num_attrs; ++j) + if (cattr->attrs [j].ctor && mono_is_corlib_image (m_class_get_image (cattr->attrs [j].ctor->klass)) && !strcmp (m_class_get_name (cattr->attrs [j].ctor->klass), "UnmanagedCallersOnlyAttribute")) + break; + if (j < cattr->num_attrs) { + MonoCustomAttrEntry *e = &cattr->attrs [j]; + const char *named; + int slen; + char *export_name = NULL; + MonoMethod *wrapper; + + if (!(method->flags & METHOD_ATTRIBUTE_STATIC)) { + g_warning ("AOT restriction: Method '%s' must be static since it is decorated with [UnmanagedCallers].", + mono_method_full_name (method, TRUE)); + exit (1); + } + + gpointer *typed_args = NULL; + gpointer *named_args = NULL; + CattrNamedArg *named_arg_info = NULL; + int num_named_args = 0; + mono_reflection_create_custom_attr_data_args_noalloc (acfg->image, e->ctor, e->data, e->data_size, &typed_args, &named_args, &num_named_args, &named_arg_info, error); + mono_error_assert_ok (error); + for (j = 0; j < num_named_args; ++j) { + if (named_arg_info [j].field && !strcmp (named_arg_info [j].field->name, "EntryPoint")) { + named = named_args [j]; + slen = mono_metadata_decode_value (named, &named); + export_name = (char *)g_malloc (slen + 1); + memcpy (export_name, named, slen); + export_name [slen] = 0; + } + } + g_free (named_args); + g_free (named_arg_info); + + wrapper = mono_marshal_get_managed_wrapper (method, NULL, 0, error); + mono_error_assert_ok (error); + + add_method (acfg, wrapper); + if (export_name) + g_hash_table_insert (acfg->export_names, wrapper, export_name); + } +#endif + g_free (cattr); } @@ -8484,6 +8529,7 @@ can_encode_method (MonoAotCompile *acfg, MonoMethod *method) case MONO_WRAPPER_MANAGED_TO_NATIVE: break; case MONO_WRAPPER_MANAGED_TO_MANAGED: + case MONO_WRAPPER_NATIVE_TO_MANAGED: case MONO_WRAPPER_CASTCLASS: { WrapperInfo *info = mono_marshal_get_wrapper_info (method); @@ -11619,7 +11665,7 @@ emit_file_info (MonoAotCompile *acfg) emit_string_symbol (acfg, "assembly_guid" , acfg->image->guid); /* Emit a string holding the assembly name */ - emit_string_symbol (acfg, "assembly_name", get_assembly_prefix (acfg->image)); + emit_string_symbol (acfg, "assembly_name", acfg->image->assembly->aname.name); info = g_new0 (MonoAotFileInfo, 1); init_aot_file_info (acfg, info); @@ -11633,7 +11679,7 @@ emit_file_info (MonoAotCompile *acfg) * mono_aot_register_module (). The symbol points to a pointer to the the file info * structure. */ - sprintf (symbol, "%smono_aot_module_%s_info", acfg->user_symbol_prefix, get_assembly_prefix (acfg->image)); + sprintf (symbol, "%smono_aot_module_%s_info", acfg->user_symbol_prefix, acfg->image->assembly->aname.name); /* Get rid of characters which cannot occur in symbols */ p = symbol; diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index ad43071432f5..eb13d2af9667 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -65,7 +65,6 @@ #include "mini.h" #include "seq-points.h" -#include "version.h" #include "debugger-agent.h" #include "aot-compiler.h" #include "aot-runtime.h" diff --git a/src/mono/mono/mini/driver.c b/src/mono/mono/mini/driver.c index 51154000101f..71ec1edea6a6 100644 --- a/src/mono/mono/mini/driver.c +++ b/src/mono/mono/mini/driver.c @@ -68,7 +68,6 @@ #include #include #include -#include "version.h" #include "debugger-agent.h" #if TARGET_OSX # include @@ -452,7 +451,9 @@ method_should_be_regression_tested (MonoMethod *method, gboolean interp) if (!is_ok (error)) continue; - char *utf8_str = (char*)(void*)typed_args[0]; //this points into image memory that is constant + const char *arg = (const char*)typed_args [0]; + mono_metadata_decode_value (arg, &arg); + char *utf8_str = (char*)arg; //this points into image memory that is constant g_free (typed_args); g_free (named_args); g_free (arginfo); @@ -3352,4 +3353,3 @@ mono_parse_env_options (int *ref_argc, char **ref_argv []) fprintf (stderr, "%s", ret); exit (1); } - diff --git a/src/mono/mono/mini/exceptions-s390x.c b/src/mono/mono/mini/exceptions-s390x.c index e8d0bba40154..c61192e58e4a 100644 --- a/src/mono/mono/mini/exceptions-s390x.c +++ b/src/mono/mono/mini/exceptions-s390x.c @@ -109,7 +109,7 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot) static guint8 *start; static int inited = 0; guint8 *code; - int alloc_size, pos, i; + int gr_offset, alloc_size, pos, i; GSList *unwind_ops = NULL; MonoJumpInfo *ji = NULL; @@ -122,10 +122,17 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot) /* call_filter (MonoContext *ctx, unsigned long eip, gpointer exc) */ code = start = mono_global_codeman_reserve (512); - s390_stmg (code, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET); + mono_add_unwind_op_def_cfa (unwind_ops, code, start, STK_BASE, S390_CFA_OFFSET); + s390_stmg (code, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET); + gr_offset = S390_REG_SAVE_OFFSET - S390_CFA_OFFSET; + for (i = s390_r6; i <= s390_r15; i++) { + mono_add_unwind_op_offset (unwind_ops, code, start, i, gr_offset); + gr_offset += sizeof(uintptr_t); + } s390_lgr (code, s390_r14, STK_BASE); alloc_size = S390_ALIGN(S390_CALLFILTER_SIZE, S390_STACK_ALIGNMENT); s390_aghi (code, STK_BASE, -alloc_size); + mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, alloc_size + S390_CFA_OFFSET); s390_stg (code, s390_r14, 0, STK_BASE, 0); /*------------------------------------------------------*/ @@ -304,16 +311,23 @@ mono_arch_get_throw_exception_generic (int size, MonoTrampInfo **info, int corli gboolean rethrow, gboolean aot, gboolean preserve_ips) { guint8 *code, *start; - int alloc_size, pos, i; + int gr_offset, alloc_size, pos, i; MonoJumpInfo *ji = NULL; GSList *unwind_ops = NULL; code = start = mono_global_codeman_reserve(size); - s390_stmg (code, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET); + mono_add_unwind_op_def_cfa (unwind_ops, code, start, STK_BASE, S390_CFA_OFFSET); + s390_stmg (code, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET); + gr_offset = S390_REG_SAVE_OFFSET - S390_CFA_OFFSET; + for (i = s390_r6; i <= s390_r15; i++) { + mono_add_unwind_op_offset (unwind_ops, code, start, i, gr_offset); + gr_offset += sizeof(uintptr_t); + } alloc_size = S390_ALIGN(S390_THROWSTACK_SIZE, S390_STACK_ALIGNMENT); s390_lgr (code, s390_r14, STK_BASE); s390_aghi (code, STK_BASE, -alloc_size); + mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, alloc_size + S390_CFA_OFFSET); s390_stg (code, s390_r14, 0, STK_BASE, 0); s390_lgr (code, s390_r3, s390_r2); if (corlib) { @@ -533,7 +547,8 @@ mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, memcpy (&new_ctx->uc_mcontext.gregs, ®s, sizeof(regs)); MONO_CONTEXT_SET_IP(new_ctx, regs[14] - 2); - MONO_CONTEXT_SET_BP(new_ctx, cfa); + MONO_CONTEXT_SET_BP(new_ctx, regs[15]); + MONO_CONTEXT_SET_SP(new_ctx, regs[15]); return TRUE; } else if (*lmf) { diff --git a/src/mono/mono/mini/gen-version-h.sh b/src/mono/mono/mini/gen-version-h.sh deleted file mode 100755 index 91e1c137a87e..000000000000 --- a/src/mono/mono/mini/gen-version-h.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -top_srcdir=$1 -if test -d $top_srcdir/.git; then - (cd $top_srcdir; - LANG=C; export LANG; - if test -z "$ghprbPullId"; then - branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; - else - branch="pull-request-$ghprbPullId"; - fi; - version=`git log --no-color --first-parent -n1 --pretty=format:%h`; - echo "#define FULL_VERSION \"$branch/$version\""; - ); -else - echo "#define FULL_VERSION \"tarball\""; -fi > version.h - diff --git a/src/mono/mono/mini/llvm-jit.cpp b/src/mono/mono/mini/llvm-jit.cpp index 17a9eb844635..cf2c66d36fb0 100644 --- a/src/mono/mono/mini/llvm-jit.cpp +++ b/src/mono/mono/mini/llvm-jit.cpp @@ -299,7 +299,8 @@ struct MonoLLVMJIT { auto k = add_module (std::unique_ptr(module)); auto bodysym = compile_layer.findSymbolIn (k, mangle (func), false); auto bodyaddr = bodysym.getAddress (); - assert (bodyaddr); + if (!bodyaddr) + g_assert_not_reached(); for (int i = 0; i < nvars; ++i) { auto var = unwrap (callee_vars[i]); auto sym = compile_layer.findSymbolIn (k, mangle (var->getName ()), true); @@ -404,7 +405,8 @@ class MonoLLVMJIT { auto ModuleHandle = addModule (F, m); auto BodySym = CompileLayer.findSymbolIn(ModuleHandle, mangle (F), false); auto BodyAddr = BodySym.getAddress(); - assert (BodyAddr); + if (!BodyAddr) + g_assert_not_reached (); for (int i = 0; i < nvars; ++i) { GlobalVariable *var = unwrap(callee_vars [i]); diff --git a/src/mono/mono/mini/method-to-ir.c b/src/mono/mono/mini/method-to-ir.c index 1586923d8037..d738e7d7466a 100644 --- a/src/mono/mono/mini/method-to-ir.c +++ b/src/mono/mono/mini/method-to-ir.c @@ -3489,6 +3489,22 @@ method_needs_stack_walk (MonoCompile *cfg, MonoMethod *cmethod) if (!strcmp (cmethod->name, "GetType")) return TRUE; } + +#if defined(ENABLE_NETCORE) + /* + * In corelib code, methods which need to do a stack walk declare a StackCrawlMark local and pass it as an + * arguments until it reaches an icall. Its hard to detect which methods do that especially with + * StackCrawlMark.LookForMyCallersCaller, so for now, just hardcode the classes which contain the public + * methods whose caller is needed. + */ + if (mono_is_corlib_image (m_class_get_image (cmethod->klass))) { + const char *cname = m_class_get_name (cmethod->klass); + if (!strcmp (cname, "Assembly") || + !strcmp (cname, "AssemblyLoadContext") || + (!strcmp (cname, "Activator"))) + return TRUE; + } +#endif return FALSE; } diff --git a/src/mono/mono/mini/mini-darwin.c b/src/mono/mono/mini/mini-darwin.c index 834a60a13e72..ce0b7fa31856 100644 --- a/src/mono/mono/mini/mini-darwin.c +++ b/src/mono/mono/mini/mini-darwin.c @@ -56,7 +56,6 @@ #include #include #include "trace.h" -#include "version.h" #include "jit-icalls.h" diff --git a/src/mono/mono/mini/mini-posix.c b/src/mono/mono/mini/mini-posix.c index cfafeb314102..c0cd9afb39eb 100644 --- a/src/mono/mono/mini/mini-posix.c +++ b/src/mono/mono/mini/mini-posix.c @@ -77,7 +77,6 @@ #include #include #include "trace.h" -#include "version.h" #include "debugger-agent.h" #include "mini-runtime.h" #include "jit-icalls.h" diff --git a/src/mono/mono/mini/mini-runtime.c b/src/mono/mono/mini/mini-runtime.c index 10238eecaccc..0aaa0b5147bc 100644 --- a/src/mono/mono/mini/mini-runtime.c +++ b/src/mono/mono/mini/mini-runtime.c @@ -75,8 +75,8 @@ #include #ifdef ENABLE_PERFTRACING -#include -#include +#include +#include #endif #include "mini.h" @@ -85,7 +85,9 @@ #include #include #include "trace.h" +#ifndef ENABLE_NETCORE #include "version.h" +#endif #include "aot-compiler.h" #include "aot-runtime.h" #include "llvmonly-runtime.h" diff --git a/src/mono/mono/mini/mini-s390x.c b/src/mono/mono/mini/mini-s390x.c index 6c5eb8d6f798..cbd38070d45b 100644 --- a/src/mono/mono/mini/mini-s390x.c +++ b/src/mono/mono/mini/mini-s390x.c @@ -691,7 +691,7 @@ emit_unwind_regs(MonoCompile *cfg, guint8 *code, int start, int end, long offset { int i; - for (i = start; i < end; i++) { + for (i = start; i <= end; i++) { mono_emit_unwind_op_offset (cfg, code, i, offset); mini_gc_set_slot_type_from_cfa (cfg, offset, SLOT_NOREF); offset += sizeof(gulong); @@ -5439,11 +5439,9 @@ mono_arch_emit_prolog (MonoCompile *cfg) /** * Create unwind information */ - mono_emit_unwind_op_def_cfa (cfg, code, STK_BASE, 0); - emit_unwind_regs(cfg, code, s390_r6, s390_r14, S390_REG_SAVE_OFFSET); - mono_emit_unwind_op_offset (cfg, code, s390_r14, S390_RET_ADDR_OFFSET); - s390_stmg (code, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET); - mini_gc_set_slot_type_from_cfa (cfg, S390_RET_ADDR_OFFSET, SLOT_NOREF); + mono_emit_unwind_op_def_cfa (cfg, code, STK_BASE, S390_CFA_OFFSET); + s390_stmg (code, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET); + emit_unwind_regs(cfg, code, s390_r6, s390_r15, S390_REG_SAVE_OFFSET - S390_CFA_OFFSET); if (cfg->arch.bkchain_reg != -1) s390_lgr (code, cfg->arch.bkchain_reg, STK_BASE); @@ -5485,6 +5483,7 @@ mono_arch_emit_prolog (MonoCompile *cfg) } s390_agfi (code, STK_BASE, -stackSize); } + mono_emit_unwind_op_def_cfa_offset (cfg, code, alloc_size + S390_CFA_OFFSET); s390_stg (code, s390_r11, 0, STK_BASE, 0); if (fpOffset > 0) { @@ -5494,19 +5493,17 @@ mono_arch_emit_prolog (MonoCompile *cfg) s390_aghi (code, s390_r1, -fpOffset); for (int i = s390_f8; i <= s390_f15; i++) { if (cfg->arch.used_fp_regs & (1 << i)) { - emit_unwind_regs(cfg, code, 16+i, 16+i, stkOffset+fpOffset); s390_std (code, i, 0, s390_r1, stkOffset); + emit_unwind_regs(cfg, code, 16+i, 16+i, stkOffset+fpOffset - S390_CFA_OFFSET); stkOffset += sizeof(double); } } } - mono_emit_unwind_op_def_cfa_offset (cfg, code, alloc_size); - - if (cfg->frame_reg != STK_BASE) + if (cfg->frame_reg != STK_BASE) { s390_lgr (code, s390_r11, STK_BASE); - - mono_emit_unwind_op_def_cfa_reg (cfg, code, cfg->frame_reg); + mono_emit_unwind_op_def_cfa_reg (cfg, code, cfg->frame_reg); + } /* store runtime generic context */ if (cfg->rgctx_var) { @@ -5868,13 +5865,15 @@ mono_arch_emit_epilog (MonoCompile *cfg) restoreLMF(code, cfg->frame_reg, cfg->stack_usage); code = backUpStackPtr(cfg, code); - mono_emit_unwind_op_def_cfa (cfg, code, STK_BASE, 0); + mono_emit_unwind_op_def_cfa (cfg, code, STK_BASE, S390_CFA_OFFSET); + mono_emit_unwind_op_same_value (cfg, code, STK_BASE); if (cfg->arch.fpSize != 0) { fpOffset = -cfg->arch.fpSize; for (int i=8; i<16; i++) { if (cfg->arch.used_fp_regs & (1 << i)) { s390_ldy (code, i, 0, STK_BASE, fpOffset); + mono_emit_unwind_op_same_value (cfg, code, 16+i); fpOffset += sizeof(double); } } @@ -6651,7 +6650,7 @@ mono_arch_get_cie_program (void) { GSList *l = NULL; - mono_add_unwind_op_def_cfa (l, 0, 0, STK_BASE, 0); + mono_add_unwind_op_def_cfa (l, 0, 0, STK_BASE, S390_CFA_OFFSET); return(l); } diff --git a/src/mono/mono/mini/mini-s390x.h b/src/mono/mono/mini/mini-s390x.h index bb358e235ab0..ff4584e71ade 100644 --- a/src/mono/mono/mini/mini-s390x.h +++ b/src/mono/mono/mini/mini-s390x.h @@ -80,6 +80,7 @@ struct SeqPointInfo { #define MONO_ARCH_HAVE_OP_TAILCALL_REG 1 #define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1 #define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1 +#define MONO_ARCH_HAVE_UNWIND_BACKTRACE 1 #define S390_STACK_ALIGNMENT 8 #define S390_FIRST_ARG_REG s390_r2 @@ -157,10 +158,9 @@ struct SeqPointInfo { #define S390_ALIGN(v, a) (((a) > 0 ? (((v) + ((a) - 1)) & ~((a) - 1)) : (v))) #define MONO_INIT_CONTEXT_FROM_FUNC(ctx,func) do { \ - MonoS390StackFrame *sframe; \ - __asm__ volatile("lgr %0,%%r15" : "=r" (sframe)); \ - MONO_CONTEXT_SET_BP ((ctx), sframe->prev); \ - MONO_CONTEXT_SET_SP ((ctx), sframe->prev); \ + void *sp = __builtin_frame_address (0); \ + MONO_CONTEXT_SET_BP ((ctx), sp); \ + MONO_CONTEXT_SET_SP ((ctx), sp); \ MONO_CONTEXT_SET_IP ((ctx), func); \ } while (0) diff --git a/src/mono/mono/mini/mini-wasm.c b/src/mono/mono/mini/mini-wasm.c index 2cf652df3562..f8d3e1855be7 100644 --- a/src/mono/mono/mini/mini-wasm.c +++ b/src/mono/mono/mini/mini-wasm.c @@ -613,23 +613,25 @@ tp_cb (void) } } +#ifdef HOST_WASM void mono_wasm_queue_tp_cb (void) { -#ifdef HOST_WASM mono_threads_schedule_background_job (tp_cb); -#endif } +#endif void mono_arch_register_icall (void) { +#ifdef HOST_WASM #ifdef ENABLE_NETCORE mono_add_internal_call_internal ("System.Threading.TimerQueue::SetTimeout", mono_wasm_set_timeout); mono_add_internal_call_internal ("System.Threading.ThreadPool::QueueCallback", mono_wasm_queue_tp_cb); #else mono_add_internal_call_internal ("System.Threading.WasmRuntime::SetTimeout", mono_wasm_set_timeout); #endif +#endif } void diff --git a/src/mono/mono/mini/mini-windows.c b/src/mono/mono/mini/mini-windows.c index 12bc4c719526..24f1a8b67ac2 100644 --- a/src/mono/mono/mini/mini-windows.c +++ b/src/mono/mono/mini/mini-windows.c @@ -52,7 +52,6 @@ #include #include #include "trace.h" -#include "version.h" #include "jit-icalls.h" diff --git a/src/mono/mono/mini/mini.c b/src/mono/mono/mini/mini.c index 3f6685413439..efd6e0edaf44 100644 --- a/src/mono/mono/mini/mini.c +++ b/src/mono/mono/mini/mini.c @@ -69,7 +69,6 @@ #include #include #include "trace.h" -#include "version.h" #include "ir-emit.h" #include "jit-icalls.h" diff --git a/src/mono/mono/mini/tramp-s390x.c b/src/mono/mono/mini/tramp-s390x.c index 73101b724f48..088be5b591d8 100644 --- a/src/mono/mono/mini/tramp-s390x.c +++ b/src/mono/mono/mini/tramp-s390x.c @@ -163,18 +163,17 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo /** * Create unwind information - On entry s390_r1 has value of method's frame reg */ - mono_add_unwind_op_def_cfa (unwind_ops, code, buf, STK_BASE, 0); - s390_stmg (code, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET); - gr_offset = S390_REG_SAVE_OFFSET; - for (i = s390_r6; i < s390_r15; i++) { + s390_stmg (code, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET); + mono_add_unwind_op_def_cfa (unwind_ops, code, buf, STK_BASE, S390_CFA_OFFSET); + gr_offset = S390_REG_SAVE_OFFSET - S390_CFA_OFFSET; + for (i = s390_r6; i <= s390_r15; i++) { mono_add_unwind_op_offset (unwind_ops, code, buf, i, gr_offset); gr_offset += sizeof(uintptr_t); } s390_lgr (code, s390_r0, STK_BASE); s390_aghi (code, STK_BASE, -framesize); - mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, framesize); - mono_add_unwind_op_fp_alloc (unwind_ops, code, buf, STK_BASE, 0); + mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, framesize + S390_CFA_OFFSET); s390_stg (code, s390_r0, 0, STK_BASE, 0); gr_offset = ctx_offset + G_STRUCT_OFFSET(MonoContext, uc_mcontext.gregs); @@ -231,8 +230,11 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo * Restore everything else from the on-entry values */ s390_aghi (code, STK_BASE, framesize); - mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, -framesize); + mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, S390_CFA_OFFSET); + mono_add_unwind_op_same_value (unwind_ops, code, buf, STK_BASE); s390_lmg (code, s390_r6, s390_r13, STK_BASE, S390_REG_SAVE_OFFSET); + for (i = s390_r6; i <= s390_r13; i++) + mono_add_unwind_op_same_value (unwind_ops, code, buf, i); s390_br (code, s390_r14); g_assertf ((code - buf) <= tramp_size, "%d %d", (int)(code - buf), tramp_size); @@ -329,17 +331,17 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf stack size big enough to save our registers. -----------------------------------------------------------*/ - mono_add_unwind_op_def_cfa (unwind_ops, code, buf, STK_BASE, 0); + mono_add_unwind_op_def_cfa (unwind_ops, buf, code, STK_BASE, S390_CFA_OFFSET); s390_stmg (buf, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET); - offset = S390_REG_SAVE_OFFSET; - for (i = s390_r6; i < s390_r15; i++) { - mono_add_unwind_op_offset (unwind_ops, code, buf, i, offset); + offset = S390_REG_SAVE_OFFSET - S390_CFA_OFFSET; + for (i = s390_r6; i <= s390_r15; i++) { + mono_add_unwind_op_offset (unwind_ops, buf, code, i, offset); offset += sizeof(uintptr_t); } s390_lgr (buf, s390_r11, s390_r15); s390_aghi (buf, STK_BASE, -sizeof(trampStack_t)); - mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, sizeof(trampStack_t)); + mono_add_unwind_op_def_cfa_offset (unwind_ops, buf, code, sizeof(trampStack_t) + S390_CFA_OFFSET); s390_stg (buf, s390_r11, 0, STK_BASE, 0); /*---------------------------------------------------------------*/ @@ -493,8 +495,11 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf * R14 contains the return address to our caller */ s390_lgr (buf, STK_BASE, s390_r11); - // mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, -sizeof(trampStack_t)); + mono_add_unwind_op_def_cfa_offset (unwind_ops, buf, code, S390_CFA_OFFSET); + mono_add_unwind_op_same_value (unwind_ops, buf, code, STK_BASE); s390_lmg (buf, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET); + for (i = s390_r6; i <= s390_r14; i++) + mono_add_unwind_op_same_value (unwind_ops, buf, code, i); if (MONO_TRAMPOLINE_TYPE_MUST_RETURN(tramp_type)) { s390_lgr (buf, s390_r2, s390_r1); diff --git a/src/mono/mono/profiler/aot.c b/src/mono/mono/profiler/aot.c index 2c4c26798057..058667cfb709 100644 --- a/src/mono/mono/profiler/aot.c +++ b/src/mono/mono/profiler/aot.c @@ -24,11 +24,14 @@ #include #include #include +#include #include #include #include #ifndef HOST_WIN32 #include +#else +#define sleep(t) Sleep((t) * 1000) #endif #include @@ -364,7 +367,7 @@ mono_profiler_init_aot (const char *desc) if (!aot_profiler.outfile_name) aot_profiler.outfile_name = g_strdup ("output.aotprofile"); else if (*aot_profiler.outfile_name == '+') - aot_profiler.outfile_name = g_strdup_printf ("%s.%d", aot_profiler.outfile_name + 1, getpid ()); + aot_profiler.outfile_name = g_strdup_printf ("%s.%d", aot_profiler.outfile_name + 1, mono_process_current_pid ()); if (*aot_profiler.outfile_name == '|') { #ifdef HAVE_POPEN diff --git a/src/mono/mono/tests/verifier/make_tests.sh b/src/mono/mono/tests/verifier/make_tests.sh index ccad6f00ddb3..5674f821b0aa 100755 --- a/src/mono/mono/tests/verifier/make_tests.sh +++ b/src/mono/mono/tests/verifier/make_tests.sh @@ -440,7 +440,7 @@ do I=`expr $I + 1` done -#valid coersion between native int and int32 +#valid coercion between native int and int32 I=1 for OP in stloc.0 "starg 0" do diff --git a/src/mono/mono/utils/CMakeLists.txt b/src/mono/mono/utils/CMakeLists.txt index 76b5ad405b65..b88ae828e256 100644 --- a/src/mono/mono/utils/CMakeLists.txt +++ b/src/mono/mono/utils/CMakeLists.txt @@ -1,15 +1,30 @@ set(utils_win32_sources + mono-os-semaphore-win32.c + mono-os-wait-win32.c + mono-windows-thread-name.c os-event-win32.c - mono-os-wait-win32.c) + w32subset.h) + +if(TARGET_WIN32 AND TARGET_AMD64) + enable_language(ASM_MASM) + set(CMAKE_ASM_MASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "") + set(CMAKE_ASM_MASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL "") + set(CMAKE_ASM_MASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug "") + set(CMAKE_ASM_MASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "") + + list(APPEND utils_win32_sources win64.asm) +endif() set(utils_unix_sources + dlmalloc.h + dlmalloc.c os-event-unix.c) if(HOST_WIN32) -set(utils_platform_sources ${utils_win32_sources}) + set(utils_platform_sources ${utils_win32_sources}) else() -set(utils_platform_sources ${utils_unix_sources}) + set(utils_platform_sources ${utils_unix_sources}) endif() set(utils_common_sources @@ -18,8 +33,6 @@ set(utils_common_sources mono-logger.c mono-logger-internals.h mono-codeman.c - dlmalloc.h - dlmalloc.c mono-counters.c mono-compiler.h mono-complex.h @@ -70,6 +83,7 @@ set(utils_common_sources mono-string.h mono-time.c mono-time.h + strenc-internals.h strenc.h strenc.c mono-uri.c @@ -96,6 +110,7 @@ set(utils_common_sources mono-counters.h mono-digest.h mono-error.h + mono-forward-internal.h mono-machine.h mono-math.h mono-membar.h @@ -111,14 +126,14 @@ set(utils_common_sources mono-stack-unwinding.h hazard-pointer.c hazard-pointer.h + lifo-semaphore.c + lifo-semaphore.h lock-free-queue.c lock-free-queue.h lock-free-alloc.c lock-free-alloc.h lock-free-array-queue.c lock-free-array-queue.h - lifo-semaphore.c - lifo-semaphore.h mono-linked-list-set.c mono-linked-list-set.h mono-threads.c @@ -145,6 +160,7 @@ set(utils_common_sources mono-utility-thread.c mono-utility-thread.h mono-tls.h + mono-tls-inline.h mono-tls.c mono-utils-debug.c mono-utils-debug.h @@ -224,12 +240,12 @@ endif() addprefix(utils_sources ../utils/ "${utils_platform_sources};${utils_arch_sources};${utils_common_sources}") set(utils_public_headers_base - mono-logger.h - mono-error.h - mono-forward.h - mono-publib.h - mono-jemalloc.h - mono-dl-fallback.h - mono-private-unstable.h - mono-counters.h) + mono-logger.h + mono-error.h + mono-forward.h + mono-publib.h + mono-jemalloc.h + mono-dl-fallback.h + mono-private-unstable.h + mono-counters.h) addprefix(utils_public_headers ../utils "${utils_public_headers_base}") diff --git a/src/mono/mono/utils/checked-build.c b/src/mono/mono/utils/checked-build.c index 38532eecf4bb..8dd5ca5b60b0 100644 --- a/src/mono/mono/utils/checked-build.c +++ b/src/mono/mono/utils/checked-build.c @@ -129,7 +129,7 @@ backtrace_mutex_trylock (void) static void backtrace_mutex_unlock (void) { - return mono_os_mutex_unlock (&backtrace_mutex); + mono_os_mutex_unlock (&backtrace_mutex); } static CheckState* diff --git a/src/mono/mono/utils/mono-counters.c b/src/mono/mono/utils/mono-counters.c index 67b5269dc7c7..6f9f380f81bc 100644 --- a/src/mono/mono/utils/mono-counters.c +++ b/src/mono/mono/utils/mono-counters.c @@ -360,7 +360,7 @@ paged_bytes (void) // cause a failure when registering counters since the same function address will be used by all three functions. Preventing this method from being inlined // will make sure the registered callback functions remains unique. #ifdef _MSC_VER -__declspec(noinline) +#pragma optimize("", off) #endif static double cpu_load (int kind) @@ -413,6 +413,9 @@ cpu_load_15min (void) { return cpu_load (2); } +#ifdef _MSC_VER +#pragma optimize("", on) +#endif #define SYSCOUNTER_TIME (MONO_COUNTER_SYSTEM | MONO_COUNTER_LONG | MONO_COUNTER_TIME | MONO_COUNTER_MONOTONIC | MONO_COUNTER_CALLBACK) #define SYSCOUNTER_BYTES (MONO_COUNTER_SYSTEM | MONO_COUNTER_LONG | MONO_COUNTER_BYTES | MONO_COUNTER_VARIABLE | MONO_COUNTER_CALLBACK) diff --git a/src/mono/mono/utils/mono-threads-wasm.c b/src/mono/mono/utils/mono-threads-wasm.c index 33f4688fac64..dc792e8158e0 100644 --- a/src/mono/mono/utils/mono-threads-wasm.c +++ b/src/mono/mono/utils/mono-threads-wasm.c @@ -10,6 +10,7 @@ #include #include +#include #include #define round_down(addr, val) ((void*)((addr) & ~((val) - 1))) @@ -18,19 +19,14 @@ EMSCRIPTEN_KEEPALIVE static int wasm_get_stack_base (void) { - // Return the bottom limit of the stack - return EM_ASM_INT ({ - return STACK_MAX; - }); + return emscripten_stack_get_end (); } EMSCRIPTEN_KEEPALIVE static int wasm_get_stack_size (void) { - return EM_ASM_INT ({ - return TOTAL_STACK; - }); + return (guint8*)emscripten_stack_get_base () - (guint8*)emscripten_stack_get_end (); } int diff --git a/src/mono/mono/zlib/CMakeLists.txt b/src/mono/mono/zlib/CMakeLists.txt new file mode 100644 index 000000000000..e3c97d8ed7e0 --- /dev/null +++ b/src/mono/mono/zlib/CMakeLists.txt @@ -0,0 +1,26 @@ +set(zlib_sources_base + adler32.c + compress.c + crc32.c + uncompr.c + deflate.c + gzguts.h + trees.c + zutil.c + inflate.c + infback.c + inftrees.c + inffast.c + crc32.h + deflate.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zconf.h + zlib.h + zutil.h +) + +addprefix(zlib_sources ../zlib "${zlib_sources_base}") diff --git a/src/mono/msvc/libeventpipe.targets b/src/mono/msvc/libeventpipe.targets index fca6c7e08775..e48e0a8a1205 100644 --- a/src/mono/msvc/libeventpipe.targets +++ b/src/mono/msvc/libeventpipe.targets @@ -3,129 +3,148 @@ false true + $(MonoSourceLocation)\..\native\eventpipe\ + $(MonoSourceLocation)\mono\eventpipe\ - - + + $(ExcludeEventPipeFromBuild) - - + $(ExcludeEventPipeFromBuild) - - - + + $(ExcludeEventPipeFromBuild) - - + + + $(ExcludeEventPipeFromBuild) - - + + + true + + + + $(ExcludeEventPipeFromBuild) + + + + $(ExcludeEventPipeFromBuild) + + + + $(ExcludeEventPipeFromBuild) + + + $(ExcludeEventPipeFromBuild) - - + + + + + $(ExcludeEventPipeFromBuild) - - + + + $(ExcludeEventPipeFromBuild) - - - - + + $(ExcludeEventPipeFromBuild) - - - - + + $(ExcludeEventPipeFromBuild) - - - + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - + + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - - + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - + + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - - - + + + + + + $(ExcludeEventPipeFromBuild) - - + + + $(ExcludeEventPipeFromBuild) - - - - - - + + $(ExcludeEventPipeFromBuild) - - - - + + $(ExcludeEventPipeFromBuild) - - - + $(ExcludeEventPipeFromBuild) - - + + $(ExcludeEventPipeFromBuild) - + + + + $(ExcludeEventPipeFromBuild) - - + + + + $(ExcludeEventPipeFromBuild) - + + diff --git a/src/mono/msvc/libeventpipe.targets.filters b/src/mono/msvc/libeventpipe.targets.filters index 07ff710c1661..91b4aba71024 100644 --- a/src/mono/msvc/libeventpipe.targets.filters +++ b/src/mono/msvc/libeventpipe.targets.filters @@ -1,217 +1,256 @@ - - + + $(MonoSourceLocation)\..\native\eventpipe\ + $(MonoSourceLocation)\mono\eventpipe\ + + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - Source Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe\pal - - Header Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\pal - - Source Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe\pal - - Header Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\pal - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - - Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - - Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe - + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe + + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Source Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + + Header Files$(MonoRuntimeFilterSubFolder)\eventpipe\shim + + {D6D64FF2-7951-44D8-B965-4593893CEF35} + + {D7D65FF2-7931-44D8-B965-4593893CEF36} + + + {D1D63FF1-7351-44D8-B965-4593693CEF77} + {B372B1CF-F13A-43B8-97E0-DF7A9563D4AE} + + {A452B1CF-F14A-42B8-98E0-DF7A9563D4BE} + + + {C562B1CF-F23A-44B8-98E0-DF7A9563D5AC} + diff --git a/src/mono/msvc/libmini.vcxproj b/src/mono/msvc/libmini.vcxproj index 12459c798fbb..d2f6b04e16b1 100644 --- a/src/mono/msvc/libmini.vcxproj +++ b/src/mono/msvc/libmini.vcxproj @@ -100,7 +100,7 @@ /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) Disabled - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);_DEBUG;%(PreprocessorDefinitions) 4996;4018;4244;%(DisableSpecificWarnings) $(IntDir)$(TargetName).pdb @@ -116,7 +116,7 @@ /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) Disabled - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);WIN64;_DEBUG;%(PreprocessorDefinitions) 4996;4018;4244;%(DisableSpecificWarnings) $(IntDir)$(TargetName).pdb @@ -131,7 +131,7 @@ /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) true - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);NDEBUG;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Level3 @@ -147,7 +147,7 @@ /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) true - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);WIN64;NDEBUG;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Level3 diff --git a/src/mono/msvc/libmono-dynamic.vcxproj b/src/mono/msvc/libmono-dynamic.vcxproj index cd120b7cfb16..209cd2abd6e1 100644 --- a/src/mono/msvc/libmono-dynamic.vcxproj +++ b/src/mono/msvc/libmono-dynamic.vcxproj @@ -95,7 +95,7 @@ Disabled - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);$(SHIM_GLOBALIZATION_DEFINES);_DEBUG;%(PreprocessorDefinitions) 4996;4018;4244;%(DisableSpecificWarnings) Level3 @@ -121,7 +121,7 @@ Disabled - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);$(SHIM_GLOBALIZATION_DEFINES);WIN64;_DEBUG;%(PreprocessorDefinitions) 4996;4018;4244;%(DisableSpecificWarnings) Level3 @@ -144,7 +144,7 @@ true - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);$(SHIM_GLOBALIZATION_DEFINES);NDEBUG;%(PreprocessorDefinitions) true Level3 @@ -172,7 +172,7 @@ true - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(MONO_LLVM_DEFAULT_INCLUDE_DIR);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;LLVM_API_VERSION=$(MONO_LLVM_DEFAULT_API_VERSION);$(SHIM_GLOBALIZATION_DEFINES);WIN64;NDEBUG;%(PreprocessorDefinitions) true Level3 diff --git a/src/mono/msvc/libmonoruntime.vcxproj b/src/mono/msvc/libmonoruntime.vcxproj index 2541712d4817..c30629c36730 100644 --- a/src/mono/msvc/libmonoruntime.vcxproj +++ b/src/mono/msvc/libmonoruntime.vcxproj @@ -98,7 +98,7 @@ Level3 Disabled WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);$(SHIM_GLOBALIZATION_DEFINES);_DEBUG;%(PreprocessorDefinitions) - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb ProgramDatabase @@ -112,7 +112,7 @@ Level3 Disabled WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);$(SHIM_GLOBALIZATION_DEFINES);WIN64;_DEBUG;%(PreprocessorDefinitions) - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb ProgramDatabase @@ -126,7 +126,7 @@ Level3 true WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);$(SHIM_GLOBALIZATION_DEFINES);NDEBUG;%(PreprocessorDefinitions) - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb true @@ -142,7 +142,7 @@ Level3 true WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);$(SHIM_GLOBALIZATION_DEFINES);WIN64;NDEBUG;%(PreprocessorDefinitions) - $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);%(AdditionalIncludeDirectories) + $(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);$(SHIM_GLOBALIZATION_INCLUDE_DIR);$(EVENTPIPE_INCLUDE_DIR);%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb true diff --git a/src/mono/msvc/mono.props b/src/mono/msvc/mono.props index d6352f85884f..4ff38c60c6d7 100644 --- a/src/mono/msvc/mono.props +++ b/src/mono/msvc/mono.props @@ -29,10 +29,10 @@ false false - true + true false - true + true .. @@ -51,6 +51,7 @@ $(top_srcdir)/../libraries/Native/Unix/System.Globalization.Native $(top_srcdir)/../libraries/Native/Unix/Common $(SHIM_GLOBALIZATION_COMMON);$(SHIM_GLOBALIZATION) + $(top_srcdir)/../native/ $(MONO_DIR)/external/llvm-project/llvm/include diff --git a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj index 481833215299..6a40f5fddebe 100644 --- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj +++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj @@ -1,4 +1,4 @@ - + @@ -45,6 +45,7 @@ true $(OutputPath)$(MSBuildProjectName).xml + src @@ -174,7 +175,6 @@ - @@ -250,7 +250,6 @@ - @@ -294,6 +293,11 @@ + + + + + diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs index 4c84b6c4f985..8ca355083360 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs @@ -352,7 +352,7 @@ public override string ToString() sbName.Append(' '); sbName.Append(Name); sbName.Append('('); - AppendParameters(ref sbName, parameters ?? Array.Empty(), CallingConvention); + AppendParameters(ref sbName, parameters ?? Type.EmptyTypes, CallingConvention); sbName.Append(')'); return sbName.ToString(); } diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.Mono.cs index 7d50fa0d28f6..7e46c37bb8b3 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.Mono.cs @@ -336,15 +336,15 @@ public int GetHashCode((Type, string) key) { var key = (type, cookie); - LazyInitializer.EnsureInitialized( - ref MarshalerInstanceCache, - () => new Dictionary<(Type, string), ICustomMarshaler>(new MarshalerInstanceKeyComparer()) - ); + Dictionary<(Type, string), ICustomMarshaler> cache = + Volatile.Read(ref MarshalerInstanceCache) ?? + Interlocked.CompareExchange(ref MarshalerInstanceCache, new Dictionary<(Type, string), ICustomMarshaler>(new MarshalerInstanceKeyComparer()), null) ?? + MarshalerInstanceCache; ICustomMarshaler? result; bool gotExistingInstance; - lock (MarshalerInstanceCache) - gotExistingInstance = MarshalerInstanceCache.TryGetValue(key, out result); + lock (cache) + gotExistingInstance = cache.TryGetValue(key, out result); if (!gotExistingInstance) { @@ -389,8 +389,8 @@ public int GetHashCode((Type, string) key) if (result == null) throw new ApplicationException($"A call to GetInstance() for custom marshaler '{type.FullName}' returned null, which is not allowed."); - lock (MarshalerInstanceCache) - MarshalerInstanceCache[key] = result; + lock (cache) + cache[key] = result; } return result; diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/RuntimeType.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/RuntimeType.Mono.cs index f3f18653d97e..66b0bbb9b4f8 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/RuntimeType.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/RuntimeType.Mono.cs @@ -1206,7 +1206,7 @@ public override Type[] GetGenericArguments() Type[] types = GetGenericArgumentsInternal(false); if (types == null) - types = Array.Empty(); + types = Type.EmptyTypes; return types; } @@ -1822,18 +1822,12 @@ private void CreateInstanceCheckThis() #endregion - private TypeCache cache; + private TypeCache? cache; - internal TypeCache Cache - { - get - { - if (cache == null) - LazyInitializer.EnsureInitialized(ref cache, () => new TypeCache()); - - return cache; - } - } + internal TypeCache Cache => + Volatile.Read(ref cache) ?? + Interlocked.CompareExchange(ref cache, new TypeCache(), null) ?? + cache; internal sealed class TypeCache { @@ -1864,7 +1858,7 @@ internal RuntimeType(object obj) ListBuilder ctors = GetConstructorCandidates( null, BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly, CallingConventions.Any, - Array.Empty(), false); + Type.EmptyTypes, false); if (ctors.Count == 1) cache.default_ctor = ctor = (RuntimeConstructorInfo)ctors[0]; @@ -2271,7 +2265,7 @@ public override Type[] GetGenericParameterConstraints() var paramInfo = new Mono.RuntimeGenericParamInfoHandle(RuntimeTypeHandle.GetGenericParameterInfo(this)); Type[] constraints = paramInfo.Constraints; - return constraints ?? Array.Empty(); + return constraints ?? Type.EmptyTypes; } internal static object CreateInstanceForAnotherGenericParameter(Type genericType, RuntimeType genericArgument) diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Text/Utf8Span.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Text/Utf8Span.cs deleted file mode 100644 index b3ffff505534..000000000000 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Text/Utf8Span.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -namespace System.Text -{ - [StructLayout(LayoutKind.Auto)] - public readonly ref partial struct Utf8Span - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public Utf8Span(Utf8String? value) - { - throw new PlatformNotSupportedException(); - } - - public ReadOnlySpan Bytes { get; } - - public static Utf8Span Empty => default; - - public bool IsEmpty => throw new PlatformNotSupportedException(); - - public int Length => throw new PlatformNotSupportedException(); - - public Utf8Span this[Range range] - { - get - { - throw new PlatformNotSupportedException(); - } - } - - public bool IsEmptyOrWhiteSpace() => throw new PlatformNotSupportedException(); - - [Obsolete("Equals(object) on Utf8Span will always throw an exception. Use Equals(Utf8Span) or operator == instead.")] - [EditorBrowsable(EditorBrowsableState.Never)] -#pragma warning disable 0809 // Obsolete member 'Utf8Span.Equals(object)' overrides non-obsolete member 'object.Equals(object)' - public override bool Equals(object? obj) -#pragma warning restore 0809 - { - throw new NotSupportedException(SR.Utf8Span_CannotCallEqualsObject); - } - - public bool Equals(Utf8Span other) => throw new PlatformNotSupportedException(); - - public bool Equals(Utf8Span other, StringComparison comparison) => throw new PlatformNotSupportedException(); - - public static bool Equals(Utf8Span left, Utf8Span right) => throw new PlatformNotSupportedException(); - - public static bool Equals(Utf8Span left, Utf8Span right, StringComparison comparison) - { - throw new PlatformNotSupportedException(); - } - - public override int GetHashCode() - { - throw new PlatformNotSupportedException(); - } - - public int GetHashCode(StringComparison comparison) - { - throw new PlatformNotSupportedException(); - } - - public bool IsAscii() - { - throw new PlatformNotSupportedException(); - } - - public bool IsNormalized(NormalizationForm normalizationForm = NormalizationForm.FormC) - { - throw new PlatformNotSupportedException(); - } - - [EditorBrowsable(EditorBrowsableState.Never)] - public ref readonly byte GetPinnableReference() - { - throw new PlatformNotSupportedException(); - } - - public override string ToString() - { - throw new PlatformNotSupportedException(); - } - - public Utf8String ToUtf8String() - { - throw new PlatformNotSupportedException(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Utf8Span UnsafeCreateWithoutValidation(ReadOnlySpan buffer) - { - throw new PlatformNotSupportedException(); - } - } -} diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Overlapped.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Overlapped.cs index 8c4bb289df25..117e75cef56f 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Overlapped.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Overlapped.cs @@ -224,7 +224,7 @@ public Overlapped(int offsetLo, int offsetHi, IntPtr hEvent, IAsyncResult? ar) : _overlappedData.AsyncResult = ar; } - [Obsolete("This constructor is not 64-bit compatible. Use the constructor that takes an IntPtr for the event handle. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This constructor is not 64-bit compatible. Use the constructor that takes an IntPtr for the event handle. https://go.microsoft.com/fwlink/?linkid=14202")] public Overlapped(int offsetLo, int offsetHi, int hEvent, IAsyncResult? ar) : this(offsetLo, offsetHi, new IntPtr(hEvent), ar) { } @@ -247,7 +247,7 @@ public int OffsetHigh set { _overlappedData.OffsetHigh = value; } } - [Obsolete("This property is not 64-bit compatible. Use EventHandleIntPtr instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This property is not 64-bit compatible. Use EventHandleIntPtr instead. https://go.microsoft.com/fwlink/?linkid=14202")] public int EventHandle { get { return EventHandleIntPtr.ToInt32(); } @@ -265,7 +265,7 @@ public IntPtr EventHandleIntPtr * Roots the iocb and stores it in the ReservedCOR field of native Overlapped * Pins the native Overlapped struct and returns the pinned index. ====================================================================*/ - [Obsolete("This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")] [CLSCompliant(false)] public unsafe NativeOverlapped* Pack(IOCompletionCallback? iocb) { @@ -278,7 +278,7 @@ public IntPtr EventHandleIntPtr return _overlappedData.Pack(iocb, userData); } - [Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")] + [Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")] [CLSCompliant(false)] public unsafe NativeOverlapped* UnsafePack(IOCompletionCallback? iocb) { diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Thread.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Thread.Mono.cs index 0cc83104e195..2ca14d0e5a7f 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Thread.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/Thread.Mono.cs @@ -309,7 +309,20 @@ public static bool Yield() return YieldInternal(); } - private static bool TrySetApartmentStateUnchecked(ApartmentState state) => state == ApartmentState.Unknown; + private static bool SetApartmentStateUnchecked(ApartmentState state, bool throwOnError) + { + if (state != ApartmentState.Unknown) + { + if (throwOnError) + { + throw new PlatformNotSupportedException(SR.PlatformNotSupported_ComInterop); + } + + return false; + } + + return true; + } private ThreadState ValidateThreadState() { diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Utf8String.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Utf8String.cs deleted file mode 100644 index 3299ccd09eb9..000000000000 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Utf8String.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; -using System.Text; - -namespace System -{ - /// - /// Represents an immutable string of UTF-8 code units. - /// - public sealed partial class Utf8String : IComparable, IEquatable - { -#pragma warning disable CS8618 - public static readonly Utf8String Empty; -#pragma warning restore CS8618 - - public static bool operator ==(Utf8String? left, Utf8String? right) => throw new PlatformNotSupportedException(); - public static bool operator !=(Utf8String? left, Utf8String? right) => throw new PlatformNotSupportedException(); - public static implicit operator Utf8Span(Utf8String? value) => throw new PlatformNotSupportedException(); - - public int Length => throw new PlatformNotSupportedException(); - public Utf8String this[Range range] - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - get - { - throw new PlatformNotSupportedException(); - } - } - - public int CompareTo(Utf8String? other) - { - throw new PlatformNotSupportedException(); - } - - public int CompareTo(Utf8String? other, StringComparison comparison) - { - throw new PlatformNotSupportedException(); - } - - public override bool Equals(object? obj) - { - throw new PlatformNotSupportedException(); - } - - public bool Equals(Utf8String? value) - { - throw new PlatformNotSupportedException(); - } - - public bool Equals(Utf8String? value, StringComparison comparison) => throw new PlatformNotSupportedException(); - - public static bool Equals(Utf8String? left, Utf8String? right) - { - throw new PlatformNotSupportedException(); - } - - public static bool Equals(Utf8String? a, Utf8String? b, StringComparison comparison) - { - throw new PlatformNotSupportedException(); - } - - public override int GetHashCode() - { - throw new PlatformNotSupportedException(); - } - - public int GetHashCode(StringComparison comparison) - { - throw new PlatformNotSupportedException(); - } - - [EditorBrowsable(EditorBrowsableState.Never)] // for compiler use only - public ref readonly byte GetPinnableReference() => throw new PlatformNotSupportedException(); - - public bool IsAscii() - { - throw new PlatformNotSupportedException(); - } - - public static bool IsNullOrEmpty([NotNullWhen(false)] Utf8String? value) - { - throw new PlatformNotSupportedException(); - } - - public static bool IsNullOrWhiteSpace([NotNullWhen(false)] Utf8String? value) - { - throw new PlatformNotSupportedException(); - } - - public byte[] ToByteArray() => throw new PlatformNotSupportedException(); - - public override string ToString() - { - throw new PlatformNotSupportedException(); - } - } -} diff --git a/src/mono/netcore/sample/Android/AndroidSampleApp.csproj b/src/mono/netcore/sample/Android/AndroidSampleApp.csproj index d585f4941814..48e85f87cecf 100644 --- a/src/mono/netcore/sample/Android/AndroidSampleApp.csproj +++ b/src/mono/netcore/sample/Android/AndroidSampleApp.csproj @@ -36,6 +36,7 @@ RuntimeIdentifier="$(RuntimeIdentifier)" SourceDir="$(OutputPath)" ProjectName="HelloAndroid" + ForceInterpreter="$(MonoForceInterpreter)" MonoRuntimeHeaders="$(MicrosoftNetCoreAppRuntimePackDir)\native\include\mono-2.0" MainLibraryFileName="$(AssemblyName).dll" StripDebugSymbols="$(StripDebugSymbols)" @@ -53,9 +54,10 @@ - + - + diff --git a/src/mono/netcore/sample/iOS/Program.csproj b/src/mono/netcore/sample/iOS/Program.csproj index 519a6e706c50..60d9604b7226 100644 --- a/src/mono/netcore/sample/iOS/Program.csproj +++ b/src/mono/netcore/sample/iOS/Program.csproj @@ -34,24 +34,27 @@ $(MSBuildThisFileDirectory)$(PublishDir)\app iPhone 11 True + true - - + + @(MonoAOTCompilerDefaultAotArguments, ';') @(MonoAOTCompilerDefaultProcessArguments, ';') @@ -69,6 +72,7 @@ OutputDirectory="$(AppDir)" Optimized="$(Optimized)" UseAotForSimulator="$(UseAotForSimulator)" + ForceInterpreter="$(MonoForceInterpreter)" AppDir="$(MSBuildThisFileDirectory)$(PublishDir)"> diff --git a/src/mono/netcore/sample/wasm/browser/Makefile b/src/mono/netcore/sample/wasm/browser/Makefile index 05e22d85dfe5..8b14756a214c 100644 --- a/src/mono/netcore/sample/wasm/browser/Makefile +++ b/src/mono/netcore/sample/wasm/browser/Makefile @@ -1,13 +1,18 @@ TOP=../../../../../.. +DOTNET=$(TOP)/dotnet.sh +ifeq ($(V),) DOTNET_Q_ARGS=--nologo -v:q -consoleloggerparameters:NoSummary +else +DOTNET_Q_ARGS=--nologo +endif CONFIG?=Release all: build build: - $(TOP)/.dotnet/dotnet build $(DOTNET_Q_ARGS) /p:TargetArchitecture=wasm /p:TargetOS=Browser /p:Configuration=$(CONFIG) WasmSample.csproj + $(DOTNET) build $(DOTNET_Q_ARGS) /p:TargetArchitecture=wasm /p:TargetOS=Browser /p:Configuration=$(CONFIG) WasmSample.csproj clean: rm -rf bin diff --git a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj index 304723926fb0..a944c91f1c64 100644 --- a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj +++ b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj @@ -17,16 +17,16 @@ + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppCurrent)\publish\WasmAppBuilder.dll"/> diff --git a/src/mono/netcore/sample/wasm/console/Makefile b/src/mono/netcore/sample/wasm/console/Makefile index 960f45845472..856a3a6f9159 100644 --- a/src/mono/netcore/sample/wasm/console/Makefile +++ b/src/mono/netcore/sample/wasm/console/Makefile @@ -1,9 +1,15 @@ TOP=../../../../../.. +DOTNET=$(TOP)/dotnet.sh ifeq ($(V),) DOTNET_Q_ARGS=--nologo -v:q -consoleloggerparameters:NoSummary else DOTNET_Q_ARGS=--nologo +DOTNET_MONO_LOG_LEVEL=--setenv=MONO_LOG_LEVEL=debug +endif + +ifneq ($(AOT),) +DOTNET_RUN_AOT_COMPILATION_ARGS=/p:RunAOTCompilation=true endif CONFIG?=Release @@ -11,13 +17,10 @@ CONFIG?=Release all: build build: - $(TOP)/.dotnet/dotnet publish $(DOTNET_Q_ARGS) /p:TargetArchitecture=wasm /p:TargetOS=Browser /p:Configuration=$(CONFIG) WasmSample.csproj + $(DOTNET) publish $(DOTNET_Q_ARGS) $(DOTNET_RUN_AOT_COMPILATION_ARGS) /p:TargetArchitecture=wasm /p:TargetOS=Browser /p:Configuration=$(CONFIG) WasmSample.csproj clean: rm -rf bin run: - cd bin/$(CONFIG)/publish && ~/.jsvu/v8 --expose_wasm runtime.js -- --run WasmSample.dll - -runtimepack: - EMSDK_PATH=$(abspath $(TOP)/src/mono/wasm/emsdk) $(TOP)/build.sh -c $(CONFIG) -os Browser -arch wasm -subset Mono+Libs + cd bin/$(CONFIG)/AppBundle && ~/.jsvu/v8 --expose_wasm runtime.js -- $(DOTNET_MONO_LOG_LEVEL) --run WasmSample.dll diff --git a/src/mono/netcore/sample/wasm/console/WasmSample.csproj b/src/mono/netcore/sample/wasm/console/WasmSample.csproj index baa4083e78bc..86d93f1180de 100644 --- a/src/mono/netcore/sample/wasm/console/WasmSample.csproj +++ b/src/mono/netcore/sample/wasm/console/WasmSample.csproj @@ -8,13 +8,23 @@ Browser $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)obj\$(Configuration)\wasm - $(MSBuildThisFileDirectory)bin\$(Configuration)\publish + $(MSBuildThisFileDirectory)bin\$(Configuration)\AppBundle\ true link false true browser-wasm false + false + + + + + false + true + false + false + false @@ -33,28 +43,80 @@ + + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppCurrent)\publish\WasmAppBuilder.dll"/> + + + + - + + + @(MonoAOTCompilerDefaultAotArguments, ';') + @(MonoAOTCompilerDefaultProcessArguments, ';') + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + <_managedAppAssemblies Include="$(AppDir)managed\*.dll"/> + + diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile index b359f4c39091..9a7cb1500881 100644 --- a/src/mono/wasm/Makefile +++ b/src/mono/wasm/Makefile @@ -1,6 +1,8 @@ TOP=$(realpath $(CURDIR)/../../..) -include Make.config +escape_quote = $(subst ",\",$(1)) + DOTNET=$(TOP)/dotnet.sh JSVU=$(HOME)/.jsvu CHROMEDRIVER?=$(HOME)/.chromedriver @@ -71,13 +73,13 @@ EMCC_RELEASE_FLAGS=-Oz --llvm-opts 2 -DENABLE_NETCORE=1 STRIP_CMD=&& $(EMSDK_PATH)/upstream/bin/wasm-opt --strip-dwarf $(NATIVE_BIN_DIR)/dotnet.wasm -o $(NATIVE_BIN_DIR)/dotnet.wasm # -# Interpreter builds +# Wasm builds # # $(1) - EMCC_FLAGS # $(2) - libs # $(3) - strip cmd -define InterpBuildTemplate +define WasmBuildTemplate $(NATIVE_BIN_DIR): mkdir -p $$@ @@ -97,23 +99,29 @@ $(NATIVE_BIN_DIR)/dotnet.js: $(BUILDS_OBJ_DIR)/driver.o $(BUILDS_OBJ_DIR)/pinvok $(BUILDS_OBJ_DIR)/pinvoke-table.h: $(PINVOKE_TABLE) | $(BUILDS_OBJ_DIR) if cmp -s $(PINVOKE_TABLE) $$@ ; then : ; else cp $(PINVOKE_TABLE) $$@ ; fi -$(BUILDS_OBJ_DIR)/driver.o: runtime/driver.c runtime/corebindings.c | $(BUILDS_OBJ_DIR) +$(BUILDS_OBJ_DIR)/driver.o: runtime/driver.c | $(BUILDS_OBJ_DIR) $(EMCC) $(EMCC_FLAGS) $(1) -Oz -DCORE_BINDINGS -I$(BUILDS_OBJ_DIR) -I$(MONO_INCLUDE_DIR) runtime/driver.c -c -o $$@ $(BUILDS_OBJ_DIR)/pinvoke.o: runtime/pinvoke.c runtime/pinvoke.h $(BUILDS_OBJ_DIR)/pinvoke-table.h | $(BUILDS_OBJ_DIR) - $(EMCC) $(EMCC_FLAGS) $(1) -Oz -DGEN_PINVOKE=1 -I$(BUILDS_OBJ_DIR) -I$(MONO_INCLUDE_DIR) runtime/pinvoke.c -c -o $$@ + $(EMCC) $(EMCC_FLAGS) $(1) -Oz -DGEN_PINVOKE=1 -I$(BUILDS_OBJ_DIR) runtime/pinvoke.c -c -o $$@ $(BUILDS_OBJ_DIR)/corebindings.o: runtime/corebindings.c | $(BUILDS_OBJ_DIR) $(EMCC) $(EMCC_FLAGS) $(1) -Oz -I$(MONO_INCLUDE_DIR) runtime/corebindings.c -c -o $$@ -build-native: $(NATIVE_BIN_DIR)/dotnet.js +$(NATIVE_BIN_DIR)/src/emcc-flags.txt: | $(NATIVE_BIN_DIR)/src + echo "$(call escape_quote,$(EMCC_FLAGS)) $(1) -Oz" > $$@ + +$(NATIVE_BIN_DIR)/src/emcc-version.txt: $(EMSDK_PATH)/upstream/.emsdk_version | $(NATIVE_BIN_DIR)/src + $(EMCC) --version | head -1 > $$@ + +build-native: $(NATIVE_BIN_DIR)/dotnet.js $(NATIVE_BIN_DIR)/src/emcc-flags.txt $(NATIVE_BIN_DIR)/src/emcc-version.txt endef ifeq ($(CONFIG),Debug) -$(eval $(call InterpBuildTemplate,$(EMCC_DEBUG_FLAGS),$(MONO_LIBS),)) +$(eval $(call WasmBuildTemplate,$(EMCC_DEBUG_FLAGS),$(MONO_LIBS),)) else -$(eval $(call InterpBuildTemplate,$(EMCC_RELEASE_FLAGS),$(MONO_LIBS),$(STRIP_CMD))) +$(eval $(call WasmBuildTemplate,$(EMCC_RELEASE_FLAGS),$(MONO_LIBS),$(STRIP_CMD))) endif clean-emsdk: diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj index 77d067bb660a..22a3aaaca602 100644 --- a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj +++ b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj @@ -24,16 +24,16 @@ + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppCurrent)\publish\WasmAppBuilder.dll"/> diff --git a/src/mono/wasm/runtime/binding_support.js b/src/mono/wasm/runtime/binding_support.js index ac215b105028..c16b6d7727cb 100644 --- a/src/mono/wasm/runtime/binding_support.js +++ b/src/mono/wasm/runtime/binding_support.js @@ -1388,6 +1388,13 @@ var BindingSupportLib = { classname = fqn.substring (idx + 1); } + if (!assembly.trim()) + throw new Error("No assembly name specified"); + if (!classname.trim()) + throw new Error("No class name specified"); + if (!methodname.trim()) + throw new Error("No method name specified"); + var asm = this.assembly_load (assembly); if (!asm) throw new Error ("Could not find assembly: " + assembly); diff --git a/src/mono/wasm/runtime/library_mono.js b/src/mono/wasm/runtime/library_mono.js index fc2127214606..734e5cdc2c85 100644 --- a/src/mono/wasm/runtime/library_mono.js +++ b/src/mono/wasm/runtime/library_mono.js @@ -73,19 +73,19 @@ var MonoSupportLib = { }, export_functions: function (module) { - module ["pump_message"] = MONO.pump_message; - module ["mono_load_runtime_and_bcl"] = MONO.mono_load_runtime_and_bcl; - module ["mono_load_runtime_and_bcl_args"] = MONO.mono_load_runtime_and_bcl_args; - module ["mono_wasm_load_bytes_into_heap"] = MONO.mono_wasm_load_bytes_into_heap; - module ["mono_wasm_load_icu_data"] = MONO.mono_wasm_load_icu_data; - module ["mono_wasm_get_icudt_name"] = MONO.mono_wasm_get_icudt_name; - module ["mono_wasm_globalization_init"] = MONO.mono_wasm_globalization_init; - module ["mono_wasm_get_loaded_files"] = MONO.mono_wasm_get_loaded_files; - module ["mono_wasm_new_root_buffer"] = MONO.mono_wasm_new_root_buffer; - module ["mono_wasm_new_root_buffer_from_pointer"] = MONO.mono_wasm_new_root_buffer_from_pointer; - module ["mono_wasm_new_root"] = MONO.mono_wasm_new_root; - module ["mono_wasm_new_roots"] = MONO.mono_wasm_new_roots; - module ["mono_wasm_release_roots"] = MONO.mono_wasm_release_roots; + module ["pump_message"] = MONO.pump_message.bind(MONO); + module ["mono_load_runtime_and_bcl"] = MONO.mono_load_runtime_and_bcl.bind(MONO); + module ["mono_load_runtime_and_bcl_args"] = MONO.mono_load_runtime_and_bcl_args.bind(MONO); + module ["mono_wasm_load_bytes_into_heap"] = MONO.mono_wasm_load_bytes_into_heap.bind(MONO); + module ["mono_wasm_load_icu_data"] = MONO.mono_wasm_load_icu_data.bind(MONO); + module ["mono_wasm_get_icudt_name"] = MONO.mono_wasm_get_icudt_name.bind(MONO); + module ["mono_wasm_globalization_init"] = MONO.mono_wasm_globalization_init.bind(MONO); + module ["mono_wasm_get_loaded_files"] = MONO.mono_wasm_get_loaded_files.bind(MONO); + module ["mono_wasm_new_root_buffer"] = MONO.mono_wasm_new_root_buffer.bind(MONO); + module ["mono_wasm_new_root_buffer_from_pointer"] = MONO.mono_wasm_new_root_buffer_from_pointer.bind(MONO); + module ["mono_wasm_new_root"] = MONO.mono_wasm_new_root.bind(MONO); + module ["mono_wasm_new_roots"] = MONO.mono_wasm_new_roots.bind(MONO); + module ["mono_wasm_release_roots"] = MONO.mono_wasm_release_roots.bind(MONO); }, _base64Converter: { diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index d21b20cce8de..c65dca590507 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -12,6 +12,7 @@ $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackDir)', 'runtimes', '$(PackageRID)')) $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackRidDir)', 'native')) false + false @@ -64,10 +65,12 @@ + + OutputDirectory="$(ArtifactsObjDir)wasm/timezones" + FilterSystemTimeZones="$(FilterSystemTimeZones)"/> + $(NativeBinDir)src\*.js; + $(NativeBinDir)src\emcc-flags.txt; + $(NativeBinDir)src\emcc-version.txt" /> diff --git a/src/native/eventpipe/CMakeLists.txt b/src/native/eventpipe/CMakeLists.txt new file mode 100644 index 000000000000..f3fd2e53f927 --- /dev/null +++ b/src/native/eventpipe/CMakeLists.txt @@ -0,0 +1,106 @@ +if(ENABLE_PERFTRACING OR FEATURE_PERFTRACING) + set (SHARED_EVENTPIPE_SOURCES "") + set (SHARED_EVENTPIPE_HEADERS "") + set (SHARED_DIAGNOSTIC_SERVER_SOURCES "") + set (SHARED_DIAGNOSTIC_SERVER_HEADERS "") + + list(APPEND SHARED_EVENTPIPE_SOURCES + ep.c + ep-block.c + ep-buffer.c + ep-buffer-manager.c + ep-config.c + ep-event.c + ep-event-instance.c + ep-event-payload.c + ep-event-source.c + ep-file.c + ep-json-file.c + ep-metadata-generator.c + ep-provider.c + ep-sample-profiler.c + ep-session.c + ep-session-provider.c + ep-stack-contents.c + ep-stream.c + ep-thread.c + ) + + list(APPEND SHARED_EVENTPIPE_HEADERS + ep.h + ep-block.h + ep-buffer.h + ep-buffer-manager.h + ep-config.h + ep-config-internals.h + ep-event.h + ep-event-instance.h + ep-event-payload.h + ep-event-source.h + ep-file.h + ep-getter-setter.h + ep-json-file.h + ep-metadata-generator.h + ep-provider.h + ep-provider-internals.h + ep-rt.h + ep-rt-config.h + ep-rt-types.h + ep-sample-profiler.h + ep-session.h + ep-stack-contents.h + ep-stream.h + ep-thread.h + ep-types.h + ) + + list(APPEND SHARED_DIAGNOSTIC_SERVER_SOURCES + ds.c + ds-dump-protocol.c + ds-eventpipe-protocol.c + ds-ipc.c + ds-process-protocol.c + ds-profiler-protocol.c + ds-protocol.c + ds-server.c + ) + + list(APPEND SHARED_DIAGNOSTIC_SERVER_HEADERS + ds-dump-protocol.h + ds-eventpipe-protocol.h + ds-getter-setter.h + ds-ipc.h + ds-process-protocol.h + ds-profiler-protocol.h + ds-protocol.h + ds-rt.h + ds-rt-config.h + ds-rt-types.h + ds-server.h + ds-types.h + ) + + if(HOST_WIN32 OR CLR_CMAKE_TARGET_WIN32) + list(APPEND SHARED_DIAGNOSTIC_SERVER_SOURCES + ds-ipc-win32.c + ) + list(APPEND SHARED_DIAGNOSTIC_SERVER_HEADERS + ds-ipc-win32.h + ) + else(HOST_WIN32 OR CLR_CMAKE_TARGET_WIN32) + list(APPEND SHARED_DIAGNOSTIC_SERVER_SOURCES + ds-ipc-posix.c + ) + list(APPEND SHARED_DIAGNOSTIC_SERVER_HEADERS + ds-ipc-posix.h + ) + endif(HOST_WIN32 OR CLR_CMAKE_TARGET_WIN32) + + list(APPEND SHARED_EVENTPIPE_SOURCES + ${SHARED_DIAGNOSTIC_SERVER_SOURCES} + ) + + list(APPEND SHARED_EVENTPIPE_HEADERS + ${SHARED_DIAGNOSTIC_SERVER_HEADERS} + ) +endif(ENABLE_PERFTRACING OR FEATURE_PERFTRACING) diff --git a/src/native/eventpipe/ds-dump-protocol.c b/src/native/eventpipe/ds-dump-protocol.c new file mode 100644 index 000000000000..9f1e9e94efe2 --- /dev/null +++ b/src/native/eventpipe/ds-dump-protocol.c @@ -0,0 +1,166 @@ +#include + +#ifdef ENABLE_PERFTRACING +#include "ds-rt-config.h" +#if !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) + +#define DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER +#include "ds-protocol.h" +#include "ds-dump-protocol.h" +#include "ds-rt.h" + +/* + * Forward declares of all static functions. + */ +static +uint8_t * +generate_core_dump_command_try_parse_payload ( + uint8_t *buffer, + uint16_t buffer_len); + +static +bool +dump_protocol_helper_generate_core_dump ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +static +bool +dump_protocol_helper_unknown_command ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +/* +* DiagnosticsGenerateCoreDumpCommandPayload +*/ + +static +uint8_t * +generate_core_dump_command_try_parse_payload ( + uint8_t *buffer, + uint16_t buffer_len) +{ + EP_ASSERT (buffer != NULL); + + uint8_t * buffer_cursor = buffer; + uint32_t buffer_cursor_len = buffer_len; + + DiagnosticsGenerateCoreDumpCommandPayload *instance = ds_generate_core_dump_command_payload_alloc (); + ep_raise_error_if_nok (instance != NULL); + + instance->incoming_buffer = buffer; + + if (!ds_ipc_message_try_parse_string_utf16_t (&buffer_cursor, &buffer_cursor_len, &instance->dump_name ) || + !ds_ipc_message_try_parse_uint32_t (&buffer_cursor, &buffer_cursor_len, &instance->dump_type) || + !ds_ipc_message_try_parse_uint32_t (&buffer_cursor, &buffer_cursor_len, &instance->diagnostics)) + ep_raise_error (); + +ep_on_exit: + return (uint8_t *)instance; + +ep_on_error: + ds_generate_core_dump_command_payload_free (instance); + instance = NULL; + ep_exit_error_handler (); +} + +DiagnosticsGenerateCoreDumpCommandPayload * +ds_generate_core_dump_command_payload_alloc (void) +{ + return ep_rt_object_alloc (DiagnosticsGenerateCoreDumpCommandPayload); +} + +void +ds_generate_core_dump_command_payload_free (DiagnosticsGenerateCoreDumpCommandPayload *payload) +{ + ep_return_void_if_nok (payload != NULL); + ep_rt_byte_array_free (payload->incoming_buffer); + ep_rt_object_free (payload); +} + +/* + * DiagnosticsDumpProtocolHelper. + */ + +static +bool +dump_protocol_helper_unknown_command ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (message))); + ds_ipc_message_send_error (stream, DS_IPC_E_UNKNOWN_COMMAND); + ds_ipc_stream_free (stream); + return true; +} + +static +bool +dump_protocol_helper_generate_core_dump ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + EP_ASSERT (message != NULL); + EP_ASSERT (stream != NULL); + + if (!stream) + return false; + + bool result = false; + DiagnosticsGenerateCoreDumpCommandPayload *payload; + payload = (DiagnosticsGenerateCoreDumpCommandPayload *)ds_ipc_message_try_parse_payload (message, generate_core_dump_command_try_parse_payload); + + if (!payload) { + ds_ipc_message_send_error (stream, DS_IPC_E_BAD_ENCODING); + ep_raise_error (); + } + + ds_ipc_result_t ipc_result; + ipc_result = ds_rt_generate_core_dump (payload); + if (result != DS_IPC_S_OK) { + ds_ipc_message_send_error (stream, result); + ep_raise_error (); + } else { + ds_ipc_message_send_success (stream, result); + } + + result = true; + +ep_on_exit: + ds_generate_core_dump_command_payload_free (payload); + ds_ipc_stream_free (stream); + return result; + +ep_on_error: + EP_ASSERT (!result); + ep_exit_error_handler (); +} + +bool +ds_dump_protocol_helper_handle_ipc_message ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + EP_ASSERT (message != NULL); + EP_ASSERT (stream != NULL); + + bool result = false; + + switch ((DiagnosticsDumpCommandId)ds_ipc_header_get_commandid (ds_ipc_message_get_header_ref (message))) { + case DS_DUMP_COMMANDID_GENERATE_CORE_DUMP: + result = dump_protocol_helper_generate_core_dump (message, stream); + break; + default: + result = dump_protocol_helper_unknown_command (message, stream); + break; + } + return result; +} + +#endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ +#endif /* ENABLE_PERFTRACING */ + +#ifndef DS_INCLUDE_SOURCE_FILES +extern const char quiet_linker_empty_file_warning_diagnostics_dump_protocol; +const char quiet_linker_empty_file_warning_diagnostics_dump_protocol = 0; +#endif diff --git a/src/native/eventpipe/ds-dump-protocol.h b/src/native/eventpipe/ds-dump-protocol.h new file mode 100644 index 000000000000..88fec959894e --- /dev/null +++ b/src/native/eventpipe/ds-dump-protocol.h @@ -0,0 +1,66 @@ +#ifndef __DIAGNOSTICS_DUMP_PROTOCOL_H__ +#define __DIAGNOSTICS_DUMP_PROTOCOL_H__ + +#include + +#ifdef ENABLE_PERFTRACING +#include "ds-rt-config.h" +#include "ds-types.h" +#include "ds-ipc.h" + +#undef DS_IMPL_GETTER_SETTER +#ifdef DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER +#define DS_IMPL_GETTER_SETTER +#endif +#include "ds-getter-setter.h" + +/* +* DiagnosticsGenerateCoreDumpCommandPayload +*/ + +#if defined(DS_INLINE_GETTER_SETTER) || defined(DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsGenerateCoreDumpCommandPayload { +#else +struct _DiagnosticsGenerateCoreDumpCommandPayload_Internal { +#endif + uint8_t * incoming_buffer; + + // The protocol buffer is defined as: + // string - dumpName (UTF16) + // int - dumpType + // int - diagnostics + // returns + // ulong - status + + const ep_char16_t *dump_name; + uint32_t dump_type; + uint32_t diagnostics; +}; + +#if !defined(DS_INLINE_GETTER_SETTER) && !defined(DS_IMPL_DUMP_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsGenerateCoreDumpCommandPayload { + uint8_t _internal [sizeof (struct _DiagnosticsGenerateCoreDumpCommandPayload_Internal)]; +}; +#endif + +DS_DEFINE_GETTER(DiagnosticsGenerateCoreDumpCommandPayload *, generate_core_dump_command_payload, const ep_char16_t *, dump_name) +DS_DEFINE_GETTER(DiagnosticsGenerateCoreDumpCommandPayload *, generate_core_dump_command_payload, uint32_t, dump_type) +DS_DEFINE_GETTER(DiagnosticsGenerateCoreDumpCommandPayload *, generate_core_dump_command_payload, uint32_t, diagnostics) + +DiagnosticsGenerateCoreDumpCommandPayload * +ds_generate_core_dump_command_payload_alloc (void); + +void +ds_generate_core_dump_command_payload_free (DiagnosticsGenerateCoreDumpCommandPayload *payload); + +/* + * DiagnosticsDumpProtocolHelper. + */ + +bool +ds_dump_protocol_helper_handle_ipc_message ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +#endif /* ENABLE_PERFTRACING */ +#endif /* __DIAGNOSTICS_DUMP_PROTOCOL_H__ */ diff --git a/src/mono/mono/eventpipe/ds-eventpipe-protocol.c b/src/native/eventpipe/ds-eventpipe-protocol.c similarity index 86% rename from src/mono/mono/eventpipe/ds-eventpipe-protocol.c rename to src/native/eventpipe/ds-eventpipe-protocol.c index 7dc8098b8ef2..9ead99aa5a76 100644 --- a/src/mono/mono/eventpipe/ds-eventpipe-protocol.c +++ b/src/native/eventpipe/ds-eventpipe-protocol.c @@ -67,25 +67,25 @@ eventpipe_collect_tracing2_command_try_parse_payload ( uint16_t buffer_len); static -void +bool eventpipe_protocol_helper_stop_tracing ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool eventpipe_protocol_helper_collect_tracing ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool eventpipe_protocol_helper_collect_tracing_2 ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool eventpipe_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); @@ -141,7 +141,7 @@ eventpipe_collect_tracing_command_try_parse_rundown_requested ( EP_ASSERT (buffer_len != NULL); EP_ASSERT (rundown_requested != NULL); - return ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t *)rundown_requested, sizeof (bool)); + return ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t *)rundown_requested, (uint32_t)sizeof (bool)); } static @@ -164,26 +164,26 @@ eventpipe_collect_tracing_command_try_parse_config ( ep_char8_t *provider_name_utf8 = NULL; ep_char8_t *filter_data_utf8 = NULL; - ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &count_configs) == true); + ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &count_configs)); ep_raise_error_if_nok (count_configs <= max_count_configs); ep_rt_provider_config_array_alloc_capacity (result, count_configs); for (uint32_t i = 0; i < count_configs; ++i) { uint64_t keywords = 0; - ep_raise_error_if_nok (ds_ipc_message_try_parse_uint64_t (buffer, buffer_len, &keywords) == true); + ep_raise_error_if_nok (ds_ipc_message_try_parse_uint64_t (buffer, buffer_len, &keywords)); uint32_t log_level = 0; - ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &log_level) == true); + ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &log_level)); ep_raise_error_if_nok (log_level <= EP_EVENT_LEVEL_VERBOSE); const ep_char16_t *provider_name = NULL; - ep_raise_error_if_nok (ds_ipc_message_try_parse_string_utf16_t (buffer, buffer_len, &provider_name) == true); + ep_raise_error_if_nok (ds_ipc_message_try_parse_string_utf16_t (buffer, buffer_len, &provider_name)); provider_name_utf8 = ep_rt_utf16_to_utf8_string (provider_name, -1); ep_raise_error_if_nok (provider_name_utf8 != NULL); - ep_raise_error_if_nok (ep_rt_utf8_string_is_null_or_empty (provider_name_utf8) == false); + ep_raise_error_if_nok (!ep_rt_utf8_string_is_null_or_empty (provider_name_utf8)); const ep_char16_t *filter_data = NULL; // This parameter is optional. ds_ipc_message_try_parse_string_utf16_t (buffer, buffer_len, &filter_data); @@ -194,11 +194,15 @@ eventpipe_collect_tracing_command_try_parse_config ( } EventPipeProviderConfiguration provider_config; - ep_provider_config_init (&provider_config, provider_name_utf8, keywords, (EventPipeEventLevel)log_level, filter_data_utf8); - ep_rt_provider_config_array_append (result, provider_config); - - provider_name_utf8 = NULL; - filter_data_utf8 = NULL; + if (ep_provider_config_init (&provider_config, provider_name_utf8, keywords, (EventPipeEventLevel)log_level, filter_data_utf8)) { + if (ep_rt_provider_config_array_append (result, provider_config)) { + // Ownership transfered. + provider_name_utf8 = NULL; + filter_data_utf8 = NULL; + } + ep_provider_config_fini (&provider_config); + } + ep_raise_error_if_nok (provider_name_utf8 == NULL && filter_data_utf8 == NULL); } ep_on_exit: @@ -332,13 +336,15 @@ eventpipe_protocol_helper_send_stop_tracing_success ( { EP_ASSERT (stream != NULL); + bool result = false; DiagnosticsIpcMessage success_message; - ds_ipc_message_init (&success_message); - bool success = ds_ipc_message_initialize_header_uint64_t_payload (&success_message, ds_ipc_header_get_generic_success (), (uint64_t)session_id); - if (success) - ds_ipc_message_send (&success_message, stream); - ds_ipc_message_fini (&success_message); - return success; + if (ds_ipc_message_init (&success_message)) { + result = ds_ipc_message_initialize_header_uint64_t_payload (&success_message, ds_ipc_header_get_generic_success (), (uint64_t)session_id); + if (result) + result = ds_ipc_message_send (&success_message, stream); + ds_ipc_message_fini (&success_message); + } + return result; } static @@ -349,23 +355,26 @@ eventpipe_protocol_helper_send_start_tracing_success ( { EP_ASSERT (stream != NULL); + bool result = false; DiagnosticsIpcMessage success_message; - ds_ipc_message_init (&success_message); - bool success = ds_ipc_message_initialize_header_uint64_t_payload (&success_message, ds_ipc_header_get_generic_success (), (uint64_t)session_id); - if (success) - ds_ipc_message_send (&success_message, stream); - ds_ipc_message_fini (&success_message); - return success; + if (ds_ipc_message_init (&success_message)) { + result = ds_ipc_message_initialize_header_uint64_t_payload (&success_message, ds_ipc_header_get_generic_success (), (uint64_t)session_id); + if (result) + result = ds_ipc_message_send (&success_message, stream); + ds_ipc_message_fini (&success_message); + } + return result; } static -void +bool eventpipe_protocol_helper_stop_tracing ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - ep_return_void_if_nok (message != NULL && stream != NULL); + ep_return_false_if_nok (message != NULL && stream != NULL); + bool result = false; EventPipeStopTracingCommandPayload *payload; payload = (EventPipeStopTracingCommandPayload *)ds_ipc_message_try_parse_payload (message, NULL); @@ -379,23 +388,27 @@ eventpipe_protocol_helper_stop_tracing ( eventpipe_protocol_helper_send_stop_tracing_success (stream, payload->session_id); ds_ipc_stream_flush (stream); + result = true; + ep_on_exit: ds_eventpipe_stop_tracing_command_payload_free (payload); ds_ipc_stream_free (stream); - return; + return result; ep_on_error: + EP_ASSERT (!result); ep_exit_error_handler (); } static -void +bool eventpipe_protocol_helper_collect_tracing ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - ep_return_void_if_nok (message != NULL && stream != NULL); + ep_return_false_if_nok (message != NULL && stream != NULL); + bool result = false; EventPipeCollectTracingCommandPayload *payload; payload = (EventPipeCollectTracingCommandPayload *)ds_ipc_message_try_parse_payload (message, eventpipe_collect_tracing_command_try_parse_payload); @@ -424,23 +437,27 @@ eventpipe_protocol_helper_collect_tracing ( ep_start_streaming (session_id); } + result = true; + ep_on_exit: ds_eventpipe_collect_tracing_command_payload_free (payload); - return; + return result; ep_on_error: + EP_ASSERT (!result); ds_ipc_stream_free (stream); ep_exit_error_handler (); } static -void +bool eventpipe_protocol_helper_collect_tracing_2 ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - ep_return_void_if_nok (message != NULL && stream != NULL); + ep_return_false_if_nok (message != NULL && stream != NULL); + bool result = false; EventPipeCollectTracing2CommandPayload *payload; payload = (EventPipeCollectTracing2CommandPayload *)ds_ipc_message_try_parse_payload (message, eventpipe_collect_tracing2_command_try_parse_payload); @@ -469,17 +486,20 @@ eventpipe_protocol_helper_collect_tracing_2 ( ep_start_streaming (session_id); } + result = true; + ep_on_exit: ds_eventpipe_collect_tracing2_command_payload_free (payload); - return; + return result; ep_on_error: + EP_ASSERT (!result); ds_ipc_stream_free (stream); ep_exit_error_handler (); } static -void +bool eventpipe_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) @@ -487,6 +507,7 @@ eventpipe_protocol_helper_unknown_command ( DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_cref (message))); ds_ipc_message_send_error (stream, DS_IPC_E_UNKNOWN_COMMAND); ds_ipc_stream_free (stream); + return true; } void @@ -496,27 +517,31 @@ ds_eventpipe_stop_tracing_command_payload_free (EventPipeStopTracingCommandPaylo ep_rt_byte_array_free ((uint8_t *)payload); } -void +bool ds_eventpipe_protocol_helper_handle_ipc_message ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - ep_return_void_if_nok (message != NULL && stream != NULL); + ep_return_false_if_nok (message != NULL && stream != NULL); + + bool result = false; switch ((EventPipeCommandId)ds_ipc_header_get_commandid (ds_ipc_message_get_header_cref (message))) { case EP_COMMANDID_COLLECT_TRACING: - eventpipe_protocol_helper_collect_tracing (message, stream); + result = eventpipe_protocol_helper_collect_tracing (message, stream); break; case EP_COMMANDID_COLLECT_TRACING_2: - eventpipe_protocol_helper_collect_tracing_2 (message, stream); + result = eventpipe_protocol_helper_collect_tracing_2 (message, stream); break; case EP_COMMANDID_STOP_TRACING: - eventpipe_protocol_helper_stop_tracing (message, stream); + result = eventpipe_protocol_helper_stop_tracing (message, stream); break; default: - eventpipe_protocol_helper_unknown_command (message, stream); + result = eventpipe_protocol_helper_unknown_command (message, stream); break; } + + return result; } #endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ diff --git a/src/mono/mono/eventpipe/ds-eventpipe-protocol.h b/src/native/eventpipe/ds-eventpipe-protocol.h similarity index 99% rename from src/mono/mono/eventpipe/ds-eventpipe-protocol.h rename to src/native/eventpipe/ds-eventpipe-protocol.h index 2e48da282d10..2139b1f55c26 100644 --- a/src/mono/mono/eventpipe/ds-eventpipe-protocol.h +++ b/src/native/eventpipe/ds-eventpipe-protocol.h @@ -115,7 +115,7 @@ ds_eventpipe_stop_tracing_command_payload_free (EventPipeStopTracingCommandPaylo * EventPipeProtocolHelper */ -void +bool ds_eventpipe_protocol_helper_handle_ipc_message ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); diff --git a/src/mono/mono/eventpipe/ds-getter-setter.h b/src/native/eventpipe/ds-getter-setter.h similarity index 100% rename from src/mono/mono/eventpipe/ds-getter-setter.h rename to src/native/eventpipe/ds-getter-setter.h diff --git a/src/mono/mono/eventpipe/ds-ipc-posix.c b/src/native/eventpipe/ds-ipc-posix.c similarity index 96% rename from src/mono/mono/eventpipe/ds-ipc-posix.c rename to src/native/eventpipe/ds-ipc-posix.c index 979c7915c83b..7adf35075449 100644 --- a/src/mono/mono/eventpipe/ds-ipc-posix.c +++ b/src/native/eventpipe/ds-ipc-posix.c @@ -120,7 +120,6 @@ ipc_init_listener ( result_bind = bind (server_socket, server_address, server_address_len); DS_EXIT_BLOCKING_PAL_SECTION; - EP_ASSERT (result_bind != -1); if (result_bind == -1) { if (callback) callback (strerror (errno), errno); @@ -239,11 +238,13 @@ ds_ipc_alloc ( server_address->sun_family = AF_UNIX; if (pipe_name) { - ep_rt_utf8_string_snprintf ( + int32_t result = ep_rt_utf8_string_snprintf ( server_address->sun_path, sizeof (server_address->sun_path), "%s", pipe_name); + if (result <= 0 || result >= (int32_t)(sizeof (server_address->sun_path))) + server_address->sun_path [0] = '\0'; } else { // generate the default socket name ds_rt_transport_get_default_name ( @@ -311,7 +312,7 @@ ds_ipc_poll ( int fd = -1; if (ds_ipc_poll_handle_get_ipc (&poll_handles_data [i])) { // SERVER - EP_ASSERT (poll_handles_data [i].ipc->mode == DS_IPC_CONNECTION_MODE_LISTEN); + EP_ASSERT (ds_ipc_poll_handle_get_ipc (&(poll_handles_data [i]))->mode == DS_IPC_CONNECTION_MODE_LISTEN); fd = ds_ipc_poll_handle_get_ipc (&poll_handles_data [i])->server_socket; } else { // CLIENT @@ -594,7 +595,8 @@ ds_ipc_to_string ( EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len <= DS_IPC_MAX_TO_STRING_LEN); - return ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ server_socket = %d }", ipc->server_socket); + int32_t result = ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ server_socket = %d }", ipc->server_socket); + return (result > 0 && result < (int32_t)buffer_len) ? result : 0; } /* @@ -793,6 +795,12 @@ ds_ipc_stream_get_stream_ref (DiagnosticsIpcStream *ipc_stream) return &ipc_stream->stream; } +int32_t +ds_ipc_stream_get_handle_int32_t (DiagnosticsIpcStream *ipc_stream) +{ + return (int32_t)ipc_stream->client_socket; +} + void ds_ipc_stream_free (DiagnosticsIpcStream *ipc_stream) { @@ -876,8 +884,8 @@ ds_ipc_stream_to_string ( EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len <= DS_IPC_MAX_TO_STRING_LEN); - //TODO: Implement. - return ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ client_socket = %d }", ipc_stream->client_socket); + int32_t result = ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ client_socket = %d }", ipc_stream->client_socket); + return (result > 0 && result < (int32_t)buffer_len) ? result : 0; } #endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ diff --git a/src/mono/mono/eventpipe/ds-ipc-posix.h b/src/native/eventpipe/ds-ipc-posix.h similarity index 100% rename from src/mono/mono/eventpipe/ds-ipc-posix.h rename to src/native/eventpipe/ds-ipc-posix.h diff --git a/src/mono/mono/eventpipe/ds-ipc-win32.c b/src/native/eventpipe/ds-ipc-win32.c similarity index 94% rename from src/mono/mono/eventpipe/ds-ipc-win32.c rename to src/native/eventpipe/ds-ipc-win32.c index c1c6db591a4d..b9ca0a8745a1 100644 --- a/src/mono/mono/eventpipe/ds-ipc-win32.c +++ b/src/native/eventpipe/ds-ipc-win32.c @@ -88,7 +88,7 @@ ds_ipc_alloc ( ep_rt_current_process_get_id ()); } - if (characters_written == -1) { + if (characters_written <= 0 || characters_written >= DS_IPC_WIN32_MAX_NAMED_PIPE_LEN) { if (callback) callback ("Failed to generate the named pipe name", characters_written); ep_raise_error (); @@ -124,12 +124,14 @@ ds_ipc_poll ( DiagnosticsIpcPollHandle * poll_handles_data = ds_rt_ipc_poll_handle_array_data (poll_handles); size_t poll_handles_data_len = ds_rt_ipc_poll_handle_array_size (poll_handles); + EP_ASSERT (poll_handles_data_len <= MAXIMUM_WAIT_OBJECTS); + HANDLE handles [MAXIMUM_WAIT_OBJECTS]; for (size_t i = 0; i < poll_handles_data_len; ++i) { ds_ipc_poll_handle_set_events (&poll_handles_data [i], 0); // ignore any input on events. if (ds_ipc_poll_handle_get_ipc (&poll_handles_data [i])) { // SERVER - EP_ASSERT (poll_handles_data [i].ipc->mode == DS_IPC_CONNECTION_MODE_LISTEN); + EP_ASSERT (ds_ipc_poll_handle_get_ipc (&(poll_handles_data [i]))->mode == DS_IPC_CONNECTION_MODE_LISTEN); handles [i] = ds_ipc_poll_handle_get_ipc (&poll_handles_data [i])->overlap.hEvent; } else { // CLIENT @@ -177,9 +179,9 @@ ds_ipc_poll ( DWORD wait = WAIT_FAILED; DS_ENTER_BLOCKING_PAL_SECTION; wait = WaitForMultipleObjects ( - poll_handles_data_len, // count - handles, // handles - false, // don't wait all + (DWORD)poll_handles_data_len, // count + handles, // handles + false, // don't wait all timeout_ms); DS_EXIT_BLOCKING_PAL_SECTION; @@ -314,7 +316,7 @@ ds_ipc_listen ( EP_ASSERT (ipc->overlap.hEvent == INVALID_HANDLE_VALUE); - ipc->overlap.hEvent = CreateEvent (NULL, true, false, NULL); + ipc->overlap.hEvent = CreateEventW (NULL, true, false, NULL); if (!ipc->overlap.hEvent) { if (callback) callback ("Failed to create overlap event", GetLastError()); @@ -398,7 +400,7 @@ ds_ipc_accept ( memset(&ipc->overlap, 0, sizeof(OVERLAPPED)); // clear the overlapped objects state ipc->overlap.hEvent = INVALID_HANDLE_VALUE; - ep_raise_error_if_nok (ds_ipc_listen (ipc, callback) == true); + ep_raise_error_if_nok (ds_ipc_listen (ipc, callback)); ep_on_exit: return stream; @@ -511,7 +513,8 @@ ds_ipc_to_string ( EP_ASSERT (ipc != NULL); EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len <= DS_IPC_MAX_TO_STRING_LEN); - return ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ _hPipe = %d, _oOverlap.hEvent = %d }", ipc->pipe, ipc->overlap.hEvent); + int32_t result = ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ _hPipe = %d, _oOverlap.hEvent = %d }", (int32_t)(size_t)ipc->pipe, (int32_t)(size_t)ipc->overlap.hEvent); + return (result > 0 && result < (int32_t)buffer_len) ? result : 0; } /* @@ -717,7 +720,7 @@ ipc_stream_alloc ( // All memory zeroed on alloc. //memset (&instance->overlap, 0, sizeof (OVERLAPPED)); - instance->overlap.hEvent = CreateEvent (NULL, true, false, NULL); + instance->overlap.hEvent = CreateEventW (NULL, true, false, NULL); ep_on_exit: return instance; @@ -728,6 +731,12 @@ ipc_stream_alloc ( ep_exit_error_handler (); } +int32_t +ds_ipc_stream_get_handle_int32_t (DiagnosticsIpcStream *ipc_stream) +{ + return (int32_t)(size_t)ipc_stream->pipe; +} + IpcStream * ds_ipc_stream_get_stream_ref (DiagnosticsIpcStream *ipc_stream) { @@ -826,7 +835,8 @@ ds_ipc_stream_to_string ( EP_ASSERT (ipc_stream != NULL); EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len <= DS_IPC_MAX_TO_STRING_LEN); - return ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ _hPipe = %d, _oOverlap.hEvent = %d }", ipc_stream->pipe, ipc_stream->overlap.hEvent); + int32_t result = ep_rt_utf8_string_snprintf (buffer, buffer_len, "{ _hPipe = %d, _oOverlap.hEvent = %d }", (int32_t)(size_t)ipc_stream->pipe, (int32_t)(size_t)ipc_stream->overlap.hEvent); + return (result > 0 && result < (int32_t)buffer_len) ? result : 0; } #endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ diff --git a/src/mono/mono/eventpipe/ds-ipc-win32.h b/src/native/eventpipe/ds-ipc-win32.h similarity index 100% rename from src/mono/mono/eventpipe/ds-ipc-win32.h rename to src/native/eventpipe/ds-ipc-win32.h diff --git a/src/mono/mono/eventpipe/ds-ipc.c b/src/native/eventpipe/ds-ipc.c similarity index 75% rename from src/mono/mono/eventpipe/ds-ipc.c rename to src/native/eventpipe/ds-ipc.c index 02da2e5fb713..2d89b8b0d0a8 100644 --- a/src/mono/mono/eventpipe/ds-ipc.c +++ b/src/native/eventpipe/ds-ipc.c @@ -41,7 +41,7 @@ store_shutting_down_state (bool state) */ static -uint32_t +int32_t ipc_stream_factory_get_next_timeout (uint32_t current_timout_ms); static @@ -113,7 +113,7 @@ listen_port_reset ( static inline -uint32_t +int32_t ipc_stream_factory_get_next_timeout (uint32_t current_timeout_ms) { if (current_timeout_ms == DS_IPC_POLL_TIMEOUT_INFINITE) @@ -121,7 +121,7 @@ ipc_stream_factory_get_next_timeout (uint32_t current_timeout_ms) else return (current_timeout_ms >= DS_IPC_POLL_TIMEOUT_MAX_MS) ? DS_IPC_POLL_TIMEOUT_MAX_MS : - (uint32_t)((float)current_timeout_ms * DS_IPC_POLL_TIMEOUT_FALLOFF_FACTOR); + (int32_t)((float)current_timeout_ms * DS_IPC_POLL_TIMEOUT_FALLOFF_FACTOR); } static @@ -136,8 +136,8 @@ ipc_stream_factory_split_port_config ( ep_char8_t *cursor = config; EP_ASSERT (config != NULL); - EP_ASSERT (context != NULL); - EP_ASSERT (cursor != NULL); + EP_ASSERT (delimiters != NULL); + EP_ASSERT (config_array != NULL); part = ep_rt_utf8_string_strtok (cursor, delimiters, &context); while (part) { @@ -155,29 +155,28 @@ ipc_stream_factory_build_and_add_port ( EP_ASSERT (builder != NULL); EP_ASSERT (callback != NULL); - bool success = false; + bool result = false; DiagnosticsIpc *ipc = NULL; if (builder->type == DS_PORT_TYPE_LISTEN) { ipc = ds_ipc_alloc (builder->path, DS_IPC_CONNECTION_MODE_LISTEN, callback); ep_raise_error_if_nok (ipc != NULL); - ep_raise_error_if_nok (ds_ipc_listen (ipc, callback) == true); - ds_rt_port_array_append (&_ds_port_array, (DiagnosticsPort *)ds_listen_port_alloc (ipc, builder)); - success = true; + ep_raise_error_if_nok (ds_ipc_listen (ipc, callback)); + ep_raise_error_if_nok (ds_rt_port_array_append (&_ds_port_array, (DiagnosticsPort *)ds_listen_port_alloc (ipc, builder))); } else if (builder->type == DS_PORT_TYPE_CONNECT) { ipc = ds_ipc_alloc (builder->path, DS_IPC_CONNECTION_MODE_CONNECT, callback); ep_raise_error_if_nok (ipc != NULL); - ep_raise_error_if_nok (ds_ipc_listen (ipc, callback) == true); - ds_rt_port_array_append (&_ds_port_array, (DiagnosticsPort *)ds_connect_port_alloc (ipc, builder)); - success = true; + ep_raise_error_if_nok (ds_rt_port_array_append (&_ds_port_array, (DiagnosticsPort *)ds_connect_port_alloc (ipc, builder))); } + result = true; + ep_on_exit: - return success; + return result; ep_on_error: + EP_ASSERT (!result); ds_ipc_free (ipc); - success = false; ep_exit_error_handler (); } @@ -186,12 +185,11 @@ void ipc_log_poll_handles (ds_rt_ipc_poll_handle_array_t *ipc_poll_handles) { // TODO: Should this be debug only? - ds_rt_ipc_poll_handle_array_iterator_t ipc_poll_handles_iterator; DiagnosticsIpcPollHandle ipc_poll_handle; ep_char8_t buffer [DS_IPC_MAX_TO_STRING_LEN]; uint32_t connection_id = 0; - ds_rt_ipc_poll_handle_array_iterator_begin (ipc_poll_handles, &ipc_poll_handles_iterator); + ds_rt_ipc_poll_handle_array_iterator_t ipc_poll_handles_iterator = ds_rt_ipc_poll_handle_array_iterator_begin (ipc_poll_handles); while (!ds_rt_ipc_poll_handle_array_iterator_end (ipc_poll_handles, &ipc_poll_handles_iterator)) { ipc_poll_handle = ds_rt_ipc_poll_handle_array_iterator_value (&ipc_poll_handles_iterator); if (ipc_poll_handle.ipc) { @@ -199,102 +197,121 @@ ipc_log_poll_handles (ds_rt_ipc_poll_handle_array_t *ipc_poll_handles) buffer [0] = '\0'; DS_LOG_INFO_2 ("\tSERVER IpcPollHandle[%d] = %s\n", connection_id, buffer); } else { - if (!(ds_ipc_stream_to_string (ipc_poll_handle.stream, buffer, EP_ARRAY_SIZE (buffer)) > 0)) + if (!(ds_ipc_stream_to_string (ipc_poll_handle.stream, buffer, EP_ARRAY_SIZE (buffer)))) buffer [0] = '\0'; DS_LOG_INFO_2 ("\tCLIENT IpcPollHandle[%d] = %s\n", connection_id, buffer); } - ds_rt_ipc_poll_handle_array_iterator_next (ipc_poll_handles, &ipc_poll_handles_iterator); + ds_rt_ipc_poll_handle_array_iterator_next (&ipc_poll_handles_iterator); connection_id++; } } -void +bool ds_ipc_stream_factory_init (void) { ds_rt_port_array_alloc (&_ds_port_array); + return ds_rt_port_array_is_valid (&_ds_port_array); } void ds_ipc_stream_factory_fini (void) { - ds_rt_port_array_free (&_ds_port_array); + // TODO: Race between server thread and shutdown, _ds_port_array and ports can not be freed without resolving + // that race first. Diagnostic server thread is currently designed to not break waits on + // shutdown unless clients activity wakes server thread. + /*ds_rt_port_array_iterator_t iterator = ds_rt_port_array_iterator_begin (&_ds_port_array); + while (!ds_rt_port_array_iterator_end (&_ds_port_array, &iterator)) { + ds_port_free_vcall (ds_rt_port_array_iterator_value (&iterator)); + ds_rt_port_array_iterator_next (&iterator); + } + + ds_rt_port_array_free (&_ds_port_array);*/ } bool ds_ipc_stream_factory_configure (ds_ipc_error_callback_func callback) { - bool success = true; + bool result = true; ep_char8_t *ports = ds_rt_config_value_get_ports (); if (ports) { ds_rt_port_config_array_t port_configs; ds_rt_port_config_array_t port_config_parts; - ds_rt_port_array_alloc (&port_configs); - ds_rt_port_array_alloc (&port_config_parts); - - ipc_stream_factory_split_port_config (ports, ";", &port_configs); - - ep_char8_t **port_configs_data = ds_rt_port_config_array_data (&port_configs); - size_t port_configs_size = ds_rt_port_config_array_size (&port_configs); - for (size_t port_configs_index = 0; port_configs_index < port_configs_size; ++port_configs_index) { - ep_char8_t *port_config = port_configs_data [port_configs_index]; - DS_LOG_INFO_1 ("ds_ipc_stream_factory_configure - Attempted to create Diagnostic Port from \"%s\".\n", port_config ? port_config : ""); - if (port_config) { - ds_rt_port_config_array_clear (&port_config_parts, NULL); - ipc_stream_factory_split_port_config (port_config, ",", &port_config_parts); - - ep_char8_t **port_config_parts_data = ds_rt_port_config_array_data (&port_config_parts); - size_t port_config_parts_size = ds_rt_port_config_array_size (&port_config_parts); - if (port_config_parts_size != 0) { - DiagnosticsPortBuilder port_builder; - ds_port_builder_init (&port_builder); - for (size_t port_config_parts_index = 0; port_config_parts_index < port_config_parts_size; ++port_config_parts_index) { - if (port_config_parts_index == 0) - port_builder.path = port_config_parts_data [port_config_parts_index]; - else - ds_port_builder_set_tag (&port_builder, port_config_parts_data [port_config_parts_index]); - } - if (!ep_rt_utf8_string_is_null_or_empty (port_builder.path)) { - // Ignore listen type (see conversation in https://github.com/dotnet/runtime/pull/40499 for details) - if (port_builder.type != DS_PORT_TYPE_LISTEN) { - const bool build_success = ipc_stream_factory_build_and_add_port (&port_builder, callback); - DS_LOG_INFO_1 ("ds_ipc_stream_factory_configure - Diagnostic Port creation succeeded? %d \n", build_success); - success &= build_success; + ds_rt_port_config_array_alloc (&port_configs); + ds_rt_port_config_array_alloc (&port_config_parts); + + if (ds_rt_port_config_array_is_valid (&port_configs) && ds_rt_port_config_array_is_valid (&port_config_parts)) { + ipc_stream_factory_split_port_config (ports, ";", &port_configs); + ds_rt_port_config_array_reverse_iterator_t port_configs_iterator = ds_rt_port_config_array_reverse_iterator_begin (&port_configs); + while (!ds_rt_port_config_array_reverse_iterator_end(&port_configs, &port_configs_iterator)) { + ep_char8_t *port_config = ds_rt_port_config_array_reverse_iterator_value (&port_configs_iterator); + DS_LOG_INFO_1 ("ds_ipc_stream_factory_configure - Attempted to create Diagnostic Port from \"%s\".\n", port_config ? port_config : ""); + if (port_config) { + ds_rt_port_config_array_clear (&port_config_parts); + ipc_stream_factory_split_port_config (port_config, ",", &port_config_parts); + + size_t port_config_parts_index = ds_rt_port_config_array_size (&port_config_parts); + if (port_config_parts_index != 0) { + DiagnosticsPortBuilder port_builder; + if (ds_port_builder_init (&port_builder)) { + ds_rt_port_config_array_reverse_iterator_t port_config_parts_iterator = ds_rt_port_config_array_reverse_iterator_begin (&port_config_parts); + while (!ds_rt_port_config_array_reverse_iterator_end(&port_config_parts, &port_config_parts_iterator)) { + if (port_config_parts_index == 1) + port_builder.path = ds_rt_port_config_array_reverse_iterator_value (&port_config_parts_iterator); + else + ds_port_builder_set_tag (&port_builder, ds_rt_port_config_array_reverse_iterator_value (&port_config_parts_iterator)); + ds_rt_port_config_array_reverse_iterator_next (&port_config_parts_iterator); + port_config_parts_index--; + } + if (!ep_rt_utf8_string_is_null_or_empty (port_builder.path)) { + // Ignore listen type (see conversation in https://github.com/dotnet/runtime/pull/40499 for details) + if (port_builder.type != DS_PORT_TYPE_LISTEN) { + const bool build_success = ipc_stream_factory_build_and_add_port (&port_builder, callback); + DS_LOG_INFO_1 ("ds_ipc_stream_factory_configure - Diagnostic Port creation succeeded? %d \n", build_success); + result &= build_success; + } else { + DS_LOG_INFO_0 ("ds_ipc_stream_factory_configure - Ignoring LISTEN port configuration \n"); + } + } else { + DS_LOG_INFO_0("ds_ipc_stream_factory_configure - Ignoring port configuration with empty address\n"); + } + ds_port_builder_fini (&port_builder); } else { - DS_LOG_INFO_0 ("ds_ipc_stream_factory_configure - Ignoring LISTEN port configuration \n"); + result &= false; } } else { - DS_LOG_INFO_0("ds_ipc_stream_factory_configure - Ignoring port configuration with empty address\n"); + result &= false; } - ds_port_builder_fini (&port_builder); - } else { - success &= false; } + ds_rt_port_config_array_reverse_iterator_next (&port_configs_iterator); } + } else { + result &= false; } - ds_rt_port_array_free (&port_config_parts); - ds_rt_port_array_free (&port_configs); + ds_rt_port_config_array_free (&port_config_parts); + ds_rt_port_config_array_free (&port_configs); } // create the default listen port - int32_t port_suspend = ds_rt_config_value_get_default_port_suspend (); + uint32_t port_suspend = ds_rt_config_value_get_default_port_suspend (); DiagnosticsPortBuilder default_port_builder; - ds_port_builder_init (&default_port_builder); + if (ds_port_builder_init (&default_port_builder)) { + default_port_builder.path = NULL; + default_port_builder.suspend_mode = port_suspend > 0 ? DS_PORT_SUSPEND_MODE_SUSPEND : DS_PORT_SUSPEND_MODE_NOSUSPEND; + default_port_builder.type = DS_PORT_TYPE_LISTEN; - default_port_builder.path = NULL; - default_port_builder.suspend_mode = port_suspend > 0 ? DS_PORT_SUSPEND_MODE_SUSPEND : DS_PORT_SUSPEND_MODE_NOSUSPEND; - default_port_builder.type = DS_PORT_TYPE_LISTEN; + result &= ipc_stream_factory_build_and_add_port (&default_port_builder, callback); - success &= ipc_stream_factory_build_and_add_port (&default_port_builder, callback); - - ds_port_builder_fini (&default_port_builder); + ds_port_builder_fini (&default_port_builder); + } else { + result &= false; + } ep_rt_utf8_string_free (ports); - - return success; + return result; } DiagnosticsIpcStream * @@ -311,21 +328,22 @@ ds_ipc_stream_factory_get_next_available_stream (ds_ipc_error_callback_func call int32_t poll_timeout_ms = DS_IPC_POLL_TIMEOUT_INFINITE; bool connect_success = true; uint32_t poll_attempts = 0; - + + // TODO: Convert to stack instance. ds_rt_ipc_poll_handle_array_alloc (&ipc_poll_handles); + ep_raise_error_if_nok (ds_rt_ipc_poll_handle_array_is_valid (&ipc_poll_handles)); while (!stream) { connect_success = true; - ds_rt_port_array_iterator_t ports_iterator; - ds_rt_port_array_iterator_begin (ports, &ports_iterator); + ds_rt_port_array_iterator_t ports_iterator = ds_rt_port_array_iterator_begin (ports); while (!ds_rt_port_array_iterator_end (ports, &ports_iterator)) { port = ds_rt_port_array_iterator_value (&ports_iterator); if (ds_port_get_ipc_poll_handle_vcall (port, &ipc_poll_handle, callback)) - ds_rt_ipc_poll_handle_array_append (&ipc_poll_handles, ipc_poll_handle); + ep_raise_error_if_nok (ds_rt_ipc_poll_handle_array_append (&ipc_poll_handles, ipc_poll_handle)); else connect_success = false; - ds_rt_port_array_iterator_next (ports, &ports_iterator); + ds_rt_port_array_iterator_next (&ports_iterator); } poll_timeout_ms = connect_success ? @@ -342,8 +360,7 @@ ds_ipc_stream_factory_get_next_available_stream (ds_ipc_error_callback_func call if (ret_val != 0) { uint32_t connection_id = 0; - ds_rt_ipc_poll_handle_array_iterator_t ipc_poll_handles_iterator; - ds_rt_ipc_poll_handle_array_iterator_begin (&ipc_poll_handles, &ipc_poll_handles_iterator); + ds_rt_ipc_poll_handle_array_iterator_t ipc_poll_handles_iterator = ds_rt_ipc_poll_handle_array_iterator_begin (&ipc_poll_handles); while (!ds_rt_ipc_poll_handle_array_iterator_end (&ipc_poll_handles, &ipc_poll_handles_iterator)) { ipc_poll_handle = ds_rt_ipc_poll_handle_array_iterator_value (&ipc_poll_handles_iterator); port = (DiagnosticsPort *)ipc_poll_handle.user_data; @@ -351,7 +368,7 @@ ds_ipc_stream_factory_get_next_available_stream (ds_ipc_error_callback_func call case DS_IPC_POLL_EVENTS_HANGUP: EP_ASSERT (port != NULL); ds_port_reset_vcall (port, callback); - DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - HUP :: Poll attempt: %d, connection %d hung up. Connect is reset.\n", nPollAttempts, connection_id); + DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - HUP :: Poll attempt: %d, connection %d hung up. Connect is reset.\n", poll_attempts, connection_id); poll_timeout_ms = DS_IPC_POLL_TIMEOUT_MIN_MS; break; case DS_IPC_POLL_EVENTS_SIGNALED: @@ -360,23 +377,23 @@ ds_ipc_stream_factory_get_next_available_stream (ds_ipc_error_callback_func call stream = ds_port_get_connected_stream_vcall (port, callback); _ds_current_port = port; } - DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - SIG :: Poll attempt: %d, connection %d signalled.\n", nPollAttempts, connection_id); + DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - SIG :: Poll attempt: %d, connection %d signalled.\n", poll_attempts, connection_id); break; case DS_IPC_POLL_EVENTS_ERR: ds_port_reset_vcall ((DiagnosticsPort *)ipc_poll_handle.user_data, callback); - DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - ERR :: Poll attempt: %d, connection %d errored. Connection is reset.\n", nPollAttempts, connection_id); + DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - ERR :: Poll attempt: %d, connection %d errored. Connection is reset.\n", poll_attempts, connection_id); saw_error = true; break; case DS_IPC_POLL_EVENTS_NONE: - DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - NON :: Poll attempt: %d, connection %d had no events.\n", nPollAttempts, connection_id); + DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - NON :: Poll attempt: %d, connection %d had no events.\n", poll_attempts, connection_id); break; default: - DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - UNK :: Poll attempt: %d, connection %d had invalid PollEvent.\n", nPollAttempts, connection_id); + DS_LOG_INFO_2 ("ds_ipc_stream_factory_get_next_available_stream - UNK :: Poll attempt: %d, connection %d had invalid PollEvent.\n", poll_attempts, connection_id); saw_error = true; break; } - ds_rt_ipc_poll_handle_array_iterator_next (&ipc_poll_handles, &ipc_poll_handles_iterator); + ds_rt_ipc_poll_handle_array_iterator_next (&ipc_poll_handles_iterator); connection_id++; } } @@ -387,7 +404,7 @@ ds_ipc_stream_factory_get_next_available_stream (ds_ipc_error_callback_func call } // clear the view. - ds_rt_ipc_poll_handle_array_clear (&ipc_poll_handles, NULL); + ds_rt_ipc_poll_handle_array_clear (&ipc_poll_handles); } ep_on_exit: @@ -410,12 +427,11 @@ bool ds_ipc_stream_factory_any_suspended_ports (void) { bool any_suspended_ports = false; - ds_rt_port_array_iterator_t iterator; - ds_rt_port_array_iterator_begin (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_t iterator = ds_rt_port_array_iterator_begin (&_ds_port_array); while (!ds_rt_port_array_iterator_end (&_ds_port_array, &iterator)) { DiagnosticsPort *port = ds_rt_port_array_iterator_value (&iterator); any_suspended_ports |= !(port->suspend_mode == DS_PORT_SUSPEND_MODE_NOSUSPEND || port->has_resumed_runtime); - ds_rt_port_array_iterator_next (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_next (&iterator); } return any_suspended_ports; } @@ -430,31 +446,29 @@ ds_ipc_stream_factory_has_active_ports (void) void ds_ipc_stream_factory_close_ports (ds_ipc_error_callback_func callback) { - ds_rt_port_array_iterator_t iterator; - ds_rt_port_array_iterator_begin (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_t iterator = ds_rt_port_array_iterator_begin (&_ds_port_array); while (!ds_rt_port_array_iterator_end (&_ds_port_array, &iterator)) { ds_port_close (ds_rt_port_array_iterator_value (&iterator), false, callback); - ds_rt_port_array_iterator_next (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_next (&iterator); } } -void +bool ds_ipc_stream_factory_shutdown (ds_ipc_error_callback_func callback) { if (load_shutting_down_state ()) - return; + return true; store_shutting_down_state (true); - ds_rt_port_array_iterator_t iterator; - ds_rt_port_array_iterator_begin (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_t iterator = ds_rt_port_array_iterator_begin (&_ds_port_array); while (!ds_rt_port_array_iterator_end (&_ds_port_array, &iterator)) { ds_port_close (ds_rt_port_array_iterator_value (&iterator), true, callback); - ds_port_free_vcall (ds_rt_port_array_iterator_value (&iterator)); - ds_rt_port_array_iterator_next (&_ds_port_array, &iterator); + ds_rt_port_array_iterator_next (&iterator); } _ds_current_port = NULL; + return true; } /* @@ -557,6 +571,10 @@ ds_port_close ( ds_ipc_stream_close (port->stream, callback); } +/* + * DiagnosticsPortBuilder. + */ + DiagnosticsPortBuilder * ds_port_builder_init (DiagnosticsPortBuilder *builder) { @@ -621,7 +639,7 @@ connect_port_get_ipc_poll_handle_func ( DiagnosticsConnectPort *connect_port = (DiagnosticsConnectPort *)object; DiagnosticsIpcStream *connection = NULL; - DS_LOG_INFO_0 ("connect_port_get_ipc_poll_handle - ENTER.\n"); + DS_LOG_DEBUG_0 ("connect_port_get_ipc_poll_handle - ENTER.\n"); if (!connect_port->port.stream) { DS_LOG_INFO_0 ("connect_port_get_ipc_poll_handle - cache was empty!\n"); @@ -634,7 +652,7 @@ connect_port_get_ipc_poll_handle_func ( } ep_char8_t buffer [DS_IPC_MAX_TO_STRING_LEN]; - if (!(ds_ipc_stream_to_string (connection, buffer, EP_ARRAY_SIZE (buffer) > 0))) + if (!(ds_ipc_stream_to_string (connection, buffer, EP_ARRAY_SIZE (buffer)))) buffer [0] = '\0'; DS_LOG_INFO_1 ("connect_port_get_ipc_poll_handle - returned connection %s\n", buffer); diff --git a/src/mono/mono/eventpipe/ds-ipc.h b/src/native/eventpipe/ds-ipc.h similarity index 99% rename from src/mono/mono/eventpipe/ds-ipc.h rename to src/native/eventpipe/ds-ipc.h index 225bf878b220..71e30037c7a7 100644 --- a/src/mono/mono/eventpipe/ds-ipc.h +++ b/src/native/eventpipe/ds-ipc.h @@ -19,7 +19,7 @@ * IpcStreamFactory. */ -void +bool ds_ipc_stream_factory_init (void); void @@ -43,7 +43,7 @@ ds_ipc_stream_factory_has_active_ports (void); void ds_ipc_stream_factory_close_ports (ds_ipc_error_callback_func callback); -void +bool ds_ipc_stream_factory_shutdown (ds_ipc_error_callback_func callback); /* diff --git a/src/mono/mono/eventpipe/ds-process-protocol.c b/src/native/eventpipe/ds-process-protocol.c similarity index 52% rename from src/mono/mono/eventpipe/ds-process-protocol.c rename to src/native/eventpipe/ds-process-protocol.c index 1e2dfd66fe0a..0d6f2ac162a2 100644 --- a/src/mono/mono/eventpipe/ds-process-protocol.c +++ b/src/native/eventpipe/ds-process-protocol.c @@ -28,25 +28,46 @@ process_info_payload_flatten ( uint16_t *size); static -void +uint16_t +env_info_payload_get_size (DiagnosticsEnvironmentInfoPayload *payload); + +static +uint32_t +env_info_env_block_get_size (DiagnosticsEnvironmentInfoPayload *payload); + +static +bool +env_info_payload_flatten ( + void *payload, + uint8_t **buffer, + uint16_t *size); + +static +bool +env_info_stream_env_block ( + DiagnosticsEnvironmentInfoPayload *payload, + DiagnosticsIpcStream *stream); + +static +bool process_protocol_helper_get_process_info ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool process_protocol_helper_get_process_env ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool process_protocol_helper_resume_runtime_startup ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); static -void +bool process_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); @@ -166,11 +187,142 @@ ds_process_info_payload_fini (DiagnosticsProcessInfoPayload *payload) } /* - * DiagnosticsProcessProtocolHelper. + * DiagnosticsEnvironmentInfoPayload. */ static +uint16_t +env_info_payload_get_size (DiagnosticsEnvironmentInfoPayload *payload) +{ + EP_ASSERT (payload != NULL); + + size_t size = 0; + size += sizeof (payload->incoming_bytes); + size += sizeof (payload->future); + + EP_ASSERT (size <= UINT16_MAX); + return (uint16_t)size; +} + +static +uint32_t +env_info_env_block_get_size (DiagnosticsEnvironmentInfoPayload *payload) +{ + EP_ASSERT (payload != NULL); + + size_t size = 0; + + size += sizeof (uint32_t); + size += (sizeof (uint32_t) * ep_rt_env_array_utf16_size (&payload->env_array)); + + ep_rt_env_array_utf16_iterator_t iterator = ep_rt_env_array_utf16_iterator_begin (&payload->env_array); + while (!ep_rt_env_array_utf16_iterator_end (&payload->env_array, &iterator)) { + size += ((ep_rt_utf16_string_len (ep_rt_env_array_utf16_iterator_value (&iterator)) + 1) * sizeof (ep_char16_t)); + ep_rt_env_array_utf16_iterator_next (&iterator); + } + + EP_ASSERT (size <= UINT32_MAX); + return (uint32_t)size; +} + +static +bool +env_info_payload_flatten ( + void *payload, + uint8_t **buffer, + uint16_t *size) +{ + DiagnosticsEnvironmentInfoPayload *env_info = (DiagnosticsEnvironmentInfoPayload*)payload; + + EP_ASSERT (payload != NULL); + EP_ASSERT (buffer != NULL); + EP_ASSERT (*buffer != NULL); + EP_ASSERT (size != NULL); + EP_ASSERT (env_info_payload_get_size (env_info) == *size); + + // see IPC spec @ https://github.com/dotnet/diagnostics/blob/master/documentation/design-docs/ipc-protocol.md + // for definition of serialization format + + bool success = true; + + // uint32_t incoming_bytes; + memcpy (*buffer, &env_info->incoming_bytes, sizeof (env_info->incoming_bytes)); + *buffer += sizeof (env_info->incoming_bytes); + *size -= sizeof (env_info->incoming_bytes); + + // uint16_t future; + memcpy(*buffer, &env_info->future, sizeof (env_info->future)); + *buffer += sizeof (env_info->future); + *size -= sizeof (env_info->future); + + // Assert we've used the whole buffer we were given + EP_ASSERT(*size == 0); + + return success; +} + +static +bool +env_info_stream_env_block ( + DiagnosticsEnvironmentInfoPayload *payload, + DiagnosticsIpcStream *stream) +{ + DiagnosticsEnvironmentInfoPayload *env_info = (DiagnosticsEnvironmentInfoPayload*)payload; + + EP_ASSERT (payload != NULL); + EP_ASSERT (stream != NULL); + + // see IPC spec @ https://github.com/dotnet/diagnostics/blob/master/documentation/design-docs/ipc-protocol.md + // for definition of serialization format + + bool success = true; + uint32_t bytes_written = 0; + + // Array> + uint32_t env_len = (uint32_t)ep_rt_env_array_utf16_size (&env_info->env_array); + success &= ds_ipc_stream_write (stream, (const uint8_t *)&env_len, sizeof (env_len), &bytes_written, EP_INFINITE_WAIT); + + ep_rt_env_array_utf16_iterator_t iterator = ep_rt_env_array_utf16_iterator_begin (&env_info->env_array); + while (!ep_rt_env_array_utf16_iterator_end (&env_info->env_array, &iterator)) { + success &= ds_ipc_message_try_write_string_utf16_t_to_stream (stream, ep_rt_env_array_utf16_iterator_value (&iterator)); + ep_rt_env_array_utf16_iterator_next (&iterator); + } + + return success; +} + +DiagnosticsEnvironmentInfoPayload * +ds_env_info_payload_init (DiagnosticsEnvironmentInfoPayload *payload) +{ + ep_return_null_if_nok (payload != NULL); + + ep_rt_env_array_utf16_alloc (&payload->env_array); + ep_rt_os_environment_get_utf16 (&payload->env_array); + + payload->incoming_bytes = env_info_env_block_get_size (payload); + payload->future = 0; + + return payload; +} + void +ds_env_info_payload_fini (DiagnosticsEnvironmentInfoPayload *payload) +{ + ep_rt_env_array_utf16_iterator_t iterator = ep_rt_env_array_utf16_iterator_begin (&payload->env_array); + while (!ep_rt_env_array_utf16_iterator_end (&payload->env_array, &iterator)) { + ep_rt_utf16_string_free (ep_rt_env_array_utf16_iterator_value (&iterator)); + ep_rt_env_array_utf16_iterator_next (&iterator); + } + + ep_rt_env_array_utf16_free (&payload->env_array); +} + +/* + * DiagnosticsProcessProtocolHelper. + */ + +static +bool process_protocol_helper_get_process_info ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) @@ -178,56 +330,59 @@ process_protocol_helper_get_process_info ( EP_ASSERT (message != NULL); EP_ASSERT (stream != NULL); + bool result = false; ep_char16_t *command_line = NULL; ep_char16_t *os_info = NULL; ep_char16_t *arch_info = NULL; + DiagnosticsProcessInfoPayload payload; + DiagnosticsProcessInfoPayload *process_info_payload = NULL; - if (ep_rt_managed_command_line_get ()) - command_line = ep_rt_utf8_to_utf16_string (ep_rt_managed_command_line_get (), -1); - - // Checkout https://github.com/dotnet/coreclr/pull/24433 for more information about this fall back. - if (!command_line) - // Use the result from ep_rt_os_command_line_get() instead - command_line = ep_rt_utf8_to_utf16_string (ep_rt_os_command_line_get (), -1); + command_line = ep_rt_utf8_to_utf16_string (ep_rt_diagnostics_command_line_get (), -1); + ep_raise_error_if_nok (command_line != NULL); - // get OS + Arch info os_info = ep_rt_utf8_to_utf16_string (ep_event_source_get_os_info (), -1); + ep_raise_error_if_nok (os_info != NULL); + arch_info = ep_rt_utf8_to_utf16_string (ep_event_source_get_arch_info (), -1); + ep_raise_error_if_nok (arch_info != NULL); - DiagnosticsProcessInfoPayload payload; - ds_process_info_payload_init ( + process_info_payload = ds_process_info_payload_init ( &payload, command_line, os_info, arch_info, ep_rt_current_process_get_id (), ds_ipc_advertise_cookie_v1_get ()); + ep_raise_error_if_nok (process_info_payload != NULL); ep_raise_error_if_nok (ds_ipc_message_initialize_buffer ( message, ds_ipc_header_get_generic_success (), - (void *)&payload, - process_info_payload_get_size (&payload), - process_info_payload_flatten) == true); + (void *)process_info_payload, + process_info_payload_get_size (process_info_payload), + process_info_payload_flatten)); - ds_ipc_message_send (message, stream); + ep_raise_error_if_nok (ds_ipc_message_send (message, stream)); + + result = true; ep_on_exit: - ds_process_info_payload_fini (&payload); + ds_process_info_payload_fini (process_info_payload); ep_rt_utf16_string_free (arch_info); ep_rt_utf16_string_free (os_info); ep_rt_utf16_string_free (command_line); ds_ipc_stream_free (stream); - return; + return result; ep_on_error: + EP_ASSERT (!result); ds_ipc_message_send_error (stream, DS_IPC_E_FAIL); DS_LOG_WARNING_0 ("Failed to send DiagnosticsIPC response"); ep_exit_error_handler (); } static -void +bool process_protocol_helper_get_process_env ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) @@ -235,15 +390,39 @@ process_protocol_helper_get_process_env ( EP_ASSERT (message != NULL); EP_ASSERT (stream != NULL); - // TODO: Implement. - ds_ipc_message_send_error (stream, DS_IPC_E_NOTSUPPORTED); - DS_LOG_WARNING_0 ("Get Process Environmnet not implemented\n"); + bool result = false; + DiagnosticsEnvironmentInfoPayload payload; + DiagnosticsEnvironmentInfoPayload *env_info_payload; + + env_info_payload = ds_env_info_payload_init (&payload); + ep_raise_error_if_nok (env_info_payload); + + ep_raise_error_if_nok (ds_ipc_message_initialize_buffer ( + message, + ds_ipc_header_get_generic_success (), + (void *)env_info_payload, + env_info_payload_get_size (env_info_payload), + env_info_payload_flatten)); + + ep_raise_error_if_nok (ds_ipc_message_send (message, stream)); + ep_raise_error_if_nok (env_info_stream_env_block (env_info_payload, stream)); + + result = true; +ep_on_exit: + ds_env_info_payload_fini (env_info_payload); ds_ipc_stream_free (stream); + return result; + +ep_on_error: + EP_ASSERT (!result); + ds_ipc_message_send_error (stream, DS_IPC_E_FAIL); + DS_LOG_WARNING_0 ("Failed to send DiagnosticsIPC response"); + ep_exit_error_handler (); } static -void +bool process_protocol_helper_resume_runtime_startup ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) @@ -251,29 +430,33 @@ process_protocol_helper_resume_runtime_startup ( EP_ASSERT (message != NULL); EP_ASSERT (stream != NULL); + bool result = false; + // no payload ds_server_resume_runtime_startup (); - bool success = ds_ipc_message_send_success (stream, DS_IPC_S_OK); - if (!success) { + result = ds_ipc_message_send_success (stream, DS_IPC_S_OK); + if (!result) { ds_ipc_message_send_error (stream, DS_IPC_E_FAIL); DS_LOG_WARNING_0 ("Failed to send DiagnosticsIPC response"); } ds_ipc_stream_free (stream); + return result; } static -void +bool process_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_message_header_get_commandset (ds_ipc_message_get_header (&message))); + DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (message))); ds_ipc_message_send_error (stream, DS_IPC_E_UNKNOWN_COMMAND); ds_ipc_stream_free (stream); + return true; } -void +bool ds_process_protocol_helper_handle_ipc_message ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) @@ -281,20 +464,24 @@ ds_process_protocol_helper_handle_ipc_message ( EP_ASSERT (message != NULL); EP_ASSERT (stream != NULL); + bool result = false; + switch ((DiagnosticsProcessCommandId)ds_ipc_header_get_commandid (ds_ipc_message_get_header_ref (message))) { case DS_PROCESS_COMMANDID_GET_PROCESS_INFO: - process_protocol_helper_get_process_info (message, stream); + result = process_protocol_helper_get_process_info (message, stream); break; case DS_PROCESS_COMMANDID_RESUME_RUNTIME: - process_protocol_helper_resume_runtime_startup (message, stream); + result = process_protocol_helper_resume_runtime_startup (message, stream); break; case DS_PROCESS_COMMANDID_GET_PROCESS_ENV: - process_protocol_helper_get_process_env (message, stream); + result = process_protocol_helper_get_process_env (message, stream); break; default: - process_protocol_helper_unknown_command (message, stream); + result = process_protocol_helper_unknown_command (message, stream); break; } + + return result; } #endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ diff --git a/src/mono/mono/eventpipe/ds-process-protocol.h b/src/native/eventpipe/ds-process-protocol.h similarity index 66% rename from src/mono/mono/eventpipe/ds-process-protocol.h rename to src/native/eventpipe/ds-process-protocol.h index ef07330d6dc3..377ffa1cbace 100644 --- a/src/mono/mono/eventpipe/ds-process-protocol.h +++ b/src/native/eventpipe/ds-process-protocol.h @@ -59,11 +59,40 @@ ds_process_info_payload_init ( void ds_process_info_payload_fini (DiagnosticsProcessInfoPayload *payload); +/* +* DiagnosticsEnvironmentInfoPayload +*/ + +#if defined(DS_INLINE_GETTER_SETTER) || defined(DS_IMPL_PROCESS_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsEnvironmentInfoPayload { +#else +struct _DiagnosticsEnvironmentInfoPayload_Internal { +#endif + // The environemnt is sent back as an optional continuation stream of data. + // It is encoded in the typical length-prefixed array format as defined in + // the Diagnostics IPC Spec: https://github.com/dotnet/diagnostics/blob/master/documentation/design-docs/ipc-protocol.md + uint32_t incoming_bytes; + uint16_t future; + ep_rt_env_array_utf16_t env_array; +}; + +#if !defined(DS_INLINE_GETTER_SETTER) && !defined(DS_IMPL_PROCESS_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsEnvironmentInfoPayload { + uint8_t _internal [sizeof (struct _DiagnosticsEnvironmentInfoPayload_Internal)]; +}; +#endif + +DiagnosticsEnvironmentInfoPayload * +ds_env_info_payload_init (DiagnosticsEnvironmentInfoPayload *payload); + +void +ds_env_info_payload_fini (DiagnosticsEnvironmentInfoPayload *payload); + /* * DiagnosticsProcessProtocolHelper. */ -void +bool ds_process_protocol_helper_handle_ipc_message ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); diff --git a/src/native/eventpipe/ds-profiler-protocol.c b/src/native/eventpipe/ds-profiler-protocol.c new file mode 100644 index 000000000000..c2b42b28c20f --- /dev/null +++ b/src/native/eventpipe/ds-profiler-protocol.c @@ -0,0 +1,200 @@ +#include + +#ifdef ENABLE_PERFTRACING +#include "ds-rt-config.h" +#if !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) + +#define DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER +#include "ds-protocol.h" +#include "ds-profiler-protocol.h" +#include "ds-rt.h" + +#ifdef FEATURE_PROFAPI_ATTACH_DETACH + +/* + * Forward declares of all static functions. + */ +static +uint8_t * +attach_profiler_command_try_parse_payload ( + uint8_t *buffer, + uint16_t buffer_len); + +static +bool +profiler_protocol_helper_attach_profiler ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +static +bool +profiler_protocol_helper_unknown_command ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +/* +* DiagnosticsAttachProfilerCommandPayload +*/ + +static +uint8_t * +attach_profiler_command_try_parse_payload ( + uint8_t *buffer, + uint16_t buffer_len) +{ + EP_ASSERT (buffer != NULL); + + uint8_t * buffer_cursor = buffer; + uint32_t buffer_cursor_len = buffer_len; + + DiagnosticsAttachProfilerCommandPayload *instance = ds_attach_profiler_command_payload_alloc (); + ep_raise_error_if_nok (instance != NULL); + + instance->incoming_buffer = buffer; + + if (!ds_ipc_message_try_parse_uint32_t (&buffer_cursor, &buffer_cursor_len, &instance->attach_timeout ) || + !ds_ipc_message_try_parse_value (&buffer_cursor, &buffer_cursor_len, (uint8_t *)&instance->profiler_guid, (uint32_t)EP_ARRAY_SIZE (instance->profiler_guid)) || + !ds_ipc_message_try_parse_string_utf16_t (&buffer_cursor, &buffer_cursor_len, &instance->profiler_path) || + !ds_ipc_message_try_parse_uint32_t (&buffer_cursor, &buffer_cursor_len, &instance->client_data_len) || + !(buffer_len <= instance->client_data_len)) + ep_raise_error (); + + instance->client_data = buffer; + +ep_on_exit: + return (uint8_t *)instance; + +ep_on_error: + ds_attach_profiler_command_payload_free (instance); + instance = NULL; + ep_exit_error_handler (); +} + +DiagnosticsAttachProfilerCommandPayload * +ds_attach_profiler_command_payload_alloc (void) +{ + return ep_rt_object_alloc (DiagnosticsAttachProfilerCommandPayload); +} + +void +ds_attach_profiler_command_payload_free (DiagnosticsAttachProfilerCommandPayload *payload) +{ + ep_return_void_if_nok (payload != NULL); + ep_rt_byte_array_free (payload->incoming_buffer); + ep_rt_object_free (payload); +} + +/* + * DiagnosticsProfilerProtocolHelper. + */ + +static +bool +profiler_protocol_helper_unknown_command ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (message))); + ds_ipc_message_send_error (stream, DS_IPC_E_UNKNOWN_COMMAND); + ds_ipc_stream_free (stream); + return true; +} + +static +bool +profiler_protocol_helper_attach_profiler ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + EP_ASSERT (message != NULL); + EP_ASSERT (stream != NULL); + + if (!stream) + return false; + + bool result = false; + DiagnosticsAttachProfilerCommandPayload *payload; + payload = (DiagnosticsAttachProfilerCommandPayload *)ds_ipc_message_try_parse_payload (message, attach_profiler_command_try_parse_payload); + + if (!payload) { + ds_ipc_message_send_error (stream, DS_IPC_E_BAD_ENCODING); + ep_raise_error (); + } + + ds_ipc_result_t ipc_result; + ipc_result = ds_rt_profiler_attach (payload); + if (ipc_result != DS_IPC_S_OK) { + ds_ipc_message_send_error (stream, ipc_result); + ep_raise_error (); + } else { + ds_ipc_message_send_success (stream, ipc_result); + } + + result = true; + +ep_on_exit: + ds_attach_profiler_command_payload_free (payload); + ds_ipc_stream_free (stream); + return result; + +ep_on_error: + EP_ASSERT (!result); + ep_exit_error_handler (); +} + +bool +ds_profiler_protocol_helper_handle_ipc_message ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + EP_ASSERT (message != NULL); + EP_ASSERT (stream != NULL); + + bool result = false; + + if (!ep_rt_is_running ()) { + ds_ipc_message_send_error (stream, DS_IPC_E_NOT_YET_AVAILABLE); + ds_ipc_stream_free (stream); + ep_raise_error (); + } + + switch ((DiagnosticsProfilerCommandId)ds_ipc_header_get_commandid (ds_ipc_message_get_header_ref (message))) { + case DS_PROFILER_COMMANDID_ATTACH_PROFILER: + result = profiler_protocol_helper_attach_profiler (message, stream); + break; + default: + result = profiler_protocol_helper_unknown_command (message, stream); + break; + } + +ep_on_exit: + return result; + +ep_on_error: + EP_ASSERT (!result); + ep_exit_error_handler (); +} +#else +bool +ds_profiler_protocol_helper_handle_ipc_message ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream) +{ + EP_ASSERT (message != NULL); + EP_ASSERT (stream != NULL); + + DS_LOG_WARNING_0 ("Attach profiler not implemented\n"); + ds_ipc_message_send_error (stream, DS_IPC_E_NOTSUPPORTED); + ds_ipc_stream_free (stream); + + return true; +} +#endif /* FEATURE_PROFAPI_ATTACH_DETACH */ + +#endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ +#endif /* ENABLE_PERFTRACING */ + +#ifndef DS_INCLUDE_SOURCE_FILES +extern const char quiet_linker_empty_file_warning_diagnostics_profiler_protocol; +const char quiet_linker_empty_file_warning_diagnostics_profiler_protocol = 0; +#endif diff --git a/src/native/eventpipe/ds-profiler-protocol.h b/src/native/eventpipe/ds-profiler-protocol.h new file mode 100644 index 000000000000..ff4c67fdaf57 --- /dev/null +++ b/src/native/eventpipe/ds-profiler-protocol.h @@ -0,0 +1,72 @@ +#ifndef __DIAGNOSTICS_PROFILER_PROTOCOL_H__ +#define __DIAGNOSTICS_PROFILER_PROTOCOL_H__ + +#include + +#ifdef ENABLE_PERFTRACING +#include "ds-rt-config.h" +#include "ds-types.h" +#include "ds-ipc.h" + +#undef DS_IMPL_GETTER_SETTER +#ifdef DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER +#define DS_IMPL_GETTER_SETTER +#endif +#include "ds-getter-setter.h" + +/* +* DiagnosticsAttachProfilerCommandPayload +*/ + +#if defined(DS_INLINE_GETTER_SETTER) || defined(DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsAttachProfilerCommandPayload { +#else +struct _DiagnosticsAttachProfilerCommandPayload_Internal { +#endif + uint8_t * incoming_buffer; + + // The protocol buffer is defined as: + // uint - attach timeout + // CLSID - profiler GUID + // string - profiler path + // array - client data + // returns + // ulong - status + + uint32_t attach_timeout; + uint8_t profiler_guid [EP_ACTIVITY_ID_SIZE]; + const ep_char16_t *profiler_path; + uint32_t client_data_len; + uint8_t *client_data; +}; + +#if !defined(DS_INLINE_GETTER_SETTER) && !defined(DS_IMPL_PROFILER_PROTOCOL_GETTER_SETTER) +struct _DiagnosticsAttachProfilerCommandPayload { + uint8_t _internal [sizeof (struct _DiagnosticsAttachProfilerCommandPayload_Internal)]; +}; +#endif + +DS_DEFINE_GETTER(DiagnosticsAttachProfilerCommandPayload *, attach_profiler_command_payload, uint32_t, attach_timeout) +DS_DEFINE_GETTER_ARRAY_REF(DiagnosticsAttachProfilerCommandPayload *, attach_profiler_command_payload, uint8_t *, const uint8_t *, profiler_guid, profiler_guid [0]) +DS_DEFINE_GETTER(DiagnosticsAttachProfilerCommandPayload *, attach_profiler_command_payload, const ep_char16_t *, profiler_path) +DS_DEFINE_GETTER(DiagnosticsAttachProfilerCommandPayload *, attach_profiler_command_payload, uint32_t, client_data_len) +DS_DEFINE_GETTER(DiagnosticsAttachProfilerCommandPayload *, attach_profiler_command_payload, uint8_t *, client_data) + + +DiagnosticsAttachProfilerCommandPayload * +ds_attach_profiler_command_payload_alloc (void); + +void +ds_attach_profiler_command_payload_free (DiagnosticsAttachProfilerCommandPayload *payload); + +/* + * DiagnosticsProfilerProtocolHelper. + */ + +bool +ds_profiler_protocol_helper_handle_ipc_message ( + DiagnosticsIpcMessage *message, + DiagnosticsIpcStream *stream); + +#endif /* ENABLE_PERFTRACING */ +#endif /* __DIAGNOSTICS_PROFILER_PROTOCOL_H__ */ diff --git a/src/mono/mono/eventpipe/ds-protocol.c b/src/native/eventpipe/ds-protocol.c similarity index 81% rename from src/mono/mono/eventpipe/ds-protocol.c rename to src/native/eventpipe/ds-protocol.c index b69a05e1f0a3..e6a2ef2a42a8 100644 --- a/src/mono/mono/eventpipe/ds-protocol.c +++ b/src/native/eventpipe/ds-protocol.c @@ -115,7 +115,7 @@ ds_icp_advertise_v1_send (DiagnosticsIpcStream *stream) memset (buffer, 0, sizeof (uint16_t)); uint32_t bytes_written = 0; - ep_raise_error_if_nok (ds_ipc_stream_write (stream, advertise_buffer, sizeof (advertise_buffer), &bytes_written, 100 /*ms*/) == true); + ep_raise_error_if_nok (ds_ipc_stream_write (stream, advertise_buffer, sizeof (advertise_buffer), &bytes_written, 100 /*ms*/)); EP_ASSERT (bytes_written == sizeof (advertise_buffer)); result = (bytes_written == sizeof (advertise_buffer)); @@ -145,16 +145,16 @@ ipc_message_try_send_string_utf16_t ( uint32_t total_written = 0; uint32_t written = 0; - bool success = ds_ipc_stream_write (stream, (const uint8_t *)&string_len, (uint32_t)sizeof (string_len), &written, EP_INFINITE_WAIT); + bool result = ds_ipc_stream_write (stream, (const uint8_t *)&string_len, (uint32_t)sizeof (string_len), &written, EP_INFINITE_WAIT); total_written += written; - if (success) { - success &= ds_ipc_stream_write (stream, (const uint8_t *)value, string_bytes, &written, EP_INFINITE_WAIT); + if (result) { + result &= ds_ipc_stream_write (stream, (const uint8_t *)value, string_bytes, &written, EP_INFINITE_WAIT); total_written += written; } EP_ASSERT (total_bytes == total_written); - return success && (total_bytes == total_written); + return result && (total_bytes == total_written); } static @@ -175,7 +175,7 @@ ipc_message_flatten_blitable_type ( uint8_t *buffer_cursor = NULL; EP_ASSERT (sizeof (message->header) + payload_len <= UINT16_MAX); - message->size = sizeof (message->header) + payload_len; + message->size = (uint16_t)(sizeof (message->header) + payload_len); buffer = ep_rt_byte_array_alloc (message->size); ep_raise_error_if_nok (buffer != NULL); @@ -215,12 +215,12 @@ ipc_message_try_parse ( EP_ASSERT (stream != NULL); uint8_t *buffer = NULL; - bool success = false; + bool result = false; // Read out header first uint32_t bytes_read; - success = ds_ipc_stream_read (stream, (uint8_t *)&message->header, sizeof (message->header), &bytes_read, EP_INFINITE_WAIT); - if (!success || (bytes_read < sizeof (message->header))) + result = ds_ipc_stream_read (stream, (uint8_t *)&message->header, sizeof (message->header), &bytes_read, EP_INFINITE_WAIT); + if (!result || (bytes_read < sizeof (message->header))) ep_raise_error (); if (message->header.size < sizeof (message->header)) @@ -235,8 +235,8 @@ ipc_message_try_parse ( uint8_t *buffer = ep_rt_byte_array_alloc (payload_len); ep_raise_error_if_nok (buffer != NULL); - success = ds_ipc_stream_read (stream, buffer, payload_len, &bytes_read, EP_INFINITE_WAIT); - if (!success || (bytes_read < payload_len)) + result = ds_ipc_stream_read (stream, buffer, payload_len, &bytes_read, EP_INFINITE_WAIT); + if (!result || (bytes_read < payload_len)) ep_raise_error (); message->data = buffer; @@ -244,11 +244,11 @@ ipc_message_try_parse ( } ep_on_exit: - return success; + return result; ep_on_error: ep_rt_byte_array_free (buffer); - success = false; + result = false; ep_exit_error_handler (); } @@ -270,6 +270,7 @@ ipc_message_flatten ( uint8_t *buffer = NULL; uint16_t total_len = 0; + EP_ASSERT (UINT16_MAX >= sizeof (DiagnosticsIpcHeader) + payload_len); total_len += sizeof (DiagnosticsIpcHeader) + payload_len; uint16_t remaining_len = total_len; @@ -338,12 +339,12 @@ ds_ipc_message_try_parse_value ( uint8_t **buffer, uint32_t *buffer_len, uint8_t *value, - size_t value_len) + uint32_t value_len) { EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len != NULL); EP_ASSERT (value != NULL); - EP_ASSERT ((buffer_len - value_len) >= 0); + EP_ASSERT ((buffer_len - value_len) <= buffer_len); memcpy (value, *buffer, value_len); *buffer = *buffer + value_len; @@ -361,9 +362,9 @@ ds_ipc_message_try_parse_uint64_t ( EP_ASSERT (buffer_len != NULL); EP_ASSERT (value != NULL); - bool result = ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t *)value, sizeof (uint64_t)); + bool result = ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t *)value, (uint32_t)sizeof (uint64_t)); if (result) - value = DS_VAL64 (value); + *value = DS_VAL64 (*value); return result; } @@ -377,9 +378,9 @@ ds_ipc_message_try_parse_uint32_t ( EP_ASSERT (buffer_len != NULL); EP_ASSERT (value != NULL); - bool result = ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t*)value, sizeof (uint32_t)); + bool result = ds_ipc_message_try_parse_value (buffer, buffer_len, (uint8_t*)value, (uint32_t)sizeof (uint32_t)); if (result) - value = DS_VAL32 (value); + *value = DS_VAL32 (*value); return result; } @@ -397,7 +398,7 @@ ds_ipc_message_try_parse_string_utf16_t ( bool result = false; uint32_t string_len = 0; - ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &string_len) == true); + ep_raise_error_if_nok (ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, &string_len)); if (string_len != 0) { if (string_len > (*buffer_len / sizeof (ep_char16_t))) @@ -421,7 +422,7 @@ ds_ipc_message_try_parse_string_utf16_t ( return result; ep_on_error: - EP_ASSERT (result == false); + EP_ASSERT (!result); ep_exit_error_handler (); } @@ -519,6 +520,32 @@ ds_ipc_message_try_write_string_utf16_t ( ep_exit_error_handler (); } +bool +ds_ipc_message_try_write_string_utf16_t_to_stream ( + DiagnosticsIpcStream *stream, + const ep_char16_t *value) +{ + EP_ASSERT (stream != NULL); + EP_ASSERT (value != NULL); + + bool result = true; + uint32_t bytes_written = 0; + uint32_t string_len = (uint32_t)(ep_rt_utf16_string_len (value) + 1); + size_t total_bytes = (string_len * sizeof (ep_char16_t)) + sizeof(uint32_t); + + EP_ASSERT (total_bytes <= UINT16_MAX); + + result &= ds_ipc_stream_write (stream, (const uint8_t *)&string_len, sizeof (string_len), &bytes_written, EP_INFINITE_WAIT); + total_bytes -= bytes_written; + if (result) { + result &= ds_ipc_stream_write (stream, (const uint8_t *)value, string_len * sizeof (ep_char16_t), &bytes_written, EP_INFINITE_WAIT); + total_bytes -= bytes_written; + } + + EP_ASSERT (total_bytes == 0); + return result && (total_bytes == 0); +} + bool ds_ipc_message_send ( DiagnosticsIpcMessage *message, @@ -529,42 +556,55 @@ ds_ipc_message_send ( EP_ASSERT (stream != NULL); uint32_t bytes_written; - bool success = ds_ipc_stream_write (stream, message->data, message->size, &bytes_written, EP_INFINITE_WAIT); - return (bytes_written == message->size) && success; + bool result = ds_ipc_stream_write (stream, message->data, message->size, &bytes_written, EP_INFINITE_WAIT); + return (bytes_written == message->size) && result; } bool ds_ipc_message_send_error ( DiagnosticsIpcStream *stream, - uint32_t error) + ds_ipc_result_t error) { ep_return_false_if_nok (stream != NULL); DiagnosticsIpcMessage error_message; ds_ipc_message_init (&error_message); - bool success = ds_ipc_message_initialize_header_uint32_t_payload (&error_message, ds_ipc_header_get_generic_error (), error); - if (success) + bool result = ds_ipc_message_initialize_header_int32_t_payload (&error_message, ds_ipc_header_get_generic_error (), (int32_t)error); + if (result) ds_ipc_message_send (&error_message, stream); ds_ipc_message_fini (&error_message); - return success; + return result; } bool ds_ipc_message_send_success ( DiagnosticsIpcStream *stream, - uint32_t code) + ds_ipc_result_t code) { ep_return_false_if_nok (stream != NULL); DiagnosticsIpcMessage success_message; ds_ipc_message_init (&success_message); - bool success = ds_ipc_message_initialize_header_uint32_t_payload (&success_message, ds_ipc_header_get_generic_success (), code); - if (success) + bool result = ds_ipc_message_initialize_header_int32_t_payload (&success_message, ds_ipc_header_get_generic_success (), (int32_t)code); + if (result) ds_ipc_message_send (&success_message, stream); ds_ipc_message_fini (&success_message); - return success; + return result; +} + +const DiagnosticsIpcHeader * +ds_ipc_header_get_generic_success (void) +{ + return &_ds_ipc_generic_success_header; } +const DiagnosticsIpcHeader * +ds_ipc_header_get_generic_error (void) +{ + return &_ds_ipc_generic_error_header; +} + + #endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ #endif /* ENABLE_PERFTRACING */ diff --git a/src/mono/mono/eventpipe/ds-protocol.h b/src/native/eventpipe/ds-protocol.h similarity index 80% rename from src/mono/mono/eventpipe/ds-protocol.h rename to src/native/eventpipe/ds-protocol.h index eac340c48518..d320ca92bf14 100644 --- a/src/mono/mono/eventpipe/ds-protocol.h +++ b/src/native/eventpipe/ds-protocol.h @@ -110,7 +110,7 @@ ds_ipc_message_try_parse_value ( uint8_t **buffer, uint32_t *buffer_len, uint8_t *value, - size_t value_len); + uint32_t value_len); bool ds_ipc_message_try_parse_uint64_t ( @@ -118,12 +118,34 @@ ds_ipc_message_try_parse_uint64_t ( uint32_t *buffer_len, uint64_t *value); +static +inline +bool +ds_ipc_message_try_parse_int64_t ( + uint8_t **buffer, + uint32_t *buffer_len, + int64_t *value) +{ + return ds_ipc_message_try_parse_uint64_t (buffer, buffer_len, (uint64_t *)value); +} + bool ds_ipc_message_try_parse_uint32_t ( uint8_t **buffer, uint32_t *buffer_len, uint32_t *value); +static +inline +bool +ds_ipc_message_try_parse_int32_t ( + uint8_t **buffer, + uint32_t *buffer_len, + int32_t *value) +{ + return ds_ipc_message_try_parse_uint32_t (buffer, buffer_len, (uint32_t *)value); +} + bool ds_ipc_message_try_parse_string_utf16_t ( uint8_t **buffer, @@ -136,12 +158,34 @@ ds_ipc_message_initialize_header_uint32_t_payload ( const DiagnosticsIpcHeader *header, uint32_t payload); +static +inline +bool +ds_ipc_message_initialize_header_int32_t_payload ( + DiagnosticsIpcMessage *message, + const DiagnosticsIpcHeader *header, + int32_t payload) +{ + return ds_ipc_message_initialize_header_uint32_t_payload (message, header, (uint32_t)payload); +} + bool ds_ipc_message_initialize_header_uint64_t_payload ( DiagnosticsIpcMessage *message, const DiagnosticsIpcHeader *header, uint64_t payload); +static +inline +bool +ds_ipc_message_initialize_header_int64_t_payload ( + DiagnosticsIpcMessage *message, + const DiagnosticsIpcHeader *header, + int64_t payload) +{ + return ds_ipc_message_initialize_header_uint64_t_payload (message, header, (uint64_t)payload); +} + bool ds_ipc_message_initialize_buffer ( DiagnosticsIpcMessage *message, @@ -161,6 +205,11 @@ ds_ipc_message_try_write_string_utf16_t ( uint16_t *buffer_len, const ep_char16_t *value); +bool +ds_ipc_message_try_write_string_utf16_t_to_stream ( + DiagnosticsIpcStream *stream, + const ep_char16_t *value); + bool ds_ipc_message_send ( DiagnosticsIpcMessage *message, @@ -175,30 +224,18 @@ ds_ipc_message_send ( bool ds_ipc_message_send_error ( DiagnosticsIpcStream *stream, - uint32_t error); + ds_ipc_result_t error); bool ds_ipc_message_send_success ( DiagnosticsIpcStream *stream, - uint32_t code); + ds_ipc_result_t code); -static -inline const DiagnosticsIpcHeader * -ds_ipc_header_get_generic_success (void) -{ - extern const DiagnosticsIpcHeader _ds_ipc_generic_success_header; - return &_ds_ipc_generic_success_header; -} +ds_ipc_header_get_generic_success (void); -static -inline const DiagnosticsIpcHeader * -ds_ipc_header_get_generic_error (void) -{ - extern const DiagnosticsIpcHeader _ds_ipc_generic_error_header; - return &_ds_ipc_generic_error_header; -} +ds_ipc_header_get_generic_error (void); #endif /* ENABLE_PERFTRACING */ #endif /* __DIAGNOSTICS_PROTOCOL_H__ */ diff --git a/src/mono/mono/eventpipe/ds-rt-config.h b/src/native/eventpipe/ds-rt-config.h similarity index 93% rename from src/mono/mono/eventpipe/ds-rt-config.h rename to src/native/eventpipe/ds-rt-config.h index b01333bf457b..20786a184443 100644 --- a/src/mono/mono/eventpipe/ds-rt-config.h +++ b/src/native/eventpipe/ds-rt-config.h @@ -1,6 +1,7 @@ #ifndef __DIAGNOSTICS_RT_CONFIG_H__ #define __DIAGNOSTICS_RT_CONFIG_H__ +#include #include "ep-rt-config.h" #ifdef EP_INLINE_GETTER_SETTER diff --git a/src/mono/mono/eventpipe/ds-rt-types.h b/src/native/eventpipe/ds-rt-types.h similarity index 86% rename from src/mono/mono/eventpipe/ds-rt-types.h rename to src/native/eventpipe/ds-rt-types.h index a01f5b4b759c..501a9ff5357f 100644 --- a/src/mono/mono/eventpipe/ds-rt-types.h +++ b/src/native/eventpipe/ds-rt-types.h @@ -5,7 +5,7 @@ #ifdef ENABLE_PERFTRACING -#include "ds-rt-types-mono.h" +#include DS_RT_TYPES_H #endif /* ENABLE_PERFTRACING */ #endif /* __DIAGNOSTICS_RT_TYPES_H__ */ diff --git a/src/mono/mono/eventpipe/ds-rt.h b/src/native/eventpipe/ds-rt.h similarity index 69% rename from src/mono/mono/eventpipe/ds-rt.h rename to src/native/eventpipe/ds-rt.h index 54ca5b0ae6e0..179ef3553084 100644 --- a/src/mono/mono/eventpipe/ds-rt.h +++ b/src/native/eventpipe/ds-rt.h @@ -20,6 +20,7 @@ #define DS_LOG_WARNING_0(msg) ds_rt_redefine #define DS_LOG_WARNING_1(msg, data1) ds_rt_redefine #define DS_LOG_WARNING_2(msg, data1, data2) ds_rt_redefine +#define DS_LOG_DEBUG_0(msg) ds_rt_redefine #define DS_ENTER_BLOCKING_PAL_SECTION ds_rt_redefine #define DS_EXIT_BLOCKING_PAL_SECTION ds_rt_redefine @@ -30,6 +31,29 @@ #define DS_RT_DECLARE_ARRAY_ITERATOR(array_name, array_type, iterator_type, item_type) \ EP_RT_DECLARE_ARRAY_ITERATOR_PREFIX(ds, array_name, array_type, iterator_type, item_type) +#define DS_RT_DECLARE_ARRAY_REVERSE_ITERATOR(array_name, array_type, iterator_type, item_type) \ + EP_RT_DECLARE_ARRAY_REVERSE_ITERATOR_PREFIX(ds, array_name, array_type, iterator_type, item_type) + +/* +* AutoTrace. +*/ + +static +void +ds_rt_auto_trace_init (void); + +static +void +ds_rt_auto_trace_launch (void); + +static +void +ds_rt_auto_trace_signal (void); + +static +void +ds_rt_auto_trace_wait (void); + /* * DiagnosticsConfiguration. */ @@ -43,15 +67,23 @@ ep_char8_t * ds_rt_config_value_get_ports (void); static -int32_t +uint32_t ds_rt_config_value_get_default_port_suspend (void); +/* +* DiagnosticsDump. +*/ + +static +ds_ipc_result_t +ds_rt_generate_core_dump (DiagnosticsGenerateCoreDumpCommandPayload *payload); + /* * DiagnosticsIpc. */ static -void +bool ds_rt_transport_get_default_name ( ep_char8_t *name, int32_t name_len, @@ -74,10 +106,27 @@ DS_RT_DECLARE_ARRAY_ITERATOR (ipc_poll_handle_array, ds_rt_ipc_poll_handle_array DS_RT_DECLARE_ARRAY (port_array, ds_rt_port_array_t, ds_rt_port_array_iterator_t, DiagnosticsPort *) DS_RT_DECLARE_ARRAY_ITERATOR (port_array, ds_rt_port_array_t, ds_rt_port_array_iterator_t, DiagnosticsPort *) -DS_RT_DECLARE_ARRAY (port_config_array, ds_rt_port_config_array_t, ds_rt_port_array_iterator_t, ep_char8_t *) -DS_RT_DECLARE_ARRAY_ITERATOR (port_config_array, ds_rt_port_config_array_t, ds_rt_port_array_iterator_t, ep_char8_t *) +DS_RT_DECLARE_ARRAY (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_iterator_t, ep_char8_t *) +DS_RT_DECLARE_ARRAY_ITERATOR (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_iterator_t, ep_char8_t *) +DS_RT_DECLARE_ARRAY_REVERSE_ITERATOR (port_config_array, ds_rt_port_config_array_t, ds_rt_port_config_array_reverse_iterator_t, ep_char8_t *) + +/* +* DiagnosticsProfiler. +*/ + +static +uint32_t +ds_rt_profiler_attach (DiagnosticsAttachProfilerCommandPayload *payload); + +/* +* DiagnosticServer. +*/ + +static +void +ds_rt_server_log_pause_message (void); -#include "ds-rt-mono.h" +#include DS_RT_H #endif /* ENABLE_PERFTRACING */ #endif /* __DIAGNOSTICS_RT_H__ */ diff --git a/src/mono/mono/eventpipe/ds-server.c b/src/native/eventpipe/ds-server.c similarity index 74% rename from src/mono/mono/eventpipe/ds-server.c rename to src/native/eventpipe/ds-server.c index 6ed3635c8053..ffc35bbba24e 100644 --- a/src/mono/mono/eventpipe/ds-server.c +++ b/src/native/eventpipe/ds-server.c @@ -2,22 +2,8 @@ #ifdef ENABLE_PERFTRACING #include "ds-rt-config.h" +#if !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) -// Option to include all internal source files into ds-server.c. -#ifdef DS_INCLUDE_SOURCE_FILES -#define DS_FORCE_INCLUDE_SOURCE_FILES -#include "ds-ipc.c" -#ifdef HOST_WIN32 -#include "ds-ipc-win32.c" -#else -#include "ds-ipc-posix.c" -#endif -#include "ds-protocol.c" -#include "ds-eventpipe-protocol.c" -#include "ds-process-protocol.c" -#include "ds-dump-protocol.c" -#include "ds-profiler-protocol.c" -#else #define DS_IMPL_SERVER_GETTER_SETTER #include "ds-server.h" #include "ds-ipc.h" @@ -26,13 +12,7 @@ #include "ds-eventpipe-protocol.h" #include "ds-dump-protocol.h" #include "ds-profiler-protocol.h" -#include "ep-stream.h" -#endif - -#ifdef FEATURE_AUTO_TRACE -// TODO: Implement -#include "ds-autotrace.h" -#endif +#include "ds-rt.h" /* * Globals and volatile access functions. @@ -81,7 +61,7 @@ server_warning_callback ( uint32_t code); static -void +bool server_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream); @@ -111,14 +91,15 @@ server_error_callback_close ( } static -void +bool server_protocol_helper_unknown_command ( DiagnosticsIpcMessage *message, DiagnosticsIpcStream *stream) { - DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_message_header_get_commandset (ds_ipc_message_get_header (&message))); + DS_LOG_WARNING_1 ("Received unknown request type (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (message))); ds_ipc_message_send_error (stream, DS_IPC_E_UNKNOWN_COMMAND); ds_ipc_stream_free (stream); + return true; } static @@ -133,27 +114,24 @@ server_warning_callback ( EP_RT_DEFINE_THREAD_FUNC (server_thread) { - EP_ASSERT (server_volatile_load_shutting_down_state () == true || ds_ipc_stream_factory_has_active_ports () == true); + EP_ASSERT (server_volatile_load_shutting_down_state () || ds_ipc_stream_factory_has_active_ports ()); if (!ds_ipc_stream_factory_has_active_ports ()) { DS_LOG_ERROR_0 ("Diagnostics IPC listener was undefined\n"); return 1; } - ep_rt_thread_setup (true); - while (!server_volatile_load_shutting_down_state ()) { DiagnosticsIpcStream *stream = ds_ipc_stream_factory_get_next_available_stream (server_warning_callback); if (!stream) continue; -#ifdef FEATURE_AUTO_TRACE - // TODO: Implement - auto_trace_signal(); -#endif + ds_rt_auto_trace_signal (); DiagnosticsIpcMessage message; - ds_ipc_message_init (&message); + if (!ds_ipc_message_init (&message)) + continue; + if (!ds_ipc_message_initialize_stream (&message, stream)) { ds_ipc_message_send_error (stream, DS_IPC_E_BAD_ENCODING); ds_ipc_stream_free (stream); @@ -171,7 +149,7 @@ EP_RT_DEFINE_THREAD_FUNC (server_thread) continue; } - DS_LOG_INFO_2 ("DiagnosticServer - received IPC message with command set (%d) and command id (%d)\n", ds_ipc_message_header_get_commandset (ds_ipc_message_get_header (&message)), ds_ipc_header_get_commandid (ds_ipc_message_get_header (&message))); + DS_LOG_INFO_2 ("DiagnosticServer - received IPC message with command set (%d) and command id (%d)\n", ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (&message)), ds_ipc_header_get_commandid (ds_ipc_message_get_header_ref (&message))); switch ((DiagnosticsServerCommandSet)ds_ipc_header_get_commandset (ds_ipc_message_get_header_ref (&message))) { case DS_SERVER_COMMANDSET_EVENTPIPE: @@ -183,11 +161,9 @@ EP_RT_DEFINE_THREAD_FUNC (server_thread) case DS_SERVER_COMMANDSET_PROCESS: ds_process_protocol_helper_handle_ipc_message (&message, stream); break; -#ifdef FEATURE_PROFAPI_ATTACH_DETACH case DS_SERVER_COMMANDSET_PROFILER: ds_profiler_protocol_helper_handle_ipc_message (&message, stream); break; -#endif // FEATURE_PROFAPI_ATTACH_DETACH default: server_protocol_helper_unknown_command (&message, stream); break; @@ -196,8 +172,6 @@ EP_RT_DEFINE_THREAD_FUNC (server_thread) ds_ipc_message_fini (&message); } - ep_rt_thread_teardown (); - return (ep_rt_thread_start_func_return_t)0; } @@ -210,12 +184,13 @@ ds_server_disable (void) bool ds_server_init (void) { - ds_ipc_stream_factory_init (); + if (!ds_ipc_stream_factory_init ()) + return false; if (_server_disabled || !ds_rt_config_value_get_enable ()) return true; - bool success = false; + bool result = false; // Initialize the RuntimeIndentifier before use ds_ipc_advertise_cookie_v1_init (); @@ -225,36 +200,34 @@ ds_server_init (void) if (any_errors) DS_LOG_ERROR_0 ("At least one Diagnostic Port failed to be configured.\n"); - if (ds_ipc_stream_factory_any_suspended_ports ()) + if (ds_ipc_stream_factory_any_suspended_ports ()) { ep_rt_wait_event_alloc (&_server_resume_runtime_startup_event, true, false); + ep_raise_error_if_nok (ep_rt_wait_event_is_valid (&_server_resume_runtime_startup_event)); + } if (ds_ipc_stream_factory_has_active_ports ()) { -#ifdef FEATURE_AUTO_TRACE - // TODO: Implement. - auto_trace_init(); - auto_trace_launch(); -#endif + ds_rt_auto_trace_init (); + ds_rt_auto_trace_launch (); + ep_rt_thread_id_t thread_id = 0; - if (!ep_rt_thread_create ((void *)server_thread, NULL, (void *)&thread_id)) { + if (!ep_rt_thread_create ((void *)server_thread, NULL, EP_THREAD_TYPE_SERVER, (void *)&thread_id)) { // Failed to create IPC thread. ds_ipc_stream_factory_close_ports (NULL); DS_LOG_ERROR_1 ("Failed to create diagnostic server thread (%d).\n", ep_rt_get_last_error ()); ep_raise_error (); } else { -#ifdef FEATURE_AUTO_TRACE - // TODO: Implement. - auto_trace_wait(); -#endif - success = true; + ds_rt_auto_trace_wait (); } } + result = true; + ep_on_exit: - return success; + return result; ep_on_error: - success = false; + EP_ASSERT (!result); ep_exit_error_handler (); } @@ -275,32 +248,17 @@ ds_server_shutdown (void) void ds_server_pause_for_diagnostics_monitor (void) { - ep_char8_t *ports = NULL; - wchar_t *ports_wcs = NULL; - int32_t port_suspended = 0; - if (ds_ipc_stream_factory_any_suspended_ports ()) { EP_ASSERT (ep_rt_wait_event_is_valid (&_server_resume_runtime_startup_event)); DS_LOG_ALWAYS_0 ("The runtime has been configured to pause during startup and is awaiting a Diagnostics IPC ResumeStartup command."); if (ep_rt_wait_event_wait (&_server_resume_runtime_startup_event, 5000, false) != 0) { - ports = ds_rt_config_value_get_ports (); - ports_wcs = ports ? ep_rt_utf8_to_wcs_string (ports, -1) : NULL; - port_suspended = ds_rt_config_value_get_default_port_suspend (); - - printf ("The runtime has been configured to pause during startup and is awaiting a Diagnostics IPC ResumeStartup command from a Diagnostic Port.\n"); - printf ("DOTNET_DiagnosticPorts=\"%ls\"\n", ports_wcs == NULL ? L"" : ports_wcs); - printf("DOTNET_DefaultDiagnosticPortSuspend=%d\n", port_suspended); - fflush (stdout); - + ds_rt_server_log_pause_message (); DS_LOG_ALWAYS_0 ("The runtime has been configured to pause during startup and is awaiting a Diagnostics IPC ResumeStartup command and has waited 5 seconds."); ep_rt_wait_event_wait (&_server_resume_runtime_startup_event, EP_INFINITE_WAIT, false); } } // allow wait failures to fall through and the runtime to continue coming up - - ep_rt_wcs_string_free (ports_wcs); - ep_rt_utf8_string_free (ports); } void @@ -311,7 +269,10 @@ ds_server_resume_runtime_startup (void) ep_rt_wait_event_set (&_server_resume_runtime_startup_event); } +#endif /* !defined(DS_INCLUDE_SOURCE_FILES) || defined(DS_FORCE_INCLUDE_SOURCE_FILES) */ #endif /* ENABLE_PERFTRACING */ +#ifndef DS_INCLUDE_SOURCE_FILES extern const char quiet_linker_empty_file_warning_diagnostics_server; const char quiet_linker_empty_file_warning_diagnostics_server = 0; +#endif diff --git a/src/mono/mono/eventpipe/ds-server.h b/src/native/eventpipe/ds-server.h similarity index 100% rename from src/mono/mono/eventpipe/ds-server.h rename to src/native/eventpipe/ds-server.h diff --git a/src/mono/mono/eventpipe/ds-types.h b/src/native/eventpipe/ds-types.h similarity index 81% rename from src/mono/mono/eventpipe/ds-types.h rename to src/native/eventpipe/ds-types.h index 887cad1a838b..6413fde90248 100644 --- a/src/mono/mono/eventpipe/ds-types.h +++ b/src/native/eventpipe/ds-types.h @@ -5,7 +5,6 @@ #ifdef ENABLE_PERFTRACING #include "ep-types.h" -#include "ds-rt-types.h" #undef DS_IMPL_GETTER_SETTER #ifdef DS_IMPL_IPC_GETTER_SETTER @@ -17,7 +16,10 @@ * Diagnostics Structs. */ +typedef struct _DiagnosticsAttachProfilerCommandPayload DiagnosticsAttachProfilerCommandPayload; typedef struct _DiagnosticsConnectPort DiagnosticsConnectPort; +typedef struct _DiagnosticsEnvironmentInfoPayload DiagnosticsEnvironmentInfoPayload; +typedef struct _DiagnosticsGenerateCoreDumpCommandPayload DiagnosticsGenerateCoreDumpCommandPayload; typedef struct _DiagnosticsIpc DiagnosticsIpc; typedef struct _DiagnosticsIpcHeader DiagnosticsIpcHeader; typedef struct _DiagnosticsIpcMessage DiagnosticsIpcMessage; @@ -32,10 +34,19 @@ typedef struct _EventPipeCollectTracingCommandPayload EventPipeCollectTracingCom typedef struct _EventPipeCollectTracing2CommandPayload EventPipeCollectTracing2CommandPayload; typedef struct _EventPipeStopTracingCommandPayload EventPipeStopTracingCommandPayload; +#include "ds-rt-types.h" + /* * Diagnostics Enums. */ +// The Diagnostic command set is 0x01 +typedef enum { + DS_DUMP_COMMANDID_RESERVED = 0x00, + DS_DUMP_COMMANDID_GENERATE_CORE_DUMP = 0x01, + // future +} DiagnosticsDumpCommandId; + typedef enum { DS_IPC_MAGIC_VERSION_DOTNET_IPC_V1 = 0x01, // FUTURE @@ -59,6 +70,13 @@ typedef enum { // future } DiagnosticsProcessCommandId; +// The Diagnostic command set is 0x01 +typedef enum { + DS_PROFILER_COMMANDID_RESERVED = 0x00, + DS_PROFILER_COMMANDID_ATTACH_PROFILER = 0x01, + // future +} DiagnosticsProfilerCommandId; + // Overlaps with DiagnosticsServerCommandId // DON'T create overlapping values typedef enum { @@ -113,12 +131,17 @@ typedef enum { #define DS_VAL64(x) x #endif // BIGENDIAN -#define DS_IPC_S_OK ((uint32_t)(0L)) -#define DS_IPC_E_BAD_ENCODING ((uint32_t)(0x80131384L)) -#define DS_IPC_E_UNKNOWN_COMMAND ((uint32_t)(0x80131385L)) -#define DS_IPC_E_UNKNOWN_MAGIC ((uint32_t)(0x80131386L)) -#define DS_IPC_E_NOTSUPPORTED ((uint32_t)(0x80131515L)) -#define DS_IPC_E_FAIL ((uint32_t)(0x80004005L)) +typedef int32_t ds_ipc_result_t; + +#define DS_IPC_S_OK ((ds_ipc_result_t)(0L)) +#define DS_IPC_E_BAD_ENCODING ((ds_ipc_result_t)(0x80131384L)) +#define DS_IPC_E_UNKNOWN_COMMAND ((ds_ipc_result_t)(0x80131385L)) +#define DS_IPC_E_UNKNOWN_MAGIC ((ds_ipc_result_t)(0x80131386L)) +#define DS_IPC_E_NOTSUPPORTED ((ds_ipc_result_t)(0x80131515L)) +#define DS_IPC_E_FAIL ((ds_ipc_result_t)(0x80004005L)) +#define DS_IPC_E_NOT_YET_AVAILABLE ((ds_ipc_result_t)(0x8013135bL)) +#define DS_IPC_E_RUNTIME_UNINITIALIZED ((ds_ipc_result_t)(0x80131371L)) +#define DS_IPC_E_INVALIDARG ((ds_ipc_result_t)(0x80070057L)) // Polling timeout semantics // If client connection is opted in diff --git a/src/native/eventpipe/ds.c b/src/native/eventpipe/ds.c new file mode 100644 index 000000000000..6c8d4cc6f2a1 --- /dev/null +++ b/src/native/eventpipe/ds.c @@ -0,0 +1,26 @@ +#include + +#ifdef ENABLE_PERFTRACING +#include "ds-rt-config.h" + +// Option to include all internal source files into ds.c. +#ifdef DS_INCLUDE_SOURCE_FILES +#define DS_FORCE_INCLUDE_SOURCE_FILES +#include "ds-server.c" +#include "ds-eventpipe-protocol.c" +#include "ds-dump-protocol.c" +#include "ds-ipc.c" +#ifdef HOST_WIN32 +#include "ds-ipc-win32.c" +#else +#include "ds-ipc-posix.c" +#endif +#include "ds-process-protocol.c" +#include "ds-profiler-protocol.c" +#include "ds-protocol.c" +#endif + +#endif /* ENABLE_PERFTRACING */ + +extern const char quiet_linker_empty_file_warning_diagnostics; +const char quiet_linker_empty_file_warning_diagnostics = 0; diff --git a/src/mono/mono/eventpipe/ep-block.c b/src/native/eventpipe/ep-block.c similarity index 97% rename from src/mono/mono/eventpipe/ep-block.c rename to src/native/eventpipe/ep-block.c index 50f23c60e76c..1b1869afa626 100644 --- a/src/mono/mono/eventpipe/ep-block.c +++ b/src/native/eventpipe/ep-block.c @@ -131,7 +131,7 @@ stack_block_serialize_header_func (void *object, FastSerializer *fast_serializer */ static -int32_t +uint32_t block_get_block_version (EventPipeSerializationFormat format) { switch (format) { @@ -146,7 +146,7 @@ block_get_block_version (EventPipeSerializationFormat format) } static -int32_t +uint32_t block_get_block_minimum_version (EventPipeSerializationFormat format) { switch (format) { @@ -514,7 +514,7 @@ ep_event_block_base_write_event ( EventPipeEventInstance *event_instance, uint64_t capture_thread_id, uint32_t sequence_number, - int32_t stack_id, + uint32_t stack_id, bool is_sorted_event) { bool result = true; @@ -548,7 +548,7 @@ ep_event_block_base_write_event ( write_pointer += sizeof (metadata_id); if (block->format == EP_SERIALIZATION_FORMAT_NETPERF_V3) { - int32_t thread_id = (int32_t)ep_event_instance_get_thread_id (event_instance); + uint32_t thread_id = (uint32_t)ep_event_instance_get_thread_id (event_instance); memcpy (write_pointer, &thread_id, sizeof (thread_id)); write_pointer += sizeof (thread_id); } else if (block->format == EP_SERIALIZATION_FORMAT_NETTRACE_V4) { @@ -601,7 +601,7 @@ ep_event_block_base_write_event ( if (last_header->sequence_number + (ep_event_instance_get_metadata_id (event_instance) != 0 ? 1 : 0) != sequence_number || last_header->capture_thread_id != capture_thread_id || last_header->capture_proc_number != capture_proc_number) { header_write_pointer = event_block_base_write_var_uint32 (header_write_pointer, sequence_number - last_header->sequence_number - 1); - header_write_pointer = event_block_base_write_var_uint32 (header_write_pointer, (uint32_t)capture_thread_id); + header_write_pointer = event_block_base_write_var_uint64 (header_write_pointer, capture_thread_id); header_write_pointer = event_block_base_write_var_uint32 (header_write_pointer, capture_proc_number); flags |= (1 << 1); } @@ -677,7 +677,7 @@ ep_event_block_base_write_event ( write_pointer += sizeof (stack_size); if (stack_size > 0) { - memcpy (write_pointer, ep_event_instance_get_stack_contents_ref (event_instance), stack_size); + memcpy (write_pointer, ep_stack_contents_get_pointer (ep_event_instance_get_stack_contents_ref (event_instance)), stack_size); write_pointer += stack_size; } } @@ -696,7 +696,7 @@ ep_event_block_base_write_event ( block->write_pointer = write_pointer; - EP_ASSERT (result == true); + EP_ASSERT (result); ep_on_exit: return result; @@ -917,10 +917,9 @@ ep_sequence_point_block_init ( memcpy (sequence_point_block->block.write_pointer, &thread_count, sizeof (thread_count)); sequence_point_block->block.write_pointer += sizeof (thread_count); - ep_rt_thread_sequence_number_hash_map_iterator_t iterator; - for (ep_rt_thread_sequence_number_map_iterator_begin (ep_sequence_point_get_thread_sequence_numbers_cref (sequence_point), &iterator); + for (ep_rt_thread_sequence_number_hash_map_iterator_t iterator = ep_rt_thread_sequence_number_map_iterator_begin (ep_sequence_point_get_thread_sequence_numbers_cref (sequence_point)); !ep_rt_thread_sequence_number_map_iterator_end (ep_sequence_point_get_thread_sequence_numbers_cref (sequence_point), &iterator); - ep_rt_thread_sequence_number_map_iterator_next (ep_sequence_point_get_thread_sequence_numbers_cref (sequence_point), &iterator)) { + ep_rt_thread_sequence_number_map_iterator_next (&iterator)) { const EventPipeThreadSessionState *key = ep_rt_thread_sequence_number_map_iterator_key (&iterator); @@ -992,7 +991,7 @@ stack_block_get_header_size_func (void *object) { EP_ASSERT (object != NULL); return sizeof (uint32_t) + // start index - sizeof (uint32_t); // count of indices + sizeof (uint32_t); // count of indices } static @@ -1053,7 +1052,7 @@ ep_stack_block_free (EventPipeStackBlock *stack_block) bool ep_stack_block_write_stack ( EventPipeStackBlock *stack_block, - int32_t stack_id, + uint32_t stack_id, EventPipeStackContents *stack) { bool result = true; @@ -1084,7 +1083,7 @@ ep_stack_block_write_stack ( block->write_pointer = write_pointer; - EP_ASSERT (result == true); + EP_ASSERT (result); ep_on_exit: return result; diff --git a/src/mono/mono/eventpipe/ep-block.h b/src/native/eventpipe/ep-block.h similarity index 98% rename from src/mono/mono/eventpipe/ep-block.h rename to src/native/eventpipe/ep-block.h index 59d9f3f1e9a4..1f36a8e093d4 100644 --- a/src/mono/mono/eventpipe/ep-block.h +++ b/src/native/eventpipe/ep-block.h @@ -119,11 +119,11 @@ struct _EventPipeEventHeader { ep_timestamp_t timestamp; uint64_t thread_id; uint64_t capture_thread_id; - int32_t metadata_id; - int32_t sequence_number; - int32_t capture_proc_number; - int32_t stack_id; - int32_t data_len; + uint32_t metadata_id; + uint32_t sequence_number; + uint32_t capture_proc_number; + uint32_t stack_id; + uint32_t data_len; }; /* @@ -187,7 +187,7 @@ ep_event_block_base_write_event ( EventPipeEventInstance *event_instance, uint64_t capture_thread_id, uint32_t sequence_number, - int32_t stack_id, + uint32_t stack_id, bool is_sorted_event); /* @@ -350,7 +350,7 @@ ep_stack_block_free (EventPipeStackBlock *stack_block); bool ep_stack_block_write_stack ( EventPipeStackBlock *stack_block, - int32_t stack_id, + uint32_t stack_id, EventPipeStackContents *stack); static diff --git a/src/mono/mono/eventpipe/ep-buffer-manager.c b/src/native/eventpipe/ep-buffer-manager.c similarity index 92% rename from src/mono/mono/eventpipe/ep-buffer-manager.c rename to src/native/eventpipe/ep-buffer-manager.c index 720d58a4bb3b..b767f9b668da 100644 --- a/src/mono/mono/eventpipe/ep-buffer-manager.c +++ b/src/native/eventpipe/ep-buffer-manager.c @@ -29,7 +29,7 @@ buffer_list_fini (EventPipeBufferList *buffer_list); // _Requires_lock_held (buffer_manager) static -void +bool buffer_manager_enqueue_sequence_point ( EventPipeBufferManager *buffer_manager, EventPipeSequencePoint *sequence_point); @@ -188,7 +188,7 @@ ep_buffer_list_insert_tail ( ep_return_void_if_nok (buffer_list != NULL); EP_ASSERT (buffer != NULL); - EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list) == true); + EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list)); // Ensure that the input buffer didn't come from another list that was improperly cleaned up. EP_ASSERT ((ep_buffer_get_next_buffer (buffer) == NULL) && (ep_buffer_get_prev_buffer (buffer) == NULL)); @@ -207,7 +207,7 @@ ep_buffer_list_insert_tail ( buffer_list->buffer_count++; - EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list) == true); + EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list)); } EventPipeBuffer * @@ -215,7 +215,7 @@ ep_buffer_list_get_and_remove_head (EventPipeBufferList *buffer_list) { ep_return_null_if_nok (buffer_list != NULL); - EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list) == true); + EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list)); EventPipeBuffer *ret_buffer = NULL; if (buffer_list->head_buffer != NULL) @@ -244,7 +244,7 @@ ep_buffer_list_get_and_remove_head (EventPipeBufferList *buffer_list) buffer_list->buffer_count--; } - EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list) == true); + EP_ASSERT (ep_buffer_list_ensure_consistency (buffer_list)); return ret_buffer; } @@ -313,7 +313,7 @@ ep_buffer_list_ensure_consistency (EventPipeBufferList *buffer_list) */ static -void +bool buffer_manager_enqueue_sequence_point ( EventPipeBufferManager *buffer_manager, EventPipeSequencePoint *sequence_point) @@ -323,7 +323,7 @@ buffer_manager_enqueue_sequence_point ( ep_buffer_manager_requires_lock_held (buffer_manager); - ep_rt_sequence_point_list_append (&buffer_manager->sequence_points, sequence_point); + return ep_rt_sequence_point_list_append (&buffer_manager->sequence_points, sequence_point); } static @@ -337,8 +337,7 @@ buffer_manager_init_sequence_point_thread_list ( ep_buffer_manager_requires_lock_held (buffer_manager); - ep_rt_thread_session_state_list_iterator_t iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &iterator); + ep_rt_thread_session_state_list_iterator_t iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &iterator)) { EventPipeThreadSessionState *thread_session_state = ep_rt_thread_session_state_list_iterator_value (&iterator); @@ -356,7 +355,7 @@ buffer_manager_init_sequence_point_thread_list ( ep_rt_thread_sequence_number_map_add (ep_sequence_point_get_thread_sequence_numbers_ref (sequence_point), thread_session_state, sequence_number); ep_thread_addref (ep_thread_holder_get_thread (ep_thread_session_state_get_thread_holder_ref (thread_session_state))); - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &iterator); + ep_rt_thread_session_state_list_iterator_next (&iterator); } // This needs to come after querying the thread sequence numbers to ensure that any recorded @@ -375,8 +374,7 @@ buffer_manager_dequeue_sequence_point (EventPipeBufferManager *buffer_manager) ep_return_void_if_nok (!ep_rt_sequence_point_list_is_empty (&buffer_manager->sequence_points)); - ep_rt_sequence_point_list_iterator_t iterator; - ep_rt_sequence_point_list_iterator_begin (&buffer_manager->sequence_points, &iterator); + ep_rt_sequence_point_list_iterator_t iterator = ep_rt_sequence_point_list_iterator_begin (&buffer_manager->sequence_points); EventPipeSequencePoint *value = ep_rt_sequence_point_list_iterator_value (&iterator); ep_rt_sequence_point_list_remove (&buffer_manager->sequence_points, value); @@ -397,8 +395,7 @@ buffer_manager_try_peek_sequence_point ( ep_return_false_if_nok (!ep_rt_sequence_point_list_is_empty (&buffer_manager->sequence_points)); - ep_rt_sequence_point_list_iterator_t iterator; - ep_rt_sequence_point_list_iterator_begin (&buffer_manager->sequence_points, &iterator); + ep_rt_sequence_point_list_iterator_t iterator = ep_rt_sequence_point_list_iterator_begin (&buffer_manager->sequence_points); *sequence_point = ep_rt_sequence_point_list_iterator_value (&iterator); return *sequence_point != NULL; @@ -428,7 +425,7 @@ buffer_manager_allocate_buffer_for_thread ( thread_buffer_list = ep_buffer_list_alloc (buffer_manager, ep_thread_session_state_get_thread (thread_session_state)); ep_raise_error_if_nok_holding_spin_lock (thread_buffer_list != NULL, section1); - ep_rt_thread_session_state_list_append (&buffer_manager->thread_session_state_list, thread_session_state); + ep_raise_error_if_nok_holding_spin_lock (ep_rt_thread_session_state_list_append (&buffer_manager->thread_session_state_list, thread_session_state), section1); ep_thread_session_state_set_buffer_list (thread_session_state, thread_buffer_list); thread_buffer_list = NULL; } @@ -477,7 +474,7 @@ buffer_manager_allocate_buffer_for_thread ( sequence_point = ep_sequence_point_alloc (); if (sequence_point) { buffer_manager_init_sequence_point_thread_list (buffer_manager, sequence_point); - buffer_manager_enqueue_sequence_point (buffer_manager, sequence_point); + ep_raise_error_if_nok_holding_spin_lock (buffer_manager_enqueue_sequence_point (buffer_manager, sequence_point), section1); sequence_point = NULL; } buffer_manager->remaining_sequence_point_alloc_budget = buffer_manager->sequence_point_alloc_budget; @@ -491,9 +488,8 @@ buffer_manager_allocate_buffer_for_thread ( } // Set the buffer on the thread. - if (new_buffer != NULL) { + if (new_buffer != NULL) ep_buffer_list_insert_tail (ep_thread_session_state_get_buffer_list (thread_session_state), new_buffer); - } EP_SPIN_LOCK_EXIT (&buffer_manager->rt_lock, section1) @@ -562,8 +558,7 @@ buffer_manager_move_next_event_any_thread ( EP_SPIN_LOCK_ENTER (&buffer_manager->rt_lock, section1) EventPipeBufferList *buffer_list; EventPipeBuffer *buffer; - ep_rt_thread_session_state_list_iterator_t iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &iterator); + ep_rt_thread_session_state_list_iterator_t iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &iterator)) { buffer_list = ep_thread_session_state_get_buffer_list (ep_rt_thread_session_state_list_iterator_value (&iterator)); buffer = buffer_list->head_buffer; @@ -571,7 +566,7 @@ buffer_manager_move_next_event_any_thread ( ep_rt_buffer_list_array_append (&buffer_list_array, buffer_list); ep_rt_buffer_array_append (&buffer_array, buffer); } - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &iterator); + ep_rt_thread_session_state_list_iterator_next (&iterator); } EP_SPIN_LOCK_EXIT (&buffer_manager->rt_lock, section1) @@ -586,11 +581,8 @@ buffer_manager_move_next_event_any_thread ( EventPipeBuffer *buffer; EventPipeEventInstance *next_event; - ep_rt_buffer_list_array_iterator_t buffer_list_array_iterator; - ep_rt_buffer_array_iterator_t buffer_array_iterator; - - ep_rt_buffer_array_iterator_begin (&buffer_list_array, &buffer_list_array_iterator); - ep_rt_buffer_array_iterator_begin (&buffer_array, &buffer_array_iterator); + ep_rt_buffer_list_array_iterator_t buffer_list_array_iterator = ep_rt_buffer_list_array_iterator_begin (&buffer_list_array); + ep_rt_buffer_array_iterator_t buffer_array_iterator = ep_rt_buffer_array_iterator_begin (&buffer_array); while (!ep_rt_buffer_array_iterator_end (&buffer_array, &buffer_array_iterator) && !ep_rt_buffer_list_array_iterator_end (&buffer_list_array, &buffer_list_array_iterator)) { buffer_list = ep_rt_buffer_list_array_iterator_value (&buffer_list_array_iterator); @@ -608,8 +600,8 @@ buffer_manager_move_next_event_any_thread ( } } - ep_rt_buffer_list_array_iterator_next (&buffer_list_array, &buffer_list_array_iterator); - ep_rt_buffer_array_iterator_next (&buffer_array, &buffer_array_iterator); + ep_rt_buffer_list_array_iterator_next (&buffer_list_array_iterator); + ep_rt_buffer_array_iterator_next (&buffer_array_iterator); } ep_on_exit: @@ -755,7 +747,7 @@ buffer_manager_try_convert_buffer_to_read_only ( // It is possible that EventPipeBufferList returns a writable buffer // yet it is not returned as ep_thread_get_write_buffer (). This is because - // ep_buffer_manage_allocate_buffer_for_thread () insert the new writable buffer into + // ep_buffer_manager_allocate_buffer_for_thread () insert the new writable buffer into // the EventPipeBufferList first, and then it is added to the writable buffer hash table // by ep_thread_set_write_buffer () next. The two operations are not atomic so it is possible // to observe this partial state. @@ -767,7 +759,7 @@ buffer_manager_try_convert_buffer_to_read_only ( return result; ep_on_error: - EP_ASSERT (result == false); + EP_ASSERT (!result); ep_exit_error_handler (); } @@ -780,12 +772,17 @@ ep_buffer_manager_alloc ( EventPipeBufferManager *instance = ep_rt_object_alloc (EventPipeBufferManager); ep_raise_error_if_nok (instance != NULL); - memset (&instance->thread_session_state_list, 0, sizeof (instance->thread_session_state_list)); - memset (&instance->sequence_points, 0, sizeof (instance->sequence_points)); + ep_rt_thread_session_state_list_alloc (&instance->thread_session_state_list); + ep_raise_error_if_nok (ep_rt_thread_session_state_list_is_valid (&instance->thread_session_state_list)); + + ep_rt_sequence_point_list_alloc (&instance->sequence_points); + ep_raise_error_if_nok (ep_rt_sequence_point_list_is_valid (&instance->sequence_points)); ep_rt_spin_lock_alloc (&instance->rt_lock); + ep_raise_error_if_nok (ep_rt_spin_lock_is_valid (&instance->rt_lock)); ep_rt_wait_event_alloc (&instance->rt_wait_event, false, true); + ep_raise_error_if_nok (ep_rt_wait_event_is_valid (&instance->rt_wait_event)); instance->session = session; instance->size_of_all_buffers = 0; @@ -876,13 +873,13 @@ ep_buffer_manager_init_sequence_point_thread_list ( bool ep_buffer_manager_write_event ( EventPipeBufferManager *buffer_manager, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeSession *session, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack) { bool result = false; @@ -894,10 +891,10 @@ ep_buffer_manager_write_event ( EP_ASSERT (ep_event != NULL); // The input thread must match the current thread because no lock is taken on the buffer. - EP_ASSERT (thread == ep_thread_get ()); + EP_ASSERT (thread == ep_rt_thread_get_handle ()); // Before we pick a buffer, make sure the event is enabled. - ep_return_false_if_nok (ep_event_is_enabled (ep_event) == true); + ep_return_false_if_nok (ep_event_is_enabled (ep_event)); // Check to see an event thread was specified. If not, then use the current thread. if (event_thread == NULL) @@ -948,7 +945,7 @@ ep_buffer_manager_write_event ( if (!buffer) { // We treat this as the write_event call occurring after this session stopped listening for events, effectively the // same as if ep_event_is_enabled test above returned false. - ep_raise_error_if_nok (write_suspended == false); + ep_raise_error_if_nok (!write_suspended); // This lock looks unnecessary for the sequence number, but didn't want to // do a broader refactoring to take it out. If it shows up as a perf @@ -1007,14 +1004,13 @@ ep_buffer_manager_suspend_write_event ( ep_rt_thread_array_t thread_array; ep_rt_thread_array_alloc (&thread_array); EP_SPIN_LOCK_ENTER (&buffer_manager->rt_lock, section1); - EP_ASSERT (ep_buffer_manager_ensure_consistency (buffer_manager) == true); + EP_ASSERT (ep_buffer_manager_ensure_consistency (buffer_manager)); // Find all threads that have used this buffer manager. - ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator)) { EventPipeThread *thread = ep_thread_session_state_get_thread (ep_rt_thread_session_state_list_iterator_value (&thread_session_state_list_iterator)); ep_rt_thread_array_append (&thread_array, thread); - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_next (&thread_session_state_list_iterator); // Once EventPipeSession::SuspendWriteEvent completes, we shouldn't have any // in progress writes left. @@ -1024,15 +1020,14 @@ ep_buffer_manager_suspend_write_event ( // Iterate through all the threads, forcing them to relinquish any buffers stored in // EventPipeThread's write buffer and prevent storing new ones. - ep_rt_thread_array_iterator_t thread_array_iterator; - ep_rt_thread_array_iterator_begin (&thread_array, &thread_array_iterator); + ep_rt_thread_array_iterator_t thread_array_iterator = ep_rt_thread_array_iterator_begin (&thread_array); while (!ep_rt_thread_array_iterator_end (&thread_array, &thread_array_iterator)) { EventPipeThread *thread = ep_rt_thread_array_iterator_value (&thread_array_iterator); EP_SPIN_LOCK_ENTER (ep_thread_get_rt_lock_ref (thread), section2) EventPipeThreadSessionState *thread_session_state = ep_thread_get_session_state (thread, buffer_manager->session); ep_thread_session_state_set_write_buffer (thread_session_state, NULL); EP_SPIN_LOCK_EXIT (ep_thread_get_rt_lock_ref (thread), section2) - ep_rt_thread_array_iterator_next (&thread_array, &thread_array_iterator); + ep_rt_thread_array_iterator_next (&thread_array_iterator); } ep_on_exit: @@ -1202,8 +1197,7 @@ ep_buffer_manager_write_all_buffers_to_file_v4 ( // the sequence point captured a lower bound for sequence number on each thread, but iterating // through the events we may have observed that a higher numbered event was recorded. If so we // should adjust the sequence numbers upwards to ensure the data in the stream is consistent. - ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); EP_SPIN_LOCK_ENTER (&buffer_manager->rt_lock, section2) while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator)) { EventPipeThreadSessionState * session_state = ep_rt_thread_session_state_list_iterator_value (&thread_session_state_list_iterator); @@ -1216,7 +1210,7 @@ ep_buffer_manager_write_all_buffers_to_file_v4 ( uint32_t last_read_delta = last_read_sequence_number - thread_sequence_number; if (0 < last_read_delta && last_read_delta < 0x80000000) ep_rt_thread_sequence_number_map_add (ep_sequence_point_get_thread_sequence_numbers_ref (sequence_point), session_state, last_read_sequence_number); - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_next (&thread_session_state_list_iterator); } EP_SPIN_LOCK_EXIT (&buffer_manager->rt_lock, section2) @@ -1273,8 +1267,7 @@ ep_buffer_manager_deallocate_buffers (EventPipeBufferManager *buffer_manager) EP_SPIN_LOCK_ENTER (&buffer_manager->rt_lock, section1) EP_ASSERT (ep_buffer_manager_ensure_consistency (buffer_manager)); - ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_t thread_session_state_list_iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator)) { // Get the list and determine if we can free it. EventPipeThreadSessionState *thread_session_state = ep_rt_thread_session_state_list_iterator_value (&thread_session_state_list_iterator); @@ -1295,7 +1288,7 @@ ep_buffer_manager_deallocate_buffers (EventPipeBufferManager *buffer_manager) // And finally queue the removal of the SessionState from the thread ep_rt_thread_session_state_array_append (&thread_session_states_to_remove, thread_session_state); - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &thread_session_state_list_iterator); + ep_rt_thread_session_state_list_iterator_next (&thread_session_state_list_iterator); } // Clear thread session state list. @@ -1304,9 +1297,7 @@ ep_buffer_manager_deallocate_buffers (EventPipeBufferManager *buffer_manager) EP_SPIN_LOCK_EXIT (&buffer_manager->rt_lock, section1) // remove and delete the session state - ep_rt_thread_session_state_array_iterator_t thread_session_states_to_remove_iterator; - - ep_rt_thread_session_state_array_iterator_begin (&thread_session_states_to_remove, &thread_session_states_to_remove_iterator); + ep_rt_thread_session_state_array_iterator_t thread_session_states_to_remove_iterator = ep_rt_thread_session_state_array_iterator_begin (&thread_session_states_to_remove); while (!ep_rt_thread_session_state_array_iterator_end (&thread_session_states_to_remove, &thread_session_states_to_remove_iterator)) { EventPipeThreadSessionState *thread_session_state = ep_rt_thread_session_state_array_iterator_value (&thread_session_states_to_remove_iterator); @@ -1322,7 +1313,7 @@ ep_buffer_manager_deallocate_buffers (EventPipeBufferManager *buffer_manager) ep_thread_holder_fini (&thread_holder); } - ep_rt_thread_session_state_array_iterator_next (&thread_session_states_to_remove, &thread_session_states_to_remove_iterator); + ep_rt_thread_session_state_array_iterator_next (&thread_session_states_to_remove_iterator); } ep_on_exit: @@ -1339,12 +1330,11 @@ ep_buffer_manager_ensure_consistency (EventPipeBufferManager *buffer_manager) { EP_ASSERT (buffer_manager != NULL); - ep_rt_thread_session_state_list_iterator_t iterator; - ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list, &iterator); + ep_rt_thread_session_state_list_iterator_t iterator = ep_rt_thread_session_state_list_iterator_begin (&buffer_manager->thread_session_state_list); while (!ep_rt_thread_session_state_list_iterator_end (&buffer_manager->thread_session_state_list, &iterator)) { EventPipeThreadSessionState *thread_session_state = ep_rt_thread_session_state_list_iterator_value (&iterator); - EP_ASSERT (ep_buffer_list_ensure_consistency (ep_thread_session_state_get_buffer_list (thread_session_state)) == true); - ep_rt_thread_session_state_list_iterator_next (&buffer_manager->thread_session_state_list, &iterator); + EP_ASSERT (ep_buffer_list_ensure_consistency (ep_thread_session_state_get_buffer_list (thread_session_state))); + ep_rt_thread_session_state_list_iterator_next (&iterator); } return true; diff --git a/src/mono/mono/eventpipe/ep-buffer-manager.h b/src/native/eventpipe/ep-buffer-manager.h similarity index 99% rename from src/mono/mono/eventpipe/ep-buffer-manager.h rename to src/native/eventpipe/ep-buffer-manager.h index 3674cb437dda..c6e8ec60c0ee 100644 --- a/src/mono/mono/eventpipe/ep-buffer-manager.h +++ b/src/native/eventpipe/ep-buffer-manager.h @@ -178,13 +178,13 @@ ep_buffer_manager_init_sequence_point_thread_list ( bool ep_buffer_manager_write_event ( EventPipeBufferManager *buffer_manager, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeSession *session, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack); // READ_ONLY state and no new EventPipeBuffers or EventPipeBufferLists can be created. Calls to diff --git a/src/mono/mono/eventpipe/ep-buffer.c b/src/native/eventpipe/ep-buffer.c similarity index 98% rename from src/mono/mono/eventpipe/ep-buffer.c rename to src/native/eventpipe/ep-buffer.c index 879785d5f2c3..1bf06c81aa4f 100644 --- a/src/mono/mono/eventpipe/ep-buffer.c +++ b/src/native/eventpipe/ep-buffer.c @@ -67,7 +67,7 @@ ep_buffer_free (EventPipeBuffer *buffer) bool ep_buffer_write_event ( EventPipeBuffer *buffer, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeSession *session, EventPipeEvent *ep_event, EventPipeEventPayload *payload, @@ -110,7 +110,7 @@ ep_buffer_write_event ( (EventPipeEventInstance *)buffer->current, ep_event, proc_number, - (thread == NULL) ? ep_rt_current_thread_get_id () : ep_thread_get_os_thread_id (thread), + (thread == NULL) ? ep_rt_current_thread_get_id () : ep_rt_thread_get_id (thread), data_dest, ep_event_payload_get_size (payload), (thread == NULL) ? NULL : activity_id, @@ -125,7 +125,7 @@ ep_buffer_write_event ( if (ep_event_payload_get_size (payload) > 0) ep_event_payload_copy_data (payload, data_dest); - EP_ASSERT (success == true); + EP_ASSERT (success); // Advance the current pointer past the event. buffer->current = ep_buffer_get_next_aligned_address (buffer, buffer->current + event_size); diff --git a/src/mono/mono/eventpipe/ep-buffer.h b/src/native/eventpipe/ep-buffer.h similarity index 99% rename from src/mono/mono/eventpipe/ep-buffer.h rename to src/native/eventpipe/ep-buffer.h index 3aa4f635a8f1..e4f5a6e3e546 100644 --- a/src/mono/mono/eventpipe/ep-buffer.h +++ b/src/native/eventpipe/ep-buffer.h @@ -119,7 +119,7 @@ ep_buffer_get_next_aligned_address (const EventPipeBuffer *buffer, uint8_t *addr bool ep_buffer_write_event ( EventPipeBuffer *buffer, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeSession *session, EventPipeEvent *ep_event, EventPipeEventPayload *payload, diff --git a/src/mono/mono/eventpipe/ep-config-internals.h b/src/native/eventpipe/ep-config-internals.h similarity index 100% rename from src/mono/mono/eventpipe/ep-config-internals.h rename to src/native/eventpipe/ep-config-internals.h diff --git a/src/mono/mono/eventpipe/ep-config.c b/src/native/eventpipe/ep-config.c similarity index 90% rename from src/mono/mono/eventpipe/ep-config.c rename to src/native/eventpipe/ep-config.c index d912b0fabdf0..d840959ffcaa 100644 --- a/src/mono/mono/eventpipe/ep-config.c +++ b/src/native/eventpipe/ep-config.c @@ -63,7 +63,7 @@ config_compute_keyword_and_level ( ep_requires_lock_held (); *keyword_for_all_sessions = 0; - *level_for_all_sessions = EP_EVENT_LEVEL_LOG_ALWAYS; + *level_for_all_sessions = EP_EVENT_LEVEL_LOGALWAYS; for (int i = 0; i < EP_MAX_NUMBER_OF_SESSIONS; i++) { // Entering EventPipe lock gave us a barrier, we don't need more of them. @@ -102,7 +102,8 @@ config_register_provider ( return false; // The provider has not been registered, so register it. - ep_rt_provider_list_append (&config->provider_list, provider); + if (!ep_rt_provider_list_append (&config->provider_list, provider)) + return false; int64_t keyword_for_all_sessions; EventPipeEventLevel level_for_all_sessions; @@ -168,22 +169,38 @@ ep_config_init (EventPipeConfiguration *config) ep_requires_lock_not_held (); - config->config_provider = ep_create_provider (ep_config_get_default_provider_name_utf8 (), NULL, NULL, NULL); + EventPipeProviderCallbackDataQueue callback_data_queue; + EventPipeProviderCallbackData provider_callback_data; + EventPipeProviderCallbackDataQueue *provider_callback_data_queue = ep_provider_callback_data_queue_init (&callback_data_queue); + + ep_rt_provider_list_alloc (&config->provider_list); + ep_raise_error_if_nok (ep_rt_provider_list_is_valid (&config->provider_list)); + + EP_LOCK_ENTER (section1) + config->config_provider = provider_create (ep_config_get_default_provider_name_utf8 (), NULL, NULL, NULL, provider_callback_data_queue); + EP_LOCK_EXIT (section1) + ep_raise_error_if_nok (config->config_provider != NULL); + while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) { + ep_rt_prepare_provider_invoke_callback (&provider_callback_data); + provider_invoke_callback (&provider_callback_data); + } + // Create the metadata event. config->metadata_event = ep_provider_add_event ( config->config_provider, 0, /* event_id */ 0, /* keywords */ 0, /* event_version */ - EP_EVENT_LEVEL_LOG_ALWAYS, + EP_EVENT_LEVEL_LOGALWAYS, false, /* need_stack */ NULL, /* meatadata */ 0); /* metadata_len */ ep_raise_error_if_nok (config->metadata_event != NULL); ep_on_exit: + ep_provider_callback_data_queue_fini (provider_callback_data_queue); ep_requires_lock_not_held (); return config; @@ -342,7 +359,7 @@ ep_config_build_event_metadata_event ( const ep_char16_t *provider_name_utf16 = ep_provider_get_provider_name_utf16 (provider); const uint8_t *payload_data = ep_event_get_metadata (source_event); uint32_t payload_data_len = ep_event_get_metadata_len (source_event); - uint32_t provider_name_len = (ep_rt_utf16_string_len (provider_name_utf16) + 1) * sizeof (ep_char16_t); + uint32_t provider_name_len = (uint32_t)((ep_rt_utf16_string_len (provider_name_utf16) + 1) * sizeof (ep_char16_t)); uint32_t instance_payload_size = sizeof (metadata_id) + provider_name_len + payload_data_len; // Allocate the payload. @@ -375,7 +392,7 @@ ep_config_build_event_metadata_event ( ep_raise_error_if_nok (instance != NULL); instance_payload = NULL; - EP_ASSERT (ep_event_get_need_stack (config->metadata_event) == false); + EP_ASSERT (!ep_event_get_need_stack (config->metadata_event)); // Set the timestamp to match the source event, because the metadata event // will be emitted right before the source event. @@ -437,7 +454,7 @@ config_get_provider ( ep_requires_lock_held (); // The provider list should be non-NULL, but can be NULL on shutdown. - ep_return_null_if_nok (ep_rt_provider_list_is_empty (&config->provider_list) != true); + ep_return_null_if_nok (!ep_rt_provider_list_is_empty (&config->provider_list)); EventPipeProvider *provider = ep_rt_provider_list_find_by_name (&config->provider_list, name); ep_requires_lock_held (); @@ -460,7 +477,8 @@ config_create_provider ( EventPipeProvider *provider = ep_provider_alloc (config, provider_name, callback_func, callback_data_free_func, callback_data); ep_raise_error_if_nok (provider != NULL); - ep_raise_error_if_nok (config_register_provider (config, provider, provider_callback_data_queue) == true); + + config_register_provider (config, provider, provider_callback_data_queue); ep_on_exit: ep_requires_lock_held (); @@ -478,11 +496,12 @@ config_delete_provider ( EventPipeProvider *provider) { EP_ASSERT (config != NULL); + EP_ASSERT (provider != NULL); ep_requires_lock_held (); config_unregister_provider (config, provider); - ep_provider_free (provider); + provider_free (provider); ep_requires_lock_held (); return; @@ -498,15 +517,14 @@ config_delete_deferred_providers (EventPipeConfiguration *config) // The provider list should be non-NULL, but can be NULL on shutdown. const ep_rt_provider_list_t *provider_list = &config->provider_list; if (!ep_rt_provider_list_is_empty (provider_list)) { - ep_rt_provider_list_iterator_t iterator; - ep_rt_provider_list_iterator_begin (provider_list, &iterator); + ep_rt_provider_list_iterator_t iterator = ep_rt_provider_list_iterator_begin (provider_list); while (!ep_rt_provider_list_iterator_end (provider_list, &iterator)) { EventPipeProvider *provider = ep_rt_provider_list_iterator_value (&iterator); EP_ASSERT (provider != NULL); // Get next item before deleting current. - ep_rt_provider_list_iterator_next (provider_list, &iterator); + ep_rt_provider_list_iterator_next (&iterator); if (ep_provider_get_delete_deferred (provider)) config_delete_provider (config, provider); } @@ -531,8 +549,7 @@ config_enable_disable ( // The provider list should be non-NULL, but can be NULL on shutdown. const ep_rt_provider_list_t *provider_list = &config->provider_list; if (!ep_rt_provider_list_is_empty (provider_list)) { - ep_rt_provider_list_iterator_t iterator; - for (ep_rt_provider_list_iterator_begin (provider_list, &iterator); !ep_rt_provider_list_iterator_end (provider_list, &iterator); ep_rt_provider_list_iterator_next (provider_list, &iterator)) { + for (ep_rt_provider_list_iterator_t iterator = ep_rt_provider_list_iterator_begin (provider_list); !ep_rt_provider_list_iterator_end (provider_list, &iterator); ep_rt_provider_list_iterator_next (&iterator)) { EventPipeProvider *provider = ep_rt_provider_list_iterator_value (&iterator); if (provider) { // Enable/Disable the provider if it has been configured. diff --git a/src/mono/mono/eventpipe/ep-config.h b/src/native/eventpipe/ep-config.h similarity index 88% rename from src/mono/mono/eventpipe/ep-config.h rename to src/native/eventpipe/ep-config.h index 139866ee44ae..6cd5c9cce31a 100644 --- a/src/mono/mono/eventpipe/ep-config.h +++ b/src/native/eventpipe/ep-config.h @@ -35,30 +35,6 @@ struct _EventPipeConfiguration { }; #endif -static -inline -const ep_char8_t * -ep_config_get_default_provider_name_utf8 (void) -{ - return "Microsoft-DotNETCore-EventPipeConfiguration"; -} - -static -inline -const ep_char8_t * -ep_config_get_public_provider_name_utf8 (void) -{ - return "Microsoft-Windows-DotNETRuntime"; -} - -static -inline -const ep_char8_t * -ep_config_get_rundown_provider_name_utf8 (void) -{ - return "Microsoft-Windows-DotNETRuntimeRundown"; -} - static inline EventPipeConfiguration * diff --git a/src/mono/mono/eventpipe/ep-event-instance.c b/src/native/eventpipe/ep-event-instance.c similarity index 80% rename from src/mono/mono/eventpipe/ep-event-instance.c rename to src/native/eventpipe/ep-event-instance.c index 1b486aaffbf8..d609e7ef0458 100644 --- a/src/mono/mono/eventpipe/ep-event-instance.c +++ b/src/native/eventpipe/ep-event-instance.c @@ -6,6 +6,7 @@ #define EP_IMPL_EVENT_INSTANCE_GETTER_SETTER #include "ep.h" +#include "ep-event.h" #include "ep-event-instance.h" #include "ep-stream.h" #include "ep-rt.h" @@ -134,7 +135,7 @@ ep_event_instance_get_aligned_total_size ( // Metadata ID sizeof (ep_event_instance->metadata_id) + // Thread ID - sizeof (int32_t) + + sizeof (uint32_t) + // TimeStamp sizeof (ep_event_instance->timestamp) + // Activity ID @@ -156,7 +157,7 @@ ep_event_instance_get_aligned_total_size ( // Sequence number (implied by the buffer containing the event instance) sizeof (uint32_t) + // Thread ID - sizeof (int32_t) + + sizeof (ep_event_instance->thread_id) + // Capture Thread ID (implied by the buffer containing the event instance) sizeof (uint64_t) + // ProcNumber @@ -184,6 +185,41 @@ ep_event_instance_get_aligned_total_size ( return payload_len; } +#ifdef EP_CHECKED_BUILD +#include "ep-json-file.h" +#define MAX_JSON_FILE_MESSAGE_BUFFER_SIZE 512 +void +ep_event_instance_serialize_to_json_file ( + EventPipeEventInstance *ep_event_instance, + EventPipeJsonFile *json_file) +{ + ep_return_void_if_nok (ep_event_instance != NULL); + ep_return_void_if_nok (json_file != NULL); + + + ep_char8_t buffer [MAX_JSON_FILE_MESSAGE_BUFFER_SIZE]; + int32_t characters_written = -1; + characters_written = ep_rt_utf8_string_snprintf ( + buffer, + EP_ARRAY_SIZE (buffer), + "Provider=%s/EventID=%d/Version=%d", + ep_provider_get_provider_name (ep_event_get_provider (ep_event_instance->ep_event)), + ep_event_get_event_id (ep_event_instance->ep_event), + ep_event_get_event_version (ep_event_instance->ep_event)); + + if (characters_written > 0 && characters_written < EP_ARRAY_SIZE (buffer)) + ep_json_file_write_event_data (json_file, ep_event_instance->timestamp, (ep_rt_thread_id_t)(ep_event_instance->thread_id), buffer, &ep_event_instance->stack_contents); +} +#else +void +ep_event_instance_serialize_to_json_file ( + EventPipeEventInstance *ep_event_instance, + EventPipeJsonFile *json_file) +{ + ; +} +#endif + /* * EventPipeSequencePoint. */ @@ -196,11 +232,9 @@ sequence_point_fini (EventPipeSequencePoint *sequence_point) // Each entry in the map owns a ref-count on the corresponding thread if (ep_rt_thread_sequence_number_map_count (&sequence_point->thread_sequence_numbers) != 0) { - ep_rt_thread_sequence_number_hash_map_iterator_t iterator; - for ( - ep_rt_thread_sequence_number_map_iterator_begin (&sequence_point->thread_sequence_numbers, &iterator); + for (ep_rt_thread_sequence_number_hash_map_iterator_t iterator = ep_rt_thread_sequence_number_map_iterator_begin (&sequence_point->thread_sequence_numbers); !ep_rt_thread_sequence_number_map_iterator_end (&sequence_point->thread_sequence_numbers, &iterator); - ep_rt_thread_sequence_number_map_iterator_next (&sequence_point->thread_sequence_numbers, &iterator)) { + ep_rt_thread_sequence_number_map_iterator_next (&iterator)) { EventPipeThreadSessionState *key = ep_rt_thread_sequence_number_map_iterator_key (&iterator); ep_thread_release (ep_thread_session_state_get_thread (key)); @@ -234,8 +268,7 @@ ep_sequence_point_init (EventPipeSequencePoint *sequence_point) sequence_point->timestamp = 0; ep_rt_thread_sequence_number_map_alloc (&sequence_point->thread_sequence_numbers, NULL, NULL, NULL, NULL); - - return sequence_point; + return ep_rt_thread_sequence_number_map_is_valid (&sequence_point->thread_sequence_numbers) ? sequence_point : NULL; } void diff --git a/src/mono/mono/eventpipe/ep-event-instance.h b/src/native/eventpipe/ep-event-instance.h similarity index 91% rename from src/mono/mono/eventpipe/ep-event-instance.h rename to src/native/eventpipe/ep-event-instance.h index d67757048f1a..8f9261d0613c 100644 --- a/src/mono/mono/eventpipe/ep-event-instance.h +++ b/src/native/eventpipe/ep-event-instance.h @@ -32,6 +32,10 @@ struct _EventPipeEventInstance_Internal { uint32_t metadata_id; uint32_t proc_num; uint32_t data_len; + // TODO: Look at optimizing this when writing into buffer manager. + // Only write up to next available frame to better utilize memory. + // Even events not requesting a stack will still waste space in buffer manager. + // Needs to go last since number of frames will set size in stream. EventPipeStackContents stack_contents; #ifdef EP_CHECKED_BUILD uint32_t debug_event_start; @@ -93,6 +97,11 @@ ep_event_instance_get_aligned_total_size ( const EventPipeEventInstance *ep_event_instance, EventPipeSerializationFormat format); +void +ep_event_instance_serialize_to_json_file ( + EventPipeEventInstance *ep_event_instance, + EventPipeJsonFile *json_file); + /* * EventPipeSequencePoint. */ diff --git a/src/mono/mono/eventpipe/ep-event-payload.c b/src/native/eventpipe/ep-event-payload.c similarity index 95% rename from src/mono/mono/eventpipe/ep-event-payload.c rename to src/native/eventpipe/ep-event-payload.c index b09e0eed7d79..215498716be1 100644 --- a/src/mono/mono/eventpipe/ep-event-payload.c +++ b/src/native/eventpipe/ep-event-payload.c @@ -96,23 +96,22 @@ ep_event_payload_init_2 ( event_payload->event_data_len = event_data_len; event_payload->allocated_data = false; - uint32_t tmp_size = 0; - bool overflow = false; + size_t tmp_size = 0; for (uint32_t i = 0; i < event_data_len; ++i) { - if ((UINT32_MAX - tmp_size) < ep_event_data_get_size (&event_data [i])) { - overflow = true; + tmp_size += ep_event_data_get_size (&event_data [i]); + if (tmp_size < ep_event_data_get_size (&event_data [i])) { + tmp_size = (size_t)UINT32_MAX + 1; break; } - tmp_size += ep_event_data_get_size (&event_data [i]); } - if (overflow) { + if (tmp_size > UINT32_MAX) { // If there is an overflow, drop the data and create an empty payload event_payload->event_data = NULL; event_payload->event_data_len = 0; event_payload->size = 0; } else { - event_payload->size = tmp_size; + event_payload->size = (uint32_t)tmp_size; } return event_payload; diff --git a/src/mono/mono/eventpipe/ep-event-payload.h b/src/native/eventpipe/ep-event-payload.h similarity index 98% rename from src/mono/mono/eventpipe/ep-event-payload.h rename to src/native/eventpipe/ep-event-payload.h index 00065f30f59f..701d406189b5 100644 --- a/src/mono/mono/eventpipe/ep-event-payload.h +++ b/src/native/eventpipe/ep-event-payload.h @@ -17,6 +17,7 @@ * EventData. */ +//NOTE, layout needs to match COR_PRF_EVENT_DATA. #if defined(EP_INLINE_GETTER_SETTER) || defined(EP_IMPL_EVENT_PAYLOAD_GETTER_SETTER) struct _EventData { #else diff --git a/src/mono/mono/eventpipe/ep-event-source.c b/src/native/eventpipe/ep-event-source.c similarity index 94% rename from src/mono/mono/eventpipe/ep-event-source.c rename to src/native/eventpipe/ep-event-source.c index 3d8a2c7abbcc..97ed981a554b 100644 --- a/src/mono/mono/eventpipe/ep-event-source.c +++ b/src/native/eventpipe/ep-event-source.c @@ -123,7 +123,7 @@ ep_event_source_init (EventPipeEventSource *event_source) event_name_utf16, 0, /* keywords */ 1, /* version */ - EP_EVENT_LEVEL_LOG_ALWAYS, + EP_EVENT_LEVEL_LOGALWAYS, 0, /* opcode */ params, params_len, @@ -137,13 +137,14 @@ ep_event_source_init (EventPipeEventSource *event_source) 1, /* eventID */ 0, /* keywords */ 0, /* eventVersion */ - EP_EVENT_LEVEL_LOG_ALWAYS, + EP_EVENT_LEVEL_LOGALWAYS, false, /* needStack */ metadata, (uint32_t)metadata_len); ep_raise_error_if_nok (event_source->process_info_event); +ep_on_exit: // Delete the metadata after the event is created. // The metadata blob will be copied into EventPipe-owned memory. ep_rt_byte_array_free (metadata); @@ -155,13 +156,9 @@ ep_event_source_init (EventPipeEventSource *event_source) ep_rt_utf16_string_free (os_info_arg_utf16); ep_rt_utf16_string_free (command_line_arg_utf16); -ep_on_exit: return event_source; ep_on_error: - ep_rt_byte_array_free (metadata); - ep_rt_utf16_string_free (event_name_utf16); - ep_rt_utf16_string_free (command_line_arg_utf16); ep_event_source_free (event_source); event_source = NULL; @@ -180,9 +177,10 @@ ep_event_source_free (EventPipeEventSource *event_source) { ep_return_void_if_nok (event_source); event_source_fini (event_source); + ep_rt_object_free (event_source); } -void +bool ep_event_source_enable ( EventPipeEventSource *event_source, EventPipeSession *session) @@ -192,9 +190,11 @@ ep_event_source_enable ( ep_requires_lock_held (); - EventPipeSessionProvider *session_provider = ep_session_provider_alloc (event_source->provider_name, (uint64_t)-1, EP_EVENT_LEVEL_LOG_ALWAYS, NULL); + bool result = true; + EventPipeSessionProvider *session_provider = ep_session_provider_alloc (event_source->provider_name, (uint64_t)-1, EP_EVENT_LEVEL_LOGALWAYS, NULL); if (session_provider != NULL) - ep_session_add_session_provider (session, session_provider); + result = ep_session_add_session_provider (session, session_provider); + return result; } void @@ -220,7 +220,7 @@ ep_event_source_send_process_info ( if (arch_info_utf16) ep_event_data_init (&data[2], (uint64_t)arch_info_utf16, (uint32_t)((ep_rt_utf16_string_len (arch_info_utf16) + 1) * sizeof (ep_char16_t)), 0); - ep_write_event (event_source->process_info_event, data, EP_ARRAY_SIZE (data), NULL, NULL); + ep_write_event_2 (event_source->process_info_event, data, EP_ARRAY_SIZE (data), NULL, NULL); ep_rt_utf16_string_free (arch_info_utf16); ep_rt_utf16_string_free (os_info_utf16); diff --git a/src/mono/mono/eventpipe/ep-event-source.h b/src/native/eventpipe/ep-event-source.h similarity index 99% rename from src/mono/mono/eventpipe/ep-event-source.h rename to src/native/eventpipe/ep-event-source.h index 9eb95b24055d..f5ae0bec6de5 100644 --- a/src/mono/mono/eventpipe/ep-event-source.h +++ b/src/native/eventpipe/ep-event-source.h @@ -64,7 +64,7 @@ ep_event_source_fini (EventPipeEventSource *event_source); void ep_event_source_free (EventPipeEventSource *event_source); -void +bool ep_event_source_enable (EventPipeEventSource *event_source, EventPipeSession *session); void diff --git a/src/mono/mono/eventpipe/ep-event.c b/src/native/eventpipe/ep-event.c similarity index 100% rename from src/mono/mono/eventpipe/ep-event.c rename to src/native/eventpipe/ep-event.c diff --git a/src/mono/mono/eventpipe/ep-event.h b/src/native/eventpipe/ep-event.h similarity index 100% rename from src/mono/mono/eventpipe/ep-event.h rename to src/native/eventpipe/ep-event.h diff --git a/src/mono/mono/eventpipe/ep-file.c b/src/native/eventpipe/ep-file.c similarity index 91% rename from src/mono/mono/eventpipe/ep-file.c rename to src/native/eventpipe/ep-file.c index 863096e2e836..46f35306df30 100644 --- a/src/mono/mono/eventpipe/ep-file.c +++ b/src/native/eventpipe/ep-file.c @@ -10,6 +10,7 @@ #include "ep-config.h" #include "ep-event-instance.h" #include "ep-file.h" +#include "ep-sample-profiler.h" #include "ep-rt.h" /* @@ -28,14 +29,6 @@ static void file_free_func (void *object); -static -uint32_t -stack_hash_key_hash_func (const void *key); - -static -bool -stack_hash_key_eq_func (const void *key1, const void *key2); - static void stack_hash_value_free_func (void *entry); @@ -68,18 +61,18 @@ file_write_event_to_block ( bool is_sotred_event); static -void +bool file_save_metadata_id ( EventPipeFile *file, EventPipeEvent *ep_event, uint32_t metadata_id); static -int32_t +uint32_t file_get_file_version (EventPipeSerializationFormat format); static -int32_t +uint32_t file_get_file_minimum_version (EventPipeSerializationFormat format); /* @@ -127,28 +120,6 @@ file_vtable = { file_fast_serialize_func, file_get_type_name_func }; -static -uint32_t -stack_hash_key_hash_func (const void *key) -{ - EP_ASSERT (key != NULL); - return ((const StackHashKey *)key)->hash; -} - -static -bool -stack_hash_key_eq_func (const void *key1, const void *key2) -{ - EP_ASSERT (key1 != NULL); - EP_ASSERT (key2 != NULL); - - const StackHashKey * stack_hash_key1 = (const StackHashKey *)key1; - const StackHashKey * stack_hash_key2 = (const StackHashKey *)key2; - - return stack_hash_key1->stack_size_in_bytes == stack_hash_key2->stack_size_in_bytes && - !memcmp (stack_hash_key1->stack_bytes, stack_hash_key2->stack_bytes, stack_hash_key1->stack_size_in_bytes); -} - static void stack_hash_value_free_func (void *entry) @@ -192,8 +163,11 @@ file_get_stack_id ( stack_id = file->stack_id_counter + 1; file->stack_id_counter = stack_id; entry = ep_stack_hash_entry_alloc (stack_contents, stack_id, ep_stack_hash_key_get_hash (&key)); - if (entry) - ep_rt_stack_hash_add (stack_hash, ep_stack_hash_entry_get_key_ref (entry), entry); + if (entry) { + if (!ep_rt_stack_hash_add (stack_hash, ep_stack_hash_entry_get_key_ref (entry), entry)) + ep_stack_hash_entry_free (entry); + entry = NULL; + } if (!ep_stack_block_write_stack (stack_block, stack_id, stack_contents)) { // we can't write this stack to the current block (it's full) @@ -219,10 +193,9 @@ file_get_metadata_id ( { EP_ASSERT (file != NULL); EP_ASSERT (ep_event != NULL); - EP_ASSERT (file->metadata_ids.table != NULL); uint32_t metadata_ids; - if (ep_rt_metadata_labels_lookup (&file->metadata_ids, ep_event, &metadata_ids)) { + if (ep_rt_metadata_labels_hash_lookup (&file->metadata_ids, ep_event, &metadata_ids)) { EP_ASSERT (metadata_ids != 0); return metadata_ids; } @@ -278,7 +251,7 @@ file_write_event_to_block ( } static -void +bool file_save_metadata_id ( EventPipeFile *file, EventPipeEvent *ep_event, @@ -287,19 +260,18 @@ file_save_metadata_id ( EP_ASSERT (file != NULL); EP_ASSERT (ep_event != NULL); EP_ASSERT (metadata_id > 0); - EP_ASSERT (file->metadata_ids.table != NULL); // If a pre-existing metadata label exists, remove it. uint32_t old_id; - if (ep_rt_metadata_labels_lookup (&file->metadata_ids, ep_event, &old_id)) - ep_rt_metadata_labels_remove (&file->metadata_ids, ep_event); + if (ep_rt_metadata_labels_hash_lookup (&file->metadata_ids, ep_event, &old_id)) + ep_rt_metadata_labels_hash_remove (&file->metadata_ids, ep_event); // Add the metadata label. - ep_rt_metadata_labels_add (&file->metadata_ids, ep_event, metadata_id); + return ep_rt_metadata_labels_hash_add (&file->metadata_ids, ep_event, metadata_id); } static -int32_t +uint32_t file_get_file_version (EventPipeSerializationFormat format) { switch (format) { @@ -314,7 +286,7 @@ file_get_file_version (EventPipeSerializationFormat format) } static -int32_t +uint32_t file_get_file_minimum_version (EventPipeSerializationFormat format) { switch (format) { @@ -360,17 +332,17 @@ ep_file_alloc ( instance->file_open_timestamp = ep_perf_timestamp_get (); instance->timestamp_frequency = ep_perf_frequency_query (); - instance->pointer_size = SIZEOF_VOID_P; + instance->pointer_size = sizeof (void*); instance->current_process_id = ep_rt_current_process_get_id (); instance->number_of_processors = ep_rt_processors_get_count (); - instance->sampling_rate_in_ns = ep_rt_sample_profiler_get_sampling_rate (); + instance->sampling_rate_in_ns = (uint32_t)ep_sample_profiler_get_sampling_rate (); - ep_rt_metadata_labels_alloc (&instance->metadata_ids, NULL, NULL, NULL, NULL); - ep_raise_error_if_nok (instance->metadata_ids.table); + ep_rt_metadata_labels_hash_alloc (&instance->metadata_ids, NULL, NULL, NULL, NULL); + ep_raise_error_if_nok (ep_rt_metadata_labels_hash_is_valid (&instance->metadata_ids)); - ep_rt_stack_hash_alloc (&instance->stack_hash, stack_hash_key_hash_func, stack_hash_key_eq_func, NULL, stack_hash_value_free_func); - ep_raise_error_if_nok (instance->stack_hash.table); + ep_rt_stack_hash_alloc (&instance->stack_hash, ep_stack_hash_key_hash, ep_stack_hash_key_equal, NULL, stack_hash_value_free_func); + ep_raise_error_if_nok (ep_rt_stack_hash_is_valid (&instance->stack_hash)); // Start at 0 - The value is always incremented prior to use, so the first ID will be 1. ep_rt_volatile_store_uint32_t (&instance->metadata_id_counter, 0); @@ -405,7 +377,7 @@ ep_file_free (EventPipeFile *file) ep_metadata_block_free (file->metadata_block); ep_stack_block_free (file->stack_block); ep_fast_serializer_free (file->fast_serializer); - ep_rt_metadata_labels_free (&file->metadata_ids); + ep_rt_metadata_labels_hash_free (&file->metadata_ids); ep_rt_stack_hash_free (&file->stack_hash); // If file has not been initialized, stream_writer ownership @@ -456,7 +428,7 @@ ep_file_write_event ( EP_ASSERT (file != NULL); EP_ASSERT (event_instance != NULL); - ep_return_void_if_nok (ep_file_has_errors (file) != true); + ep_return_void_if_nok (!ep_file_has_errors (file)); EventPipeEventMetadataEvent *metadata_instance = NULL; @@ -480,7 +452,7 @@ ep_file_write_event ( ep_raise_error_if_nok (metadata_instance != NULL); file_write_event_to_block (file, (EventPipeEventInstance *)metadata_instance, 0, 0, 0, 0, true); // metadataId=0 breaks recursion and represents the metadata event. - file_save_metadata_id (file, ep_event_instance_get_ep_event (event_instance), metadata_id); + ep_raise_error_if_nok (file_save_metadata_id (file, ep_event_instance_get_ep_event (event_instance), metadata_id)); } file_write_event_to_block (file, event_instance, metadata_id, capture_thread_id, sequence_number, stack_id, is_sorted_event); @@ -500,13 +472,14 @@ ep_file_write_sequence_point ( { EP_ASSERT (file != NULL); EP_ASSERT (sequence_point != NULL); - EP_ASSERT (file->fast_serializer != NULL); if (file->format < EP_SERIALIZATION_FORMAT_NETTRACE_V4) return; // sequence points aren't used in NetPerf format ep_file_flush (file, EP_FILE_FLUSH_FLAGS_ALL_BLOCKS); - ep_raise_error_if_nok (ep_file_has_errors (file) != true); + ep_raise_error_if_nok (!ep_file_has_errors (file)); + + EP_ASSERT (file->fast_serializer != NULL); EventPipeSequencePointBlock sequence_point_block; ep_sequence_point_block_init (&sequence_point_block, sequence_point); @@ -535,7 +508,7 @@ ep_file_flush ( EP_ASSERT (file->stack_block != NULL); EP_ASSERT (file->event_block != NULL); - ep_return_void_if_nok (ep_file_has_errors (file) != true); + ep_return_void_if_nok (!ep_file_has_errors (file)); // we write current blocks to the disk, whether they are full or not if ((ep_metadata_block_get_bytes_written (file->metadata_block) != 0) && ((flags & EP_FILE_FLUSH_FLAGS_METADATA_BLOCK) != 0)) { @@ -560,6 +533,12 @@ ep_file_flush ( * StackHashEntry. */ +StackHashKey * +ep_stack_hash_entry_get_key (StackHashEntry *stack_hash_entry) +{ + return ep_stack_hash_entry_get_key_ref (stack_hash_entry); +} + StackHashEntry * ep_stack_hash_entry_alloc ( const EventPipeStackContents *stack_contents, @@ -633,6 +612,26 @@ ep_stack_hash_key_fini (StackHashKey *key) ; } +uint32_t +ep_stack_hash_key_hash (const void *key) +{ + EP_ASSERT (key != NULL); + return ((const StackHashKey *)key)->hash; +} + +bool +ep_stack_hash_key_equal (const void *key1, const void *key2) +{ + EP_ASSERT (key1 != NULL); + EP_ASSERT (key2 != NULL); + + const StackHashKey * stack_hash_key1 = (const StackHashKey *)key1; + const StackHashKey * stack_hash_key2 = (const StackHashKey *)key2; + + return stack_hash_key1->stack_size_in_bytes == stack_hash_key2->stack_size_in_bytes && + !memcmp (stack_hash_key1->stack_bytes, stack_hash_key2->stack_bytes, stack_hash_key1->stack_size_in_bytes); +} + #endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ #endif /* ENABLE_PERFTRACING */ diff --git a/src/mono/mono/eventpipe/ep-file.h b/src/native/eventpipe/ep-file.h similarity index 95% rename from src/mono/mono/eventpipe/ep-file.h rename to src/native/eventpipe/ep-file.h index 01865d4eb56a..2288de279caa 100644 --- a/src/mono/mono/eventpipe/ep-file.h +++ b/src/native/eventpipe/ep-file.h @@ -129,6 +129,12 @@ ep_stack_hash_key_init ( void ep_stack_hash_key_fini (StackHashKey *key); +uint32_t +ep_stack_hash_key_hash (const void *key); + +bool +ep_stack_hash_key_equal (const void *key1, const void *key2); + /* * StackHashEntry. */ @@ -153,6 +159,9 @@ struct _StackHashEntry { EP_DEFINE_GETTER_REF(StackHashEntry *, stack_hash_entry, StackHashKey *, key) EP_DEFINE_GETTER(StackHashEntry *, stack_hash_entry, uint32_t, id) +StackHashKey * +ep_stack_hash_entry_get_key (StackHashEntry *stack_hash_entry); + StackHashEntry * ep_stack_hash_entry_alloc ( const EventPipeStackContents *stack_contents, diff --git a/src/mono/mono/eventpipe/ep-getter-setter.h b/src/native/eventpipe/ep-getter-setter.h similarity index 100% rename from src/mono/mono/eventpipe/ep-getter-setter.h rename to src/native/eventpipe/ep-getter-setter.h diff --git a/src/native/eventpipe/ep-json-file.c b/src/native/eventpipe/ep-json-file.c new file mode 100644 index 000000000000..fe7b9296a185 --- /dev/null +++ b/src/native/eventpipe/ep-json-file.c @@ -0,0 +1,151 @@ +#include + +#ifdef ENABLE_PERFTRACING +#include "ep-rt-config.h" +#if !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) + +#define EP_IMPL_JSON_FILE_GETTER_SETTER +#include "ep-json-file.h" +#include "ep.h" +#include "ep-event-instance.h" +#include "ep-rt.h" + +#ifdef EP_CHECKED_BUILD + +#define MAX_ASSEMBLY_NAME_LEN 256 +#define MAX_METHOD_NAME_LEN 256 +#define MAX_BUFFER_SIZE (MAX_ASSEMBLY_NAME_LEN + MAX_METHOD_NAME_LEN + 32) + +/* + * Forward declares of all static functions. + */ + +/* + * EventPipeJsonFile. + */ + +static +inline +void +json_file_write_string ( + EventPipeJsonFile *json_file, + const ep_char8_t *string) +{ + uint32_t bytes_written; + ep_rt_file_write (json_file->file_stream, (const uint8_t *)string, (uint32_t)strlen (string), &bytes_written); +} + +EventPipeJsonFile * +ep_json_file_alloc (const ep_char8_t *out_file_path) +{ + EventPipeJsonFile *instance = ep_rt_object_alloc (EventPipeJsonFile); + ep_raise_error_if_nok (instance != NULL); + + instance->write_error_encountered = false; + + instance->file_stream = ep_rt_file_open_write (out_file_path); + ep_raise_error_if_nok (instance->file_stream != NULL); + + instance->file_open_timestamp = ep_perf_timestamp_get (); + + json_file_write_string (instance, "{\n\"StackSource\" : {\n\"Samples\" : [\n"); + +ep_on_exit: + return instance; + +ep_on_error: + ep_json_file_free (instance); + instance = NULL; + ep_exit_error_handler (); +} + +void +ep_json_file_free (EventPipeJsonFile *json_file) +{ + ep_return_void_if_nok (json_file != NULL); + + if (json_file->file_stream != NULL) { + if (!json_file->write_error_encountered) + json_file_write_string (json_file, "]}}"); + ep_rt_file_close (json_file->file_stream); + json_file->file_stream = NULL; + } + + ep_rt_object_free (json_file); +} + +void +ep_json_file_write_event ( + EventPipeJsonFile *json_file, + EventPipeEventInstance *instance) +{ + ep_event_instance_serialize_to_json_file (instance, json_file); +} + +void +ep_json_file_write_event_data ( + EventPipeJsonFile *json_file, + ep_timestamp_t timestamp, + ep_rt_thread_id_t thread_id, + const ep_char8_t *message, + EventPipeStackContents *stack_contents) +{ + ep_return_void_if_nok (json_file != NULL); + ep_return_void_if_nok (json_file->file_stream != NULL && !json_file->write_error_encountered ); + + // Convert the timestamp from a QPC value to a trace-relative timestamp. + double millis_since_trace_start = 0.0; + if (timestamp != json_file->file_open_timestamp) { + ep_timestamp_t elapsed_nanos; + elapsed_nanos = timestamp - json_file->file_open_timestamp; + millis_since_trace_start = elapsed_nanos / 1000000.0; + } + + ep_char8_t buffer [MAX_BUFFER_SIZE]; + int32_t characters_written = -1; + + characters_written = ep_rt_utf8_string_snprintf (buffer, EP_ARRAY_SIZE (buffer), "{\"Time\" : \"%f\", \"Metric\" : \"1\",\n\"Stack\": [\n\"", millis_since_trace_start); + if (characters_written > 0 && characters_written < EP_ARRAY_SIZE (buffer)) + json_file_write_string (json_file, buffer); + + if (message) + json_file_write_string (json_file, message); + + json_file_write_string (json_file, "\",\n"); + + ep_char8_t assembly_name [MAX_ASSEMBLY_NAME_LEN]; + ep_char8_t method_name [MAX_METHOD_NAME_LEN]; + + for (uint32_t i = 0; i < ep_stack_contents_get_length (stack_contents); ++i) { + ep_rt_method_desc_t *method = ep_stack_contents_get_method (stack_contents, i); + + if (!ep_rt_method_get_simple_assembly_name (method, assembly_name, EP_ARRAY_SIZE (assembly_name))) { + assembly_name [0] = '?'; + assembly_name [1] = 0; + } + + if (!ep_rt_method_get_full_name (method, method_name, EP_ARRAY_SIZE (method_name))) { + method_name [0] = '?'; + method_name [1] = 0; + } + + characters_written = ep_rt_utf8_string_snprintf (buffer, EP_ARRAY_SIZE (buffer), "\"%s!%s\",\n", assembly_name, method_name); + if (characters_written > 0 && characters_written < EP_ARRAY_SIZE (buffer)) + json_file_write_string (json_file, buffer); + } + + characters_written = ep_rt_utf8_string_snprintf (buffer, EP_ARRAY_SIZE (buffer), "\"Thread (%ld)\"]},", (uint64_t)thread_id); + if (characters_written > 0 && characters_written < EP_ARRAY_SIZE (buffer)) + json_file_write_string (json_file, buffer); +} + +#endif /* EP_CHECKED_BUILD */ +#endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ +#endif /* ENABLE_PERFTRACING */ + +#ifndef EP_CHECKED_BUILD +#ifndef EP_INCLUDE_SOURCE_FILES +extern const char quiet_linker_empty_file_warning_eventpipe_json_file; +const char quiet_linker_empty_file_warning_eventpipe_json_file = 0; +#endif +#endif diff --git a/src/native/eventpipe/ep-json-file.h b/src/native/eventpipe/ep-json-file.h new file mode 100644 index 000000000000..c1f854c8f76d --- /dev/null +++ b/src/native/eventpipe/ep-json-file.h @@ -0,0 +1,60 @@ +#ifndef __EVENTPIPE_JSON_FILE_H__ +#define __EVENTPIPE_JSON_FILE_H__ + +#include + +#ifdef ENABLE_PERFTRACING +#include "ep-rt-config.h" +#include "ep-types.h" +#include "ep-rt.h" + +#undef EP_IMPL_GETTER_SETTER +#ifdef EP_IMPL_JSON_FILE_GETTER_SETTER +#define EP_IMPL_GETTER_SETTER +#endif +#include "ep-getter-setter.h" + +#ifdef EP_CHECKED_BUILD + +/* + * EventPipeJsonFile. + */ + +#if defined(EP_INLINE_GETTER_SETTER) || defined(EP_IMPL_JSON_FILE_GETTER_SETTER) +struct _EventPipeJsonFile { +#else +struct _EventPipeJsonFile_Internal { +#endif + ep_rt_file_handle_t file_stream; + ep_timestamp_t file_open_timestamp; + bool write_error_encountered; +}; + +#if !defined(EP_INLINE_GETTER_SETTER) && !defined(EP_IMPL_JSON_FILE_GETTER_SETTER) +struct _EventPipeJsonFile { + uint8_t _internal [sizeof (struct _EventPipeJsonFile_Internal)]; +}; +#endif + +EventPipeJsonFile * +ep_json_file_alloc (const ep_char8_t *out_file_path); + +void +ep_json_file_free (EventPipeJsonFile *json_file); + +void +ep_json_file_write_event ( + EventPipeJsonFile *json_file, + EventPipeEventInstance *instance); + +void +ep_json_file_write_event_data ( + EventPipeJsonFile *json_file, + ep_timestamp_t timestamp, + ep_rt_thread_id_t thread_id, + const ep_char8_t *message, + EventPipeStackContents *stack_contents); + +#endif /* EP_CHECKED_BUILD */ +#endif /* ENABLE_PERFTRACING */ +#endif /* __EVENTPIPE_JSON_FILE_H__ */ diff --git a/src/mono/mono/eventpipe/ep-metadata-generator.c b/src/native/eventpipe/ep-metadata-generator.c similarity index 97% rename from src/mono/mono/eventpipe/ep-metadata-generator.c rename to src/native/eventpipe/ep-metadata-generator.c index 79dca3fd86ca..cf4eba200fd9 100644 --- a/src/mono/mono/eventpipe/ep-metadata-generator.c +++ b/src/native/eventpipe/ep-metadata-generator.c @@ -108,12 +108,12 @@ metadata_generator_get_metadata_len ( bool has_v2_types = metadata_generator_has_v2_param_types (params, params_len); *v2_len = 0; - // eventID : 4 bytes - // eventName : (eventName.Length + 1) * 2 bytes - // keywords : 8 bytes - // eventVersion : 4 bytes - // level : 4 bytes - // parameterCount : 4 bytes + // eventID : 4 bytes + // eventName : (eventName.Length + 1) * 2 bytes + // keywords : 8 bytes + // eventVersion : 4 bytes + // level : 4 bytes + // parameterCount : 4 bytes *total_len = 24 + ((event_name_len + 1) * sizeof (ep_char16_t)); if (opcode != 0) @@ -270,7 +270,7 @@ ep_metadata_generator_generate_event_metadata ( // If we have V2 metadata types, we need to have 0 params for V1 metadata_generator_write_uint32_to_buffer (buffer, total_metadata_len, &offset, 0); } else { - EP_ASSERT (has_v2_types == false); + EP_ASSERT (!has_v2_types); // Write the parameter count. metadata_generator_write_uint32_to_buffer (buffer, total_metadata_len, &offset, params_len); diff --git a/src/mono/mono/eventpipe/ep-metadata-generator.h b/src/native/eventpipe/ep-metadata-generator.h similarity index 96% rename from src/mono/mono/eventpipe/ep-metadata-generator.h rename to src/native/eventpipe/ep-metadata-generator.h index 51b100122ffe..bb351dd05e65 100644 --- a/src/mono/mono/eventpipe/ep-metadata-generator.h +++ b/src/native/eventpipe/ep-metadata-generator.h @@ -35,15 +35,16 @@ ep_metadata_generator_generate_event_metadata ( */ // Contains the metadata associated with an EventPipe event parameter. +// NOTE, needs to match layout of COR_PRF_EVENTPIPE_PARAM_DESC. #if defined(EP_INLINE_GETTER_SETTER) || defined(EP_IMPL_METADATA_GENERATOR_GETTER_SETTER) struct _EventPipeParameterDesc { #else struct _EventPipeParameterDesc_Internal { #endif - const ep_char16_t *name; + EventPipeParameterType type; // Only used for array types to indicate what type the array elements are EventPipeParameterType element_type; - EventPipeParameterType type; + const ep_char16_t *name; }; #if !defined(EP_INLINE_GETTER_SETTER) && !defined(EP_IMPL_METADATA_GENERATOR_GETTER_SETTER) diff --git a/src/mono/mono/eventpipe/ep-provider-internals.h b/src/native/eventpipe/ep-provider-internals.h similarity index 64% rename from src/mono/mono/eventpipe/ep-provider-internals.h rename to src/native/eventpipe/ep-provider-internals.h index 83de57823c80..e6e00e946239 100644 --- a/src/mono/mono/eventpipe/ep-provider-internals.h +++ b/src/native/eventpipe/ep-provider-internals.h @@ -37,8 +37,36 @@ provider_unset_config ( const ep_char8_t *filter_data, EventPipeProviderCallbackData *callback_data); +// _Requires_lock_not_held (ep) void provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data); +// _Requires_lock_held (ep) +EventPipeProvider * +provider_create ( + const ep_char8_t *provider_name, + EventPipeCallback callback_func, + EventPipeCallbackDataFree callback_data_free_func, + void *callback_data, + EventPipeProviderCallbackDataQueue *provider_callback_data_queue); + +// Free provider. +// _Requires_lock_held (ep) +void +provider_free (EventPipeProvider *provider); + +// Add event. +// _Requires_lock_held (ep) +EventPipeEvent * +provider_add_event ( + EventPipeProvider *provider, + uint32_t event_id, + uint64_t keywords, + uint32_t event_version, + EventPipeEventLevel level, + bool need_stack, + const uint8_t *metadata, + uint32_t metadata_len); + #endif /* ENABLE_PERFTRACING */ #endif /* __EVENTPIPE_PROVIDER_INTERNALS_H__ */ diff --git a/src/mono/mono/eventpipe/ep-provider.c b/src/native/eventpipe/ep-provider.c similarity index 81% rename from src/mono/mono/eventpipe/ep-provider.c rename to src/native/eventpipe/ep-provider.c index d05fc3ae25b1..08c419435e6d 100644 --- a/src/mono/mono/eventpipe/ep-provider.c +++ b/src/native/eventpipe/ep-provider.c @@ -96,8 +96,7 @@ provider_refresh_all_events (EventPipeProvider *provider) const ep_rt_event_list_t *event_list = &provider->event_list; EP_ASSERT (event_list != NULL); - ep_rt_event_list_iterator_t iterator; - for (ep_rt_event_list_iterator_begin (event_list, &iterator); !ep_rt_provider_list_iterator_end (event_list, &iterator); ep_rt_provider_list_iterator_next (event_list, &iterator)) + for (ep_rt_event_list_iterator_t iterator = ep_rt_event_list_iterator_begin (event_list); !ep_rt_event_list_iterator_end (event_list, &iterator); ep_rt_event_list_iterator_next (&iterator)) provider_refresh_event_state (ep_rt_event_list_iterator_value (&iterator)); ep_requires_lock_held (); @@ -152,7 +151,7 @@ provider_compute_event_enable_mask ( // - The event keywords are unspecified in the manifest (== 0) or when masked with the enabled config are != 0. // - The event level is LogAlways or the provider's verbosity level is set to greater than the event's verbosity level in the manifest. bool keyword_enabled = (keywords == 0) || ((session_keyword & keywords) != 0); - bool level_enabled = ((event_level == EP_EVENT_LEVEL_LOG_ALWAYS) || (session_level >= event_level)); + bool level_enabled = ((event_level == EP_EVENT_LEVEL_LOGALWAYS) || (session_level >= event_level)); if (provider_enabled && keyword_enabled && level_enabled) result = result | ep_session_get_mask (session); } @@ -180,9 +179,12 @@ ep_provider_alloc ( instance->provider_name = ep_rt_utf8_string_dup (provider_name); ep_raise_error_if_nok (instance->provider_name != NULL); - instance->provider_name_utf16 = ep_rt_utf8_to_utf16_string (provider_name, ep_rt_utf8_string_len (provider_name)); + instance->provider_name_utf16 = ep_rt_utf8_to_utf16_string (provider_name, -1); ep_raise_error_if_nok (instance->provider_name_utf16 != NULL); + ep_rt_event_list_alloc (&instance->event_list); + ep_raise_error_if_nok (ep_rt_event_list_is_valid (&instance->event_list)); + instance->keywords = 0; instance->provider_level = EP_EVENT_LEVEL_CRITICAL; instance->callback_func = callback_func; @@ -206,13 +208,27 @@ ep_provider_free (EventPipeProvider * provider) { ep_return_void_if_nok (provider != NULL); + ep_requires_lock_not_held (); + if (provider->callback_data_free_func) provider->callback_data_free_func (provider->callback_func, provider->callback_data); - ep_rt_event_list_free (&provider->event_list, event_free_func); + if (!ep_rt_event_list_is_empty (&provider->event_list)) { + EP_LOCK_ENTER (section1) + ep_rt_event_list_free (&provider->event_list, event_free_func); + EP_LOCK_EXIT (section1) + } + +ep_on_exit: ep_rt_utf16_string_free (provider->provider_name_utf16); ep_rt_utf8_string_free (provider->provider_name); ep_rt_object_free (provider); + + ep_requires_lock_not_held (); + return; + +ep_on_error: + ep_exit_error_handler (); } EventPipeEvent * @@ -244,7 +260,7 @@ ep_provider_add_event ( // Take the config lock before inserting a new event. EP_LOCK_ENTER (section1) - ep_rt_event_list_append (&provider->event_list, instance); + ep_raise_error_if_nok_holding_lock (ep_rt_event_list_append (&provider->event_list, instance), section1); provider_refresh_event_state (instance); EP_LOCK_EXIT (section1) @@ -253,6 +269,7 @@ ep_provider_add_event ( return instance; ep_on_error: + ep_event_free (instance); instance = NULL; ep_exit_error_handler (); } @@ -356,7 +373,7 @@ provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data) // the key and the second is the value. // To convert to this format we need to convert all '=' and ';' // characters to '\0', except when in a quoted string. - const uint32_t filter_data_len = ep_rt_utf8_string_len (filter_data); + const uint32_t filter_data_len = (uint32_t)strlen (filter_data); uint32_t buffer_size = filter_data_len + 1; buffer = ep_rt_byte_array_alloc (buffer_size); @@ -387,8 +404,9 @@ provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data) // NOTE: When we call the callback, we pass in enabled (which is either 1 or 0) as the ControlCode. // If we want to add new ControlCode, we have to make corresponding change in ETW callback signature // to address this. See https://github.com/dotnet/runtime/pull/36733 for more discussions on this. - if (callback_function && !ep_rt_process_detach ()) { - (*callback_function)( + if (callback_function && !ep_rt_process_shutdown ()) { + ep_rt_provider_invoke_callback ( + callback_function, NULL, /* provider_id */ enabled ? 1 : 0, /* ControlCode */ (uint8_t)provider_level, @@ -409,6 +427,76 @@ provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data) ep_exit_error_handler (); } +EventPipeProvider * +provider_create ( + const ep_char8_t *provider_name, + EventPipeCallback callback_func, + EventPipeCallbackDataFree callback_data_free_func, + void *callback_data, + EventPipeProviderCallbackDataQueue *provider_callback_data_queue) +{ + ep_requires_lock_held (); + return config_create_provider (ep_config_get (), provider_name, callback_func, callback_data_free_func, callback_data, provider_callback_data_queue); +} + +void +provider_free (EventPipeProvider * provider) +{ + ep_return_void_if_nok (provider != NULL); + + ep_requires_lock_held (); + + if (provider->callback_data_free_func) + provider->callback_data_free_func (provider->callback_func, provider->callback_data); + + if (!ep_rt_event_list_is_empty (&provider->event_list)) + ep_rt_event_list_free (&provider->event_list, event_free_func); + + ep_rt_utf16_string_free (provider->provider_name_utf16); + ep_rt_utf8_string_free (provider->provider_name); + ep_rt_object_free (provider); +} + +EventPipeEvent * +provider_add_event ( + EventPipeProvider *provider, + uint32_t event_id, + uint64_t keywords, + uint32_t event_version, + EventPipeEventLevel level, + bool need_stack, + const uint8_t *metadata, + uint32_t metadata_len) +{ + EP_ASSERT (provider != NULL); + + ep_requires_lock_held (); + + EventPipeEvent *instance = ep_event_alloc ( + provider, + keywords, + event_id, + event_version, + level, + need_stack, + metadata, + metadata_len); + + ep_raise_error_if_nok (instance != NULL); + + ep_raise_error_if_nok (ep_rt_event_list_append (&provider->event_list, instance)); + provider_refresh_event_state (instance); + +ep_on_exit: + ep_requires_lock_held (); + return instance; + +ep_on_error: + ep_event_free (instance); + instance = NULL; + ep_exit_error_handler (); +} + #endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ #endif /* ENABLE_PERFTRACING */ diff --git a/src/mono/mono/eventpipe/ep-provider.h b/src/native/eventpipe/ep-provider.h similarity index 100% rename from src/mono/mono/eventpipe/ep-provider.h rename to src/native/eventpipe/ep-provider.h diff --git a/src/native/eventpipe/ep-rt-config.h b/src/native/eventpipe/ep-rt-config.h new file mode 100644 index 000000000000..d36012e1ab2d --- /dev/null +++ b/src/native/eventpipe/ep-rt-config.h @@ -0,0 +1,35 @@ +#ifndef __EVENTPIPE_RT_CONFIG_H__ +#define __EVENTPIPE_RT_CONFIG_H__ + +#include +#ifdef MONO_CORLIB_VERSION +// EventPipe runtime implementation. +#define EP_RT_H +#define EP_RT_TYPES_H +#define EP_RT_CONFIG_H + +// DiagnosticServer runtime implementation. +#define DS_RT_H +#define DS_RT_TYPES_H +#else +// EventPipe runtime implementation. +#define EP_RT_H "ep-rt-coreclr.h" +#define EP_RT_TYPES_H "ep-rt-types-coreclr.h" +#define EP_RT_CONFIG_H "ep-rt-config-coreclr.h" + +// DiagnosticServer runtime implementation. +#define DS_RT_H "ds-rt-coreclr.h" +#define DS_RT_TYPES_H "ds-rt-types-coreclr.h" + +#include "common.h" +#endif + +#include EP_RT_CONFIG_H + +#define EP_INLINE_GETTER_SETTER + +#ifdef EP_INLINE_GETTER_SETTER +#define EP_INCLUDE_SOURCE_FILES +#endif + +#endif /* __EVENTPIPE_RT_CONFIG_H__ */ diff --git a/src/mono/mono/eventpipe/ep-rt-types.h b/src/native/eventpipe/ep-rt-types.h similarity index 96% rename from src/mono/mono/eventpipe/ep-rt-types.h rename to src/native/eventpipe/ep-rt-types.h index 53c78e68d75d..3481c9d62207 100644 --- a/src/mono/mono/eventpipe/ep-rt-types.h +++ b/src/native/eventpipe/ep-rt-types.h @@ -21,7 +21,7 @@ #define ep_return_false_if_nok(expr) do { if (EP_UNLIKELY(!(expr))) return false; } while (0) #define ep_return_zero_if_nok(expr) do { if (EP_UNLIKELY(!(expr))) return 0; } while (0) -#include "ep-rt-types-mono.h" +#include EP_RT_TYPES_H #endif /* ENABLE_PERFTRACING */ #endif /* __EVENTPIPE_RT_TYPES_H__ */ diff --git a/src/mono/mono/eventpipe/ep-rt.h b/src/native/eventpipe/ep-rt.h similarity index 77% rename from src/mono/mono/eventpipe/ep-rt.h rename to src/native/eventpipe/ep-rt.h index 1d3d980bba0c..cbe82dc95944 100644 --- a/src/mono/mono/eventpipe/ep-rt.h +++ b/src/native/eventpipe/ep-rt.h @@ -25,20 +25,22 @@ prefix_name ## _rt_ ## type_name ## _ ## func_name #endif #define EP_RT_DECLARE_LIST_PREFIX(prefix_name, list_name, list_type, item_type) \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, alloc) (list_type *list); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, free) (list_type *list, void (*callback)(void *)); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, clear) (list_type *list, void (*callback)(void *)); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, append) (list_type *list, item_type item); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, append) (list_type *list, item_type item); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, remove) (list_type *list, const item_type item); \ static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, find) (const list_type *list, const item_type item_to_find, item_type *found_item); \ - static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_empty) (const list_type *list); + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_empty) (const list_type *list); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, is_valid) (const list_type *list); #define EP_RT_DECLARE_LIST(list_name, list_type, item_type) \ EP_RT_DECLARE_LIST_PREFIX(ep, list_name, list_type, item_type) #define EP_RT_DECLARE_LIST_ITERATOR_PREFIX(prefix_name, list_name, list_type, iterator_type, item_type) \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_begin) (const list_type *list, iterator_type *iterator); \ + static iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_begin) (const list_type *list); \ static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_end) (const list_type *list, const iterator_type *iterator); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_next) (const list_type *list, iterator_type *iterator); \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_next) (iterator_type *iterator); \ static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, list_name, iterator_value) (const iterator_type *iterator); #define EP_RT_DECLARE_LIST_ITERATOR(list_name, list_type, iterator_type, item_type) \ @@ -47,10 +49,11 @@ prefix_name ## _rt_ ## type_name ## _ ## func_name #define EP_RT_DECLARE_QUEUE_PREFIX(prefix_name, queue_name, queue_type, item_type) \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, alloc) (queue_type *queue); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, free) (queue_type *queue); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, pop_head) (queue_type *queue, item_type *item); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_head) (queue_type *queue, item_type item); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_tail) (queue_type *queue, item_type item); \ - static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_empty) (const queue_type *queue); + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, pop_head) (queue_type *queue, item_type *item); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_head) (queue_type *queue, item_type item); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, push_tail) (queue_type *queue, item_type item); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_empty) (const queue_type *queue); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, queue_name, is_valid) (const queue_type *queue); #define EP_RT_DECLARE_QUEUE(queue_name, queue_type, item_type) \ EP_RT_DECLARE_QUEUE_PREFIX(ep, queue_name, queue_type, item_type) @@ -59,40 +62,56 @@ prefix_name ## _rt_ ## type_name ## _ ## func_name static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc) (array_type *ep_array); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, alloc_capacity) (array_type *ep_array, size_t capacity); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, free) (array_type *ep_array); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, append) (array_type *ep_array, item_type item); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, clear) (array_type *ep_array, void (*callback)(void *)); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, remove) (array_type *ep_array, iterator_type *pos); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, append) (array_type *ep_array, item_type item); \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, clear) (array_type *ep_array); \ static size_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, size) (const array_type *ep_array); \ - static item_type * EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, data) (const array_type *ep_array); + static item_type * EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, data) (const array_type *ep_array); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, is_valid) (const array_type *ep_array); #define EP_RT_DECLARE_ARRAY(array_name, array_type, iterator_type, item_type) \ EP_RT_DECLARE_ARRAY_PREFIX(ep, array_name, array_type, iterator_type, item_type) #define EP_RT_DECLARE_ARRAY_ITERATOR_PREFIX(prefix_name, array_name, array_type, iterator_type, item_type) \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_begin) (const array_type *ep_array, iterator_type *iterator); \ + static iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_begin) (const array_type *ep_array); \ static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_end) (const array_type *ep_array, const iterator_type *iterator); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_next) (const array_type *ep_array, iterator_type *iterator); \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_next) (iterator_type *iterator); \ static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, iterator_value) (const iterator_type *iterator); +#define EP_RT_DECLARE_ARRAY_REVERSE_ITERATOR_PREFIX(prefix_name, array_name, array_type, iterator_type, item_type) \ + static iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_begin) (const array_type *ep_array); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_end) (const array_type *ep_array, const iterator_type *iterator); \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_next) (iterator_type *iterator); \ + static item_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, array_name, reverse_iterator_value) (const iterator_type *iterator); + #define EP_RT_DECLARE_ARRAY_ITERATOR(array_name, array_type, iterator_type, item_type) \ EP_RT_DECLARE_ARRAY_ITERATOR_PREFIX(ep, array_name, array_type, iterator_type, item_type) \ +#define EP_RT_DECLARE_ARRAY_REVERSE_ITERATOR(array_name, array_type, iterator_type, item_type) \ + EP_RT_DECLARE_ARRAY_REVERSE_ITERATOR_PREFIX(ep, array_name, array_type, iterator_type, item_type) \ + #define EP_RT_DECLARE_HASH_MAP_PREFIX(prefix_name, hash_map_name, hash_map_type, key_type, value_type) \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, alloc) (hash_map_type *hash_map, uint32_t (*hash_callback)(const void *), bool (*eq_callback)(const void *, const void *), void (*key_free_callback)(void *), void (*value_free_callback)(void *)); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, free) (hash_map_type *hash_map); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, add) (hash_map_type *hash_map, key_type key, value_type value); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, remove) (hash_map_type *hash_map, const key_type key); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, add) (hash_map_type *hash_map, key_type key, value_type value); \ static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, remove_all) (hash_map_type *hash_map); \ static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, lookup) (const hash_map_type *hash_map, const key_type key, value_type *value); \ - static uint32_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, count) (const hash_map_type *hash_map); + static uint32_t EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, count) (const hash_map_type *hash_map); \ + static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, is_valid) (const hash_map_type *hash_map); + +#define EP_RT_DECLARE_HASH_MAP_REMOVE_PREFIX(prefix_name, hash_map_name, hash_map_type, key_type, value_type) \ + EP_RT_DECLARE_HASH_MAP_PREFIX(prefix_name, hash_map_name, hash_map_type, key_type, value_type) \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, remove) (hash_map_type *hash_map, const key_type key); #define EP_RT_DECLARE_HASH_MAP(hash_map_name, hash_map_type, key_type, value_type) \ EP_RT_DECLARE_HASH_MAP_PREFIX(ep, hash_map_name, hash_map_type, key_type, value_type) +#define EP_RT_DECLARE_HASH_MAP_REMOVE(hash_map_name, hash_map_type, key_type, value_type) \ + EP_RT_DECLARE_HASH_MAP_REMOVE_PREFIX(ep, hash_map_name, hash_map_type, key_type, value_type) + #define EP_RT_DECLARE_HASH_MAP_ITERATOR_PREFIX(prefix_name, hash_map_name, hash_map_type, iterator_type, key_type, value_type) \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_begin) (const hash_map_type *hash_map, iterator_type *iterator); \ + static iterator_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_begin) (const hash_map_type *hash_map); \ static bool EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_end) (const hash_map_type *hash_map, const iterator_type *iterator); \ - static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_next) (const hash_map_type *hash_map, iterator_type *iterator); \ + static void EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_next) (iterator_type *iterator); \ static key_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_key) (const iterator_type *iterator); \ static value_type EP_RT_BUILD_TYPE_FUNC_NAME(prefix_name, hash_map_name, iterator_value) (const iterator_type *iterator); @@ -147,7 +166,7 @@ bool ep_rt_config_aquire (void); static -void +bool ep_rt_config_release (void); #ifdef EP_CHECKED_BUILD @@ -165,7 +184,21 @@ ep_rt_config_requires_lock_not_held (void); static bool -ep_rt_walk_managed_stack_for_current_thread (EventPipeStackContents *stack_contents); +ep_rt_walk_managed_stack_for_thread ( + ep_rt_thread_handle_t thread, + EventPipeStackContents *stack_contents); + +static +bool +ep_rt_method_get_simple_assembly_name ( + ep_rt_method_desc_t *method, + ep_char8_t *name, size_t name_len); + +static +bool +ep_rt_method_get_full_name ( + ep_rt_method_desc_t *method, + ep_char8_t *name, size_t name_len); static void @@ -175,6 +208,26 @@ static void ep_rt_init_providers_and_events (void); +static +bool +ep_rt_providers_validate_all_disabled (void); + +static +void +ep_rt_prepare_provider_invoke_callback (EventPipeProviderCallbackData *provider_callback_data); + +static +void +ep_rt_provider_invoke_callback ( + EventPipeCallback callback_func, + const uint8_t *source_id, + unsigned long is_enabled, + uint8_t level, + uint64_t match_any_keywords, + uint64_t match_all_keywords, + EventFilterDescriptor *filter_data, + void *callback_data); + /* * EventPipeBuffer. */ @@ -200,7 +253,7 @@ EP_RT_DECLARE_LIST_ITERATOR (event_list, ep_rt_event_list_t, ep_rt_event_list_it * EventPipeFile. */ -EP_RT_DECLARE_HASH_MAP(metadata_labels, ep_rt_metadata_labels_hash_map_t, EventPipeEvent *, uint32_t) +EP_RT_DECLARE_HASH_MAP_REMOVE(metadata_labels_hash, ep_rt_metadata_labels_hash_map_t, EventPipeEvent *, uint32_t) EP_RT_DECLARE_HASH_MAP(stack_hash, ep_rt_stack_hash_map_t, StackHashKey *, StackHashEntry *) EP_RT_DECLARE_HASH_MAP_ITERATOR(stack_hash, ep_rt_stack_hash_map_t, ep_rt_stack_hash_map_iterator_t, StackHashKey *, StackHashEntry *) @@ -248,27 +301,7 @@ ep_rt_config_value_get_circular_mb (void); static void -ep_rt_sample_profiler_init (EventPipeProviderCallbackDataQueue *provider_callback_data_queue); - -static -void -ep_rt_sample_profiler_enable (void); - -static -void -ep_rt_sample_profiler_disable (void); - -static -uint32_t -ep_rt_sample_profiler_get_sampling_rate (void); - -static -void -ep_rt_sample_profiler_set_sampling_rate (uint32_t nanoseconds); - -static -void -ep_rt_sample_profiler_can_start_sampling (void); +ep_rt_sample_profiler_write_sampling_event_for_threads (ep_rt_thread_handle_t sampling_thread, EventPipeEvent *sampling_event); static void @@ -298,6 +331,9 @@ EP_RT_DECLARE_LIST_ITERATOR (sequence_point_list, ep_rt_sequence_point_list_t, e * EventPipeThread. */ +EP_RT_DECLARE_LIST (thread_list, ep_rt_thread_list_t, EventPipeThread *) +EP_RT_DECLARE_LIST_ITERATOR (thread_list, ep_rt_thread_list_t, ep_rt_thread_list_iterator_t, EventPipeThread *) + EP_RT_DECLARE_ARRAY (thread_array, ep_rt_thread_array_t, ep_rt_thread_array_iterator_t, EventPipeThread *) EP_RT_DECLARE_ARRAY_ITERATOR (thread_array, ep_rt_thread_array_t, ep_rt_thread_array_iterator_t, EventPipeThread *) @@ -369,12 +405,24 @@ static bool ep_rt_process_detach (void); +static +bool +ep_rt_process_shutdown (void); + static void ep_rt_create_activity_id ( uint8_t *activity_id, uint32_t activity_id_len); +static +bool +ep_rt_is_running (void); + +static +void +ep_rt_execute_rundown (void); + /* * Objects. */ @@ -400,6 +448,7 @@ bool ep_rt_thread_create ( void *thread_func, void *params, + EventPipeThreadType thread_type, void *id); static @@ -478,6 +527,39 @@ ep_rt_temp_path_get ( ep_char8_t *buffer, uint32_t buffer_len); + +EP_RT_DECLARE_ARRAY (env_array_utf16_, ep_rt_env_array_utf16_t, ep_rt_env_array_utf16_iterator_t, ep_char16_t *) +EP_RT_DECLARE_ARRAY_ITERATOR (env_array_utf16, ep_rt_env_array_utf16_t, ep_rt_env_array_utf16_iterator_t, ep_char16_t *) + +static +void +ep_rt_os_environment_get_utf16 (ep_rt_env_array_utf16_t *env_array); + +/* +* Lock +*/ + +static +bool +ep_rt_lock_aquire (ep_rt_lock_handle_t *lock); + +static +bool +ep_rt_lock_release (ep_rt_lock_handle_t *lock); + +#ifdef EP_CHECKED_BUILD +static +void +ep_rt_lock_requires_lock_held (const ep_rt_lock_handle_t *lock); + +static +void +ep_rt_lock_requires_lock_not_held (const ep_rt_lock_handle_t *lock); +#else +#define ep_rt_lock_requires_lock_held(lock) +#define ep_rt_lock_requires_lock_not_held(lock) +#endif + /* * SpinLock. */ @@ -491,11 +573,11 @@ void ep_rt_spin_lock_free (ep_rt_spin_lock_handle_t *spin_lock); static -void +bool ep_rt_spin_lock_aquire (ep_rt_spin_lock_handle_t *spin_lock); static -void +bool ep_rt_spin_lock_release (ep_rt_spin_lock_handle_t *spin_lock); #ifdef EP_CHECKED_BUILD @@ -511,14 +593,14 @@ ep_rt_spin_lock_requires_lock_not_held (const ep_rt_spin_lock_handle_t *spin_loc #define ep_rt_spin_lock_requires_lock_not_held(spin_lock) #endif +static +bool +ep_rt_spin_lock_is_valid (const ep_rt_spin_lock_handle_t *spin_lock); + /* * String. */ -static -size_t -ep_rt_utf8_string_len (const ep_char8_t *str); - static int ep_rt_utf8_string_compare ( @@ -557,6 +639,10 @@ ep_rt_utf8_to_utf16_string ( const ep_char8_t *str, size_t len); +static +ep_char16_t * +ep_rt_utf16_string_dup (const ep_char16_t *str); + static void ep_rt_utf8_string_free (ep_char8_t *str); @@ -576,14 +662,12 @@ void ep_rt_utf16_string_free (ep_char16_t *str); static -wchar_t * -ep_rt_utf8_to_wcs_string ( - const ep_char8_t *str, - size_t len); +const ep_char8_t * +ep_rt_managed_command_line_get (void); static const ep_char8_t * -ep_rt_managed_command_line_get (void); +ep_rt_diagnostics_command_line_get (void); /* * Thread. @@ -591,11 +675,7 @@ ep_rt_managed_command_line_get (void); static void -ep_rt_thread_setup (bool background_thread); - -static -void -ep_rt_thread_teardown (void); +ep_rt_thread_setup (void); static EventPipeThread * @@ -605,6 +685,40 @@ static EventPipeThread * ep_rt_thread_get_or_create (void); +static +ep_rt_thread_handle_t +ep_rt_thread_get_handle (void); + +static +size_t +ep_rt_thread_get_id (ep_rt_thread_handle_t thread_handle); + +static +bool +ep_rt_thread_has_started (ep_rt_thread_handle_t thread_handle); + +static +ep_rt_thread_activity_id_handle_t +ep_rt_thread_get_activity_id_handle (void); + +static +const uint8_t * +ep_rt_thread_get_activity_id_cref (ep_rt_thread_activity_id_handle_t activity_id_handle); + +static +void +ep_rt_thread_get_activity_id ( + ep_rt_thread_activity_id_handle_t activity_id_handle, + uint8_t *activity_id, + uint32_t activity_id_len); + +static +void +ep_rt_thread_set_activity_id ( + ep_rt_thread_activity_id_handle_t activity_id_handle, + const uint8_t *activity_id, + uint32_t activity_id_len); + /* * ThreadSequenceNumberMap. */ @@ -748,7 +862,7 @@ _ep_on_config_lock_exit_ ##section_name: \ #define ep_raise_error_if_nok_holding_lock(expr, section_name) do { if (EP_UNLIKELY(!(expr))) { _no_config_error_ ##section_name = false; goto _ep_on_config_lock_exit_ ##section_name; } } while (0) #define ep_raise_error_holding_lock(section_name) do { _no_config_error_ ##section_name = false; goto _ep_on_config_lock_exit_ ##section_name; } while (0) -#include "ep-rt-mono.h" +#include EP_RT_H #endif /* ENABLE_PERFTRACING */ #endif /* __EVENTPIPE_RT_H__ */ diff --git a/src/native/eventpipe/ep-sample-profiler.c b/src/native/eventpipe/ep-sample-profiler.c new file mode 100644 index 000000000000..0bbea13ea878 --- /dev/null +++ b/src/native/eventpipe/ep-sample-profiler.c @@ -0,0 +1,353 @@ +#include + +#ifdef ENABLE_PERFTRACING +#include "ep-rt-config.h" +#if !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) + +#define EP_IMPL_SAMPLE_PROFILER_GETTER_SETTER +#include "ep.h" +#include "ep-sample-profiler.h" +#include "ep-event.h" +#include "ep-provider-internals.h" +#include "ep-rt.h" + +#define NUM_NANOSECONDS_IN_1_MS 1000000 + +static volatile uint32_t _profiling_enabled = (uint32_t)false; +static ep_rt_thread_handle_t _sampling_thread = NULL; +static EventPipeProvider *_sampling_provider = NULL; +static EventPipeEvent *_thread_time_event = NULL; +static ep_rt_wait_event_handle_t _thread_shutdown_event; +static uint64_t _sampling_rate_in_ns = NUM_NANOSECONDS_IN_1_MS; // 1ms +static bool _time_period_is_set = false; +static volatile uint32_t _can_start_sampling = (uint32_t)false; +static int32_t _ref_count = 0; + +#ifdef HOST_WIN32 +#include +static PVOID _time_begin_period_func = NULL; +static PVOID _time_end_period_func = NULL; +static HINSTANCE _multimedia_library_handle = NULL; + +typedef MMRESULT(WINAPI *time_period_func)(UINT uPeriod); +#endif + +/* + * Forward declares of all static functions. + */ + +EP_RT_DEFINE_THREAD_FUNC (sampling_thread); + +static +void +sample_profiler_set_time_granularity (void); + +static +void +sample_profiler_reset_time_granularity (void); + +static +bool +sample_profiler_load_dependecies (void); + +static +void +sample_profiler_unload_dependecies (void); + +static +void +sample_profiler_enable (void); + +/* + * EventPipeSampleProfiler. + */ + +static +inline +bool +sample_profiler_load_profiling_enabled (void) +{ + return (ep_rt_volatile_load_uint32_t (&_profiling_enabled) != 0) ? true : false; +} + +static +inline +void +sample_profiler_store_profiling_enabled (bool enabled) +{ + ep_rt_volatile_store_uint32_t (&_profiling_enabled, enabled ? 1 : 0); +} + +static +inline +bool +sample_profiler_load_can_start_sampling (void) +{ + return (ep_rt_volatile_load_uint32_t (&_can_start_sampling) != 0) ? true : false; +} + +static +inline +void +sample_profiler_store_can_start_sampling (bool start_sampling) +{ + ep_rt_volatile_store_uint32_t (&_can_start_sampling, start_sampling ? 1 : 0); +} + +EP_RT_DEFINE_THREAD_FUNC (sampling_thread) +{ + EP_ASSERT (data != NULL); + if (data == NULL) + return 1; + + ep_rt_thread_params_t *thread_params = (ep_rt_thread_params_t *)data; + + if (thread_params->thread && ep_rt_thread_has_started (thread_params->thread)) { + EP_GCX_PREEMP_ENTER + while (sample_profiler_load_profiling_enabled ()) { + // Sample all threads. + ep_rt_sample_profiler_write_sampling_event_for_threads (thread_params->thread, _thread_time_event); + // Wait until it's time to sample again. + ep_rt_thread_sleep (_sampling_rate_in_ns); + } + EP_GCX_PREEMP_EXIT + } + + // Signal disable () that the thread has been destroyed. + ep_rt_wait_event_set (&_thread_shutdown_event); + + return (ep_rt_thread_start_func_return_t)0; +} + +static +void +sample_profiler_set_time_granularity (void) +{ +#ifdef HOST_WIN32 + // Attempt to set the systems minimum timer period to the sampling rate + // If the sampling rate is lower than the current system setting (16ms by default), + // this will cause the OS to wake more often for scheduling descsion, allowing us to take samples + // Note that is effects a system-wide setting and when set low will increase the amount of time + // the OS is on-CPU, decreasing overall system performance and increasing power consumption + if (_time_begin_period_func != NULL) { + if (((time_period_func)_time_begin_period_func)((uint32_t)(_sampling_rate_in_ns / NUM_NANOSECONDS_IN_1_MS)) == TIMERR_NOERROR) { + _time_period_is_set = true; + } + } +#endif //HOST_WIN32 +} + +static +void +sample_profiler_reset_time_granularity (void) +{ +#ifdef HOST_WIN32 + // End the modifications we had to the timer period in enable. + if (_time_end_period_func != NULL) { + if (((time_period_func)_time_end_period_func)((uint32_t)(_sampling_rate_in_ns / NUM_NANOSECONDS_IN_1_MS)) == TIMERR_NOERROR) { + _time_period_is_set = false; + } + } +#endif //HOST_WIN32 +} + +static +bool +sample_profiler_load_dependecies (void) +{ +#ifdef HOST_WIN32 + if (_ref_count > 0) + return true; // Already loaded. + +#ifdef WszLoadLibrary + _multimedia_library_handle = WszLoadLibrary (L"winmm.dll"); +#else + _multimedia_library_handle = LoadLibraryW (L"winmm.dll"); +#endif + + if (_multimedia_library_handle != NULL) { + _time_begin_period_func = (PVOID)GetProcAddress (_multimedia_library_handle, "timeBeginPeriod"); + _time_end_period_func = (PVOID)GetProcAddress (_multimedia_library_handle, "timeEndPeriod"); + } + + return _multimedia_library_handle != NULL && _time_begin_period_func != NULL && _time_end_period_func != NULL; +#else + return true; +#endif //HOST_WIN32 +} + +static +void +sample_profiler_unload_dependecies (void) +{ +#ifdef HOST_WIN32 + if (_multimedia_library_handle != NULL) { + FreeLibrary (_multimedia_library_handle); + _multimedia_library_handle = NULL; + _time_begin_period_func = NULL; + _time_end_period_func = NULL; + } +#endif //HOST_WIN32 +} + +static +void +sample_profiler_enable (void) +{ + EP_ASSERT (_sampling_provider != NULL); + EP_ASSERT (_thread_time_event != NULL); + + ep_requires_lock_held (); + + const bool result = sample_profiler_load_dependecies (); + EP_ASSERT (result); + + if (result && !sample_profiler_load_profiling_enabled ()) { + sample_profiler_store_profiling_enabled (true); + + EP_ASSERT (!ep_rt_wait_event_is_valid (&_thread_shutdown_event)); + ep_rt_wait_event_alloc (&_thread_shutdown_event, true, false); + if (!ep_rt_wait_event_is_valid (&_thread_shutdown_event)) + EP_ASSERT (!"Unable to create sample profiler event."); + + ep_rt_thread_id_t thread_id = 0; + if (!ep_rt_thread_create (sampling_thread, NULL, EP_THREAD_TYPE_SAMPLING, &thread_id)) + EP_ASSERT (!"Unable to create sample profiler thread."); + + sample_profiler_set_time_granularity (); + } +} + +void +ep_sample_profiler_init (EventPipeProviderCallbackDataQueue *provider_callback_data_queue) +{ + ep_requires_lock_held (); + + if (!_sampling_provider) { + _sampling_provider = provider_create (ep_config_get_sample_profiler_provider_name_utf8 (), NULL, NULL, NULL, provider_callback_data_queue); + ep_raise_error_if_nok (_sampling_provider != NULL); + _thread_time_event = provider_add_event ( + _sampling_provider, + 0, /* eventID */ + 0, /* keywords */ + 0, /* eventVersion */ + EP_EVENT_LEVEL_INFORMATIONAL, + false /* NeedStack */, + NULL, + 0); + ep_raise_error_if_nok (_thread_time_event != NULL); + } + +ep_on_exit: + ep_requires_lock_held (); + return; + +ep_on_error: + + ep_exit_error_handler (); +} + +void +ep_sample_profiler_shutdown (void) +{ + ep_requires_lock_held (); + + EP_ASSERT (_ref_count == 0); + + provider_free (_sampling_provider); + + _sampling_provider = NULL; + _thread_time_event = NULL; + + _can_start_sampling = false; +} + +void +ep_sample_profiler_enable (void) +{ + EP_ASSERT (_sampling_provider != NULL); + EP_ASSERT (_thread_time_event != NULL); + + ep_requires_lock_held (); + + // Check to see if the sample profiler event is enabled. If it is not, do not spin up the sampling thread. + if (!ep_event_is_enabled (_thread_time_event)) + return; + + if (_can_start_sampling) + sample_profiler_enable (); + + ++_ref_count; + EP_ASSERT (_ref_count > 0); +} + +void +ep_sample_profiler_disable (void) +{ + EP_ASSERT (_ref_count > 0); + + ep_requires_lock_held (); + + // Bail early if profiling is not enabled. + if (!sample_profiler_load_profiling_enabled ()) + return; + + if (_ref_count == 1) { + EP_ASSERT (!ep_rt_process_detach ()); + + // The sampling thread will watch this value and exit + // when profiling is disabled. + sample_profiler_store_profiling_enabled (false); + + // Wait for the sampling thread to clean itself up. + ep_rt_wait_event_wait (&_thread_shutdown_event, EP_INFINITE_WAIT, false); + ep_rt_wait_event_free (&_thread_shutdown_event); + + if (_time_period_is_set) + sample_profiler_reset_time_granularity (); + + sample_profiler_unload_dependecies (); + } + + --_ref_count; + EP_ASSERT (_ref_count >= 0); +} + +void +ep_sample_profiler_can_start_sampling (void) +{ + ep_requires_lock_held (); + + sample_profiler_store_can_start_sampling (true); + if (_ref_count > 0) + sample_profiler_enable (); +} + +void +ep_sample_profiler_set_sampling_rate (uint64_t nanoseconds) +{ + // If the time period setting was modified by us, + // make sure to change it back before changing our period + // and losing track of what we set it to + if (_time_period_is_set) + sample_profiler_reset_time_granularity (); + + _sampling_rate_in_ns = nanoseconds; + + if (!_time_period_is_set) + sample_profiler_set_time_granularity (); +} + +uint64_t +ep_sample_profiler_get_sampling_rate (void) +{ + return _sampling_rate_in_ns; +} + +#endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ +#endif /* ENABLE_PERFTRACING */ + +#ifndef EP_INCLUDE_SOURCE_FILES +extern const char quiet_linker_empty_file_warning_eventpipe_sample_profiler; +const char quiet_linker_empty_file_warning_eventpipe_sample_profiler = 0; +#endif diff --git a/src/native/eventpipe/ep-sample-profiler.h b/src/native/eventpipe/ep-sample-profiler.h new file mode 100644 index 000000000000..942442d54d6d --- /dev/null +++ b/src/native/eventpipe/ep-sample-profiler.h @@ -0,0 +1,42 @@ +#ifndef __EVENTPIPE_SAMPLE_PROFILER_H__ +#define __EVENTPIPE_SAMPLE_PROFILER_H__ + +#include + +#ifdef ENABLE_PERFTRACING +#include "ep-rt-config.h" +#include "ep-types.h" + +#undef EP_IMPL_GETTER_SETTER +#ifdef EP_IMPL_SAMPLE_PROFILER_GETTER_SETTER +#define EP_IMPL_GETTER_SETTER +#endif +#include "ep-getter-setter.h" + +/* + * EventPipeSampleProfiler. + */ + +void +ep_sample_profiler_init (EventPipeProviderCallbackDataQueue *provider_callback_data_queue); + +void +ep_sample_profiler_shutdown (void); + +void +ep_sample_profiler_enable (void); + +void +ep_sample_profiler_disable (void); + +void +ep_sample_profiler_can_start_sampling (void); + +void +ep_sample_profiler_set_sampling_rate (uint64_t nanoseconds); + +uint64_t +ep_sample_profiler_get_sampling_rate (void); + +#endif /* ENABLE_PERFTRACING */ +#endif /* __EVENTPIPE_SAMPLE_PROFILER_H__ */ diff --git a/src/mono/mono/eventpipe/ep-session-provider.c b/src/native/eventpipe/ep-session-provider.c similarity index 90% rename from src/mono/mono/eventpipe/ep-session-provider.c rename to src/native/eventpipe/ep-session-provider.c index 148ecba12903..0c12ef943e25 100644 --- a/src/mono/mono/eventpipe/ep-session-provider.c +++ b/src/native/eventpipe/ep-session-provider.c @@ -83,6 +83,9 @@ ep_session_provider_list_alloc ( EventPipeSessionProviderList *instance = ep_rt_object_alloc (EventPipeSessionProviderList); ep_raise_error_if_nok (instance != NULL); + ep_rt_session_provider_list_alloc (&instance->providers); + ep_raise_error_if_nok (ep_rt_session_provider_list_is_valid (&instance->providers)); + instance->catch_all_provider = NULL; for (uint32_t i = 0; i < configs_len; ++i) { @@ -102,7 +105,7 @@ ep_session_provider_list_alloc ( ep_provider_config_get_keywords (config), ep_provider_config_get_logging_level (config), ep_provider_config_get_filter_data (config)); - ep_rt_session_provider_list_append (&instance->providers, session_provider); + ep_raise_error_if_nok (ep_rt_session_provider_list_append (&instance->providers, session_provider)); } } @@ -136,10 +139,10 @@ bool ep_session_provider_list_is_empty (const EventPipeSessionProviderList *session_provider_list) { EP_ASSERT (session_provider_list != NULL); - return (ep_rt_provider_list_is_empty (&session_provider_list->providers) && session_provider_list->catch_all_provider == NULL); + return (ep_rt_session_provider_list_is_empty (&session_provider_list->providers) && session_provider_list->catch_all_provider == NULL); } -void +bool ep_session_provider_list_add_session_provider ( EventPipeSessionProviderList *session_provider_list, EventPipeSessionProvider *session_provider) @@ -147,7 +150,7 @@ ep_session_provider_list_add_session_provider ( EP_ASSERT (session_provider_list != NULL); EP_ASSERT (session_provider != NULL); - ep_rt_session_provider_list_append (&session_provider_list->providers, session_provider); + return ep_rt_session_provider_list_append (&session_provider_list->providers, session_provider); } #endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ diff --git a/src/mono/mono/eventpipe/ep-session-provider.h b/src/native/eventpipe/ep-session-provider.h similarity index 99% rename from src/mono/mono/eventpipe/ep-session-provider.h rename to src/native/eventpipe/ep-session-provider.h index 9018c48216e1..6c01e74d40be 100644 --- a/src/mono/mono/eventpipe/ep-session-provider.h +++ b/src/native/eventpipe/ep-session-provider.h @@ -84,7 +84,7 @@ ep_session_provider_list_clear (EventPipeSessionProviderList *session_provider_l bool ep_session_provider_list_is_empty (const EventPipeSessionProviderList *session_provider_list); -void +bool ep_session_provider_list_add_session_provider ( EventPipeSessionProviderList *session_provider_list, EventPipeSessionProvider *session_provider); diff --git a/src/mono/mono/eventpipe/ep-session.c b/src/native/eventpipe/ep-session.c similarity index 85% rename from src/mono/mono/eventpipe/ep-session.c rename to src/native/eventpipe/ep-session.c index 074fe6917f21..722140429294 100644 --- a/src/mono/mono/eventpipe/ep-session.c +++ b/src/native/eventpipe/ep-session.c @@ -37,40 +37,45 @@ EP_RT_DEFINE_THREAD_FUNC (streaming_thread) if (data == NULL) return 1; - EventPipeSession *const session = (EventPipeSession *)data; + ep_rt_thread_params_t *thread_params = (ep_rt_thread_params_t *)data; + + EventPipeSession *const session = (EventPipeSession *)thread_params->thread_params; if (session->session_type != EP_SESSION_TYPE_IPCSTREAM) return 1; - ep_rt_thread_setup (true); + if (!thread_params->thread || !ep_rt_thread_has_started (thread_params->thread)) + return 1; + session->ipc_streaming_thread = ep_thread_get_or_create (); bool success = true; - ep_rt_wait_event_handle_t *wait_event = (ep_rt_wait_event_handle_t *)ep_session_get_wait_event (session); - - while (ep_session_get_ipc_streaming_enabled (session)) { - bool events_written = false; - if (!ep_session_write_all_buffers_to_file (session, &events_written)) { - success = false; - break; + ep_rt_wait_event_handle_t *wait_event = ep_session_get_wait_event (session); + + EP_GCX_PREEMP_ENTER + while (ep_session_get_ipc_streaming_enabled (session)) { + bool events_written = false; + if (!ep_session_write_all_buffers_to_file (session, &events_written)) { + success = false; + break; + } + + if (!events_written) { + // No events were available, sleep until more are available + ep_rt_wait_event_wait (wait_event, EP_INFINITE_WAIT, false); + } + + // Wait until it's time to sample again. + const uint32_t timeout_ns = 100000000; // 100 msec. + ep_rt_thread_sleep (timeout_ns); } - if (!events_written) { - // No events were available, sleep until more are available - ep_rt_wait_event_wait (wait_event, EP_INFINITE_WAIT, false); - } - - // Wait until it's time to sample again. - const uint32_t timeout_ns = 100000000; // 100 msec. - ep_rt_thread_sleep (timeout_ns); - } - - ep_rt_wait_event_set (&session->rt_thread_shutdown_event); + ep_rt_wait_event_set (&session->rt_thread_shutdown_event); + EP_GCX_PREEMP_EXIT if (!success) ep_disable ((EventPipeSessionID)session); session->ipc_streaming_thread = NULL; - ep_rt_thread_teardown (); return (ep_rt_thread_start_func_return_t)0; } @@ -86,9 +91,11 @@ session_create_ipc_streaming_thread (EventPipeSession *session) ep_session_set_ipc_streaming_enabled (session, true); ep_rt_wait_event_alloc (&session->rt_thread_shutdown_event, true, false); + if (!ep_rt_wait_event_is_valid (&session->rt_thread_shutdown_event)) + EP_ASSERT (!"Unable to create IPC stream flushing thread shutdown event."); ep_rt_thread_id_t thread_id = 0; - if (!ep_rt_thread_create ((void *)streaming_thread, (void *)session, &thread_id)) + if (!ep_rt_thread_create ((void *)streaming_thread, (void *)session, EP_THREAD_TYPE_SESSION, &thread_id)) EP_ASSERT (!"Unable to create IPC stream flushing thread."); } @@ -97,7 +104,7 @@ void session_disable_ipc_streaming_thread (EventPipeSession *session) { EP_ASSERT (session->session_type == EP_SESSION_TYPE_IPCSTREAM); - EP_ASSERT (ep_session_get_ipc_streaming_enabled (session) == true); + EP_ASSERT (ep_session_get_ipc_streaming_enabled (session)); EP_ASSERT (!ep_rt_process_detach ()); EP_ASSERT (session->buffer_manager != NULL); @@ -192,6 +199,7 @@ ep_session_alloc ( instance->session_start_time = ep_system_timestamp_get (); instance->session_start_timestamp = ep_perf_timestamp_get (); + instance->paused = false; ep_on_exit: ep_requires_lock_held (); @@ -211,7 +219,7 @@ ep_session_free (EventPipeSession *session) { ep_return_void_if_nok (session != NULL); - EP_ASSERT (ep_session_get_ipc_streaming_enabled (session) == false); + EP_ASSERT (!ep_session_get_ipc_streaming_enabled (session)); ep_rt_wait_event_free (&session->rt_thread_shutdown_event); @@ -246,13 +254,15 @@ ep_session_get_session_provider ( return session_provider; } -void +bool ep_session_enable_rundown (EventPipeSession *session) { EP_ASSERT (session != NULL); ep_requires_lock_held (); + bool result = false; + //! This is CoreCLR specific keywords for native ETW events (ending up in event pipe). //! The keywords below seems to correspond to: //! LoaderKeyword (0x00000008) @@ -280,20 +290,32 @@ ep_session_enable_rundown (EventPipeSession *session) ep_provider_config_get_logging_level (config), ep_provider_config_get_filter_data (config)); - ep_session_add_session_provider (session, session_provider); + ep_raise_error_if_nok (ep_session_add_session_provider (session, session_provider)); } ep_session_set_rundown_enabled (session, true); + result = true; +ep_on_exit: ep_requires_lock_held (); - return; + return result; + +ep_on_error: + EP_ASSERT (!result); + ep_exit_error_handler (); } void ep_session_execute_rundown (EventPipeSession *session) { - // TODO: Implement. This is mainly runtime specific implementation - //since it will emit native trace events into the pipe (using CoreCLR's ETW support). + EP_ASSERT (session != NULL); + + // Lock must be held by ep_disable. + ep_requires_lock_held (); + + ep_return_void_if_nok (session->file != NULL); + + ep_rt_execute_rundown (); } void @@ -302,15 +324,14 @@ ep_session_suspend_write_event (EventPipeSession *session) EP_ASSERT (session != NULL); // Need to disable the session before calling this method. - EP_ASSERT (ep_is_session_enabled ((EventPipeSessionID)session) == false); + EP_ASSERT (!ep_is_session_enabled ((EventPipeSessionID)session)); ep_rt_thread_array_t threads; ep_rt_thread_array_alloc (&threads); ep_thread_get_threads (&threads); - ep_rt_thread_array_iterator_t threads_iterator; - ep_rt_thread_array_iterator_begin (&threads, &threads_iterator); + ep_rt_thread_array_iterator_t threads_iterator = ep_rt_thread_array_iterator_begin (&threads); while (!ep_rt_thread_array_iterator_end (&threads, &threads_iterator)) { EventPipeThread *thread = ep_rt_thread_array_iterator_value (&threads_iterator); if (thread) { @@ -321,7 +342,7 @@ ep_session_suspend_write_event (EventPipeSession *session) // session once its done with the current write ep_thread_release (thread); } - ep_rt_thread_array_iterator_next (&threads, &threads_iterator); + ep_rt_thread_array_iterator_next (&threads_iterator); } ep_rt_thread_array_free (&threads); @@ -371,17 +392,20 @@ bool ep_session_is_valid (const EventPipeSession *session) { EP_ASSERT (session != NULL); + + ep_requires_lock_held (); + return !ep_session_provider_list_is_empty (session->providers); } -void +bool ep_session_add_session_provider (EventPipeSession *session, EventPipeSessionProvider *session_provider) { EP_ASSERT (session != NULL); ep_requires_lock_held (); - ep_session_provider_list_add_session_provider (session->providers, session_provider); + return ep_session_provider_list_add_session_provider (session->providers, session_provider); } void @@ -416,17 +440,20 @@ ep_session_write_all_buffers_to_file (EventPipeSession *session, bool *events_wr bool ep_session_write_event ( EventPipeSession *session, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack) { EP_ASSERT (session != NULL); EP_ASSERT (ep_event != NULL); + if (session->paused) + return true; + bool result = false; // Filter events specific to "this" session based on precomputed flag on provider/events. @@ -478,17 +505,17 @@ ep_session_get_next_event (EventPipeSession *session) return ep_buffer_manager_get_next_event (session->buffer_manager); } -EventPipeWaitHandle +ep_rt_wait_event_handle_t * ep_session_get_wait_event (EventPipeSession *session) { EP_ASSERT (session != NULL); if (!session->buffer_manager) { EP_ASSERT (!"Shouldn't call get_wait_event on a synchronous session."); - return (EventPipeWaitHandle)NULL; + return NULL; } - return ep_rt_wait_event_get_wait_handle (ep_buffer_manager_get_rt_wait_event_ref (session->buffer_manager)); + return ep_buffer_manager_get_rt_wait_event_ref (session->buffer_manager); } uint64_t @@ -530,6 +557,20 @@ ep_session_set_ipc_streaming_enabled ( ep_rt_volatile_store_uint32_t (&session->ipc_streaming_enabled, (enabled) ? 1 : 0); } +void +ep_session_pause (EventPipeSession *session) +{ + EP_ASSERT (session != NULL); + session->paused = true; +} + +void +ep_session_resume (EventPipeSession *session) +{ + EP_ASSERT (session != NULL); + session->paused = false; +} + #endif /* !defined(EP_INCLUDE_SOURCE_FILES) || defined(EP_FORCE_INCLUDE_SOURCE_FILES) */ #endif /* ENABLE_PERFTRACING */ diff --git a/src/mono/mono/eventpipe/ep-session.h b/src/native/eventpipe/ep-session.h similarity index 88% rename from src/mono/mono/eventpipe/ep-session.h rename to src/native/eventpipe/ep-session.h index d26ca4dd75e3..03f4ba64a6bc 100644 --- a/src/mono/mono/eventpipe/ep-session.h +++ b/src/native/eventpipe/ep-session.h @@ -53,6 +53,11 @@ struct _EventPipeSession_Internal { EventPipeSerializationFormat format; // For determininig if a particular session needs rundown events. bool rundown_requested; + // Note - access to this field is NOT synchronized + // This functionality is a workaround because we couldn't safely enable/disable the session where we wanted to due to lock-leveling. + // we expect to remove it in the future once that limitation is resolved other scenarios are discouraged from using this given that + // we plan to make it go away + bool paused; }; #if !defined(EP_INLINE_GETTER_SETTER) && !defined(EP_IMPL_SESSION_GETTER_SETTER) @@ -93,7 +98,7 @@ ep_session_get_session_provider ( const EventPipeProvider *provider); // _Requires_lock_held (ep) -void +bool ep_session_enable_rundown (EventPipeSession *session); // _Requires_lock_held (ep) @@ -124,7 +129,7 @@ ep_session_start_streaming (EventPipeSession *session); bool ep_session_is_valid (const EventPipeSession *session); -void +bool ep_session_add_session_provider ( EventPipeSession *session, EventPipeSessionProvider *session_provider); @@ -146,18 +151,18 @@ ep_session_write_all_buffers_to_file ( bool ep_session_write_event ( EventPipeSession *session, - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack); EventPipeEventInstance * ep_session_get_next_event (EventPipeSession *session); -EventPipeWaitHandle +ep_rt_wait_event_handle_t * ep_session_get_wait_event (EventPipeSession *session); uint64_t @@ -179,5 +184,13 @@ ep_session_set_ipc_streaming_enabled ( EventPipeSession *session, bool enabled); +// Please do not use this function, see EventPipeSession paused field for more information. +void +ep_session_pause (EventPipeSession *session); + +// Please do not use this function, see EventPipeSession paused field for more information. +void +ep_session_resume (EventPipeSession *session); + #endif /* ENABLE_PERFTRACING */ #endif /* __EVENTPIPE_SESSION_H__ */ diff --git a/src/mono/mono/eventpipe/ep-stack-contents.c b/src/native/eventpipe/ep-stack-contents.c similarity index 100% rename from src/mono/mono/eventpipe/ep-stack-contents.c rename to src/native/eventpipe/ep-stack-contents.c diff --git a/src/mono/mono/eventpipe/ep-stack-contents.h b/src/native/eventpipe/ep-stack-contents.h similarity index 94% rename from src/mono/mono/eventpipe/ep-stack-contents.h rename to src/native/eventpipe/ep-stack-contents.h index 08c4ae08b0b8..d83885ed46b4 100644 --- a/src/mono/mono/eventpipe/ep-stack-contents.h +++ b/src/native/eventpipe/ep-stack-contents.h @@ -31,6 +31,10 @@ struct _EventPipeStackContents_Internal { ep_rt_method_desc_t *methods [EP_MAX_STACK_DEPTH]; #endif + // TODO: Look at optimizing this when writing into buffer manager. + // Only write up to next available frame to better utilize memory. + // Even events not requesting a stack will still waste space in buffer manager. + // Needs to go first since it dictates size of struct. // The next available slot in stack_frames. uint32_t next_available_frame; }; diff --git a/src/mono/mono/eventpipe/ep-stream.c b/src/native/eventpipe/ep-stream.c similarity index 97% rename from src/mono/mono/eventpipe/ep-stream.c rename to src/native/eventpipe/ep-stream.c index cf5447e341a3..bc371f3461f8 100644 --- a/src/mono/mono/eventpipe/ep-stream.c +++ b/src/native/eventpipe/ep-stream.c @@ -154,7 +154,7 @@ fast_serializer_write_serialization_type ( // Write the SerializationType TypeName field. const ep_char8_t *type_name = ep_fast_serializable_object_get_type_name_vcall (fast_serializable_ojbect); if (type_name) - ep_fast_serializer_write_string (fast_serializer, type_name, (uint32_t)ep_rt_utf8_string_len (type_name)); + ep_fast_serializer_write_string (fast_serializer, type_name, (uint32_t)strlen (type_name)); // Write the EndObject tag. ep_fast_serializer_write_tag (fast_serializer, FAST_SERIALIZER_TAGS_END_OBJECT, NULL, 0); @@ -208,7 +208,7 @@ ep_fast_serializer_write_buffer ( EP_ASSERT (buffer != NULL); EP_ASSERT (buffer_len > 0); - ep_return_void_if_nok (fast_serializer->write_error_encountered != true && fast_serializer->stream_writer != NULL); + ep_return_void_if_nok (!fast_serializer->write_error_encountered && fast_serializer->stream_writer != NULL); uint32_t bytes_written = 0; bool result = ep_stream_writer_write (fast_serializer->stream_writer, buffer, buffer_len, &bytes_written); @@ -247,7 +247,7 @@ ep_fast_serializer_write_string ( const ep_char8_t *contents, uint32_t contents_len) { - // Write teh string length. + // Write the string length. ep_fast_serializer_write_buffer (fast_serializer, (const uint8_t *)&contents_len, sizeof (contents_len)); //Wirte the string contents. @@ -298,7 +298,7 @@ ep_file_stream_open_write ( ep_rt_file_handle_t rt_file = ep_rt_file_open_write (path); ep_raise_error_if_nok (rt_file != NULL); - ep_file_stream_set_rt_file (file_stream, rt_file); + file_stream->rt_file = rt_file; return true; ep_on_error: @@ -309,7 +309,9 @@ bool ep_file_stream_close (FileStream *file_stream) { ep_return_false_if_nok (file_stream != NULL); - return ep_rt_file_close (ep_file_stream_get_rt_file (file_stream)); + bool result = ep_rt_file_close (file_stream->rt_file); + file_stream->rt_file = NULL; + return result; } bool @@ -324,7 +326,7 @@ ep_file_stream_write ( EP_ASSERT (bytes_to_write > 0); EP_ASSERT (bytes_written != NULL); - return ep_rt_file_write (ep_file_stream_get_rt_file (file_stream), buffer, bytes_to_write, bytes_written); + return ep_rt_file_write (file_stream->rt_file, buffer, bytes_to_write, bytes_written); } /* @@ -374,7 +376,7 @@ ep_file_stream_writer_alloc (const ep_char8_t *output_file_path) instance->file_stream = ep_file_stream_alloc (); ep_raise_error_if_nok (instance->file_stream != NULL); - ep_raise_error_if_nok (ep_file_stream_open_write (instance->file_stream, output_file_path) == true); + ep_raise_error_if_nok (ep_file_stream_open_write (instance->file_stream, output_file_path)); ep_on_exit: return instance; @@ -593,6 +595,8 @@ ep_ipc_stream_writer_write ( EP_ASSERT (bytes_to_write > 0); EP_ASSERT (bytes_written != NULL); + ep_return_false_if_nok (buffer != NULL && bytes_to_write != 0); + bool result = false; ep_raise_error_if_nok (ep_ipc_stream_writer_get_ipc_stream (ipc_stream_writer) != NULL); diff --git a/src/mono/mono/eventpipe/ep-stream.h b/src/native/eventpipe/ep-stream.h similarity index 100% rename from src/mono/mono/eventpipe/ep-stream.h rename to src/native/eventpipe/ep-stream.h diff --git a/src/mono/mono/eventpipe/ep-thread.c b/src/native/eventpipe/ep-thread.c similarity index 83% rename from src/mono/mono/eventpipe/ep-thread.c rename to src/native/eventpipe/ep-thread.c index 39da171ecaf0..33e246ffcdc1 100644 --- a/src/mono/mono/eventpipe/ep-thread.c +++ b/src/native/eventpipe/ep-thread.c @@ -12,7 +12,7 @@ #include "ep-rt.h" static ep_rt_spin_lock_handle_t _ep_threads_lock = {0}; -static ep_rt_thread_array_t _ep_threads = {0}; +static ep_rt_thread_list_t _ep_threads = {0}; /* * Forward declares of all static functions. @@ -33,14 +33,16 @@ ep_thread_alloc (void) ep_raise_error_if_nok (instance != NULL); ep_rt_spin_lock_alloc (&instance->rt_lock); - ep_raise_error_if_nok (instance->rt_lock.lock != NULL); + ep_raise_error_if_nok (ep_rt_spin_lock_is_valid (&instance->rt_lock)); instance->os_thread_id = ep_rt_current_thread_get_id (); memset (instance->session_state, 0, sizeof (instance->session_state)); - ep_rt_spin_lock_aquire (&_ep_threads_lock); - ep_rt_thread_array_append (&_ep_threads, instance); - ep_rt_spin_lock_release (&_ep_threads_lock); + EP_SPIN_LOCK_ENTER (&_ep_threads_lock, section1) + ep_raise_error_if_nok_holding_spin_lock (ep_rt_thread_list_append (&_ep_threads, instance), section1); + EP_SPIN_LOCK_EXIT (&_ep_threads_lock, section1) + + instance->writing_event_in_progress = UINT32_MAX; ep_on_exit: return instance; @@ -63,26 +65,29 @@ ep_thread_free (EventPipeThread *thread) EP_ASSERT (thread->session_state [i] == NULL); } #endif - - ep_rt_spin_lock_aquire (&_ep_threads_lock); + bool found = false; + EP_SPIN_LOCK_ENTER (&_ep_threads_lock, section1) // Remove ourselves from the global list - ep_rt_thread_array_iterator_t iterator; - bool found = false; - ep_rt_thread_array_iterator_begin (&_ep_threads, &iterator); - while (!ep_rt_thread_array_iterator_end (&_ep_threads, &iterator)) { - if (ep_rt_thread_array_iterator_value (&iterator) == thread) { - ep_rt_thread_array_remove (&_ep_threads, &iterator); + ep_rt_thread_list_iterator_t iterator = ep_rt_thread_list_iterator_begin (&_ep_threads); + while (!ep_rt_thread_list_iterator_end (&_ep_threads, &iterator)) { + if (ep_rt_thread_list_iterator_value (&iterator) == thread) { + ep_rt_thread_list_remove (&_ep_threads, thread); found = true; break; } - ep_rt_thread_array_iterator_next (&_ep_threads, &iterator); + ep_rt_thread_list_iterator_next (&iterator); } - ep_rt_spin_lock_release (&_ep_threads_lock); + EP_SPIN_LOCK_EXIT (&_ep_threads_lock, section1) EP_ASSERT (found || !"We couldn't find ourselves in the global thread list"); +ep_on_exit: ep_rt_spin_lock_free (&thread->rt_lock); ep_rt_object_free (thread); + return; + +ep_on_error: + ep_exit_error_handler (); } void @@ -104,15 +109,24 @@ void ep_thread_init (void) { ep_rt_spin_lock_alloc (&_ep_threads_lock); - ep_rt_thread_array_alloc (&_ep_threads); + if (!ep_rt_spin_lock_is_valid (&_ep_threads_lock)) + EP_ASSERT (!"Failed to allocate threads lock."); + + ep_rt_thread_list_alloc (&_ep_threads); + if (!ep_rt_thread_list_is_valid (&_ep_threads)) + EP_ASSERT (!"Failed to allocate threads list."); } void ep_thread_fini (void) { - EP_ASSERT (ep_rt_thread_array_size (&_ep_threads) == 0); - ep_rt_thread_array_free (&_ep_threads); - ep_rt_spin_lock_free (&_ep_threads_lock); + // If threads are still included in list (depending on runtime shutdown order), + // don't clean up since TLS destructor migh callback freeing items, no new + // threads should however not be added to list at this stage. + if (ep_rt_thread_list_is_empty (&_ep_threads)) { + ep_rt_thread_list_free (&_ep_threads, NULL); + ep_rt_spin_lock_free (&_ep_threads_lock); + } } EventPipeThread * @@ -132,53 +146,24 @@ ep_thread_get_threads (ep_rt_thread_array_t *threads) { EP_ASSERT (threads != NULL); - ep_rt_spin_lock_aquire (&_ep_threads_lock); - ep_rt_thread_array_iterator_t threads_iterator; - ep_rt_thread_array_iterator_begin (&_ep_threads, &threads_iterator); - while (!ep_rt_thread_array_iterator_end (&_ep_threads, &threads_iterator)) { - EventPipeThread *thread = ep_rt_thread_array_iterator_value (&threads_iterator); + EP_SPIN_LOCK_ENTER (&_ep_threads_lock, section1) + ep_rt_thread_list_iterator_t threads_iterator = ep_rt_thread_list_iterator_begin (&_ep_threads); + while (!ep_rt_thread_list_iterator_end (&_ep_threads, &threads_iterator)) { + EventPipeThread *thread = ep_rt_thread_list_iterator_value (&threads_iterator); if (thread) { // Add ref so the thread doesn't disappear when we release the lock ep_thread_addref (thread); ep_rt_thread_array_append (threads, thread); } - ep_rt_thread_array_iterator_next (&_ep_threads, &threads_iterator); + ep_rt_thread_list_iterator_next (&threads_iterator); } - ep_rt_spin_lock_release (&_ep_threads_lock); -} + EP_SPIN_LOCK_EXIT (&_ep_threads_lock, section1) -void -ep_thread_create_activity_id ( - uint8_t *activity_id, - uint32_t activity_id_len) -{ - ep_rt_create_activity_id (activity_id, activity_id_len); -} - -void -ep_thread_get_activity_id ( - EventPipeThread *thread, - uint8_t *activity_id, - uint32_t activity_id_len) -{ - EP_ASSERT (thread != NULL); - EP_ASSERT (activity_id != NULL); - EP_ASSERT (activity_id_len == EP_ACTIVITY_ID_SIZE); - - memcpy (activity_id, &thread->activity_id, EP_ACTIVITY_ID_SIZE); -} - -void -ep_thread_set_activity_id ( - EventPipeThread *thread, - const uint8_t *activity_id, - uint32_t activity_id_len) -{ - EP_ASSERT (thread != NULL); - EP_ASSERT (activity_id != NULL); - EP_ASSERT (activity_id_len == EP_ACTIVITY_ID_SIZE); +ep_on_exit: + return; - memcpy (thread->activity_id, activity_id, EP_ACTIVITY_ID_SIZE); +ep_on_error: + ep_exit_error_handler (); } void diff --git a/src/mono/mono/eventpipe/ep-thread.h b/src/native/eventpipe/ep-thread.h similarity index 91% rename from src/mono/mono/eventpipe/ep-thread.h rename to src/native/eventpipe/ep-thread.h index 7948d9554327..d982e33d73ca 100644 --- a/src/mono/mono/eventpipe/ep-thread.h +++ b/src/native/eventpipe/ep-thread.h @@ -27,9 +27,10 @@ struct _EventPipeThread_Internal { // Some of the data within the ThreadSessionState object can be accessed // without rt_lock however, see the fields of that type for details. EventPipeThreadSessionState *session_state [EP_MAX_NUMBER_OF_SESSIONS]; +#ifdef EP_THREAD_INCLUDE_ACTIVITY_ID uint8_t activity_id [EP_ACTIVITY_ID_SIZE]; +#endif EventPipeSession *rundown_session; - ep_rt_thread_handle_t rt_thread; // This lock is designed to have low contention. Normally it is only taken by this thread, // but occasionally it may also be taken by another thread which is trying to collect and drain // buffers from all threads. @@ -53,7 +54,18 @@ struct _EventPipeThread { }; #endif +#ifdef EP_THREAD_INCLUDE_ACTIVITY_ID EP_DEFINE_GETTER_ARRAY_REF(EventPipeThread *, thread, uint8_t *, const uint8_t *, activity_id, activity_id[0]); +#else +static +inline +const uint8_t * +ep_thread_get_activity_id_cref (ep_rt_thread_activity_id_handle_t activity_id_handle) +{ + return ep_rt_thread_get_activity_id_cref (activity_id_handle); +} +#endif + EP_DEFINE_GETTER(EventPipeThread *, thread, EventPipeSession *, rundown_session); EP_DEFINE_SETTER(EventPipeThread *, thread, EventPipeSession *, rundown_session); EP_DEFINE_GETTER_REF(EventPipeThread *, thread, ep_rt_spin_lock_handle_t *, rt_lock); @@ -87,22 +99,45 @@ ep_thread_get_or_create (void); void ep_thread_get_threads (ep_rt_thread_array_t *threads); +static +inline void ep_thread_create_activity_id ( uint8_t *activity_id, - uint32_t activity_id_len); + uint32_t activity_id_len) +{ + ep_rt_create_activity_id (activity_id, activity_id_len); +} +static +inline +ep_rt_thread_activity_id_handle_t +ep_thread_get_activity_id_handle (void) +{ + return ep_rt_thread_get_activity_id_handle (); +} + +static +inline void ep_thread_get_activity_id ( - EventPipeThread *thread, + ep_rt_thread_activity_id_handle_t activity_id_handle, uint8_t *activity_id, - uint32_t activity_id_len); + uint32_t activity_id_len) +{ + ep_rt_thread_get_activity_id (activity_id_handle, activity_id, activity_id_len); +} +static +inline void ep_thread_set_activity_id ( - EventPipeThread *thread, + ep_rt_thread_activity_id_handle_t activity_id_handle, const uint8_t *activity_id, - uint32_t activity_id_len); + uint32_t activity_id_len) +{ + ep_rt_thread_set_activity_id (activity_id_handle, activity_id, activity_id_len); +} static inline diff --git a/src/mono/mono/eventpipe/ep-types.h b/src/native/eventpipe/ep-types.h similarity index 91% rename from src/mono/mono/eventpipe/ep-types.h rename to src/native/eventpipe/ep-types.h index 2d2b3044e964..86c34f3fcdc2 100644 --- a/src/mono/mono/eventpipe/ep-types.h +++ b/src/native/eventpipe/ep-types.h @@ -6,7 +6,6 @@ #ifdef ENABLE_PERFTRACING #include #include -#include "ep-rt-types.h" #undef EP_IMPL_GETTER_SETTER #ifdef EP_IMPL_EP_GETTER_SETTER @@ -35,6 +34,7 @@ typedef struct _EventPipeEventMetadataEvent EventPipeEventMetadataEvent; typedef struct _EventPipeEventPayload EventPipeEventPayload; typedef struct _EventPipeEventSource EventPipeEventSource; typedef struct _EventPipeFile EventPipeFile; +typedef struct _EventPipeJsonFile EventPipeJsonFile; typedef struct _EventPipeMetadataBlock EventPipeMetadataBlock; typedef struct _EventPipeParameterDesc EventPipeParameterDesc; typedef struct _EventPipeProvider EventPipeProvider; @@ -81,7 +81,7 @@ typedef enum { } EventPipeBufferState; typedef enum { - EP_EVENT_LEVEL_LOG_ALWAYS, + EP_EVENT_LEVEL_LOGALWAYS, EP_EVENT_LEVEL_CRITICAL, EP_EVENT_LEVEL_ERROR, EP_EVENT_LEVEL_WARNING, @@ -107,9 +107,9 @@ typedef enum { EP_PARAMETER_TYPE_OBJECT = 1, // Instance that isn't a value EP_PARAMETER_TYPE_DB_NULL = 2, // Database null value EP_PARAMETER_TYPE_BOOLEAN = 3, // Boolean - EP_PARAMETER_TYPE_CHAR = 4, // Unicode character + EP_PARAMETER_TYPE_CHAR = 4, // Unicode character EP_PARAMETER_TYPE_SBYTE = 5, // Signed 8-bit integer - EP_PARAMETER_TYPE_BYTE = 6, // Unsigned 8-bit integer + EP_PARAMETER_TYPE_BYTE = 6, // Unsigned 8-bit integer EP_PARAMETER_TYPE_INT16 = 7, // Signed 16-bit integer EP_PARAMETER_TYPE_UINT16 = 8, // Unsigned 16-bit integer EP_PARAMETER_TYPE_INT32 = 9, // Signed 32-bit integer @@ -130,6 +130,12 @@ typedef enum { EP_METADATA_TAG_PARAMETER_PAYLOAD = 2 } EventPipeMetadataTag; +typedef enum { + EP_SAMPLE_PROFILER_SAMPLE_TYPE_ERROR = 0, + EP_SAMPLE_PROFILER_SAMPLE_TYPE_EXTERNAL = 1, + EP_SAMPLE_PROFILER_SAMPLE_TYPE_MANAGED = 2 +} EventPipeSampleProfilerSampleType; + typedef enum { // Default format used in .Net Core 2.0-3.0 Preview 6 // TBD - it may remain the default format .Net Core 3.0 when @@ -157,6 +163,12 @@ typedef enum { EP_STATE_SHUTTING_DOWN } EventPipeState; +typedef enum { + EP_THREAD_TYPE_SERVER, + EP_THREAD_TYPE_SESSION, + EP_THREAD_TYPE_SAMPLING +} EventPipeThreadType; + /* * EventPipe Basic Types. */ @@ -168,6 +180,8 @@ typedef unsigned short ep_char16_t; typedef int64_t ep_timestamp_t; typedef int64_t ep_system_timestamp_t; +#include "ep-rt-types.h" + /* * EventPipe Callbacks. */ @@ -188,15 +202,15 @@ typedef void (*EventPipeCallbackDataFree)( typedef void (*EventPipeSessionSynchronousCallback)( EventPipeProvider *provider, - int32_t event_id, - int32_t event_version, + uint32_t event_id, + uint32_t event_version, uint32_t metadata_blob_len, const uint8_t *metadata_blob, uint32_t event_data_len, const uint8_t *event_data, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, uint32_t stack_frames_len, uintptr_t *stack_frames); @@ -329,7 +343,7 @@ ep_provider_callback_data_queue_init (EventPipeProviderCallbackDataQueue *provid void ep_provider_callback_data_queue_fini (EventPipeProviderCallbackDataQueue *provider_callback_data_queue); -void +bool ep_provider_callback_data_queue_enqueue ( EventPipeProviderCallbackDataQueue *provider_callback_data_queue, EventPipeProviderCallbackData *provider_callback_data); @@ -377,6 +391,46 @@ ep_provider_config_init ( void ep_provider_config_fini (EventPipeProviderConfiguration *provider_config); +static +inline +const ep_char8_t * +ep_config_get_default_provider_name_utf8 (void) +{ + return "Microsoft-DotNETCore-EventPipeConfiguration"; +} + +static +inline +const ep_char8_t * +ep_config_get_public_provider_name_utf8 (void) +{ + return "Microsoft-Windows-DotNETRuntime"; +} + +static +inline +const ep_char8_t * +ep_config_get_private_provider_name_utf8 (void) +{ + return "Microsoft-Windows-DotNETRuntimePrivate"; +} + +static +inline +const ep_char8_t * +ep_config_get_rundown_provider_name_utf8 (void) +{ + return "Microsoft-Windows-DotNETRuntimeRundown"; +} + +static +inline +const ep_char8_t * +ep_config_get_sample_profiler_provider_name_utf8 (void) +{ + return "Microsoft-DotNETCore-SampleProfiler"; +} + /* * EventPipeSystemTime. */ diff --git a/src/mono/mono/eventpipe/ep.c b/src/native/eventpipe/ep.c similarity index 87% rename from src/mono/mono/eventpipe/ep.c rename to src/native/eventpipe/ep.c index 27e2646618ea..585f772b2a21 100644 --- a/src/mono/mono/eventpipe/ep.c +++ b/src/native/eventpipe/ep.c @@ -15,8 +15,10 @@ #include "ep-event-payload.c" #include "ep-event-source.c" #include "ep-file.c" +#include "ep-json-file.c" #include "ep-metadata-generator.c" #include "ep-provider.c" +#include "ep-sample-profiler.c" #include "ep-session.c" #include "ep-session-provider.c" #include "ep-stack-contents.c" @@ -33,6 +35,7 @@ #include "ep-provider.h" #include "ep-provider-internals.h" #include "ep-session.h" +#include "ep-sample-profiler.h" #endif static bool _ep_can_start_threads = false; @@ -87,7 +90,7 @@ disable_holding_lock ( static void -disable (EventPipeSessionID id); +disable_helper (EventPipeSessionID id); static void @@ -100,12 +103,12 @@ write_event ( static void write_event_2 ( - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack); static @@ -211,7 +214,7 @@ ep_provider_callback_data_queue_init (EventPipeProviderCallbackDataQueue *provid { EP_ASSERT (provider_callback_data_queue != NULL); ep_rt_provider_callback_data_queue_alloc (&provider_callback_data_queue->queue); - return provider_callback_data_queue; + return ep_rt_provider_callback_data_queue_is_valid (&provider_callback_data_queue->queue) ? provider_callback_data_queue : NULL; } void @@ -412,9 +415,7 @@ enable ( { EP_ASSERT (format < EP_SERIALIZATION_FORMAT_COUNT); EP_ASSERT (session_type == EP_SESSION_TYPE_SYNCHRONOUS || circular_buffer_size_in_mb > 0); - EP_ASSERT (providers_len > 0); - EP_ASSERT (providers != NULL); - EP_ASSERT ((session_type == EP_SESSION_TYPE_FILE && output_path != NULL) ||(session_type == EP_SESSION_TYPE_IPCSTREAM && stream != NULL)); + EP_ASSERT (providers_len > 0 && providers != NULL); ep_requires_lock_held (); @@ -439,7 +440,7 @@ enable ( providers_len, sync_callback); - ep_raise_error_if_nok (session != NULL && ep_session_is_valid (session) == true); + ep_raise_error_if_nok (session != NULL && ep_session_is_valid (session)); session_id = (EventPipeSessionID)session; @@ -455,10 +456,10 @@ enable ( } // Register the SampleProfiler the very first time (if supported). - ep_rt_sample_profiler_init (provider_callback_data_queue); + ep_sample_profiler_init (provider_callback_data_queue); // Enable the EventPipe EventSource. - ep_event_source_enable (ep_event_source_get (), session); + ep_raise_error_if_nok (ep_event_source_enable (ep_event_source_get (), session)); // Save the session. if (ep_volatile_load_session_without_barrier (ep_session_get_index (session)) != NULL) { @@ -475,7 +476,7 @@ enable ( config_enable_disable (ep_config_get (), session, provider_callback_data_queue, true); if (session_requested_sampling (session)) - ep_rt_sample_profiler_enable (); + ep_sample_profiler_enable (); ep_on_exit: ep_requires_lock_held (); @@ -492,10 +493,7 @@ void log_process_info_event (EventPipeEventSource *event_source) { // Get the managed command line. - const ep_char8_t *cmd_line = ep_rt_managed_command_line_get (); - - if (cmd_line == NULL) - cmd_line = ep_rt_os_command_line_get (); + const ep_char8_t *cmd_line = ep_rt_diagnostics_command_line_get (); // Log the process information event. ep_event_source_send_process_info (event_source, cmd_line); @@ -517,7 +515,7 @@ disable_holding_lock ( if (session_requested_sampling (session)) { // Disable the profiler. - ep_rt_sample_profiler_disable (); + ep_sample_profiler_disable (); } // Log the process information event. @@ -531,7 +529,7 @@ disable_holding_lock ( // Do rundown before fully stopping the session unless rundown wasn't requested if (ep_session_get_rundown_requested (session) && _ep_can_start_threads) { ep_session_enable_rundown (session); // Set Rundown provider. - EventPipeThread *const thread = ep_thread_get (); + EventPipeThread *const thread = ep_thread_get_or_create (); if (thread != NULL) { ep_thread_set_as_rundown_thread (thread, session); { @@ -578,12 +576,12 @@ disable_holding_lock ( static void -disable (EventPipeSessionID id) +disable_helper (EventPipeSessionID id) { ep_requires_lock_not_held (); if (_ep_can_start_threads) - ep_rt_thread_setup (false); + ep_rt_thread_setup (); if (id == 0) return; @@ -599,11 +597,18 @@ disable (EventPipeSessionID id) disable_holding_lock (id, provider_callback_data_queue); EP_LOCK_EXIT (section1) - while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) + while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) { + ep_rt_prepare_provider_invoke_callback (&provider_callback_data); provider_invoke_callback (&provider_callback_data); + } ep_provider_callback_data_queue_fini (provider_callback_data_queue); +#ifdef EP_CHECKED_BUILD + if (ep_volatile_load_number_of_sessions () == 0) + EP_ASSERT (ep_rt_providers_validate_all_disabled ()); +#endif + EP_GCX_PREEMP_EXIT ep_on_exit: @@ -629,15 +634,15 @@ write_event ( ep_return_void_if_nok (ep_volatile_load_eventpipe_state () == EP_STATE_INITIALIZED); // Exit early if the event is not enabled. - ep_return_void_if_nok (ep_event_is_enabled (ep_event) == true); + ep_return_void_if_nok (ep_event_is_enabled (ep_event)); // Get current thread. - EventPipeThread *const thread = ep_thread_get_or_create (); + ep_rt_thread_handle_t thread = ep_rt_thread_get_handle (); // If the activity id isn't specified AND we are in a eventpipe thread, pull it from the current thread. - // If pThread is NULL (we aren't in writing from a managed thread) then pActivityId can be NULL + // If pThread is NULL (we aren't in writing from a managed thread) then activity_id can be NULL if (activity_id == NULL && thread != NULL) - activity_id = ep_thread_get_activity_id_cref (thread); + activity_id = ep_thread_get_activity_id_cref (ep_thread_get_activity_id_handle ()); write_event_2 ( thread, @@ -652,12 +657,12 @@ write_event ( static void write_event_2 ( - EventPipeThread *thread, + ep_rt_thread_handle_t thread, EventPipeEvent *ep_event, EventPipeEventPayload *payload, const uint8_t *activity_id, const uint8_t *related_activity_id, - EventPipeThread *event_thread, + ep_rt_thread_handle_t event_thread, EventPipeStackContents *stack) { EP_ASSERT (ep_event != NULL); @@ -839,15 +844,15 @@ bool session_requested_sampling (EventPipeSession *session) { EP_ASSERT (session != NULL); - return ep_rt_session_provider_list_find_by_name (ep_session_provider_list_get_providers_cref (ep_session_get_providers (session)), "Microsoft-DotNETCore-SampleProfiler"); + return ep_rt_session_provider_list_find_by_name (ep_session_provider_list_get_providers_cref (ep_session_get_providers (session)), ep_config_get_sample_profiler_provider_name_utf8 ()); } -// TODO: Replace with diagnostic server port implementation. static bool ipc_stream_factory_any_suspended_ports (void) { - return false; + extern bool ds_ipc_stream_factory_any_suspended_ports (void); + return ds_ipc_stream_factory_any_suspended_ports (); } #ifdef EP_CHECKED_BUILD @@ -907,8 +912,10 @@ ep_enable ( sync_callback); EP_LOCK_EXIT (section1) - while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) + while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) { + ep_rt_prepare_provider_invoke_callback (&provider_callback_data); provider_invoke_callback (&provider_callback_data); + } ep_on_exit: ep_provider_callback_data_queue_fini (provider_callback_data_queue); @@ -934,7 +941,7 @@ ep_enable_2 ( const ep_char8_t *providers_config_to_parse = providers_config; int32_t providers_len = 0; EventPipeProviderConfiguration *providers = NULL; - int current_provider = 0; + int32_t current_provider = 0; uint64_t session_id = 0; // If no specific providers config is used, enable EventPipe session @@ -945,9 +952,9 @@ ep_enable_2 ( providers = ep_rt_object_array_alloc (EventPipeProviderConfiguration, providers_len); ep_raise_error_if_nok (providers != NULL); - ep_provider_config_init (&providers [0], ep_rt_utf8_string_dup ("Microsoft-Windows-DotNETRuntime"), 0x4c14fccbd, EP_EVENT_LEVEL_VERBOSE, NULL); - ep_provider_config_init (&providers [1], ep_rt_utf8_string_dup ("Microsoft-Windows-DotNETRuntimePrivate"), 0x4002000b, EP_EVENT_LEVEL_VERBOSE, NULL); - ep_provider_config_init (&providers [2], ep_rt_utf8_string_dup ("Microsoft-DotNETCore-SampleProfiler"), 0x0, EP_EVENT_LEVEL_VERBOSE, NULL); + ep_provider_config_init (&providers [0], ep_rt_utf8_string_dup (ep_config_get_public_provider_name_utf8 ()), 0x4c14fccbd, EP_EVENT_LEVEL_VERBOSE, NULL); + ep_provider_config_init (&providers [1], ep_rt_utf8_string_dup (ep_config_get_private_provider_name_utf8 ()), 0x4002000b, EP_EVENT_LEVEL_VERBOSE, NULL); + ep_provider_config_init (&providers [2], ep_rt_utf8_string_dup (ep_config_get_sample_profiler_provider_name_utf8 ()), 0x0, EP_EVENT_LEVEL_VERBOSE, NULL); } else { // Count number of providers to parse. while (*providers_config_to_parse != '\0') { @@ -1046,7 +1053,7 @@ ep_disable (EventPipeSessionID id) } EP_LOCK_EXIT (section1) - disable (id); + disable_helper (id); ep_on_exit: ep_requires_lock_not_held (); @@ -1068,7 +1075,7 @@ ep_get_session (EventPipeSessionID session_id) ep_raise_error_holding_lock (section1); } - ep_raise_error_if_nok_holding_lock (is_session_id_in_collection (session_id) == true, section1); + ep_raise_error_if_nok_holding_lock (is_session_id_in_collection (session_id), section1); EP_LOCK_EXIT (section1) @@ -1094,7 +1101,7 @@ ep_start_streaming (EventPipeSessionID session_id) ep_requires_lock_not_held (); EP_LOCK_ENTER (section1) - ep_raise_error_if_nok_holding_lock (is_session_id_in_collection (session_id) == true, section1); + ep_raise_error_if_nok_holding_lock (is_session_id_in_collection (session_id), section1); if (_ep_can_start_threads) ep_session_start_streaming ((EventPipeSession *)session_id); else @@ -1137,8 +1144,10 @@ ep_create_provider ( ep_raise_error_if_nok_holding_lock (provider != NULL, section1); EP_LOCK_EXIT (section1) - while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) + while (ep_provider_callback_data_queue_try_dequeue (provider_callback_data_queue, &provider_callback_data)) { + ep_rt_prepare_provider_invoke_callback (&provider_callback_data); provider_invoke_callback (&provider_callback_data); + } ep_rt_notify_profiler_provider_created (provider); @@ -1204,24 +1213,29 @@ ep_get_provider (const ep_char8_t *provider_name) ep_exit_error_handler (); } -void +bool ep_add_provider_to_session ( EventPipeSessionProvider *provider, EventPipeSession *session) { - ep_return_void_if_nok (provider != NULL && session != NULL); + ep_return_false_if_nok (provider != NULL && session != NULL); ep_requires_lock_not_held (); + bool result = false; + EP_LOCK_ENTER (section1) - ep_session_add_session_provider (session, provider); + ep_raise_error_if_nok_holding_lock (ep_session_add_session_provider (session, provider), section1); EP_LOCK_EXIT (section1) + result = true; + ep_on_exit: ep_requires_lock_not_held (); - return; + return result; ep_on_error: + EP_ASSERT (!result); ep_exit_error_handler (); } @@ -1252,13 +1266,13 @@ ep_init (void) // Set the sampling rate for the sample profiler. const uint32_t default_profiler_sample_rate_in_nanoseconds = 1000000; // 1 msec. - ep_rt_sample_profiler_set_sampling_rate (default_profiler_sample_rate_in_nanoseconds); + ep_sample_profiler_set_sampling_rate (default_profiler_sample_rate_in_nanoseconds); ep_rt_session_id_array_alloc (&_ep_deferred_enable_session_ids); ep_rt_session_id_array_alloc (&_ep_deferred_disable_session_ids); EP_LOCK_ENTER (section1) - ep_volatile_store_eventpipe_state_without_barrier (EP_STATE_INITIALIZED); + ep_volatile_store_eventpipe_state (EP_STATE_INITIALIZED); EP_LOCK_EXIT (section1) enable_default_session_via_env_variables (); @@ -1279,34 +1293,32 @@ ep_finish_init (void) // Enable streaming for any deferred sessions EP_LOCK_ENTER (section1) _ep_can_start_threads = true; - if (ep_volatile_load_eventpipe_state_without_barrier () == EP_STATE_INITIALIZED) { - ep_rt_session_id_array_iterator_t deferred_session_ids_iterator; - ep_rt_session_id_array_iterator_begin (&_ep_deferred_enable_session_ids, &deferred_session_ids_iterator); + if (ep_volatile_load_eventpipe_state () == EP_STATE_INITIALIZED) { + ep_rt_session_id_array_iterator_t deferred_session_ids_iterator = ep_rt_session_id_array_iterator_begin (&_ep_deferred_enable_session_ids); while (!ep_rt_session_id_array_iterator_end (&_ep_deferred_enable_session_ids, &deferred_session_ids_iterator)) { EventPipeSessionID session_id = ep_rt_session_id_array_iterator_value (&deferred_session_ids_iterator); if (is_session_id_in_collection (session_id)) ep_session_start_streaming ((EventPipeSession *)session_id); - ep_rt_session_id_array_iterator_next (&_ep_deferred_enable_session_ids, &deferred_session_ids_iterator); + ep_rt_session_id_array_iterator_next (&deferred_session_ids_iterator); } - ep_rt_session_id_array_clear (&_ep_deferred_enable_session_ids, NULL); + ep_rt_session_id_array_clear (&_ep_deferred_enable_session_ids); } - ep_rt_sample_profiler_can_start_sampling (); + ep_sample_profiler_can_start_sampling (); EP_LOCK_EXIT (section1) // release lock in case someone tried to disable while we held it // _ep_deferred_disable_session_ids is now safe to access without the // lock since we've set _ep_can_start_threads to true inside the lock. Anyone // who was waiting on that lock will see that state and not mutate the defer list - if (ep_volatile_load_eventpipe_state_without_barrier () == EP_STATE_INITIALIZED) { - ep_rt_session_id_array_iterator_t deferred_session_ids_iterator; - ep_rt_session_id_array_iterator_begin (&_ep_deferred_disable_session_ids, &deferred_session_ids_iterator); - while (!ep_rt_session_id_array_iterator_end (&_ep_deferred_disable_session_ids, &deferred_session_ids_iterator)) { - EventPipeSessionID session_id = ep_rt_session_id_array_iterator_value (&deferred_session_ids_iterator); - disable (session_id); - ep_rt_session_id_array_iterator_next (&_ep_deferred_disable_session_ids, &deferred_session_ids_iterator); + if (ep_volatile_load_eventpipe_state () == EP_STATE_INITIALIZED) { + ep_rt_session_id_array_iterator_t deferred_disable_session_ids_iterator = ep_rt_session_id_array_iterator_begin (&_ep_deferred_disable_session_ids); + while (!ep_rt_session_id_array_iterator_end (&_ep_deferred_disable_session_ids, &deferred_disable_session_ids_iterator)) { + EventPipeSessionID session_id = ep_rt_session_id_array_iterator_value (&deferred_disable_session_ids_iterator); + disable_helper (session_id); + ep_rt_session_id_array_iterator_next (&deferred_disable_session_ids_iterator); } - ep_rt_session_id_array_clear (&_ep_deferred_disable_session_ids, NULL); + ep_rt_session_id_array_clear (&_ep_deferred_disable_session_ids); } ep_on_exit: @@ -1327,7 +1339,7 @@ ep_shutdown (void) ep_return_void_if_nok (ep_volatile_load_eventpipe_state () == EP_STATE_INITIALIZED); EP_LOCK_ENTER (section1) - ep_volatile_store_eventpipe_state_without_barrier (EP_STATE_SHUTTING_DOWN); + ep_volatile_store_eventpipe_state (EP_STATE_SHUTTING_DOWN); EP_LOCK_EXIT (section1) for (uint32_t i = 0; i < EP_MAX_NUMBER_OF_SESSIONS; ++i) { @@ -1345,11 +1357,14 @@ ep_shutdown (void) // Deallocating providers/events here might cause AV if a WriteEvent // was to occur. Thus, we are not doing this cleanup. + /*EP_LOCK_ENTER (section1) + ep_sample_profiler_shutdown (); + EP_LOCK_EXIT (section1)*/ + // // Remove EventPipeEventSource first since it tries to use the data structures that we remove below. // // We need to do this after disabling sessions since those try to write to EventPipeEventSource. - // delete s_pEventSource; - // s_pEventSource = nullptr; - // s_config.Shutdown(); + // ep_event_source_fini (ep_event_source_get ()); + // ep_config_shutdown (ep_config_get ()); ep_on_exit: ep_requires_lock_not_held (); @@ -1371,13 +1386,31 @@ ep_build_event_metadata_event ( void ep_write_event ( + EventPipeEvent *ep_event, + uint8_t *data, + uint32_t data_len, + const uint8_t *activity_id, + const uint8_t *related_activity_id) +{ + ep_return_void_if_nok (ep_event != NULL); + + EventPipeEventPayload payload; + EventPipeEventPayload *event_payload = ep_event_payload_init (&payload, data, data_len); + + write_event (ep_event, event_payload, activity_id, related_activity_id); + + ep_event_payload_fini (event_payload); +} + +void +ep_write_event_2 ( EventPipeEvent *ep_event, EventData *event_data, uint32_t event_data_len, const uint8_t *activity_id, const uint8_t *related_activity_id) { - ep_return_void_if_nok (ep_event != NULL && event_data != NULL); + ep_return_void_if_nok (ep_event != NULL); EventPipeEventPayload payload; EventPipeEventPayload *event_payload = ep_event_payload_init_2 (&payload, event_data, event_data_len); @@ -1387,6 +1420,32 @@ ep_write_event ( ep_event_payload_fini (event_payload); } +void +ep_write_sample_profile_event ( + ep_rt_thread_handle_t sampling_thread, + EventPipeEvent *ep_event, + ep_rt_thread_handle_t target_thread, + EventPipeStackContents *stack, + uint8_t *event_data, + uint32_t event_data_len) +{ + ep_return_void_if_nok (ep_event != NULL); + + EventPipeEventPayload payload; + EventPipeEventPayload *event_payload = ep_event_payload_init (&payload, event_data, event_data_len); + + write_event_2 ( + sampling_thread, + ep_event, + event_payload, + NULL, + NULL, + target_thread, + stack); + + ep_event_payload_fini (event_payload); +} + EventPipeEventInstance * ep_get_next_event (EventPipeSessionID session_id) { @@ -1402,20 +1461,28 @@ EventPipeWaitHandle ep_get_wait_handle (EventPipeSessionID session_id) { EventPipeSession *const session = ep_get_session (session_id); - return session ? ep_session_get_wait_event (session) : 0; + return session ? ep_rt_wait_event_get_wait_handle (ep_session_get_wait_event (session)) : 0; } /* * EventPipeProviderCallbackDataQueue. */ -void +bool ep_provider_callback_data_queue_enqueue ( EventPipeProviderCallbackDataQueue *provider_callback_data_queue, EventPipeProviderCallbackData *provider_callback_data) { EP_ASSERT (provider_callback_data_queue != NULL); - ep_rt_provider_callback_data_queue_push_tail (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue), ep_provider_callback_data_alloc_copy (provider_callback_data)); + EventPipeProviderCallbackData *provider_callback_data_copy = ep_provider_callback_data_alloc_copy (provider_callback_data); + ep_raise_error_if_nok (provider_callback_data_copy != NULL); + ep_raise_error_if_nok (ep_rt_provider_callback_data_queue_push_tail (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue), provider_callback_data_copy)); + + return true; + +ep_on_error: + ep_provider_callback_data_free (provider_callback_data_copy); + return false; } bool @@ -1425,14 +1492,17 @@ ep_provider_callback_data_queue_try_dequeue ( { EP_ASSERT (provider_callback_data_queue != NULL); - ep_return_false_if_nok (ep_rt_provider_callback_data_queue_is_empty (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue)) != true); + ep_return_false_if_nok (!ep_rt_provider_callback_data_queue_is_empty (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue))); EventPipeProviderCallbackData *value = NULL; - ep_rt_provider_callback_data_queue_pop_head (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue), &value); + ep_raise_error_if_nok (ep_rt_provider_callback_data_queue_pop_head (ep_provider_callback_data_queue_get_queue_ref (provider_callback_data_queue), &value)); ep_provider_callback_data_init_copy (provider_callback_data, value); ep_provider_callback_data_free (value); return true; + +ep_on_error: + return false; } /* diff --git a/src/mono/mono/eventpipe/ep.h b/src/native/eventpipe/ep.h similarity index 88% rename from src/mono/mono/eventpipe/ep.h rename to src/native/eventpipe/ep.h index 4d9693521f98..62e037bfb1f1 100644 --- a/src/mono/mono/eventpipe/ep.h +++ b/src/native/eventpipe/ep.h @@ -223,7 +223,7 @@ ep_delete_provider (EventPipeProvider *provider); EventPipeProvider * ep_get_provider (const ep_char8_t *provider_name); -void +bool ep_add_provider_to_session ( EventPipeSessionProvider *provider, EventPipeSession *session); @@ -244,12 +244,29 @@ ep_build_event_metadata_event ( void ep_write_event ( + EventPipeEvent *ep_event, + uint8_t *data, + uint32_t data_len, + const uint8_t *activity_id, + const uint8_t *related_activity_id); + +void +ep_write_event_2 ( EventPipeEvent *ep_event, EventData *event_data, uint32_t event_data_len, const uint8_t *activity_id, const uint8_t *related_activity_id); +void +ep_write_sample_profile_event ( + ep_rt_thread_handle_t sampling_thread, + EventPipeEvent *ep_event, + ep_rt_thread_handle_t target_thread, + EventPipeStackContents *stack, + uint8_t *event_data, + uint32_t event_data_len); + EventPipeEventInstance * ep_get_next_event (EventPipeSessionID session_id); @@ -261,9 +278,24 @@ inline bool ep_walk_managed_stack_for_current_thread (EventPipeStackContents *stack_contents) { - // TODO: Implement. + EP_ASSERT (stack_contents != NULL); + + ep_stack_contents_reset (stack_contents); + + ep_rt_thread_handle_t thread = ep_rt_thread_get_handle (); + return (thread != NULL) ? ep_rt_walk_managed_stack_for_thread (thread, stack_contents) : false; +} + +static +inline +bool +ep_walk_managed_stack_for_thread (ep_rt_thread_handle_t thread, EventPipeStackContents *stack_contents) +{ + EP_ASSERT (thread != NULL); + EP_ASSERT (stack_contents != NULL); + ep_stack_contents_reset (stack_contents); - return ep_rt_walk_managed_stack_for_current_thread (stack_contents); + return (thread != NULL) ? ep_rt_walk_managed_stack_for_thread (thread, stack_contents) : false; } /* diff --git a/src/tests/Common/CLRTest.CrossGen.targets b/src/tests/Common/CLRTest.CrossGen.targets index 5ff7ec9a3556..96c6c316380a 100644 --- a/src/tests/Common/CLRTest.CrossGen.targets +++ b/src/tests/Common/CLRTest.CrossGen.targets @@ -69,95 +69,103 @@ fi # CrossGen2 Script if [ ! -z ${RunCrossGen2+x} ]%3B then + compilationDoneFlagFile="IL-CG2/done" + if [ -d IL-CG2 ]%3B then + while [ ! -f $compilationDoneFlagFile ]%3B + do + echo "Waiting for concurrent Crossgen2 compilation: $compilationDoneFlagFile" + sleep 5%3B + done + else TakeLock - if [ ! -d IL ]%3B then - mkdir IL + if [ ! -d IL-CG2 ]%3B then + mkdir IL-CG2 if [ ! -z ${CompositeBuildMode+x} ]%3B then - cp $(MSBuildProjectName).dll IL/ + cp $(MSBuildProjectName).dll IL-CG2/ cp $CORE_ROOT/lib*.so $CORE_ROOT/lib*.dylib $(scriptPath) else - cp *.dll IL/ + cp *.dll IL-CG2/ fi - fi - - ExtraCrossGen2Args+=" $(CrossGen2TestExtraArguments)" - - if [ ! -z ${LargeVersionBubble+x} ]%3B then - ExtraCrossGen2Args+=" --inputbubble" - fi - - __cg2ExitCode=0 - OneFileCrossgen2() { - __OutputFile=$1 - - __ResponseFile="$__OutputFile.rsp" - rm $__ResponseFile - - # Suppress the GC stress COMPlus for the duration of Crossgen2 execution - local gcStressModeToRestore=$COMPlus_GCStress; - local heapVerifyModeToRestore=$COMPlus_HeapVerify; - local readyToRunModeToRestore=$COMPlus_ReadyToRun; - export COMPlus_GCStress= - export COMPlus_HeapVerify= - export COMPlus_ReadyToRun= + ExtraCrossGen2Args+=" $(CrossGen2TestExtraArguments)" + + if [ ! -z ${LargeVersionBubble+x} ]%3B then + ExtraCrossGen2Args+=" --inputbubble" + fi + + __cg2ExitCode=0 - __Command=$_DebuggerFullPath - # Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path - if [ ! -z ${__TestDotNetCmd+x} ] %3B then - __Command+=" $__TestDotNetCmd" + OneFileCrossgen2() { + __OutputFile=$1 + + __ResponseFile="$__OutputFile.rsp" + rm $__ResponseFile + + # Suppress the GC stress COMPlus for the duration of Crossgen2 execution + local gcStressModeToRestore=$COMPlus_GCStress; + local heapVerifyModeToRestore=$COMPlus_HeapVerify; + local readyToRunModeToRestore=$COMPlus_ReadyToRun; + export COMPlus_GCStress= + export COMPlus_HeapVerify= + export COMPlus_ReadyToRun= + + __Command=$_DebuggerFullPath + # Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path + if [ ! -z ${__TestDotNetCmd+x} ] %3B then + __Command+=" $__TestDotNetCmd" + else + __Command+=" dotnet" + fi + __Command+=" $CORE_ROOT/crossgen2/crossgen2.dll" + __Command+=" @$__ResponseFile" + __Command+=" $ExtraCrossGen2Args" + + echo $2 >> $__ResponseFile + + echo -o:$__OutputFile>>$__ResponseFile + echo -r:$CORE_ROOT/System.*.dll>>$__ResponseFile + echo -r:$CORE_ROOT/Microsoft.*.dll>>$__ResponseFile + echo -r:$CORE_ROOT/mscorlib.dll>>$__ResponseFile + echo --verify-type-and-field-layout>>$__ResponseFile + echo --targetarch:$(TargetArchitecture)>>$__ResponseFile + echo -O>>$__ResponseFile + + echo "Response file: $__ResponseFile" + cat $__ResponseFile + echo "Running CrossGen2: $__Command" + $__Command + __cg2ExitCode=$? + + export COMPlus_GCStress=$gcStressModeToRestore + export COMPlus_HeapVerify=$heapVerifyModeToRestore + export COMPlus_ReadyToRun=$readyToRunModeToRestore + } + + if [ ! -z ${CompositeBuildMode+x} ]%3B then + ExtraCrossGen2Args+=" --composite" + OneFileCrossgen2 "$PWD/composite-r2r.dll" "$PWD/IL-CG2/*.dll" else - __Command+=" dotnet" + ExtraCrossGen2Args+= -r:$PWD/IL-CG2/*.dll + for dllFile in $PWD/IL-CG2/*.dll + do + echo $dllFile + bareFileName="${dllFile##*/}" + OneFileCrossgen2 "$PWD/$bareFileName" "$dllFile" + if [ $__cg2ExitCode -ne 0 ]; then + break + fi + done + fi + + echo "Crossgen2 compilation finished, exit code $__cg2ExitCode" >> $compilationDoneFlagFile + if [ $__cg2ExitCode -ne 0 ]; then + echo Crossgen2 failed with exitcode: $__cg2ExitCode + ReleaseLock + exit 1 fi - __Command+=" $CORE_ROOT/crossgen2/crossgen2.dll" - __Command+=" @$__ResponseFile" - __Command+=" $ExtraCrossGen2Args" - - echo $2 >> $__ResponseFile - - echo -o:$__OutputFile>>$__ResponseFile - echo -r:$CORE_ROOT/System.*.dll>>$__ResponseFile - echo -r:$CORE_ROOT/Microsoft.*.dll>>$__ResponseFile - echo -r:$CORE_ROOT/mscorlib.dll>>$__ResponseFile - echo --verify-type-and-field-layout>>$__ResponseFile - echo --targetarch:$(TargetArchitecture)>>$__ResponseFile - echo -O>>$__ResponseFile - - echo "Response file: $__ResponseFile" - cat $__ResponseFile - echo "Running CrossGen2: $__Command" - $__Command - __cg2ExitCode=$? - - export COMPlus_GCStress=$gcStressModeToRestore - export COMPlus_HeapVerify=$heapVerifyModeToRestore - export COMPlus_ReadyToRun=$readyToRunModeToRestore - } - - if [ ! -z ${CompositeBuildMode+x} ]%3B then - ExtraCrossGen2Args+=" --composite" - OneFileCrossgen2 "$PWD/composite-r2r.dll" "$PWD/IL/*.dll" - else - ExtraCrossGen2Args+= -r:$PWD/IL/*.dll - for dllFile in $PWD/IL/*.dll - do - echo $dllFile - bareFileName="${dllFile##*/}" - OneFileCrossgen2 "$PWD/$bareFileName" "$dllFile" - if [ $__cg2ExitCode -ne 0 ]; then - break - fi - done - fi - - if [ $__cg2ExitCode -ne 0 ]; then - echo Crossgen2 failed with exitcode: $__cg2ExitCode - ReleaseLock - exit 1 fi - - ReleaseLock + fi fi ]]> @@ -207,29 +215,34 @@ if defined RunCrossGen2 ( set ExtraCrossGen2Args=!ExtraCrossGen2Args! $(CrossGen2TestExtraArguments) if defined LargeVersionBubble ( set ExtraCrossGen2Args=!ExtraCrossGen2Args! --inputbubble) - call :TakeLock set CrossGen2Status=0 - if not exist "IL" ( - mkdir IL - if defined CompositeBuildMode ( - copy *.dll IL\ - ) else ( - copy *.dll IL\ - ) + set compilationDoneFlagFile=!ScriptPath!IL-CG2\done + if exist "IL-CG2" ( + REM We may have come in the middle of a concurrent CG2 compilation, wait for it to finish + :ProbeCompilationFinished + if exist "%%compilationDoneFlagFile%%" goto :DoneCrossgen2OperationsNoRelease + echo Waiting for concurrent Crossgen2 compilation^: !compilationDoneFlagFile! + timeout /t 5 /nobreak + goto :ProbeCompilationFinished ) + call :TakeLock + if exist "IL-CG2" goto :DoneCrossgen2Operations + + mkdir IL-CG2 + copy *.dll IL-CG2\ if defined CompositeBuildMode ( set ExtraCrossGen2Args=!ExtraCrossGen2Args! --composite set __OutputFile=!scriptPath!\composite-r2r.dll rem In composite mode, treat all dll's in the test folder as rooting inputs - set __InputFile=!scriptPath!IL\*.dll + set __InputFile=!scriptPath!IL-CG2\*.dll call :CompileOneFileCrossgen2 IF NOT !CrossGen2Status!==0 goto :DoneCrossgen2Operations ) else ( for %%I in (!scriptPath!\*.dll) do ( - set ExtraCrossGen2Args=!ExtraCrossGen2Args! -r:!scriptPath!IL\*.dll + set ExtraCrossGen2Args=!ExtraCrossGen2Args! -r:!scriptPath!IL-CG2\*.dll set __OutputFile=!scriptPath!\%%~nI.dll - set __InputFile=!scriptPath!IL\%%~nI.dll + set __InputFile=!scriptPath!IL-CG2\%%~nI.dll call :CompileOneFileCrossgen2 IF NOT !CrossGen2Status!==0 ( IF NOT !CrossGen2Status!==2 goto :DoneCrossgen2Operations @@ -285,7 +298,9 @@ if defined RunCrossGen2 ( Exit /b 0 :DoneCrossgen2Operations + echo Crossgen2 compilation finished, exit code !CrossGen2Status!>>!compilationDoneFlagFile! call :ReleaseLock +:DoneCrossgen2OperationsNoRelease IF NOT !CrossGen2Status!==0 ( ECHO Crossgen2 failed with exitcode - !CrossGen2Status! Exit /b 1 diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 6a081bb2793a..08a1db36d4b4 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -332,8 +332,7 @@ else HARNESS_RUNNER="xharness" fi -cd $CORE_ROOT/AndroidApps/$__NameSpace/ -$__Command $HARNESS_RUNNER android test --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__NameSpace" --app=apk/bin/$__NameSpace.apk --output-directory=`pwd` --arg=entryPointLibName=$(MsBuildProjectName).dll --expected-exit-code=100 +$__Command $HARNESS_RUNNER android test --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__Category" --app="$__TestBinaryBase/$__Category.apk" --output-directory=`pwd` --arg=entryPointLibName=$(MsBuildProjectName).dll --expected-exit-code=100 CLRTestExitCode=$? # Exist code of xharness is zero when tests finished successfully diff --git a/src/tests/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs b/src/tests/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs index 0723908375b6..22c606728ac7 100644 --- a/src/tests/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs +++ b/src/tests/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs @@ -284,7 +284,7 @@ static unsafe IEnumerable FindChildProcessesByName(Process process, str return children; } - public int RunTest(string executable, string outputFile, string errorFile, string nameSpace) + public int RunTest(string executable, string outputFile, string errorFile, string category, string testBinaryBase) { Debug.Assert(outputFile != errorFile); @@ -319,7 +319,8 @@ public int RunTest(string executable, string outputFile, string errorFile, strin process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; - process.StartInfo.EnvironmentVariables.Add("__NameSpace", nameSpace); + process.StartInfo.EnvironmentVariables.Add("__Category", category); + process.StartInfo.EnvironmentVariables.Add("__TestBinaryBase", testBinaryBase); DateTime startTime = DateTime.Now; process.Start(); diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index cf312322f2c0..d8a6dc38a13d 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -10,6 +10,16 @@ + + false + true + true + false + true + + + + @@ -31,6 +41,7 @@ + @@ -74,6 +85,9 @@ True + + + @@ -132,6 +146,10 @@ TargetDir="runtime-test/"/> + + + + true runtime - $(BundledNETCoreAppPackageVersion) + 5.0.0 $(HelixRuntimeRid) @@ -182,7 +182,7 @@ <_XUnitConsoleRunnerFiles Include="$(NuGetPackageRoot)$(MicrosoftDotNetXUnitConsoleRunnerPackage)\$(MicrosoftDotNetXUnitConsoleRunnerVersion)\**\xunit.console.*" /> - + @@ -289,17 +289,15 @@ - %CORE_ROOT%\xunit.console.dll + %CORE_ROOT%\xunit\xunit.console.dll - $CORE_ROOT/xunit.console.dll + $CORE_ROOT/xunit/xunit.console.dll - - - + diff --git a/src/tests/Common/ilasm/ilasm.ilproj b/src/tests/Common/ilasm/ilasm.ilproj index 415d2ec53eae..35c0b4ee0c51 100644 --- a/src/tests/Common/ilasm/ilasm.ilproj +++ b/src/tests/Common/ilasm/ilasm.ilproj @@ -4,6 +4,6 @@ needed by the IL SDK. --> - $(TargetRid) + $(PackageRID) diff --git a/src/tests/Common/publishdependency.targets b/src/tests/Common/publishdependency.targets index 35ed438bc996..596e4573756d 100644 --- a/src/tests/Common/publishdependency.targets +++ b/src/tests/Common/publishdependency.targets @@ -28,7 +28,7 @@ + Properties="Language=C#;RuntimeIdentifier=$(PackageRID)" /> diff --git a/src/tests/Common/setup-stress-dependencies.cmd b/src/tests/Common/setup-stress-dependencies.cmd deleted file mode 100644 index 77d893154adb..000000000000 --- a/src/tests/Common/setup-stress-dependencies.cmd +++ /dev/null @@ -1,124 +0,0 @@ -@if not defined _echo @echo off -setlocal - -set __ThisScriptShort=%0 -set __ThisScriptFull=%~f0 -set __ThisScriptPath=%~dp0 -set __RepoRootDir=%~dp0\..\..\..\ - -REM ========================================================================================= -REM === -REM === Parse arguments -REM === -REM ========================================================================================= - -set __OutputDir= -set __Arch= - -:Arg_Loop -if "%1" == "" goto ArgsDone - -if /i "%1" == "/?" goto Usage -if /i "%1" == "-?" goto Usage -if /i "%1" == "/h" goto Usage -if /i "%1" == "-h" goto Usage -if /i "%1" == "/help" goto Usage -if /i "%1" == "-help" goto Usage - -if /i "%1" == "/arch" (set __Arch=%2&shift&shift&goto Arg_Loop) -if /i "%1" == "/outputdir" (set __OutputDir=%2&shift&shift&goto Arg_Loop) - -echo Invalid command-line argument: %1 -goto Usage - -:ArgsDone - -if not defined __OutputDir goto Usage -if not defined __Arch goto Usage - -REM Check if the platform is supported -if /i "%__Arch%" == "arm" ( - echo No runtime dependencies for Arm32. - exit /b 0 -) - -if /i "%__Arch%" == "arm64" ( - echo No runtime dependencies for Arm64. - exit /b 0 -) - -REM ========================================================================================= -REM === -REM === Check if dotnet CLI and necessary directories exist -REM === -REM ========================================================================================= - -set __DotNetCmd=%__RepoRootDir%dotnet.cmd -set __CsprojPath=%__ThisScriptPath%\stress_dependencies\stress_dependencies.csproj - -REM Create directories needed -if not exist "%__OutputDir%" md "%__OutputDir%" - -REM ========================================================================================= -REM === -REM === Download packages -REM === -REM ========================================================================================= - -REM Download the package -echo Downloading CoreDisTools package -set CoreDisToolsPackagePathOutputFile="%__RepoRootDir%artifacts\obj\coreclr\windows.%__Arch%\coredistoolspath.txt" -set CommonMSBuildOptions=/p:TargetArchitecture=%__Arch% /p:Configuration=%__BuildType% /p:RuntimeIdentifier="win-%__Arch%" /p:PackageRuntimeIdentifier="win-%__Arch%" - -set DOTNETCMD="%__DotNetCmd%" restore "%__CsprojPath%" %CommonMSBuildOptions% -echo %DOTNETCMD% -call %DOTNETCMD% -if errorlevel 1 goto Fail -set DOTNETCMD="%__DotNetCmd%" msbuild "%__CsprojPath%" /t:DumpCoreDisToolsPackagePath /p:CoreDisToolsPackagePathOutputFile="%CoreDisToolsPackagePathOutputFile%" %CommonMSBuildOptions% -call %DOTNETCMD% -if errorlevel 1 goto Fail - -if not exist "%CoreDisToolsPackagePathOutputFile%" ( - echo %__ErrMsgPrefix%Failed to get CoreDisTools package path. - exit /b 1 -) - - -set /p __PkgDir=<"%CoreDisToolsPackagePathOutputFile%" - -REM Get downloaded dll path -echo Locating coredistools.dll -FOR /F "delims=" %%i IN ('dir "%__PkgDir%\coredistools.dll" /b/s ^| findstr /R "win-%__Arch%"') DO set __LibPath=%%i -echo CoreDisTools library path: %__LibPath% -if not exist "%__LibPath%" ( - echo Failed to locate the downloaded library: %__LibPath% - goto Fail -) - -REM Copy library to output directory -echo Copy library: %__LibPath% to %__OutputDir% -copy /y "%__LibPath%" "%__OutputDir%" -if errorlevel 1 ( - echo Failed to copy %__LibPath% to %__OutputDir% - goto Fail -) - -exit /b 0 - -:Fail -exit /b 1 - -REM ========================================================================================= -REM === -REM === Helper routines -REM === -REM ========================================================================================= - -:Usage -echo. -echo Download coredistools for GC stress testing -echo. -echo Usage: -echo %__ThisScriptShort% /arch ^ /outputdir ^ -echo. -exit /b 1 diff --git a/src/tests/Common/setup-stress-dependencies.sh b/src/tests/Common/setup-stress-dependencies.sh deleted file mode 100755 index d54f5c640c99..000000000000 --- a/src/tests/Common/setup-stress-dependencies.sh +++ /dev/null @@ -1,213 +0,0 @@ -#!/usr/bin/env bash -# set -x - -# -# Constants -# -readonly EXIT_CODE_SUCCESS=0 - -# -# This script should be located in coreclr/tests. -# - -function print_usage { - echo '' - echo 'Download coredistools for GC stress testing' - echo '' - echo 'Command line:' - echo '' - echo './setup-stress-dependencies.sh --arch= --outputDir=' - echo '' - echo 'Required arguments:' - echo ' --arch= : Target arch for the build' - echo ' --outputDir= : Directory to install libcoredistools.so' - echo '' -} - -function exit_with_error { - local errorCode=$1 - local errorMsg=$2 - - if [ ! -z "$2" ]; then - echo $2 - fi - - exit $errorCode -} - -function handle_ctrl_c { - exit_with_error 1 'Aborted by Ctrl+C' - } - -# Register the Ctrl-C handler -trap handle_ctrl_c INT - -# Argument variables -libInstallDir= - -# Handle arguments -verbose=0 -for i in "$@" -do - case $i in - -h|--help) - exit $EXIT_CODE_SUCCESS - ;; - -v|--verbose) - verbose=1 - ;; - --arch=*) - __BuildArch=${i#*=} - ;; - --outputDir=*) - libInstallDir=${i#*=} - ;; - *) - echo "Unknown switch: $i" - print_usage - exit $EXIT_CODE_SUCCESS - ;; - esac -done - -if [ -z "$__BuildArch" ]; then - echo "--arch is required." - print_usage - exit_with_error 1 -fi - -if [ -z "$libInstallDir" ]; then - echo "--outputDir is required." - print_usage - exit_with_error 1 -fi - -if [ "$__BuildArch" = "arm64" ] || [ "$__BuildArch" = "arm" ]; then - echo "No runtime dependencies for arm32/arm64" - exit $EXIT_CODE_SUCCESS -fi - -# This script must be located in coreclr/tests. -scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -dotnet=$"${scriptDir}"/../../../dotnet.sh -csprojPath="${scriptDir}"/stress_dependencies/stress_dependencies.csproj - -if [ ! -e $dotnetCmd ]; then - exit_with_error 1 'dotnet commandline does not exist:'$dotnetCmd -fi - -# make output directory -if [ ! -e $libInstallDir ]; then - mkdir -p $libInstallDir -fi - -# Use uname to determine what the OS is. -OSName=$(uname -s) -case "$OSName" in - Linux) - __TargetOS=Linux - __HostOS=Linux - ;; - - Darwin) - __TargetOS=OSX - __HostOS=OSX - ;; - - FreeBSD) - __TargetOS=FreeBSD - __HostOS=FreeBSD - ;; - - OpenBSD) - __TargetOS=OpenBSD - __HostOS=OpenBSD - ;; - - NetBSD) - __TargetOS=NetBSD - __HostOS=NetBSD - ;; - - SunOS) - if uname -o 2>&1 | grep -q illumos; then - __TargetOS=illumos - __HostOS=illumos - else - __TargetOS=Solaris - __HostOS=Solaris - fi - ;; - - *) - echo "Unsupported OS $OSName detected, configuring as if for Linux" - __TargetOS=Linux - __HostOS=Linux - ;; -esac - -isPortable=0 - -source "${scriptDir}"/../../../eng/native/init-distro-rid.sh -initDistroRidGlobal "$__TargetOS" x64 "$isPortable" - -# Hack, replace the rid to ubuntu.14.04 which has a valid non-portable -# package. -# -# The CoreDisTools package is currently manually packaged and we only have -# 14.04 and 16.04 packages. Use the oldest package which will work on newer -# platforms. -if [ "$__TargetOS" = "Linux" ]; then - if [ "$__BuildArch" = "x64" ]; then - __DistroRid=ubuntu.14.04-x64 - elif [ "$__BuildArch" = "x86" ]; then - __DistroRid=ubuntu.14.04-x86 - fi -fi - -# Query runtime Id -rid="$__DistroRid" - -echo "Rid to be used: ${rid}" - -if [ -z "$rid" ]; then - exit_with_error 1 "Failed to query runtime Id" -fi - -# Download the package -echo Downloading CoreDisTools package -bash -c -x "$dotnet restore $csprojPath" -if [ $? -ne 0 ] -then - exit_with_error 1 "Failed to restore the package" -fi - -CoreDisToolsPackagePathOutputFile="${scriptDir}/../../../artifacts/obj/coreclr/${__TargetOS}.x64/optdatapath.txt" - -bash -c -x "$dotnet msbuild $csprojPath /t:DumpCoreDisToolsPackagePath /p:CoreDisToolsPackagePathOutputFile=\"$CoreDisToolsPackagePathOutputFile\" /p:RuntimeIdentifier=\"$rid\"" -if [ $? -ne 0 ] -then - exit_with_error 1 "Failed to find the path to CoreDisTools." -fi - -packageDir=$(<"${CoreDisToolsPackagePathOutputFile}") - -# Get library path -libPath="$(find "$packageDir" -path "*$rid*libcoredistools*" -print | head -n 1)" -echo "libPath to be used: ${libPath}" - -if [ ! -e $libPath ] || [ -z "$libPath" ]; then - exit_with_error 1 'Failed to locate the downloaded library' -fi - -# Copy library to output directory -echo 'Copy library:' $libPath '-->' $libInstallDir/ -cp -f $libPath $libInstallDir -if [ $? -ne 0 ] -then - exit_with_error 1 "Failed to copy the library" -fi - -# Return success -exit $EXIT_CODE_SUCCESS diff --git a/src/tests/Common/stress_dependencies/stress_dependencies.csproj b/src/tests/Common/stress_dependencies/stress_dependencies.csproj deleted file mode 100644 index 10d2cd9ea943..000000000000 --- a/src/tests/Common/stress_dependencies/stress_dependencies.csproj +++ /dev/null @@ -1,49 +0,0 @@ - - - BuildOnly - netcoreapp2.0 - false - win-x64;ubuntu.14.04-x64;osx.10.10-x64;win-x86;ubuntu.14.04-x86;osx.10.10-x86 - Microsoft.NETCore.CoreDisTools - - - - 1.0.1-prerelease-00005 - - - - - - - - - - - - - - - - - - - - - - $([System.IO.Path]::GetFileName('$(PkgMicrosoft_NETCore_CoreDisTools)')) - - 1.0.1-prerelease-00002 - $(MicrosoftNETCoreCoreDisToolsPackageName.ToLower()) - $([MSBuild]::NormalizePath($(PkgMicrosoft_NETCore_CoreDisTools),../../,runtime.$(RuntimeIdentifier).$(CoreDisToolsPackageNameLowercase),$(CoreDisToolsPackageVersion))) - - - - - - - - - - - - diff --git a/src/tests/Common/test_dependencies/test_dependencies.csproj b/src/tests/Common/test_dependencies/test_dependencies.csproj index 106e50602676..86c965ad15cb 100644 --- a/src/tests/Common/test_dependencies/test_dependencies.csproj +++ b/src/tests/Common/test_dependencies/test_dependencies.csproj @@ -5,7 +5,7 @@ $(NetCoreAppToolCurrent) true true - win-arm;win-arm64;win-x64;win-x86;$(TargetRid) + win-arm;win-arm64;win-x64;win-x86;$(PackageRID) true Release diff --git a/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj b/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj index ab7b191f39c3..6a544c39f983 100644 --- a/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj +++ b/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj @@ -5,7 +5,7 @@ $(NetCoreAppToolCurrent) true true - win-arm;win-arm64;win-x64;win-x86;$(TargetRid) + win-arm;win-arm64;win-x64;win-x86;$(PackageRID) true Release diff --git a/src/tests/Common/testenvironment.proj b/src/tests/Common/testenvironment.proj index 98ca7ab6e76e..4371f64be3ee 100644 --- a/src/tests/Common/testenvironment.proj +++ b/src/tests/Common/testenvironment.proj @@ -55,6 +55,7 @@ COMPlus_EnableEHWriteThru; COMPlus_JitObjectStackAllocation; COMPlus_JitInlinePolicyProfile; + COMPlus_JitClassProfiling; RunningIlasmRoundTrip @@ -147,6 +148,7 @@ + diff --git a/src/tests/Common/tests.targets b/src/tests/Common/tests.targets index 606775a9ccee..639d08a0863d 100644 --- a/src/tests/Common/tests.targets +++ b/src/tests/Common/tests.targets @@ -41,7 +41,7 @@ - $(CORE_ROOT)\xunit.console.dll + $(CORE_ROOT)\xunit\xunit.console.dll -parallel none -parallel $(ParallelRun) diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index ed2e457a2a35..c0d820eb7de8 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -106,65 +106,6 @@ false - - - - - - - - - - true - win-$(TargetArchitecture) - - - - - true - true - ubuntu.14.04-$(TargetArchitecture) - - - - - true - true - osx.10.12-$(TargetArchitecture) - - - - - true - true - ubuntu.14.04-$(TargetArchitecture) - - - - - true - true - ubuntu.14.04-$(TargetArchitecture) - - - - - true - true - ubuntu.14.04-$(TargetArchitecture) - - - - - true - true - ubuntu.14.04-$(TargetArchitecture) - - - - 32 @@ -172,21 +113,6 @@ 64 - - $(__RuntimeId) - $(TestNugetRuntimeId) - - - - - $(TargetRid) - $(TargetRid) - - true C# diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index a6a8d2dc2b8f..802b7d4558e3 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -275,6 +275,7 @@ + @@ -315,6 +316,9 @@ True + + + diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.il b/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.il new file mode 100644 index 000000000000..d4a3a9a5895b --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.il @@ -0,0 +1,193 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// Test several simple combinations when we inline a method which takes an argument +// with an implicit cast, when we substitute the use as the argument in the inlined body +// we should be careful about handling the 'PUTARG_TYPE' node that shows the cast. + +.assembly extern System.Runtime +{ +} +.assembly extern System.Runtime.Extensions +{ +} +.assembly Runtime_43130 +{ +} +.module Runtime_43130.dll + +.class private auto ansi beforefieldinit Runtime_43130 + extends [System.Runtime]System.Object +{ + .method public hidebysig static int32 Test1(int32 i1) cil managed noinlining + { + // Code size 20 (0x14) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.1 + IL_0003: add + IL_0004: stloc.0 + IL_0005: ldloc.0 + // IL_0006: conv.i2 + IL_0007: call void Runtime_43130::Inline1(int16) + IL_000c: nop + IL_000d: ldc.i4.s 100 + IL_000f: stloc.1 + IL_0010: br.s IL_0012 + + IL_0012: ldloc.1 + IL_0013: ret + } // end of method Runtime_43130::Test1 + + .method public hidebysig static void Inline1(int16 s) cil managed aggressiveinlining + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call void Runtime_43130::CallAMethod1(int16) + IL_0007: nop + IL_0008: ret + } // end of method Runtime_43130::Inline1 + + .method public hidebysig static void CallAMethod1(int16 s) cil managed noinlining + { + // Code size 4 (0x4) + .maxstack 8 + IL_0000: nop + IL_0001: br.s IL_0003 + + IL_0003: ret + } // end of method Runtime_43130::CallAMethod1 + + .method public hidebysig static int32 Test2(int32 i1) cil managed noinlining + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.1 + IL_0003: add + IL_0004: stloc.0 + IL_0005: ldloc.0 + // IL_0006: conv.i2 + IL_0007: call int32 Runtime_43130::Inline2(int16) + IL_000c: stloc.1 + IL_000d: br.s IL_000f + + IL_000f: ldloc.1 + IL_0010: ret + } // end of method Runtime_43130::Test2 + + .method public hidebysig static int32 Inline2(int16 s) cil managed aggressiveinlining + { + // Code size 12 (0xc) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.s 10 + IL_0004: add + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: stloc.1 + IL_0008: br.s IL_000a + + IL_000a: ldloc.1 + IL_000b: ret + } // end of method Runtime_43130::Inline2 + + .method public hidebysig static int32 Test3(int32 i1) cil managed noinlining + { + // Code size 20 (0x14) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.1 + IL_0003: add + IL_0004: stloc.0 + IL_0005: ldloc.0 + // IL_0006: conv.i2 + IL_0007: call int32 Runtime_43130::Inline3(int16) + IL_000c: pop + IL_000d: ldc.i4.s 100 + IL_000f: stloc.1 + IL_0010: br.s IL_0012 + + IL_0012: ldloc.1 + IL_0013: ret + } // end of method Runtime_43130::Test3 + + .method public hidebysig static int32 Inline3(int16 s) cil managed aggressiveinlining + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call void Runtime_43130::CallAMethod3(int16) + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: ldc.i4.s 10 + IL_000b: add + IL_000c: stloc.0 + IL_000d: br.s IL_000f + + IL_000f: ldloc.0 + IL_0010: ret + } // end of method Runtime_43130::Inline3 + + .method public hidebysig static void CallAMethod3(int16 s) cil managed noinlining + { + // Code size 4 (0x4) + .maxstack 8 + IL_0000: nop + IL_0001: br.s IL_0003 + + IL_0003: ret + } // end of method Runtime_43130::CallAMethod3 + + .method public hidebysig static int32 Main() cil managed + { + .entrypoint + // Code size 29 (0x1d) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldc.i4.1 + IL_0002: call int32 Runtime_43130::Test1(int32) + IL_0007: pop + IL_0008: ldc.i4.1 + IL_0009: call int32 Runtime_43130::Test2(int32) + IL_000e: pop + IL_000f: ldc.i4.1 + IL_0010: call int32 Runtime_43130::Test3(int32) + IL_0015: pop + IL_0016: ldc.i4.s 100 + IL_0018: stloc.0 + IL_0019: br.s IL_001b + + IL_001b: ldloc.0 + IL_001c: ret + } // end of method Runtime_43130::Main + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [System.Runtime]System.Object::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method Runtime_43130::.ctor + +} // end of class Runtime_43130 diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.ilproj b/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.ilproj new file mode 100644 index 000000000000..7dab57fe6d22 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_43130/Runtime_43130.ilproj @@ -0,0 +1,10 @@ + + + Exe + None + True + + + + + diff --git a/src/tests/JIT/Stress/ABI/Stubs.cs b/src/tests/JIT/Stress/ABI/Stubs.cs index 35b5220e52b1..09e9154c6281 100644 --- a/src/tests/JIT/Stress/ABI/Stubs.cs +++ b/src/tests/JIT/Stress/ABI/Stubs.cs @@ -168,7 +168,7 @@ private static bool DoStubCall(int callerIndex, bool staticMethod, bool onValueT ILGenerator g = cb.GetILGenerator(); g.Emit(OpCodes.Ldarg, 0); - g.Emit(OpCodes.Call, typeof(object).GetConstructor(Array.Empty())); + g.Emit(OpCodes.Call, typeof(object).GetConstructor(Type.EmptyTypes)); g.Emit(OpCodes.Ldarg, 0); g.Emit(OpCodes.Ldarg_1); g.Emit(OpCodes.Stfld, fieldInfoMagicValueField); diff --git a/src/tests/JIT/superpmi/collect_runtest.cmd b/src/tests/JIT/superpmi/collect_runtest.cmd index d8984dc99680..ce271466b303 100644 --- a/src/tests/JIT/superpmi/collect_runtest.cmd +++ b/src/tests/JIT/superpmi/collect_runtest.cmd @@ -28,13 +28,11 @@ set testenvfile=%TEMP%\superpmitestenv_%RANDOM%.cmd echo set SuperPMIShimLogPath=%SuperPMIShimLogPath%> %testenvfile% echo set SuperPMIShimPath=%SuperPMIShimPath%>> %testenvfile% -echo set COMPlus_AltJit=%COMPlus_AltJit%>> %testenvfile% -echo set COMPlus_AltJitName=%COMPlus_AltJitName%>> %testenvfile% +echo set COMPlus_JitName=%COMPlus_JitName%>> %testenvfile% set SuperPMIShimLogPath= set SuperPMIShimPath= -set COMPlus_AltJit= -set COMPlus_AltJitName= +set COMPlus_JitName= set _nextcmd=call %runtestscript% testEnv %testenvfile% echo %0: Running: %_nextcmd% diff --git a/src/tests/JIT/superpmi/superpmicollect.cs b/src/tests/JIT/superpmi/superpmicollect.cs index bb095998ec5f..fc448309566c 100644 --- a/src/tests/JIT/superpmi/superpmicollect.cs +++ b/src/tests/JIT/superpmi/superpmicollect.cs @@ -313,21 +313,18 @@ private static void CollectMCFiles(string runProgramPath, string runProgramArgum Console.WriteLine("Setting environment variables:"); Console.WriteLine(" SuperPMIShimLogPath=" + s_tempDir); Console.WriteLine(" SuperPMIShimPath=" + Global.JitPath); - Console.WriteLine(" COMPlus_AltJit=*"); - Console.WriteLine(" COMPlus_AltJitName=" + Global.CollectorShimName); + Console.WriteLine(" COMPlus_JitName=" + Global.CollectorShimName); Environment.SetEnvironmentVariable("SuperPMIShimLogPath", s_tempDir); Environment.SetEnvironmentVariable("SuperPMIShimPath", Global.JitPath); - Environment.SetEnvironmentVariable("COMPlus_AltJit", "*"); - Environment.SetEnvironmentVariable("COMPlus_AltJitName", Global.CollectorShimName); + Environment.SetEnvironmentVariable("COMPlus_JitName", Global.CollectorShimName); RunProgramsWhileCollecting(runProgramPath, runProgramArguments); // Un-set environment variables Environment.SetEnvironmentVariable("SuperPMIShimLogPath", ""); Environment.SetEnvironmentVariable("SuperPMIShimPath", ""); - Environment.SetEnvironmentVariable("COMPlus_AltJit", ""); - Environment.SetEnvironmentVariable("COMPlus_AltJitName", ""); + Environment.SetEnvironmentVariable("COMPlus_JitName", ""); // Did any .mc files get generated? string[] mcFiles = Directory.GetFiles(s_tempDir, "*.mc"); @@ -606,7 +603,7 @@ private static void Usage() Console.WriteLine("If -mch is not given, all generated files are deleted, and the result is simply the exit code"); Console.WriteLine("indicating whether the collection succeeded. This is useful as a test."); Console.WriteLine(""); - Console.WriteLine("If the COMPlus_AltJit variable is already set, it is assumed SuperPMI collection is already happening,"); + Console.WriteLine("If the COMPlus_JitName variable is already set, it is assumed SuperPMI collection is already happening,"); Console.WriteLine("and the program exits with success."); Console.WriteLine(""); Console.WriteLine("On success, the return code is 100."); @@ -703,14 +700,14 @@ private static int Main(string[] args) // Done with argument parsing. - string altjitvar = System.Environment.GetEnvironmentVariable("COMPlus_AltJit"); - if (!String.IsNullOrEmpty(altjitvar)) + string jitnamevar = System.Environment.GetEnvironmentVariable("COMPlus_JitName"); + if (!String.IsNullOrEmpty(jitnamevar)) { - // Someone already has the COMPlus_AltJit variable set. We don't want to override + // Someone already has the COMPlus_JitName variable set. We don't want to override // that. Perhaps someone is already doing a SuperPMI collection and invokes this // program as part of a full test path in which this program exists. - Console.WriteLine("COMPlus_AltJit already exists: skipping SuperPMI collection and returning success"); + Console.WriteLine("COMPlus_JitName already exists: skipping SuperPMI collection and returning success"); return 100; } diff --git a/src/tests/Loader/classloader/generics/regressions/395780/testExplicitOverride2.il b/src/tests/Loader/classloader/generics/regressions/395780/testExplicitOverride2.il index f3194b64982d..ca29b04fc684 100644 --- a/src/tests/Loader/classloader/generics/regressions/395780/testExplicitOverride2.il +++ b/src/tests/Loader/classloader/generics/regressions/395780/testExplicitOverride2.il @@ -3,7 +3,7 @@ .assembly extern System.Console { } // this test is also regression test for VSW 395780. The difference is that -// .overrride directive in this case is in the class scope, whereas in testExplicitOverride +// .override directive in this case is in the class scope, whereas in testExplicitOverride // .override directive is in method scope. // Microsoft (R) .NET Framework IL Disassembler. Version 2.0.41122.00 diff --git a/src/tests/Loader/classloader/generics/regressions/vsw395780/testExplicitOverride2.il b/src/tests/Loader/classloader/generics/regressions/vsw395780/testExplicitOverride2.il index f3194b64982d..ca29b04fc684 100644 --- a/src/tests/Loader/classloader/generics/regressions/vsw395780/testExplicitOverride2.il +++ b/src/tests/Loader/classloader/generics/regressions/vsw395780/testExplicitOverride2.il @@ -3,7 +3,7 @@ .assembly extern System.Console { } // this test is also regression test for VSW 395780. The difference is that -// .overrride directive in this case is in the class scope, whereas in testExplicitOverride +// .override directive in this case is in the class scope, whereas in testExplicitOverride // .override directive is in method scope. // Microsoft (R) .NET Framework IL Disassembler. Version 2.0.41122.00 diff --git a/src/tests/Regressions/coreclr/44465/tst.il b/src/tests/Regressions/coreclr/44465/tst.il new file mode 100644 index 000000000000..fe704a5c7dc5 --- /dev/null +++ b/src/tests/Regressions/coreclr/44465/tst.il @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +.assembly tst { } + +.method static void* GetValue() +{ + .locals init ([0] void*) + ldc.i4 100 + conv.i + stloc.0 + ldloca 0 + ldobj void* + ret +} + +.method static int32 main() +{ + .entrypoint + call void* GetValue() + conv.i4 + ret +} diff --git a/src/tests/Regressions/coreclr/44465/tst.ilproj b/src/tests/Regressions/coreclr/44465/tst.ilproj new file mode 100644 index 000000000000..b3d6626c0619 --- /dev/null +++ b/src/tests/Regressions/coreclr/44465/tst.ilproj @@ -0,0 +1,10 @@ + + + Exe + BuildAndRun + 0 + + + + + diff --git a/src/tests/build.cmd b/src/tests/build.cmd index 18d5616c8355..3dca37ac6543 100644 --- a/src/tests/build.cmd +++ b/src/tests/build.cmd @@ -48,12 +48,10 @@ set __UnprocessedBuildArgs= set __CommonMSBuildArgs= set __SkipRestorePackages= -set __SkipStressDependencies= set __SkipManaged= set __SkipTestWrappers= set __BuildTestWrappersOnly= set __SkipNative= -set __RuntimeId= set __TargetsWindows=1 set __DoCrossgen= set __DoCrossgen2= @@ -96,22 +94,20 @@ if /i "%1" == "checked" (set __BuildType=Checked&set processedArgs if /i "%1" == "ci" (set __ArcadeScriptArgs="-ci"&set __ErrMsgPrefix=##vso[task.logissue type=error]&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "skipstressdependencies" (set __SkipStressDependencies=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skiprestorepackages" (set __SkipRestorePackages=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skipmanaged" (set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skipnative" (set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skiptestwrappers" (set __SkipTestWrappers=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skipgeneratelayout" (set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "copynativeonly" (set __CopyNativeTestBinaries=1&set __SkipStressDependencies=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipGenerateLayout=1&set __SkipTestWrappers=1&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) +if /i "%1" == "copynativeonly" (set __CopyNativeTestBinaries=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipGenerateLayout=1&set __SkipTestWrappers=1&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "generatelayoutonly" (set __SkipManaged=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "buildtestwrappersonly" (set __SkipNative=1&set __SkipManaged=1&set __BuildTestWrappersOnly=1&set __SkipGenerateLayout=1&set __SkipStressDependencies=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) +if /i "%1" == "buildtestwrappersonly" (set __SkipNative=1&set __SkipManaged=1&set __BuildTestWrappersOnly=1&set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "buildagainstpackages" (echo error: Remove /BuildAgainstPackages switch&&exit /b1) if /i "%1" == "crossgen" (set __DoCrossgen=1&set __TestBuildMode=crossgen&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "crossgen2" (set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "composite" (set __CompositeBuildMode=1&set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "runtimeid" (set __RuntimeId=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if /i "%1" == "targetsNonWindows" (set __TargetsWindows=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "Exclude" (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if /i "%1" == "-priority" (set __Priority=%2&shift&set processedArgs=!processedArgs! %1=%2&shift&goto Arg_Loop) @@ -184,33 +180,6 @@ if not exist "%__MsbuildDebugLogsDir%" md "%__MsbuildDebugLogsDir%" REM Set up the directory for MSBuild debug logs. set MSBUILDDEBUGPATH=%__MsbuildDebugLogsDir% -REM ========================================================================================= -REM === -REM === Restore Build Tools -REM === -REM ========================================================================================= - -@if defined _echo @echo on - -set "__ToolsDir=%__ProjectDir%\Tools" - -REM ========================================================================================= -REM === -REM === Resolve runtime dependences -REM === -REM ========================================================================================= - -if defined __SkipStressDependencies goto skipstressdependencies - -call "%__RepoRootDir%\src\tests\Common\setup-stress-dependencies.cmd" /arch %__BuildArch% /outputdir %__BinDir% -if errorlevel 1 ( - echo %__ErrMsgPrefix%%__MsgPrefix%Error: setup-stress-dependencies failed. - exit /b 1 -) - -:skipstressdependencies -@if defined _echo @echo on - REM ========================================================================================= REM === REM === Native test build section @@ -455,11 +424,6 @@ REM ============================================================================ echo %__MsgPrefix%Creating test overlay -set RuntimeIdArg= -if defined __RuntimeId ( - set RuntimeIdArg=/p:RuntimeId="%__RuntimeId%" -) - set __BuildLogRootName=Tests_Overlay_Managed set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.log set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn @@ -474,7 +438,7 @@ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__RepoRootDir%\eng /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ /p:UsePartialNGENOptimization=false /maxcpucount^ %__SkipFXRestoreArg%^ - !__Logging! %__CommonMSBuildArgs% %RuntimeIdArg% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs% + !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs% if errorlevel 1 ( echo %__ErrMsgPrefix%%__MsgPrefix%Error: Create Test Overlay failed. Refer to the build log files for details: echo %__BuildLog% @@ -589,20 +553,6 @@ echo Build type: one of Debug, Checked, Release ^(default: Debug^). echo skipmanaged: skip the managed tests build echo skipnative: skip the native tests build echo skiprestorepackages: skip package restore -echo runtimeid ^: Builds a test overlay for the specified OS ^(Only supported when building against packages^). Supported IDs are: -echo alpine.3.4.3-x64: Builds overlay for Alpine 3.4.3 -echo debian.8-x64: Builds overlay for Debian 8 -echo fedora.24-x64: Builds overlay for Fedora 24 -echo linux-x64: Builds overlay for portable linux -echo opensuse.42.1-x64: Builds overlay for OpenSUSE 42.1 -echo osx.10.12-x64: Builds overlay for OSX 10.12 -echo osx-x64: Builds overlay for portable OSX -echo rhel.7-x64: Builds overlay for RHEL 7 or CentOS -echo ubuntu.14.04-x64: Builds overlay for Ubuntu 14.04 -echo ubuntu.16.04-x64: Builds overlay for Ubuntu 16.04 -echo ubuntu.16.10-x64: Builds overlay for Ubuntu 16.10 -echo win-x64: Builds overlay for portable Windows -echo win7-x64: Builds overlay for Windows 7 echo crossgen: Precompiles the framework managed assemblies echo copynativeonly: Only copy the native test binaries to the managed output. Do not build the native or managed tests. echo skipgeneratelayout: Do not generate the Core_Root layout diff --git a/src/tests/build.sh b/src/tests/build.sh index cfd6aad74159..a1efe50cc009 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -132,18 +132,6 @@ generate_layout() build_MSBuild_projects "Tests_Overlay_Managed" "$__RepoRootDir/src/tests/run.proj" "Creating test overlay" "/t:CreateTestOverlay" - if [[ "$__TargetOS" != "OSX" && "$__SkipStressDependencies" == 0 ]]; then - nextCommand="\"${__RepoRootDir}/src/tests/Common/setup-stress-dependencies.sh\" --arch=$__BuildArch --outputDir=$CORE_ROOT" - echo "Resolve runtime dependences via $nextCommand" - eval $nextCommand - - local exitCode="$?" - if [[ "$exitCode" != 0 ]]; then - echo "${__ErrMsgPrefix}${__MsgPrefix}Error: setup-stress-dependencies failed." - exit "$exitCode" - fi - fi - # Precompile framework assemblies with crossgen if required if [[ "$__DoCrossgen" != 0 || "$__DoCrossgen2" != 0 ]]; then chmod +x "$__CrossgenExe" @@ -452,7 +440,6 @@ build_MSBuild_projects() usage_list=() usage_list+=("-skiprestorepackages: skip package restore.") -usage_list+=("-skipstressdependencies: Don't install stress dependencies.") usage_list+=("-skipgeneratelayout: Do not generate the Core_Root layout.") usage_list+=("-skiptestwrappers: Don't generate test wrappers.") @@ -485,7 +472,6 @@ handle_arguments_local() { ;; copynativeonly|-copynativeonly) - __SkipStressDependencies=1 __SkipNative=1 __SkipManaged=1 __CopyNativeTestBinaries=1 @@ -535,10 +521,6 @@ handle_arguments_local() { __SkipRestorePackages=1 ;; - skipstressdependencies|-skipstressdependencies) - __SkipStressDependencies=1 - ;; - skipgeneratelayout|-skipgeneratelayout) __SkipGenerateLayout=1 ;; @@ -596,7 +578,6 @@ __SkipManaged=0 __SkipNative=0 __SkipRestore="" __SkipRestorePackages=0 -__SkipStressDependencies=0 __SkipCrossgenFramework=0 __SourceDir="$__ProjectDir/src" __UnprocessedBuildArgs= diff --git a/src/tests/issues.targets b/src/tests/issues.targets index c2fcc77d7028..ba9cc1368ac4 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -126,10 +126,10 @@ https://github.com/dotnet/runtime/issues/44341 - + https://github.com/dotnet/runtime/issues/44186 - + @@ -1263,12 +1263,6 @@ needs triage - - needs triage - - - needs triage - needs triage @@ -3213,10 +3207,10 @@ needs triage - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 needs triage @@ -3228,10 +3222,10 @@ needs triage - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 needs triage @@ -3264,67 +3258,67 @@ needs triage - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 needs triage - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 - app crashed + https://github.com/dotnet/runtime/issues/44648 needs triage @@ -3333,7 +3327,7 @@ needs triage - Need corerun folder under Core_Root + Need crossgen folder under Core_Root needs triage @@ -3342,13 +3336,13 @@ needs triage - Use more memory than the emulator on helix machine allows + https://github.com/dotnet/runtime/issues/44643 - Use more memory than the emulator on helix machine allows + https://github.com/dotnet/runtime/issues/44643 - Use more memory than the emulator on helix machine allows + https://github.com/dotnet/runtime/issues/44643 diff --git a/src/tests/readytorun/r2rdump/FrameworkTests/R2RDumpTests.csproj b/src/tests/readytorun/r2rdump/FrameworkTests/R2RDumpTests.csproj index 39f1cdbd554e..539d8bcf9029 100644 --- a/src/tests/readytorun/r2rdump/FrameworkTests/R2RDumpTests.csproj +++ b/src/tests/readytorun/r2rdump/FrameworkTests/R2RDumpTests.csproj @@ -3,6 +3,9 @@ Exe true true + + + true diff --git a/src/tests/run.proj b/src/tests/run.proj index 28e565c68573..1841c69bc5e6 100644 --- a/src/tests/run.proj +++ b/src/tests/run.proj @@ -181,14 +181,14 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). internal static string reportBase%3B internal static string testBinaryBase%3B internal static string coreRoot%3B - internal static string nameSpace%3B + internal static string category%3B static _Global() { reportBase = System.Environment.GetEnvironmentVariable(%22XunitTestReportDirBase%22)%3B testBinaryBase = System.IO.Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath)%3B coreRoot = System.Environment.GetEnvironmentVariable(%22CORE_ROOT%22)%3B - nameSpace = "$([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").Replace("-","_"))"%3B + category = "$([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").Replace("-","_"))"%3B if (String.IsNullOrEmpty(reportBase)) { reportBase = System.IO.Path.Combine(testBinaryBase, "Reports")%3B @@ -282,7 +282,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). System.IO.Directory.CreateDirectory(_Global.reportBase + testSubfolder)%3B - ret = wrapper.RunTest(testExecutable, outputFile, errorFile, _Global.nameSpace)%3B + ret = wrapper.RunTest(testExecutable, outputFile, errorFile, _Global.category, _Global.testBinaryBase)%3B } catch (Exception ex) { @@ -344,7 +344,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). // Add Android app running log to testOutput if (ret != CoreclrTestWrapperLib.EXIT_SUCCESS_CODE) { - string androidLogFile = System.IO.Path.GetFullPath(_Global.coreRoot + "/AndroidApps" + "/" + _Global.nameSpace + "/adb-logcat-net.dot." + _Global.nameSpace + ".log")%3B + string androidLogFile = System.IO.Path.GetDirectoryName(testExecutable) + "/adb-logcat-net.dot." + _Global.category + ".log"%3B if(File.Exists(androidLogFile)) { testOutput.AddRange(System.IO.File.ReadAllLines(androidLogFile))%3B @@ -418,16 +418,20 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) $([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','_')) - $(CORE_ROOT)\AndroidApps\$(Category) - $(AppDir)\SourceDir - $(AppDir)\apk + $(IntermediateOutputPath)\AndroidApps\$(Category) + $(BuildDir)\apk + $(XUnitTestBinBase)\$(CategoryWithSlash)\$(Category).apk False True $(ArtifactsBinDir)microsoft.netcore.app.runtime.android-$(TargetArchitecture)\$(Configuration)\runtimes\android-$(TargetArchitecture)\ + arm64-v8a + armeabi-v7a + x86_64 + x86 - + @@ -441,36 +445,46 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). - + DestinationFolder="$(BuildDir)" /> - + DestinationFolder="$(BuildDir)" /> - + DestinationFolder="$(BuildDir)" /> - + DestinationFolder="$(BuildDir)" /> + + + + + + SourceDir="$(BuildDir)" + OutputDir="$(AppDir)"> - + + - - + + @@ -491,7 +505,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). + Properties="Language=C#;PackageRID=$(PackageRID);RuntimeIdentifier=$(PackageRID)" /> diff --git a/src/tests/run.py b/src/tests/run.py index 6c12a84ee7fe..f710345e8390 100755 --- a/src/tests/run.py +++ b/src/tests/run.py @@ -984,7 +984,7 @@ def run_tests(args, urlretrieve(url, zipfilename) with zipfile.ZipFile(zipfilename,"r") as ziparch: - ziparch.extractall(args.core_root) + ziparch.extractall(os.path.join(args.core_root, "xunit")) os.remove(zipfilename) assert not os.path.isfile(zipfilename) diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidApkFileReplacerTask.cs b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidApkFileReplacerTask.cs new file mode 100644 index 000000000000..e1d83132f029 --- /dev/null +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidApkFileReplacerTask.cs @@ -0,0 +1,38 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.IO; +using System.Linq; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +public class AndroidApkFileReplacerTask : Task +{ + [Required] + public string FilePath { get; set; } = ""!; + + [Required] + public string OutputDir { get; set; } = ""!; + + public string? AndroidSdk { get; set; } + + public string? MinApiLevel { get; set; } + + public string? BuildToolsVersion { get; set; } + + public string? KeyStorePath { get; set; } + + + public override bool Execute() + { + var apkBuilder = new ApkBuilder(); + apkBuilder.OutputDir = OutputDir; + apkBuilder.AndroidSdk = AndroidSdk; + apkBuilder.MinApiLevel = MinApiLevel; + apkBuilder.BuildToolsVersion = BuildToolsVersion; + apkBuilder.KeyStorePath = KeyStorePath; + apkBuilder.ReplaceFileInApk(FilePath); + return true; + } +} diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidAppBuilder.cs b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidAppBuilder.cs index fa6c84603ff2..f9c88cb5a1d9 100644 --- a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidAppBuilder.cs +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/AndroidAppBuilder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; @@ -23,9 +23,10 @@ public class AndroidAppBuilderTask : Task [Required] public string RuntimeIdentifier { get; set; } = ""!; - public string? ProjectName { get; set; } + [Required] + public string OutputDir { get; set; } = ""!; - public string? OutputDir { get; set; } + public string? ProjectName { get; set; } public string? AndroidSdk { get; set; } @@ -47,6 +48,8 @@ public class AndroidAppBuilderTask : Task public string? KeyStorePath { get; set; } + public bool ForceInterpreter { get; set; } + [Output] public string ApkBundlePath { get; set; } = ""!; @@ -70,25 +73,19 @@ public override bool Execute() apkBuilder.StripDebugSymbols = StripDebugSymbols; apkBuilder.NativeMainSource = NativeMainSource; apkBuilder.KeyStorePath = KeyStorePath; + apkBuilder.ForceInterpreter = ForceInterpreter; (ApkBundlePath, ApkPackageId) = apkBuilder.BuildApk(SourceDir, abi, MainLibraryFileName, MonoRuntimeHeaders); return true; } - private string DetermineAbi() - { - switch (RuntimeIdentifier) + private string DetermineAbi() => + RuntimeIdentifier switch { - case "android-x86": - return "x86"; - case "android-x64": - return "x86_64"; - case "android-arm": - return "armeabi-v7a"; - case "android-arm64": - return "arm64-v8a"; - default: - throw new ArgumentException(RuntimeIdentifier + " is not supported for Android"); - } - } + "android-x86" => "x86", + "android-x64" => "x86_64", + "android-arm" => "armeabi-v7a", + "android-arm64" => "arm64-v8a", + _ => throw new ArgumentException($"{RuntimeIdentifier} is not supported for Android"), + }; } diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/ApkBuilder.cs b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/ApkBuilder.cs index 731ebced03bc..6d69fe548643 100644 --- a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/ApkBuilder.cs +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/ApkBuilder.cs @@ -16,10 +16,11 @@ public class ApkBuilder public string? MinApiLevel { get; set; } public string? BuildApiLevel { get; set; } public string? BuildToolsVersion { get; set; } - public string? OutputDir { get; set; } + public string OutputDir { get; set; } = ""!; public bool StripDebugSymbols { get; set; } public string? NativeMainSource { get; set; } public string? KeyStorePath { get; set; } + public bool ForceInterpreter { get; set; } public (string apk, string packageId) BuildApk( string sourceDir, @@ -49,9 +50,6 @@ public class ApkBuilder ProjectName = Path.GetFileNameWithoutExtension(entryPointLib); } - if (string.IsNullOrEmpty(OutputDir)) - OutputDir = Path.Combine(sourceDir, "bin-" + abi); - if (ProjectName.Contains(' ')) throw new ArgumentException($"ProjectName='{ProjectName}' shouldn't not contain spaces."); @@ -133,7 +131,6 @@ public class ApkBuilder string apksigner = Path.Combine(buildToolsFolder, "apksigner"); string androidJar = Path.Combine(AndroidSdk, "platforms", "android-" + BuildApiLevel, "android.jar"); string androidToolchain = Path.Combine(AndroidNdk, "build", "cmake", "android.toolchain.cmake"); - string keytool = "keytool"; string javac = "javac"; string cmake = "cmake"; string zip = "zip"; @@ -194,7 +191,8 @@ public class ApkBuilder File.Copy(NativeMainSource, javaActivityPath, true); string monoRunner = Utils.GetEmbeddedResource("MonoRunner.java") - .Replace("%EntryPointLibName%", Path.GetFileName(entryPointLib)); + .Replace("%EntryPointLibName%", Path.GetFileName(entryPointLib)) + .Replace("%ForceInterpreter%", ForceInterpreter.ToString().ToLower()); File.WriteAllText(monoRunnerPath, monoRunner); File.WriteAllText(Path.Combine(OutputDir, "AndroidManifest.xml"), @@ -242,30 +240,66 @@ public class ApkBuilder // we don't need the unaligned one any more File.Delete(apkFile); - // 5. Generate key + // 5. Generate key (if needed) & sign the apk + SignApk(alignedApk, apksigner); + + Utils.LogInfo($"\nAPK size: {(new FileInfo(alignedApk).Length / 1000_000.0):0.#} Mb.\n"); + + return (alignedApk, packageId); + } + + private void SignApk(string apkPath, string apksigner) + { + string defaultKey = Path.Combine(OutputDir, "debug.keystore"); + string signingKey = string.IsNullOrEmpty(KeyStorePath) ? + defaultKey : Path.Combine(KeyStorePath, "debug.keystore"); - string signingKey = Path.Combine(OutputDir, "debug.keystore"); - if (!string.IsNullOrEmpty(KeyStorePath)) - signingKey = Path.Combine(KeyStorePath, "debug.keystore"); if (!File.Exists(signingKey)) { - Utils.RunProcess(keytool, "-genkey -v -keystore debug.keystore -storepass android -alias " + + Utils.RunProcess("keytool", "-genkey -v -keystore debug.keystore -storepass android -alias " + "androiddebugkey -keypass android -keyalg RSA -keysize 2048 -noprompt " + "-dname \"CN=Android Debug,O=Android,C=US\"", workingDir: OutputDir, silent: true); } - else + else if (Path.GetFullPath(signingKey) != Path.GetFullPath(defaultKey)) { File.Copy(signingKey, Path.Combine(OutputDir, "debug.keystore")); } + Utils.RunProcess(apksigner, $"sign --min-sdk-version {MinApiLevel} --ks debug.keystore " + + $"--ks-pass pass:android --key-pass pass:android {apkPath}", workingDir: OutputDir); + } - // 6. Sign APK + public void ReplaceFileInApk(string file) + { + if (string.IsNullOrEmpty(AndroidSdk)) + AndroidSdk = Environment.GetEnvironmentVariable("ANDROID_SDK_ROOT"); - Utils.RunProcess(apksigner, $"sign --min-sdk-version {MinApiLevel} --ks debug.keystore " + - $"--ks-pass pass:android --key-pass pass:android {alignedApk}", workingDir: OutputDir); + if (string.IsNullOrEmpty(AndroidSdk) || !Directory.Exists(AndroidSdk)) + throw new ArgumentException($"Android SDK='{AndroidSdk}' was not found or incorrect (can be set via ANDROID_SDK_ROOT envvar)."); - Utils.LogInfo($"\nAPK size: {(new FileInfo(alignedApk).Length / 1000_000.0):0.#} Mb.\n"); + if (string.IsNullOrEmpty(BuildToolsVersion)) + BuildToolsVersion = GetLatestBuildTools(AndroidSdk); - return (alignedApk, packageId); + if (string.IsNullOrEmpty(MinApiLevel)) + MinApiLevel = DefaultMinApiLevel; + + string buildToolsFolder = Path.Combine(AndroidSdk, "build-tools", BuildToolsVersion); + string aapt = Path.Combine(buildToolsFolder, "aapt"); + string apksigner = Path.Combine(buildToolsFolder, "apksigner"); + + string apkPath = ""; + if (string.IsNullOrEmpty(ProjectName)) + apkPath = Directory.GetFiles(Path.Combine(OutputDir, "bin"), "*.apk").First(); + else + apkPath = Path.Combine(OutputDir, "bin", $"{ProjectName}.apk"); + + if (!File.Exists(apkPath)) + throw new Exception($"{apkPath} was not found"); + + Utils.RunProcess(aapt, $"remove -v bin/{Path.GetFileName(apkPath)} {file}", workingDir: OutputDir); + Utils.RunProcess(aapt, $"add -v bin/{Path.GetFileName(apkPath)} {file}", workingDir: OutputDir); + + // we need to re-sign the apk + SignApk(apkPath, apksigner); } /// diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/MonoRunner.java b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/MonoRunner.java index 6b061c476fd0..e0117935ea8b 100644 --- a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/MonoRunner.java +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/MonoRunner.java @@ -29,11 +29,14 @@ public class MonoRunner extends Instrumentation { static { + // loadLibrary triggers JNI_OnLoad in these libs + System.loadLibrary("System.Security.Cryptography.Native.OpenSsl"); System.loadLibrary("monodroid"); } static String entryPointLibName = "%EntryPointLibName%"; static Bundle result = new Bundle(); + static boolean forceInterpreter = %ForceInterpreter%; @Override public void onCreate(Bundle arguments) { @@ -42,6 +45,15 @@ public void onCreate(Bundle arguments) { if (lib != null) { entryPointLibName = lib; } + + for (String key : arguments.keySet()) { + if (key.startsWith("env:")) { + String envName = key.substring("env:".length()); + String envValue = arguments.getString(key); + setEnv(envName, envValue); + Log.i("DOTNET", "env:" + envName + "=" + envValue); + } + } } super.onCreate(arguments); @@ -64,8 +76,8 @@ public static int initialize(String entryPointLibName, Context context) { // unzip libs and test files to filesDir unzipAssets(context, filesDir, "assets.zip"); - Log.i("DOTNET", "MonoRunner initialize, entryPointLibName=" + entryPointLibName); - return initRuntime(filesDir, cacheDir, docsDir, entryPointLibName); + Log.i("DOTNET", "MonoRunner initialize,, entryPointLibName=" + entryPointLibName); + return initRuntime(filesDir, cacheDir, docsDir, entryPointLibName, forceInterpreter); } @Override @@ -126,5 +138,7 @@ static void unzipAssets(Context context, String toPath, String zipName) { } } - static native int initRuntime(String libsDir, String cacheDir, String docsDir, String entryPointLibName); + static native int initRuntime(String libsDir, String cacheDir, String docsDir, String entryPointLibName, boolean forceInterpreter); + + static native int setEnv(String key, String value); } diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/monodroid.c b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/monodroid.c index 9c829c3defd3..8d4ae5a5ac8d 100644 --- a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/monodroid.c +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/monodroid.c @@ -22,6 +22,7 @@ static char *bundle_path; static char *executable; +static bool force_interpreter; #define LOG_INFO(fmt, ...) __android_log_print(ANDROID_LOG_DEBUG, "DOTNET", fmt, ##__VA_ARGS__) #define LOG_ERROR(fmt, ...) __android_log_print(ANDROID_LOG_ERROR, "DOTNET", fmt, ##__VA_ARGS__) @@ -39,7 +40,7 @@ static char *executable; #endif static MonoAssembly* -load_assembly (const char *name, const char *culture) +mono_droid_load_assembly (const char *name, const char *culture) { char filename [1024]; char path [1024]; @@ -72,11 +73,11 @@ load_assembly (const char *name, const char *culture) } static MonoAssembly* -assembly_preload_hook (MonoAssemblyName *aname, char **assemblies_path, void* user_data) +mono_droid_assembly_preload_hook (MonoAssemblyName *aname, char **assemblies_path, void* user_data) { const char *name = mono_assembly_name_get_name (aname); const char *culture = mono_assembly_name_get_culture (aname); - return load_assembly (name, culture); + return mono_droid_load_assembly (name, culture); } char * @@ -91,7 +92,7 @@ strdup_printf (const char *msg, ...) } static MonoObject * -fetch_exception_property (MonoObject *obj, const char *name, bool is_virtual) +mono_droid_fetch_exception_property (MonoObject *obj, const char *name, bool is_virtual) { MonoMethod *get = NULL; MonoMethod *get_virt = NULL; @@ -114,9 +115,9 @@ fetch_exception_property (MonoObject *obj, const char *name, bool is_virtual) } static char * -fetch_exception_property_string (MonoObject *obj, const char *name, bool is_virtual) +mono_droid_fetch_exception_property_string (MonoObject *obj, const char *name, bool is_virtual) { - MonoString *str = (MonoString *) fetch_exception_property (obj, name, is_virtual); + MonoString *str = (MonoString *) mono_droid_fetch_exception_property (obj, name, is_virtual); return str ? mono_string_to_utf8 (str) : NULL; } @@ -125,8 +126,8 @@ unhandled_exception_handler (MonoObject *exc, void *user_data) { MonoClass *type = mono_object_get_class (exc); char *type_name = strdup_printf ("%s.%s", mono_class_get_namespace (type), mono_class_get_name (type)); - char *trace = fetch_exception_property_string (exc, "get_StackTrace", true); - char *message = fetch_exception_property_string (exc, "get_Message", true); + char *trace = mono_droid_fetch_exception_property_string (exc, "get_StackTrace", true); + char *message = mono_droid_fetch_exception_property_string (exc, "get_Message", true); LOG_ERROR("UnhandledException: %s %s %s", type_name, message, trace); @@ -147,13 +148,14 @@ log_callback (const char *log_domain, const char *log_level, const char *message } int -mono_mobile_runtime_init (void) +mono_droid_runtime_init (void) { // uncomment for debug output: // - // setenv ("XUNIT_VERBOSE", "true", true); - // setenv ("MONO_LOG_LEVEL", "debug", true); - // setenv ("MONO_LOG_MASK", "all", true); + //setenv ("XUNIT_VERBOSE", "true", true); + //setenv ("MONO_LOG_LEVEL", "debug", true); + //setenv ("MONO_LOG_MASK", "all", true); + // NOTE: these options can be set via command line args for adb or xharness, see AndroidSampleApp.csproj bool wait_for_debugger = false; chdir (bundle_path); @@ -171,7 +173,7 @@ mono_mobile_runtime_init (void) monovm_initialize(2, appctx_keys, appctx_values); mono_debug_init (MONO_DEBUG_FORMAT_MONO); - mono_install_assembly_preload_hook (assembly_preload_hook, NULL); + mono_install_assembly_preload_hook (mono_droid_assembly_preload_hook, NULL); mono_install_unhandled_exception_hook (unhandled_exception_handler, NULL); mono_trace_set_log_handler (log_callback, NULL); mono_set_signal_chaining (true); @@ -181,9 +183,15 @@ mono_mobile_runtime_init (void) char* options[] = { "--debugger-agent=transport=dt_socket,server=y,address=0.0.0.0:55555" }; mono_jit_parse_options (1, options); } + + if (force_interpreter) { + LOG_INFO("Interp Enabled"); + mono_jit_set_aot_mode(MONO_AOT_MODE_INTERP_ONLY); + } + mono_jit_init_version ("dotnet.android", "mobile"); - MonoAssembly *assembly = load_assembly (executable, NULL); + MonoAssembly *assembly = mono_droid_load_assembly (executable, NULL); assert (assembly); LOG_INFO ("Executable: %s", executable); @@ -205,8 +213,18 @@ strncpy_str (JNIEnv *env, char *buff, jstring str, int nbuff) (*env)->ReleaseStringUTFChars (env, str, copy_buff); } +void +Java_net_dot_MonoRunner_setEnv (JNIEnv* env, jobject thiz, jstring j_key, jstring j_value) +{ + const char *key = (*env)->GetStringUTFChars(env, j_key, 0); + const char *val = (*env)->GetStringUTFChars(env, j_value, 0); + setenv (key, val, true); + (*env)->ReleaseStringUTFChars(env, j_key, key); + (*env)->ReleaseStringUTFChars(env, j_value, val); +} + int -Java_net_dot_MonoRunner_initRuntime (JNIEnv* env, jobject thiz, jstring j_files_dir, jstring j_cache_dir, jstring j_docs_dir, jstring j_entryPointLibName) +Java_net_dot_MonoRunner_initRuntime (JNIEnv* env, jobject thiz, jstring j_files_dir, jstring j_cache_dir, jstring j_docs_dir, jstring j_entryPointLibName, jboolean j_forceInterpreter) { char file_dir[2048]; char cache_dir[2048]; @@ -219,8 +237,11 @@ Java_net_dot_MonoRunner_initRuntime (JNIEnv* env, jobject thiz, jstring j_files_ bundle_path = file_dir; executable = entryPointLibName; + force_interpreter = (bool)j_forceInterpreter; + setenv ("HOME", bundle_path, true); - setenv ("TMPDIR", cache_dir, true); - setenv ("DOCSDIR", docs_dir, true); - return mono_mobile_runtime_init (); + setenv ("TMPDIR", cache_dir, true); + setenv ("DOCSDIR", docs_dir, true); + + return mono_droid_runtime_init (); } diff --git a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.cs b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.cs index debd10c80f11..a7db3fa4e646 100644 --- a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.cs +++ b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.cs @@ -52,6 +52,24 @@ public class MonoAOTCompiler : Microsoft.Build.Utilities.Task /// public bool UseLLVM { get; set; } + /// + /// Use a separate .aotdata file for the AOT data. + /// Defaults to true. + /// + public bool UseAotDataFile { get; set; } = true; + + /// + /// Generate a file containing mono_aot_register_module() calls for each AOT module + /// Defaults to false. + /// + public string? AotModulesTablePath { get; set; } + + /// + /// Source code language of the AOT modules table. Supports "C" or "ObjC". + /// Defaults to "C". + /// + public string? AotModulesTableLanguage { get; set; } = nameof(MonoAotModulesTableLanguage.C); + /// /// Choose between 'Normal', 'Full', 'LLVMOnly'. /// LLVMOnly means to use only LLVM for FullAOT, AOT result will be a LLVM Bitcode file (the cross-compiler must be built with LLVM support) @@ -78,6 +96,7 @@ public class MonoAOTCompiler : Microsoft.Build.Utilities.Task private ConcurrentBag compiledAssemblies = new ConcurrentBag(); private MonoAotMode parsedAotMode; private MonoAotOutputType parsedOutputType; + private MonoAotModulesTableLanguage parsedAotModulesTableLanguage; public override bool Execute() { @@ -126,6 +145,19 @@ public override bool Execute() throw new ArgumentException($"'{nameof(UseLLVM)}' must be true when '{nameof(Mode)}' is {nameof(MonoAotMode.LLVMOnly)}.", nameof(UseLLVM)); } + switch (AotModulesTableLanguage) + { + case "C": parsedAotModulesTableLanguage = MonoAotModulesTableLanguage.C; break; + case "ObjC": parsedAotModulesTableLanguage = MonoAotModulesTableLanguage.ObjC; break; + default: + throw new ArgumentException($"'{nameof(AotModulesTableLanguage)}' must be one of: '{nameof(MonoAotModulesTableLanguage.C)}', '{nameof(MonoAotModulesTableLanguage.ObjC)}'. Received: '{AotModulesTableLanguage}'.", nameof(AotModulesTableLanguage)); + } + + if (!string.IsNullOrEmpty(AotModulesTablePath)) + { + GenerateAotModulesTable(Assemblies); + } + Parallel.ForEach(Assemblies, new ParallelOptions { MaxDegreeOfParallelism = DisableParallelAot ? 1 : Environment.ProcessorCount }, assemblyItem => PrecompileLibrary (assemblyItem)); @@ -178,8 +210,17 @@ private void PrecompileLibrary(ITaskItem assemblyItem) aotArgs.Add("llvmonly"); string llvmBitcodeFile = Path.ChangeExtension(assembly, ".dll.bc"); - aotArgs.Add($"outfile={llvmBitcodeFile}"); aotAssembly.SetMetadata("LlvmBitcodeFile", llvmBitcodeFile); + + if (parsedOutputType == MonoAotOutputType.AsmOnly) + { + aotArgs.Add("asmonly"); + aotArgs.Add($"llvm-outfile={llvmBitcodeFile}"); + } + else + { + aotArgs.Add($"outfile={llvmBitcodeFile}"); + } } else { @@ -217,9 +258,12 @@ private void PrecompileLibrary(ITaskItem assemblyItem) aotArgs.Add($"msym-dir={MsymPath}"); } - string aotDataFile = Path.ChangeExtension(assembly, ".aotdata"); - aotArgs.Add($"data-outfile={aotDataFile}"); - aotAssembly.SetMetadata("AotDataFile", aotDataFile); + if (UseAotDataFile) + { + string aotDataFile = Path.ChangeExtension(assembly, ".aotdata"); + aotArgs.Add($"data-outfile={aotDataFile}"); + aotAssembly.SetMetadata("AotDataFile", aotDataFile); + } // we need to quote the entire --aot arguments here to make sure it is parsed // on Windows as one argument. Otherwise it will be split up into multiple @@ -239,6 +283,66 @@ private void PrecompileLibrary(ITaskItem assemblyItem) compiledAssemblies.Add(aotAssembly); } + + private void GenerateAotModulesTable(ITaskItem[] assemblies) + { + var symbols = new List(); + foreach (var asm in assemblies) + { + var name = Path.GetFileNameWithoutExtension(asm.ItemSpec).Replace ('.', '_').Replace ('-', '_'); + symbols.Add($"mono_aot_module_{name}_info"); + } + + Directory.CreateDirectory(Path.GetDirectoryName(AotModulesTablePath!)!); + + using (var writer = File.CreateText(AotModulesTablePath!)) + { + if (parsedAotModulesTableLanguage == MonoAotModulesTableLanguage.C) + { + foreach (var symbol in symbols) + { + writer.WriteLine($"extern void *{symbol};"); + } + writer.WriteLine("static void register_aot_modules ()"); + writer.WriteLine("{"); + foreach (var symbol in symbols) + { + writer.WriteLine($"\tmono_aot_register_module ({symbol});"); + } + writer.WriteLine("}"); + + if (parsedAotMode == MonoAotMode.LLVMOnly) + { + writer.WriteLine("#define EE_MODE_LLVMONLY 1"); + } + } + else if (parsedAotModulesTableLanguage == MonoAotModulesTableLanguage.ObjC) + { + writer.WriteLine("#include "); + writer.WriteLine("#include "); + writer.WriteLine(""); + writer.WriteLine("#if TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR)"); + + foreach (var symbol in symbols) + { + writer.WriteLine($"extern void *{symbol};"); + } + + writer.WriteLine("void register_aot_modules (void)"); + writer.WriteLine("{"); + foreach (var symbol in symbols) + { + writer.WriteLine($"\tmono_aot_register_module ({symbol});"); + } + writer.WriteLine("}"); + writer.WriteLine("#endif"); + } + else + { + throw new NotSupportedException(); + } + } + } } public enum MonoAotMode @@ -253,3 +357,9 @@ public enum MonoAotOutputType Normal, AsmOnly, } + +public enum MonoAotModulesTableLanguage +{ + C, + ObjC +} diff --git a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.props b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.props index 6824a7fc1c6f..db518b2e8455 100644 --- a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.props +++ b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.props @@ -14,4 +14,10 @@ + + + + + + diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs index 0743f7947854..24723adc9fe7 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs @@ -101,6 +101,11 @@ public class AppleAppBuilderTask : Task /// public bool UseAotForSimulator { get; set; } + /// + /// Forces the runtime to use the interpreter + /// + public bool ForceInterpreter { get; set; } + /// /// Path to xcode project /// @@ -149,20 +154,20 @@ public override bool Execute() } } - if ((isDevice || UseAotForSimulator) && !assemblerFiles.Any()) + if (((!ForceInterpreter && (isDevice || UseAotForSimulator)) && !assemblerFiles.Any())) { throw new InvalidOperationException("Need list of AOT files for device builds."); } - // generate modules.m - GenerateLinkAllFile( - assemblerFiles, - Path.Combine(binDir, "modules.m")); + if (ForceInterpreter && UseAotForSimulator) + { + throw new InvalidOperationException("Interpreter and AOT cannot be enabled at the same time"); + } if (GenerateXcodeProject) { XcodeProjectPath = Xcode.GenerateXCode(ProjectName, MainLibraryFileName, assemblerFiles, - AppDir, binDir, MonoRuntimeHeaders, !isDevice, UseConsoleUITemplate, UseAotForSimulator, Optimized, NativeMainSource); + AppDir, binDir, MonoRuntimeHeaders, !isDevice, UseConsoleUITemplate, UseAotForSimulator, ForceInterpreter, Optimized, NativeMainSource); if (BuildAppBundle) { @@ -180,57 +185,4 @@ public override bool Execute() return true; } - - private static void GenerateLinkAllFile(IEnumerable asmFiles, string outputFile) - { - // Generates 'modules.m' in order to register all managed libraries - // - // - // extern void *mono_aot_module_Lib1_info; - // extern void *mono_aot_module_Lib2_info; - // ... - // - // void mono_ios_register_modules (void) - // { - // mono_aot_register_module (mono_aot_module_Lib1_info); - // mono_aot_register_module (mono_aot_module_Lib2_info); - // ... - // } - - Utils.LogInfo("Generating 'modules.m'..."); - - var lsDecl = new StringBuilder(); - lsDecl - .AppendLine("#include ") - .AppendLine("#include ") - .AppendLine() - .AppendLine("#if TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR)") - .AppendLine(); - - var lsUsage = new StringBuilder(); - lsUsage - .AppendLine("void mono_ios_register_modules (void)") - .AppendLine("{"); - foreach (string asmFile in asmFiles) - { - string symbol = "mono_aot_module_" + - Path.GetFileName(asmFile) - .Replace(".dll.s", "") - .Replace(".", "_") - .Replace("-", "_") + "_info"; - - lsDecl.Append("extern void *").Append(symbol).Append(';').AppendLine(); - lsUsage.Append("\tmono_aot_register_module (").Append(symbol).Append(");").AppendLine(); - } - lsDecl - .AppendLine() - .Append(lsUsage) - .AppendLine("}") - .AppendLine() - .AppendLine("#endif") - .AppendLine(); - - File.WriteAllText(outputFile, lsDecl.ToString()); - Utils.LogInfo($"Saved to {outputFile}."); - } } diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template index ecd3d6c1e614..ce8595ebf3a1 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template @@ -12,7 +12,7 @@ add_executable( %MainSource% runtime.h runtime.m - modules.m + %AotModulesSource% ${APP_RESOURCES} ) diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m index 02c0070fb6b7..70afd67e916c 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m @@ -196,9 +196,9 @@ //%DllMap% } -#if TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#if FORCE_INTERPRETER || (TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR)) void mono_jit_set_aot_mode (MonoAotMode mode); -void mono_ios_register_modules (void); +void register_aot_modules (void); #endif void @@ -228,10 +228,13 @@ // TODO: set TRUSTED_PLATFORM_ASSEMBLIES, APP_PATHS and NATIVE_DLL_SEARCH_DIRECTORIES monovm_initialize(0, NULL, NULL); -#if TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#if FORCE_INTERPRETER + os_log_info (OS_LOG_DEFAULT, "INTERP Enabled"); + mono_jit_set_aot_mode (MONO_AOT_MODE_INTERP_ONLY); +#elif TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) register_dllmap (); // register modules - mono_ios_register_modules (); + register_aot_modules (); mono_jit_set_aot_mode (MONO_AOT_MODE_FULL); #endif @@ -249,7 +252,7 @@ } mono_jit_init_version ("dotnet.ios", "mobile"); -#if TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#if !FORCE_INTERPRETER && TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) // device runtimes are configured to use lazy gc thread creation MONO_ENTER_GC_UNSAFE; mono_gc_init_finalizer_thread (); diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs index fba4d5d1b820..41b19753b93a 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs @@ -21,6 +21,7 @@ internal class Xcode bool preferDylibs, bool useConsoleUiTemplate, bool useAotForSimulator, + bool forceInterpreter, bool stripDebugSymbols, string? nativeMainSource = null) { @@ -85,8 +86,18 @@ internal class Xcode cmakeLists = cmakeLists.Replace("%NativeLibrariesToLink%", toLink); cmakeLists = cmakeLists.Replace("%AotSources%", aotSources); - cmakeLists = cmakeLists.Replace("%Defines%", - useAotForSimulator ? "add_definitions(-DUSE_AOT_FOR_SIMULATOR=1)" : ""); + cmakeLists = cmakeLists.Replace("%AotModulesSource%", string.IsNullOrEmpty(aotSources) ? "" : "modules.m"); + + string defines = ""; + if (forceInterpreter) + { + defines = "add_definitions(-DFORCE_INTERPRETER=1)"; + } + else if (useAotForSimulator) + { + defines = "add_definitions(-DUSE_AOT_FOR_SIMULATOR=1)"; + } + cmakeLists = cmakeLists.Replace("%Defines%", defines); string plist = Utils.GetEmbeddedResource("Info.plist.template") .Replace("%BundleIdentifier%", projectName); diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs index 348e33b067d8..fce387d99675 100644 --- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs +++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs @@ -111,6 +111,7 @@ public override bool Execute () var paths = new List(); _assemblies = new SortedDictionary(); + var runtimeSourceDir = Path.Join (MicrosoftNetCoreAppRuntimePackDir, "native"); if (AssemblySearchPaths != null) { @@ -153,6 +154,7 @@ public override bool Execute () if (v.ItemSpec.EndsWith ("System.Private.CoreLib.dll")) corelibPath = Path.GetDirectoryName (v.ItemSpec)!; } + runtimeSourceDir = corelibPath!; _resolver = new Resolver(new List() { corelibPath }); var mlc = new MetadataLoadContext(_resolver, "System.Private.CoreLib"); @@ -184,7 +186,7 @@ public override bool Execute () nativeAssets.Add(IcuDataFileName!); foreach (var f in nativeAssets) - File.Copy(Path.Join (MicrosoftNetCoreAppRuntimePackDir, "native", f), Path.Join(AppDir, f), true); + File.Copy(Path.Join (runtimeSourceDir, f), Path.Join(AppDir, f), true); File.Copy(MainJS!, Path.Join(AppDir, "runtime.js"), true); var html = @""; diff --git a/tools-local/tasks/mobile.tasks/WasmBuildTasks/CompileTimeZoneData.cs b/tools-local/tasks/mobile.tasks/WasmBuildTasks/CompileTimeZoneData.cs index f7ebb449d692..e8c15ed6d801 100644 --- a/tools-local/tasks/mobile.tasks/WasmBuildTasks/CompileTimeZoneData.cs +++ b/tools-local/tasks/mobile.tasks/WasmBuildTasks/CompileTimeZoneData.cs @@ -26,21 +26,44 @@ public class CompileTimeZoneData : Task [Required] public string[]? TimeZones { get; set; } + public bool FilterSystemTimeZones { get; set; } + private const string ZoneTabFileName = "zone1970.tab"; - private void CompileTimeZoneDataSource() + private bool CompileTimeZoneDataSource() { - using (Process process = new Process()) + foreach (var f in TimeZones!) { - process.StartInfo.UseShellExecute = false; - process.StartInfo.FileName = "zic"; - foreach (var f in TimeZones!) + using Process process = new (); + + // zic writes warnings over stderr + process.ErrorDataReceived += (_, args) => Log.LogMessage(MessageImportance.Low, args.Data ?? string.Empty); + process.OutputDataReceived += (_, args) => Log.LogMessage(MessageImportance.Low, args.Data ?? string.Empty); + + process.StartInfo = new ProcessStartInfo { - process.StartInfo.Arguments = $"-d \"{OutputDirectory}\" \"{Path.Combine(InputDirectory!, f)}\""; - process.Start(); - process.WaitForExit(); + UseShellExecute = false, + FileName = "zic", + RedirectStandardError = true, + RedirectStandardOutput = true, + Arguments = $"-d \"{OutputDirectory}\" \"{Path.Combine(InputDirectory!, f)}\"" + }; + + Log.LogMessage(MessageImportance.Low, $"Running {process.StartInfo.FileName} {process.StartInfo.Arguments}"); + + process.Start(); + process.BeginErrorReadLine(); + process.BeginOutputReadLine(); + + process.WaitForExit(); + if (process.ExitCode != 0) + { + Log.LogError($"{process.StartInfo.FileName} {process.StartInfo.Arguments} returned exit code {process.ExitCode}"); + return false; } } + + return true; } private void FilterTimeZoneData() @@ -50,6 +73,7 @@ private void FilterTimeZoneData() foreach (var entry in new DirectoryInfo (OutputDirectory!).EnumerateFiles()) { File.Delete(entry.FullName); + Log.LogMessage(MessageImportance.Low, $"Removing file created by zic: \"{entry.FullName}\"."); } } @@ -67,30 +91,42 @@ private void FilterZoneTab(string[] filters, string ZoneTabFile) } } } + + Log.LogMessage(MessageImportance.Low, $"Wrote \"{ZoneTabFile}\" filtered to \"{path}\"."); } public override bool Execute() { - string ZoneTabFile = Path.Combine(InputDirectory!, ZoneTabFileName); + string zoneTabFilePath = Path.Combine(InputDirectory!, ZoneTabFileName); if (!Directory.Exists(OutputDirectory)) Directory.CreateDirectory(OutputDirectory!); - if (!File.Exists(ZoneTabFile)) + if (!File.Exists(zoneTabFilePath)) { - Log.LogError($"Could not find required file {ZoneTabFile}"); + Log.LogError($"Could not find required file {zoneTabFilePath}"); return false; } - CompileTimeZoneDataSource(); + if (!CompileTimeZoneDataSource()) + return !Log.HasLoggedErrors; - string[] filtered = new string[] { "America/Los_Angeles", "Australia/Sydney", "Europe/London", "Pacific/Tongatapu", + FilterTimeZoneData(); + + if (FilterSystemTimeZones) + { + string[] filtered = new string[] { "America/Los_Angeles", "Australia/Sydney", "Europe/London", "Pacific/Tongatapu", "America/Sao_Paulo", "Australia/Perth", "Africa/Nairobi", "Europe/Berlin", "Europe/Moscow", "Africa/Tripoli", "America/Argentina/Catamarca", "Europe/Lisbon", "America/St_Johns"}; - - FilterTimeZoneData(); - FilterZoneTab(filtered, ZoneTabFile); + FilterZoneTab(filtered, zoneTabFilePath); + } + else + { + string dest = Path.Combine(OutputDirectory!, "zone.tab"); + File.Copy(zoneTabFilePath, dest, true); + Log.LogMessage(MessageImportance.Low, $"Copying file from \"{zoneTabFilePath}\" to \"{dest}\"."); + } return !Log.HasLoggedErrors; }