Summary
本記事は、CopyFile関数が上書きしようとするファイルがロックされていると関数がリターンしない、もしくは、不正な値をリターンする問題とその回避方法について解説しています。
Symptoms
- CopyFile関数がリターンせず、インストーラがハングします。
- CopyFile関数が不正な値をリターンするために、インストーラが中断します。
Cause
Steps to Reproduce
インストーラ起動前に、CopyFile関数の出力先に、出力名のファイルが存在し、ロックされていることを確認します。インストーラを起動すると本問題は発生します。
Resolution
1. 添付のファイルをダウンロードしてください(IOJ-1667248.zip)
2. 以下のファイルのファイル名を変更してください。
変更前: C:\Program Files (x86)\InstallShield\2014\Redist\Language Independent\i386\ISSetup.dll
変更後: C:\Program Files (x86)\InstallShield\2014\Redist\Language Independent\i386\ORIG_ISSetup.dll
3. 以下のファイルのファイル名を変更してください。
変更前: C:\Program Files (x86)\InstallShield\2014\Redist\Language Independent\i386\ISP\ISSetup.dll
変更後: C:\Program Files (x86)\InstallShield\2014\Redist\Language Independent\i386\ISP\ORIG_ISSetup.dll
4. ダウンロードしたIOJ-1667248.zipを解凍し、上記の各フォルダに配置してください。
5. InstallShield2014 SP 1を起動してください。
6. プロジェクトを再ビルドしてください。
このHotFixを適用した後に、ロックされたファイルに上書きしようとするとCopyFile関数は正しいエラーコード0x80070020を返します。
Workaround
CopyFileの代わりに XCopyFile を使用することでも本問題を回避することができます。
Related Articles
InstallShield 2010/InstallShield 2010 SP1/InstallShield 2010 Expansion Pack のリリースノート 10Number of Views InstallShield 評価版の機能制限について 10Number of Views InstallShield 2010 以降のアクティベーション 17Number of Views 日本語版InstallShield 2014でStandalone Buildを実行すると結果が文字化けする。 4Number of Views InstallScript プロジェクトのログ機能 4Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Revenera Assistant
Case id: 00001065
Activity: Status change: 2 hours ago