.net Wix-将程序集动态注册到GAC

.net Wix-将程序集动态注册到GAC,.net,wix,gac,global-assembly-cache,.net,Wix,Gac,Global Assembly Cache,我正在编写一个Wix安装程序,将.NET程序集安装到GAC。轻松 我的问题是:是否有可能对这种情况进行未来验证,以便我可以提取在现有网络文件夹中找到的任何程序集并注册它们中的每一个,而无需硬编码确切的程序集名称?这将允许我创建一个单一的MSI,可以在未来反复使用 现在,我的代码指向一个单独的DLL,如下所示: <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2

我正在编写一个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>


不,不是真的。MSI中必须更新的不仅仅是文件。例如,ProductCode(Product/@Id)对于每个单独的安装都需要是唯一的。文件表信息都需要更新。我肯定还有其他一些事情我忘记了,因为WiX工具集会解决所有问题。

在安装到GAC之前,请确保您意识到它可能会导致至少与它试图解决的问题一样多的问题。小心点。:)嗯,这是非常确定的。谢谢你,罗布!这在2018年仍然有效吗?文件名中是否支持通配符?或者某个也生成GUID的包装器?那太方便了@BNT,在FireGiant,我们用高级的获取工具扩展了WiX工具集,在构建时收集文件。您可以在这里阅读:(30天试用期)