我创建了一个.dll
PSCmdlet
,.dll
我创建了一个NuGet
包。NuGet
但是当我将.dll
包添加到项目中时,我必须在命令运行之前手动导入NuGet
。如何在我添加PSCmdlet
包的同一项目中自动导入我的模块?
[Cmdlet(VerbsCommon.Get, "DemoNames")]
public class Get_DemoNames : PSCmdlet
{
[Parameter(Position = 0, Mandatory = false)]
public string prefix;
protected override void ProcessRecord()
{
var names = new[] { "Chris", "Charlie", "Isaac", "Simon" };
if (string.IsNullOrEmpty(prefix))
{
WriteObject(names, true);
}
else
{
var prefixed_names = names.Select(n => prefix + n);
WriteObject(prefixed_names, true);
}
}
}
类
NuGet
手动导入模块之前的VS Package Manager控制台
手动导入模块后,PM> DemoNames
术语' DemoNames'不被识别为a的名称 cmdlet,函数,脚本文件或可操作程序。检查拼写 的名称,或者如果包含路径,验证路径是什么 正确,然后再试一次。在行:1 char:10 + DemoNames<<<< + CategoryInfo:ObjectNotFound:(DemoNames:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
VS Package Manager控制台
PM>导入模块C:\ projects \ ef2idbs \ EF.XML \ bin \ Debug \ EF.XML.dll
PM> DemoNames
克里斯
查理
艾萨克
西蒙
我的NuGet Package Explorer
包是使用.dll
创建的,具有以下结构:
LIB
-EF.XML.dll
注意:导出的.dll
和lib
文件夹中的NuGet
是同一个文件。
将一个install.ps1文件添加到我的EF.XML.dll
包,将$profile
文件移动到add()
目录,以便自动加载.dll是不是一个好主意?