Add GitHub Actions configuration (#201)

* new build system based on NUKE build
* support test running on Linux
This commit is contained in:
Marko Lahma
2021-08-02 17:54:41 +03:00
committed by GitHub
parent 9d7325bd67
commit ca2bf1e889
100 changed files with 1147 additions and 53007 deletions

27
.gitattributes vendored Normal file
View File

@@ -0,0 +1,27 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
# make sure *nix stays *nix
*.sh eol=lf
*.conf eol=lf
dotnet-test-nunit eol=lf

41
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: ci
on:
push:
branches:
- main
paths-ignore:
- 'doc/**'
- '*.md'
pull_request:
branches:
- main
paths-ignore:
- 'doc/**'
- '*.md'
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Run './build.cmd ci'
run: ./build.cmd ci
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run './build.cmd ci'
run: ./build.sh ci
publish:
runs-on: ubuntu-latest
needs: [ build-windows, build-linux ]
steps:
- uses: actions/checkout@v2
- name: Publish
run: ./build.sh publish
env:
NuGetApiKey: ${{ secrets.NUGET_API_KEY }}

39
.github/workflows/publish.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Publish
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: 1
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Setup dotnet 2.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 2.1.*
- name: Setup dotnet 3.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.*
- name: Setup dotnet 5.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.*
- name: Test
run: ./build.cmd ci test pack
- name: Push with dotnet
run: dotnet nuget push artifacts/*.*nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json

1
.gitignore vendored
View File

@@ -87,3 +87,4 @@ PrecompiledWeb
project.lock.json
BenchmarkDotNet.Artifacts*
/artifacts

155
.nuke/build.schema.json Normal file
View File

@@ -0,0 +1,155 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Build Schema",
"$ref": "#/definitions/build",
"definitions": {
"build": {
"type": "object",
"properties": {
"BuildEms": {
"type": "boolean",
"description": "Build EMS"
},
"Configuration": {
"type": "string",
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
"enum": [
"Debug",
"Release"
]
},
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"type": "string",
"description": "Host for execution. Default is 'automatic'",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"NoLogo": {
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"NuGetApiKey": {
"type": "string",
"default": "Secrets must be entered via 'nuke :secret [profile]'"
},
"NuGetSource": {
"type": "string"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
},
"Profile": {
"type": "array",
"description": "Defines the profiles to load",
"items": {
"type": "string"
}
},
"ProjectVersion": {
"type": "string",
"description": "Version"
},
"Root": {
"type": "string",
"description": "Root directory during build execution"
},
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"type": "string",
"enum": [
"Antlr",
"Ci",
"Clean",
"Compile",
"CompileExamples",
"CompileSolution",
"Pack",
"PackBinaries",
"Publish",
"Restore",
"Test"
]
}
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"type": "string",
"enum": [
"Antlr",
"Ci",
"Clean",
"Compile",
"CompileExamples",
"CompileSolution",
"Pack",
"PackBinaries",
"Publish",
"Restore",
"Test"
]
}
},
"TestFull": {
"type": "boolean"
},
"TestIntegrationData": {
"type": "boolean"
},
"TestIntegrationEms": {
"type": "boolean"
},
"TestIntegrationMsMq": {
"type": "boolean"
},
"TestIntegrationNms": {
"type": "boolean"
},
"Verbosity": {
"type": "string",
"description": "Logging verbosity during build execution. Default is 'Normal'",
"enum": [
"Minimal",
"Normal",
"Quiet",
"Verbose"
]
}
}
}
}
}

4
.nuke/parameters.json Normal file
View File

@@ -0,0 +1,4 @@
{
"$schema": "./build.schema.json",
"Solution": "Spring.Net.sln"
}

View File

@@ -1,23 +0,0 @@
@echo off
cd build-support
call set-nant-config-per-processor-architecture.cmd
cd ..
@echo .
@echo ..
@echo ...
@echo Running full Build Script, capturing output to buildlog.txt file...
@echo Start Time: %time%
build-support\tools\nant\bin\nant -D:test.withcoverage=false %1 %2 %3 %4 %5 %6 %7 %8 %9 > buildlog.txt
@echo .
@echo ..
@echo ...
@echo Launching text file viewer to display buildlog.txt contents...
start "ignored but required placeholder window title argument" buildlog.txt
@echo .
@echo ..
@echo ...
@echo ************************
@echo Build Complete!
@echo ************************
@echo End Time: %time%
@echo   

View File

@@ -166,29 +166,7 @@ Documented sample applications can be found in "examples":
VS.NET
------
Visual Studio 2017 is required to open and build the solution. The free community version of Visual Studio should suffice.
For the first time you need to execute `Build.cmd` which will generate `GenCommonAssemblyInfo.cs` file required for builds.
NAnt
----
Build scripts are delivered with the download package.
To build the source and run the unit tests type
build test
If you want to run the build to create strongly signed assemblies you can generate a key file by executing the following command (assuming that sn.exe is properly on your search path):
sn -k Spring.Net.snk
You need to place the Spring.NET.snk file into the root folder of the source tree. All builds are strongly named using this key file when executing the following nant command:
nant -D:project.build.sign=true
InnovaSys Document X! is used to generate the SDK documentation.
Visual Studio 2019 is required to open and build the solution. The free community version of Visual Studio should suffice.
## 8. Support

View File

@@ -1,17 +1,19 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.25807.0
# Visual Studio Version 17
VisualStudioVersion = 17.0.31410.414
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F04753EF-7A1B-4837-AB63-8C0821E8155D}"
ProjectSection(SolutionItems) = preProject
BreakingChanges.txt = BreakingChanges.txt
changelog.txt = changelog.txt
common-project.include = common-project.include
src\Directory.Build.props = src\Directory.Build.props
Local.testsettings = Local.testsettings
README.md = README.md
Spring.build = Spring.build
Spring.include = Spring.include
README.md = README.md
global.json = global.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{79F495DF-83D6-435E-A20E-47800F6F8FE7}"
@@ -87,458 +89,202 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Template.Velocity.Ca
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Template.Velocity.Castle.Tests", "test\Spring\Spring.Template.Velocity.Castle.Tests\Spring.Template.Velocity.Castle.Tests.csproj", "{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate5", "src\Spring\Spring.Data.NHibernate5\Spring.Data.NHibernate5.csproj", "{26604974-B6B8-45BA-A72A-66574ADC498B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Data.NHibernate5", "src\Spring\Spring.Data.NHibernate5\Spring.Data.NHibernate5.csproj", "{26604974-B6B8-45BA-A72A-66574ADC498B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate5.Integration.Tests", "test\Spring\Spring.Data.NHibernate5.Integration.Tests\Spring.Data.NHibernate5.Integration.Tests.csproj", "{740CDA28-39BC-455A-86C3-5323D14F5B2E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Data.NHibernate5.Integration.Tests", "test\Spring\Spring.Data.NHibernate5.Integration.Tests\Spring.Data.NHibernate5.Integration.Tests.csproj", "{740CDA28-39BC-455A-86C3-5323D14F5B2E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Data.NHibernate5.NestedTxSuspension.Integration.Tests", "test\Spring\Spring.Data.NHibernate5.NestedTxSuspension.Integration.Tests\Spring.Data.NHibernate5.NestedTxSuspension.Integration.Tests.csproj", "{DE276F7C-4564-49EC-AABC-B964EC3D1626}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate5.Tests", "test\Spring\Spring.Data.NHibernate5.Tests\Spring.Data.NHibernate5.Tests.csproj", "{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Data.NHibernate5.Tests", "test\Spring\Spring.Data.NHibernate5.Tests\Spring.Data.NHibernate5.Tests.csproj", "{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Benchmark", "test\Spring\Spring.Benchmark\Spring.Benchmark.csproj", "{504F1D7B-C6AC-4128-9411-D680B3086662}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spring.Benchmark", "test\Spring\Spring.Benchmark\Spring.Benchmark.csproj", "{504F1D7B-C6AC-4128-9411-D680B3086662}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{9537C677-ADE5-4503-AFD7-3E0C3B0960EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "build-support\nuke-build\_build.csproj", "{0D135B50-2B59-44C1-941A-32B5EC798C88}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{C0BAC5A1-AC38-4D36-BE28-F5A74BD9FECD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{76CA894B-7F4F-4F5B-8EFD-FF5253C6FCCE}"
ProjectSection(SolutionItems) = preProject
.github\workflows\ci.yml = .github\workflows\ci.yml
.github\workflows\publish.yml = .github\workflows\publish.yml
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Release|.NET = Release|.NET
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|.NET.ActiveCfg = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|.NET.Build.0 = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Any CPU.Build.0 = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|.NET.ActiveCfg = Release|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|.NET.Build.0 = Release|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Any CPU.ActiveCfg = Release|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Any CPU.Build.0 = Release|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|.NET.ActiveCfg = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|.NET.Build.0 = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|.NET.ActiveCfg = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|.NET.Build.0 = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Any CPU.Build.0 = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|.NET.ActiveCfg = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|.NET.Build.0 = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|.NET.ActiveCfg = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|.NET.Build.0 = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Any CPU.Build.0 = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|.NET.ActiveCfg = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|.NET.Build.0 = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|.NET.ActiveCfg = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|.NET.Build.0 = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|Any CPU.Build.0 = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2111596A-0327-4C9D-8919-294FBD988A23}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|.NET.ActiveCfg = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|.NET.Build.0 = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|.NET.ActiveCfg = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|.NET.Build.0 = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|Any CPU.Build.0 = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|.NET.ActiveCfg = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|.NET.Build.0 = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|.NET.ActiveCfg = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|.NET.Build.0 = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|Any CPU.Build.0 = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4374F018-9738-46BF-A399-4594CEE75B21}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|.NET.ActiveCfg = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|.NET.Build.0 = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|.NET.ActiveCfg = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|.NET.Build.0 = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|Any CPU.Build.0 = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BA4789EB-281A-48EA-8763-28B9F0596A18}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|.NET.ActiveCfg = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|.NET.Build.0 = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|.NET.ActiveCfg = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|.NET.Build.0 = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|Any CPU.Build.0 = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C67E47AA-1ACD-41B4-A465-4D336A2319CA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|.NET.ActiveCfg = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|.NET.Build.0 = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|.NET.ActiveCfg = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|.NET.Build.0 = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Any CPU.Build.0 = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|.NET.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|.NET.Build.0 = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|.NET.ActiveCfg = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|.NET.Build.0 = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Any CPU.Build.0 = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|.NET.ActiveCfg = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|.NET.Build.0 = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|.NET.ActiveCfg = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|.NET.Build.0 = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|Any CPU.Build.0 = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{91766D21-C568-459F-9BEA-759B011F23CF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|.NET.Build.0 = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|.NET.ActiveCfg = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|.NET.Build.0 = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|Any CPU.Build.0 = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E5E287D2-EE2C-4C99-87CA-EB27B35ABF7B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|.NET.ActiveCfg = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|.NET.Build.0 = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|.NET.ActiveCfg = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|.NET.Build.0 = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|Any CPU.Build.0 = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{ED204A7B-832F-44C7-BFE3-504AEBE1BCC8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|.NET.ActiveCfg = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|.NET.Build.0 = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|.NET.ActiveCfg = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|.NET.Build.0 = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Any CPU.Build.0 = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Debug|.NET.ActiveCfg = Debug|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Release|.NET.ActiveCfg = Release|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Release|Any CPU.Build.0 = Release|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{AEB1578C-9018-4D49-B440-789F38DD2F29}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Debug|.NET.ActiveCfg = Debug|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Release|.NET.ActiveCfg = Release|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Release|Any CPU.Build.0 = Release|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FA7A6931-7DBE-4A32-A312-51FAD2E80332}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Debug|.NET.ActiveCfg = Debug|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Release|.NET.ActiveCfg = Release|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Release|Any CPU.Build.0 = Release|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{0E23AE41-D8D8-41C2-84A2-D35564049F0D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Debug|.NET.ActiveCfg = Debug|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Release|.NET.ActiveCfg = Release|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Release|Any CPU.Build.0 = Release|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{41BC3AEA-7EB3-48BF-B1EC-84119376AC98}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Debug|.NET.ActiveCfg = Debug|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Release|.NET.ActiveCfg = Release|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Release|Any CPU.Build.0 = Release|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BF3AB954-8375-407C-9E98-4C51D8072784}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Debug|.NET.ActiveCfg = Debug|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Release|.NET.ActiveCfg = Release|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Release|Any CPU.Build.0 = Release|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{10405837-CB67-40D8-9326-84C9383983E2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Debug|.NET.ActiveCfg = Debug|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Release|.NET.ActiveCfg = Release|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Release|Any CPU.Build.0 = Release|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2E10A8D3-B8FF-4699-90B8-E621659C58DD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Debug|.NET.ActiveCfg = Debug|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Release|.NET.ActiveCfg = Release|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Release|Any CPU.Build.0 = Release|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{7321149A-47C6-4FBA-9D1A-26FD6815381B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Debug|.NET.ActiveCfg = Debug|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Release|.NET.ActiveCfg = Release|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{900E3839-301E-48B1-BAEB-B6645620ACFF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Release|.NET.ActiveCfg = Release|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Release|Any CPU.Build.0 = Release|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E823D54C-CE82-4868-929F-5F95A999F123}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|.NET.ActiveCfg = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Any CPU.Build.0 = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|.NET.ActiveCfg = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Any CPU.ActiveCfg = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Any CPU.Build.0 = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Debug|.NET.ActiveCfg = Debug|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Release|.NET.ActiveCfg = Release|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|.NET.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Any CPU.Build.0 = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Debug|.NET.ActiveCfg = Debug|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Release|.NET.ActiveCfg = Release|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Release|Any CPU.Build.0 = Release|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8CF0F34A-CC93-4D87-AE14-A2DEEF072F26}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Debug|.NET.ActiveCfg = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Debug|Any CPU.Build.0 = Debug|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Any CPU.ActiveCfg = Release|Any CPU
{247787CF-ECE1-4675-8B42-7DF4329A4891}.Release|Any CPU.Build.0 = Release|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA934E92-C8C2-428A-BE2A-26818F17A787}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5323AC8-137E-4EF7-BC62-3BD6FC0576CD}.Release|Any CPU.Build.0 = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Release|.NET.ActiveCfg = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Release|Any CPU.Build.0 = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Debug|.NET.ActiveCfg = Debug|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Release|.NET.ActiveCfg = Release|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Release|Any CPU.Build.0 = Release|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Debug|.NET.ActiveCfg = Debug|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Release|.NET.ActiveCfg = Release|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Release|Any CPU.Build.0 = Release|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{39AAD7EA-2ED0-4E50-8D4D-C666EA9CBFE4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Debug|.NET.ActiveCfg = Debug|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Release|.NET.ActiveCfg = Release|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Release|Any CPU.Build.0 = Release|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B9590252-6D58-4587-950C-475AB61FDBCF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Debug|.NET.ActiveCfg = Debug|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Release|.NET.ActiveCfg = Release|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Release|Any CPU.Build.0 = Release|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{250601C0-A4AC-41FE-B484-51A9B0D5473D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Debug|.NET.ActiveCfg = Debug|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|.NET.ActiveCfg = Release|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Any CPU.Build.0 = Release|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|.NET.ActiveCfg = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|.NET.ActiveCfg = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.Build.0 = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|.NET.ActiveCfg = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|.NET.Build.0 = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|.NET.ActiveCfg = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|.NET.Build.0 = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|Any CPU.Build.0 = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{26604974-B6B8-45BA-A72A-66574ADC498B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|.NET.ActiveCfg = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|.NET.Build.0 = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|.NET.ActiveCfg = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|.NET.Build.0 = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|Any CPU.Build.0 = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{740CDA28-39BC-455A-86C3-5323D14F5B2E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|.NET.ActiveCfg = Debug|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|.NET.Build.0 = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.Build.0 = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|.NET.ActiveCfg = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|.NET.Build.0 = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|Any CPU.Build.0 = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BEEBC49B-4519-4C77-AE93-11E68F4CA7E3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|.NET.ActiveCfg = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|.NET.Build.0 = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|Any CPU.Build.0 = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|.NET.ActiveCfg = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|.NET.Build.0 = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|Any CPU.ActiveCfg = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|Any CPU.Build.0 = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{504F1D7B-C6AC-4128-9411-D680B3086662}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0D135B50-2B59-44C1-941A-32B5EC798C88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D135B50-2B59-44C1-941A-32B5EC798C88}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{504F1D7B-C6AC-4128-9411-D680B3086662} = {9537C677-ADE5-4503-AFD7-3E0C3B0960EB}
{C0BAC5A1-AC38-4D36-BE28-F5A74BD9FECD} = {F04753EF-7A1B-4837-AB63-8C0821E8155D}
{76CA894B-7F4F-4F5B-8EFD-FF5253C6FCCE} = {C0BAC5A1-AC38-4D36-BE28-F5A74BD9FECD}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {803E6B42-7DEE-4DCC-83D0-51925047BCB0}
NAntAddinLastFileName = Spring.build
SolutionGuid = {803E6B42-7DEE-4DCC-83D0-51925047BCB0}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = Spring.Net.vsmdi
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{504F1D7B-C6AC-4128-9411-D680B3086662} = {9537C677-ADE5-4503-AFD7-3E0C3B0960EB}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,11 @@
[*.cs]
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning
dotnet_style_require_accessibility_modifiers = never:warning
csharp_style_expression_bodied_methods = true:silent
csharp_style_expression_bodied_properties = true:warning
csharp_style_expression_bodied_indexers = true:warning
csharp_style_expression_bodied_accessors = true:warning

View File

@@ -0,0 +1,8 @@
using Nuke.Common;
public partial class Build
{
Target Ci => _ => _
.DependsOn(Compile, Test, Pack)
.Executes();
}

View File

@@ -0,0 +1,43 @@
using System.Collections.Generic;
using Nuke.Common;
using Nuke.Common.Git;
using Nuke.Common.IO;
using Nuke.Common.Tooling;
using Nuke.Common.Tools.DotNet;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
public partial class Build
{
[Parameter] string NuGetSource => "https://api.nuget.org/v3/index.json";
[Parameter] [Secret] string NuGetApiKey;
Target Publish => _ => _
.OnlyWhenStatic(() => GitRepository.IsOnMainBranch() || GitRepository.Branch == "github-build")
.DependsOn(Pack)
.Requires(() => NuGetApiKey)
.Executes(() =>
{
DotNetNuGetPush(_ => _
.Apply(PushSettingsBase)
.Apply(PushSettings)
.CombineWith(PushPackageFiles, (_, v) => _
.SetTargetPath(v))
.Apply(PackagePushSettings),
PushDegreeOfParallelism,
PushCompleteOnFailure);
});
Configure<DotNetNuGetPushSettings> PushSettingsBase => _ => _
.SetSource(NuGetSource)
.SetApiKey(NuGetApiKey);
Configure<DotNetNuGetPushSettings> PushSettings => _ => _;
Configure<DotNetNuGetPushSettings> PackagePushSettings => _ => _;
IEnumerable<AbsolutePath> PushPackageFiles => ArtifactsDirectory.GlobFiles("*.nupkg");
bool PushCompleteOnFailure => true;
int PushDegreeOfParallelism => 5;
}

View File

@@ -0,0 +1,59 @@
using System.Linq;
using Nuke.Common;
using Nuke.Common.Tools.DotNet;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
public partial class Build
{
[Parameter]
readonly bool TestFull = false;
[Parameter]
readonly bool TestIntegrationData = false;
[Parameter]
readonly bool TestIntegrationEms = false;
[Parameter]
readonly bool TestIntegrationNms = false;
[Parameter]
readonly bool TestIntegrationMsMq = false;
Target Test => _ => _
.DependsOn(Restore)
.After(Compile)
.Executes(() =>
{
var testTargets = GetActiveProjects()
.Where(x => x.Name.Contains(".Test"))
.Where(x => !x.Name.Contains(".Integration") || TestFull)
.Where(x => !x.Name.Contains("Spring.Web.Conversation.NHibernate5.Tests") || TestFull)
.Where(x => !x.Name.Contains("Spring.Data.Integration.Tests") || TestIntegrationData)
.Where(x => !x.Name.Contains("Spring.Messaging.Tests") || TestIntegrationMsMq || TestFull)
.Where(x => !x.Name.Contains("Spring.Nms.Integration.Tests") || TestIntegrationNms || TestFull)
.Where(x => !x.Name.Contains("Spring.Messaging.Ems.Integration.Tests") || TestIntegrationEms || TestFull)
.Where(x => !x.Name.Contains("Spring.Services.Tests"))
.Where(x => !x.Name.Contains("Spring.Template.Velocity.Castle.Tests") || EnvironmentInfo.IsWin)
.Where(x => !x.Name.Contains("Spring.Template.Velocity.Tests") || EnvironmentInfo.IsWin)
.Where(x => !x.Name.Contains("Spring.Testing.Microsoft.Test") || EnvironmentInfo.IsWin)
.Where(x => !x.Name.Contains("Spring.Web.Tests") || EnvironmentInfo.IsWin)
.Where(x => !x.Name.Contains("Spring.Web.Mvc5.Tests") || EnvironmentInfo.IsWin);
foreach (var project in testTargets)
{
DotNetTest(s =>
{
s = s
.SetProjectFile(project.Path)
.SetConfiguration(Configuration)
.EnableNoRestore();
if (!EnvironmentInfo.IsWin)
{
s = s.SetFramework("net5.0");
}
return s;
});
}
});
}

View File

@@ -0,0 +1,204 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Nuke.Common;
using Nuke.Common.CI;
using Nuke.Common.CI.AppVeyor;
using Nuke.Common.CI.GitHubActions;
using Nuke.Common.Git;
using Nuke.Common.IO;
using Nuke.Common.ProjectModel;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.MSBuild;
using Nuke.Common.Utilities.Collections;
using static Nuke.Common.IO.FileSystemTasks;
using static Nuke.Common.Tooling.ProcessTasks;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
using static Nuke.Common.Tools.MSBuild.MSBuildTasks;
[ShutdownDotNetAfterServerBuild]
partial class Build : NukeBuild
{
/// Support plugins are available for:
/// - JetBrains ReSharper https://nuke.build/resharper
/// - JetBrains Rider https://nuke.build/rider
/// - Microsoft VisualStudio https://nuke.build/visualstudio
/// - Microsoft VSCode https://nuke.build/vscode
public static int Main () => Execute<Build>(x => x.Compile);
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
[Parameter("Build EMS")]
readonly bool BuildEms = false;
[Parameter("Version")]
readonly string ProjectVersion = "3.0.0";
[Solution] readonly Solution Solution;
[GitRepository] readonly GitRepository GitRepository;
[CI] readonly AppVeyor AppVeyor;
[CI] readonly GitHubActions GitHubActions;
AbsolutePath SourceDirectory => RootDirectory / "src";
AbsolutePath TestsDirectory => RootDirectory / "test";
AbsolutePath BuildDirectory => RootDirectory / "build";
AbsolutePath ExamplesDirectory => RootDirectory / "examples";
AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts";
Target Clean => _ => _
.Before(Restore)
.Executes(() =>
{
ExamplesDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory);
SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory);
TestsDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory);
EnsureCleanDirectory(ArtifactsDirectory);
EnsureCleanDirectory(BuildDirectory);
});
Target Restore => _ => _
.Executes(() =>
{
DotNetRestore(s => s
.SetProjectFile(Solution));
});
Target Compile => _ => _
.DependsOn(CompileSolution, CompileExamples);
Target CompileSolution => _ => _
.DependsOn(Restore)
.Executes(() =>
{
DotNetBuild(s => s
.SetProjectFile(Solution)
.SetConfiguration(Configuration)
.EnableNoRestore()
);
});
Target CompileExamples => _ => _
.OnlyWhenStatic(() => EnvironmentInfo.IsWin)
.DependsOn(CompileSolution, PackBinaries)
.Executes(() =>
{
foreach (var solutionFile in ExamplesDirectory.GlobFiles("**/*.sln"))
{
if (solutionFile.ToString().Contains("Spring.EmsQuickStart") && !BuildEms
|| solutionFile.ToString().Contains("Spring.Examples.Pool")
|| solutionFile.ToString().Contains("SpringAir")
|| solutionFile.ToString().Contains("Spring.Web.Extensions.Example")
|| solutionFile.ToString().Contains("Spring.WebQuickStart"))
{
continue;
}
MSBuild(s => s
.SetTargets("Restore", "Rebuild")
.SetConfiguration(Configuration)
.SetTargetPath(solutionFile)
.SetNodeReuse(false)
.SetVerbosity(MSBuildVerbosity.Minimal)
);
}
});
Target Antlr => _ => _
.Executes(() =>
{
var projectDir = Solution.GetProject("Spring.Core");
var expressionsDir = Path.Combine(projectDir.Directory, "Expressions");
var antlrExecutable = Path.Combine(Solution.Directory, "build-support/tools/antlr-2.7.6/antlr-2.7.6.exe");
var process = StartProcess(
toolPath: antlrExecutable,
arguments: $"-o {expressionsDir}/Parser {expressionsDir}/Expression.g"
);
process.WaitForExit();
});
Target Pack => _ => _
.After(Test)
.DependsOn(Restore)
.Executes(() =>
{
var packTargets = GetActiveProjects()
.Where(x => !x.Name.Contains(".Test"));
var version = GitRepository.Tags.SingleOrDefault(x => x.StartsWith("v"))?[1..];
var suffix = "";
if (string.IsNullOrWhiteSpace(version))
{
version = ProjectVersion;
suffix = "develop-" + DateTime.UtcNow.ToString("yyyyMMddHHmm");
}
foreach (var project in packTargets)
{
DotNetPack(s => s
.SetProject(project.Path)
.SetVersion(version)
.SetVersionSuffix(suffix)
.SetConfiguration(Configuration.Release)
.EnableNoRestore()
.SetOutputDirectory(ArtifactsDirectory)
);
}
});
Target PackBinaries => _ => _
.DependsOn(CompileSolution)
.Executes(() =>
{
var binDirectory = RootDirectory / "bin";
EnsureCleanDirectory(binDirectory);
var moduleNames = new[]
{
"Common.Logging",
"Common.Logging.Core",
"Spring.Core",
"Spring.Aop",
"Spring.Data",
"Spring.Data.NHibernate*",
"Spring.Web",
"Spring.Web.Mvc5",
"Spring.Web.Extensions",
"Spring.Services",
"Spring.Testing.NUnit",
"Spring.Testing.Microsoft",
"Spring.Messaging.Ems",
"Spring.Messaging.Nms",
"Spring.Messaging",
"Spring.Scheduling.Quartz3",
"Spring.Template.Velocity",
"Spring.Web.Conversation.NHibernate5",
};
var patterns = moduleNames
.SelectMany(x => new []
{
"**/" + Configuration + "/**/" + x + ".dll",
"**/" + Configuration + "/**/" + x + ".xml",
"**/" + Configuration + "/**/" + x + ".pdb"
})
.ToArray();
foreach (var file in BuildDirectory.GlobFiles(patterns))
{
CopyFileToDirectory(file, binDirectory / "net", FileExistsPolicy.OverwriteIfNewer);
}
});
IEnumerable<Project> GetActiveProjects()
{
var packTargets = Solution.GetProjects("*")
.Where(x => x.Name != "Spring.Messaging.Ems" || BuildEms)
.Where(x => !x.Name.Contains("_build"));
return packTargets;
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.ComponentModel;
using System.Linq;
using Nuke.Common.Tooling;
[TypeConverter(typeof(TypeConverter<Configuration>))]
public class Configuration : Enumeration
{
public static Configuration Debug = new Configuration { Value = nameof(Debug) };
public static Configuration Release = new Configuration { Value = nameof(Release) };
public static implicit operator string(Configuration configuration)
{
return configuration.Value;
}
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file prevents unintended imports of unrelated MSBuild files -->
<!-- Uncomment to include parent Directory.Build.props file -->
<!--<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />-->
</Project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file prevents unintended imports of unrelated MSBuild files -->
<!-- Uncomment to include parent Directory.Build.targets file -->
<!--<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />-->
</Project>

View File

@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace></RootNamespace>
<NoWarn>CS0649;CS0169</NoWarn>
<NukeRootDirectory>..\..</NukeRootDirectory>
<NukeScriptDirectory>..\..</NukeScriptDirectory>
<NukeTelemetryVersion>1</NukeTelemetryVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nuke.Common" Version="5.2.1" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,27 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=HeapView_002EDelegateAllocation/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VariableHidesOuterVariable/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassNeverInstantiated_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MemberCanBeMadeStatic_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_INTERNAL_MODIFIER/@EntryValue">Implicit</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_PRIVATE_MODIFIER/@EntryValue">Implicit</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/METHOD_OR_OPERATOR_BODY/@EntryValue">ExpressionBody</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/ThisQualifier/INSTANCE_MEMBERS_QUALIFY_MEMBERS/@EntryValue">0</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">NEXT_LINE</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_USER_LINEBREAKS/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_AFTER_INVOCATION_LPAR/@EntryValue">False</s:Boolean>
<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/MAX_ATTRIBUTE_LENGTH_FOR_SAME_LINE/@EntryValue">120</s:Int64>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">IF_OWNER_IS_SINGLE_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_ARGUMENTS_STYLE/@EntryValue">WRAP_IF_LONG</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpRenamePlacementToArrangementMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

7
build.cmd Normal file
View File

@@ -0,0 +1,7 @@
:; set -eo pipefail
:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
:; ${SCRIPT_DIR}/build.sh "$@"
:; exit $?
@ECHO OFF
powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %*

69
build.ps1 Normal file
View File

@@ -0,0 +1,69 @@
[CmdletBinding()]
Param(
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
[string[]]$BuildArguments
)
Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)"
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 }
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
###########################################################################
# CONFIGURATION
###########################################################################
$BuildProjectFile = "$PSScriptRoot\build-support\nuke-build\_build.csproj"
$TempDirectory = "$PSScriptRoot\\.nuke\temp"
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
$DotNetChannel = "Current"
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
$env:DOTNET_MULTILEVEL_LOOKUP = 0
###########################################################################
# EXECUTION
###########################################################################
function ExecSafe([scriptblock] $cmd) {
& $cmd
if ($LASTEXITCODE) { exit $LASTEXITCODE }
}
# If dotnet CLI is installed globally and it matches requested version, use for execution
if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and `
$(dotnet --version) -and $LASTEXITCODE -eq 0) {
$env:DOTNET_EXE = (Get-Command "dotnet").Path
}
else {
# Download install script
$DotNetInstallFile = "$TempDirectory\dotnet-install.ps1"
New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile)
# If global.json exists, load expected version
if (Test-Path $DotNetGlobalFile) {
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json)
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) {
$DotNetVersion = $DotNetGlobal.sdk.version
}
}
# Install by channel or version
$DotNetDirectory = "$TempDirectory\dotnet-win"
if (!(Test-Path variable:DotNetVersion)) {
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath }
} else {
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
}
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
}
Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)"
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }

62
build.sh Executable file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
bash --version 2>&1 | head -n 1
set -eo pipefail
SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
###########################################################################
# CONFIGURATION
###########################################################################
BUILD_PROJECT_FILE="$SCRIPT_DIR/build-support/nuke-build/_build.csproj"
TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp"
DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json"
DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh"
DOTNET_CHANNEL="Current"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_MULTILEVEL_LOOKUP=0
###########################################################################
# EXECUTION
###########################################################################
function FirstJsonValue {
perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}"
}
# If dotnet CLI is installed globally and it matches requested version, use for execution
if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then
export DOTNET_EXE="$(command -v dotnet)"
else
# Download install script
DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh"
mkdir -p "$TEMP_DIRECTORY"
curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL"
chmod +x "$DOTNET_INSTALL_FILE"
# If global.json exists, load expected version
if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then
DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")")
if [[ "$DOTNET_VERSION" == "" ]]; then
unset DOTNET_VERSION
fi
fi
# Install by channel or version
DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix"
if [[ -z ${DOTNET_VERSION+x} ]]; then
"$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path
else
"$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path
fi
export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet"
fi
echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)"
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@"

12
docker-compose-ci.yml Normal file
View File

@@ -0,0 +1,12 @@
version: '2'
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
- MSSQL_PID=Express
- ACCEPT_EULA=Y
- SA_PASSWORD=MyPassword!
ports:
- 1433:1433

12
docker-compose.yml Normal file
View File

@@ -0,0 +1,12 @@
version: '2'
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04
environment:
- MSSQL_PID=Express
- ACCEPT_EULA=Y
- SA_PASSWORD=MyPassword!
ports:
- 1433:1433

6
global.json Normal file
View File

@@ -0,0 +1,6 @@
{
"sdk": {
"version": "5.0",
"rollForward": "latestFeature"
}
}

View File

@@ -11,17 +11,20 @@
<DelaySign>false</DelaySign>
<Deterministic>true</Deterministic>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
<Product>Spring.NET</Product>
<Company>SpringSource</Company>
<Copyright>Copyright 2002-2021 Spring.NET Framework Team.</Copyright>
<Trademark>Apache License, Version 2.0</Trademark>
<CommonLoggingVersion>3.4.1</CommonLoggingVersion>
<Authors>SpringSource</Authors>
<PackageIcon>SpringSource_Leaves32x32.png</PackageIcon>
<PackageIconUrl>http://springframework.net/images/SpringSource_Leaves32x32.png</PackageIconUrl>
<PackageIconUrl>https://springframework.net/images/SpringSource_Leaves32x32.png</PackageIconUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageProjectUrl>http://www.springframework.net/</PackageProjectUrl>
<PackageProjectUrl>https://www.springframework.net/</PackageProjectUrl>
<PackageTags>Library</PackageTags>
<NeutralLanguage>en-US</NeutralLanguage>

View File

@@ -10,10 +10,6 @@
<ProjectReference Include="..\Spring.Core\Spring.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
<SubType>Code</SubType>
</Compile>
<None Include="Aop\Config\spring-aop-1.1.xsx">
<DependentUpon>spring-aop-1.1.xsd</DependentUpon>
</None>

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -99,9 +99,9 @@ namespace Spring.Expressions
Typename2Creator = new Hashtable();
foreach (Type type in typeof(SpringASTFactory).Assembly.GetTypes())
{
if (BASENODE_TYPE.IsAssignableFrom(type))
if (BASENODE_TYPE.IsAssignableFrom(type) && !type.IsAbstract)
{
ConstructorInfo ctor = type.GetConstructor(new Type[0]);
ConstructorInfo ctor = type.GetConstructor(System.Type.EmptyTypes);
if (ctor != null)
{
ASTNodeCreator creator = new ASTNodeCreator(ctor);

View File

@@ -4,10 +4,6 @@
<Description>Core functionality for Spring.Net IoC container</Description>
<NoWarn>219, 162, 618, 1591</NoWarn>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>rem $(ProjectDir)..\..\..\build-support\tools\antlr-2.7.6\antlr-2.7.6.exe -o $(ProjectDir)Expressions\Parser $(ProjectDir)Expressions\Expression.g
</PreBuildEvent>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == '$(TargetFullFrameworkVersion)' ">
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System.Configuration" />
@@ -30,10 +26,6 @@
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="Context\Config\spring-context-1.3.xsd" />
<EmbeddedResource Include="Context\Config\spring-context-2.0.xsd" />
<EmbeddedResource Include="Objects\Factory\Xml\spring-tool-1.1.xsd" />

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright <EFBFBD> 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -111,7 +111,7 @@ namespace Spring.Util
an.SetPublicKey(Assembly.GetExecutingAssembly().GetName().GetPublicKey());
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(an, AssemblyBuilderAccess.Run, null, null, null, null,null, true );
#if DEBUG
module = assembly.DefineDynamicModule(an.Name, true);
var module = assembly.DefineDynamicModule(an.Name, true);
#else
var module = assembly.DefineDynamicModule(an.Name, false);
#endif

View File

@@ -19,9 +19,6 @@
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<Compile Remove="Data\NHibernate\Support\OpenSessionInViewModule.cs" Condition=" '$(TargetFramework)' != 'net461'" />
</ItemGroup>
</Project>

View File

@@ -15,9 +15,6 @@
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<None Include="Data\Config\spring-database-1.3.xsx">
<DependentUpon>spring-database-1.3.xsd</DependentUpon>
</None>

View File

@@ -21,9 +21,6 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<EmbeddedResource Include="Messaging\Ems\Config\spring-ems-1.3.xsd" />
</ItemGroup>
</Project>

View File

@@ -12,9 +12,6 @@
<PackageReference Include="Apache.NMS" Version="1.8.0" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<EmbeddedResource Include="Messaging\Nms\Config\spring-nms-1.2.xsd">
<SubType />
</EmbeddedResource>

View File

@@ -11,11 +11,6 @@
<Reference Include="System.Messaging" />
<Reference Include="System.Transactions" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Experimental.System.Messaging" Version="1.1.0" />
</ItemGroup>

View File

@@ -10,9 +10,4 @@
<ItemGroup>
<PackageReference Include="Quartz" Version="3.2.3" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
</Project>

View File

@@ -15,10 +15,6 @@
<Reference Include="System.Web.Services" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
<SubType>Code</SubType>
</Compile>
<None Include="Spring.Services.build" />
<EmbeddedResource Include="EnterpriseServices\EnterpriseServices.keys" />
<EmbeddedResource Include="Remoting\Config\spring-remoting-1.1.xsd" />

View File

@@ -9,9 +9,6 @@
<PackageReference Include="Castle.NVelocity" Version="1.1.1" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Spring.Template.Velocity\Template\Velocity\CommonsLoggingLogSystem.cs">
<Link>Template\Velocity\CommonsLoggingLogSystem.cs</Link>
</Compile>

View File

@@ -10,9 +10,6 @@
<PackageReference Include="NVelocity" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<EmbeddedResource Include="Template\Velocity\Config\spring-nvelocity-1.3.xsd" />
</ItemGroup>
</Project>

View File

@@ -10,9 +10,4 @@
<ItemGroup>
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
</Project>

View File

@@ -11,10 +11,4 @@
<ItemGroup>
<PackageReference Include="NUnit" Version="3.12.0" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<None Include="Spring.Testing.NUnit.build" />
</ItemGroup>
</Project>

View File

@@ -11,10 +11,4 @@
<ItemGroup>
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<None Include="app.config" />
</ItemGroup>
</Project>

View File

@@ -12,9 +12,4 @@
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Services" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
</Project>

View File

@@ -18,9 +18,4 @@
<Reference Include="System.Web.Routing" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
</Project>

View File

@@ -14,10 +14,4 @@
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.Services" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
</Project>

View File

@@ -17,11 +17,11 @@
<CommonLoggingVersion>3.4.1</CommonLoggingVersion>
<Log4NetVersion>2.0.8</Log4NetVersion>
<NUnitVersion>3.12.0</NUnitVersion>
<NUnitVersion>3.13.1</NUnitVersion>
<NUnitTestAdapterVersion>3.17.0</NUnitTestAdapterVersion>
<FakeItEasyVersion>6.2.1</FakeItEasyVersion>
<FakeItEasyAnalyzerVersion>6.0.0</FakeItEasyAnalyzerVersion>
<MicrosoftTestSDKVersion>16.8.0</MicrosoftTestSDKVersion>
<MicrosoftTestSDKVersion>16.9.4</MicrosoftTestSDKVersion>
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
<ComVisible>False</ComVisible>
@@ -31,6 +31,8 @@
<LangVersion>latest</LangVersion>
<TargetFullFrameworkVersion>net461</TargetFullFrameworkVersion>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

View File

@@ -34,7 +34,7 @@ namespace Spring.Aop.Framework.Adapter
/// </summary>
/// <author>Dmitriy Kopylenko</author>
/// <author>Simon White (.NET)</author>
[TestFixture]
[Platform("Win")]
public class AdvisorAdapterRegistrationTests
{
[Test]

View File

@@ -162,6 +162,7 @@ namespace Spring.Aop.Framework.AutoProxy
}
[Test]
[Platform("Win")]
public void ProxyTransparentProxy()
{
DefaultListableObjectFactory of = new DefaultListableObjectFactory();

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -532,6 +532,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public void ProxyMethodWithRefOutParametersWithDirectCall()
{
PublicRefOutTestObject target = new PublicRefOutTestObject();
@@ -547,6 +548,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public void ProxyMethodWithRefOutParametersWithDynamicReflection()
{
PublicRefOutTestObject target = new PublicRefOutTestObject();
@@ -566,6 +568,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public virtual void ProxyMethodWithRefOutParametersWithStandardReflection()
{
InternalRefOutTestObject target = new InternalRefOutTestObject();
@@ -660,6 +663,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public void ProxyGenericMethodWithRefOutParametersWithDirectCall()
{
PublicRefOutGenericTestObject target = new PublicRefOutGenericTestObject();
@@ -675,6 +679,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public void ProxyGenericMethodWithRefOutParametersWithDynamicReflection()
{
PublicRefOutGenericTestObject target = new PublicRefOutGenericTestObject();
@@ -694,6 +699,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test]
[Platform("Win")]
public virtual void ProxyGenericMethodWithRefOutParametersWithStandardReflection()
{
InternalRefOutGenericTestObject target = new InternalRefOutGenericTestObject();
@@ -844,6 +850,7 @@ namespace Spring.Aop.Framework.DynamicProxy
}
[Test(Description = "http://opensource.atlassian.com/projects/spring/browse/SPRNET-340")]
[Platform("Win")]
public void MultiThreadedProxyCreation()
{
MultiThreadedProxyCreation(5);

View File

@@ -97,6 +97,7 @@ namespace Spring.Aop.Support
}
[Test]
[Platform("Win")]
public void Serialization()
{
IObjectFactory iof = new XmlObjectFactory(new ReadOnlyXmlTestResource("RegularExpressionSetterTests.xml", GetType()));

View File

@@ -25,7 +25,14 @@
<ItemGroup>
<Compile Include="..\Spring.Core.Tests\TestAssemblySetup.cs" Link="TestAssemblySetup.cs" />
<Content Include="App.config" CopyToOutputDirectory="PreserveNewest" />
<Content Include="Data\**\*.xml" CopyToOutputDirectory="PreserveNewest" />
<None Include="Data\**\*">
<Link>Data\%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Data\**\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="Aop\Config\AopNamespaceParserTests.xml" />
<EmbeddedResource Include="Data\Spring\Aop\Framework\adapter\withBPPContext.xml" />
<EmbeddedResource Include="Data\Spring\Aop\Framework\adapter\withoutBPPContext.xml" />

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ namespace Spring.Core.IO
/// Unit tests for the FileSystemResourceTest class.
/// </summary>
/// <author>Rick Evans</author>
[TestFixture]
[Platform("Win")]
public class FileSystemResourceTests : FileSystemResourceCommonTests
{
protected override FileSystemResource CreateResourceInstance( string resourceName )

View File

@@ -80,6 +80,7 @@ namespace Spring.Core.IO
}
[Test]
[Platform("Win")]
public void ConvertFromWithEnvironmentVariableExpansion()
{
string filename = Guid.NewGuid().ToString();

View File

@@ -52,6 +52,7 @@ namespace Spring.Core.IO
}
[Test]
[Platform("Win")]
public void GetValidFileInfo()
{
UrlResource urlResource = new UrlResource(FILE_PROTOCOL_PREFIX + "C:/temp");

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ namespace Spring.Core.TypeConversion
/// Unit tests for the RegistryKeyConverter class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
[Platform("Win")]
public sealed class RegistryKeyConverterTests
{
[Test]

View File

@@ -3,18 +3,18 @@
<objects xmlns="http://www.springframework.net">
<object id="resource1" type="Spring.Objects.ResourceTestObject, Spring.Core.Tests">
<property name="resource">
<value>file:///temp/spring-test.properties</value>
<value>file://./temp/spring-test.properties</value>
</property>
<property name="inputStream">
<value>file:///temp/spring-test.properties</value>
<value>file://./temp/spring-test.properties</value>
</property>
</object>
<object id="resource2" type="Spring.Objects.ResourceTestObject, Spring.Core.Tests">
<constructor-arg index="0">
<value>file:///temp/spring-test.properties</value>
<value>file://./temp/spring-test.properties</value>
</constructor-arg>
<constructor-arg index="1">
<value>file:///temp/spring-test.properties</value>
<value>file://./temp/spring-test.properties</value>
</constructor-arg>
</object>
</objects>

View File

@@ -28,7 +28,6 @@ namespace Spring.Globalization.Formatters
/// Unit tests for CurrencyFormatter class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
public class CurrencyFormatterTests
{
[Test]
@@ -54,6 +53,7 @@ namespace Spring.Globalization.Formatters
}
#if !MONO
[Test]
[Platform("Win")]
public void FormatUsingDefaults()
{
CurrencyFormatter fmt = new CurrencyFormatter("en-US");
@@ -108,6 +108,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void ParseUsingDefaults()
{
CurrencyFormatter fmt = new CurrencyFormatter("en-US");
@@ -160,6 +161,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void FormatUsingCustomSettings()
{
CurrencyFormatter fmt = new CurrencyFormatter("en-US");
@@ -189,8 +191,6 @@ namespace Spring.Globalization.Formatters
Assert.AreEqual("-1.234,56 din", fmt.Format(-1234.56));
}
fmt = new CurrencyFormatter(CultureInfoUtils.SerbianCyrillicCultureName);
fmt.GroupSizes = new int[] { 1, 2 };
fmt.GroupSeparator = "'";
@@ -213,6 +213,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void ParseUsingCustomSettings()
{
CurrencyFormatter fmt = new CurrencyFormatter("en-US");

View File

@@ -28,7 +28,6 @@ namespace Spring.Globalization.Formatters
/// Unit tests for DateTimeFormatter class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
public class DateTimeFormatterTests
{
[Test]
@@ -54,6 +53,7 @@ namespace Spring.Globalization.Formatters
}
#if !MONO
[Test]
[Platform("Win")]
public void FormatUsingDefaults()
{
DateTimeFormatter fmt = new DateTimeFormatter("d", "en-US");
@@ -103,6 +103,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void ParseUsingDefaults()
{
DateTimeFormatter fmt = new DateTimeFormatter("d", "en-US");

View File

@@ -54,6 +54,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void FormatUsingDefaults()
{
FloatFormatter fmt = new FloatFormatter(FloatFormatter.DefaultFormat, "en-US");

View File

@@ -28,7 +28,6 @@ namespace Spring.Globalization.Formatters
/// Unit tests for NumberFormatter class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
public class NumberFormatterTests
{
[Test]
@@ -54,6 +53,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void FormatUsingDefaults()
{
NumberFormatter fmt = new NumberFormatter("en-US");
@@ -70,6 +70,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void ParseUsingDefaults()
{
NumberFormatter fmt = new NumberFormatter("en-US");
@@ -86,6 +87,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void FormatUsingCustomSettings()
{
NumberFormatter fmt = new NumberFormatter("en-US");

View File

@@ -28,7 +28,6 @@ namespace Spring.Globalization.Formatters
/// Unit tests for PercentFormatter class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
public class PercentFormatterTests
{
[Test]
@@ -54,6 +53,7 @@ namespace Spring.Globalization.Formatters
}
[Test]
[Platform("Win")]
public void FormatUsingDefaults()
{
PercentFormatter fmt = new PercentFormatter("en-US");

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,8 +41,8 @@ namespace Spring.Objects.Factory.Config
EnvironmentVariableSource vs = new EnvironmentVariableSource();
// existing vars
Assert.AreEqual(Environment.GetEnvironmentVariable("path"), vs.ResolveVariable("PATH"));
Assert.AreEqual(Environment.GetEnvironmentVariable("PATH"), vs.ResolveVariable("path"));
Assert.AreEqual(Environment.GetEnvironmentVariable("path"), vs.ResolveVariable("path"));
Assert.AreEqual(Environment.GetEnvironmentVariable("PATH"), vs.ResolveVariable("PATH"));
Assert.AreEqual(Environment.GetEnvironmentVariable("ComputerName"), vs.ResolveVariable("computerName"));
// non-existant variable

View File

@@ -188,6 +188,7 @@ namespace Spring.Objects.Factory.Config
/// variable is replaced.
/// </summary>
[Test]
[Platform("Win")]
public void WithEnvironmentVariableFallback()
{
StaticApplicationContext ac = new StaticApplicationContext();
@@ -233,6 +234,7 @@ namespace Spring.Objects.Factory.Config
/// variable setting to override the explicitly defined name value collection.
/// </summary>
[Test]
[Platform("Win")]
public void WithOverridingEnvironmentProperty()
{
StaticApplicationContext ac = new StaticApplicationContext();

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ namespace Spring.Objects.Factory.Config
/// Unit tests for the RegistryVariableSource class.
/// </summary>
/// <author>Aleksandar Seovic</author>
[TestFixture]
[Platform("Win")]
public sealed class RegistryVariableSourceTests
{
private RegistryKey key;

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -105,7 +105,7 @@ namespace Spring.Objects.Factory.Config
[Test]
public void WithinApplicationContext()
{
IApplicationContext ctx = new XmlApplicationContext("file://Spring/Objects/Factory/Config/typeAliases.xml");
IApplicationContext ctx = new XmlApplicationContext("file://Spring/Objects/Factory/Config/TypeAliases.xml");
object obj1 = ctx.GetObject("testObject1");
Assert.IsNotNull(obj1);

View File

@@ -703,7 +703,7 @@ namespace Spring.Objects.Factory.Xml
[Test]
public void DependenciesMaterializeThis()
{
IResource resource = new ReadOnlyXmlTestResource("dependenciesMaterializeThis.xml", GetType());
IResource resource = new ReadOnlyXmlTestResource("dependenciesmaterializethis.xml", GetType());
XmlObjectFactory bf = new XmlObjectFactory(resource);
DummyBo bos = (DummyBo) bf.GetObject("boSingleton");
DummyBo bop = (DummyBo) bf.GetObject("boPrototype");
@@ -796,7 +796,7 @@ namespace Spring.Objects.Factory.Xml
[Test]
public void FactoryReferenceCircle()
{
IResource resource = new ReadOnlyXmlTestResource("factoryCircle.xml", GetType());
IResource resource = new ReadOnlyXmlTestResource("factorycircle.xml", GetType());
XmlObjectFactory xof = new XmlObjectFactory(resource);
TestObject tb = (TestObject) xof.GetObject("singletonFactory");
DummyFactory db = (DummyFactory) xof.GetObject("&singletonFactory");
@@ -1062,14 +1062,14 @@ namespace Spring.Objects.Factory.Xml
[Test]
public void UnsatisfiedObjectDependencyCheck()
{
XmlObjectFactory xof = new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedObjectDependencyCheck.xml", GetType()));
XmlObjectFactory xof = new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedobjectdependencycheck.xml", GetType()));
Assert.Throws<UnsatisfiedDependencyException>(() => xof.GetObject("a", typeof(DependenciesObject)));
}
[Test]
public void UnsatisfiedSimpleDependencyCheck()
{
XmlObjectFactory xof = new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedSimpleDependencyCheck.xml", GetType()));
XmlObjectFactory xof = new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedsimpledependencycheck.xml", GetType()));
Assert.Throws<UnsatisfiedDependencyException>(() => xof.GetObject("a", typeof(DependenciesObject)));
}
@@ -1078,7 +1078,7 @@ namespace Spring.Objects.Factory.Xml
{
XmlObjectFactory xof
= new XmlObjectFactory(
new ReadOnlyXmlTestResource("satisfiedObjectDependencyCheck.xml", GetType()));
new ReadOnlyXmlTestResource("satisfiedobjectdependencycheck.xml", GetType()));
DependenciesObject a = (DependenciesObject) xof.GetObject("a");
Assert.IsNotNull(a.Spouse);
}
@@ -1089,7 +1089,7 @@ namespace Spring.Objects.Factory.Xml
XmlObjectFactory xof =
new XmlObjectFactory(
new ReadOnlyXmlTestResource(
"satisfiedSimpleDependencyCheck.xml", GetType()));
"satisfiedsimpledependencycheck.xml", GetType()));
DependenciesObject a = (DependenciesObject) xof.GetObject("a");
Assert.AreEqual(a.Age, 33);
}
@@ -1097,7 +1097,7 @@ namespace Spring.Objects.Factory.Xml
[Test]
public void UnsatisfiedAllDependencyCheck()
{
XmlObjectFactory xof= new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedAllDependencyCheckMissingObjects.xml", GetType()));
XmlObjectFactory xof= new XmlObjectFactory(new ReadOnlyXmlTestResource("unsatisfiedalldependencycheckmissingobjects.xml", GetType()));
Assert.Throws<UnsatisfiedDependencyException>(() => xof.GetObject("a", typeof(DependenciesObject)));
}
@@ -1106,7 +1106,7 @@ namespace Spring.Objects.Factory.Xml
{
XmlObjectFactory xof
= new XmlObjectFactory(
new ReadOnlyXmlTestResource("satisfiedAllDependencyCheck.xml", GetType()));
new ReadOnlyXmlTestResource("satisfiedalldependencycheck.xml", GetType()));
DependenciesObject a = (DependenciesObject) xof.GetObject("a");
Assert.AreEqual(a.Age, 33);
Assert.IsNotNull(a.Name);
@@ -1346,7 +1346,7 @@ namespace Spring.Objects.Factory.Xml
try
{
new XmlObjectFactory(
new ReadOnlyXmlTestResource("classNotFound.xml", GetType()));
new ReadOnlyXmlTestResource("classnotfound.xml", GetType()));
}
catch (ObjectDefinitionStoreException ex)
{
@@ -1356,6 +1356,7 @@ namespace Spring.Objects.Factory.Xml
#if !NETCOREAPP
[Test]
[Platform("Win")]
public void AnObjectCanBeIstantiatedWithANotFullySpecifiedAssemblyName()
{
IResource resource = new ReadOnlyXmlTestResource("notfullyspecified.xml", GetType());
@@ -1368,8 +1369,7 @@ namespace Spring.Objects.Factory.Xml
[Test]
public void ResourceAndInputStream()
{
//string filename = @"C:\temp\spring-test.properties";
string filename = @"/temp/spring-test.properties";
string filename = "./temp/spring-test.properties";
FileInfo file = new FileInfo(filename);
bool tempDirWasCreated = false;
try

View File

@@ -1,5 +1,5 @@
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -273,6 +273,7 @@ namespace Spring.Proxy
#if !MONO && !NETCOREAPP
// http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94803
[Test]
[Platform("Win")]
public void ProxySecurityAttribute()
{
IProxyTypeBuilder builder = GetProxyBuilder();

View File

@@ -3,6 +3,7 @@
<TargetFrameworks>net5.0;$(TargetFullFrameworkVersion)</TargetFrameworks>
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0003;SYSLIB0011</NoWarn>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.csproj" />
@@ -21,7 +22,7 @@
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="NUnit" Version="$(NUnitVersion)" />
<PackageReference Include="NUnit3TestAdapter" Version="$(NUnitTestAdapterVersion)" />
<PackageReference Include="System.Resources.Extensions" Version="4.7.1" />
<PackageReference Include="System.Resources.Extensions" Version="5.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == '$(TargetFullFrameworkVersion)' ">
<Reference Include="Microsoft.CSharp" />
@@ -45,12 +46,16 @@
<Compile Remove="Util\ObjectUtilsTests.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="App.config">
<None Include="App.config" Link="testhost.dll.config" CopyToOutputDirectory="PreserveNewest" />
<None Include="App.config" Link="ReSharperTestRunner64.dll.config" CopyToOutputDirectory="PreserveNewest" />
<None Include="Data\**\*">
<Link>Data\%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\**">
</None>
<None Include="Data\**\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</None>
<Compile Remove="Context\Attributes\FailAssemblyObjectDefinitionScannerTests.cs" />
<EmbeddedResource Include="Context\Attributes\*.xml" />
<EmbeddedResource Include="Context\Support\*.xml" />
@@ -71,9 +76,4 @@
<EmbeddedResource Include="Resources\SimpleAppContext.xml" />
<EmbeddedResource Include="TestResource.txt" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy &quot;$(ProjectDir)Data&quot; &quot;$(OutDir)&quot; /y /s /q /d" />
<Exec Command="copy &quot;$(ProjectDir)App.config&quot; &quot;$(OutDir)testhost.dll.config&quot;" />
<Exec Command="copy &quot;$(ProjectDir)App.config&quot; &quot;$(OutDir)ReSharperTestRunner64.dll.config&quot;" />
</Target>
</Project>

View File

@@ -13,6 +13,8 @@ namespace Spring
{
[OneTimeSetUp]
public void SetUp()
{
try
{
// while R# is broken (https://youtrack.jetbrains.com/issue/RSRP-451142)
string codeBase = Assembly.GetExecutingAssembly().Location;
@@ -20,10 +22,11 @@ namespace Spring
string path = Uri.UnescapeDataString(uri.Path);
var pathToUse = Path.GetDirectoryName(path);
Directory.SetCurrentDirectory(pathToUse);
CultureInfo enUs = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = enUs;
Thread.CurrentThread.CurrentUICulture = enUs;
}
catch
{
// ignored
}
}
}
}

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,41 +36,39 @@ namespace Spring.Threading
protected abstract IThreadStorage CreateStorage();
protected virtual void ThreadSetup()
{}
protected virtual void ThreadCleanup()
{}
[OneTimeSetUp]
public void FixtureSetUp()
{
ThreadSetup();
}
[OneTimeTearDown]
public void FixtureTearDown()
protected virtual void ThreadCleanup()
{
ThreadCleanup();
}
[SetUp]
public void SetUp()
{
ThreadSetup();
}
[TearDown]
public void TearDown()
{
// cleanup storage
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
storage.FreeNamedDataSlot("key");
storage.FreeNamedDataSlot("KEY");
storage.FreeNamedDataSlot("KeY");
ThreadCleanup();
}
[Test]
public void IsCaseSensitive()
{
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
object value1 = new object();
object value2 = new object();
object value3 = new object();
var value1 = new object();
var value2 = new object();
var value3 = new object();
storage.SetData("key", value1);
storage.SetData("KEY", value2);
@@ -84,10 +82,10 @@ namespace Spring.Threading
[Test]
public void AllowReplaceData()
{
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
object value1 = new object();
object value2 = new object();
var value1 = new object();
var value2 = new object();
storage.SetData("key", value1);
Assert.AreSame(value1, storage.GetData("key"));
@@ -100,7 +98,7 @@ namespace Spring.Threading
[Test]
public void UnknownKeyReturnsNull()
{
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
Assert.AreSame(null, storage.GetData("key"));
}
@@ -108,9 +106,9 @@ namespace Spring.Threading
[Test]
public void FreeNamedDataSlotRemovesData()
{
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
object value1 = new object();
var value1 = new object();
storage.SetData("key", value1);
Assert.AreSame(value1, storage.GetData("key"));
storage.FreeNamedDataSlot("key");
@@ -120,12 +118,12 @@ namespace Spring.Threading
[Test]
public void UsesDistinguishedStorageOnDifferentThreads()
{
IThreadStorage storage = CreateStorage();
var storage = CreateStorage();
object value1 = new object();
var value1 = new object();
storage.SetData("key", value1);
ThreadTestHelper helper = new ThreadTestHelper(this,storage);
var helper = new ThreadTestHelper(this, storage);
helper.Execute();
Assert.AreNotSame(value1, helper.value);
@@ -149,7 +147,7 @@ namespace Spring.Threading
public void Execute()
{
Thread t = new Thread(new ThreadStart(this.Run));
var t = new Thread(new ThreadStart(Run));
t.Start();
t.Join();
}
@@ -157,7 +155,7 @@ namespace Spring.Threading
private void Run()
{
outer.ThreadSetup();
value = this.storage.GetData("key");
value = storage.GetData("key");
}
}

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,6 +50,7 @@ namespace Spring.Data.NHibernate.Config
}
[Test]
[Ignore("TODO Connects to database")]
public void ProxyDataAccessAndServiceLayer()
{
Assert.IsFalse(AopUtils.IsAopProxy( ctx["DbProvider"] ));

View File

@@ -26,9 +26,6 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\GenCommonAssemblyInfo.cs">
<Link>GenCommonAssemblyInfo.cs</Link>
</Compile>
<EmbeddedResource Include="Messaging\Ems\Core\EmsTemplateTests.xml" />
<EmbeddedResource Include="Messaging\Ems\Config\EmsNamespaceHandlerTests.xml" />
<EmbeddedResource Include="Messaging\Ems\Listener\SimpleMessageListenerContainerTests.xml" />

View File

@@ -19,13 +19,11 @@
<PackageReference Include="NUnit3TestAdapter" Version="$(NUnitTestAdapterVersion)" />
</ItemGroup>
<ItemGroup>
<Content Include="App.config">
<None Include="App.config">
<Link>testhost.dll.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</None>
<EmbeddedResource Include="Messaging\Nms\Integration\SimpleMessageListenerContainerTests.xml" />
<EmbeddedResource Include="Messaging\Nms\Config\NmsNamespaceHandlerTests.xml" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy &quot;$(ProjectDir)App.config&quot; &quot;$(OutDir)testhost.dll.config&quot;" />
</Target>
</Project>

View File

@@ -569,7 +569,7 @@ namespace Spring.Scheduling.Quartz
factoryObject.AfterPropertiesSet();
await factoryObject.Start();
Thread.Sleep(500);
await Task.Delay(TimeSpan.FromSeconds(1));
Assert.IsTrue(DummyJob.count > 0);
Assert.AreEqual(DummyJob.count, taskExecutor.count);
@@ -601,7 +601,7 @@ namespace Spring.Scheduling.Quartz
factoryObject.AfterPropertiesSet();
await factoryObject.Start();
DummyRunnable.runEvent.WaitOne(500);
DummyRunnable.runEvent.WaitOne(1000);
Assert.IsTrue(DummyRunnable.count > 0);
factoryObject.Dispose();
@@ -742,7 +742,7 @@ namespace Spring.Scheduling.Quartz
factoryObject.AfterPropertiesSet();
await factoryObject.Start();
Thread.Sleep(500);
await Task.Delay(TimeSpan.FromSeconds(1));
Assert.AreEqual(10, DummyRunnable.param);
Assert.IsTrue(DummyRunnable.count > 0);
@@ -777,7 +777,7 @@ namespace Spring.Scheduling.Quartz
factoryObject.AfterPropertiesSet();
await factoryObject.Start();
Thread.Sleep(500);
await Task.Delay(TimeSpan.FromSeconds(1));
Assert.AreEqual(10, DummyJobObject.param);
Assert.IsTrue(DummyJobObject.count > 0);
@@ -800,7 +800,7 @@ namespace Spring.Scheduling.Quartz
factoryObject.AfterPropertiesSet();
await factoryObject.Start();
Thread.Sleep(500);
await Task.Delay(TimeSpan.FromSeconds(1));
Assert.AreEqual(10, DummyJob.param);
Assert.IsTrue(DummyJob.count > 0);

View File

@@ -0,0 +1,35 @@
#region License
// /*
// * Copyright 2018 the original author or authors.
// *
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// * http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
// */
#endregion
using NUnitAspEx;
using NUnitAspEx.Client;
namespace Spring.Web.Conversation
{
public static class HttpWebclientExtensions
{
public static HttpWebClient CreateClientWithDefaultPort(this IAspFixtureHost host)
{
HttpWebClient clnt = host.CreateWebClient();
// fix port which otherwise defaults to -1 breaking everything
clnt.BaseAddress = clnt.BaseAddress.Replace("aspfixturehost/", "aspfixturehost:80/");
return clnt;
}
}
}

View File

@@ -92,7 +92,7 @@
<assemblyIdentity name="System.Data.SQLite"
publicKeyToken="db937bc2d44ff139"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.91.0"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.113.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -1,7 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<Configurations>Debug;Release</Configurations>
<ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.csproj" />
@@ -15,16 +16,13 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftTestSDKVersion)" />
<PackageReference Include="NUnit" Version="$(NUnitVersion)" />
<PackageReference Include="NUnit3TestAdapter" Version="$(NUnitTestAdapterVersion)" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.113.7" PrivateAssets="None" />
</ItemGroup>
<ItemGroup>
<Reference Include="NUnitAspEx">
<HintPath>..\..\..\lib\Net\2.0\NUnitAspEx.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>..\Spring.Web.Conversation.NHibernate5.Tests\lib\net\2.0\System.Data.SQLite.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
@@ -61,4 +59,5 @@
<Content Include="Data\Spring\Conversation\WebConversationStateTest\TimeOut_WithTimeOut.aspx" />
<EmbeddedResource Include="Entities\*.hbm.xml" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,22 @@
using System;
using System.IO;
using NUnit.Framework;
namespace Spring
{
[SetUpFixture]
public class TestAssemblySetup
{
[OneTimeSetUp]
public void SetUp()
{
// work around getting interop assembly to correct directory
var requiredFile = Path.Combine(Environment.CurrentDirectory, "SQLite.Interop.dll");
var fileToUse = Path.Combine(Environment.CurrentDirectory, "x86", "SQLite.Interop.dll");
if (!File.Exists(requiredFile) && File.Exists(fileToUse))
{
File.Copy(fileToUse, requiredFile);
}
}
}
}

View File

@@ -8,12 +8,4 @@
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
</DbProviderFactories>
</system.data>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -28,7 +28,14 @@
</ItemGroup>
<ItemGroup>
<Compile Include="..\Spring.Core.Tests\TestAssemblySetup.cs" Link="TestAssemblySetup.cs" />
<Content Include="Data\**\*" CopyToOutputDirectory="PreserveNewest" />
<None Include="Data\**\*">
<Link>Data\%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Data\**\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Content Include="Data\Spring\Context\Support\WebApplicationContextTests\Dummy.aspx" />
<Content Include="Data\Spring\Objects\Factory\Support\TestForm.aspx" />
<Content Include="Data\Spring\Web\Support\LocalResourceManagerTests\WithoutResources.aspx" />
@@ -42,7 +49,4 @@
<EmbeddedResource Include="Context\Support\*.xml" />
<EmbeddedResource Include="Web\Support\ControlInterceptionTests.objects.xml" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy &quot;$(ProjectDir)Data&quot; &quot;$(OutDir)&quot; /y /s /q /d" />
</Target>
</Project>

View File

@@ -1,7 +1,7 @@
#region License
/*
* Copyright © 2002-2011 the original author or authors.
* Copyright © 2002-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.