2013-03-26 5 views
3

Я пытаюсь создать инсталляционный с Wix в VS 2012, но я не могу добавить «внешние» ссылкиДобавление внешнего DLL к проекту WIX

У меня есть мой проект FirmwareUpload который является вещь, которую я хочу установить с ссылками на рамки нашей компании. И FirmwareUploadSetup, который является моим проектом установщика. Я добавил ссылки в этом проекте к моему другому проекту и создал XML:

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="MainEXE"> 
    <!-- TODO: Insert files, registry keys, and other resources here. --> 
    <File Source="$(var.FirmwareUpload.TargetPath)"> 
     <Shortcut Id="startmenuFWU10" Directory="ProgramMenuDir" Name="Firmware Upload 1.0" 
       WorkingDirectory="INSTALLDIR" Advertise="yes" /> 
     <Shortcut Id="desktopFWU10" Directory="DesktopFolder" Name="Firmware Upload 1.0" 
       WorkingDirectory="INSTALLDIR" Advertise="yes" /> 
    </File> 

    </Component> 
    <Component Id="AstuFMS"> 
    <File Source="$(var.Astus.FMS.TargetPath)" Name="Astus.FMS.dll" ShortName="AF" /> 
    </Component> 
    <Component Id="AstusServerBusinessLogic"> 
    <File Source="$(var.Astus.Server.BusinessLogic.TargetPath)" Name="Astus.Server.BusinessLogic.dll" 
      ShortName="ASBL" /> 
    </Component> 
    <Component Id="ETL"> 
    <File Source="$(var.ETLElectronique.TargetPath)" /> 
    </Component> 
    <Component Id="ETLBusiness"> 
    <File Source="$(var.ETLElectronique.Business.TargetPath)" Name="ETLElectronique.Business.dll" ShortName="EB" /> 
    </Component> 
    <Component Id="ETLCommon"> 
    <File Source="$(var.ETLElectronique.Common.TargetPath)" Name="ETLElectronique.Common.dll" ShortName="EC" /> 
    </Component> 
    <Component Id="ETLData"> 
    <File Source="$(var.ETLElectronique.Data.TargetPath)" Name="ETLElectronique.Data.dll" ShortName="ED" /> 
    </Component> 
    <Component Id="ETLNet"> 
    <File Source="$(var.ETLElectronique.Net.TargetPath)" Name="ETLElectronique.Net.dll" ShortName="EN" /> 
    </Component> 
    <Component Id="ETLWindows"> 
    <File Source="$(var.ETLElectronique.Windows.TargetPath)" Name="ETLElectronique.Windows.dll" ShortName="EW" /> 
    </Component> 
</ComponentGroup> 

это работает !! когда я запускаю установщик, я получаю эти файлы в своем каталоге. Но для запуска программного обеспечения требуются другие файлы (например: log4net.dll)

Когда я скомпилирую проект «FirmwareUpload», я получаю файл log4net.dll (и многие другие). Поэтому мне нужна эта DLL в моей установке для запуска программы после ее установки.

Работали, выполнив:

<ComponentGroup Id="DocumentationComponents" Directory="INSTALLFOLDER" Source="C:\fms\hotfix\v42x\V6\Utilitaire\FirmwareUpload\FirmwareUpload\bin\Debug"> 
     <Component Id="log4net"> 
     <File Name="log4net.dll" /> 
     </Component> 
     <Component Id="Astus.Device.Configuration"> 
     <File Name="Astus.Device.Configuration.dll" /> 
     </Component> 
     <Component Id="Astus.Device"> 
     <File Name="Astus.Device.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.Common"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.Common.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.Data"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.Data.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.ObjectBuilder"> 
     <File Name="Microsoft.Practices.ObjectBuilder.dll" /> 
     </Component> 
    </ComponentGroup> 

Но есть меньше "жёстко" путь?

ответ

5

Вы можете использовать heat («Инструмент для сбора урожая») для сканирования папки и создания xml, необходимого для включения файлов в эту папку.

См http://wix.sourceforge.net/manual-wix3/heat.htm

+0

Я не научился Wix с командной строкой, есть подобный способ добиться этого с XML? –

+1

Нет, xml должен явно указывать все файлы (насколько мне известно). Тепло - это простой инструмент, который вы можете добавить в качестве шага предварительной сборки для создания xml. –

+0

Уверен, я прочитаю больше о инструменте командной строки, я жесткая командная строка была своего рода «другим инструментом» для создания MSI –