我在一个Windows Server(2008,我猜)SP 2 64位操作系统上的Visual Studio 2008中编译的ac sharp程序中有一个编译错误。 它说“System.Management.Automation.PSObject”是在未引用的程序集中定义的。 我在MSDN中进行了一些search,发现这似乎是Windows Power Shell SDK的一部分。 http://msdn.microsoft.com/en-us/library/system.management.automation.psobject(VS.85).aspx
问题是我已经有了Windows Powershell。 如果这是我所需要的,我该如何使用它或在C Sharp IDE中引用它。 如果我需要下载一些额外的东西(比如SDK),我该在哪里去做这个并安装它? 我在网上找不到任何东西。
请在C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
查找System.Management.Automation.dll,如果存在,请将其添加为C#项目中的参考。 如果不存在,则下载Windows SDK ,将该文件放在上述位置。
如果在那里找不到它,请在PowerShell提示符下键入。
Copy ([PSObject].Assembly.Location) ~/Desktop
要正确引用PowerShell,您应该引用GAC中的PowerShell。 Vista SDK中包含的PowerShell是PowerShell V1.0,无论安装了什么,此技术都将引用1.0,2.0或X.0。 引用SDK程序集也不会创建最便携的项目,因为必须安装SDK才能构建项目,而不仅仅是Visual Studio和Windows。
不幸的是,引用GAC项目并不是Visual Studio UI干净的工作,所以你必须手工编辑CSProj文件。 找到包含元素的部分,然后添加此引用元素。
<Reference Include="System.Management.Automation" />
这将引用安装在系统上的最新System.Management.Automation,不管它是什么版本。
希望这可以帮助