Я знаю, что есть много похожих вопросов по этой теме, но ни один из них не может дать мне ответ.
Я создаю windows установщик для DLL, который я разработал в VS2019. Установщик создан и работает правильно на моей машине, но не на других машинах. Причина этого заключается в том, что все значения реестра с именем «CodeBase» имеют неправильный путь к библиотекам. Это не каталог установки, а каталог выпуска моего проекта VS.
Я пробовал
"C:\Program Files (x86)\WiX Toolset v3.11\bin\heat.exe" dir "$(TargetDir.TrimEnd('\\'))" -suid -sfrag -srd -gg -g1 -cg EA<my project name>Assemblies -var var.$(ProjectName).TargetDir -wixvar -dr INSTALLFOLDER -out "$(ProjectDir)WIX\$(TargetName).wxs"
, где INSTALLFOLDER определен в 'Product.wxs'
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="my product name" />
</Directory>
</Directory>
</Fragment>
Строки значений регистрационного кода CodeBase в сгенерированном файле XIX выглядят следующим образом:
<RegistryValue Root="HKCR" Key="CLSID\{41D3DB26-8261-303B-ACAF-F4F823FE21BE}\InprocServer32\3.1.1.0" Name="CodeBase" Value="file:///C:/Dev/C#/<my VS project path>/bin/Release/Microsoft.AspNetCore.Http.Features.dll" Type="string" Action="write" />
Как видите, созданный путь не является целевым каталогом (то есть C: \ Program Files (x86) \ имя моего продукта ), но каталог выпуска моего проекта VS.
Я также попытался заменить INSTALLFOLDER на TARGETDIR и добавить параметр -directoryid TARGETDIR (соответственно INSTALLDIR ) в вызове heat.exe, но ничего не изменилось.
Поэтому я надеюсь, что я найду здесь кого-нибудь, кто сможет скажи мне, что я делаю не так. Буду признателен за любую помощь. Если вам нужна дополнительная информация, пожалуйста, скажите мне. Я использую тепловую версию 3.11.1.2318 с VS2019 на Win10.
Я прошу прощения за анонимность моего продукта, но это не моя собственность, и на данный момент мне не разрешено публиковать sh его.
Йорг