【发布时间】:2012-12-21 15:11:19
【问题描述】:
我的visual studio项目有以下情况:
- 组装C
- 项目 A -> 类库 Any CPU(参考程序集 C)
- 项目 B -> windows 应用程序 x86(参考项目 A)
在此配置中,什么决定了 C 将使用什么平台程序集?
- 作为启动项目的项目 B --> 程序集 C 将运行 x86
- 项目 A 是直接引用程序集 C 的项目 --> 程序集 C 将根据平台运行 x86 或 x64
1 还是 2? 谢谢
【问题讨论】:
我的visual studio项目有以下情况:
在此配置中,什么决定了 C 将使用什么平台程序集?
1 还是 2? 谢谢
【问题讨论】:
启动程序集决定使用哪个平台。如果启动程序集构建为“任何 CPU”,它将在操作系统运行的平台上运行。
(换句话说,1)
【讨论】:
这取决于针对目标编译的程序集 C。其他项目不会以任何方式影响它的形状或形式。这种具有混合目标的设置可能会导致很多问题。
由于 B 是应用程序,它将作为 x86 运行。如果您使用的是 x64,项目 A 将无法加载,因为 A 将尝试以 x64 运行,而 x86 应用程序无法加载 x64 dll
如果你在 x86 机器上运行它,那么项目 A 也将运行 x86 并且会正确加载。
【讨论】: