在从Windows 7升级之前尝试运行托管的PowerShell脚本时出现以下错误我从未遇到此错误。
加载扩展类型数据时发生以下错误 file:Microsoft.PowerShell.Core, C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml(2977):错误 在“System.Security.AccessControl.ObjectSecurity”类型中:例外: getter方法应该是public,non void,static,并且有一个 PSObject类型的参数。 Microsoft.PowerShell.Core, C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml(2984):错误 在“System.Security.AccessControl.ObjectSecurity”类型中:例外: getter方法应该是public,non void,static,并且有一个 PSObject类型的参数。 Microsoft.PowerShell.Core, C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml(2991):错误 在“System.Security.AccessControl.ObjectSecurity”类型中:例外: getter方法应该是public,non void,static,并且有一个 PSObject类型的参数。 Microsoft.PowerShell.Core, C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml(2998):错误 在“System.Security.AccessControl.ObjectSecurity”类型中:例外: getter方法应该是public,non void,static,并且有一个 PSObject类型的参数。 Microsoft.PowerShell.Core, C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml(3005):错误 在“System.Security.AccessControl.ObjectSecurity”类型中:例外: getter方法应该是public,non void,static,并且有一个 PSObject类型的参数。
我在App.config中应用了以下内容:
<dependentAssembly>
<assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
问题是什么?
答案 0 :(得分:37)
解决方案是执行以下操作,而不是仅按照我读过的帖子的建议为System.Management.Automation添加块,您需要为所有引用的PS程序集添加一个。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
</assemblyBinding>
</runtime>
答案 1 :(得分:7)
我在VS 2015 Update 3中遇到了同样的问题。
我必须删除文件夹:
%APPDATA%\Local\Microsoft\VisualStudio\
然后加入:
c:\Users\%username%\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.config
部分:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
以下几行:
<dependentAssembly>
<assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
<publisherPolicy apply="no" />
</dependentAssembly>
我失去了两天寻找解决方案......谢谢MS: - /
答案 2 :(得分:1)
以上答案对我不起作用,我通过删除%APPDATA%.. \ Local \ Microsoft \ VisualStudio \文件夹来解决问题。
重新启动VS后,将重新创建此文件夹,并且包管理器控制台将再次运行。有点原油,但它确实有效。
答案 3 :(得分:1)
在接受的答案中尝试解决方案并厌倦了Visual Studio重置文件后,我从头开始重新安装VS 2015并且从那时起就没有问题了。如果你发现问题仍然存在,核选项绝对值得一试。
答案 4 :(得分:0)
为您的操作系统安装适当版本的PowerShell: