Установка модуля слияния, а также потребление

У меня есть несколько решений, представляющих структуру кода, которую я создал на работе. Одно решение называлось «Структура», а другое — «Расширения».

Причина, по которой я разделил их, заключается в том, что решение «Расширения» содержит проекты, состоящие из методов расширения, и проекты организованы таким образом, что полученные сборки отражают сборки .NET.

Я создал проект модуля слияния для «Расширений» и установщик, который его использует. Это все прекрасно и денди, но теперь я хочу создать установщик для «Framework», который также использует тот же модуль слияния. Следовательно, я хотел бы изменить установщик «Расширения», чтобы скопировать файл модуля слияния «Расширения» в C:\Program Files\Common Files\Merge Modules, чтобы установщик «Framework» имел хорошо известный путь, по которому можно ссылаться на модуль слияния для «Расширения», вместо того, чтобы ссылаться на какой-то неясный путь, по которому живет мое решение VS (причина в том, что Framework иногда будет собираться на разных машинах, на которых пути к проектам VS могут различаться).

В документации MSDN это рассматривается лишь вкратце и просто говорится, что модули слияния не могут быть установлены в файловую систему, а могут быть только «использованы».

Неудача.

Кто-нибудь знает способ обойти это? Пользовательские действия? Как установщик Visual Studio устанавливает свои модули слияния?


person Ben Collins    schedule 06.03.2009    source источник


Ответы (3)


Когда вы создаете установщик MergeModule как часть редактора файловой системы, есть папка с названием «Module Retargetable Folder» (это имя по умолчанию и может быть изменено, также могут быть добавлены дополнительные).

После создания .msm, если вы перейдете к основному проекту установки и добавите в него модуль слияния, вы можете выбрать .msm в обозревателе решений и посмотреть в окне свойств, там должна быть запись под названием «MergeModuleProperties», разверните ее. и вы должны увидеть все переназначаемые папки в списке, и затем вы можете указать их в правильном месте.

person PlausiblyDamp    schedule 08.03.2009
comment
Нет, я думаю, вы неправильно понимаете, о чем я спрашиваю - я хочу, чтобы основной установщик поместил файл .msm в файловую систему в дополнение к извлечению переназначаемой файловой системы. - person Ben Collins; 08.03.2009
comment
В этом случае вы не могли бы просто добавить msm как еще один файл и использовать обычную часть файловой системы пакета установки для развертывания в известном месте? - person PlausiblyDamp; 08.03.2009
comment
Нет; если вы перетащите файл .msm в представление файловой системы, он просто будет использовать его как обычный модуль слияния (т. е. в представлении файловой системы ничего не появится). Теперь я отказался от всей этой идеи и объединил два моих решения в одно, что в первую очередь избавило от необходимости в модуле слияния. - person Ben Collins; 09.03.2009

Короткий ответ: нет никакого способа сделать это, кроме как написать собственную структуру установки.

person Ben Collins    schedule 24.04.2009

Поздно на вечеринку, но

Я сделал это один раз, переименовав модуль слияния (изменив расширение файла), установив его в файловую систему как обычный файл, а затем переименовав установленный файл.

person DaveE    schedule 24.04.2009