Запуск 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 Если вы найдете другой способ собрать установщик, пожалуйста, поделитесь.

Другие вопросы по тегам