Используя WiX, как я могу изменить свойство подпапки виртуального каталога? - PullRequest
2 голосов
/ 01 июня 2010

У меня есть иерархия элементов Каталога в скрипте WiX.

У меня также есть компонент, который создает виртуальный каталог (используя IIS: WebVirtualDir), который указывает на корень моей иерархии каталогов.

Как изменить свойство (например, AnonymousAccess) подпапки виртуального каталога, например,

MyVirtualDir <<< это корневой каталог виртуального каталога </p>

MyVirtualDir \ MySubFolder <<< это подпапка, для которой я хочу изменить свойство с помощью WebDirProperties </p>

Обратите внимание, что я не хочу создать новый виртуальный каталог для подпапки. Я только хочу изменить несколько настроек безопасности.

Текущий скрипт слишком велик для размещения здесь, но взгляните на руководство по WiX: 5.3 Веб-каталог . Предположим, что в этом примере был другой элемент Directory с именем «MySubFolder», вложенный в элемент «InstallDir». Каким будет следующий шаг, чтобы установить свойства для «MySubFolder», не превращая его в виртуальный каталог?

1 Ответ

3 голосов
/ 01 июня 2010

Пример кода для IIS: веб-элемент, кажется, трудно найти, но после некоторых проб и ошибок, я думаю, что нашел решение:

Создайте папку как обычно в иерархии каталогов:

<Directory Id='blahDir' Name='blah'>
    <Component Id ='CreateBlah' Guid='B1976E1A-DEB1-4FBB-A5AB-4AA60930D2DC'>
        <CreateFolder />
    </Component>
</Directory>

Создание элемента IIS: WebDirProperties (в данном случае некоторые случайные значения для тестирования):

<IIS:WebDirProperties Id="ReadAndExecute" Read="yes" Write="yes" Script="yes" Execute="yes" AnonymousAccess="yes" Index="no" LogVisits="no" />

Создайте компонент IIS: WebDir, указывающий на папку и элемент WebDirProperties:

<Component Id='TestWebDir' Guid='8ED05357-1AAE-49F2-8C66-8813583C8157'>
    <IIS:WebDir WebSite='DefaultWebSite' Id='MyWebDir' Path='Test/blah' DirProperties='ReadAndExecute' />
</Component>

Весь образец, адаптированный из учебника по WiX, можно найти ниже:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:IIS="http://schemas.microsoft.com/wix/IIsExtension">
    <Product Name='Foobar 1.0' Id='48A3DF7A-E1C3-48BE-91D9-4D7368740A78' UpgradeCode='F8ABBBC9-0696-4FA9-A0DC-C9368E858A76'
      Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'>

        <Package Id='*' Keywords='Installer'
          Description="Acme's Foobar 1.0 Installer"
          Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.'
          InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />

        <Icon Id="AddRemoveProgram.ico" SourceFile="AddRemoveProgram.ico" />
        <Property Id="ARPPRODUCTICON" Value="AddRemoveProgram.ico" />

        <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
        <Property Id='DiskPrompt' Value="Acme's Foobar 1.0 Installation [1]" />

        <Directory Id='TARGETDIR' Name='SourceDir'>
            <Directory Id='ProgramFilesFolder' Name='PFiles'>
                <Directory Id='InstallDir' Name='Acme'>

                    <Directory Id='blahDir' Name='blah'>
                        <Component Id ='CreateBlah' Guid='B1976E1A-DEB1-4FBB-A5AB-4AA60930D2DC'>
                            <CreateFolder />
                        </Component>
                    </Directory>

                    <Component Id='default.htmlComponent' Guid='E2FC2FC2-96A2-4BE5-BBCB-7184D9AAACA0'>
                        <File Id='default.htmFile' Name='default.htm' KeyPath='yes' DiskId='1' Source='default.htm' />
                    </Component>

                </Directory>
            </Directory>

            <Component Id='TestWebVirtualDirComponent' Guid='B4E73F80-875C-487A-BC57-A568732F03A3'>
                <IIS:WebVirtualDir Id='TestWebVirtualDir' Alias='Test' Directory='InstallDir' WebSite='DefaultWebSite'>
                    <IIS:WebApplication Id='TestWebApplication' Name='Test' />
                </IIS:WebVirtualDir>
            </Component>

            <Component Id='TestWebDir' Guid='8ED05357-1AAE-49F2-8C66-8813583C8157'>
                <IIS:WebDir WebSite='DefaultWebSite' Id='MyWebDir' Path='Test/blah' DirProperties='ReadAndExecute' />
            </Component>

        </Directory>

        <IIS:WebSite Id='DefaultWebSite' Description='Default Web Site'>
            <IIS:WebAddress Id='AllUnassigned' Port='80' />
        </IIS:WebSite>

        <Feature Id='TestFeature' Title='TestFeature' Level='1'>
            <ComponentRef Id='CreateBlah'/>
            <ComponentRef Id='default.htmlComponent' />
            <ComponentRef Id='TestWebDir'/>
            <ComponentRef Id='TestWebVirtualDirComponent' />
        </Feature>

        <IIS:WebDirProperties Id="ReadAndExecute" Read="yes" Write="yes" Script="yes" Execute="yes" AnonymousAccess="yes" Index="no" LogVisits="no" />

    </Product>
</Wix>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...