导入的c#cmdlet无法正常工作

时间:2016-02-16 16:47:11

标签: c# powershell cmdlet

我的解决方案中有多个项目,其中一个包含一个class =基本上是一个通过Power Shell控制台使用的C#模块:

SWWAyears=data.frame(iteration=rep(NA,101),pop=NA)
breedingPop<-84000
fallMig<-.815
winterSurvival<-.99
springMig<-.815
npFecund<-2.75
pFecund<-.60
breedingSurvival<-.99

# Set initial starting condition
SWWAyears[1,2]=breedingPop

for(years in 2:101) {
  fallPop<-(SWWAyears[years-1,2]*fallMig)
  winterPop<-(fallPop*winterSurvival)
  springPop<-(winterPop*springMig)
  summerPop<-(springPop*breedingSurvival)
  breedingPop2<-((summerPop*.26)*npFecund+(summerPop*.14)*pFecund)+(summerPop*.60)
  SWWAyears[years,1]=years
  SWWAyears[years,2]<-breedingPop2             
}

我做了什么:

  1. 构建解决方案并复制AddUser.dll的路径

  2. 以管理员

  3. 打开PS控制台
  4. 成功导入AddUser.dll - &gt;当我通过Get-Module命令检查它时,AddUser出现在Name列中。虽然,同一行的ExportedCommands列中没有任何内容......这可能是问题吗?

  5. 当我编写Add-User命令时,我希望显示&#34;测试字符串&#34;,但是我收到此错误:

  6. 添加用户:术语&#39;添加用户&#39;不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,  或者如果包含路径,请验证路径是否正确,然后重试。 在行:1个字符:1 +添加用户 + ~~~~~~~~     + CategoryInfo:ObjectNotFound:(Add-User:String)[],CommandNotFoundException     + FullyQualifiedErrorId:CommandNotFoundException

1 个答案:

答案 0 :(得分:1)

实现cmdlet的类应该是public,否则它不会作为命令导出。由于您未使用任何显式访问修饰符,因此AddUser类为internal。你应该public

public class AddUser : Cmdlet