Я создал приложение на C # winforms, которое использует библиотеку Ghostscript, и я создал установщик wix msi, чтобы загрузить его на любой компьютер.В самом приложении winforms у меня в качестве файлов ресурсов установлены Ghostscript.NET.dll (обертка c # для библиотек gs / dlls) и gsdll32.dll (32-битная нативная библиотека).Я создал проект wix (создает wixattempt2.msi), чтобы установить приложение и файлы dll в папку «Программы» (x86) и показать приложение в меню «Пуск».Затем я собрал пакет загрузчика wix (создает POD_Installer.exe), чтобы я мог запустить программу установки (wixattempt2.msi) и установить пакет NetFx461Redist, если это необходимо.
Когда я запускаю POD_Installer.exe, компоненты, которые я установил, оказываются вместе в правильной папке.Однако у меня возникают проблемы, когда я собираюсь использовать приложение winforms.Когда я попадаю в ту часть приложения, которая использует ghostscript, я получаю сообщение об ошибке «Не удалось найти нативную библиотеку ghostscript».Когда я раскрываю сообщение, в нем отображаются все устанавливаемые компоненты, кроме gsdll32.dll.Какие изменения я делаю в своем проекте wix, чтобы у меня не было проблем?
Вот wixattempt2.msi:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="POD" Language="1033" Version="1.0.0.0" Manufacturer="POD" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Icon Id="Ruler.ico" SourceFile="Ruler.ico"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="POD" />
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="POD"/>
</Directory>
</Directory>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="_6lumber.exe" Guid="*">
<File Id="_6lumber.exe" Source="POD.exe" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="_notepadcalc.exe" Guid="*">
<File Id="_notepadcalc.exe" Source="notepadcalc2.exe" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="Erics_takeoff_103118.xlsx" Guid="*">
<File Id="Erics_takeoff_103118.xlsx" Source="Erics_takeoff_103118.xlsx" KeyPath="yes"/>
</Component>
<Component Id="gs.dll" Guid="*" >
<File Id="gs.dll" Source="gsdll32.dll" KeyPath="yes"/>
</Component>
<Component Id="gsnet.dll" Guid="*">
<File Id="gsnet.dll" Source="Ghostscript.NET.dll" KeyPath="yes"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="*">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="POD" Icon="Ruler.ico"
Description="My Application Description"
Target="[#_6lumber.exe]"
WorkingDirectory="INSTALLFOLDER"/>
<Shortcut Id="ApplicationStartMenu"
Name="POD_CAD" Icon="Ruler.ico"
Description="My Application Description"
Target="[#_notepadcalc.exe]"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\Microsoft\POD" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="POD" Title="POD" Level="1">
<ComponentRef Id="gs.dll"/>
<ComponentRef Id="gsnet.dll"/>
<ComponentRef Id="_6lumber.exe" />
<ComponentRef Id="_notepadcalc.exe"/>
<ComponentRef Id="Erics_takeoff_103118.xlsx"/>
<ComponentRef Id="ApplicationShortcut"/>
</Feature>
</Product>
</Wix>
РЕДАКТИРОВАТЬ: начальный загрузчик для создания POD_Installer.exe
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="POD_Installer" Version="1.0.0.0" Manufacturer="POD" UpgradeCode="732da7cb-f953-4cfd-af6e-5c25db16b47c">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication
LogoFile="Resources\custom_icon_design_flatastic_10_ruler-3.png"
LicenseFile="Resources\mylittlelicense.rtf"
/>
</BootstrapperApplicationRef>
<PayloadGroup Id="NetFx461RedistPayload" >
<Payload Name="redist\NDP461-KB3102436-x86-x64-AllOS-ENU.exe"
SourceFile="Resources\NDP461-KB3102436-x86-x64-AllOS-ENU.exe" />
</PayloadGroup>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
<PackageGroupRef Id="NetFx461Web"/>
<MsiPackage Id="POD_Measuring_Tool" SourceFile="C:\Users\Admin\source\repos\wixattempt2\wixattempt2\bin\Debug\wixattempt2.msi"
Cache="yes" ForcePerMachine ="yes"/>
</Chain>
</Bundle>
</Wix>