2012-02-07 25 views
8

自分のprqファイルを作成して、WPFアプリケーションインストールでSQL CE 4.0をインストールします。インストーラーは失敗を続け、私はなぜそれがわかりません。 CE exeを実行しようとしたようですが、Windowsインストーラのヘルプウィンドウにこれらのコマンドラインヘルプオプションがすべて表示されます。 [OK]をクリックすると、CEのインストールが失敗したと表示されます。私は何がうまくいかないのかを判断する方法はありません。すべてのヘルプははるかに高く評価されるだろうInstallShieldとしてのSQL CE 4.0前提条件

<?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> 

は、ここに私のPRQファイルの内容です。

+0

また、SQL CEが提供するプライベート展開オプションについて検討することもできます。私が思い出したように(SOのどこかで私の答えが書かれています)、App.ConfigにはいくつかのDLLといくつかの設定があります。これにより、他のMSIを連鎖させることなく、単一のMSIですべてを行うことができます。 –

+0

私は私的な展開を見て、それはあまりにも毛深いようでした。間違ったことをする可能性がたくさんある。私はcmdlineオプションを削除してしまい、インストーラがCEのインストールプロンプトを起動してしまったので、うまくいきました。 – Beanwah

+0

実際には本当にうまく動作します。実際、過去2〜3日間、私はここで新しい質問/回答を見ました。そこでは、個人がデプロイメントを行ったと言っていて、それは本当にシンプルで素晴らしい仕事でした。いずれにせよ、選択はあなたのものです。 –

答えて

6

私はそれはそれはrishiJasaparaさんのコメントに応答して、その

<?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> 

x64のスクリプト

<?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:x86とx64用に2種類のPRQファイルを作成しました。しかし、インストール中は、必要に応じて両方のファイルを表示します。 x64端末のx86ファイルのインストールをスキップするにはどうすればよいですか? –

2

のように思えるものから、仕事を得ることができた、私は前の回答に基づいてスクリプトを作りました。

2つのスクリプト(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" でありますSQL CEインストールパッケージが決定されます。

私はそれをWindows 7の32ビットと64ビットシステムでテストしましたが、実際に正常に動作します。

関連する問題