Referenz .Net .dll powershell-Skript aus

Könnten Sie bitte helfen Sie mir bei der Referenzierung .Net .dll powershell-Skript? Ich bin mit der powershell ISE zu schreiben/debug-Skript. Ich habe einige .net-code, die sich auf Nuget-Paket in es und ich will eingebetteten code in der powershell-Skript.

Funktioniert es auch, wenn ich Kopie erforderlich .dlls in C:\WINDOWS\system32\WindowsPowerShell\v1.0 und das Skript, das root – (C:\TestProjects\UpdateLocalNugetRepository -) Pfad. Ich will nicht zu tun, denn in der Produktion können wir nicht kopieren .dlls in system32-Ordner.Ich weiß, dass ich was falsch mache. Könnten Sie bitte helfen?
Unten ist mein powershell-Skript –

JS:

$path = "C:\TestProjects\UpdateLocalNugetRepository"

$Assem [email protected](
        "$path\NuGet.Configuration.dll",
        "$path\System.Core.dll",
        "$path\System.dll"
         ) 

         
$Source = @” 
using NuGet.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

namespace NuGetPSTest
{
    public class Utility
    {
 	public static async Task<bool> MyMethod(string packageName, string p1, string p2)
        {
       		//Here I use above mentioned .dll(Nuget.Configuration).
	}
    }

    
}

“@ 

Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp  



$result = [NuGetPSTest.Utility]::MyMethod(param1,param2,param3).GetAwaiter().GetResult()
$result

InformationsquelleAutor Sham | 2016-10-03



2 Replies
  1. 1

    Können Sie die Add-Type – snippet zum laden der DLL ‚ s:

    Add-Type -Path "$path\NuGet.Configuration.dll"
    Add-Type -Path "$path\System.Core.dll"
    Add-Type -Path "$path\System.dll"

    .Net DLL ‚ s Hinzugefügt werden können, wie diese:

    Add-Type -AssemblyName System.ServiceProcess

    Check: https://blogs.technet.microsoft.com/heyscriptingguy/2010/11/11/use-powershell-to-work-with-the-net-framework-classes/

    • Sicher..Lassen Sie mich es zu versuchen.
    • Sie möchten möglicherweise verwenden Sie einige Umgebungsvariablen zu lösen Pfade: technet.microsoft.com/en-us/library/ff730964.aspx
    • Es gibt mir folgende Fehlermeldung – Der Typ-oder namespacename „Configuration“ nicht vorhanden ist im namespace „NuGet“ (fehlt ein Assemblyverweis?)
    • Kann eine Reihe von Dingen… dies ist eine Allgemeine Fehlermeldung.
    • Nur ein Problem, ich möchte fix ist, dass ich nicht kopieren wollen .dlls in system32(C:\WINDOWS\system32\WindowsPowerShell\v1.0 -) Ordner.
  2. 1

    Ich habe die Lösung gefunden für das Problem, tun müssen Hinzufügen-Geben Sie vor Verwendung in Versammlungen, um ein anderes register geben. Unten ist mein code aktualisiert.

    JS:

    $path = "C:\TestProjects\UpdateLocalNugetRepository"
    
    Add-Type -Path "$path\NuGet.Configuration.dll"
    Add-Type -Path "$path\System.Core.dll"
    Add-Type -Path "$path\System.dll"
    
    $Assem [email protected](
            "$path\NuGet.Configuration.dll",
            "$path\System.Core.dll",
            "$path\System.dll"
             ) 
    
             
    $Source = @” 
    using NuGet.Configuration;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace NuGetPSTest
    {
        public class Utility
        {
     	public static async Task<bool> MyMethod(string packageName, string p1, string p2)
            {
           		//Here I use above mentioned .dll(Nuget.Configuration).
    	}
        }
    
        
    }
    
    “@ 
    
    Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp  
    
    
    
    $result = [NuGetPSTest.Utility]::MyMethod(param1,param2,param3).GetAwaiter().GetResult()
    $result

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.