6

VB.net アプリケーションのパッチ アップデートをインストールするために Inno Setup を使用しています。アップデート用の DLL ファイルといくつかの javascript/html ファイルを置き換える必要があります。ただし、DLL は更新されません (C:\program ファイルにあります...) - UAC のない XP システムでも置き換えられませんが、手動で DLL を削除してパッチを再実行すると、ファイルがコピーされます。 . これは読み取り専用ではなく、XP の場合には UAC/admin 権限は関係ありません。

ファイルが既に存在する場合、ファイルがコピーされない理由は何ですか? これは VS2008 と .NET 2.0 で構築されています。新しい DLL には、より新しい日付とサイズの違いもあります。

Vista/Win7/8 での UAC 書き込みアクセスの問題を回避する方法はありますか? UAC がオンになっているこれらのシステムのファイルをパッチで置き換えることは決してできないと思います。ユーザーベースにオフにするように指示することは、明らかにオプションではありません.

[編集] dll アセンブリは、ソリューションのビルド時に Release フォルダーから取得することにより、Visual Studio 内の setup.exe にパッケージ化されます。inno setup iss [File] セクションには次のものがあります。

[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
4

1 に答える 1

7

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

于 2012-12-07T13:58:02.253 に答える