首页 文章

从powershell脚本调用自定义C#dll的方法[关闭]

提问于
浏览
3

我是PowerShell的新手 . 我正在尝试调用自定义C#dll的方法 . 我失败的原因有很多 .

这是我的代码:

[System.Reflection.assembly]::LoadFile("E:\Mulukutla\Migration.dll")

$MyClass = New-Object DataMigration

$MyClass.MigrateData("$from\$name","$to\$name")

我使用的C#类库是4.0和powershell v2.0

使用“1”参数调用“LoadFile”的异常:“此程序集由比当前加载的运行时更新的运行时构建,无法加载 . (HRESULT异常:0x8013101B)”在E:\ Mulukutla \ myCodev1.ps1 :3 char:39 [System.Reflection.assembly] :: LoadFile <<<<(“E:\ Mulukutla \ Migration.dll”)CategoryInfo:NotSpecified:(:) [],MethodInvocationException FullyQualifiedErrorId:DotNetMethodException

New-Object:找不到类型[DataMigration]:确保加载包含此类型的程序集 . 在E:\ mulukutla \ myCodev1.ps1:4 char:21 $ MyClass = New-Object <<<< DataMigration CategoryInfo:InvalidType:(:) [New-Object],PSArgumentException

FullyQualifiedErrorId:TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

请帮我纠正,我在做什么错?

1 回答

  • 2

    从cmd调用powershell:

    set COMPLUS_Version=v4.0.30319
    powershell
    

    或者设置'C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe.config'的内容如下(如果不存在,您可能需要创建此文件):

    <?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
        <startup useLegacyV2RuntimeActivationPolicy="true"> 
            <supportedRuntime version="v4.0" />    
        </startup> 
    </configuration>
    

相关问题