2012-02-07 39 views
8

我正在製作我自己的prq文件,以便使用我的WPF應用程序安裝來執行SQL CE 4.0安裝。安裝程序保持失敗,我不知道爲什麼。它看起來像試圖運行CE exe,但隨後Windows Installer幫助窗口出現了所有這些命令行幫助選項。我點擊OK,然後它說CE的安裝失敗了。我不知道如何確定發生了什麼問題。作爲InstallShield的SQL CE 4.0先決條件

這是我的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提供的私有部署選項。正如我記得(記錄在我的某個地方的回答中),這是一些DLL和App.Config中的一些設置。這使您可以在單個MSI中完成所有任務而無需鏈接其他MSI。 – 2012-02-13 02:43:01

+0

我看着私人部署,它看起來太多了。很多做錯事的可能性。我最終刪除了cmdline選項,安裝程序啓動了CE安裝提示符,因此它可以很好地工作。 – Beanwah 2012-02-15 18:40:29

+0

它實際上工作得很好。事實上,在過去的幾天裏,我在這裏看到了一個新的問答,這個人說他們進行了私人部署,而且這非常簡單,而且工作得很好。無論哪種方式,選擇是你的。 – 2012-02-15 19:03:14

回答

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 2013-06-19 12:38:49

+0

@Enzero:我爲x86和x64製作了2個不同的PRQ文件。但是在安裝時,它會根據需要顯示兩個文件。如何跳過x64終端的x86文件安裝? – 2013-12-02 10:00:50

2

爲響應rishiJasapara的評論,我根據以前的回答讓腳本。

這個想法是一樣的,創建兩個腳本,一個用於x86,另一個用於x64平臺。 您必須在InstallShield項目中選擇兩個先決條件,但在目標機器上的安裝頁面中列出下面的腳本,您將看到唯一對應於機器處理器體系結構的一個。

微軟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> 

微軟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」 SQL CE安裝包已確定。

我在Windows 7 32位和64位系統上測試過它,它實際上工作正常。