почему у меня нет Microsoft.VC80.MFC-файла? - PullRequest
5 голосов
/ 26 октября 2010

Получил новую машину Win7 с установленным VS2005. Я попытался запустить MyApp.exe, созданный с помощью манифеста, который говорит в Manifest.bin:

...

<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>

...

и результатом было сообщение об ошибке «Приложение не удалось запустить, поскольку его параллельная конфигурация неверна ...

Просмотрщик событий подробно объяснил мне причину:

Сбой генерации контекста активации для "c: \ Xxx \ MyApp.exe". Не удалось найти зависимую сборку Microsoft.VC80.MFC, processorArchitecture = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", type = "win32", version = "8.0.50727.4053". Пожалуйста, используйте sxstrace.exe для подробной диагностики.

, поэтому я просмотрел папку winsxs, и действительно, все «4053-папки» отсутствовали. Затем я отредактировал Manifest.bin и заменил 4053 на 4927. Ошибки повторялись с другой версией. Затем я узнал, что у меня есть «4927-папка» для msvcr80.dll, но нет «4927-папка» для mfc80.dll.

Два вопроса:

-Почему нет "4927-folder" для mfc80.dll?

-Как взять все "4053-папки"?

Спасибо & BR -Matti

1 Ответ

3 голосов
/ 22 марта 2011

Вам следует либо установить распространяемый Visual C ++, либо использовать модули слияния, чтобы добавить распространяемые файлы в установочный пакет установщика Windows.Или же вы должны скопировать библиотеки MFC в каталог вместе с вашим приложением.

Библиотеки, которые можно использовать как частную сборку (в каталоге вашего приложения), расположены в C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\x86 или в amd64, если ваше приложение64 бит.

Модули слияния для установщика Windows (MSI) находятся в C:\Program Files (x86)\Common Files\Merge Modules.

Вторично распространяемый пакет, который устанавливает все библиотеки, можно найти в C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe для 32-битных программ и в …\vcredist_x64\vcredist_x64.exe для 64-битных программ.Вы можете получить эти файлы из Microsoft Visual C ++ 2005 с пакетом обновления 1 (SP1) Обновление безопасности ATL .


И я думаю, что вы хотите обновить Visual Studio с помощью этого пакета Microsoft Visual C ++ 2005Обновление безопасности ATL распространяемого пакета обновления 1 (SP1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...