Skip to content

Add-Type fails when more than a single source code file is given #4814

@psteniusubi

Description

@psteniusubi

It appears Add-Type on powershell core attempts to concatenate all source code files when compiling. The "using" directive of all but the first source file causes syntax error

Scripts to reproduce
https://github.com/psteniusubi/add-type

Steps to reproduce

Add-Type -Path Type1.cs,Type2.cs

Expected behavior

Should compile without error. Works on PowerShell for Windows


Actual behavior

Add-Type : (14) : A using clause must precede all other elements defined in the namespace except extern alias declarations
At line:1 char:1
+ Add-Type -Path Type1.cs,Type2.cs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Power...peCompilerError:AddTypeCompilerError) [Add-Type], Exception
    + FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand

Add-Type : Cannot add type. Compilation errors occurred.
At line:1 char:1
+ Add-Type -Path Type1.cs,Type2.cs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Add-Type], InvalidOperationException
    + FullyQualifiedErrorId : COMPILER_ERRORS,Microsoft.PowerShell.Commands.AddTypeCommand

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.0.0-beta
PSEdition                      Core
GitCommitId                    v6.0.0-beta.6
OS                             Microsoft Windows 10.0.15063
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    WG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility module

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions