私は、DLLファイルといくつかのjavascript/htmlファイルを置き換える必要があるVB.netアプリケーション用のパッチアップデートをインストールするためにInno Setupを使用しています更新。しかし、DLLは更新されません(C:\ program files ...にあります)。UACを使用していないXPシステムでも置き換えられませんが、手動でDLLを削除してパッチを再実行するとファイルがコピーされます。これは読み取り専用ではなく、XPの場合にはUAC/admin権限は必要ありません。inno setupインストーラでDLLを上書きする必要がありますが、ファイルが置き換えられません。
ファイルが既に存在する場合、ファイルがコピーされない理由は何ですか?これはVS2008と.NET 2.0に組み込まれています。新しいDLLには最近の日付とサイズの違いがあります。
Vista/Win7/8のUAC書き込みアクセスの問題を回避する方法はありますか?私は、これらのシステム上のファイルをUACで置き換えるというパッチは決して成功しないだろうと思う。明らかにそれをオフにするために私たちのユーザー基盤を言うことはオプションではありません。
[編集] dllアセンブリは、ソリューションのビルド時にリリースフォルダからピックアップすることで、Visual Studio内のsetup.exeにパッケージされます。 [ファイル]セクションには次のものがあります:
[Files]
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\setup.exe; DestDir: {app}
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\interact.msi; DestDir: {app}
[Run]
Filename: {app}\setup.exe; Flags: runmaximized
そのライブラリの '[Files]'セクションのエントリを表示できますか? *「Vista/Win7/8でのUAC書き込みアクセスの問題を回避する方法はありますか?」*、どのような問題が考えられますか? – TLama
理想的には、人間の介入なしにパッチの更新が行われるようにしてください。 DLLなどのファイルを移動または削除しようとしているときに、管理者の許可(UAC?)を求めるダイアログをクリックすることはできません。 – Surge
Windows Vista上の 'Program Files'ディレクトリにあるファイルを更新/インストールする場合は、管理者特権を要求する必要があります。そうしないと、アクセス拒否エラーが発生します。この場合、明示的に指定しないでください[PrivilegesRequired](http://jrsoftware.org/ishelp/topic_setup_privilegesrequired.htm)ディレクティブ値(デフォルトでは管理者権限が必要です)。 – TLama