Impossible de charger le fichier ou l'assembly
Qui est en mon pouvoir script shell, je suis charger un assembly personnalisé et ensuite l'instanciation d'une classe de l'assemblée par New-Object
.
Assembly.LoadFile()
s'exécute correctement mais New-Object
déclaration donne le soufflet d'exception.
New-Object : Exception calling ".ctor" with "1" argument(s): "Could not load file or assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of i
ts dependencies. The system cannot find the file specified."
Script:
[System.Reflection.Assembly]::LoadFile("MyAssembly.dll")
$a=New-Object MyAssembly.MyClass -ArgumentList "arg1"
Cette coutume de l'assemblée des références uniquement les ensembles suivants
System
System.Core
System.Runtime.Serialization
System.Xml.Linq
System.Data
System.Xml
J'ai essayé explicitement le chargement du Système.Moment de l'exécution.La sérialisation dll comme ci-dessous. Mais même exception
[System.Reflection.Assembly]::Load("System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
Une idée?
Q: Est-ce votre assemblée enregistré dans le gac?
Non, il n'est pas inscrit dans le GAC.
Essayez LoadFrom pour voir si ça fonctionne msdn.microsoft.com/en-us/library/1009fa28.aspx.
Non, il n'est pas inscrit dans le GAC.
Essayez LoadFrom pour voir si ça fonctionne msdn.microsoft.com/en-us/library/1009fa28.aspx.
OriginalL'auteur nhrobin | 2013-08-26
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser
LoadFile
. Puisque vous êtes à l'aide de Powershell V2, la meilleure méthode estAdd-Type
http://www.dougfinke.com/blog/index.php/2010/08/29/how-to-load-net-assemblies-in-a-powershell-session/ a une bonne liste des différents moyens disponibles pour l'importation d'une bibliothèque dans le shell courant instance d'exécution.
http://technet.microsoft.com/en-us/library/hh849914.aspx est le technet documentaion sur Ajouter-Type et a des exemples, y compris comment utiliser des méthodes statiques dans une bibliothèque chargée
Je vais jeter ce ici aussi: madwithpowershell.com/2013/10/... Ajoutez-Type est vraiment pointilleux sur les assemblées
OriginalL'auteur Eris
J'ai fait face à la question quand j'ai essayé d'invoquer 32 bits Oracle.DataAccess.dll de 64-bit de Windows Powershell ISE. Plus tard, j'ai utilisé le même code dans Windows Powershell ISE (x86) et j'ai été en mesure d'invoquer Oracle.DataAccess.dll fichier. Cheers!
OriginalL'auteur Joel