以正确、支持多操作系统的方式引用System.Management.Automation.dll

3
我正在编写一段C#代码来调用PS脚本。在这个过程中,我将引用System.Management.Automation.dll库,这是PS团队公开的库,使我的生活更加轻松。我认为这是正确的库(互联网搜索似乎确认了这一点,如果我错了,请告诉我)。
这个库是作为PS安装/Windows SDK的一部分安装的。
我发现这个库有两个奇怪之处:
1、即使它在GAC(全局程序集缓存)中,我总是需要使用完整路径进行引用。 2、路径在不同的操作系统上是不同的。
我已经在以下路径中找到它(忽略我假设不应该使用的GAC路径):
1. win2k8 r2: C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 2. Win7 x64: C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\
在多个操作系统版本友好的方式下,引用这个程序集的正确方法是什么?
1个回答

3
S.M.A装配件是架构中立的(MSIL),因此将其复制到您的解决方案目录中(或者可能是源结构中的导入目录),并从该位置按路径引用该装配件。这就是我们在PowerShell社区扩展项目上所做的。

1
你不需要将DLL与二进制文件一起分发。你只需将这个外部依赖项放在易于引用的位置。在这里描述的结构 - http://www.svnforum.org/threads/32331-Best-practices-project-structure - 该位置将相当于\project\lib。在我工作的项目中,我们使用$ / <project> / Trunk / Imports。 - Keith Hill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接