73

これは、Windows 2008 でICEの実行中に自動ビルド スイートによってスローされるエラーです ( WiX 2.0 から WiX 3.0 への移行後)。

LGHT0217: ICE アクション 'ICE01' の実行中にエラーが発生しました。この種の ICE 障害の最も一般的な原因は、正しく登録されていないスクリプト エンジンです。この問題の詳細と解決方法については、http://wix.sourceforge.net/faq.html#Error217を参照してください。次の文字列形式は、外部 UI メッセージ ロガーで予期されていませんでした:「Windows インストーラー サービスにアクセスできませんでした。これは、Windows インストーラーが正しくインストールされていない場合に発生する可能性があります。サポート担当者に連絡してください。」. light.exe(0, 0) 内

さらに、これらはイベント ログに表示されるエラーです。

MSIInstaller: サーバーへの接続に失敗しました。エラー: 0x80070005 製品: [ProductName] -- エラー 1719。Windows インストーラ サービスにアクセスできませんでした。これは、Windows インストーラーが正しくインストールされていない場合に発生する可能性があります。サポート担当者に連絡して支援を受けてください。

直感的に:

  • VBScriptJScriptは、admin の下に登録されました。
  • 統合サービスには、デスクトップ操作とすべてのファイルに対する権限があります
  • ビルドは、別のユーザーまたは統合アカウントとしてログインしているユーザー ( RDP経由)によって同じマシンで手動で実行された場合に成功します。

私はこれまでのところアイデアがありません。

ICE 検証を維持しながら、この問題を解決するにはどうすればよいですか?

4

12 に答える 12

51

物語の終わり

統合アカウント、DCOM、サービス アクティベーションなどのアクセス許可をいじった後、ローカル ビルドに保持したまま、継続的インテグレーション ビルドで ICE 検証を無効にしました。

ICE 検証を無効にするには、.wixproj ファイルで SuppressValidation を true に設定します。

    <PropertyGroup>
        <SuppressValidation>true</SuppressValidation>
    </PropertyGroup>

または、-svalコマンド ライン オプションを に渡しますlight.exe

于 2009-09-05T12:55:26.313 に答える
32

TFSビルドコントローラーアカウントをローカル管理者グループに追加し、Windowsサービスを再起動することで、私に代わって作業を行いました。

于 2011-09-01T22:16:01.650 に答える
28

根本原因を見つけました。Re: [WiX-users] light.exe fails when running ICEs. .

さまざまなスレッドで提案されているように、同時実行の問題ではありません。プロセス環境ブロック (PEB) が大きすぎることが原因です。

Windows インストーラーは、32 kB を超えるプロセス環境ブロックを処理できないことが判明しました。私の環境では、ビルド システムによって設定される変数の数とそのサイズ (たとえば、複数の重複した値を含むPATH 変数) により、PEB は約 34 kB でした。

興味深いことに、環境変数によると、Windows XP および 2003 では、PEB のハード リミットが 32 キロバイトに設定されていました。これにより、ビルドの初期段階で簡単にビルドの中断が発生する可能性があります。新しい Windows にはそのような制限はありませんが、Windows インストーラーの開発者は内部環境バッファーを 32 kB に制限し、値を超えると適切に失敗したと思います。

問題は簡単に再現できます。

  • サイズが 32 kB を超える環境変数を設定する .bat ファイルを作成します。たとえば、32 行のset Variable<number>=<text longer than 1024 characters>
  • cmd.exe を起動します。
  • 作成したバッチファイルを実行する
  • 同じ cmd.exe ウィンドウから:
    • OR で ICE 検証を使用して WiX を使用して MSI パッケージをビルドしてみてください
    • 実行smoke.exeしてパッケージを検証する OR
    • 実行するだけmsiexec /i Package.msi
  • 上記のすべてのコマンドは、最終的にレポートを作成しError 1719 - Windows Installer could not be accessedます。

したがって、解決策は、ビルド スクリプトを見直し、環境変数の数とサイズを減らして、すべてが 32 kB に収まるようにすることです。次のコマンドを実行すると、結果を簡単に確認できます。

set > environment.txt

目標は、ファイルを environment.txt30 kB 未満にすることです。

于 2012-03-15T15:12:16.017 に答える
10

問題の正しい説明 (CruiseControl アカウントをローカル管理者グループに追加することで解決できる場合を除き、解決策はありません):

Wix 3.5からの引用& Cruise Control で errorLGHT0217 が表示される:

ICE の検証には、インタラクティブなアカウントまたは管理者権限が必要です。たとえば、WiX Projects vs. TFS 2010 Team Build (2009-11-14) またはRe: [WiX-users] Help with building patch (2009-11-20) を参照してください。

于 2012-11-28T13:06:09.537 に答える
5

imagiは完全に正しいです!これが本当の答えだとは信じられませんでした。検証を抑制し、TFS ユーザーを管理者にすることは、適切な解決策ではありません。さらに、NT\Authority を見つけて管理者グループに追加することができず、これに完全に行き詰まりました。

Windows Server 2012 Datacenter でビルド エージェントと同じエラーが発生しました。この問題を解決するために :

  1. リスト項目
  2. ビルド エージェント マシンの環境変数に移動します。
  3. 2 つのシステム変数を作成する
  4. "PF86"に等しい"C:\Program Files (x86)"
  5. "PF"に等しい"C:\Program Files"
  6. 文字を節約したいので、それらは非常に短いです.TEMP、TMPなどはそのように作成されたため、最後のバックスラッシュなしで作成し、これらの変数についてはMS標準に固執することにしました.
  7. "C:\Program Files (x86)"every with%PF86%と every "C:\Program Files"withを置き換えて PATH 変数を編集します。%PF%
  8. 閉じてビルドして楽しんでください!
  9. それは私のために働いた。:)

更新 より良い解決策を見つけました。Rapid Environment Editorは、これらすべてとさらに多くのことを行います。自動的。

于 2013-01-17T16:08:22.197 に答える
3

http://wix.sourceforge.net/faq.html#Error217から:

WiX v3 では、 ビルドが成功するたびに、Light は自動的に検証(Windows インストーラーの内部整合性エバリュエーター (ICE))を実行します。検証は、サービスの問題につながる可能性のある一般的なオーサリング エラーを検出するための優れた方法です。そのため、検証が既定で実行されるようになりました。残念ながら、Windows Vista および Windows Server 2008 で発生する共通の問題があり、ICE が失敗する可能性があります。原因とその修正方法の詳細については、 Heath Stewart のブログAaron Stebner の WebLogを参照してください。

于 2010-06-03T22:13:22.213 に答える
2

私は同じ問題に直面し、ICE 検証を抑制したくありませんでした。私のセットアップ: 自分のコンピューターを Visual Studio Online (VSO) のビルド エージェントとして使用しました。私の解決策は、自分のマシンでサービスを実行するために使用するアカウントを変更することでした。Network Service または Local Service を使用する代わりに、必要なすべての権利を持つ自分のアカウントでサービスをログオンさせました。

于 2015-10-14T06:52:18.020 に答える
1

いくつか提案があります。

  • ビルド サーバーで Microsoft インストーラーのバージョンを更新してみてください
  • WiX 3.0 は現在 3.0 リリースで安定しているため、必ず最新リリースの WiX 3.0 を使用してください。
  • 他のすべてが失敗した場合は、アクセス許可をいじることができる特定のビルド ユーザーの下でビルド サービスを実行してみてください...
于 2009-07-07T17:44:11.010 に答える
0

ビルド マシンに移動し、Windows インストーラー サービスを再起動します。

于 2016-09-21T09:30:17.413 に答える