1

MVC3 Web アプリケーションに VS2010 Web セットアップ プロジェクトを使用しています。インストールで問題なく動作しています。しかし、アップグレードのために MVC3 webapplication バイナリと Web セットアップ プロジェクトのバージョンを (古いバージョンの既存のインストールから) 更新すると、宛先ディレクトリの web.config ファイルは置き換えられません。他のすべてのファイルとディレクトリは置き換えられて更新されますが、「web.config」ファイルのみが Web セットアップによって置き換えられません。

Webアプリケーションで何かを更新するたびに、WebセットアッププロジェクトとMVC3アプリケーションのバージョンを変更しています。

「ProductCode」と「UpgradeCode」も変更してみましたが、それでもweb.configファイルは同じです(最初のバージョンの)

Webセットアッププロジェクトの次のプロパティを設定します

  • DetectNewerInstalledVersion - True
  • 以前のバージョンを削除 - True
  • RestartWWWService - true

既存の web.config ファイルを手動で削除/削除してから新しいバージョンをインストールすると、新しい更新された web.config ファイルが配置されます。この問題は、既存の web.config ファイルが宛先ディレクトリにある場合にのみ発生します。

カスタムアクションの「OnBeforeInstall」を試して、既存のweb.configファイルを削除または名前変更して、新しいwe.configがインストール時にコピーされるようにしました。しかし、カスタムアクションメソッドが実行される前に、すべてのファイルがコピーされることがわかりました。

これを解決するのを手伝ってください。または、クライアントに Web セットアップ プロジェクトを提供する別の方法を提案してください。

前もって感謝します!

編集: Web Setup プロジェクトのバージョンを変更すると、productcode は自動的に変更されますが、upgradecode は同じままであることがわかりました。

4

1 に答える 1

0

インストール時に、インストーラーは、置き換える各ファイルのバージョンを確認します。そのため、ファイルが同じバージョンであるか、2 つのインストーラー間で変更されていない場合、インストーラーはファイルを置き換えません。ただし、そのファイルが存在しない場合、インストーラーはそのファイルを削除します。

解決策: 「costfinilize」の前にファイルを削除してみてください。したがって、あなたの場合、「costfinilize」の前にカスタムアクションを呼び出してファイルを削除/削除してください。

Orca を使用して、msi のすべてのカスタム アクションの実行順序を確認できます。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx

于 2013-08-20T11:09:11.250 に答える