3

Windows Server 2008 64 ビットでは、いくつかのファイルを \windows\system32\inetsrv フォルダーに書き込むために .msi インストーラー ファイルが必要です。(ファイルはいくつかの XML スキーマ検証ファイルであり、C# XmlReaderSettings.Schema.Add() はそのフォルダーにあると想定しています)。

インストーラーが実行されると、ファイルは必要な場所ではなく、\windows\SysWOW64\inetsrv フォルダーに配置されます。

インストーラーに \windows\Sysnative フォルダーへの書き込みを試みたところ、インストーラーはその正確な名前のフォルダーを作成しましたが、これが可能になるとは思っていませんでした。SysWOW64 リダイレクトの抑制に関する適切な議論については、このページを参照してください。

Windows 2008 64 ビットの \windows\system32\inetsrv フォルダーにファイルを書き込む .msi を取得するにはどうすればよいですか?

4

3 に答える 3

2

使用できるシステム フォルダのプロパティは次のとおりです。直感に反することはわかっていますが、System64Folderを試しましたか? 備考を読んでください。

それでもうまくいかない場合は、 System32 をWindowsFolderの最後に追加してみてください。

編集-1: Component 要素に Win64 属性を設定してみて、リダイレクトの動作が変わるかどうかを確認してください。

于 2009-08-28T17:01:28.220 に答える
1

wxs ファイルで Sysnative を使用しようとしましたが、同じ結果が得られました。System32 を使用する代わりに、Windows の下に Sysnative フォルダーを作成します。そこで、vbscript CA で Sysnative を使用しました。Windows フォルダー (&H24&) を見つけて、\Sysnative を追加します。これは機能しますが、アンインストール中にファイルを削除するには、2 つ目の CA が必要です。

于 2011-10-04T09:20:33.807 に答える
0

ファイルを \windows\system32 ではなく \windows に書き込むことで問題を解決しました。C# の XmlReaderSettings.Schema.Add() は、\windows ディレクトリの下の完全修飾パスで機能することがわかりました。指定されたパスが完全修飾されていない場合は、デフォルトで system32 フォルダーになります。

これは実際には質問に対する答えではありませんが、当面のニーズに対する回避策です。

于 2009-09-17T19:24:41.757 に答える