2010-09-01 17 views
17

Sto scrivendo alcuni script PowerShell che utilizzano l'API MSDeploy. Posso caricare l'assembly utilizzandoCome utilizzare Add-Type per caricare Microsoft.Web.Deployment?

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment") 

La posizione è nel GAC:

PS > [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment") | fl Location 

Location : C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Deployment\7.1.0.0__31bf3856ad364e35\Microsoft.Web.Deployment.dll 

Tuttavia, io non sono in grado di caricare l'assembly utilizzando Add-Type. Ricevo un errore che dice che l'assemblaggio non può essere trovato e che mancano uno o più assiemi.

PS > Add-Type -AssemblyName Microsoft.Web.Deployment 
Add-Type : Cannot add type. The assembly 'Microsoft.Web.Deployment' could not be found. 
At line:1 char:9 
+ Add-Type <<<< -AssemblyName Microsoft.Web.Deployment 
    + CategoryInfo   : ObjectNotFound: (Microsoft.Web.Deployment:String) [Add-Type], Exception 
    + FullyQualifiedErrorId : ASSEMBLY_NOT_FOUND,Microsoft.PowerShell.Commands.AddTypeCommand 

Add-Type : Cannot add type. One or more required assemblies are missing. 
At line:1 char:9 
+ Add-Type <<<< -AssemblyName Microsoft.Web.Deployment 
    + CategoryInfo   : InvalidData: (:) [Add-Type], InvalidOperationException 
    + FullyQualifiedErrorId : ASSEMBLY_LOAD_ERRORS,Microsoft.PowerShell.Commands.AddTypeCommand 

Come è possibile utilizzare Aggiungi tipo per caricare Microsoft.Web.Deployment?

+0

Hai mai funzionato? – JeffreyABecker

risposta

25

PowerShell consente di caricare un determinato insieme predefinito di assiemi tramite il loro nome parziale/semplice. Dovrai caricarlo tramite il suo nome completo, ad esempio:

Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' + 
         'Culture=neutral, PublicKeyToken=31bf3856ad364e35') 
+1

whyyyyyyy? Non so quanto spesso voglio farlo. sarebbe così facile se ci fosse solo un 'add-type -gac microsoft.some.assembly' che carica l'ultima versione come facciamo per visual studio. – Nacht

+2

È sempre possibile caricare per percorso 'Aggiungi-Tipo -Path C: \ Windows \ Microsoft.NET \ assembly \ GAC_64 \ System.Web \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Web.dll' –

+0

sì ma è fastidioso e devi andare a cercare il percorso e roba del genere. sarebbe facile per me creare una funzione per farlo automaticamente e inserirmi nel mio profilo, ma mi sorprende che microsoft non l'abbia fatto. vabbè forse la prossima versione. forse dovrei suggerirglielo da qualche parte – Nacht

Problemi correlati