diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000000..b065d30682
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: json-api-dotnet
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2be09929a8..0f4d329a16 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -13,8 +13,8 @@ on:
branches: [ 'master', 'release/**', 'openapi' ]
pull_request:
branches: [ 'master', 'release/**', 'openapi' ]
- tags:
- - 'v*'
+ release:
+ types: [published]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -52,12 +52,27 @@ jobs:
if: matrix.os == 'ubuntu-latest'
run: |
dotnet tool install --global PowerShell
+ - name: Find latest PowerShell version (Windows)
+ if: matrix.os == 'windows-latest'
+ shell: pwsh
+ run: |
+ $packageName = "powershell"
+ $outputText = dotnet tool search $packageName --take 1
+ $outputLine = ("" + $outputText)
+ $indexOfVersionLine = $outputLine.IndexOf($packageName)
+ $latestVersion = $outputLine.substring($indexOfVersionLine + $packageName.length).trim().split(" ")[0].trim()
+
+ Write-Output "Found PowerShell version: $latestVersion"
+ Write-Output "POWERSHELL_LATEST_VERSION=$latestVersion" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Setup PowerShell (Windows)
if: matrix.os == 'windows-latest'
shell: cmd
run: |
- curl --location --output "%RUNNER_TEMP%\PowerShell-7.3.6-win-x64.msi" https://github.com/PowerShell/PowerShell/releases/download/v7.3.6/PowerShell-7.3.6-win-x64.msi
- msiexec.exe /package "%RUNNER_TEMP%\PowerShell-7.3.6-win-x64.msi" /quiet USE_MU=1 ENABLE_MU=1 ADD_PATH=1 DISABLE_TELEMETRY=1
+ set DOWNLOAD_LINK=https://github.com/PowerShell/PowerShell/releases/download/v%POWERSHELL_LATEST_VERSION%/PowerShell-%POWERSHELL_LATEST_VERSION%-win-x64.msi
+ set OUTPUT_PATH=%RUNNER_TEMP%\PowerShell-%POWERSHELL_LATEST_VERSION%-win-x64.msi
+ echo Downloading from: %DOWNLOAD_LINK% to: %OUTPUT_PATH%
+ curl --location --output %OUTPUT_PATH% %DOWNLOAD_LINK%
+ msiexec.exe /package %OUTPUT_PATH% /quiet USE_MU=1 ENABLE_MU=1 ADD_PATH=1 DISABLE_TELEMETRY=1
- name: Setup PowerShell (macOS)
if: matrix.os == 'macos-latest'
run: |
@@ -84,7 +99,7 @@ jobs:
# Get the version prefix/suffix from the git tag. For example: 'v1.0.0-preview1-final' => '1.0.0' and 'preview1-final'
$segments = $env:GITHUB_REF_NAME -split "-"
$versionPrefix = $segments[0].TrimStart('v')
- $versionSuffix = $segments[1..-1] -join "-"
+ $versionSuffix = $segments.Length -eq 1 ? '' : $segments[1..$($segments.Length - 1)] -join '-'
[xml]$xml = Get-Content Directory.Build.props
$configuredVersionPrefix = $xml.Project.PropertyGroup[0].JsonApiDotNetCoreVersionPrefix
@@ -92,7 +107,7 @@ jobs:
Write-Error "Version prefix from git release tag '$versionPrefix' does not match version prefix '$configuredVersionPrefix' stored in Directory.Build.props."
# To recover from this:
# - Delete the GitHub release
- # - Run: git push --delete the-invalid-tag-name
+ # - Run: git push --delete origin the-invalid-tag-name
# - Adjust JsonApiDotNetCoreVersionPrefix in Directory.Build.props, commit and push
# - Recreate the GitHub release
}
@@ -109,7 +124,7 @@ jobs:
- name: Build
shell: pwsh
run: |
- dotnet build --no-restore --configuration Release --version-suffix=$env:PACKAGE_VERSION_SUFFIX
+ dotnet build --no-restore --configuration Release /p:VersionSuffix=$env:PACKAGE_VERSION_SUFFIX
- name: Test
run: |
dotnet test --no-build --configuration Release --collect:"XPlat Code Coverage" --logger "GitHubActions;summary.includeSkippedTests=true" -- RunConfiguration.CollectSourceInformation=true DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.DeterministicReport=true
@@ -119,7 +134,7 @@ jobs:
- name: Generate packages
shell: pwsh
run: |
- dotnet pack --no-build --configuration Release --output $env:GITHUB_WORKSPACE/artifacts/packages --version-suffix=$env:PACKAGE_VERSION_SUFFIX
+ dotnet pack --no-build --configuration Release --output $env:GITHUB_WORKSPACE/artifacts/packages /p:VersionSuffix=$env:PACKAGE_VERSION_SUFFIX
- name: Upload packages to artifacts
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v3
@@ -160,12 +175,12 @@ jobs:
permissions:
contents: read
steps:
- - name: Git checkout
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
+ - name: Git checkout
+ uses: actions/checkout@v4
- name: Restore tools
run: |
dotnet tool restore
@@ -211,14 +226,14 @@ jobs:
permissions:
contents: read
steps:
- - name: Git checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 2
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
+ - name: Git checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 2
- name: Restore tools
run: |
dotnet tool restore
@@ -237,7 +252,7 @@ jobs:
Write-Output "Running code cleanup on commit range $baseCommitHash..$headCommitHash in pull request."
dotnet regitlint -s JsonApiDotNetCore.sln --print-command --skip-tool-check --max-runs=5 --jb-profile="JADNC Full Cleanup" --jb --properties:Configuration=Release --jb --verbosity=WARN -f commits -a $headCommitHash -b $baseCommitHash --fail-on-diff --print-diff
- name: CleanupCode (on branch)
- if: github.event_name == 'push'
+ if: github.event_name == 'push' || github.event_name == 'release'
shell: pwsh
run: |
Write-Output "Running code cleanup on all files."
@@ -255,7 +270,7 @@ jobs:
- name: Download artifacts
uses: actions/download-artifact@v3
- name: Publish to GitHub Packages
- if: github.event_name == 'push'
+ if: github.event_name == 'push' || github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: pwsh
@@ -271,7 +286,7 @@ jobs:
publish_dir: ./documentation
commit_message: 'Auto-generated documentation from'
- name: Publish to NuGet
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
+ if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v')
env:
NUGET_ORG_API_KEY: ${{ secrets.NUGET_ORG_API_KEY }}
shell: pwsh
diff --git a/Build.ps1 b/Build.ps1
index 4f0912079d..4854651d67 100644
--- a/Build.ps1
+++ b/Build.ps1
@@ -1,3 +1,5 @@
+$versionSuffix="pre"
+
function VerifySuccessExitCode {
if ($LastExitCode -ne 0) {
throw "Command failed with exit code $LastExitCode."
@@ -6,11 +8,12 @@ function VerifySuccessExitCode {
Write-Host "$(pwsh --version)"
Write-Host "Active .NET SDK: $(dotnet --version)"
+Write-Host "Using version suffix: $versionSuffix"
dotnet tool restore
VerifySuccessExitCode
-dotnet build --configuration Release --version-suffix="pre"
+dotnet build --configuration Release /p:VersionSuffix=$versionSuffix
VerifySuccessExitCode
dotnet test --no-build --configuration Release --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.DeterministicReport=true
@@ -19,5 +22,5 @@ VerifySuccessExitCode
dotnet reportgenerator -reports:**\coverage.cobertura.xml -targetdir:artifacts\coverage -filefilters:-*.g.cs
VerifySuccessExitCode
-dotnet pack --no-build --configuration Release --output artifacts/packages --version-suffix="pre"
+dotnet pack --no-build --configuration Release --output artifacts/packages /p:VersionSuffix=$versionSuffix
VerifySuccessExitCode
diff --git a/Directory.Build.props b/Directory.Build.props
index c3e5c37950..1bf5fbb0be 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,32 +1,6 @@
-
- net6.0
- 6.0.*
- 7.0.*
- 7.0.*
- 4.7.*
- 2.14.1
- 6.5.*
- 13.20.*
- 7.0.*
- 13.0.*
- 5.3.1
- $(MSBuildThisFileDirectory)CodingGuidelines.ruleset
- 9999
- enable
- enable
- false
- false
-
-
-
-
-
-
-
-
-
- true
+
+ $(NoWarn);AV2210
@@ -35,14 +9,56 @@
true
-
- $(NoWarn);AV2210
+
+ true
-
+
+ net6.0
+ 4.1.0
+ 0.4.1
+ 6.0.0
+ 2.14.1
+ 6.5.0
+
+
+ 6.0.*
+ 0.13.*
+ 1.0.*
+ 34.0.*
+ 3.8.*
+ 4.7.*
6.0.*
+ 2.1.*
+ 7.0.*
+ 6.12.*
2.3.*
+ 1.3.*
+ 2023.2.*
+ 7.0.*
+ 13.20.*
+ 13.0.*
+ 7.0.*
+ 1.1.*
+ 6.5.*
+ 7.0.*
17.7.*
+ 2.5.*
+
+
+
+
+
+
+
+
+
+ enable
+ enable
+ false
+ false
+ $(MSBuildThisFileDirectory)CodingGuidelines.ruleset
+ 5.4.1
diff --git a/README.md b/README.md
index 2aa2490106..90bb47b405 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
# JsonApiDotNetCore
A framework for building [JSON:API](http://jsonapi.org/) compliant REST APIs using .NET Core and Entity Framework Core. Includes support for [Atomic Operations](https://jsonapi.org/ext/atomic/).
-[](https://github.com/json-api-dotnet/JsonApiDotNetCore/actions/workflows/build.yml)
+[](https://github.com/json-api-dotnet/JsonApiDotNetCore/actions/workflows/build.yml?query=branch%3Amaster)
[](https://codecov.io/gh/json-api-dotnet/JsonApiDotNetCore)
[](https://www.nuget.org/packages/JsonApiDotNetCore/)
[](https://gitter.im/json-api-dotnet-core/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
diff --git a/benchmarks/Benchmarks.csproj b/benchmarks/Benchmarks.csproj
index 23a6876af9..1e97dd290f 100644
--- a/benchmarks/Benchmarks.csproj
+++ b/benchmarks/Benchmarks.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/getting-started/faq.md b/docs/getting-started/faq.md
index e1caa85797..574ebaf92c 100644
--- a/docs/getting-started/faq.md
+++ b/docs/getting-started/faq.md
@@ -158,8 +158,8 @@ We use a similar approach for accessing [MongoDB](https://github.com/json-api-do
#### I love JsonApiDotNetCore! How can I support the team?
The best way to express your gratitude is by starring our repository.
This increases our leverage when asking for bug fixes in dependent projects, such as the .NET runtime and Entity Framework Core.
+You can also [sponsor](https://github.com/sponsors/json-api-dotnet) our project.
Of course, a simple thank-you message in our [Gitter channel](https://gitter.im/json-api-dotnet-core/Lobby) is appreciated too!
-We don't take monetary contributions at the moment.
If you'd like to do more: try things out, ask questions, create GitHub bug reports or feature requests, or upvote existing issues that are important to you.
We welcome PRs, but keep in mind: The worst thing in the world is opening a PR that gets rejected after you've put a lot of effort into it.
diff --git a/src/Examples/DatabasePerTenantExample/DatabasePerTenantExample.csproj b/src/Examples/DatabasePerTenantExample/DatabasePerTenantExample.csproj
index a48f472a70..c219dfd0f5 100644
--- a/src/Examples/DatabasePerTenantExample/DatabasePerTenantExample.csproj
+++ b/src/Examples/DatabasePerTenantExample/DatabasePerTenantExample.csproj
@@ -10,7 +10,7 @@
-
-
+
+
diff --git a/src/Examples/GettingStarted/GettingStarted.csproj b/src/Examples/GettingStarted/GettingStarted.csproj
index ab152b79d5..9e0c80b7f4 100644
--- a/src/Examples/GettingStarted/GettingStarted.csproj
+++ b/src/Examples/GettingStarted/GettingStarted.csproj
@@ -10,6 +10,6 @@
-
+
diff --git a/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj b/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
index d026923404..4af7504a1f 100644
--- a/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
+++ b/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/Examples/MultiDbContextExample/MultiDbContextExample.csproj b/src/Examples/MultiDbContextExample/MultiDbContextExample.csproj
index ab152b79d5..9e0c80b7f4 100644
--- a/src/Examples/MultiDbContextExample/MultiDbContextExample.csproj
+++ b/src/Examples/MultiDbContextExample/MultiDbContextExample.csproj
@@ -10,6 +10,6 @@
-
+
diff --git a/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj b/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
index 9f0037b058..e272b4fcbf 100644
--- a/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
+++ b/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
@@ -10,6 +10,6 @@
-
+
diff --git a/src/Examples/ReportsExample/ReportsExample.csproj b/src/Examples/ReportsExample/ReportsExample.csproj
index a48f472a70..c219dfd0f5 100644
--- a/src/Examples/ReportsExample/ReportsExample.csproj
+++ b/src/Examples/ReportsExample/ReportsExample.csproj
@@ -10,7 +10,7 @@
-
-
+
+
diff --git a/src/JsonApiDotNetCore.Annotations/JsonApiDotNetCore.Annotations.csproj b/src/JsonApiDotNetCore.Annotations/JsonApiDotNetCore.Annotations.csproj
index 119d295b35..48ca676b4a 100644
--- a/src/JsonApiDotNetCore.Annotations/JsonApiDotNetCore.Annotations.csproj
+++ b/src/JsonApiDotNetCore.Annotations/JsonApiDotNetCore.Annotations.csproj
@@ -46,7 +46,7 @@
-
-
+
+
diff --git a/src/JsonApiDotNetCore.OpenApi.Client/JsonApiDotNetCore.OpenApi.Client.csproj b/src/JsonApiDotNetCore.OpenApi.Client/JsonApiDotNetCore.OpenApi.Client.csproj
index ff38970ad9..c249914a45 100644
--- a/src/JsonApiDotNetCore.OpenApi.Client/JsonApiDotNetCore.OpenApi.Client.csproj
+++ b/src/JsonApiDotNetCore.OpenApi.Client/JsonApiDotNetCore.OpenApi.Client.csproj
@@ -27,10 +27,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/JsonApiDotNetCore.OpenApi/JsonApiDotNetCore.OpenApi.csproj b/src/JsonApiDotNetCore.OpenApi/JsonApiDotNetCore.OpenApi.csproj
index 33247684cc..ec307a6028 100644
--- a/src/JsonApiDotNetCore.OpenApi/JsonApiDotNetCore.OpenApi.csproj
+++ b/src/JsonApiDotNetCore.OpenApi/JsonApiDotNetCore.OpenApi.csproj
@@ -31,9 +31,9 @@
-
-
-
-
+
+
+
+
diff --git a/src/JsonApiDotNetCore.SourceGenerators/JsonApiDotNetCore.SourceGenerators.csproj b/src/JsonApiDotNetCore.SourceGenerators/JsonApiDotNetCore.SourceGenerators.csproj
index 6d79d8c893..ca6de1a5b7 100644
--- a/src/JsonApiDotNetCore.SourceGenerators/JsonApiDotNetCore.SourceGenerators.csproj
+++ b/src/JsonApiDotNetCore.SourceGenerators/JsonApiDotNetCore.SourceGenerators.csproj
@@ -45,7 +45,7 @@
-
-
+
+
diff --git a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
index 6a1b8517e6..4407edaf1f 100644
--- a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
+++ b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
@@ -36,11 +36,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs b/src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs
index 29774c6eab..40a784d25c 100644
--- a/src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs
+++ b/src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs
@@ -92,7 +92,8 @@ public async Task InvokeAsync(HttpContext httpContext, IControllerResourceMappin
{
string timingResults = CodeTimingSessionManager.Current.GetResults();
string url = httpContext.Request.GetDisplayUrl();
- logger.LogInformation($"Measurement results for {httpContext.Request.Method} {url}:{Environment.NewLine}{timingResults}");
+ string method = httpContext.Request.Method.Replace(Environment.NewLine, "");
+ logger.LogInformation($"Measurement results for {method} {url}:{Environment.NewLine}{timingResults}");
}
}
diff --git a/src/JsonApiDotNetCore/Serialization/Request/JsonApiReader.cs b/src/JsonApiDotNetCore/Serialization/Request/JsonApiReader.cs
index 8a8de4d5cc..4bd3741b7e 100644
--- a/src/JsonApiDotNetCore/Serialization/Request/JsonApiReader.cs
+++ b/src/JsonApiDotNetCore/Serialization/Request/JsonApiReader.cs
@@ -40,8 +40,9 @@ public JsonApiReader(IJsonApiOptions options, IDocumentAdapter documentAdapter,
ArgumentGuard.NotNull(httpRequest);
string requestBody = await ReceiveRequestBodyAsync(httpRequest);
+ string method = httpRequest.Method.Replace(Environment.NewLine, "");
- _traceWriter.LogMessage(() => $"Received {httpRequest.Method} request at '{httpRequest.GetEncodedUrl()}' with body: <<{requestBody}>>");
+ _traceWriter.LogMessage(() => $"Received {method} request at '{httpRequest.GetEncodedUrl()}' with body: <<{requestBody}>>");
return GetModel(requestBody);
}
diff --git a/src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs b/src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs
index 2a54c1ba8e..22de5284a2 100644
--- a/src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs
+++ b/src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs
@@ -63,7 +63,12 @@ public async Task WriteAsync(object? model, HttpContext httpContext)
}
_traceWriter.LogMessage(() =>
- $"Sending {httpContext.Response.StatusCode} response for {httpContext.Request.Method} request at '{httpContext.Request.GetEncodedUrl()}' with body: <<{responseBody}>>");
+ {
+ string method = httpContext.Request.Method.Replace(Environment.NewLine, "");
+ string url = httpContext.Request.GetEncodedUrl();
+
+ return $"Sending {httpContext.Response.StatusCode} response for {method} request at '{url}' with body: <<{responseBody}>>";
+ });
await SendResponseBodyAsync(httpContext.Response, responseBody);
}
diff --git a/test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj b/test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj
index e66fbaeacc..7a3fa8ddf8 100644
--- a/test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj
+++ b/test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj
@@ -11,12 +11,12 @@
-
+
-
-
-
+
+
+
-
+
diff --git a/test/MultiDbContextTests/MultiDbContextTests.csproj b/test/MultiDbContextTests/MultiDbContextTests.csproj
index 0f5f5f2cff..394d72e2d2 100644
--- a/test/MultiDbContextTests/MultiDbContextTests.csproj
+++ b/test/MultiDbContextTests/MultiDbContextTests.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj b/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
index f651f73c0e..84a36dcbb1 100644
--- a/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
+++ b/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/test/OpenApiClientTests/OpenApiClientTests.csproj b/test/OpenApiClientTests/OpenApiClientTests.csproj
index d134283f14..c28ed7959e 100644
--- a/test/OpenApiClientTests/OpenApiClientTests.csproj
+++ b/test/OpenApiClientTests/OpenApiClientTests.csproj
@@ -11,17 +11,11 @@
-
+
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
diff --git a/test/OpenApiTests/OpenApiTests.csproj b/test/OpenApiTests/OpenApiTests.csproj
index 21936f5bc8..f6f1441fc1 100644
--- a/test/OpenApiTests/OpenApiTests.csproj
+++ b/test/OpenApiTests/OpenApiTests.csproj
@@ -16,8 +16,8 @@
-
+
-
+
diff --git a/test/SourceGeneratorTests/SourceGeneratorTests.csproj b/test/SourceGeneratorTests/SourceGeneratorTests.csproj
index 707de9b8c5..d361de38e5 100644
--- a/test/SourceGeneratorTests/SourceGeneratorTests.csproj
+++ b/test/SourceGeneratorTests/SourceGeneratorTests.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/test/TestBuildingBlocks/TestBuildingBlocks.csproj b/test/TestBuildingBlocks/TestBuildingBlocks.csproj
index 386e4e846e..ba9a2f5da3 100644
--- a/test/TestBuildingBlocks/TestBuildingBlocks.csproj
+++ b/test/TestBuildingBlocks/TestBuildingBlocks.csproj
@@ -8,15 +8,15 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/test/UnitTests/UnitTests.csproj b/test/UnitTests/UnitTests.csproj
index 85bcc57484..f8dcbce984 100644
--- a/test/UnitTests/UnitTests.csproj
+++ b/test/UnitTests/UnitTests.csproj
@@ -10,7 +10,7 @@
-
+