0

助けが必要です - Windows XP KN SP3 で VS セットアップを動作させるのに問題があります。これは、Microsoft SQL Express バージョン チェッカーの実行可能ファイルで「SqlExpressChk.exe は有効な Win32 アプリケーションではありません」というエラーが発生し、わからないためです。すでに多くのことを試したので、それを修正する方法。詳細は次のとおりです。

ローカル マシンからインストールする (ダウンロードしない) 3 つの前提条件を備えた VS セットアップ プロジェクトがあります。それらは、.NET 4 Framework、SQL Server 2008 R2、および Windows Installer 4.5 です。MS ダウンロード センターから必要なすべてのブートストラップ ファイルをダウンロードし、ローカルの開発マシンに保存して、VS セットアップ プロジェクトが正常にビルドされるようにしました。

Windows KN SP3 (Hyper-V で実行) でセットアップをテストしていますが、セットアップを実行すると、次のエラーが発生します。 SqlExpressChk.exe は有効な Win32 アプリケーション エラーではありません

これは、実行可能ファイルが 64 ビットであることを示唆しています。セットアップが 32 ビット マシン上にあることを認識しているのに、64 ビット バージョンのチェッカーを使用するのはなぜですか? このチェッカーの 32 ビット バージョンを入手できれば、セットアップは続行されるかもしれませんが、何も見つかりません。

インストール ログには次のように表示されます (ただし、sqlexpresschk.exe が実行されていない場合、ロガーは実際の値をどのように認識するのでしょうか?):

Running checks for package 'SQL Server 2008 R2 Express', phase BuildList Running external check with command 'SqlExpress2008R2\SqlExpressChk.exe' and parameters '10.50.1600 1033' Process exited with code 0 Setting value '0 {int}' for property 'SQLExpressChk' The following properties have been set for package 'SQL Server 2008 R2 Express': Property: [SQLExpressChk] = 0 {int} Running checks for command 'SqlExpress2008R2\SQLEXPR32_x86_ENU.EXE' Result of running operator 'ValueNotExists' on property 'VersionNT': false Result of running operator 'VersionLessThan' on property 'VersionNT' and value '5.1.3': false Result of running operator 'VersionEqualTo' on property 'VersionNT' and value '5.2.0': false Result of running operator 'VersionEqualTo' on property 'VersionNT' and value '5.2.1': false Result of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': false Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-1': false Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-2': false Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-3': false Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-4': false Result of running operator 'ValueLessThan' on property 'SQLExpressChk' and value '-4': false Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'Intel': false Result of running operator 'ValueNotEqualTo' on property 'SQLExpressChk' and value '1': true Result of checks for command 'SqlExpress2008R2\SQLEXPR32_x86_ENU.EXE' is 'Bypass' Running checks for command 'SqlExpress2008R2\SQLEXPR32_x86_ENU.EXE' Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'Intel': false Result of running operator 'ValueNotEqualTo' on property 'SQLExpressChk' and value '2': true Result of checks for command 'SqlExpress2008R2\SQLEXPR32_x86_ENU.EXE' is 'Bypass' Running checks for command 'SqlExpress2008R2\SQLEXPR_x64_ENU.EXE' Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'amd64': true Result of checks for command 'SqlExpress2008R2\SQLEXPR_x64_ENU.EXE' is 'Bypass' Running checks for command 'SqlExpress2008R2\SQLEXPR_x64_ENU.EXE' Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'amd64': true Result of checks for command 'SqlExpress2008R2\SQLEXPR_x64_ENU.EXE' is 'Bypass' 'SQL Server 2008 R2 Express' RunCheck result: No Install Needed

インストールをバイパスしています。

Result of running operator 'ValueNotEqualTo' on property 'SQLExpressChk' and value '1': true

package.xml以降:

<BypassIf Property="SQLExpressChk" Compare="ValueNotEqualTo" Value="1"/>

その値が何を反映しているのかわかりませんが、おそらくあなたの誰かが反映していますか?

どう思いますか?

よろしく、 セルゲイ

ps

私が試したことには、パッケージの再ダウンロード、プロジェクトの再構築、ターゲットのWindows XPマシンへのSQL Server 2008 r2のインストール(セットアップはそれ自体で正常に実行されます)、およびバージョンチェッカーのローカルバージョンの検索が含まれます、しかし見つかりませんでした。SQL CE で動作するように EF モデルを変更しようとしても、SQL Express に依存する必要はありませんが、EF で別の問題が発生し、それができなくなります。win xpを何度も再起動します。

4

1 に答える 1

1

私はそれを理解したと思います。まず、C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\SqlExpress2008R2\SqlExpressChk.exe をバックアップしました。次に、SqlExpressChk.exe を C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SqlExpress2008 から C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A にコピーしました。 \Bootstrapper\Packages\SqlExpress2008R2.

私が狂っていないことを証明する別の記事をオンラインで見つけました: https://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/

于 2015-04-12T02:28:58.927 に答える