-
> dll (05.06.2008 13:18:17) [17]
По этой ошибке есть только это
14001 ERROR_SXS_CANT_GEN_ACTCTX
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.
-
dependency walker показал, что есть зависимость от
msvcp80.dll
msvcr80.dll
запустил тестовый exe с этими dll, лежащими в папке с exe - ничего не изменилось.
-
интересно вот что.
на моей машине эти msv*80.dll лежат в папках типа этой:
C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb
в путях ее нет, значит они как-то зарегистрированы?
чем и где?
-
> в путях ее нет, значит они как-то зарегистрированы?
> чем и где?
14001 ERROR_SXS_CANT_GEN_ACTCTX
Вот это сообщение как раз на эту тему.
манифест надо делать и указывать в нем ссылку на эти dll
-
про манифест мне разработчик dll уже сказал.
ссылки на либы нашел в своем реестре в windows\current version\SideBySide
то есть видимо надо просто regsrv для них сделать?
-
regsrv для них не прокатывает.
как их можно прикрутить-то к системе?
-
> Игорь Шевченко (05.06.2008 15:42:23) [23]
Судя по WinSxS так и есть, это папка предшественница защиты Висты, на некоторых машинах превышает System32
-
парни, как либы-то зарегистрировать в этом sxs?
-
> dll (05.06.2008 16:08:25) [25]
Сложный вопрос, то что попало в эту папку - это особое, туда просто так не попадают.
-
> Судя по WinSxS так и есть, это папка предшественница защиты
> Висты, на некоторых машинах превышает System32
Собственно, не совсем предшественница, скорее Vista преемница. А ноги из .Net растут - борьба с DLL Hell
-
ок. зайдем с другого бока.
назначение winSxS - разрешение конфликта одноименных dll разных версий.
ситуация: три не моих длл импортируют несколько сишных рантайм библиотек. на "нормальном" компе все они лежат в WinSxS.
вопрос: почему не загружаются те три длл, если других версий msv*80.dll нет, а существующие лежат в путях?
еще вопрос:
в WinSxS длл попадают судя по описанию в результате кривых инсталяторов, если те пытаются заменить одноименные длл.
у меня три эти длл не инсталировались, а просто были распакованы из присланного архива. И все разботает.
На некоторых "неправильных" машинах не работает, даже если библиотеки *80.dll лежат вместе с теми тремя.
куда копать?
-
> три не моих длл импортируют несколько сишных рантайм библиотек
У них манифест есть в ресурсах ?
> в WinSxS длл попадают судя по описанию в результате кривых
> инсталяторов, если те пытаются заменить одноименные длл.
>
Нет
-
На чистой, только что установленной машине нашел по две версии msvcp80.dll msvcr80.dll
лежат в папке windows\WinSxS\x86_Microsoft_бла_бла_бла_1433_бла бла
1433 нужный мне билд (при переименовании длл другого билда рабюотоспособность не теряется)
манифестов рядом с длл нет
Видимо они в windows\WinSxS\Manifests
как же мне на системах с отсутствующим номером билдов вклеить эти длл?
-
> У них манифест есть в ресурсах ?
-
нету. лежат отдельно в виде файлов в папке манифестс
-
> три не моих длл импортируют несколько сишных рантайм библиотек.
> на "нормальном" компе все они лежат в WinSxS.
У них манифест есть в ресурсах ? У трех не твоих dll
-
наверное нету. как посмотреть?
ресурса версии точно нету.
-
непонятно вот что:
"три" длл импортируют msvcp80 и msvcr80
на чистой машине убираю 1433 билд всех библиотек *80.dll
остается билд 762.
тест не работает.
откуда три длл знают, что им нужен 1433 билд?
-
> откуда три длл знают, что им нужен 1433 билд?
из манифеста
> как посмотреть?
tdump имя.dll
-