Как я могу использовать VS Setup Project для правильной установки кода «Любой процессор» в 32-битной или 64-битной Windows? - PullRequest
1 голос
/ 12 июля 2010

У нас есть большой набор продуктов, в который входят:

  • Настольные приложения, написанные на VB6.
  • Настольные приложения, написанные на .NET.
  • Написанные службы Windowsв .NET.
  • Веб-приложения ASP.NET, написанные на .NET.
  • Службы ASMX и WCF, написанные на .NET.

Весь код .NETнаписано в VS2008, ориентированных на .NET 3.5 и «Любой процессор».Мы могли бы ориентироваться на конкретные процессоры, но предпочли бы не делать этого, потому что это могло бы вызвать проблемы в дальнейшем в дереве зависимостей.Мы пока не можем переместить что-либо в .NET 4.0, хотя это станет возможным позже.

Все приложения имеют несколько важных разделов реестра.Мы обошли проблему перенаправления реестра, когда код .NET всегда смотрит на 32-разрядное представление реестра.

Часть кода .NET взаимодействует с библиотеками VB6 через взаимодействие COM, но это очень ограниченно.мы можем легко удалить эту зависимость (закомментируйте сейчас, переписайте в .NET позже).

Все веб-приложения и службы предназначены для размещения в IIS.Необходимо поддерживать все версии начиная с версии 5.1.

В настоящее время наши сборочные виртуальные машины работают под управлением Windows XP (32-разрядная версия).Мы могли бы создавать новые, если это необходимо.

Моя задача - убедиться, что все работает без проблем на 64-битной Windows (все версии).В настоящее время у меня возникают проблемы с проектами установки .NET, все из которых написаны с использованием шаблонов проектов установки VS2008.

Несмотря на то, что исходным кодом является Any CPU, в проектах установки отсутствует эта функция.Вы должны установить свойство TargetPlatform для одного процессора.Это не очень полезно.Разве у нас не может быть один setup.exe, который устанавливается как 32-битный в 32-битной операционной системе и как 64-битный в 64-битной операционной системе?Если бы я был конечным пользователем, устанавливающим приложения, я бы не знал, какую программу установки запустить.

Ответы [ 2 ]

1 голос
/ 06 июня 2011

С тех пор я исследовал проекты установки VS2010, WiX и InstallShield, и все они ведут себя одинаково.Я собираюсь списать этот вопрос как "невозможный".Я намереваюсь сделать либо:

  • Просто предоставить отдельные 32- и 64-битные установщики.
  • Написать отдельный пакетный файл загрузчика или exe-файл, чтобы определить битность и запустить соответствующий установщик.*
0 голосов
/ 24 января 2013

У меня есть приложение, которое решает, какие DLL загружать во время выполнения, включая 32- или 64-битные DLL. Я закончил со своим старым другом setup2go, чтобы добиться этого. Независимо от того, что не удалось получить 64-разрядные библиотеки DLL в установщике x86, если только не изменить его на x64, но это не то, что я хотел, его следует установить и на 32-разрядные системы, где 64-разрядные библиотеки DLL будут занимать немного места, но без вреда .

Так что просто google setup2go, это возможно, может быть, просто не с MSI.

...