У меня есть коммерческий продукт, который представляет собой DLL (нативный 32-битный код), и теперь пришло время создать его 64-битную версию. Поэтому при установке в 64-разрядной версии Windows 32-разрядная версия переходит в Windows \ SysWOW64, а 64-разрядная версия переходит в ... Windows \ System32! (Я кусаю свой язык здесь ...)
Или библиотеки DLL могут быть установлены вместе с клиентским приложением.
Что я должен назвать 64-битной DLL?
То же имя, что и у 32-битного: два файла, которые делают одно и то же, имеют одно и то же имя, но не являются взаимозаменяемыми Разве это не рецепт путаницы и проблем с поддержкой?
Различные имена (например, product.dll и product64.dll): теперь клиентские приложения должны знать, работают ли они 32-разрядные или 64-разрядные, чтобы ссылаться на мою DLL, и есть языки, где это неизвестно до времени выполнения .NET является лишь одним примером. И теперь все статически скомпилированные клиенты должны обусловить объявления импорта: IF target = WIN64 THEN импортировать Blah из "product64.dll" ELSE импортировать Blah из "product.dll" ENDIF
Продукт содержит огромное количество C-кода и большой кусок C ++ - его перенос на C # невозможен.
Обратить? Предложения?