Git Product home page Git Product logo

extensionpacktools's People

Contributors

2mas avatar astrohart avatar janek91 avatar loop8ack avatar madskristensen avatar thieum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

extensionpacktools's Issues

Importing AStyle 2017 fails

Repro steps:

Install AStyle 2017 in VS 2017

Export to a file using Extension Manager which will produce a file with the following contents:

{
"id": "56f16707-f22d-41b8-8706-d9ef0e89921c",
"name": "My Visual Studio extensions",
"description": "A collection of my Visual Studio extensions",
"version": "1.0",
"extensions": [
{
"name": "AStyle Extension 2017",
"vsixId": "AStyle.6b52ccde-8ae4-4233-bccd-6b9b0ba06a56"
}
]
}

Import in VS 2019 with Extension Manager

A large error box pops up saying "Unable to determine action. You must specify a path to a VSIX to install or the /uninstall command line argument.", then shows many command line options.

It would be great to get this problem fixed, because the AStyle extension hasn't been ported to VS 2019 yet.

WindowStyle.None error dialog on Export Extensions... action. (v0.6.72)

Hello,

I've just updated the extension to the latest version (v0.6.72) through Visual Studio Extension Manager.
It was working without a problem before, but now when I use the following menu option
Extensions > Import and Export Extensions > Export Extensions...
I get and error window with the following content :

Microsoft Visual Studio
Extension Manager 2019

WindowStyle.None is the only valid value for WindowStyle when AllowsTransparency is true.

image

Could this be related to the latest commit : #41 ?

Thanks.

My environment is as follows :
Microsoft Windows 10 Enterprise Version 10.0.18363 Build 18363
Microsoft Visual Studio Professional 2019 Version 16.8.3
VisualStudio.16.Release/16.8.3+30804.86
Microsoft .NET Framework Version 4.8.03752

[Feature] Make this command-line scriptable

Great extension. I am building dev boxes on an automated basis using .bat files and a shared repo of software and configuration.

Would be great to spin up and import all the extensions listed in a .vsext by calling some sort of command-line from a .bat or PS script.

Visual Studio 2022 throws error message when extensions are imported

image

I have only 4 extensions to be imported. See below:

{
  "id": "04523c0a-cf72-4d8f-983d-fe416c2d3708",
  "name": "My Visual Studio extensions",
  "description": "A collection of my Visual Studio extensions",
  "version": "1.0",
  "extensions": [
    {
      "name": "Markdown Editor",
      "vsixId": "9ca64947-e9ca-4543-bfb8-6cce9be19fd6"
    },
    {
      "name": "Middle Click Scroll",
      "vsixId": "MiddleClickScroll.263a3239-a004-40e6-b790-4fd371832c85"
    },
    {
      "name": "PowerShell Tools for Visual Studio",
      "vsixId": "PowerShellTools.VS2017"
    },
    {
      "name": "Time Stamp Margin",
      "vsixId": "TimeStampMargin.255e8b14-4a53-4eb7-89a7-7ab741c1f612"
    }
  ]
}

Why do I get such issue? How do I fix it? Thanks

Details of my Visual Studio can be found here
vs info.txt

Failed to install in VS 2019

When installing, choose to install to VS 2017 and VS 2019 Preview. The install to VS 2017 worked. The one for 2019 failed.

Here's the last line of the install log file. I have the complete file, if that would help.

