C# 如何在c powershell模块中运行启动代码
我已经用c创建了一个简单的PowerShell模块,它实现了一些cmdlet,我希望能够在导入模块时运行代码 从谷歌和名称空间的角度来看,似乎没有一个合适的方法来做到这一点 到目前为止,我提出的解决方法是创建一个psm1或ps1文件,该文件在加载模块时运行,并且启动操作不希望使用该文件,因为脚本在某些环境中被阻止,这将在这些环境中运行 另一个选择是,我已经能够通过创建一个CmdletProvider来做到这一点,它可以工作,但在使用新的psdrive时,它会在提供程序列表中创建一个垃圾条目C# 如何在c powershell模块中运行启动代码,c#,powershell,cmdlets,C#,Powershell,Cmdlets,我已经用c创建了一个简单的PowerShell模块,它实现了一些cmdlet,我希望能够在导入模块时运行代码 从谷歌和名称空间的角度来看,似乎没有一个合适的方法来做到这一点 到目前为止,我提出的解决方法是创建一个psm1或ps1文件,该文件在加载模块时运行,并且启动操作不希望使用该文件,因为脚本在某些环境中被阻止,这将在这些环境中运行 另一个选择是,我已经能够通过创建一个CmdletProvider来做到这一点,它可以工作,但在使用新的psdrive时,它会在提供程序列表中创建一个垃圾条目 [C
[CmdletProvider("junkprovider", ProviderCapabilities.None)]
public class Startup : CmdletProvider
{
Public Startup()
{
// Startup code here
}
}
有没有一种方法可以正确地执行此操作,或者我将不得不使用hacks?您可以实现该接口
using System.Management.Automation;
namespace MyModule
{
public class MyModuleAssemblyInitializer : IModuleAssemblyInitializer
{
public void OnImport()
{
// Initialization code here.
}
}
}
当程序集作为模块导入时,Import Module命令将调用OnImport。您可以实现该接口
using System.Management.Automation;
namespace MyModule
{
public class MyModuleAssemblyInitializer : IModuleAssemblyInitializer
{
public void OnImport()
{
// Initialization code here.
}
}
}
当程序集作为模块导入时,Import Module命令将调用OnImport。Perfect这正是我想要的。谢谢你,这正是我想要的。谢谢你