GUID C# для другой платформы
Сейчас я пишу оснастку для MMC3.0, она должна поддерживать платформу x64 и x86, но GUID должен быть другим. В C++ я знаю, что есть макросы, подобные _WIN32, но я не могу найти что-то подобное в C#. Моя цель - сделать так, чтобы код выглядел как
#ifdef _WIN32
[SnapInSettings("x86_guid")]
#else
[snapInSettings("x64_guid")]
#endif
x86_guid и x64_guid должны быть постоянными.
Я долго оглядывался, но ответа не было.
1 ответ
Вы можете создать новую платформу решения / проекта для 64-битной сборки, а затем определить разные GUID для разных платформ. Затем вы создадите 2 библиотеки DLL вашей оснастки MMC: одну для 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-ы были бы жестко закодированными строками, поэтому они были бы константами.