Powershell: .NET Core/VS ์ฝ”๋“œ์—์„œ System.Management.Automation ์ฐธ์กฐ

์— ๋งŒ๋“  2016๋…„ 09์›” 16์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PowerShell/PowerShell

System.Management.Automation์„ ์ฐธ์กฐํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด project.json์˜ ๋‹ค์Œ ์Šค๋‹ˆํŽซ:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
    "Microsoft.AspNetCore.Routing": "1.0.0",
    "System.Security.Cryptography.Algorithms": "4.2.0",
    "System.Management.Automation": "6.1.7601.17514"
  },

System.Management.Automation ์ข…์†์„ฑ์„ ์ฐพ์•„ ์„ค์น˜ํ•˜๋„๋ก ์š”๊ตฌํ•œ๋‹ค๋Š” ์ ์—์„œ dotnet restore ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(.17515๋Š” .NET Core์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Œ). ๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ์— using ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

The type or namespace name 'Management' does not exist in the namespace 'System'

์—ฌ๊ธฐ์„œ ์˜๋„๋Š” ์ฝ”๋“œ์—์„œ PowerShell์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ .NET Core๋Š” ์ฐธ์กฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ์•ฝ๊ฐ„ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค...

Area-Maintainers-Build Issue-Question

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ํ•ด๊ฒฐํ•˜๋ ค๋Š” NuGet์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ๊ฒŒ์‹œํ•œ ์•…์„ฑ System.Management.Automation ํŒจํ‚ค์ง€๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋Š” ๋ชจ๋‘ "FullCLR" ์–ด์…ˆ๋ธ”๋ฆฌ์ด๋ฉฐ PowerShell Core์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

System.Management.Automation์˜ PowerShell Core ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ํ˜„์žฌ ๋ฐฉ๋ฒ•์€ ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. nuget.config ํŒŒ์ผ์€ MyGet์— ๊ฒŒ์‹œ๋œ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. powershell-win-core\project.json ์€ project.json ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์•ˆ๋…• ๋ˆ.

dotnet cli์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • nuget.config ๋„ˆ๊ฒŸ ํ”ผ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด https://www.nuget.org ๊ฐ€ ์‚ฌ์šฉ
    PowerShell ํŒ€์€ ๊ฑฐ๊ธฐ์— SMA๋ฅผ ๊ฒŒ์‹œํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์˜ค๋ž˜์ „์— ( @mirichmo๊ฐ€ ๋งํ–ˆ๋“ฏ์ด) https://www.nuget.org/packages?q=System.Management.Automation ์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ์„ค์ •์€ nuget์—์„œ ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. FullCLR์šฉ์œผ๋กœ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ GAC์—์„œ ๋กœ์ปฌ SMA ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ https://github.com/PowerShell/PowerShell/blob/dd2394b1e6088f6c82054f5cae5520e532010fd4 ์™€ ๊ฐ™์ด frameworks / net451 / frameworkAssemblies ์•„๋ž˜์— ์ฐธ์กฐ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /src/System.Management.Automation/project.json#L188
  • project.json ์—๋Š” ๋‹ค์–‘ํ•œ dependencies ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. globabl ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • SMA์˜ CoreCLR ๋ฒ„์ „์€ ALC(AssemblyLoadContext)๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™” ์‹œ ์ถ”๊ฐ€ ๋งˆ์‚ฌ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, C# ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. https://github.com/PowerShell/PowerShell/blob/master/test/csharp/fixture_AssemblyLoadContext.cs

์™„๋ฒฝํ•œ.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