Skip to content

Identify difference of library sets between Nano and PowerShell Core from repo #1031

Description

This issue tracks the first step of building Nano sources with .NET CLI out of GitHub. We are identifying what libraries PowerShell Core from repo does not yet build that Nano does build.

This will be a list of all PowerShell assemblies, checked indicates it is built for PowerShell repo:

  • Microsoft.PowerShell.Commands.Management
  • Microsoft.PowerShell.Commands.Utility
  • Microsoft.PowerShell.ConsoleHost
  • Microsoft.PowerShell.CoreCLR.AssemblyLoadContext
  • Microsoft.PowerShell.CoreCLR.Eventing
  • Microsoft.PowerShell.PSReadLine
  • Microsoft.PowerShell.Security
  • System.Management.Automation

Activity

  1. chunqingchen commented on May 25, 2016

    @chunqingchen
    Contributor

    List of binaries/assemblies for Nano PowerShell:

    • Microsoft.Management.Infrastructure.CimCmdlets.dll (need nuget package)
    • Microsoft.Management.Infrastructure.Native.dll (need nuget package)
    • Microsoft.Management.Infrastructure.Native.Unmanaged.dll (need nuget package)
    • Microsoft.Management.Infrastructure.dll (need nuget package)
    • Microsoft.WSMan.Management.dll (need nuget package)
    • Microsoft.WSMan.Runtime.dll (need nuget package)
    • Microsoft.PowerShell.Commands.Diagnostics.dll Chunqing Chen (@chunqingchen)
    • Microsoft.PowerShell.Commands.Management.dll
    • Microsoft.PowerShell.Commands.Utility.dll
    • Microsoft.PowerShell.ConsoleHost.dll
    • Microsoft.PowerShell.CoreCLR.Eventing.dll
    • Microsoft.PowerShell.Security.dll
    • System.Management.Automation.dll
    • Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.dll
    • Microsoft.PowerShell.LocalAccounts.dll Dongbo Wang (@daxian-dbw)
    • Nano powershell.exe (? want the native Nano powershell.exe ?) (not needed)
    • PSEvents.dll Dongbo Wang (@daxian-dbw)
    • pwrshsip.dll
    • pwrshplugin.dll (WinRM entry point) Add pwrshplugin.dll build for Nano (CoreCLR), resurect build for Full #1155

    List of module manifest/script module files for Nano PowerShell:

    • Microsoft.PowerShell.Archive (? it's now released as a different repository ?)
      • Microsoft.PowerShell.Archive.psd1
      • Microsoft.PowerShell.Archive.psm1
      • ArchiveResources.psd1
    • Microsoft.PowerShell.Diagnostics
      • Microsoft.PowerShell.Diagnostics.psd1
    • Microsoft.PowerShell.Host
      • Microsoft.PowerShell.Host.psd1
    • Microsoft.PowerShell.LocalAccounts
      • LocalAccounts.format.ps1xml
      • Microsoft.PowerShell.LocalAccounts.psd1
    • Microsoft.PowerShell.Management
      • Microsoft.PowerShell.Management.psd1
    • Microsoft.PowerShell.Security
      • Microsoft.PowerShell.Security.psd1
    • Microsoft.PowerShell.Utility
      • Microsoft.PowerShell.Utility.psd1
      • Microsoft.PowerShell.Utility.psm1
    • Microsoft.WSMan.Management
      • Microsoft.WSMan.Management.psd1
    • CimCmdlets
      • CimCmdlets.psd1
  2. andyleejordan commented on May 25, 2016

    @andyleejordan
    MemberAuthor

    I believe Dan Travison (@dantraMSFT) is working on getting CimCmdlets going. The MMI/N/U are all packaged and under a different scope. Same goes for WSMan. Paul Allen (@paulcallen) do you know the plan for WSMan stuff?

    Looks like Microsoft.PowerShell.Commands.Diagnostics is all we're really missing from the PowerShell namespace. I'm not sure about localaccounts.dll, doesn't appear to be in the PowerShell namespace, but this is related to #952. Same goes for PSEvents.dll (is this separate from Eventing?) and pwrshsip.dll.

  3. andyleejordan commented on May 25, 2016

    @andyleejordan
    MemberAuthor

    sergei (@vors) could use your input here. I'll get an issue filed for Diagnostics. Should be pretty easy to map over and build for Windows (not sure about porting to Linux).

  4. andyleejordan commented on May 26, 2016

    @andyleejordan
    MemberAuthor

    sergei (@vors) needs an issue tracking WSMan module.

  5. raghushantha commented on May 26, 2016

    @raghushantha
    Member

    WSMan PS Provider is in admin\wmi\wmx\cmdlets\Management

  6. andyleejordan commented on May 26, 2016

    @andyleejordan
    MemberAuthor

    Andy Jordan (@andschwa) needs an issue tracking pulling in Microsoft.PowerShell.LocalAccounts into PowerShell Core.

    Done in #952 (thanks Mike Richmond (@mirichmo)).

  7. andyleejordan commented on May 26, 2016

    @andyleejordan
    MemberAuthor

    Dongbo Wang (@daxian-dbw) needs to investigate PSEvents.dll

  8. vors commented on May 26, 2016

    @vors
    Collaborator

    Microsoft.WSMan.Management

    Currently it's a our home-made nuget package for Full PS build.

    Me and Steve Lee (@SteveL-MSFT) think it falls in the same bucket as MMI (from open-sourcing the code prospective)

  9. joeyaiello commented on May 26, 2016

    @joeyaiello
    Contributor

    Joey Aiello (@joeyaiello) Create an issue for potentially porting pwrshsip.dll.

  10. daxian-dbw commented on May 26, 2016

    @daxian-dbw
    Member

    PSEvents.dll is resource dll, which is generated by building the manifest file admin\monad\nttargets\assemblies\logging\ETW\Manifests\Microsoft-Windows-PowerShell-Instrumentation.man. "EVENTS_MANIFEST" and "COUNTERS_MANIFEST" are used in the sources file to generate resource files and resource header files from the manifest. Then the resource files and resource header files are builit into PSEvents.dll.
    Under the hook, it seems Message Compiler (MC.exe) is used for 'EVENTS_MANIFEST'

    https://msdn.microsoft.com/en-us/library/windows/desktop/aa385638(v=vs.85).aspx

    and ctrpp.exe is used for 'COUNTERS_MANIFEST'

    https://msdn.microsoft.com/en-us/library/windows/desktop/aa372128(v=vs.85).aspx

  11. daxian-dbw commented on May 26, 2016

    @daxian-dbw
    Member

    PSEvents.dll is a tricky one ...

    Chunqing Chen (@chunqingchen) could you please update the assembly list based on my following comments?

    1. Please remove the ".ni" from the assembly names to avoid confusion.
    2. Remove 'System.Reflection.Metadata.dll', because it's CoreCLR binary.
    3. Rename "localaccounts.dll" to be "Microsoft.PowerShell.LocalAccounts.dll"

    BTW, "powershell.exe" is checked in the list, what does it mean?

  12. chunqingchen commented on Jun 3, 2016

    @chunqingchen
    Contributor

    sergei (@vors) We are start to build assemblies under wmi foder. to begin we need
    ..\admin\wmi\Events\GetEvent
    to build microsoft.powershell.commands.diagnostics.dll

  13. andyleejordan commented on Jun 7, 2016

    @andyleejordan
    MemberAuthor

    Dongbo Wang (@daxian-dbw) So if it's just a resource library, that shouldn't be too bad; we just need to add it to the resgen script in the build module and ensure that the appropriate library references the generated C# bindings plus the resources correctly.

    As far as native images go, we're simply waiting on tooling support.

    I checked System.Reflection.Metadata.dll since of course we have it 😄

    As far as powershell.exe being checked: I checked it because as a dependency, it is satisfied. We do not use PowerShell's native host, but we have a native host provided by .NET and so have a powershell.exe.

  14. self-assigned this
    on Jun 9, 2016
  15. daxian-dbw commented on Jun 13, 2016

    @daxian-dbw
    Member

    I have enabled building of the following three dlls in my local repository. I will go through the workflow docs, and figure out the process to get this in Github.

    • Microsoft.WSMan.Management
    • Microsoft.WSMan.Runtime
    • Microsoft.PowerShell.LocalAccounts

    I also found that dotnet-cli supports excluding certain .cs files for a specific target framework, so we don't need to add !CORECLR guards for .cs files that are not included in PowerShell Core.

    "frameworks": {
        "netcoreapp1.0": {
            "imports": "dnxcore50",
            "buildOptions": {
                "compile": {
                    "excludeFiles": [ "class1.cs" ] 
                }
            }
    

    cc: Andy Jordan (@andschwa) Mike Richmond (@mirichmo) sergei (@vors) Jason Shirk (@lzybkr)

  16. vors commented on Jun 14, 2016

    @vors
    Collaborator

    I updated list with dlls for which we need a good nuget package, instead of building from sources.

  17. daxian-dbw commented on Jun 14, 2016

    @daxian-dbw
    Member

    #1105 is opened to track the nuget package work.

  18. vors commented on Jun 20, 2016

    @vors
    Collaborator

    We have only 1 native resource dll left PSEvents.dll

  19. vors commented on Jul 2, 2016

    @vors
    Collaborator

    The last one is tracked in #1189

  20. changed the title [-]Identify difference of library sets between Nano and Open PowerShell[/-] [+]Identify difference of library sets between Nano and PowerShell Core from repo[/+] on Aug 17, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions