2012-12-07 35 views
6

私は、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 
+0

そのライブラリの '[Files]'セクションのエントリを表示できますか? *「Vista/Win7/8でのUAC書き込みアクセスの問題を回避する方法はありますか?」*、どのような問題が考えられますか? – TLama

+0

理想的には、人間の介入なしにパッチの更新が行われるようにしてください。 DLLなどのファイルを移動または削除しようとしているときに、管理者の許可(UAC?)を求めるダイアログをクリックすることはできません。 – Surge

+0

Windows Vista上の 'Program Files'ディレクトリにあるファイルを更新/インストールする場合は、管理者特権を要求する必要があります。そうしないと、アクセス拒否エラーが発生します。この場合、明示的に指定しないでください[PrivilegesRequired](http://jrsoftware.org/ishelp/topic_setup_privilegesrequired.htm)ディレクティブ値(デフォルトでは管理者権限が必要です)。 – TLama

答えて

7

DLLにはバージョンリソースがありますか?新しいDLLは古いDLLよりも高いバージョンですか?デフォルトでは、InnoSetupはバージョンリソースを使用して、ファイルを置き換える必要があるかどうかを判断します。
[Files]セクションにignoreversionフラグを追加して、常にそのファイルを置き換えることもできます。

+0

私に見えるものから、Visual StudioセットアップソリューションのDLLにはバージョンリソースがありません。ありがとう! – Surge

+1

ちょっと不思議なことに、なぜVisual Studioのセットアップソリューションをビルドし、それをInnoSetupのインストール内に組み込むのですか?単にDLLをInnoSetupのインストール内に直接組み込むのではなく、単にVisual Studioのセットアップを使用するだけですか? – mirtheil

+0

ご指摘ありがとうございます - これは第三者によって開発されたもので、私は生産上の問題を修正しようとしています。 – Surge

関連する問題