2011-01-08 4 views
7

Je suis en train de charger un assembly .Net 4.0, en utilisant [Reflection.Assembly] :: LoadFrom, à l'intérieur d'une session Powershell 2.0 à distance. Cela fonctionne localement, en raison d'une modification apportée au fichier powershell.exe.config, mais échoue avec une exception "Cet assembly est généré par une exécution plus récente ..." dans une session à distance.Powershell 2.0 Remoting chargement d'un. NET 4.0 dll

Les deux machines impliquées ont .Net 2.0 et 4.0, et le fichier powershell.exe.config est modifié pour les exécutables PowerShell x86 et x64 bits. J'ai aussi essayé de changer les clés de Registre powershell serveur: HKLM: \ Software \ Microsoft \ Powershell \ 1 \ PowerShellEngine \ runtimeVersion HKLM: \ Software \ Wow6432Node \ Microsoft \ Powershell \ 1 \ PowerShellEngine \ runtimeVersion

je dois manquer quelque chose, mais je ne sais pas ce que c'est.

Édition: Voici un exemple du code que j'exécute.

PS C:\>Enter-PSSession -ComputerName server1 
[server1]: PS C:\stuff> dir *.dll | foreach { [Reflection.Assembly]::LoadFrom($_.FullName) } 
+0

Veuillez montrer la commande que vous utilisez. –

Répondre

7

La solution est de créer ac: \ windows \ system32 \ fichier wsmprovhost.exe.config et ac: \ windows \ SysWOW64 \ wsmprovhost.exe.config fichier, sur le serveur, semblable à celui J'ai trouvé à: http://poshcode.com/2045

<?xml version="1.0" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" /> 
    <supportedRuntime version="v2.0" /> 
    </startup> 
</configuration> 

Je trouve l'article suivant, qui fait allusion à wsmprovhost.exe besoin d'être configuré comme le fichier powershell.exe. http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html

Questions connexes