Могли бы быть проблемы производительности, std::endl
силы сброс потока вывода.
Я полагаю, что в WM 6 (это могла быть WM 5) запрещалось запускать такси из другого. Единственный способ сделать все это за один раз - использовать MSI с рабочего стола. Существуют образцы MSDN о том, как это начать.
В моем приложении я обнаруживаю версию .NET CF в своей кабине. Если у них нет нужного, я не выполняю установку и говорю пользователю установить с рабочего стола. Это не самое лучшее решение, но MS не дает нам выбора.
На самом деле это не ответ на ваш вопрос, но в подобной ситуации я бы просто развернул два CAB: мое приложение и .Net CF 3.5 CAB. Нетрудно сказать покупателю / клиенту установить ваше приложение, а если оно не работает, установить .Net cab.
Спасибо за ответы. Очень досадно, что у MS нет для этого простого решения. Я бы сейчас выбрал MusicGenesis. Я могу предоставить пользователю два кабинета (1) MyApp.cab (2) NETCFv35.wm.armv4i.cab. Но я хотел знать, что «NETCFv35.wm.armv4i.cab» будет работать на всех устройствах. Я слышал о разных устройствах с разными наборами инструкций, таких как MISP, ARM и т. Д. Будет ли NETCFv35.wm.armv4i.cab работать со всеми Windows Mobile 6 Professional (и выше 6.1, 6.5) или что мне нужно сделать, чтобы позаботиться о других устройствах?
Шайлеш К.
Использовали ли вы какие-либо специфичные для .NET 3.5 API, которые помешали бы вам нацелиться на .NET 2.0 Framework? Если нет (или если это очень мало), я бы подумал о таргетинге только на 2.0.
Вы можете быть удивлены, насколько легко изменить версию Framework, на которую вы нацеливаетесь (к сожалению, вы не можете просто перейти в Свойства узла вашего проекта в обозревателе решений, как и в других типах проектов в Visual Studio). Я бы посоветовал создать новый проект, ориентированный на 2.0 Framework, и отбросить весь исходный код, скомпилировать и посмотреть, сколько у вас ошибок. Надеюсь, что примерно через 5-10 минут вы закончите с скомпилированным и запущенным приложением, и больше не будет проблем с зависимостями .NET Framework.
При планировании мобильного приложения, которое я надеюсь написать, я решил придерживаться .NET 2.0, потому что многие устройства не
Теперь Windows Market Place есть, поэтому нам не нужно позаботиться о необходимых версиях .NET CF. Windows Market Place сделает все необходимое. :)
Windows Market Place сделает все необходимое. :) Windows Market Place сделает все необходимое. :)Очень просто. В нем немного кода на C ++, но вам вообще не нужно его менять. Это просто вопрос создания второго проекта cab для смарт-устройства, содержащего cab-файл .NET, который вы хотите установить (3.5 в вашем случае), и замены установочной DLL на ту, которая создана из проекта C ++, включенного в пример. Вы просто добавляете значения в реестр, которые описывают, где находятся файлы CAB, которые вы хотите установить, и вы золотые. Вам не нужно определять, какую версию .NET они установили, просто добавьте ее туда, и она будет установлена поверх любой существующей установки. Существует полный технический документ, который объясняет это в образце, а также исходный код. Просто скачайте Windows Mobile 6 SDK и перейдите в этот каталог на своем компьютере после его установки. Откройте документ под названием «Белая книга MultiCab.
Для этого я использовал NSIS. Прошло несколько месяцев с тех пор, как я написал сценарий установки, поэтому некоторые детали должны быть нечеткими.
Сначала я устанавливаю .NET CF 3.5. Я использую файл NETCFSetupv35.msi, который автоматически установит .NET CF 3.5 на мобильное устройство, если он еще не существует. Если .NET CF 3.5 уже существует, отображается диалоговое окно, в котором говорится, что он уже существует (для нас это было приемлемо). Вы можете найти / написать приложение, которое будет устанавливать возвращаемое значение, которое может быть прочитано ExecWait ( http://nsis.sourceforge.net/Docs/Chapter4.html ), а затем вызывать msi только в том случае, если .NET CF не установлен.
Затем у меня есть 8 кабинетов для установки, 3 для SQL Server Compact 3.5 (обязательно), 4 для программного обеспечения, от которого мы зависим (необязательно, в зависимости от клиента), и 1 для нашего приложения. Я следовал этому руководству: http://nsis.sourceforge.net/NSIS_for_Smartphone . Написал раздел для каждого, если вы хотите только для чтения, добавьте SectionIn 1 RO после раздела. Затем вызовите CeAppMgr, передав в качестве аргумента каждый CAB.
Для этого мы использовали AirSetup, так как он позволяет выполнять последовательную установку и работает очень хорошо и быстро.
http://windowsmobiledn.com/using-spb-airsetup-to-create-pocket-pc-installers/