Skip to content

Commit d1c0a4d

Browse files
committed
ExtensionManager.VisualStudio.Adapter Readme
1 parent 7030d76 commit d1c0a4d

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# ExtensionManager.VisualStudio.Adapter
2+
3+
The primary goal of these projects is to ensure seamless compatibility with various versions and updates of Visual Studio.
4+
This aims to reduce the need for frequent updates and maintenance.
5+
6+
## Problems & Solutions
7+
8+
Different versions of Visual Studio, including full and preview versions, come with different internal DLLs.
9+
Since these DLLs are part of active development, they can vary between versions, posing a challenge not only for supporting the latest updates but also for older versions.
10+
11+
## Solution
12+
13+
The solution relies on generating IL code to create the necessary code according to the differences in various Visual Studio versions.
14+
This way, the required DLLs only need to be searched for and loaded when the extension is loaded,
15+
eliminating the need for manual updates and making the extension compatible with older updates as well.
16+
17+
It is crucial that the abstraction is as simple as possible to minimize the complexity of the IL code to be generated.
18+
19+
## Projects
20+
21+
| Project | Description |
22+
|---|---|
23+
| ExtensionManager.VisualStudio.Adapter.Abstractions | Contains the abstractions for IL generation. |
24+
| ExtensionManager.VisualStudio.Adapter.Generator | Contains classes for generating the specific code. |

ExtensionManager.sln

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ EndProject
5959
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtensionManager.VisualStudio.Adapter.Generator", "src\ExtensionManager.VisualStudio.Adapter.Generator\ExtensionManager.VisualStudio.Adapter.Generator.csproj", "{9BACA2E2-713C-42FC-9AA0-A128D48E2D12}"
6060
EndProject
6161
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Adapter", "Adapter", "{F180C738-5477-4CE7-9D4A-247BB4E5C1DF}"
62+
ProjectSection(SolutionItems) = preProject
63+
ExtensionManager.VisualStudio.Adapter.md = ExtensionManager.VisualStudio.Adapter.md
64+
EndProjectSection
6265
EndProject
6366
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtensionManager.VisualStudio.VS2019", "src\ExtensionManager.VisualStudio.VS2019\ExtensionManager.VisualStudio.VS2019.csproj", "{37A5DBB8-C876-4D60-A972-4EC91A857C11}"
6467
EndProject

0 commit comments

Comments
 (0)