IT, можешь добавить в проект для BLToolkit конфигурацию для x86/x64 build. Any CPU не всегда хорош, например когда в проекте есть старые COM обьекты для которых нужен именно x86 build.
Для себя я конечно сделал такую сборку, подумалось что для других тоже пригодится?
Здравствуйте, Holms, Вы писали:
H>IT, можешь добавить в проект для BLToolkit конфигурацию для x86/x64 build. Any CPU не всегда хорош, например когда в проекте есть старые COM обьекты для которых нужен именно x86 build.
В каком проекте, в твоём? Так вроде Any CPU проекты можно использовать где угодно.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Holms, Вы писали:
H>>IT, можешь добавить в проект для BLToolkit конфигурацию для x86/x64 build. Any CPU не всегда хорош, например когда в проекте есть старые COM обьекты для которых нужен именно x86 build.
IT>В каком проекте, в твоём? Так вроде Any CPU проекты можно использовать где угодно.
нельзя. Вот у меня винда х64, и есть COM обьект который х86, так вот если его добавить в проект в котором Any CPU то будет ошибка в run-time. Если в проекте выставить x86 то всё работает как надо. И если добавить к проекту Any CPU assembly то опять не будет работать, надо использовть именно x86.
Вот такие пироги.
Здравствуйте, Holms, Вы писали:
H>нельзя. Вот у меня винда х64, и есть COM обьект который х86, так вот если его добавить в проект в котором Any CPU то будет ошибка в run-time. Если в проекте выставить x86 то всё работает как надо. И если добавить к проекту Any CPU assembly то опять не будет работать, надо использовть именно x86. H>Вот такие пироги.
Вообще, что-то как-то странно. Грубо говоря процесс получает "битность" в момент запуска, — все зависимые сборки грузятся используя уже битность процесса.
Т.е.:
Client.exe — x86
BLToolkit — AnyCPU
Процесс будет 32-х битным, обе сборки будут загружены в x86.
Client.exe — x64
BLToolkit — AnyCPU
Процесс будет 64-х битным, обе сборки будут загружены в x64.
Единственно, что с COM объектами я сильно не сталкивался, а вот нативные DLL, через LoadLibrary грузить приходилось. Разумеется нужно грузить соответствующие DLL (x86/x64).
Может в твоём случае всё таки достаточно установить x86 для "родительской" сборки?
Здравствуйте, fddima, Вы писали:
F> Вообще, что-то как-то странно. Грубо говоря процесс получает "битность" в момент запуска, — все зависимые сборки грузятся используя уже битность процесса. F> Т.е.: F>
F> Client.exe — x86
F> BLToolkit — AnyCPU
F> Процесс будет 32-х битным, обе сборки будут загружены в x86.
F>
F> Client.exe — x64
F> BLToolkit — AnyCPU
F> Процесс будет 64-х битным, обе сборки будут загружены в x64.
F> Единственно, что с COM объектами я сильно не сталкивался, а вот нативные DLL, через LoadLibrary грузить приходилось. Разумеется нужно грузить соответствующие DLL (x86/x64). F> Может в твоём случае всё таки достаточно установить x86 для "родительской" сборки?
у меня так и есть, главная на х86, из-за этого пришлось все сборки перевести на х86. Иначе всё падало с такой ошибкой.
Вот только вчера обновил BLToolkit с svn-a, собрал, моя прога больше не запускалась и выдавала привидённую ошибку указывая при этом на BLTookit. Собрал BLTookit под х86, всё заработало как надо.
Здравствуйте, Holms, Вы писали:
H>Вот только вчера обновил BLToolkit с svn-a, собрал, моя прога больше не запускалась и выдавала привидённую ошибку указывая при этом на BLTookit. Собрал BLTookit под х86, всё заработало как надо.
Понятно. В общем как всегда — что-то, где-то, неясно что и где, но точно не так, и бажит.