2018-12-13 4:45:21 PM - Install Error : Microsoft.VisualStudio.Setup.PackageFailureException: Package 'Microsoft.DiagnosticsHub.Collection.Service' failed to install
at Microsoft.VisualStudio.Setup.InstallOperation.Run(CancellationToken token)
at Microsoft.VisualStudio.Setup.Engine.RunOperation(InstallOperation installOperation, CancellationToken token, ExecuteAction action, ITelemetryOperation telemetryOperation)
at Microsoft.VisualStudio.Setup.Engine.RunCoreOperation(InstallOperation coreOperation, ExecuteAction action, ITelemetryOperation telemetryOperation, CancellationToken token)
at Microsoft.VisualStudio.Setup.Engine.Install(Product product, String destination, CancellationToken token)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.PerformSetupEngineInstall(InstallableExtensionImpl extension, Boolean installPerMachine, Boolean isPackComponent, IDictionary2 extensionsInstalledSoFar, List1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, IProgress1 progress, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion, IInstalledExtension& newExtension) at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallInternal(InstallableExtensionImpl extension, InstallFlags installFlags, IDictionary2 extensionsInstalledSoFar, List1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, IProgress1 progress, Version targetedVsVersion)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.BeginInstall(IInstallableExtension installableExtension, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallWorker(IInstallableExtension extension, InstallFlags installFlags, AsyncOperation asyncOp)

Question: May I use ReSharper/CodeMaid on this code?

@madskristensen Hi Mads,

This is more of a question just to you. I was not sure how else to communicate my question besides posting an issue, since you have no email address listed.

Anyhoo...

I am going and making some updates on my own fork of this repo, and on a separate, 'astrohart' branch. I am loath to "Suspend" my ReSharper since VS's code tools are quite anemic and I am used to ReSharper. I have ReSharper set to automatically format the code when I do a save.

I am concerned only that, when I submit a PR it may be challenging for you to see the actual change made due to the several add/remove lines that are simply coming from a code reformat.

May I proceed and use my code-formatting tools on your files, or would you rather I not?

-Brian

On trying to use Tools | Import/Export Extensions | Export Extensions... Get Error

Just installed from Tools | Extensions and Updates

Having allowed the VSIX installer to run and restarted tried to export my extensions.

ActivityLog.xml contains:

SetSite failed for package [VsPackage]Source: 'ExtensionManager' Description: Could not load file or assembly 'Microsoft.VisualStudio.Threading, Version=15.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Threading, Version=15.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.VisualStudio.Threading, Version=15.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at ExtensionManager.VsPackage.InitializeAsync(CancellationToken cancellationToken, IProgress`1 progress) at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass17_0.<b__1>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e) at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck) at Microsoft.VisualStudio.Services.VsTask.GetResult() WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

I'm running 15.7.4 on 64bit Windows 10 (Spring 2018 update)

Using Process Explorer I can see that Microsoft.VisualStudio.Threading is loaded from C:\VS2017\Enterprise\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Threading.dll.

Version 0.6.72 not working.

Version 0.6.72 not working:
When running Export Extensions...:
Warning dialog:
Extension Manager 2019
WindowStyIe.None is the only valid value for WindowStyIe
when AllowsTransparency is true.

When running Import Extensions...:
Error dialog:
WindowStyIe.None is the only valid value for WindowStyIe
when AllowsTransparency is true.

Windows 10.0.19042.685.

Import extensions shows save instead of open dialog

The TryGetFilePath helper method called from ImportCommand shows the save dialog - it does not check for an existing file and gives an overwrite prompt if you do select one.
The import command then works as expected with the file (if it exists).
I think this either needs 2 methods, or a flag to say Open or Save?

Need to refactor according to best practices

Mads, as per our discussion several months ago, and I forget which issue it is in, but the need was assessed by me, and you seemed to be on board, for the code to be overhauled and refactored in order to be more:

  • SOLID
  • Fluent
  • Documented
  • Extensible
  • Maintainable

To this end, this issue is highlighting the need for this to be carried out on the codebase.

The impetus is that this extension in particular is one of your more useful/popular ones, and, as a contributor, I am running up against some brittleness in the existing codebase.

I am not denigrating anyone's programming abilities; I am simply pointing out the need to reduce tech debt for further contributions by doing the improvements noted above, as you and I spoke about.

I have ReSharper and CodeMaid and I also have a huge bank of snippets and file templates to make this process go fast. The other great thing about this is that you can avoid "reference collisions" when you're trying to use pieces from disparate parts of the software system.

Error when trying to Export extensions in vs 2022 preview

Describe the bug
When I try to Export or Import extensions in Visual Studio Community 2022 (64-bit) - Preview, Version 17.6.0 Preview 2.0 , Extension Manager 2022 Version: 1.1.82, then I get this error message:
"
Extension Manager 2022
Could not load type
'Microsoft.VisualStudio.ExtensionManager.GalleryOnlineExtensio n' from assembly 'Microsoft.VisualStudio.ExtensionEngine,
Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
"

To Reproduce
Steps to reproduce the behavior:

  1. Open VS 2022 Preview Version 17.6.0 Preview 2.0
  2. Select Extensions --> Import and Export Extensions --> Export Extensions or Import Extensions
  3. Error message pops up.

Expected behavior
Get window where to select extensions to export/import

Screenshots
image

--
Eigil

Support for VS2022

Like some of your other extensions - it would be great if this supported VS2022 such that we could load our extension sets from VS2019 more easily.
I understand that this stores the vsixId and that is not always the same from 2019 to 2022 due to package splitting...
Perhaps the store could be updated to automagically forward requests on to the new ID, or we could have a file on github somewhere with a virtual bundles list until that happens...

What is the `Supported = false` doing in `ExportSolutionCommand`?

@madskristensen Hi Mads,

I am a little new to VSIX programming, I will admit, but I think I have most of the pieces down.

image

Figure 1. Supported = false being set in the ExportSolutionCommand constructor.

See the Figure 1 above, where I have your code on master displayed, with the line circled as indicated.

Did you mean to do that? I assume that the ExportSolutionCommand.Execute method carries out the process that occurs when I right-click the solution and choose Manage Solution Extensions. Right?

I see where the command is in the .vsct file. And it's displayed on the VS menu and it works (when I click on it, the dialog box for selecting extensions is called up).

My understanding of the MenuCommand.Supported property is that it is supposed to be set to false by an extension author if that command is not supported.

I've really had a hard time coming up with Microsoft docs on this property besides "this is the MenuCommand.Supported property, it's a boolean, and here's how you set it to true in your code." The docs don't say what happens if the property is set to false such as in your code.

As in, is the menu command supposed to be grayed out? Is it supposed to be hidden?

Whatever is intended to happen by that property being set to false, the Manage Solution Extensions... command is still shown and selectable!

Thanks in advance for any help figuring this out.

Import/Export dialog box should be bigger, and have a title and subtitle telling the user what the purpose of the window is

Per Windows UI/UX guidelines, the Import and Export dialog box does not have a title bar giving context as to which action is currently active. Now, in Win10 UI/UX, a title bar per se is purely optional, and that is fine.

There should, in principle, be a header text or title text, however, that makes it clear what the window does, since it has one look for Import and one look for Export. Currently, I as the user has to remember whether I am currently working on Importing or Exporting based on having to remember the menu command I picked, and this is not recommended in modern desktop UI/UX.

I propose to add a title/header to the dialog box that contains a main instruction) text, by choosing from among the XAML static resources provided by Microsoft.

