Wix - динамически регистрировать сборки в GAC - PullRequest
1 голос
/ 03 августа 2009

Я пишу установщик Wix для установки сборок .NET в GAC. Легко ...

Мой вопрос: возможно ли в будущем проверить этот сценарий, чтобы я мог извлечь ЛЮБЫЕ сборки, найденные в существующей сетевой папке, и зарегистрировать каждую из них - без необходимости жестко задавать точные имена сборок? Это позволило бы мне создать один MSI, который можно будет использовать снова и снова в будущем.

Сейчас мой код указывает на отдельную DLL и выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="16c27e1f-8f59-40bc-9ce6-ba816eae4323" Name="GACInstaller" Language="1033" Version="1.0.0.0" Manufacturer="GACInstaller" UpgradeCode="7fb35788-63aa-4cb1-9ad2-fd965cdeb7c8">
    <Package InstallerVersion="200" Compressed="yes" />

        <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="INSTALLLOCATION" Name="GACInstaller">
                    <Component Id="ProductComponent" Guid="ae2bb9bd-f8d6-4060-b25b-8147fac155d6"> 
            <File Id='my_assembly' Name='my_assembly.dll' KeyPath='yes' Assembly='.net' Source='C:\my_assembly.dll' /> 
                    </Component> 
                </Directory>
            </Directory>
        </Directory>

        <Feature Id="ProductFeature" Title="GACInstaller" Level="1">
            <ComponentRef Id="ProductComponent" /> 
    </Feature>
    </Product>
</Wix>

1 Ответ

3 голосов
/ 03 августа 2009

Нет, не совсем. Больше, чем просто файл должен быть обновлен в MSI. Например, ProductCode (Product / @ Id) должен быть уникальным для каждой отдельной установки. Все данные таблицы файлов должны быть обновлены. Я уверен, что есть и другие вещи, которые я забыл, так как обо всем позаботится набор инструментов WiX.

...