我现在正在为 MMC3.0 编写一个管理单元,它应该支持 x64 和 x86 平台,但 GUID 应该不同。在 C++ 中,我知道有像 _WIN32 这样的宏,但我在 C# 中找不到这样的东西。我的目标是让代码看起来像
#ifdef _WIN32
[SnapInSettings("x86_guid")]
#else
[snapInSettings("x64_guid")]
#endif
x86_guid 和 x64_guid 应该是常数。
我一直在四处寻找,但没有答案。
您可以为 64 位构建创建新的解决方案/项目平台,然后为不同的平台定义不同的 GUID。然后,您将构建 MMC 管理单元的 2 个 DLL-s:一个用于 32 位平台,一个用于 64 位平台。
在Build->Configuration Manager
创建一个新的构建平台(例如x64
),然后转到为您Build
的构建目标Project properties
定义一个新符号。x64
这将类似于_WIN64
. 您可以将Platform target
下拉列表保留为Any CPU
,只需确保 64 位 MMC 加载您的 _WIN64 构建版本。(我不熟悉如何设置 MMC 管理单元,所以我不知道这涉及到什么。)
完成上述配置步骤后,您现在几乎可以在 C# 中复制 C++ 代码以检查构建目标:
#ifdef _WIN64
[SnapInSettings("x64_guid")]
#else
[snapInSettings("x86_guid")]
#endif
GUID-s 将是硬编码的字符串,因此它们将是常量。