파워 쉘 스크립트에서 .Net을 참조 할 때 도와 주시겠습니까? PowerShell ISE를 사용하여 스크립트를 작성/디버깅합니다. 나는 그 안에 Nuget 패키지를 참조하는 몇 가지 .net 코드를 가지고 있으며 powershell 스크립트에이 코드를 포함하고자합니다.참조 .Net .dll from powershell scripts
C : \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 및 스크립트의 루트 (C : \ TestProjects \ UpdateLocalNugetRepository) 경로에 필수 .dll을 복사하면 제대로 작동합니다. 나는 우리가 .dlls를 system32 폴더에 복사 할 수없는 제작 과정에서 그 beacuse를하고 싶지 않습니다. 나는 잘못된 것을하고 있다는 것을 알고 있습니다. 도와 주실 수 있겠습니까? 다음은 내 파워 쉘 스크립트입니다 -
$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
{
\t public static async Task<bool> MyMethod(string packageName, string p1, string p2)
{
\t \t //Here I use above mentioned .dll(Nuget.Configuration).
\t }
}
}
“@
Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp
$result = [NuGetPSTest.Utility]::MyMethod(param1,param2,param3).GetAwaiter().GetResult()
$result
가능한 중복 (http://stackoverflow.com/questions/3360867/add-reference-to-dll-in-powershell-2 -0) –
제공된 링크를 살펴 보았지만 약간 씩 다릅니다. .Net 패키지는 powershell에서 액세스 할 수 있지만 두 위치 모두에 있지 않으면 nuget .dll에 액세스 할 수 없습니다. 이 .dll은 sys32가 아니라 루트 폴더에만 보관하고 싶습니다. – Sham
이 링크는 사용자에게 유용 할 수 있습니다. https://blogs.technet.microsoft.com/heyscriptingguy/2010/11/11/use-powershell-to-work-with-the-net-framework-classes/ –