我目前正在编写一个 PowerShell 管理单元,该管理单元对专门针对 x64 或 x86 的混合模式程序集(包含本机代码的程序集)具有特定的依赖关系。我有两个版本的依赖程序集,但我想知道如何最好地管理这个管理单元的构建和部署,特别是:
- 是否需要有两个版本的 snapin,一个 x86 和一个 x64,并使用两个不同版本的 installutil 来安装它,每个架构一次?
- 假设 #1 为真,是否建议在不同的“Program Files”和“Program Files (x86)”目录中安装两个不同版本的管理单元?
- 为了构建两个不同的架构,构建一对共享除单个引用之外的所有内容的项目的理想(最少麻烦)方法是什么?
- 如果管理单元编译为“AnyCpu”,并且依赖的 dll 都加载到 GAC 中,运行时是否会根据当前运行的 PowerShell 主机的体系结构从 GAC 加载正确的程序集?
- 是否有一种巧妙的方法可以在运行时动态选择要加载的依赖 dll(如果由于各种原因不能将其安装在 GAC 中),而不会遇到程序集加载上下文的问题?