I am not recommending using blue text per Win 7 guidelines, instead using black Segoe UI text per Win 10 guidelines.

I also recommend increasing the size of the dialog window slightly, in order to make the list of check boxes easier to read (in the case that a certain extension's name happens to be really long, for example).

I will fork this repo again and submit a PR that shows an example of what I mean. Mads, I will then leave it up to you to decide whether it's a good look and feel.

Import and Export dialog boxes really need a "Select All/Deselect All" check box.

Hi,

I have a very numerous amount of extensions to import/export, and it's tiring simply clicking all the check boxes in the list, one at a time.

It would be nice to have a single check box at the top of the list, called Select/deselect all and then clicking it to place a check mark in it makes all the check boxes in the list get checked, and clicking it again to clear its check mark clears the check marks from all items in the list. I'll fork this repo and then I will submit a Pull request, in order to address this issue.

In order to avoid code collisions, I'll submit my pull request to a astrohart branch.

Importing solution extensions does not work

I have created a vsext file using the "Managed extensions" context menu item on my solution.

{
  "id": "ef84d31c-c4cc-4dc4-9060-9be14892613a",
  "name": "FOO",
  "description": "BAR",
  "version": "1.0",
  "extensions": [
    {
      "name": "Command Task Runner",
      "vsixId": "fc1aafb2-321e-41bd-ac37-03b09ea8ef31"
    },
    {
      "name": "Markdown Editor",
      "vsixId": "9ca64947-e9ca-4543-bfb8-6cce9be19fd6"
    }
  ]
}

When I open the solution I get prompted to install the extensions. After I click Install... nothing happens. Importing manually from the Extensions > Import and Export extensions menu works as expected.

Using Visual Studio Enterprise 16.3.0.

Solve extension packs - either visually or logically

When installing extension packs, like "developer essentials" or "power tools", etc, then you end up having many extensions installed but you don't see the pack information anymore, only unrelated extensions.

Would be great to either see those packs visually grouped in the list of extensions to export, like an pack as item and the contained extensions as indented subitems, or list only the pack if all extensions contained in it are installed.

I am aware of the difficulty to recognize and manage the packs, but hey, I am just asking for the feature!

PS: thanks for this very useful extension (and all the other ones you created too)

Enable/Disable State?

I have several extensions that are normally disabled -- except for special situations. I cannot see anything in the import/export features of this nifty extension that show (or restore on import) the enable/disable state for each extension.

For me, I find export/import most useful when Microsoft asks me to "Repair" Visual Studio as part of testing a bug I reported. Since "Repair" means "lose all local settings, extensions and customizations" I need a quick way to get all of the extensions I depend on back in play quickly as I already waste enough time debugging and working around Microsoft's problems.

Edit: I landed here by clicking "More Info" for Extension Manager 2019 and I'm stuck with VS2019 until some critical bugs are fixed in VS2022, It looks like EM2019 is not being updated, so I guess this is mostly useless for me. But the idea may help others, if it is possible. In fact, an option to download all of the appropriate .vsix files into a folder and also create a .CMD (or powershell, if you must) script to automatically install all of them would be AMAZING -- especially since, as it stands, we need to remember which extension to manually install so that we may import what we previously exported.

Visual Studio 2019 - error

Hi there,

Using Visual Studio 2019 RC,
Extension_Manager_2019_v0.6.47 AND CI build Extension_Manager_2019_v0.6.52

I'm getting the following error:

  <entry>
    <record>2493</record>
    <time>2019/03/03 03:26:28.179</time>
    <type>Error</type>
    <source>Editor or Editor Extension</source>
    <description>System.IO.FileNotFoundException: Could not load file or assembly &apos;Microsoft.VisualStudio.ExtensionManager, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&apos; or one of its dependencies. The system cannot find the file specified.&#x000D;&#x000A;File name: &apos;Microsoft.VisualStudio.ExtensionManager, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&apos;&#x000D;&#x000A;   at FixMixedTabs.MarginFactory.CreateMargin(IWpfTextViewHost textViewHost, IWpfTextViewMargin containerMargin)&#x000D;&#x000A;   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.&lt;AddMargins&gt;b__27_1(IWpfTextViewMarginProvider mp)&#x000D;&#x000A;   at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.InstantiateExtension[TExtension,TMetadata,TExtensionInstance](Object errorSource, Lazy`2 provider, Func`2 getter)&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)&#x000D;&#x000A;&#x000D;&#x000A;WRN: Assembly binding logging is turned OFF.&#x000D;&#x000A;To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.&#x000D;&#x000A;Note: There is some performance penalty associated with assembly bind failure logging.&#x000D;&#x000A;To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].&#x000D;&#x000A;</description>
  </entry>

UPDATE
Seems like it's the same bug as reported earlier
#7

I missed it because the bug was closed. Perhaps this can be included in the READMe or something to indicate known issues?

"Import Extensions" does not work on VS2019.RC

I have exported my extensions from VS2019.Preview and tried to import the file to VS2019.RC1.SVC1. I can see "Downloading Extensions" and "Extensions downloaded. Starting VSIX Installer..." in status bar, but then noting happens. No progress indicator, no VSIX Installer, nothing. After some minutes, status bar shows "Ready.". Restart VS2019, but no new extensions appear.

VS2019 Preview 3: Fails to load assembly 'Microsoft.VisualStudio.ExtensionManager'

Having updated from VS2019 Preview 2.2 to Preview 3.0 I'm getting extension load errors.

Looking in my ActivityLog.xml I see

SetSite failed for package [VsPackage]Source: 'ExtensionManager' Description: Could not load file or assembly 'Microsoft.VisualStudio.ExtensionManager, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.ExtensionManager, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.VisualStudio.ExtensionManager, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at ExtensionManager.VsPackage.d__0.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at ExtensionManager.VsPackage.InitializeAsync(CancellationToken cancellationToken, IProgress`1 progress) at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass19_0.<b__1>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Threading.JoinableTask.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e) at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck) at Microsoft.VisualStudio.Services.VsTask.GetResult() WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

(There are no other errors or warnings before this one.)

Disabling Extension Manager reduces it to one error popup, and a single error in ActivityLog.xml

Misspelling in `README.md` and other misc typos

In the example use case section of the README.md file at the Solution level, there are several typos and misspellings; one of them being the following:
image
This is my bad, but there may be others. Have to update the README.md to fix it.

Include with Visual Studio 2019

This extension should really come preinstalled with Visual Studio 2019 (and 2017 if possible). It makes setting up a new environment so much easier. I also like the solution extensions feature. Any chance this will happen?

Exporting Extensions List Issue

Thanks @madskristensen for yet another excellent extension.
When exporting the list of all installed extensions, they are not selected by default after updating to v0.5.28 on Visual Studio 2017, In order to export everything, I have to manually check each extension which is tedious if I have a large number of extensions. Can you please review this and revert the functionality back to its original state?

Browsing through the code and history, I believe the following line in Extension.cs in this commit that's causing the issue
https://github.com/madskristensen/ExtensionPackTools/blob/0d3d910c550534886f99d10621e39f44cff557c8/src/Models/Extension.cs#L18

It used to be this prior to the change:

public bool Selected { get; set; } = true;

[Feature] Export every time Visual Studio Starts

It would be nice, if it could export to a specific file, everytime the programs start.

For instance, export directly to the GoogleDrive/Dropbox/OneDrive folder, everytime the program starts.

That way, there is allways a solid backup, that is up to date.

FEATURE - Run VSIXInstaller from the command line in silent mode with a custom progress dialog

I've learned, while making setup scripts for my own machine, how to call VSIXInstaller.exe from the command line, i.e., from a .bat file, to make it silently and automatically install extensions.

I propose making this the default means by which this tool installs downloaded and selected extensions while displaying a custom progress dialog. This would reduce the need for user interaction during the process.

BUG - Import/Export dialog box lets you click OK when no extension are selected

BUG: When zero items are selected in the list of check boxes of the ImportWindow, the OK button should be grayed out. The operation "clicking the OK button" is meaningless in this context and could lead to errors.

The acceptance criteria are as follows:
Given
I have selected either the Import Extensions or Export Extensions menu command and the ImportWindow is displayed
When
Zero entries in the check-box list of extensions are selected
Then
Clicking the OK button doesn't mean anything, so the OK button should be grayed out
Unless
More than zero entries in the Extensions list box are selected, in which case, the OK button should be enabled.

image

Code of the Extension.Equals method can be simplified

In the file Extension.cs that lives in the Models folder of the ExtensionManager.Shared project, the Extension.Equals method's code can be simplified. Listing 1 shows the code as it is now. Listing 2 shows the proposed, simplified version.

public override bool Equals(object obj)
{
    return !(obj is Extension other) ? false : ID == other.ID;
}

Listing 1. Current code for the Extension.Equals method.

public override bool Equals(object obj)
{
    return obj is Extension other && ID == other.ID;
}

Listing 2. Simplified version.

BUG - Select/Deselect All Check Box Does Nothing

image
Figure 1. The Select/Deselect All check box in the Import Extensions dialog box.

The check box indicated does not work. If you click to place a check mark in it, and then click it again to remove the check mark, the expected behavior is that all the extensions in the list should be deselected. However, when I click it, nothing happens at all.

Perhaps an event handler became unhooked or something.

Import dialog Select/deselect all check box also deselects greyed-out checkboxes

To reproduce this issue, first, obtain v0.6.66 or higher of this extension.

Then, click the Extensions menu in VS, point to Import and Export Extensions, and then click Import Extensions, as shown:

image

Next, browse to select a *.vsext file, and then click Open:

image

The Import Extension dialog box appears.

image

As shown, there are some grayed-out extensions (as they are already installed). Clicking the Select/deselect all check box changes the state of these grayed-out checkboxes as well as the enabled (non-grayed-out) checkboxes.

In my mind, this is inconsistent UI/UX. The behavior should be to always leave the grayed-out check boxes unchecked due to their indicating extensions that are not suitable for import since they're already installed.

To reproduce the issue, click the Select/deselect all check box several times (e.g., 2-3 times) to see the behavior. In Win Desktop UI/UX, grayed-out checkboxes' states should not change at all. And, since, in this context, grayed-out checkboxes denote extensions that will NOT be imported, they should remain unchecked throughout the lifetime of the dialog box.

Solution extensions file should define extensions per VS major version

When migrating from VS2019 to VS2022, it is hard to keep a common .vsext solution file with extension recommendations that will work for both VS versions in the transition period.

The .vsext JSON schema should be extended to have recommendations per VS major version, since (most) extensions target one major version only.

FEATURE - "Chunk" Download/Install of Extensions

Am not sure if it's just me being weird, but I have 56 extensions in my Visual Studio and I use about 99% of them routinely, so I like to use this tool to drag them around to the various computers on which I use Visual Studio for development.

Thing is, however, when I do a Import Extensions and select everything in the list, the VSIX Installer takes a long time to initialize itself, and I suspect the wait time grows with the number of extensions selected.

Therefore, I suggest that the extensions be "chunked," as in, download the whole gamut of what is selected, but if it is above, say, 10 extensions, then break the set of extensions to be installed into groups, and install them in smaller batches, repeatedly running the VSIX Installer.

BTW - I am confused. The extension does not quit Visual Studio after the VSIX Installer is launched. Is it not correct that the VSIX Installer needs all instances of Visual Studio to be closed to do its work of installing extensions?

OK button in dialog box should say "Import" when importing, "Export" when exporting, and should have a keyboard mnemonic

To reproduce the issue:

  1. Obtain v0.6.66 or higher of this extension.
  2. Click the Extensions menu in VS2019, point to Import and Export Extensions, and then click Export Extensions.
  3. The dialog box's "OK" button in the resulting dialog box is called Select. I think Export would be better text for the button.
  4. Likewise, if the user clicks the Extensions menu in VS2019, points to Import and Export Extensions, and then clicks Import Extensions, then the "OK" button is called Install... also misleading. I think Import (with no dots -- an "OK" button is a command not an action that requires more work as dots imply) is a better name for the button.

Also, in the code, I recommend that the strings &Import and &Export, respectively, be utilized -- this way, if someone is physically handicapped to the point where they cannot utilize the mouse to click items, and they have to tab with the keyboard, they can press the ALT key. This, combined with the &Import and/or &Export button text, makes the word Import have an underlined first letter, and likewise for Export on the button. This is known as a keyboard mnemonic character.

NOTE: The Cancel button is never in need of such a mnemonic character, given that pressing the ESC key is the universal trigger for the Cancel button action.

`Extension.FromExtension` overload that takes an `IExtension` should be removed

In the Extension.cs file that lives in the Models folder of the ExtensionManager.Shared project, the overload
of the Extension.FromExtension method that takes an IExtension as its sole parameter should be removed.

It's dead code and not referenced anywhere. It's not necessary to worry about whether this code may be used in the future because it will be preserved through Git history.

Specifically, I mean remove the following method:

public static Extension FromIExtension(IExtension entry)
{
    return new Extension
	{
		ID = entry.Header.Identifier,
		Name = entry.Header.Name,
		MoreInfoUrl = entry.Header.MoreInfoUrl?.ToString()
	};
}

Personally, I am always an advocate of removing all dead code.

Command Line Interface

Hello,
is it possible to export extensions list using a command line? I would like to automate the backup of installed extensions.

Thank you and best regards,
Filippo.

Need to update README.md with new `.vsext` file example contents

In the main README.md file for this project, a sample .vsext file is shown. Now that the moreInfoUrl and downloadUrl JSON properties are being written for each extension with the new version, when the new version is released, I suggest also updating the README.md for the repository to reflect the changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.