Запуск .vsto файла после установки. (InstallShield) - PullRequest
1 голос
/ 30 января 2012

У меня есть установщик MSI, созданный с помощью InstallShield, который перемещает некоторые файлы в нужное место, записывает некоторую информацию в реестр и устанавливает среду выполнения VSTO.Но мне нужно запустить файл .vsto, который устанавливается вместе с приложением, после завершения установки.Могу ли я сделать это с помощью пользовательских действий?Если бы этот файл представлял собой файл .exe, это было бы довольно просто, но как я могу запустить файл .vsto?
[обн]

Ну, может быть, есть более простое решение: могу я простовызвать функцию:
public override void Install(IDictionary stateSaver)
из InstallShield?Примерно так: Пользовательское действие-> Вызов функции в библиотеке динамических ссылок установщика Windows->, сохраненной в двоичной таблице =>
AssemblyFile = \ InclusionListCustomActions.dll MethodSignature = InclusionListCustomActions.TrustInstaller.Install (, но какой параметр идетздесь )

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Вы не должны запускать файл VSTO, потому что это установит его только для пользователя. Вам нужно добавить его в раздел реестра AddIns для нужного вам офисного приложения и использовать атрибут | vstolocal, чтобы запретить развертывание в кэше однократного щелчка.

0 голосов
/ 30 января 2012

вы можете выполнить шаги, описанные в http://msdn.microsoft.com/en-us/library/cc563937%28v=office.12%29.aspx,, вы можете скопировать те же шаги в Installshield, после копирования файла и установки значения реестра, как указано, при запуске офисного приложения оно автоматически получит файл vsto

Чтобы добавить информацию в список включения, вам нужно написать консольное приложение, а затем вызвать консольное приложение из installshield.Ниже код поможет

            string RSA_PublicKey = @"<RSAKeyValue><Modulus></Modulus></RSAKeyValue>";
            //get this key from .vsto file
            try
            {
                SecurityPermission permission =
                    new SecurityPermission(PermissionState.Unrestricted);
                permission.Demand();
            }
            catch (SecurityException)
            {
                Console.WriteLine(
                    "You have insufficient privileges to " +
                    "register a trust relationship. Start Excel " +
                    "and confirm the trust dialog to run the addin.");
                Console.ReadLine();
            }
            Uri deploymentManifestLocation = null;
            var excelPath = YourAPPPath;              
            if (Uri.TryCreate(excelPath,
                UriKind.RelativeOrAbsolute, out deploymentManifestLocation) == false)
            {
                Console.WriteLine(
                    "The location of the deployment manifest is missing or invalid.");
                Console.ReadLine();
            }

            if (!File.Exists(excelPath))
            {
                UserInclusionList.Remove(deploymentManifestLocation);
                Console.WriteLine(deploymentManifestLocation.ToString() + "removed from inclusion list");

            }
            else
            {
                AddInSecurityEntry entry = new AddInSecurityEntry(
                          deploymentManifestLocation, RSA_PublicKey);
                UserInclusionList.Add(entry);
                Console.WriteLine(deploymentManifestLocation.ToString() + "Added to inclusion list");                  
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...