3

作成したアプリケーション用のMSIインストーラーがあります。インストーラーはWindows7で正常に動作します。今日、Windows 8でスモークテストを実行することにしましたが、WMIクエリで爆発しました。私のひざまずく反応は、WMIクエリに問題があるというものでしたが、数時間掘り下げて(そして追加のエラーを見つけて)、コードに関係のないシステム上の問題があると思い始めました。

私が見つけた特定のインスタンスは次のとおりです。

  • WMIクエリの失敗。特定の名前空間を照会しようとしました。Windows 7と8のマシン間で名前空間のセキュリティ権限を比較しましたが、それらは同じです。WMI名前空間ACLに「INTERACTIVE」を追加すると(元々はSYSTEMとAdministratorのみが含まれていました)、8台のマシンでクエリを実行できるようになり、次の問題を見つけることができました...
  • LOCAL_MACHINEでレジストリキーを開けませんでした。キーを使用したブロックをコメントアウトしたので、次の問題に進みました...
  • 「プログラムファイル」でファイルを開かない

私がしたこと:

  • UACは最初は完全にオフでしたが、オンにしました(完全にアップし、すべてを通知します)。
  • WMI名前空間のACLをいじくり回しました
  • WMIクエリで偽装を使用してみました

Windows 8のトリッ​​クが欠けていますか?

(コードはC#、. NET 4.0です)

4

2 に答える 2

1

Windows 8は、オフになっているUACを処理する方法がWindows 7/Vistaとは異なります。7 / Vistaでは、プログラムに高い整合性レベルが与えられましたが、8つのプログラムでは中程度の整合性レベルが与えられました。

出典:http ://www.brianbondy.com/blog/id/140/

于 2012-11-05T15:51:35.543 に答える
0

あなたは本当に私に仕事をすることをあまり与えていないので、私は多くの仮定をして、私がWindows8で見た他のインストーラーからの失敗に基づいて手足に出かけるつもりです。

Windows7と同じバージョンの.NETがWindows8にあることを確認してください。.NET3.5/4.0および4.5をインストールします。

あるバージョンのフレームワークにバインドされ、.NET 4.5しかない場合にエラーをスローする、InstallUtilを使用して記述されたコードカスタムアクションを管理するいくつかのインストーラー(1つはTFS Power Tools)を見てきました。

もちろん、これに対する修正は、代わりにWix / DTFカスタムアクションを使用し、CustomAction.Configを使用して、サポートされているランタイムを指定し、レガシーアクティベーションポリシーを許可することです。

于 2012-11-03T01:37:33.743 に答える