PowerShellスクリプトを作成し、他のファイルからいくつかのコードを読み込んで再利用します。しかし、ファイルをインポートすると、次のエラーが発生します。
New-Object : Cannot find type [Car]: verify that the assembly containing this type is loaded.
At C:\Repo-path\test.ps1:4 char:13
+ [Car]$car = New-Object Car;
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
これが私のcar.psm1
ファイルです:
New-Module -Script {
class Car {
[String]$vin;
[String]$model;
}
}
これが私がコードを呼ぶ方法です:
Import-Module -Force "C:\Repo-path\car.psm1" ;
[Car]$car = New-Object Car;
どうすればこれを行うことができますか?
私も同じことをする他の方法を試しましたが、何も機能していません。
Import-Module
クラス定義をロードしません。
using module
スクリプトの先頭にあるステートメントを使用する必要があります。
using module C:\Repo-path\car.psm1
$car = [Car]::new()
$Env:PSModulePath
importステートメントでパスを完全修飾する必要がないように、どこかにモジュールを作成することをお勧めします。
$path = "$HOME\WindowsPowerShell\car\1.0"
[void](mkdir $path -Force)
'class Car { [string] $Vin; [string] $Model }' | Out-File -FilePath "$path\car.psm1"
New-ModuleManifest -Path "$path\car.psd1" -RootModule "$path\car.psm1" -ModuleVersion '1.0'
使用中で:
using module car
about_Using
Import-Module
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加