Запуск devenv против.vdproj в командной строке не приводит к MSI
Я хочу создать файлы MSI из .vdproj
файл с использованием devenv
Команда в командной строке. Эта команда работает нормально, но файл MSI не создается. Что случилось?
Что я должен установить в переменных среды, или есть ли другой способ генерировать MSI из .vdproj
файл?
4 ответа
Обычно (по моему опыту!) Это вызвано неправильной настройкой конфигурации сборки. В Visual Studio на уровне решения вы можете перейти к Build
меню и выберите Configuration Manager
, Убедитесь, что для всех применимых конфигураций (выбранных с помощью Active Solution Configuration
раскрывающийся список) в программе установки есть галочка Build
колонка.
Теперь вам нужно убедиться, что при вызове devenv вы передаете соответствующую конфигурацию сборки (т.е. ту, которая имеет Build
отмечен галочкой для проекта установки) следующим образом:
C:\PathToVisualStudio\devenv.exe /Rebuild Release C:\PathToProject\ProjectName.sln" /Out "PathToProject\vs_errors.txt"
(В этом примере Release
это целевая конфигурация сборки)
Эта команда также записывает выходные данные Visual Studio в текстовый файл с именем vs_errors.txt
в той же папке, что и ваше решение, так что вы можете просмотреть это, чтобы определить, есть ли какие-либо другие причины, по которым не удалось собрать проект установки.
Вышеупомянутый скрипт работал для меня, попробуйте его и дайте мне знать, если он работает для вас. Вы можете в значительной степени иметь любую конфигурацию. Я использовал Release|x86. Просто замените эту строку вашей конфигурацией, и она должна работать. Убедитесь, что любая используемая вами конфигурация существует в файле.sln или.csproj, в противном случае вы можете получить сообщение об ошибке о неправильной конфигурации. Надеюсь это поможет.
<target name="BuildMsi">
<echo message="Creating installables (.msi) for MyTestApplication, please wait..."/>
<exec program="c:\program files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe">
<arg value="c:\My app\My_Test_solution.sln"/>
<arg value="/build"/>
<arg value="Release|x86" />
<arg value="/project"/>
<arg value="c:\My app\setup\My_Test_solution.vdproj"/>
</exec>
</target>
Мой случай был таким же, и присвоение имени проекта с /project помогло с генерацией файла.msi,
devenv /build Release /project SDK-Deployment SDK-Deployment.vdproj
Я не думаю, что msi будет генерироваться с devenv.com, вы можете выбрать wix с nant для создания установщика.
У Нанта есть задача msi, но для этого требуется micrsoft cabinet sdk, который недоступен для скачивания.
Прочитайте это для более подробной информации. Создайте модуль слияния без Devenv из.vdproj.
ps Если вы найдете другой способ собрать установщик, пожалуйста, поделитесь.