У меня есть установщик WIX, который выполняет пользовательские действия в процессе установки. Когда я запускаю установщик WIX, и он сталкивается с первым настраиваемым действием, происходит сбой установщика, и я получаю сообщение об ошибке в журнале MSI следующим образом:
Действие началось 12:03:53: LoadBCAConfigDefaults.
SFXCA: извлечение пользовательского действия во временный каталог: C: \ DOCUME ~ 1 \ ELOY06 ~ 1 \ LOCALS ~ 1 \ Temp \ MSI10C.tmp- \
SFXCA: привязка к версии CLR v2.0.50727
Вызов специального действия WIXCustomActions! WIXCustomActions.CustomActions.LoadBCAConfigDefaults
Ошибка: не удалось загрузить класс пользовательских действий WIXCustomActions.CustomActions из сборки: WIXCustomActions
System.BadImageFormatException: не удалось загрузить файл или сборку 'WIXCustomActions' или одну из ее зависимостей. Эта сборка создается средой выполнения, более новой, чем текущая загруженная среда, и не может быть загружена.
Имя файла: 'WIXCustomActions'
в System.Reflection.Assembly._nLoad (имя_сборки имя_файла, строковое codeBase, доказательство сборкиSecurity, расположение сборкиHint, StackCrawlMark & stackMark, логическое значение throwOnFileNotFound, логическое значение для интроспекции)
в System.Reflection.Assembly.nLoad (имя_сборки имя_файла, строковое codeBase, доказательство сборкиSecurity, расположение сборкиHint, StackCrawlMark & stackMark, логическое значение throwOnFileNotFound, логическое значение дляIntrospection)
в System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evidence AssemblySecurity, StackCrawlMark & stackMark, Boolean forIntrospection)
в System.Reflection.Assembly.InternalLoad (строка String AssemblyString, Свидетельство AssemblySecurity, StackCrawlMark & stackMark, логическое значение для интроспекции)
в System.AppDomain.Load (String assemblyString)
в Microsoft.Deployment.WindowsInstaller.CustomActionProxy.GetCustomActionMethod (сеанс сеанса, строковое имя сборки, строковое имя класса, строковое имя метода)
... конкретная проблема, описанная выше, - «System.BadImageFormatException: не удалось загрузить файл или сборку« WIXCustomActions »или одну из ее зависимостей. Эта сборка построена средой выполнения, более новой, чем текущая загруженная среда выполнения, и не может быть загружена. «
Кажется, что слово этой ошибки указывает на что-то вроде неправильно ссылающейся платформы .NET или чего-то другого (я нацеливаюсь на 3.5 как в своих пользовательских действиях, так и в их зависимостях), но я не могу понять, где внести изменения в решить эту проблему. Есть идеи?
.... Не уверен, поможет ли это, но это пакетный файл пакета CustomActions, который я запускаю для создания пакета .dll, содержащего функции настраиваемого действия:
===============
вызов "C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat"
@ echo on
cd "C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions"
csc / target: library / r: "C: \ program files \ windows installer xml v3.6 \ sdk \ microsoft.deployment.windowsinstaller.dll" / r: "C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions \ bin \ Debug \ eLoyalty.PortalLib.dll "/ out:" C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions \ bin \ Debug \ WIXCustomActions .dll "CustomActions.cs
cd "C: \ Program Files \ Windows Installer XML v3.6 \ SDK"
makefxca "C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions \ bin \ Debug \ BatchCustomerAnalysisWIXCustomActionsPackage.dll" "c: \ program files \ windows installer xml v3.6 \ sdk \ x86 \ sfxca.dll "" C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions \ bin \ Debug \ WIXCustomActions.dll "customaction.config Microsoft.Deployment.WindowsInstaller.dll