Excel не запускается после установки VSTO WIX - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу создать свой первый установщик WIX, и у меня возникла проблема. Я создал плагин VSTO для Excel. При запуске из Visual Studio плагин прекрасно работает во всех конфигурациях. При установке из файла MSI Excel не запускается. Я вижу только зеленый всплеск (несколько секунд). В программе просмотра событий у меня есть только:

Приложение: EXCEL.EXE Framework Версия: v4.0.30319 Описание: процесс был прерван из-за необработанного исключения. Информация об исключении: System.NullReferenceException в Optigraf.Excel.OptigrafRibbon.Dispose (Boolean) в System.ComponentModel.Component.Finalize ()

Мой файл wxs:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="aaa" Language="1045" Codepage="1250" Version="1.0.0.1" Manufacturer="aaa" UpgradeCode="344fb829-504e-4743-ba83-3288900986a3">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" />

        <MajorUpgrade DowngradeErrorMessage="Najnowsza wersja [ProductName] jest już zainstalowana." />
        <MediaTemplate EmbedCab="yes" />

        <Feature Id="ProductFeature" Title="Setup" Level="1">
          <ComponentGroupRef Id="ProductComponents" />
          <ComponentRef Id="Registry_FriendlyName" />
          <ComponentRef Id="Registry_Description" />
          <ComponentRef Id="Registry_Manifest" />
          <ComponentRef Id="Registry_LoadBehavior" />
        </Feature>
    </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="aaa" Name="aaa">
          <Directory Id="INSTALLFOLDER" Name="Optigraf">
          </Directory>
          <Component Id="Registry_FriendlyName">
            <RegistryValue Id="RegKey_FriendlyName" Root="HKCU"
                           Key="Software\Microsoft\Office\Excel\Addins\Optigraf"
                           Name="FriendlyName"
                           Value="aaa"
                           Type="string" KeyPath="yes" />
          </Component>        
          <Component Id="Registry_Description">
            <RegistryValue Id="RegKey_Description" Root="HKCU"
                           Key="Software\Microsoft\Office\Excel\Addins\Optigraf"
                           Name="Description"
                           Value="aaa"
                           Type="string" KeyPath="yes" />
          </Component>
          <Component Id="Registry_Manifest">
            <RegistryValue Id="RegKey_Manifest" Root="HKCU"
                           Key="Software\Microsoft\Office\Excel\Addins\Optigraf"
                           Name="Manifest" Value="[INSTALLFOLDER]Optigraf.vsto|vstolocal"
                           Type="string" KeyPath="yes" />
          </Component>
          <Component Id="Registry_LoadBehavior">
            <RegistryValue Id="RegKey_LoadBehavior" Root="HKCU"
                           Key="Software\Microsoft\Office\Excel\Addins\Optigraf"
                           Name="LoadBehavior" Value="3"
                           Type="integer" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <Component Id="Optigraf_Files" Guid="e621aec0-c2ef-4020-bd74-504cd2637ee5">
        <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
        <File Source="$(var.AddinFiles)" Name="CUK.Auth.dll"  />
        <File Source="$(var.AddinFiles)" Name="CUK.Core.dll"  />
        <File Source="$(var.AddinFiles)" Name="EntityFramework.dll"  />
        <File Source="$(var.AddinFiles)" Name="EntityFramework.SqlServer.dll"  />
        <File Source="$(var.AddinFiles)" Name="EntityFramework.SqlServer.xml"  />
        <File Source="$(var.AddinFiles)" Name="EntityFramework.xml"  />
        <File Source="$(var.AddinFiles)" Name="Ical.Net.dll"  />
        <File Source="$(var.AddinFiles)" Name="Ical.Net.xml"  />
        <File Source="$(var.AddinFiles)" Name="Ical.Net.pdb"  />
        <File Source="$(var.AddinFiles)" Name="ICSharpCode.SharpZipLib.dll"  />
        <File Source="$(var.AddinFiles)" Name="log4net.dll"  />
        <File Source="$(var.AddinFiles)" Name="log4net.ElasticSearch.dll"  />
        <File Source="$(var.AddinFiles)" Name="log4net.ElasticSearch.pdb"  />
        <File Source="$(var.AddinFiles)" Name="log4net.xml"  />
        <File Source="$(var.AddinFiles)" Name="Microsoft.Office.Tools.Common.v4.0.Utilities.dll"  />
        <File Source="$(var.AddinFiles)" Name="MySql.Data.dll"  />
        <File Source="$(var.AddinFiles)" Name="MySql.Data.Entity.EF6.dll"  />
        <File Source="$(var.AddinFiles)" Name="Newtonsoft.Json.dll"  />
        <File Source="$(var.AddinFiles)" Name="Newtonsoft.Json.xml"  />
        <File Source="$(var.AddinFiles)" Name="NodaTime.dll"  />
        <File Source="$(var.AddinFiles)" Name="NodaTime.xml"  />
        <File Source="$(var.AddinFiles)" Name="NodaTime.pdb"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.DTO.dll"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.DTO.pdb"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.DTO.dll.config"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.dll"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.pdb"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.dll.config"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.dll.manifest"  />
        <File Source="$(var.AddinFiles)" Name="Optigraf.vsto"  />
        <File Source="$(var.AddinFiles)" Name="RestSharp.dll"  />
        <File Source="$(var.AddinFiles)" Name="SeafClient.dll"  />
        <File Source="$(var.AddinFiles)" Name="System.Reflection.TypeExtensions.dll"  />
        <File Source="$(var.AddinFiles)" Name="System.Runtime.Serialization.Primitives.dll"  />
      </Component>
        </ComponentGroup>
    </Fragment>
</Wix>

Я не могу отладить это, потому что в VS все нормально. Если я устанавливаю плагин двойным щелчком по файлу VSTO, он работает отлично. Пожалуйста, помогите мне. Что я делаю не так?

...