2012-02-07 2 views
8

Я делаю свой собственный файл prq для выполнения установки SQL CE 4.0 с установкой моего приложения WPF. Установщик продолжает терпеть неудачу, и я не уверен, почему. Похоже, что он пытается запустить CE exe, но затем в окне справки установщика Windows появляются все эти варианты справки командной строки. Я нажимаю OK, а затем он говорит, что установка CE не удалась. Я не знаю, как это происходит.SQL CE 4.0 как условие InstallShield

Вот мои PRQ содержимое файла:

<?xml version="1.0" encoding="UTF-8"?> 
<SetupPrereq> 
<conditions> 
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition> 
</conditions> 
<files> 
    <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SSCERuntime_x86-ENU.exe" URL="http://www.microsoft.com/download/en/details.aspx?id=17876" FileSize="0,0"></file> 
</files> 
<execute file="SSCERuntime_x86-ENU.exe" cmdline="/passive /norestart" cmdlinesilent="/passive /norestart"></execute> 
<properties Id="{F7BF54C1-CA2C-4410-98DB-480769CE6547}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0."></properties> 
</SetupPrereq> 

Любая помощь будет оценена.

+0

Вы также можете рассмотреть частные параметры развертывания, предоставляемые SQL CE. Насколько я помню (задокументированный в ответе меня где-то здесь, на SO), это небольшая часть DLL и некоторые настройки в вашем App.Config. Это позволяет делать все в одной MSI без необходимости связывать другие MSI. –

+0

Я посмотрел на личное развертывание, и он казался слишком волосатым. Много возможностей сделать что-то не так. Я закончил удаление параметров cmdline, и установщик просто запускает подсказку установки CE, поэтому он отлично работает. – Beanwah

+0

Это действительно работает очень хорошо. Фактически в последние пару дней я увидел новый вопрос/ответ здесь, где человек сказал, что они сделали частное развертывание, и это было действительно просто и отлично работало. В любом случае, выбор за вами. –

ответ

6

Я был в состоянии заставить его работать от того, что кажется, что так

<?xml version="1.0" encoding="UTF-8"?> 
<SetupPrereq> 
<conditions> 
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition> 
</conditions> 
<files> 
    <file LocalFile=".\SSCERuntime_x86-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x86-ENU.exe" FileSize="0,0"></file> 
</files> 
<execute file="SSCERuntime_x86-ENU.exe" cmdline="/i /passive" cmdlinesilent="/i /passive"></execute> 
<properties Id="{05DCCDB5-57E0-4314-A016-874F228A8FAD}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0 x86."></properties> 
</SetupPrereq> 

х64 сценария

<?xml version="1.0" encoding="UTF-8"?> 
<SetupPrereq> 
<conditions> 
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition> 
</conditions> 
<files> 
    <file LocalFile=".\SSCERuntime_x64-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x64-ENU.exe" FileSize="0,0"></file> 
</files> 
<execute file="SSCERuntime_x64-ENU.exe" cmdline="/i /passive" cmdlinesilent="/i /passive"></execute> 
<properties Id="{05DCCDB5-57E0-4314-A016-874F228A8FAD}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0 x64."></properties> 
</SetupPrereq> 
+0

Спасибо, что поделились! – mmmmmm

+0

@ Enzero: Я создал 2 разных файла PRQ для x86 и x64. Но при установке он показывает оба файла по мере необходимости. Как я могу пропустить установку файла x86 для терминала x64? –

2

В ответ на замечание rishiJasapara, я сделал сценарии на основе предыдущего ответа.

Идея такая же, чтобы создать два сценария: один для x86 и другой для платформы x64. Вы должны выбрать обе предпосылки в своем проекте InstallShield, но со сценариями, перечисленными ниже на странице установки на целевой машине, вы увидите только тот, который соответствует архитектуре процессора машины.

Microsoft SQL CE 4.0 x86.prq:

<?xml version="1.0" encoding="UTF-8"?> 
<SetupPrereq> 
    <conditions> 
     <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition> 
    </conditions> 
    <operatingsystemconditions> 
     <operatingsystemcondition CSDVersion="" Bits="1"></operatingsystemcondition> 
    </operatingsystemconditions> 
    <files> 
     <file LocalFile=".\SSCERuntime_x86-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x86-ENU.exe" CheckSum="0A55733CF406FBD05DFCFF5A27A0B4F7" FileSize="0,2379544"></file> 
    </files> 
    <execute file="SSCERuntime_x86-ENU.exe"></execute> 
    <properties Id="{2754916B-119B-4428-9F94-DC9E45072CCC}"></properties> 
    <behavior Failure="4" Reboot="2"></behavior> 
</SetupPrereq> 

Microsoft SQL CE 4.0 x64.prq:

<?xml version="1.0" encoding="UTF-8"?> 
<SetupPrereq> 
    <conditions> 
     <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition> 
    </conditions> 
    <operatingsystemconditions> 
     <operatingsystemcondition CSDVersion="" Bits="2"></operatingsystemcondition> 
    </operatingsystemconditions> 
    <files> 
     <file LocalFile=".\SSCERuntime_x64-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x64-ENU.exe" CheckSum="A417082ECAEDD95AFB41F73DC140C350" FileSize="0,2621240"></file> 
    </files> 
    <execute file="SSCERuntime_x64-ENU.exe"></execute> 
    <properties Id="{7CB7BE3C-614A-403F-94D9-5652285A3EDF}"></properties> 
    <behavior Failure="4" Reboot="2"></behavior> 
</SetupPrereq> 

Как вы можете видеть, основное отличие это дополнительный "operatingsystemconditions" на Wich правильного Установлен пакет установки SQL CE.

Я тестировал его на 32-разрядных и 64-битных системах Windows 7, и он действительно работает нормально.

Смежные вопросы