Настройка развертывания для Office
Я разработал плагин для Outlook с помощью NetOffice
, Он отлично работает на моем ПК для разработки, но я изо всех сил пытаюсь создать настройку развертывания. Я много гуглил, но все учебники, похоже, нацелены на разработчиков, у которых установлена профессиональная версия Visual Studio. Я разработчик хобби, работающий с Visual Studio Community 2015. Поэтому я использую NetOffice
и у меня нет доступных инструментов VSTO. Этот сайт был самым полезным на данный момент: установщик WiX для проектов VSTO
Я установил WiX
и использовал пример на этом сайте в качестве шаблона. Но этот кусок кода не работает для меня:
<Component Id="CMP_DllManifest">
<File Id="FILE_DllManifest" Source="$(var.NoReplyAll.TargetPath).manifest" KeyPath="yes" />
</Component>
<Component Id="CMP_VstoManifest">
<File Id="FILE_VstoManifest" Source="$(var.NoReplyAll.TargetDir)$(var.NoReplyAll.TargetName).vsto" KeyPath="yes" />
<RegistryKey Root="HKLM" Key="Software\Microsoft\Office\Outlook\Addins\NoReply">
<RegistryValue Name="Description" Value="NoReplyAll Add-In" Type="string" Action="write" />
<RegistryValue Name="FriendlyName" Value="NoReplyAll" Type="string" Action="write" />
<RegistryValue Name="LoadBehavior" Value="3" Type="integer" Action="write" />
<RegistryValue Name="Manifest" Value="[#FILE_VstoManifest]|vstolocal" Type="string" Action="write" />
</RegistryKey>
</Component>
Причина в том, что файлы.manifest и.vsto не существуют в выходной папке моей сборки. Я гуглил, чтобы узнать, как их генерировать, но ответ заключается в том, чтобы перейти на вкладку "Linker" в свойствах проекта и выполнить необходимые настройки. Только в моей версии Visual Studio эта вкладка не существует. Так что сейчас я снова застрял.
Есть ли решение для дешевого хобби-разработчика, который использует бесплатные инструменты?
1 ответ
Когда я разработал плагин для Excel с NetOffice, я создал установщик с WiX#. Надеемся, что вы можете изменить его для своих целей: https://gitlab.com/jbjurstam/ExcelAnimationRecorder/tree/master/Installer
Вам нужно создать отдельные установщики для 64 и 32 бит, иначе regasm не будет работать правильно. С другой стороны, ваша dll может быть построена с использованием AnyCPU (однако, если вы хотите отладить ее для 64-битного Excel, вам нужно собрать для 64-битной и установить цель отладки в Excel.exe). Установщик вызывает regasm, который, в свою очередь, вызывает метод register в вашей dll (который NetOffice генерирует для вас). Это достигается с помощью CustomAction.