Справка по проекту модуля слияния - Visual Studio 2005 - PullRequest
1 голос
/ 25 марта 2009

В настоящее время я делаю изменения в корпоративной библиотеке моей компании и ищу проект развертывания, который позволит разработчику настроить библиотеку с помощью установщика MSI или какого-либо другого исполняемого файла.

Я пытался использовать проект модуля слияния для выполнения этой задачи. Обычный поиск в Google не дал никаких полезных ресурсов для использования продукта модуля слияния.

Кто-нибудь знает полезный ресурс / учебное пособие по созданию проектов модуля слияния или у них есть лучшее предложение для выполнения этой задачи?

ОБНОВЛЕНИЕ

Я смог построить свой проект модуля слияния с соответствующими ссылками на все необходимые сборки. Это произвело файл .MSM. Каков следующий шаг для запуска и тестирования?

Ответы [ 2 ]

2 голосов
/ 28 марта 2009

MSM не может быть запущен или протестирован как таковой . Однако вы можете встроить его в MSI, а затем просто попытаться установить MSI с помощью стандартных инструментов (т. Е. Вручную щелкнуть правой кнопкой мыши MSI и выбрать Установить или Удалить , выполнить таким образом, используя Visual Studio или выполнив соответствующие команды msiexec.exe).

Чтобы встроить MSM в MSI, проще всего создать проект установки в Visual Studio и добавить Модуль слияния из проекта модуля слияния, который вы только что создали в своем решении. Это автоматически ссылается на файл MSM и включает его в MSI.

1 голос
/ 26 марта 2009

Я столкнулся с той же нехваткой документации, когда создавал свой единственный модуль слияния с использованием Visual Studio 2005. У меня был некоторый опыт работы с проектами MSI Setup, и я просто применил информацию, которую имел для проектов MSI Setup, к MSM.

В Visual Studio 2005 (или 2008) проекты MSI и MSM обрабатываются очень схожим образом. Добавьте файлы в проект (либо явно, либо через ссылку на другой проект, найденный в том же решении), затем щелкните правой кнопкой мыши проект, чтобы:

  1. Просмотр файловой системы.
  2. Просмотр настроек реестра.
  3. Просмотр ассоциаций типов файлов.
  4. Просмотр пользовательских действий.

Пользовательские действия могут быть реализованы в сборке .NET, например, путем создания подкласса класса Installer. Вот пример, который, например, установит или удалит принтер, когда MSM / MSI будет установлен или удален:

using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;

namespace Epsitec.PostScriptPrinterInstaller
{
    [RunInstaller (true)]
    public partial class PrinterInstaller : Installer
    {
        public PrinterInstaller()
        {
            this.InitializeComponent ();
        }
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            base.Install (stateSaver);
            string sysroot = System.Environment.GetEnvironmentVariable ("SystemRoot");
            string infpath = @"""" + System.IO.Path.Combine (sysroot, @"inf\ntprint.inf") + @"""";
            ProcessStartInfo info;
            Process process;

            info = new ProcessStartInfo ("rundll32.exe",
                       @"printui.dll,PrintUIEntry /if /b ""PostScript"" /m ""MS Publisher Color Printer"" /f "+infpath+@" /r ""FILE:""");

            process = Process.Start (info);
            process.WaitForExit ();
        }

        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall (savedState);
            ProcessStartInfo info;
            info = new ProcessStartInfo ("rundll32.exe",
                       @"printui.dll,PrintUIEntry /dl /n ""PostScript""");
            Process process = Process.Start (info);
            process.WaitForExit ();

            info = new ProcessStartInfo ("rundll32.exe",
                       @"printui.dll,PrintUIEntry /dd /m ""MS Publisher Color Printer""");
            process = Process.Start (info);
            process.WaitForExit ();
        }
    }
}

Я надеюсь, что с этой информацией вы сможете продвинуться вперед.

...