У меня есть установщик 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.LoadBCAConfults Ошибка: не удалось загрузить класс настраиваемых действий WIXCustomActions.CustomActions из сборки: WIXCustomActions System.BadImageFormatException: не удалось загрузить файл или сборку WIXCustomActions или одну из ее зависимостей. Эта сборка создается более новой средой выполнения, чем текущая загруженная среда выполнения, и не может быть загружена. Имя файла: 'WIXCustomActions' в System.Reflection.Assembly._nLoad (AssemblyName имя_файла, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark & stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) в System.RefnameBaseName (имя_сборки) в файле System.Refname.Assembly , Evidence assemblySecurity, Assembly locationHint, StackCrawlMark и stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) в System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark & stackMark.StackCrawlMark & stackMring.StackCrawlMark & stackMark.InternalReflection (System.StackMark) AssemblySecurity, StackCrawlMark и stackMark, Boolean forIntrospection) в System.AppDomain.Load (String assemblyString) в Microsoft.Deployment.WindowsInstaller.CustomActionProxy.GetCustomActionMethod (сеанс сеанса, String AssemblyName, String className, String methodName)
... конкретная проблема, указанная выше: «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\WIX" 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 \ sdkca \ x86 \ sfxca .dll "" C: \ development \ trunk \ PortalsDev \ csharp \ production \ Installers \ WIX \ customactions \ PAServicesWIXCustomActions \ bin \ Debug \ WIXCustomActions.dll "customaction.config Microsoft.Deployment.WindowsInstaller.dll