1

ここで提案されているように、InstallShield を使用して既存の Web アプリケーションのメジャー アップグレードを作成しようとして、新しいアプリケーション プールを作成しましたが、新しい IIS アプリケーションを作成できません。ただし、新しいインストールによって新しいプールが作成されますが、既存の仮想ディレクトリが新しいプールを使用するように変更されることはありません。ログには、仮想ディレクトリが既に存在し、そのまま残されていることが示されています。

インストールで既存のコンポーネントを変更することはできますか、それとも、削除ファイル テーブルがディレクトリを想定しているため、仮想ディレクトリ コンポーネントを削除するにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

これを達成することになった

  1. String Editor テーブルの Web サイト名の値を使用して WEBSITENAME というプロパティを作成しました (これは再利用用です)。
  2. 次の条件でRemoveFoldersの後に実行する VBscript カスタム アクションを作成しました: IIS_VERSION <= "#6" and NOT INSTALLED

コードは次のとおりです。

Dim objWebServer
Dim objVirtualDir
Dim strAppName
Dim intASPSessionTimeout
Dim SubVirtDir
On Error Resume Next
    CreateApplication = ERROR_SUCCESS
    strAppName = Session.Property("WEBSITENAME")    
    SubVirtDir = "/" + strAppName
    intASPSessionTimeout = 120
    Set objWebServer = GetObject("IIS://localhost/W3SVC/1/Root")
    'Delete the Virtual subdirectory
    Set objVirtualDir = objWebServer.Delete("IISWebVirtualDir", SubVirtDir) 
    Set objVirtualDir = objWebServer.Delete("IISWebVirtualDir", strAppName) 

これは私がする必要があることをします。ここで、条件付きで Enable32bitAppOnWin64! と同様の方法を見つける必要があります。

于 2013-03-06T12:44:02.837 に答える