msiを作成しています。 OSのアーキテクチャに関係なく、1つのファイルをSystem32フォルダにコピーする必要があります。 SystemFolder
プロパティを使用すると、x64のSysWOW64
フォルダに表示されます。同じmsiにSystem64FolderとSystemFolderを使用することができますか?これを行う方法は他にありますか?64ビットOS上でSystem32にファイルをコピー
答えて
ネイティブの64ビットシステムフォルダにファイルをインストールすることはできません。 32ビットのWoW64フォルダにリダイレクトされ、冗長なログにWIN64DUALFOLDERSリダイレクトが表示されます。ドキュメントはここに言うように:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa367451(v=vs.85).aspx
32ビットのMSIは32ビットコンポーネントを含めることができます。したがって、ファイルをネイティブの64ビット・フォルダにインストールする32ビット・インストールでは、64ビット・コンポーネントをインストールすることはできません。
異なる設定が異なるアーキテクチャのために必要とされています
ので、一つの解決策は、そのファイルをインストールするには、64ビットのセットアップを含んWiXのバーンバンドルだろう。
32bitインストールから64bitシステムフォルダに何かを書き込もうとしたことはありませんでした。なぜなら、サードパーティのライブラリdllがそこにあり、dllロードオーダーが最初に見つかった場合に起こりうる悪い動作を見てきたからです。私は、コンポーネントのWin64タグは、レジストリ関連の要素でWin64タグのように動作すると仮定しました。 –
64ビットマシンの "System32"フォルダに明示的に64ビットで入る必要のあるコンポーネントをマークし、その事実を条件にします。
<Component Id="IAmA64BitBinary" Win64="yes" Directory="SystemFolder">
<Condition>VersionNT64</Condition>
<File Id="IAmTheBinary" KeyPath="yes" Source="file.dll">
</Component>
「Win64のは=」YES「」これは、64ビットSystemFolderを参照して、条件がこの成分にのみ、このシステムフォルダが実際に存在する64ビットマシンにインストールを確実にすることを示しています。
条件が必要な場合は100%確信はありませんが、私は推測していません。あなたには、いくつかの64ビットコンポーネントを必要としている場合、私はあなたが起動条件は(も
<Comdition message="Must install on a 64-bit OS">VersionNT64</Condition>
は注意することは、あなたのinstalltionに追加した示唆し、私たちはので、この起動条件に追加する「またはインストール」する必要はありません。 VersionNT64プロパティは、インストールとアンインストール/アップグレードの間で変更できません)。
- 1. MSIインストーラ、64ビットOS、\ windows \ system32 \ inetsrvフォルダに書き込む
- 2. 32ビット/ 64ビットOS?
- 3. 64ビットOS上の32ビットまたは64ビットアプリケーション?
- 4. Bootstrapperの場合、FileCheck要素がSystem32の64ビットOS上のファイルを見つけられません
- 5. AnyCPUアプリケーションを64ビットOS上で32ビットとして実行
- 6. 64ビットOS上の64ビットCPU上でX86-64 Pythonを実行する利点はありますか?
- 7. 64ビットOS上で32ビットOSランタイムの問題でコンパイルされたJava
- 8. VB.NET Windows 7 64ビット書き込みファイル:C:\ Windows \ System32
- 9. 32ビットOSで64ビット実行可能ファイルを作成する
- 10. 64ビットOS上の32ビットJVMを使用したJNA
- 11. 32ビットOS上のNetBeansで作成した.exe(64ビットWindows 10上)
- 12. Windows 10のShellExecuteEx()64ビットOS
- 13. 64ビットアーキテクチャの32ビットOS
- 14. 64ビットOSのコマンドライン引数
- 15. 64ビットOS for Raspberry Pi 3
- 16. 64ビットOS用のMicrosoft.Win32.RegistryKey
- 17. 64ビットOS上でアセンブリプログラムを実行する方法は?
- 18. 64ビットOSで32ビットSTSを使用できますか?
- 19. 64ビットOSで32ビットVisual C#プロジェクトを開く
- 20. 64ビットLinux OSでの32ビットQtアプリケーションのコンパイル
- 21. 64ビット環境での32ビットOS Xバイナリのコンパイル
- 22. 32ビット/ 64ビットアプリケーション、OS、プロセッサの関係は?
- 23. 窓64ビットのOSは、JDBCは
- 24. Windowsアプリケーションの64ビットOSへのインストール10
- 25. .Net WinFormシステムのビープ音(64ビットOS)
- 26. Windows上でGIT 32ビットを64ビットにアップグレードするには?
- 27. 64ビットWeblogic Server上の32ビットJDK
- 28. Javaアプリケーションから32ビットOSまたは64ビットOSを決定する方法
- 29. ビルドapr-util 64ビットMac OS Xは32ビット版をビルド
- 30. 64ビットマシン上のSQL Server 2012 32ビットまたは64ビット?
あなたが 'SystemFolder'を使用している場合、64ビットOS上でも '' '' C:\ Windows \ System32 '' 'を取得しますか?これは32ビットOSでも同じです。 – harper
'SysWOW64' *は32bファイル用です – PeeHaa
@harper no。 SystemFolderを使用すると、私はSysWOW64を取得します。私は32ビットOSでSystem32を手に入れました。 x64 OSでもC:\ Windows \ System32にコピーする必要があります –