diff --git a/.editorconfig b/.editorconfig
index c57b9d7..c434eb5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,153 +1,89 @@
-# editorconfig.org
+# EditorConfig is awesome:http://EditorConfig.org
# top-most EditorConfig file
root = true
-# Default settings:
-# A newline ending every file
-# Use 4 spaces as indentation
+# Don't use tabs for indentation.
[*]
-insert_final_newline = true
indent_style = space
# (Please don't specify an indent_size here; that has too many unintended consequences.)
-
# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4
-# XML project files
-[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
-indent_size = 2
-
-# XML config files
-[*.{props,targets,ruleset,stylecop,xml,config,nuspec,resx,vsixmanifest,vsct}]
-indent_size = 2
-
-# JSON files
-[*.json]
+# Xml project files
+[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,msbuildproj,props,targets}]
indent_size = 2
-# Powershell files
-[*.ps1]
+# Xml config files
+[*.{ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2
-# Shell script files
-[*.sh]
-end_of_line = lf
+# YAML files
+[*.{yaml,yml}]
indent_size = 2
-# Yaml devops files
-[*.{yml,yaml}]
+# JSON files
+[*.json]
indent_size = 2
-# Shell scripts
-[*.sh]
-end_of_line = lf
-[*.{cmd, bat}]
-end_of_line = crlf
-
-
-# C# files
-[*.cs]
-# New line preferences
-csharp_new_line_before_open_brace = all
-csharp_new_line_before_else = true
-csharp_new_line_before_catch = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_members_in_anonymous_types = true
-csharp_new_line_within_query_expression_clauses = true
-
-# Indentation preferences
-csharp_indent_block_contents = true
-csharp_indent_braces = false
-csharp_indent_case_contents = true
-csharp_indent_switch_labels = true
-csharp_indent_labels = flush_left
-
-# avoid this. unless absolutely necessary
+# Dotnet code style settings:
+[*.{cs,vb}]
+# Sort using and Import directives with System.* appearing first
+dotnet_sort_system_directives_first = true
+# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
-# Prefer "var" everywhere
-csharp_style_var_for_built_in_types = true:suggestion
-csharp_style_var_when_type_is_apparent = true:suggestion
-csharp_style_var_elsewhere = true:suggestion
-
-# use language keywords instead of BCL types
+# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
-# name all constant fields using PascalCase
-dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
-dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
-dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
+# Suggest more modern language features when available
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
-dotnet_naming_symbols.constant_fields.applicable_kinds = field
-dotnet_naming_symbols.constant_fields.required_modifiers = const
+# CSharp code style settings:
-dotnet_naming_style.pascal_case_style.capitalization = pascal_case
+# IDE0040: Add accessibility modifiers
+dotnet_style_require_accessibility_modifiers = omit_if_default:error
-# internal and private fields should be _camelCase
-dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
-dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
-dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = error
-dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
-dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
+[*.cs]
+# Prefer "var" everywhere
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_style_var_elsewhere = true:suggestion
-# Code style defaults
-dotnet_sort_system_directives_first = true
-csharp_preserve_single_line_blocks = true
-csharp_preserve_single_line_statements = false
+# Prefer method-like constructs to have an expression-body
+csharp_style_expression_bodied_methods = true:none
+csharp_style_expression_bodied_constructors = true:none
+csharp_style_expression_bodied_operators = true:none
-# Expression-level preferences
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_explicit_tuple_names = true:suggestion
-dotnet_style_coalesce_expression = true:suggestion
-dotnet_style_null_propagation = true:suggestion
+# Prefer property-like constructs to have an expression-body
+csharp_style_expression_bodied_properties = true:none
+csharp_style_expression_bodied_indexers = true:none
+csharp_style_expression_bodied_accessors = true:none
-# Expression-bodied members
-csharp_style_expression_bodied_methods = when_on_single_line:suggestion
-csharp_style_expression_bodied_constructors = when_on_single_line:suggestion
-csharp_style_expression_bodied_operators = when_on_single_line:suggestion
-csharp_style_expression_bodied_properties = when_on_single_line:suggestion
-csharp_style_expression_bodied_indexers = when_on_single_line:suggestion
-csharp_style_expression_bodied_accessors = when_on_single_line:suggestion
-
-# Pattern matching
-csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
-csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+# Suggest more modern language features when available
+csharp_style_pattern_matching_over_is_with_cast_check = true:error
+csharp_style_pattern_matching_over_as_with_null_check = true:error
csharp_style_inlined_variable_declaration = true:suggestion
-
-# Null checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion
-# Space preferences
-csharp_space_after_cast = false
-csharp_space_after_colon_in_inheritance_clause = true
-csharp_space_after_comma = true
-csharp_space_after_dot = false
-csharp_space_after_keywords_in_control_flow_statements = true
-csharp_space_after_semicolon_in_for_statement = true
-csharp_space_around_binary_operators = before_and_after
-csharp_space_around_declaration_statements = do_not_ignore
-csharp_space_before_colon_in_inheritance_clause = true
-csharp_space_before_comma = false
-csharp_space_before_dot = false
-csharp_space_before_open_square_brackets = false
-csharp_space_before_semicolon_in_for_statement = false
-csharp_space_between_empty_square_brackets = false
-csharp_space_between_method_call_empty_parameter_list_parentheses = false
-csharp_space_between_method_call_name_and_opening_parenthesis = false
-csharp_space_between_method_call_parameter_list_parentheses = false
-csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
-csharp_space_between_method_declaration_name_and_open_parenthesis = false
-csharp_space_between_method_declaration_parameter_list_parentheses = false
-csharp_space_between_parentheses = false
-csharp_space_between_square_brackets = false
+# Newline settings
+csharp_new_line_before_open_brace = all
+csharp_new_line_before_else = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_members_in_anonymous_types = true
diff --git a/.gitattributes b/.gitattributes
index 624569f..7c37579 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,9 +1,7 @@
-# This file is understood by git 1.7.2 and higher. Everyone should
-# be on this version by now.
-
# sln, csproj files (and friends) are always CRLF, even on linux
*.sln text eol=crlf
*.proj text eol=crlf
+*.csproj text eol=crlf
# These are windows specific files which we may as well ensure are
# always crlf on checkout
@@ -16,15 +14,11 @@
*.config text
*.h text
*.cs text
-*.csproj text
*.md text
*.tt text
*.txt text
-*.vspackage text
-*.vspackage.diagram text
# Some must always be checked out as lf so enforce that for those files
# If these are not lf then bash/cygwin on windows will not be able to
# excute the files
-*.sh text eol=lf
-
+*.sh text eol=lf
\ No newline at end of file
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..ef77f21
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+custom: https://paypal.me/kzu
+patreon: danielkzu
+open_collective: kzu
+liberapay: kzu
diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md
new file mode 100644
index 0000000..67f7595
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.md
@@ -0,0 +1,50 @@
+---
+name: Bug Report
+about: Create a report to help us fix a problem.
+title: ''
+labels: 'bug'
+assignees: ''
+---
+
+## Describe the Bug
+
+
+
+## Steps to Reproduce
+
+
+
+```c#
+public class ReproTest
+{
+ [Fact]
+ public void Repro()
+ {
+ // arrange
+
+ // act
+
+ // assert
+ }
+}
+```
+
+## Expected Behavior
+
+
+
+## Exception with Stack Trace
+
+
+
+```text
+Put the exception with stack trace here.
+```
+
+## Version Info
+
+
+
+## Additional Info
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md
new file mode 100644
index 0000000..0b3de9d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.md
@@ -0,0 +1,33 @@
+---
+name: Feature Request
+about: Suggest an idea to make the project better.
+title: ''
+labels: 'enhancement'
+assignees: ''
+---
+
+## Problem Statement
+
+
+
+## Desired Solution
+
+
+
+## Alternatives You've Considered
+
+
+
+## Additional Context
+
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..9bd9700
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+# Please see the documentation for all configuration options:
+# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+- package-ecosystem: nuget
+ directory: /
+ schedule:
+ interval: weekly
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..091c421
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,75 @@
+# Builds and runs tests in all three supported OSes
+# Pushes CI feed if secrets.SLEET_CONNECTION is provided
+
+name: build
+on:
+ push:
+ branches: [ main, dev, 'feature/*', 'rel/*' ]
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+env:
+ DOTNET_NOLOGO: true
+
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ build:
+ name: build-${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macOS-latest]
+ steps:
+ - name: 🤘 checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+ fetch-depth: 0
+
+ - name: ⚙ dotnet 5.0.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 5.0.x
+ - name: ⚙ dotnet 3.1.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 3.1.x
+ - name: ⚙ dotnet 2.1.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 2.1.x
+
+ - name: ✓ check formatting
+ run: |
+ dotnet tool update -g --version 4.1.* dotnet-format >nul || dotnet tool list -g
+ dotnet format -f src --check -v:diag
+
+ - name: 🙏 build
+ run: dotnet build -bl:build.binlog -p:VersionLabel="$GITHUB_REF.$GITHUB_RUN_NUMBER"
+
+ - name: 🧪 test
+ run: dotnet test --no-build -m:1 --blame-hang --blame-hang-timeout 5m -d $GITHUB_WORKSPACE/logs/${{ matrix.os }}.txt -r $GITHUB_WORKSPACE/logs
+
+ - name: 📦 pack
+ run: dotnet pack -bl:pack.binlog -p:VersionLabel="$GITHUB_REF.$GITHUB_RUN_NUMBER"
+
+ - name: 🔼 logs
+ if: always()
+ uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.os }}
+ path: |
+ *.binlog
+ logs/**/*.*
+
+ # Only push CI package to sleet feed if building on ubuntu (fastest)
+ - name: 🚀 sleet
+ env:
+ SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }}
+ if: matrix.os == 'ubuntu-latest' && env.SLEET_CONNECTION != ''
+ run: |
+ dotnet tool install -g --version 3.2.0 sleet
+ sleet push bin --config none -f --verbose -p "SLEET_FEED_CONTAINER=nuget" -p "SLEET_FEED_CONNECTIONSTRING=${{ secrets.SLEET_CONNECTION }}" -p "SLEET_FEED_TYPE=azure"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..afbcfad
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,53 @@
+# Builds a final release version and pushes to nuget.org
+# whenever a release is published.
+# Requires: secrets.NUGET_API_KEY
+
+name: release
+on:
+ release:
+ types: [published]
+
+env:
+ DOTNET_NOLOGO: true
+ Configuration: Release
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: 🤘 checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+ fetch-depth: 0
+
+ - name: ⚙ dotnet 5.0.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 5.0.x
+ - name: ⚙ dotnet 3.1.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 3.1.x
+ - name: ⚙ dotnet 2.1.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 2.1.x
+
+ - name: 🙏 build
+ run: dotnet build -bl:build.binlog -p:version=${GITHUB_REF#refs/*/v}
+
+ - name: 🧪 test
+ run: dotnet test --no-build -m:1
+
+ - name: 📦 pack
+ run: dotnet pack -bl:pack.binlog -p:version=${GITHUB_REF#refs/*/v}
+
+ - name: 🔼 logs
+ if: ${{ always() }}
+ uses: actions/upload-artifact@v2
+ with:
+ path: '*.binlog'
+
+ - name: 🚀 nuget
+ run: dotnet nuget push ./bin/**/*.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate
\ No newline at end of file
diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml
new file mode 100644
index 0000000..3f42147
--- /dev/null
+++ b/.github/workflows/tag.yml
@@ -0,0 +1,51 @@
+# Creates a draft release whenever a tag v* is pushed,
+# with a changelog from the previous tag. If the tag
+# contains a label, the release is flagged as a prerelease.
+
+name: tag
+on:
+ push:
+ tags: [ 'v*' ]
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: 🤘 checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: 🏷 current
+ run: echo "CURRENT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
+ - name: 🏷 since
+ run: echo "SINCE_TAG=$(git describe --abbrev=0 --tags $(git rev-list --tags --skip=1 --max-count=1))" >> $GITHUB_ENV
+ - name: 🚧 prerelease
+ run: echo "PRERELEASE=true" >> $GITHUB_ENV
+ if: contains(env.CURRENT_TAG, '-')
+
+ - name: ⚙ changelog
+ uses: faberNovel/github-changelog-generator-action@master
+ if: env.SINCE_TAG != ''
+ with:
+ options: --token ${{ secrets.GITHUB_TOKEN }} --since-tag ${{ env.SINCE_TAG }}
+
+ - name: ⚙ changelog
+ uses: faberNovel/github-changelog-generator-action@master
+ if: env.SINCE_TAG == ''
+ with:
+ options: --token ${{ secrets.GITHUB_TOKEN }}
+
+ - name: 😺 changelog
+ run: cat CHANGELOG.md
+
+ - name: 🖉 release
+ uses: actions/create-release@v1
+ with:
+ release_name: ${{ env.CURRENT_TAG }}
+ tag_name: ${{ env.CURRENT_TAG }}
+ draft: true
+ prerelease: ${{ env.PRERELEASE }}
+ body_path: CHANGELOG.md
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github_changelog_generator b/.github_changelog_generator
new file mode 100644
index 0000000..955932c
--- /dev/null
+++ b/.github_changelog_generator
@@ -0,0 +1,4 @@
+usernames-as-github-logins=true
+header-label=
+add_issues_wo_labels=false
+exclude-labels=dependencies,duplicate,question,invalid,wontfix
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 3996028..23fe6bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@ pack
*.tmp
*.cache
*.binlog
+*.zip
.nuget
*.lock.json
diff --git a/.netconfig b/.netconfig
new file mode 100644
index 0000000..43ce697
--- /dev/null
+++ b/.netconfig
@@ -0,0 +1,87 @@
+[file]
+ url = https://github.com/kzu/oss
+[file ".netconfig"]
+ url = https://github.com/kzu/oss/blob/main/.netconfig
+ skip
+[file "readme.md"]
+ url = https://github.com/kzu/oss/blob/main/readme.md
+ skip
+[file "src/icon.png"]
+ url = https://github.com/kzu/oss/blob/main/src/icon.png
+ skip
+[file ".editorconfig"]
+ url = https://github.com/kzu/oss/blob/main/.editorconfig
+ etag = 985aa022503959d35b03c870f07ae604cead7580d260775235ef6665aa9a6cbe
+ weak
+[file ".gitattributes"]
+ url = https://github.com/kzu/oss/blob/main/.gitattributes
+ etag = 7acb32f5fa6d4ccd9c824605a7c2b8538497f0068c165567807d393dcf4d6bb7
+ weak
+[file ".github/FUNDING.yml"]
+ url = https://github.com/kzu/oss/blob/main/.github/FUNDING.yml
+ etag = dbc0e0c56e48bf06a70f50ba2fdaf6f048bb81ac8558b743c8e919487da3bfcf
+ weak
+[file ".github/ISSUE_TEMPLATE/bug.md"]
+ url = https://github.com/kzu/oss/blob/main/.github/ISSUE_TEMPLATE/bug.md
+ etag = 026852ba1f1921f3a043bb5e09cd7a2c3d9a33ec51f48e524dc3a2ab72de3141
+ weak
+[file ".github/ISSUE_TEMPLATE/feature.md"]
+ url = https://github.com/kzu/oss/blob/main/.github/ISSUE_TEMPLATE/feature.md
+ etag = c5b7de1bc9eaf1f2ae6d1d2021e68084a5b1ab4800e9f129416d2838c128cad1
+ weak
+[file ".github/dependabot.yml"]
+ url = https://github.com/kzu/oss/blob/main/.github/dependabot.yml
+ etag = 2fc8a0d2b47091b058ae3e1f68333492044b49a684621f4939a0bce5bff869d5
+ weak
+[file ".github/workflows/build.yml"]
+ url = https://github.com/kzu/oss/blob/main/.github/workflows/build.yml
+ etag = eb800461e98fdb7fe1ef58c8d6566d4b321efea736c013d4eb5e81550ccbd8ca
+ weak
+[file ".github/workflows/release.yml"]
+ url = https://github.com/kzu/oss/blob/main/.github/workflows/release.yml
+ etag = 1fd3c055d5d5206763903af7f2f56d4e37d33d5d6ac3921bfcbc80b7c8f38818
+ weak
+[file ".github/workflows/tag.yml"]
+ url = https://github.com/kzu/oss/blob/main/.github/workflows/tag.yml
+ etag = 26e271cf76e00c6922552af104b1e496103bdfa75ebef253447594207b10153e
+ weak
+[file ".github_changelog_generator"]
+ url = https://github.com/kzu/oss/blob/main/.github_changelog_generator
+ etag = a724e0cbbad99a04e6cd3738a5f3ec5416dd5f29ae7073e7afe5471e73107e42
+ weak
+[file ".gitignore"]
+ url = https://github.com/kzu/oss/blob/main/.gitignore
+ etag = 4698b35abed1f3941de6bed08bc80278c30569de3ead5b878b27b4bb79f8718a
+ weak
+[file "Directory.Build.rsp"]
+ url = https://github.com/kzu/oss/blob/main/Directory.Build.rsp
+ etag = 6a6c6e1d3895df953abf14c82b0899e3eea75cdcd679f6212dcfea15183d73d6
+ weak
+[file "_config.yml"]
+ url = https://github.com/kzu/oss/blob/main/_config.yml
+ etag = c7f2063ead734d0afc383a07c35da2864a221311da8e1c0c6fea8939e932d2ab
+ weak
+[file "code-of-conduct.md"]
+ url = https://github.com/kzu/oss/blob/main/code-of-conduct.md
+ etag = 4857c01bb695f09bf6912d778951c3065d9dd565e5de3d0827f40432d0e4c613
+ weak
+[file "license.txt"]
+ url = https://github.com/kzu/oss/blob/main/license.txt
+ etag = 2c6335b37e4ae05eea7c01f5d0c9d82b49c488f868a8b5ba7bff7c6ff01f3994
+ weak
+[file "security.md"]
+ url = https://github.com/kzu/oss/blob/main/security.md
+ etag = 80070e3a380796b13d180b82f43694eac9e7a29d8d2f8549ccb2920fd5c88828
+ weak
+[file "src/Directory.Build.props"]
+ url = https://github.com/kzu/oss/blob/main/src/Directory.Build.props
+ etag = 5b0cf9c055f179dc0b0f15a7e6dfbc6b8ea4b949eec61c0f3000afa2198970a6
+ weak
+[file "src/Directory.Build.targets"]
+ url = https://github.com/kzu/oss/blob/main/src/Directory.Build.targets
+ etag = 6e628510436de9303695f2f8c8fb743b698a0d93adc8e4c127bbbae0f74166b7
+ weak
+[file "src/kzu.snk"]
+ url = https://github.com/kzu/oss/blob/main/src/kzu.snk
+ etag = b8d789b5b6bea017cdcc8badcea888ad78de3e34298efca922054e9fb0e7b6b9
+ weak
diff --git a/Directory.Build.rsp b/Directory.Build.rsp
new file mode 100644
index 0000000..7c0dbc1
--- /dev/null
+++ b/Directory.Build.rsp
@@ -0,0 +1,5 @@
+# See https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files
+-nr:false
+-m:1
+-v:m
+-clp:Summary;ForceNoAlign
\ No newline at end of file
diff --git a/VisualStudio.sln b/VisualStudio.sln
index 02461f2..e612b52 100644
--- a/VisualStudio.sln
+++ b/VisualStudio.sln
@@ -3,17 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29728.133
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualStudio", "VisualStudio\VisualStudio.csproj", "{8CBD9F8C-F635-4E55-A593-91FFDB2312AF}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualStudio", "src\VisualStudio\VisualStudio.csproj", "{8CBD9F8C-F635-4E55-A593-91FFDB2312AF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8722AC17-A90B-406B-850A-C1B8EB89056D}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
- azure-pipelines.yml = azure-pipelines.yml
- GitInfo.txt = GitInfo.txt
README.md = README.md
EndProjectSection
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualStudio.Tests", "VisualStudio.Tests\VisualStudio.Tests.csproj", "{D379D36D-60D5-4CB4-B34C-B86FF9E3F956}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualStudio.Tests", "src\VisualStudio.Tests\VisualStudio.Tests.csproj", "{D379D36D-60D5-4CB4-B34C-B86FF9E3F956}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/VisualStudio/Directory.Build.props b/VisualStudio/Directory.Build.props
deleted file mode 100644
index 0933f97..0000000
--- a/VisualStudio/Directory.Build.props
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
- false
- true
-
-
-
- false
- true
-
-
-
- $(CI)
- true
- true
-
- $(SYSTEM_PULLREQUEST_SOURCEBRANCH)
- $(BUILD_SOURCEBRANCH)
- $(GitBranch.Substring(11))
-
- $(GitBranch.Substring(4))
- $(GitBranch.Replace('/', '-'))
-
-
-
- $(BUILD_SOURCEVERSION)
- $(GitSha.Substring(0, 9))
-
-
-
- $(SYSTEM_PULLREQUEST_SOURCECOMMITID)
- $(GitSha.Substring(0, 9))
-
-
-
- kzu
-
- false
- MIT
- https://github.com/kzu/dotnet-vs
- icon-128.png
- dotnet vs
-
-
-
- true
- Latest
-
- false
-
- true
- NU5105;$(NoWarn)
-
-
- true
-
- $(PackOnBuild)
- $(MSBuildThisFileDirectory)..\bin
- $(DefaultExcludeItems);*.binlog
-
-
-
-
-
-
-
-
diff --git a/VisualStudio/Directory.Build.targets b/VisualStudio/Directory.Build.targets
deleted file mode 100644
index d965b28..0000000
--- a/VisualStudio/Directory.Build.targets
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
- false
-
-
-
-
-
-
-
-
-
-
- $(GitBranch.Replace('/', '-'))
-
- -$(GitBranch)
- $(PR)
-
-
-
-
-
-
-
-
-
-
-
-
- @(VersionMetadata -> '%(Identity)', '-')
- +$(VersionMetadataLabel)
- $(GitSemVerDashLabel).$(GitCommits)
-
- $(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)
- $(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)$(GitSemVerDashLabel)
- $(BuildVersion)
- $(BuildVersion)
-
-
-
-
- <_Parameter1>Version
- <_Parameter2>$(Version)
-
-
- <_Parameter1>PackageVersion
- <_Parameter2>$(PackageVersion)
-
-
- <_Parameter1>BuildVersion
- <_Parameter2>$(BuildVersion)
-
-
-
-
-
- $(Description)
-
-Built by https://build.azdo.io/kzu/oss/$(BUILD_BUILDID) from $(PackageProjectUrl)/tree/$(GitCommit)
-
-
-
-
-
-
-
-
- <_Parameter1>AssemblyVersion
- <_Parameter2>$(AssemblyVersion)
-
-
- <_Parameter1>FileVersion
- <_Parameter2>$(FileVersion)
-
-
- <_Parameter1>InformationalVersion
- <_Parameter2>$(InformationalVersion)
-
-
-
-
-
-
-
- <_Parameter1>%(AssemblyMetadata.Identity)
- <_Parameter2>%(AssemblyMetadata.Value)
-
-
- <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' != ''">%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.Key)
- <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' != ''">%(InternalsVisibleTo.Identity), PublicKey=$(PublicKey)
- <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' == ''">%(InternalsVisibleTo.Identity)
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/VisualStudio/Properties/launchSettings.json b/VisualStudio/Properties/launchSettings.json
deleted file mode 100644
index 65c36cc..0000000
--- a/VisualStudio/Properties/launchSettings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "profiles": {
- "VisualStudio": {
- "commandName": "Project",
- "commandLineArgs": "client master exp --startServer --sync"
- }
- }
-}
\ No newline at end of file
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..f980e76
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-slate
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index e9fbb7b..0000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-variables:
-- group: Sleet
-- name: Configuration
- value: Release
-- name: PackageOutputPath
- value: $(Build.ArtifactStagingDirectory)
-- name: DotNetVersion
- value: 3.1.x
-- name: SleetVersion
- value: 3.2.0
-- name: PowerShellVersion
- value: 7.0.0
-
-stages:
-
-- stage: Build
- jobs:
- - job: Build
- pool:
- vmImage: 'windows-2019'
- steps:
- - checkout: self
- submodules: recursive
- clean: true
-
- - task: MSBuild@1
- displayName: Build
- inputs:
- configuration: $(Configuration)
- msbuildArguments: -r
-
- - task: VSTest@2
- displayName: Test
- inputs:
- testAssemblyVer2: '**/bin/**/*Tests.dll'
- runInParallel: true
- codeCoverageEnabled: false
- publishRunAttachments: true
- diagnosticsEnabled: false
- rerunFailedTests: true
-
- - task: PublishBuildArtifacts@1
- displayName: Upload
- condition: succeeded()
- inputs:
- PathtoPublish: $(Build.ArtifactStagingDirectory)
- ArtifactName: package
- ArtifactType: Container
-
- - task: UseDotNet@2
- displayName: 'Use .NETCore $(DotNetVersion)'
- inputs:
- packageType: runtime
- version: $(DotNetVersion)
- performMultiLevelLookup: true
-
- - script: dotnet tool update -g --version $(PowerShellVersion) PowerShell >nul || dotnet tool list -g
- displayName: 'Use PowerShell $(PowerShellVersion)'
-
- - pwsh: |
- if ((dotnet tool list -g | select-string sleet) -ne $null) {
- if ((dotnet tool list -g | select-string sleet | select-string $(SleetVersion)) -eq $null) {
- dotnet tool uninstall -g sleet
- } else {
- return
- }
- }
- dotnet tool install -g Sleet --version $(SleetVersion)
- displayName: 'Use Sleet $(SleetVersion)'
-
- - script: 'sleet push --config none $(Build.ArtifactStagingDirectory) -f --verbose -p "SLEET_FEED_CONNECTIONSTRING=$(SLEET_FEED_CONNECTIONSTRING)"'
- displayName: 'Push Package'
- condition: ne(variables['System.PullRequest.IsFork'], 'true')
\ No newline at end of file
diff --git a/code-of-conduct.md b/code-of-conduct.md
new file mode 100644
index 0000000..775f221
--- /dev/null
+++ b/code-of-conduct.md
@@ -0,0 +1,6 @@
+# Code of Conduct
+
+This project has adopted the code of conduct defined by the Contributor Covenant
+to clarify expected behavior in our community.
+
+For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
diff --git a/LICENSE b/license.txt
similarity index 93%
rename from LICENSE
rename to license.txt
index 0498a9a..83969dc 100644
--- a/LICENSE
+++ b/license.txt
@@ -1,6 +1,6 @@
-MIT License
+The MIT License (MIT)
-Copyright (c) 2020 Daniel Cazzulino
+Copyright (c) Daniel Cazzulino and Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -19,3 +19,4 @@ 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
similarity index 100%
rename from README.md
rename to readme.md
diff --git a/security.md b/security.md
new file mode 100644
index 0000000..a17430a
--- /dev/null
+++ b/security.md
@@ -0,0 +1,9 @@
+# Security Policy
+
+## Reporting a Vulnerability
+
+Security issues and bugs should be reported privately by emailing hello@clarius.org.
+You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your
+original message and ping [@kzu](https://twitter.com/kzu) on Twitter.
+
+Please do not open issues for anything you think might have a security implication.
\ No newline at end of file
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
new file mode 100644
index 0000000..f752ee9
--- /dev/null
+++ b/src/Directory.Build.props
@@ -0,0 +1,125 @@
+
+
+
+
+ kzu
+ Copyright (C) Daniel Cazzulino and Contributors. All rights reserved.
+ false
+ MIT
+ icon.png
+
+ true
+ true
+
+ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\bin'))
+
+
+ true
+
+ https://pkg.kzu.io/index.json;https://api.nuget.org/v3/index.json;$(RestoreSources)
+
+
+
+
+
+
+
+
+ Latest
+
+
+ false
+
+ embedded
+ true
+ enable
+
+
+ $(MSBuildProjectName)
+ $(MSBuildProjectName.IndexOf('.'))
+ $(MSBuildProjectName.Substring(0, $(RootNamespaceDot)))
+
+
+ $(DefaultItemExcludes);*.binlog;*.zip;*.rsp;*.items;**/TestResults/**/*.*
+
+
+ $(MSBuildThisFileDirectory)kzu.snk
+
+ 002400000480000094000000060200000024000052534131000400000100010051155fd0ee280be78d81cc979423f1129ec5dd28edce9cd94fd679890639cad54c121ebdb606f8659659cd313d3b3db7fa41e2271158dd602bb0039a142717117fa1f63d93a2d288a1c2f920ec05c4858d344a45d48ebd31c1368ab783596b382b611d8c92f9c1b3d338296aa21b12f3bc9f34de87756100c172c52a24bad2db
+ 00352124762f2aa5
+ true
+
+ true
+ true
+ true
+ true
+
+
+ true
+
+
+
+
+ 42.42.42
+
+
+
+ <_VersionLabel>$(VersionLabel.Replace('refs/heads/', ''))
+
+ <_VersionLabel Condition="$(_VersionLabel.Contains('refs/pull/'))">$(VersionLabel.TrimEnd('.0123456789'))
+
+ <_VersionLabel>$(_VersionLabel.Replace('refs/pull/', 'pr'))
+
+ <_VersionLabel>$(_VersionLabel.Replace('/merge', ''))
+
+ <_VersionLabel>$(_VersionLabel.Replace('/', '-'))
+
+
+ $(_VersionLabel)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+ true
+
+
+
+
+ $(CI)
+
+
+
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
new file mode 100644
index 0000000..7ec685d
--- /dev/null
+++ b/src/Directory.Build.targets
@@ -0,0 +1,129 @@
+
+
+
+
+
+ false
+
+
+
+
+ 1.0.0
+ $(VersionPrefix)-$(VersionSuffix)
+ $(VersionPrefix)
+
+
+
+
+ $(PackFolder)
+ $(PackFolderPath.Replace('\$(TargetFramework)', ''))
+ $(IntermediateOutputPath)$(PackFolderPath)\
+ $(OutputPath)$(PackFolderPath)\
+ $(OutputPath)
+
+
+
+
+ $(DefineConstants);$(TargetFramework.ToUpperInvariant().TrimEnd('0').TrimEnd('.').Replace('.', ''))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(Description)
+
+Built from $(RepositoryUrl)/tree/$(SourceRevisionId.Substring(0, 9))
+ $(Description)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ i.ItemSpec))
+ {
+ Log.LogMessage(MessageImportance.High, "{0}: {1}", itemName, item.ItemSpec);
+ foreach (var name in item.MetadataNames.OfType().OrderBy(_ => _))
+ {
+ try
+ {
+ Log.LogMessage(MessageImportance.High, "\t{0}={1}", name, item.GetMetadata(name));
+ }
+ catch { }
+ }
+ }
+ ]]>
+
+
+
+
+
diff --git a/src/Directory.props b/src/Directory.props
new file mode 100644
index 0000000..3e9c160
--- /dev/null
+++ b/src/Directory.props
@@ -0,0 +1,12 @@
+
+
+
+
+
+ disable
+ false
+
+
+
+
+
diff --git a/VisualStudio.Tests/ChooserTests.cs b/src/VisualStudio.Tests/ChooserTests.cs
similarity index 100%
rename from VisualStudio.Tests/ChooserTests.cs
rename to src/VisualStudio.Tests/ChooserTests.cs
index 0f65074..27793e0 100644
--- a/VisualStudio.Tests/ChooserTests.cs
+++ b/src/VisualStudio.Tests/ChooserTests.cs
@@ -1,6 +1,6 @@
using System;
-using System.Linq;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
diff --git a/VisualStudio.Tests/CommandFactoryTests.cs b/src/VisualStudio.Tests/CommandFactoryTests.cs
similarity index 100%
rename from VisualStudio.Tests/CommandFactoryTests.cs
rename to src/VisualStudio.Tests/CommandFactoryTests.cs
diff --git a/VisualStudio.Tests/Commands/ClientCommandTests.cs b/src/VisualStudio.Tests/Commands/ClientCommandTests.cs
similarity index 100%
rename from VisualStudio.Tests/Commands/ClientCommandTests.cs
rename to src/VisualStudio.Tests/Commands/ClientCommandTests.cs
index 6c6f174..2298da4 100644
--- a/VisualStudio.Tests/Commands/ClientCommandTests.cs
+++ b/src/VisualStudio.Tests/Commands/ClientCommandTests.cs
@@ -1,15 +1,15 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Collections.Immutable;
using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Mono.Options;
using vswhere;
using Xunit;
using Xunit.Abstractions;
-using System.Collections.Immutable;
using DevEnv = vswhere.VisualStudioInstance;
namespace VisualStudio.Tests
diff --git a/VisualStudio.Tests/Commands/GenerateReadmeCommandTests.cs b/src/VisualStudio.Tests/Commands/GenerateReadmeCommandTests.cs
similarity index 100%
rename from VisualStudio.Tests/Commands/GenerateReadmeCommandTests.cs
rename to src/VisualStudio.Tests/Commands/GenerateReadmeCommandTests.cs
diff --git a/VisualStudio.Tests/OutputHelperTextWriter.cs b/src/VisualStudio.Tests/OutputHelperTextWriter.cs
similarity index 100%
rename from VisualStudio.Tests/OutputHelperTextWriter.cs
rename to src/VisualStudio.Tests/OutputHelperTextWriter.cs
diff --git a/VisualStudio.Tests/ProgramTests.cs b/src/VisualStudio.Tests/ProgramTests.cs
similarity index 100%
rename from VisualStudio.Tests/ProgramTests.cs
rename to src/VisualStudio.Tests/ProgramTests.cs
diff --git a/VisualStudio.Tests/VisualStudio.Tests.csproj b/src/VisualStudio.Tests/VisualStudio.Tests.csproj
similarity index 100%
rename from VisualStudio.Tests/VisualStudio.Tests.csproj
rename to src/VisualStudio.Tests/VisualStudio.Tests.csproj
diff --git a/VisualStudio.Tests/VisualStudioInstanceExtensions.cs b/src/VisualStudio.Tests/VisualStudioInstanceExtensions.cs
similarity index 100%
rename from VisualStudio.Tests/VisualStudioInstanceExtensions.cs
rename to src/VisualStudio.Tests/VisualStudioInstanceExtensions.cs
diff --git a/VisualStudio.Tests/VisualStudioOptionsTests.cs b/src/VisualStudio.Tests/VisualStudioOptionsTests.cs
similarity index 100%
rename from VisualStudio.Tests/VisualStudioOptionsTests.cs
rename to src/VisualStudio.Tests/VisualStudioOptionsTests.cs
index 4c5fe51..2db61fa 100644
--- a/VisualStudio.Tests/VisualStudioOptionsTests.cs
+++ b/src/VisualStudio.Tests/VisualStudioOptionsTests.cs
@@ -1,6 +1,6 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Linq;
using Xunit;
namespace VisualStudio.Tests
diff --git a/VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs b/src/VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs
similarity index 100%
rename from VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs
rename to src/VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs
index 180db94..860c1b8 100644
--- a/VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs
+++ b/src/VisualStudio.Tests/VisualStudioPredicateBuilderTests.cs
@@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks;
-using Xunit;
using vswhere;
+using Xunit;
namespace VisualStudio.Tests
{
diff --git a/VisualStudio/Channel.cs b/src/VisualStudio/Channel.cs
similarity index 100%
rename from VisualStudio/Channel.cs
rename to src/VisualStudio/Channel.cs
diff --git a/VisualStudio/Chooser.cs b/src/VisualStudio/Chooser.cs
similarity index 100%
rename from VisualStudio/Chooser.cs
rename to src/VisualStudio/Chooser.cs
index cf7158a..b9da15b 100644
--- a/VisualStudio/Chooser.cs
+++ b/src/VisualStudio/Chooser.cs
@@ -1,9 +1,9 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
+using System.Linq;
using vswhere;
-using System.Diagnostics;
namespace VisualStudio
{
diff --git a/VisualStudio/Command.cs b/src/VisualStudio/Command.cs
similarity index 100%
rename from VisualStudio/Command.cs
rename to src/VisualStudio/Command.cs
diff --git a/VisualStudio/CommandDescriptor.cs b/src/VisualStudio/CommandDescriptor.cs
similarity index 100%
rename from VisualStudio/CommandDescriptor.cs
rename to src/VisualStudio/CommandDescriptor.cs
diff --git a/VisualStudio/CommandFactory.cs b/src/VisualStudio/CommandFactory.cs
similarity index 100%
rename from VisualStudio/CommandFactory.cs
rename to src/VisualStudio/CommandFactory.cs
index 494ddd7..1c5f439 100644
--- a/VisualStudio/CommandFactory.cs
+++ b/src/VisualStudio/CommandFactory.cs
@@ -1,9 +1,9 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
-using System.Threading.Tasks;
using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
using Microsoft.DotNet;
namespace VisualStudio
diff --git a/VisualStudio/Commands.cs b/src/VisualStudio/Commands.cs
similarity index 93%
rename from VisualStudio/Commands.cs
rename to src/VisualStudio/Commands.cs
index 1b86266..217ec11 100644
--- a/VisualStudio/Commands.cs
+++ b/src/VisualStudio/Commands.cs
@@ -25,7 +25,7 @@ public class System
public class DotNetConfig
{
- public const string Section = ThisAssembly.Metadata.AssemblyName;
+ public const string Section = ThisAssembly.Project.AssemblyName;
public const string SubSection = "alias";
public static Config GetConfig(bool global = false) =>
diff --git a/VisualStudio/Commands/AliasCommand.cs b/src/VisualStudio/Commands/AliasCommand.cs
similarity index 100%
rename from VisualStudio/Commands/AliasCommand.cs
rename to src/VisualStudio/Commands/AliasCommand.cs
index eb8759c..5f871d4 100644
--- a/VisualStudio/Commands/AliasCommand.cs
+++ b/src/VisualStudio/Commands/AliasCommand.cs
@@ -1,6 +1,6 @@
using System;
-using System.Linq;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
namespace VisualStudio
diff --git a/VisualStudio/Commands/AliasCommandDescriptor.cs b/src/VisualStudio/Commands/AliasCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/AliasCommandDescriptor.cs
rename to src/VisualStudio/Commands/AliasCommandDescriptor.cs
index a7a2f7b..856d5c2 100644
--- a/VisualStudio/Commands/AliasCommandDescriptor.cs
+++ b/src/VisualStudio/Commands/AliasCommandDescriptor.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Linq;
namespace VisualStudio
{
diff --git a/VisualStudio/Commands/ClientCommand.cs b/src/VisualStudio/Commands/ClientCommand.cs
similarity index 100%
rename from VisualStudio/Commands/ClientCommand.cs
rename to src/VisualStudio/Commands/ClientCommand.cs
index c780c48..ed35234 100644
--- a/VisualStudio/Commands/ClientCommand.cs
+++ b/src/VisualStudio/Commands/ClientCommand.cs
@@ -1,9 +1,9 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
-using System.Diagnostics;
using DevEnv = vswhere.VisualStudioInstance;
namespace VisualStudio
diff --git a/VisualStudio/Commands/ClientCommandDescriptor.cs b/src/VisualStudio/Commands/ClientCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/ClientCommandDescriptor.cs
rename to src/VisualStudio/Commands/ClientCommandDescriptor.cs
diff --git a/VisualStudio/Commands/ConfigCommand.cs b/src/VisualStudio/Commands/ConfigCommand.cs
similarity index 100%
rename from VisualStudio/Commands/ConfigCommand.cs
rename to src/VisualStudio/Commands/ConfigCommand.cs
diff --git a/VisualStudio/Commands/ConfigCommandDescriptor.cs b/src/VisualStudio/Commands/ConfigCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/ConfigCommandDescriptor.cs
rename to src/VisualStudio/Commands/ConfigCommandDescriptor.cs
diff --git a/VisualStudio/Commands/GenerateReadmeCommand.cs b/src/VisualStudio/Commands/GenerateReadmeCommand.cs
similarity index 97%
rename from VisualStudio/Commands/GenerateReadmeCommand.cs
rename to src/VisualStudio/Commands/GenerateReadmeCommand.cs
index 33fda6a..9fb732c 100644
--- a/VisualStudio/Commands/GenerateReadmeCommand.cs
+++ b/src/VisualStudio/Commands/GenerateReadmeCommand.cs
@@ -21,7 +21,7 @@ public override async Task ExecuteAsync(TextWriter output)
var content = (await Descriptor.ReadCommandTemplateContentAsync(command.Key))
.Replace("{CommandName}", command.Key)
.Replace("{Description}", command.Value.Description)
- .Replace("{Usage}", $"Usage: {ThisAssembly.Metadata.AssemblyName} {command.Key} [options]")
+ .Replace("{Usage}", $"Usage: {ThisAssembly.Project.AssemblyName} {command.Key} [options]")
.Replace("{Options}", commandOptions.ToString());
commandsBuilder.AppendLine();
diff --git a/VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs b/src/VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs
rename to src/VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs
index 9f7726a..d767b0f 100644
--- a/VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs
+++ b/src/VisualStudio/Commands/GenerateReadmeCommandDescriptor.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Mono.Options;
diff --git a/VisualStudio/Commands/InstallCommand.cs b/src/VisualStudio/Commands/InstallCommand.cs
similarity index 100%
rename from VisualStudio/Commands/InstallCommand.cs
rename to src/VisualStudio/Commands/InstallCommand.cs
diff --git a/VisualStudio/Commands/InstallCommandDescriptor.cs b/src/VisualStudio/Commands/InstallCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/InstallCommandDescriptor.cs
rename to src/VisualStudio/Commands/InstallCommandDescriptor.cs
diff --git a/VisualStudio/Commands/KillCommand.cs b/src/VisualStudio/Commands/KillCommand.cs
similarity index 100%
rename from VisualStudio/Commands/KillCommand.cs
rename to src/VisualStudio/Commands/KillCommand.cs
index b71b3d1..c999ad6 100644
--- a/VisualStudio/Commands/KillCommand.cs
+++ b/src/VisualStudio/Commands/KillCommand.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using vswhere;
diff --git a/VisualStudio/Commands/KillCommandDescriptor.cs b/src/VisualStudio/Commands/KillCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/KillCommandDescriptor.cs
rename to src/VisualStudio/Commands/KillCommandDescriptor.cs
diff --git a/VisualStudio/Commands/LogCommand.cs b/src/VisualStudio/Commands/LogCommand.cs
similarity index 100%
rename from VisualStudio/Commands/LogCommand.cs
rename to src/VisualStudio/Commands/LogCommand.cs
diff --git a/VisualStudio/Commands/LogCommandDescriptor.cs b/src/VisualStudio/Commands/LogCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/LogCommandDescriptor.cs
rename to src/VisualStudio/Commands/LogCommandDescriptor.cs
diff --git a/VisualStudio/Commands/ModifyCommand.cs b/src/VisualStudio/Commands/ModifyCommand.cs
similarity index 96%
rename from VisualStudio/Commands/ModifyCommand.cs
rename to src/VisualStudio/Commands/ModifyCommand.cs
index c0290e7..5e640d7 100644
--- a/VisualStudio/Commands/ModifyCommand.cs
+++ b/src/VisualStudio/Commands/ModifyCommand.cs
@@ -1,6 +1,6 @@
-using System.Linq;
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using vswhere;
diff --git a/VisualStudio/Commands/ModifyCommandDescriptor.cs b/src/VisualStudio/Commands/ModifyCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/ModifyCommandDescriptor.cs
rename to src/VisualStudio/Commands/ModifyCommandDescriptor.cs
diff --git a/VisualStudio/Commands/RunCommand.cs b/src/VisualStudio/Commands/RunCommand.cs
similarity index 99%
rename from VisualStudio/Commands/RunCommand.cs
rename to src/VisualStudio/Commands/RunCommand.cs
index d03415e..d0d9fd1 100644
--- a/VisualStudio/Commands/RunCommand.cs
+++ b/src/VisualStudio/Commands/RunCommand.cs
@@ -1,8 +1,8 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using vswhere;
@@ -10,7 +10,7 @@ namespace VisualStudio
{
class RunCommand : Command
{
- static readonly ToolSettings settings = new ToolSettings(ThisAssembly.Metadata.AssemblyName);
+ static readonly ToolSettings settings = new ToolSettings(ThisAssembly.Project.AssemblyName);
readonly WhereService whereService;
diff --git a/VisualStudio/Commands/RunCommandDescriptor.cs b/src/VisualStudio/Commands/RunCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/RunCommandDescriptor.cs
rename to src/VisualStudio/Commands/RunCommandDescriptor.cs
index 4cd97b0..ec6e030 100644
--- a/VisualStudio/Commands/RunCommandDescriptor.cs
+++ b/src/VisualStudio/Commands/RunCommandDescriptor.cs
@@ -1,6 +1,6 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Linq;
using Mono.Options;
namespace VisualStudio
diff --git a/VisualStudio/Commands/SaveCommand.cs b/src/VisualStudio/Commands/SaveCommand.cs
similarity index 100%
rename from VisualStudio/Commands/SaveCommand.cs
rename to src/VisualStudio/Commands/SaveCommand.cs
diff --git a/VisualStudio/Commands/SaveCommandDescriptor.cs b/src/VisualStudio/Commands/SaveCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/SaveCommandDescriptor.cs
rename to src/VisualStudio/Commands/SaveCommandDescriptor.cs
index d2322e3..7fb9402 100644
--- a/VisualStudio/Commands/SaveCommandDescriptor.cs
+++ b/src/VisualStudio/Commands/SaveCommandDescriptor.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Linq;
namespace VisualStudio
{
diff --git a/VisualStudio/Commands/UpdateCommand.cs b/src/VisualStudio/Commands/UpdateCommand.cs
similarity index 100%
rename from VisualStudio/Commands/UpdateCommand.cs
rename to src/VisualStudio/Commands/UpdateCommand.cs
index 9b18446..6b477d5 100644
--- a/VisualStudio/Commands/UpdateCommand.cs
+++ b/src/VisualStudio/Commands/UpdateCommand.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using vswhere;
diff --git a/VisualStudio/Commands/UpdateCommandDescriptor.cs b/src/VisualStudio/Commands/UpdateCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/UpdateCommandDescriptor.cs
rename to src/VisualStudio/Commands/UpdateCommandDescriptor.cs
diff --git a/VisualStudio/Commands/UpdateSelfCommand.cs b/src/VisualStudio/Commands/UpdateSelfCommand.cs
similarity index 100%
rename from VisualStudio/Commands/UpdateSelfCommand.cs
rename to src/VisualStudio/Commands/UpdateSelfCommand.cs
diff --git a/VisualStudio/Commands/UpdateSelfCommandDescriptor.cs b/src/VisualStudio/Commands/UpdateSelfCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/UpdateSelfCommandDescriptor.cs
rename to src/VisualStudio/Commands/UpdateSelfCommandDescriptor.cs
index ca79a99..7ca190f 100644
--- a/VisualStudio/Commands/UpdateSelfCommandDescriptor.cs
+++ b/src/VisualStudio/Commands/UpdateSelfCommandDescriptor.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Linq;
namespace VisualStudio
{
diff --git a/VisualStudio/Commands/WhereCommand.cs b/src/VisualStudio/Commands/WhereCommand.cs
similarity index 100%
rename from VisualStudio/Commands/WhereCommand.cs
rename to src/VisualStudio/Commands/WhereCommand.cs
index 165224a..4ff6bb1 100644
--- a/VisualStudio/Commands/WhereCommand.cs
+++ b/src/VisualStudio/Commands/WhereCommand.cs
@@ -1,9 +1,9 @@
using System;
-using System.Linq;
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Threading.Tasks;
using vswhere;
-using System.Collections.Generic;
namespace VisualStudio
{
diff --git a/VisualStudio/Commands/WhereCommandDescriptor.cs b/src/VisualStudio/Commands/WhereCommandDescriptor.cs
similarity index 100%
rename from VisualStudio/Commands/WhereCommandDescriptor.cs
rename to src/VisualStudio/Commands/WhereCommandDescriptor.cs
diff --git a/VisualStudio/DefaultTextWriter.cs b/src/VisualStudio/DefaultTextWriter.cs
similarity index 100%
rename from VisualStudio/DefaultTextWriter.cs
rename to src/VisualStudio/DefaultTextWriter.cs
diff --git a/VisualStudio/Docs/README.md b/src/VisualStudio/Docs/README.md
similarity index 100%
rename from VisualStudio/Docs/README.md
rename to src/VisualStudio/Docs/README.md
diff --git a/VisualStudio/Docs/config.md b/src/VisualStudio/Docs/config.md
similarity index 100%
rename from VisualStudio/Docs/config.md
rename to src/VisualStudio/Docs/config.md
diff --git a/VisualStudio/Docs/default.md b/src/VisualStudio/Docs/default.md
similarity index 100%
rename from VisualStudio/Docs/default.md
rename to src/VisualStudio/Docs/default.md
diff --git a/VisualStudio/Docs/install.md b/src/VisualStudio/Docs/install.md
similarity index 100%
rename from VisualStudio/Docs/install.md
rename to src/VisualStudio/Docs/install.md
diff --git a/VisualStudio/Docs/kill.md b/src/VisualStudio/Docs/kill.md
similarity index 100%
rename from VisualStudio/Docs/kill.md
rename to src/VisualStudio/Docs/kill.md
diff --git a/VisualStudio/Docs/log.md b/src/VisualStudio/Docs/log.md
similarity index 100%
rename from VisualStudio/Docs/log.md
rename to src/VisualStudio/Docs/log.md
diff --git a/VisualStudio/Docs/modify.md b/src/VisualStudio/Docs/modify.md
similarity index 100%
rename from VisualStudio/Docs/modify.md
rename to src/VisualStudio/Docs/modify.md
diff --git a/VisualStudio/Docs/run.md b/src/VisualStudio/Docs/run.md
similarity index 100%
rename from VisualStudio/Docs/run.md
rename to src/VisualStudio/Docs/run.md
diff --git a/VisualStudio/Docs/update.md b/src/VisualStudio/Docs/update.md
similarity index 100%
rename from VisualStudio/Docs/update.md
rename to src/VisualStudio/Docs/update.md
diff --git a/VisualStudio/Docs/where.md b/src/VisualStudio/Docs/where.md
similarity index 100%
rename from VisualStudio/Docs/where.md
rename to src/VisualStudio/Docs/where.md
diff --git a/VisualStudio/ErrorCodes.cs b/src/VisualStudio/ErrorCodes.cs
similarity index 100%
rename from VisualStudio/ErrorCodes.cs
rename to src/VisualStudio/ErrorCodes.cs
diff --git a/VisualStudio/GitInfo.txt b/src/VisualStudio/GitInfo.txt
similarity index 100%
rename from VisualStudio/GitInfo.txt
rename to src/VisualStudio/GitInfo.txt
diff --git a/VisualStudio/IOptions.cs b/src/VisualStudio/IOptions.cs
similarity index 100%
rename from VisualStudio/IOptions.cs
rename to src/VisualStudio/IOptions.cs
diff --git a/VisualStudio/ITextWriter.cs b/src/VisualStudio/ITextWriter.cs
similarity index 100%
rename from VisualStudio/ITextWriter.cs
rename to src/VisualStudio/ITextWriter.cs
diff --git a/VisualStudio/InstallerService.cs b/src/VisualStudio/InstallerService.cs
similarity index 91%
rename from VisualStudio/InstallerService.cs
rename to src/VisualStudio/InstallerService.cs
index 77033ab..fece206 100644
--- a/VisualStudio/InstallerService.cs
+++ b/src/VisualStudio/InstallerService.cs
@@ -1,8 +1,8 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
@@ -63,13 +63,13 @@ string MapChannel(Channel? channel)
string MapSku(Sku? sku)
=> sku switch
- {
- Sku.Professional => "professional",
- Sku.Enterprise => "enterprise",
- Sku.BuildTools => "buildtools",
- Sku.TestAgent => "testagent",
- _ => "community"
- };
+ {
+ Sku.Professional => "professional",
+ Sku.Enterprise => "enterprise",
+ Sku.BuildTools => "buildtools",
+ Sku.TestAgent => "testagent",
+ _ => "community"
+ };
async Task DownloadAsync(string bootstrapperUrl, TextWriter output)
{
@@ -79,11 +79,11 @@ async Task DownloadAsync(string bootstrapperUrl, TextWriter output)
using var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
-
+
var filePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString(), new Uri(bootstrapperUrl).Segments.Last());
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
using var httpStream = await response.Content.ReadAsStreamAsync();
-
+
using var fileStream = File.Create(filePath);
await httpStream.CopyToAsync(fileStream, 8 * 1024);
diff --git a/VisualStudio/MarkdownOptionsTextWriter.cs b/src/VisualStudio/MarkdownOptionsTextWriter.cs
similarity index 100%
rename from VisualStudio/MarkdownOptionsTextWriter.cs
rename to src/VisualStudio/MarkdownOptionsTextWriter.cs
index c88466b..5cca7a1 100644
--- a/VisualStudio/MarkdownOptionsTextWriter.cs
+++ b/src/VisualStudio/MarkdownOptionsTextWriter.cs
@@ -1,7 +1,7 @@
using System;
+using System.Collections.Immutable;
using System.Linq;
using System.Text;
-using System.Collections.Immutable;
using Mono.Options;
namespace VisualStudio
diff --git a/VisualStudio/NuGet.Config b/src/VisualStudio/NuGet.Config
similarity index 100%
rename from VisualStudio/NuGet.Config
rename to src/VisualStudio/NuGet.Config
diff --git a/VisualStudio/OptionSet.cs b/src/VisualStudio/OptionSet.cs
similarity index 100%
rename from VisualStudio/OptionSet.cs
rename to src/VisualStudio/OptionSet.cs
diff --git a/VisualStudio/Options.cs b/src/VisualStudio/Options.cs
similarity index 100%
rename from VisualStudio/Options.cs
rename to src/VisualStudio/Options.cs
index c6e14da..7b55f23 100644
--- a/VisualStudio/Options.cs
+++ b/src/VisualStudio/Options.cs
@@ -1,9 +1,9 @@
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Collections.Immutable;
using System.IO;
+using System.Linq;
using Mono.Options;
-using System.Collections.Immutable;
namespace VisualStudio
{
diff --git a/VisualStudio/Options/ChannelOption.cs b/src/VisualStudio/Options/ChannelOption.cs
similarity index 100%
rename from VisualStudio/Options/ChannelOption.cs
rename to src/VisualStudio/Options/ChannelOption.cs
diff --git a/VisualStudio/Options/ClientOptions.cs b/src/VisualStudio/Options/ClientOptions.cs
similarity index 100%
rename from VisualStudio/Options/ClientOptions.cs
rename to src/VisualStudio/Options/ClientOptions.cs
diff --git a/VisualStudio/Options/DebugOption.cs b/src/VisualStudio/Options/DebugOption.cs
similarity index 100%
rename from VisualStudio/Options/DebugOption.cs
rename to src/VisualStudio/Options/DebugOption.cs
diff --git a/VisualStudio/Options/ExperimentalOption.cs b/src/VisualStudio/Options/ExperimentalOption.cs
similarity index 100%
rename from VisualStudio/Options/ExperimentalOption.cs
rename to src/VisualStudio/Options/ExperimentalOption.cs
diff --git a/VisualStudio/Options/FilterOption.cs b/src/VisualStudio/Options/FilterOption.cs
similarity index 100%
rename from VisualStudio/Options/FilterOption.cs
rename to src/VisualStudio/Options/FilterOption.cs
diff --git a/VisualStudio/Options/FirstOption.cs b/src/VisualStudio/Options/FirstOption.cs
similarity index 100%
rename from VisualStudio/Options/FirstOption.cs
rename to src/VisualStudio/Options/FirstOption.cs
diff --git a/VisualStudio/Options/GlobalOption.cs b/src/VisualStudio/Options/GlobalOption.cs
similarity index 100%
rename from VisualStudio/Options/GlobalOption.cs
rename to src/VisualStudio/Options/GlobalOption.cs
diff --git a/VisualStudio/Options/HelpOption.cs b/src/VisualStudio/Options/HelpOption.cs
similarity index 100%
rename from VisualStudio/Options/HelpOption.cs
rename to src/VisualStudio/Options/HelpOption.cs
diff --git a/VisualStudio/Options/ListOption.cs b/src/VisualStudio/Options/ListOption.cs
similarity index 100%
rename from VisualStudio/Options/ListOption.cs
rename to src/VisualStudio/Options/ListOption.cs
diff --git a/VisualStudio/Options/NicknameOption.cs b/src/VisualStudio/Options/NicknameOption.cs
similarity index 100%
rename from VisualStudio/Options/NicknameOption.cs
rename to src/VisualStudio/Options/NicknameOption.cs
diff --git a/VisualStudio/Options/SaveOption.cs b/src/VisualStudio/Options/SaveOption.cs
similarity index 100%
rename from VisualStudio/Options/SaveOption.cs
rename to src/VisualStudio/Options/SaveOption.cs
diff --git a/VisualStudio/Options/SelectAllOption.cs b/src/VisualStudio/Options/SelectAllOption.cs
similarity index 100%
rename from VisualStudio/Options/SelectAllOption.cs
rename to src/VisualStudio/Options/SelectAllOption.cs
diff --git a/VisualStudio/Options/SelectPropertyOption.cs b/src/VisualStudio/Options/SelectPropertyOption.cs
similarity index 100%
rename from VisualStudio/Options/SelectPropertyOption.cs
rename to src/VisualStudio/Options/SelectPropertyOption.cs
diff --git a/VisualStudio/Options/SelfOption.cs b/src/VisualStudio/Options/SelfOption.cs
similarity index 100%
rename from VisualStudio/Options/SelfOption.cs
rename to src/VisualStudio/Options/SelfOption.cs
diff --git a/VisualStudio/Options/SkuOption.cs b/src/VisualStudio/Options/SkuOption.cs
similarity index 100%
rename from VisualStudio/Options/SkuOption.cs
rename to src/VisualStudio/Options/SkuOption.cs
diff --git a/VisualStudio/Options/VersionOption.cs b/src/VisualStudio/Options/VersionOption.cs
similarity index 100%
rename from VisualStudio/Options/VersionOption.cs
rename to src/VisualStudio/Options/VersionOption.cs
diff --git a/VisualStudio/Options/VisualStudioOptions.cs b/src/VisualStudio/Options/VisualStudioOptions.cs
similarity index 100%
rename from VisualStudio/Options/VisualStudioOptions.cs
rename to src/VisualStudio/Options/VisualStudioOptions.cs
index def3e72..6fb1ae0 100644
--- a/VisualStudio/Options/VisualStudioOptions.cs
+++ b/src/VisualStudio/Options/VisualStudioOptions.cs
@@ -1,7 +1,7 @@
using System;
-using Mono.Options;
using System.Collections.Generic;
using System.IO;
+using Mono.Options;
namespace VisualStudio
{
diff --git a/VisualStudio/Options/WorkloadOptions.cs b/src/VisualStudio/Options/WorkloadOptions.cs
similarity index 100%
rename from VisualStudio/Options/WorkloadOptions.cs
rename to src/VisualStudio/Options/WorkloadOptions.cs
index 73446c5..20c212f 100644
--- a/VisualStudio/Options/WorkloadOptions.cs
+++ b/src/VisualStudio/Options/WorkloadOptions.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Linq;
using Mono.Options;
namespace VisualStudio
diff --git a/VisualStudio/ProcessExtensions.cs b/src/VisualStudio/ProcessExtensions.cs
similarity index 100%
rename from VisualStudio/ProcessExtensions.cs
rename to src/VisualStudio/ProcessExtensions.cs
index fbf7f02..d4edf5b 100644
--- a/VisualStudio/ProcessExtensions.cs
+++ b/src/VisualStudio/ProcessExtensions.cs
@@ -1,7 +1,7 @@
using System;
-using System.Linq;
using System.Diagnostics;
using System.IO;
+using System.Linq;
using System.Management;
namespace VisualStudio
diff --git a/VisualStudio/Program.cs b/src/VisualStudio/Program.cs
similarity index 92%
rename from VisualStudio/Program.cs
rename to src/VisualStudio/Program.cs
index 814e2e7..0fde6b5 100644
--- a/VisualStudio/Program.cs
+++ b/src/VisualStudio/Program.cs
@@ -69,7 +69,7 @@ public async Task RunAsync()
writer.WriteLine();
}
- writer.WriteLine($"Usage: {ThisAssembly.Metadata.AssemblyName} {commandName} [options] [--save=]");
+ writer.WriteLine($"Usage: {ThisAssembly.Project.AssemblyName} {commandName} [options] [--save=]");
ex.CommandDescriptor.ShowUsage(writer);
ShowExamples(commandName);
@@ -88,14 +88,14 @@ public async Task RunAsync()
protected virtual void ShowVersion()
{
- output.WriteLine($"{ThisAssembly.Metadata.AssemblyName} {ThisAssembly.Metadata.Version}");
+ output.WriteLine($"{ThisAssembly.Project.AssemblyName} {ThisAssembly.Info.InformationalVersion}");
output.WriteLine();
}
protected virtual void ShowUsage()
{
output.WriteLine();
- output.WriteLine($"Usage: {ThisAssembly.Metadata.AssemblyName} [command] [options|-?|-h|--help] [--save=ALIAS[--global]]");
+ output.WriteLine($"Usage: {ThisAssembly.Project.AssemblyName} [command] [options|-?|-h|--help] [--save=ALIAS[--global]]");
output.WriteLine();
output.WriteLine("Supported commands:");
diff --git a/VisualStudio/Properties/.gitignore b/src/VisualStudio/Properties/.gitignore
similarity index 100%
rename from VisualStudio/Properties/.gitignore
rename to src/VisualStudio/Properties/.gitignore
diff --git a/VisualStudio/ShowUsageException.cs b/src/VisualStudio/ShowUsageException.cs
similarity index 100%
rename from VisualStudio/ShowUsageException.cs
rename to src/VisualStudio/ShowUsageException.cs
diff --git a/VisualStudio/Sku.cs b/src/VisualStudio/Sku.cs
similarity index 100%
rename from VisualStudio/Sku.cs
rename to src/VisualStudio/Sku.cs
diff --git a/VisualStudio/StringExtensions.cs b/src/VisualStudio/StringExtensions.cs
similarity index 100%
rename from VisualStudio/StringExtensions.cs
rename to src/VisualStudio/StringExtensions.cs
diff --git a/VisualStudio/ToolSettings.cs b/src/VisualStudio/ToolSettings.cs
similarity index 100%
rename from VisualStudio/ToolSettings.cs
rename to src/VisualStudio/ToolSettings.cs
diff --git a/VisualStudio/VisualStudio.csproj b/src/VisualStudio/VisualStudio.csproj
similarity index 72%
rename from VisualStudio/VisualStudio.csproj
rename to src/VisualStudio/VisualStudio.csproj
index 3c8f3e1..fdbf5c8 100644
--- a/VisualStudio/VisualStudio.csproj
+++ b/src/VisualStudio/VisualStudio.csproj
@@ -17,11 +17,10 @@
-
-
+
@@ -29,7 +28,6 @@
-
@@ -38,11 +36,4 @@
-
-
- <_Parameter1>AssemblyName
- <_Parameter2>$(AssemblyName)
-
-
-
diff --git a/VisualStudio/VisualStudioInstanceExtensions.cs b/src/VisualStudio/VisualStudioInstanceExtensions.cs
similarity index 98%
rename from VisualStudio/VisualStudioInstanceExtensions.cs
rename to src/VisualStudio/VisualStudioInstanceExtensions.cs
index 47a448e..dc2977c 100644
--- a/VisualStudio/VisualStudioInstanceExtensions.cs
+++ b/src/VisualStudio/VisualStudioInstanceExtensions.cs
@@ -25,6 +25,6 @@ public static Channel GetChannel(this VisualStudioInstance vsInstance)
"VisualStudio.16.IntPreview" => Channel.IntPreview,
"VisualStudio.16.int.main" => Channel.Main,
_ => throw new ArgumentException($"Invalid ChannelId {vsInstance.ChannelId}. Must be one of {string.Join(", ", Enum.GetNames(typeof(Channel)).Select(x => x.ToLowerInvariant()))}.", "sku"),
- };
+ };
}
}
diff --git a/VisualStudio/VisualStudioPredicateBuilder.cs b/src/VisualStudio/VisualStudioPredicateBuilder.cs
similarity index 100%
rename from VisualStudio/VisualStudioPredicateBuilder.cs
rename to src/VisualStudio/VisualStudioPredicateBuilder.cs
diff --git a/VisualStudio/WhereException.cs b/src/VisualStudio/WhereException.cs
similarity index 100%
rename from VisualStudio/WhereException.cs
rename to src/VisualStudio/WhereException.cs
diff --git a/VisualStudio/WhereService.cs b/src/VisualStudio/WhereService.cs
similarity index 100%
rename from VisualStudio/WhereService.cs
rename to src/VisualStudio/WhereService.cs
diff --git a/VisualStudio/msbuild.rsp b/src/VisualStudio/msbuild.rsp
similarity index 100%
rename from VisualStudio/msbuild.rsp
rename to src/VisualStudio/msbuild.rsp
diff --git a/VisualStudio/vswhere.cs b/src/VisualStudio/vswhere.cs
similarity index 100%
rename from VisualStudio/vswhere.cs
rename to src/VisualStudio/vswhere.cs
diff --git a/docs/img/icon-128.png b/src/icon.png
similarity index 100%
rename from docs/img/icon-128.png
rename to src/icon.png
diff --git a/src/kzu.snk b/src/kzu.snk
new file mode 100644
index 0000000..8e181ae
Binary files /dev/null and b/src/kzu.snk differ