1

IIS で作成された Web サイトがあります。その下に仮想ディレクトリを作成し、その下に別の仮想ディレクトリを作成したいと考えています。アンインストールするとき、最初の仮想ディレクトリに何かがある場合にのみ、最後の仮想ディレクトリをアンインストールします。(アンインストールするか、そのままにしておくか、どちらでもかまいません。)

-Website
|-VirtualDirectory1
||-VirtualDirectory2

ここに私の現在のコンポーネントがあります:

version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
  <!-- Setup IIS. -->
  <Fragment>
    <!-- Since these are outside of a component, they're not being created, just referenced.
         http://www.wintellect.com/cs/blogs/jrobbins/archive/2011/01/25/install-a-new-virtual-directory-to-default-web-site-with-wix.aspx -->
    <iis:WebSite Id="Services" Description="Services">
      <iis:WebAddress Id="ServicesBindings" Header="[Hostname]" Port="80" />
    </iis:WebSite>
    <iis:WebAppPool Id="ToolkitServicesAppPool" Name="Toolkit Services" />

    <ComponentGroup Id="IISComponents" Directory="InstallDirectory">
      <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes">
        <iis:WebVirtualDir Id="ToolkitDir" Alias="Toolkit" Directory="Toolkit" WebSite="Services">
          <iis:WebVirtualDir Id="AppDir" Alias="App" Directory="InstallDirectory">
            <iis:WebApplication Id="AppApp" Name="App" WebAppPool="ToolkitServicesAppPool" />
          </iis:WebVirtualDir>
        </iis:WebVirtualDir>
      </Component>
    </ComponentGroup>
  </Fragment>
</Wix>

コンポーネントの外では許可されていないため、WebVirtualDir を WebSite の下に配置することはできません。そのため、VirtualDirectory1 を手動で作成して使用することはできません。また、WebDir を使用して VirtualDirectory1 を (ランダムに) 定義しようとしましたが、WebDir の下に WebVirtualDir を定義することはできません。仮想ディレクトリを参照する方法がないため、それを永続的なコンポーネントにドロップして別のコンポーネントから参照することはできません。

これは基本的に以前に尋ねられましたが、答えはありません。どんなアイデアでも大歓迎です。

4

1 に答える 1

0

次の方法で実行できます。

  1. ルート vdir を含む永続的なコンポーネントを作成します。または、複数の製品間でコンポーネントを共有すると、すべての製品がアンインストールされない限り、ルート vdir は削除されません。
  2. 別名「root_vdir_name/new_vdir_name」で別のコンポーネントを作成します。

    <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes" Permanent="yes">
      <iis:WebVirtualDir Id="ToolkitDir" Alias="Toolkit" Directory="Toolkit" WebSite="Services" />
    </Component>
    
    <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes">
      <iis:WebVirtualDir Id="AppDir" Alias="Toolki/App" Directory="InstallDirectory" WebSite="Services">
        <iis:WebApplication Id="AppApp" Name="App" WebAppPool="ToolkitServicesAppPool" />
      </iis:WebVirtualDir>
    </Component>
    
于 2014-01-17T08:44:29.010 に答える