У меня была похожая проблема, и я решил ее так же, как описано Кристофом, я также хотел бы знать, есть ли альтернативные способы сделать это, но если вы ничего не найдете, вот пример
1) Создайте библиотеку пользовательских действий со следующим InstallerClass
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using Microsoft.VisualStudio.Tools.Applications;
using Microsoft.Win32;
namespace Setup.CustomActions
{
[RunInstaller(true)]
public partial class AddCustomization : Installer
{
static readonly Guid solutionID = new Guid("d6680661-c31e-4c24-9492-5919dc0uagt5");
public override void Install(IDictionary stateSaver)
{
string installPath = Context.Parameters["installPath"];
if(!String.IsNullOrEmpty(installPath))
{
AddTemplateToAvailableTemplates(installPath);
}
base.Install(stateSaver);
}
public override void Rollback(IDictionary savedState)
{
}
public override void Uninstall(IDictionary savedState)
{
}
private void AddTemplateToAvailableTemplates(string installPath)
{
//The example below is very basic, put in checks to see whether the registry key already exists and so on
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Office\14.0\Common", true);
RegistryKey acturisKey = key.CreateSubKey(@"Spotlight\MyAppInstallPath");
acturisKey.SetValue("InstallPath", installPath);h);
}
}
}
2) В проекте установки создайте ключ в пользовательском действии Install, который указывает на каталог установки:
Если вам нужна дополнительная информация или вы хотите загрузить исходный код, просмотрите эту статью MSDN Open Xml MVP Wouter Van Wugt под названием «Развертывание средств Visual Studio 2010 для Office Solution с помощью установщика Windows»