Я пытаюсь найти каталог установки для SQL-сервера. Так что я могу скопировать DLL для пользовательской задачи SSIS.Обнаружение каталога установки SQL-сервера
Следующий код работает, но не копирует мои файлы. Это не останавливается, поэтому я предполагаю, что он нашел какое-то значение для ISSQLSERVERSERVICEINSTALLED
Я очень новичок в wix, это первый раз, когда я попытался прочитать из регистра.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Daimto OpenWeather for SSIS" Language="1033" Version="1.0.0.0" Manufacturer="DAIMTO" UpgradeCode="84543418-55c4-48c0-b5be-2496fb84ffb6">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" InstallPrivileges="elevated" AdminImage="yes" />
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Feature Id="SSISMSSQL" Title="SSIS Components" Display='expand' Level='1'>
<ComponentRef Id='SSISPipelineComponents' />
<ComponentRef Id='SSISConnections' />
</Feature>
<UIRef Id="WixUI_Minimal"/>
</Product>
<!-- Get the directory name-->
<Fragment>
<Property Id="SQLSERVERINSTALLFOLDER">
<RegistrySearch Id='InstallDir'
Type='raw'
Root='HKLM'
Key="SOFTWARE\Microsoft\Microsoft SQL Server\100" Name="VerSpecificRootDir" />
</Property>
<Condition Message='Install Folder not found'>SQLSERVERINSTALLFOLDER</Condition>
</Fragment>
<!-- Build directory structure. http://blogs.msdn.com/b/syamp/archive/2012/09/30/wix-search-for-install-path-from-registry.aspx -->
<Fragment>
<Directory Id = "TARGETDIR" Name="SourceDir">
<Directory Id="SQLSERVERINSTALLFOLDER" >
<Directory Id="DTSDir" Name="DTS">
<Directory Id="PIPELINECOMPONENTS" Name="PipelineComponents" />
<Directory Id="CONECTIONS" Name="Connections" />
</Directory>
</Directory>
</Directory>
<!-- Set tarit dir to c: -->
<SetDirectory Id="TARGETDIR" Value="[WindowsVolume]" />
</Fragment>
<!-- copie files. -->
<Fragment>
<ComponentGroup Id="SSISPipelineComponentsgrp" Directory="PIPELINECOMPONENTS">
<Component Id="SSISPipelineComponents" Guid="{51CE96C7-42BF-4CE7-AE88-5C0085868062}" >
<File Id="Daimto.SSIS.Tasks.Current" Name="Daimto.SSIS.Tasks.Current.dll" DiskId="1" KeyPath="yes" Source="$(var.Daimto.SSIS.Tasks.Current.TargetPath)" />
</Component>
</ComponentGroup>
<ComponentGroup Id="SSISConnectionsgrp" Directory="CONECTIONS">
<Component Id="SSISConnections" Guid="{8DFFB861-18E4-4E08-8D4E-CAD99911E8A8}" >
<File Id="Daimto.SSIS.Connection" Name="Daimto.SSIS.Connection.dll" DiskId="1" KeyPath="yes" Source="$(var.Daimto.SSIS.Connection.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Update 1:
- добавил
"InstallPrivileges="elevated""
не появляется, чтобы помочь - добавить изображение рег.
Update 2:
Я получаю некоторые где. Его сейчас установка на моем Ddrive ....
MSI (c) (CC:98) [13:37:09:112]: PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'D:\'.
MSI (c) (CC:98) [13:37:09:112]: PROPERTY CHANGE: Adding ISSQLSERVERSERVICEINSTALLED property. Its value is 'D:\'.
MSI (c) (CC:98) [13:37:09:112]: PROPERTY CHANGE: Adding DTS property. Its value is 'D:\DTS\'.
MSI (c) (CC:98) [13:37:09:113]: PROPERTY CHANGE: Adding CONECTIONS property. Its value is 'D:\DTS\Connections\'.
MSI (c) (CC:98) [13:37:09:113]: PROPERTY CHANGE: Adding PIPELINECOMPONENTS property. Its value is 'D:\DTS\PipelineComponents\'.
что приводит меня к мысли, что его не найти ISSQLSERVERSERVICEINSTALLED
.
обновление 3:
Его сейчас установка на диск С. но он создает каталог под названием SQLSERVERINSTALLFOLDER, который не принимает значения. файл журнала говорит, что значение SQLSERVERINSTALLFOLDER: c: Я не могу определить, сможет ли он даже найти значение реестра или нет. Я попробовал, добавив условие, чтобы заставить его потерпеть неудачу, но его не подведет
<Condition Message='Install Folder not found'>SQLSERVERINSTALLFOLDER</Condition>
Возможно, отсутствует Административная привилегия? – Max
Я тоже об этом подумал. Однако, когда я нажимаю на установочный файл, я могу выбрать запуск как администратор. Windows всплывает и запрашивает разрешения. – DaImTo
Значение Witch указано в разделе реестра HKLM \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ 100 \ VerSpecificRootDir? – Max