Size: a a a

2020 January 13

DB

Dmitry Babushkin in pro.net
Нет в солюшене AnyCPU.
источник

AT

Alexey Tkachenko in pro.net
а в чём тогда сложность?
источник

DB

Dmitry Babushkin in pro.net
Проблема как раз в том, что хочется оставить AnyCPU в .csproj, и завязаться на SolutionConfigurationPlatform
источник

AT

Alexey Tkachenko in pro.net
Dmitry Babushkin
Коллеги, как в .csproj сослаться на платформу солюшена, чтобы указать выходной каталог вот так:
<OutputPath>$(SolutionDir)Output\$(SolutionPlatform)\$(Configuration)\</OutputPath>

Нужно, чтобы избавиться от деления на x86/x64 конфигурации, оставив только AnyCPU.
Просто подставь нужные тебе переменные в выхлом
источник

DB

Dmitry Babushkin in pro.net
А так придётся удалять AnyCPU и создавать вместо неё x64/x86
источник

AT

Alexey Tkachenko in pro.net
а тебе точно нужно x86/x64?
источник

DB

Dmitry Babushkin in pro.net
Точно, так как есть нативные либины.
источник

DB

Dmitry Babushkin in pro.net
Может, через годик дропнем x86
источник

DB

Dmitry Babushkin in pro.net
Пока не получается. :/
источник

AT

Alexey Tkachenko in pro.net
отличный повод дропнуть сейчас
источник

DB

Dmitry Babushkin in pro.net
Заманчиво. ^^''
источник

AT

Alexey Tkachenko in pro.net
Dmitry Babushkin
Точно, так как есть нативные либины.
Значит смотри какой можно сделать лайфхак. Если у тебя есть либы с x86 & x64, то да, они грузятся только в процесс нужной разрядности, однако чтобы процесс стал требуемой разрядности, достаточно чтобы сборка с точкой входа была таргетирована под нужную разрядность.
То есть тебе надо собирать ровно 1 проект с заданным таргетом.
Либо альтернативный вариант - грузить нативные библиотеки из разных путей с помощью LoadLibrary/dlopen в зависимости от целевой платформы, и раскидывать по путям только нативные библиотеки
источник

DB

Dmitry Babushkin in pro.net
Это лишнее, достаточно отчекать галку Prefer32Bit, и точку входа тоже можно не пересобирать.
источник

DB

Dmitry Babushkin in pro.net
А вот загрузку придётся менять. А тут проще уже x86 дропнуть. >_>
источник

IC

Ilya Chernoudov in pro.net
Dmitry Babushkin
Проблема как раз в том, что хочется оставить AnyCPU в .csproj, и завязаться на SolutionConfigurationPlatform
а твои либы ссылаются на unmanaged сборки?
источник

DB

Dmitry Babushkin in pro.net
Да.
источник

IC

Ilya Chernoudov in pro.net
тогда не совсем понятно, как ты их сделаешь anycpu?
источник

DB

Dmitry Babushkin in pro.net
Ilya Chernoudov
а твои либы ссылаются на unmanaged сборки?
Как раз проблема в том, что вместо того, чтобы грузить DLL по нужному пути, решили копировать DLL нужной разрядности в папку продукта. Теперь расхлебываем.
источник

DB

Dmitry Babushkin in pro.net
Ilya Chernoudov
тогда не совсем понятно, как ты их сделаешь anycpu?
Сейчас два выходных каталога - x86 и x64. Хотелось малой кровью оставить их поддержку, но убрать лишние платформы для Managed-сборок.
источник

IC

Ilya Chernoudov in pro.net
а либ то много?
источник