15

WiX3.5を使用しています。最近、ビルドサーバーで次のWiXエラーが頻繁に発生し始めました。

light.exe(、):エラーLGHT0301:データベースを開くことができませんでした。検証中に、これはサポートされていないコードページまたは有効なWindowsインストーラデータベースではないファイルを使用してデータベースを開こうとしたときに最も一般的に発生します。Module / @ Codepage、Package / @ SummaryCodepage、Product / @ Codepage、またはWixLocalization /@Codepageで別のコードページを使用してください。または、有効なWindowsインストーラデータベースへのパスを指定してください。

エラーが参照している「データベース」はどれですか?(WiXソースファイルは長い間変更されていないので、コードページの問題ではないかと思います。)

他の人は、このエラーは実際にビルドサーバーにインストールされているTrend MicroOfficeScanが原因である可能性があると報告しています。システム管理者にビルドディレクトリをスキャンから除外するように依頼しましたが、このエラーは引き続き発生します。ウイルススキャナーが原因であるかどうかをどのように判断できますか?(エラーが常に発生するとは限らないため、ウイルススキャナーを無効にして次のビルドが成功した場合でも、エラーが完全に解消されたかどうかはわかりません。)

4

7 に答える 7

15

「ICE検証を無効にする」は私のために機能しました-.SetupのVisualStudio2012を介した設定だけです。

于 2013-10-07T14:22:21.550 に答える
13

WiXソースコードを調べてProcessMonitorを実行たところ、ウイルススキャンからビルドディレクトリを除外するだけでは不十分であることがわかりました。

説明: light.exeを実行すると、一時ディレクトリにターゲットMSIファイルが作成されます。(このファイルは、LGHT0301エラーメッセージが参照するデータベースです。)light.exeがMSIファイルを閉じた後、ntrtscan.exeは読み取りアクセスと読み取り専用共有のためにMSIファイルを開きます。その後、データベースの検証手順で、light.exeが読み取り/書き込みアクセスのためにMSIファイルを再度開こうとし、共有違反が発生します。

解決策:リアルタイムウイルススキャンから一時ディレクトリを除外します。たとえば、Windows Server 2008では、このディレクトリはC:\Users\«username»\AppData\Local\Tempです。

于 2013-02-12T23:58:28.670 に答える
4

これは、ビルドプロセスとウイルス対策に共通の問題です。スキャナーは新しいMSIパッケージを検出し、スキャンを試みます。一方、ビルドプロセスは、 Internal Consistency Evaluators (ICE)スイートを実行して検証しようとし ますが、データベースにミューテックスがあるために失敗します。

ビルド出力フォルダからウイルススキャンを削除する必要があります。または、検証をLightコマンドから切り離して、ICE検証を実行する前にアンチウイルススキャンがMSIハンドルを放棄するようにします。

于 2013-02-12T20:16:02.713 に答える
3

私は同じ問題を抱えていましたが、それは実際には私のシステムのコードページと言語設定に関連していました。

Windowsの地域設定に英語の入力言語を追加すると、ドイツ語のWindowsインストールの問題が解決しました。

于 2013-02-28T13:52:36.627 に答える
2

本当の原因はトレンドマイクロのリアルタイムスキャンでした!

(以下は過去の参考用です)

@Michael Liuの回答に従い、問題を解決しました


私も同じ問題を抱えていました。

これらのタグのいずれか、または実際にはWXSのどこでもCodepage(またはSummaryCodepage)を参照していません。Codepage = "1252"を入れても、何も変わりませんでした。

最後に、追加してみました

encoding="utf-8"

以前はversion='1.0'属性しか持っていなかったXMLタグに。これにより、 「データベースを開くことができませんでした」エラーで説明されているように、問題が修正されました。-解決済み

于 2013-05-29T05:03:34.960 に答える
1

それは私にとってもウイルス対策プログラムでした。

問題がアンチウイルスプログラムに関連しているかどうかを確認する簡単な方法は、WiXプロジェクト設定(バージョン3.7を使用)でICE検証を無効にすることです。私たちの会社ではウイルス対策ソフトウェアの設定を変更できないため、これは私にとってはうまくいき、現在は永続的な設定です。

于 2013-09-27T17:13:46.633 に答える
-2

これは、WiXの使用中に私が見つけた最も一般的なエラーです。このための最も簡単な解決策は、プロジェクトのプロパティ→ツール設定→(チェック)ICE検証の抑制に移動することです。

于 2014-12-05T14:19:24.410 に答える