繁体   English   中英

使用gacutil和installutil部署Powershell管理单元时的构建后错误

[英]Post-build Error when using gacutil and installutil to deploy powershell snapin

我正在尝试学习有关使用VS 2013为powershell 4.0编写管理单元的知识。该脚本非常简单且编译无误。 但是,当我添加gacutil和installutil使用后构建来部署管理单元时,出现此错误:

Error   1   
The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -if "Tools.Powershell.Printscreen.dll"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" "Tools.Powershell.Printscreen.dll"" exited with code -1.

但是,如果我复制命令并从命令提示符处运行它,则两个命令均成功运行并且安装已成功部署。 然后,我可以添加到PowerShell中的管理单元,该管理单元成功运行为好。

我被检查和使用该框架是正确的4.5.1,VS 2013,系统是Windows 8.1中

生成后命令为:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -if "$(TargetPath)"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" "$(TargetPath)"

我认为这时该管理单元的代码无关紧要,但是如果您要包含我的代码,请告诉我。 我不认为这会影响到在这一点上解决BC它是简单充其量,它的工作后,我部署它使用命令提示符手动。

请指教。

谢谢!

为什么要构建一个管理单元,除非您需要针对V1,而如果要针对.NET 4.5.1进行编译则无法实现。 我建议使用module 无需注册/安装。 您只需将模块复制到目标系统($ home \\ Documents \\ WindowsPowerShell \\ Modules)并使用它。 我建议您为模块创建一个PSD1清单文件。 RootModule将是您的dll的名称:Tools.Powershell.Printscreen.dll。 PSD1New-ModuleManifest命令以获取有关创建PSD1文件的帮助。 它是基本的东西,例如作者名称,版本,唯一标识模块的GUID等。我还建议您在CmdletsToExport字段中列出导出的cmdlet。 这将加快自动模块加载的处理速度。

而且,出于测试目的,您可以直接导入dll(而无需创建PSD1文件):

Import-Module -assembly c:\temp\Tools.Powershell.Printscreen.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM