助けが必要です - 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 で実行) でセットアップをテストしていますが、セットアップを実行すると、次のエラーが発生します。
これは、実行可能ファイルが 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を何度も再起動します。