我在一个c sharp程序中有一个构建错误,我正在Windows Server(2008,我猜)SP 2 64位操作系统上的Visual Studio 2008中编译。 它表示'System.Management.Automation.PSObject'是在未引用的程序集中定义的。 我在MSDN中进行了一些搜索,我发现这似乎是Windows Power Shell SDK的一部分。 http://msdn.microsoft.com/en-us/library/system.management.automation.psobject(VS.85).aspx
问题是我已经有了Windows Powershell。如果这就是我需要的,我该如何使用它或在C Sharp IDE中引用它。如果我需要下载额外的东西(即SDK),我该去哪里做并安装它?我在网上找不到任何东西。
答案 0 :(得分:34)
如果在那里找不到,请在PowerShell提示符下输入。
Copy ([PSObject].Assembly.Location) ~/Desktop
答案 1 :(得分:14)
在C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
中查找System.Management.Automation.dll,如果存在,请将其添加为C#项目中的引用。如果它不存在,则下载Windows SDK,将文件放在上面的位置。
答案 2 :(得分:14)
要正确引用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,无论它是什么版本。
希望这有帮助