Repository navigation
Bundled Modules should be installed in \Name\Version\ folders in PSCore #2350
Description
Activity
- addedWG-Interactive-PSReadLinePSReadline related issuesPSReadline related issuesWG-Cmdletsgeneral cmdlet issuesgeneral cmdlet issues
on Sep 29, 2016 - removedWG-Interactive-PSReadLinePSReadline related issuesPSReadline related issues
on Nov 4, 2016 This appears to affect all modules
- addedWG-Maintainers-Buildspecific to affecting the buildspecific to affecting the buildand removedWG-Cmdletsgeneral cmdlet issuesgeneral cmdlet issues
on Nov 4, 2016 This seems to still affect the modules below that are built along with PowerShell from what I can tell in the 6.0.0.13 release
CimCmdlets
Microsoft.PowerShell.Archive
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Host
Microsoft.PowerShell.LocalAccounts
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
Pester
PSDesiredStateConfiguration
PSDiagnostics
PSReadLine- removed this from the This milestone has been deleted milestone
on May 25, 2017 Still relevant, but not critical for 6.0.0.
kilasuit commented
on May 27, 2017 CollaboratorAuthorMore actionsJoey Aiello (@joeyaiello) - although not critical it is IMO detrimental for being able to ship any of these in packaged versions as separate packages
I believe it requires an enhancement in Import-Module to load last version, required version or explicit version too, doesn't it?
Ilya (@iSazonov)
import-modulealready understands module versioning, this should only require putting the module files under a version folderSorry for the inaccuracy. I mean, can the cmdlet do this for directory structure like "/PowerShell/<PowerShell version>/Modules/<Module name>/<Module version>/" ?
Should be $PSHome/Modules/<ModuleName>/<ModuleVersion>
Reacted by Ryan YatesIlya (@iSazonov): yes, we look in any folder in PSModulePath for module folders, and in those module folders we look for version folders. In the absence of a version folder, we load the module from there.
For context, this is in the PSModulePath in 6.0.0-beta.1:
$env:psmodulepath C:\Users\jaiello.REDMOND\Documents\PowerShell\Modules;C:\Program Files\PowerShell\Modules;c:\program files\powershell\6.0.0-beta.1\ModulesRyan Yates (@kilasuit) could you elaborate? I don't fully understand the scenario you're describing.
Reacted by IlyaJoey Aiello (@joeyaiello) - It just shows a level of inconsistency & it could easily cause confusion to those not that overly familiar. It also allows in future for the potential for all modules bundled with the engine to be unbundled as per #1979
Also as versioned modules support was brought in v5 it really doesn't make sense for there to be this inconsistency in a v6 product especially as you are moving to a more decoupled nature the further that the development goes on and on.
kilasuit commented
on Jun 14, 2018 CollaboratorAuthorMore actionsThis is still relevant in 6.1.0-preview.3 as seen below for a number of the packaged modules like
CimCmdlets, Microsoft.PowerShell.Diagnostics, Microsoft.PowerShell.Host, Microsoft.PowerShell.Management, Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility, Microsoft.WSMan.Management, PSDesiredStateConfiguration, PSDiagnosticsThis is how it looks in the directory
C:\Program Files\PowerShell\6-preview\Modules\CimCmdlets C:\Program Files\PowerShell\6-preview\Modules\CimCmdlets\CimCmdlets.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive\1.1.0.0 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive\1.1.0.0\en-US C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive\1.1.0.0\Microsoft.PowerShell.Archive.cat C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive\1.1.0.0\Microsoft.PowerShell.Archive.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Archive\1.1.0.0\Microsoft.PowerShell.Archive.psm1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Diagnostics C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Diagnostics\Diagnostics.format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Diagnostics\Event.format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Diagnostics\GetEvent.types.ps1xml C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Diagnostics\Microsoft.PowerShell.Diagnostics.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Host C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Host\Microsoft.PowerShell.Host.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Management C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Management\Microsoft.PowerShell.Management.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Security C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Security\Microsoft.PowerShell.Security.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Utility C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Utility\Microsoft.PowerShell.Utility.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.PowerShell.Utility\Microsoft.PowerShell.Utility.psm1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.WSMan.Management C:\Program Files\PowerShell\6-preview\Modules\Microsoft.WSMan.Management\Microsoft.WSMan.Management.psd1 C:\Program Files\PowerShell\6-preview\Modules\Microsoft.WSMan.Management\WSMan.format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\PackageManagement C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0 C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\coreclr C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\DSCResources C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\fullclr C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageManagement.cat C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageManagement.format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageManagement.psd1 C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageManagement.psm1 C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageManagement.Resources.psd1 C:\Program Files\PowerShell\6-preview\Modules\PackageManagement\1.1.7.0\PackageProviderFunctions.psm1 C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0 C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\en-US C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\PowerShellGet.cat C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\PowerShellGet.psd1 C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\PSGet.Format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\PSGet.Resource.psd1 C:\Program Files\PowerShell\6-preview\Modules\PowerShellGet\1.6.0\PSModule.psm1 C:\Program Files\PowerShell\6-preview\Modules\PSDesiredStateConfiguration C:\Program Files\PowerShell\6-preview\Modules\PSDesiredStateConfiguration\PSDesiredStateConfiguration.psm1 C:\Program Files\PowerShell\6-preview\Modules\PSDiagnostics C:\Program Files\PowerShell\6-preview\Modules\PSDiagnostics\PSDiagnostics.psd1 C:\Program Files\PowerShell\6-preview\Modules\PSDiagnostics\PSDiagnostics.psm1 C:\Program Files\PowerShell\6-preview\Modules\PSReadLine C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0 C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\Changes.txt C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\en-US C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\License.txt C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\Microsoft.PowerShell.PSReadLine2.dll C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\PSReadLine.format.ps1xml C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\PSReadLine.psd1 C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\PSReadLine.psm1 C:\Program Files\PowerShell\6-preview\Modules\PSReadLine\2.0.0\SamplePSReadLineProfile.ps1each of these modules should be in their version specific folder for neatness
Until the module is decoupled from PSCore itself, there's no value to have it in a versioned folder since it's not updatable outside of updating PSCore itself. The ones that have versioned folders are those obtained from PSGallery.
Currently we removed all external modules from the repo and as Steve Lee (@SteveL-MSFT) said all standard modules is installed without version folder to support servicing by WU.
So I close the Issue.- addedResolution-AnsweredThe question is answered.The question is answered.
on Sep 5, 2018 This should not be closed. Making WU able to update modules might be implemented, but it partially broke import.
Steps to reproduce
Install v6.0.0.10 for Windows10
Open
C:\Program Files\PowerShell\6.0.0.10\Modulesand check the folder for the bundled module like PSReadLineExpected behavior
There should be a folder relating to the version of the Module installed and the module files should be in that location i.e.
C:\Program Files\PowerShell\6.0.0.10\Modules\PSReadLine\1.2\Actual behavior
Module files are stored in the module name folder with no version folder i.e.
C:\Program Files\PowerShell\6.0.0.10\Modules\PSReadLine\Environment data