diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..b06b905
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,10 @@
+# See https://help.github.com/articles/about-codeowners/
+# for more info about CODEOWNERS file
+
+# It uses the same pattern rule for gitignore file
+# https://git-scm.com/docs/gitignore#_pattern_format
+
+# Any file
+* @Elskom/core-team
+# Any file under newsmake
+newsmake/* @Elskom/news-team
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..1998730
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,12 @@
+# Contributing
+
+1. Before you open an issue read the [Code of Conduct](../CODE_OF_CONDUCT.md) first.
+This details what the expected behavior should be.
+
+2. Ensure the issue or pull request was not already suggested.
+However if the pull request needed reopened due to some issues in it it would be detailed.
+
+3. A pull request should not be opened until a issue is tracked on the issues tab.
+After that the pull request should reference the issue and when merge should automatically close it.
+
+4. This file could change at any time so be sure to read this every time you open a issue or pull request to stay up to date.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..b17e370
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+patreon: Decorater
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..d211aae
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,30 @@
+---
+name: Bug report
+about: Create a report to help us improve
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1.
+2.
+3.
+4.
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Actual behavior**
+The actual result.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Version used**
+The version affected by this issue (Can also be "master" for code in latest master branch but reference commit then if possible).
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..3ba13e0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..066b2d9
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,17 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/optimization_request.md b/.github/ISSUE_TEMPLATE/optimization_request.md
new file mode 100644
index 0000000..ef24d32
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/optimization_request.md
@@ -0,0 +1,17 @@
+---
+name: Optimization request
+about: Suggest an optimization idea for this project.
+
+---
+
+**Is your optimization request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the optimization request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..694cb6c
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,10 @@
+# Checklist
+
+- [ ] I have read the Code of Conduct and the Contributing files before opening this issue.
+- [ ] I have verified the issue this pull request fixes or feature this pull request implements is to the current release.
+- [ ] I am using the latest stable release with the above code fix or the current main branch if code changes are present (prerelease code changes).
+- [ ] I have debugged and tested my changes before submitting this issue and that everything should just work.
+
+## Describe the issue this fixes / feature this adds
+
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..e4ca311
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,11 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+ - package-ecosystem: "nuget" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "daily"
diff --git a/.github/mergify.yml b/.github/mergify.yml
new file mode 100644
index 0000000..aecae40
--- /dev/null
+++ b/.github/mergify.yml
@@ -0,0 +1,118 @@
+queue_rules:
+ - name: default
+ conditions:
+ - -conflict # skip PRs with conflicts
+ - -draft # filter-out GH draft PRs
+ - -closed # filter-out closed GH PRs
+ - base=main
+ - label=automerge
+ - check-success=build
+ - check-success=Codacy Static Code Analysis
+ - check-success=DCO
+ - check-success=WIP
+
+pull_request_rules:
+ # for check failures / WIP pending check.
+ - name: Add enhancement label
+ conditions:
+ - check-pending=build
+ - -closed
+ - -label=enhancement
+ actions:
+ label:
+ add:
+ - enhancement
+
+ - name: Add automerge label
+ conditions:
+ - check-success=build
+ - -draft
+ - -closed
+ - -conflict
+ - -label=automerge
+ - author~=^(AraHaan|CatGirlsAreLife|JunichiSama|xioke|Elskom-gitsync)$
+ actions:
+ label:
+ add:
+ - automerge
+
+ - name: Automatic message on build failure
+ conditions:
+ - check-failure=build
+ - -draft
+ - -closed
+ actions:
+ comment:
+ message: |
+ This PR's build has failed. Ensure it passes before they can be scheduled for automatic merge.
+
+ - name: Automatic message on security failure
+ conditions:
+ - check-failure=Codacy Static Code Analysis
+ - -draft
+ - -closed
+ actions:
+ comment:
+ message: |
+ This PR's security check has failed. Ensure it passes before they can be scheduled for automatic merge.
+
+ - name: Automatic message on signoff failure
+ conditions:
+ - check-failure=DCO
+ - -draft
+ - -closed
+ actions:
+ comment:
+ message: |
+ This PR does not add the DCO signoff. Ensure it does before they can be scheduled for automatic merge.
+ To do that click the details link on the check below to find the steps to resolve this and then force push using ``git push --force`` after it has been completed.
+ If the PR has multiple commits to simplify it you can also run ``git rebase -i HEAD~x`` where x is the number of commits inside of the PR, then in the interactive program that is opened to edit the data change every line under the first one that starts with ``pick`` to ``fixup`` then save and exit the program git opens, after that git will rebase them into each other and squashes them into a single commit where then you can run ``git commit --amend --signoff`` then force push.
+
+ - name: Automatic message on WIP
+ conditions:
+ - check-pending=WIP
+ - -draft
+ - -closed
+ actions:
+ comment:
+ message: This PR is WIP, when you complete the work remember to unset the WIP state in the title of this PR.
+
+ - name: Automatic message on conflict
+ conditions:
+ - -draft
+ - conflict
+ actions:
+ comment:
+ message: |
+ This PR is conflicted :sob:.
+
+ - name: Automatic merge when automerge label added
+ conditions:
+ - -conflict # skip PRs with conflicts
+ - -draft # filter-out GH draft PRs
+ - -closed # filter-out closed GH PRs
+ - base=main
+ - label=automerge
+ - check-success=build
+ - check-success=Codacy Static Code Analysis
+ - check-success=DCO
+ - check-success=WIP
+ actions:
+ comment:
+ message: This pull request is about to be automerged.
+ review:
+ type: APPROVE
+ message: Automatically approving since automerge label was found.
+ queue:
+ name: default
+ method: squash
+ update_method: rebase
+
+ - name: Remove automerge label
+ conditions:
+ - closed
+ - label=automerge
+ actions:
+ label:
+ remove:
+ - automerge
diff --git a/.github/workflows/dotnetcore-build.yml b/.github/workflows/dotnetcore-build.yml
new file mode 100644
index 0000000..2cdd191
--- /dev/null
+++ b/.github/workflows/dotnetcore-build.yml
@@ -0,0 +1,27 @@
+name: .NET Core (build)
+
+on:
+ push:
+ branches: [ main ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ DOTNET_CLI_TELEMETRY_OPTOUT: true
+ DOTNET_NOLOGO: true
+ NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
+ BUILD_RERUN_COUNT: ${{ github.run_attempt }}
+ steps:
+ - uses: actions/checkout@main
+
+ - name: Install latest .NET SDK
+ uses: Elskom/setup-latest-dotnet@main
+
+ - name: Restore, Build, and pack
+ uses: Elskom/build-dotnet@main
+ with:
+ TEST: false
+ PACK: true
+ PUSH: true
diff --git a/.github/workflows/dotnetcore-publish.yml b/.github/workflows/dotnetcore-publish.yml
new file mode 100644
index 0000000..3e73c85
--- /dev/null
+++ b/.github/workflows/dotnetcore-publish.yml
@@ -0,0 +1,28 @@
+name: .NET Core (build & publish release)
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ DOTNET_CLI_TELEMETRY_OPTOUT: true
+ DOTNET_NOLOGO: true
+ NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
+ BUILD_RERUN_COUNT: ${{ github.run_attempt }}
+ steps:
+ - uses: actions/checkout@main
+
+ - name: Install latest .NET SDK
+ uses: Elskom/setup-latest-dotnet@main
+
+ - name: Restore, Build, and pack
+ uses: Elskom/build-dotnet@main
+ with:
+ TEST: false
+ PACK: true
+ PUSH: true
diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml
new file mode 100644
index 0000000..2df82f9
--- /dev/null
+++ b/.github/workflows/dotnetcore.yml
@@ -0,0 +1,22 @@
+name: .NET Core (build pull request)
+
+on: [pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ DOTNET_CLI_TELEMETRY_OPTOUT: true
+ DOTNET_NOLOGO: true
+ BUILD_RERUN_COUNT: ${{ github.run_attempt }}
+ steps:
+ - uses: actions/checkout@main
+
+ - name: Install latest .NET SDK
+ uses: Elskom/setup-latest-dotnet@main
+
+ - name: Restore, Build, and pack
+ uses: Elskom/build-dotnet@main
+ with:
+ TEST: false
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..19b9e8e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+.vs/
+artifacts/
+*.log
+bin
+obj
+# backup files stored on the users machine.
+*.bak
+# ignore rider bullshit files.
+.idea/
+# not needed anymore, kept locally just in case however.
+XmlAbstraction/
+*.binlog
+GitInfo.json
+
+# opening Finder on mac inside the repository creates these.
+.DS_Store
+*.user
+
+# exclude security scanning results.
+results.sarif
+
+# prevent build time generated props file from ever making it's way into the repository.
+Sdk/Sdk.Runtime.props
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..418633a
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,76 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, sex characteristics, gender identity and expression,
+level of experience, education, socio-economic status, nationality, personal
+appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at seandhunt_7@yahoo.com. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..c70ba5c
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,22 @@
+
+
+
+
+ true
+
+ true
+ $(MSBuildThisFileDirectory)artifacts\
+ Els_kom org.
+ Els_kom org.
+ MIT
+ https://github.com/Elskom/NetFXWebSdk/
+ https://github.com/Elskom/NetFXWebSdk/
+ git
+ Copyright (c) 2023
+ true
+ true
+ -dev
+ -preview.$(GITHUB_RUN_NUMBER).$(BUILD_RERUN_COUNT)
+
+
+
diff --git a/Elskom.NetFX.Sdk.Web/Directory.Build.props b/Elskom.NetFX.Sdk.Web/Directory.Build.props
new file mode 100644
index 0000000..fbaa2b0
--- /dev/null
+++ b/Elskom.NetFX.Sdk.Web/Directory.Build.props
@@ -0,0 +1,15 @@
+
+
+
+
+
+ net6.0
+ 1.0.0
+ false
+ true
+ Web
+ Elskom SDK for development of Web projects. This helps simplify the setup of .NET Framework Web projects that use the .NET SDK and fixes a few issues from doing so This results in identical publish outputs with the Non-SDK style versions of the same projects.
+ Initial Release.
+
+
+
diff --git a/Elskom.NetFX.Sdk.Web/Directory.Build.targets b/Elskom.NetFX.Sdk.Web/Directory.Build.targets
new file mode 100644
index 0000000..b706f79
--- /dev/null
+++ b/Elskom.NetFX.Sdk.Web/Directory.Build.targets
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Elskom.NetFX.Sdk.Web/Elskom.NetFX.Sdk.Web.csproj b/Elskom.NetFX.Sdk.Web/Elskom.NetFX.Sdk.Web.csproj
new file mode 100644
index 0000000..208677e
--- /dev/null
+++ b/Elskom.NetFX.Sdk.Web/Elskom.NetFX.Sdk.Web.csproj
@@ -0,0 +1 @@
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..55405df
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018-2021 Els_kom
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..66e57a0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# NetFXWebSdk
+Sdk for development of Web projects. This helps simplify the setup of .NET Framework Web projects that use the .NET SDK and fixes a few issues from doing so This results in identical publish outputs with the Non-SDK style versions of the same projects.
+
+# NuGet
+
+| Package | Version |
+|:-------:|:-------:|
+| Elskom.Web.NetFX.Sdk | [![NuGet Badge](https://buildstats.info/nuget/Elskom.Web.NetFX.Sdk?includePreReleases=true)](https://www.nuget.org/packages/Elskom.Web.NetFX.Sdk/) |
+
+# Build Status
+
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/602ea77e56864263b58c05c7beaadf5f)](https://app.codacy.com/gh/Elskom/NetFXWebSdk?utm_source=github.com&utm_medium=referral&utm_content=Elskom/NetFXWebSdk&utm_campaign=Badge_Grade_Settings)
+![Build Status](https://github.com/Elskom/NetFXWebSdk/workflows/.NET%20Core%20%28build%29/badge.svg)
+![Build Status](https://github.com/Elskom/NetFXWebSdk/workflows/.NET%20Core%20%28build%20%26%20publish%20release%29/badge.svg)
+[![GitHub release](https://img.shields.io/github/release/Elskom/NetFXWebSdk.svg)](https://GitHub.com/Elskom/NetFXWebSdk/releases/)
+[![GitHub repo size](https://img.shields.io/github/repo-size/Elskom/NetFXWebSdk)](https://github.com/Elskom/NetFXWebSdk)
+[![GitHub issues-opened](https://img.shields.io/github/issues/Elskom/NetFXWebSdk.svg)](https://GitHub.com/Elskom/NetFXWebSdk/issues?q=is%3Aissue+is%3Aopened)
+[![GitHub issues-closed](https://img.shields.io/github/issues-closed/Elskom/NetFXWebSdk.svg)](https://GitHub.com/Elskom/NetFXWebSdk/issues?q=is%3Aissue+is%3Aclosed)
+[![GitHub pulls-opened](https://img.shields.io/github/issues-pr/Elskom/NetFXWebSdk.svg)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Aopen+is%3Apr)
+[![Github pulls-pending](https://img.shields.io/github/issues-search/Elskom/NetFXWebSdk?label=pending%20pull%20requests&query=is%3Aopen+status%3Apending+is%3apr&color=lightgray)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Aopen+status%3Apending+is%3Apr)
+[![Github pulls-passing](https://img.shields.io/github/issues-search/Elskom/NetFXWebSdk?label=passing%20pull%20requests&query=is%3Aopen+status%3Asuccess+is%3Apr&color=limegreen)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Aopen+status%3Asuccess+is%3Apr)
+[![Github pulls-failing](https://img.shields.io/github/issues-search/Elskom/NetFXWebSdk?label=failing%20pull%20requests&query=is%3Aopen+status%3Afailure+is%3Apr&color=red)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Aopen+status%3Afailure+is%3Apr)
+[![GitHub pulls-merged](https://img.shields.io/github/issues-search/Elskom/NetFXWebSdk?label=merged%20pull%20requests&query=is%3Apr%20is%3Aclosed%20is%3Amerged&color=darkviolet)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Apr+is%3Aclosed+is%3Amerged)
+[![GitHub pulls-unmerged](https://img.shields.io/github/issues-search/Elskom/NetFXWebSdk?label=unmerged%20pull%20requests&query=is%3Apr%20is%3Aclosed%20is%3Aunmerged&color=red)](https://github.com/Elskom/NetFXWebSdk/pulls?q=is%3Apr+is%3Aclosed+is%3Aunmerged)
+[![GitHub contributors](https://img.shields.io/github/contributors/Elskom/NetFXWebSdk.svg)](https://GitHub.com/Elskom/NetFXWebSdk/graphs/contributors/)
+![Commit activity](https://img.shields.io/github/commit-activity/y/Elskom/NetFXWebSdk)
+
+Any bugs can be filed in this repository's built in bug tracker.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..b3c2b00
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,19 @@
+# Security Policy
+
+## Supported Versions
+
+| Version | Supported |
+| ------- | ------------------ |
+| 1.0.0 | :white_check_mark: |
+
+## Reporting a Vulnerability
+
+To report a security issue simply file an issue in this repository.
+
+Expect security issues to be fixed when a patch to it is released on nuget as soon as possible.
+
+Do not expect that every security issue will be accepted, they will be accepted only if:
+- The fix does not break ABI compatibility for the major.minor release.
+- The fix does not introduce new public api functions to the major.minor release after intially being released.
+- The fix does not break how an entire project operates (like how zlib compresses/decompressess data)/
+- When an repository admin says it's ok to fix it and slightly break any of the above.
diff --git a/Sdk/Sdk.props b/Sdk/Sdk.props
new file mode 100644
index 0000000..ed84840
--- /dev/null
+++ b/Sdk/Sdk.props
@@ -0,0 +1,98 @@
+
+
+
+ Properties
+
+ true
+ true
+
+ $(MSBuildExtensionsPath64)\..\IIS Express\iisexpress
+ $(MSBuildProgramFiles32)\IIS Express\iisexpress
+ /path:"$(MSBuildProjectDirectory)" /port:$(IISExpressSSLPort)"
+
+ false
+
+
+
+ false
+
+
+
+ embedded
+
+ false
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+ Global.asax
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ Never
+ Never
+ Web.config
+
+
+ Never
+ Never
+ Web.config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sdk/Sdk.targets b/Sdk/Sdk.targets
new file mode 100644
index 0000000..b2a44ee
--- /dev/null
+++ b/Sdk/Sdk.targets
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdk.sln b/sdk.sln
new file mode 100644
index 0000000..45d6d52
--- /dev/null
+++ b/sdk.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.32916.344
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elskom.NetFX.Sdk.Web", "Elskom.NetFX.Sdk.Web\Elskom.NetFX.Sdk.Web.csproj", "{33F5A21C-CAF3-4D13-89A1-AE4F7F0D3651}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {33F5A21C-CAF3-4D13-89A1-AE4F7F0D3651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {33F5A21C-CAF3-4D13-89A1-AE4F7F0D3651}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {33F5A21C-CAF3-4D13-89A1-AE4F7F0D3651}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {33F5A21C-CAF3-4D13-89A1-AE4F7F0D3651}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {AE022F12-D088-439B-8AD2-EAAF2FE7C6C0}
+ EndGlobalSection
+EndGlobal