У меня возникают проблемы при переносе управляемого кода с платформы x86 на x64. У меня есть проект WiX для создания MSI, который будет выполнен через Bootstrapper.Идентификация платформы в WiX 3.0
На платформе x86 файлы копируются в «Program Files» в соответствии с файлом Project.wxs. Но если тот же MSI установлен на платформе x64 через Bootstrapper, все файлы установки копируются по умолчанию в «Program Files (x86)», и функциональность приложения не удалась, так как не удалось найти необходимые файлы в иерархии с 12-ти кубами Программные файлы (для 64-разрядных это «C: \ Program Files \ Common Files \ Microsoft Shared \ расширения веб-сервера \ 12 \ CONFIG»).
Я попытался использовать переменные препроцессора, такие как <? If $ (var.ProcessorArchitecture) = x64?>, Но мне нужно жестко указать эту переменную в свойстве проекта либо на x86, либо на x64. Наконец, я заканчиваю двумя разными MSI для двух разных платформ, что для меня не является желательным решением.
Итак, через WiX можно определить платформу для обеспечения установки в нужном месте?
В WiX 3 использование атрибута платформы не рекомендуется.Они рекомендуют оставить его и использовать вместо этого переключатель «-arch» для свечи. http://wix.sourceforge.net/manual-wix3/wix_xsd_package.htm – Chris
Возможно, вам придется использовать sys.BUILDARCH вместо var.Platform. –