MSBuild-проект VB с помощью InstallShield

Я пытаюсь создать скрипт MSBuild, который мог бы создать проект VB и проект установки InstallShield.

Вот файл BuildAll.XML в качестве сценария MSBuild:

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Build">
    <MSBuild Projects="D:\WindowsApplication1\WindowsApplication1\WindowsApplication1.vbproj" />
    <MSBuild Projects="D:\WindowsApplication1\Setup1\Setup1.isproj" />
  </Target>

</Project>

Выполнение этой команды в командной строке разработчика для VS2012.

msbuild.exe D:\WindowsApplication1\WindowsApplication1\BuildAll.xml /t:Build

Первый MSBuild для WindowApplication1.vbproc завершает сборку, но когда MSBuild попытается скомпилировать Setup1.isproj, произойдет сбой.

Вот предупреждение и ошибка:

"D: \ WindowsApplication1 \ WindowsApplication1 \ BuildAll.xml" (цель сборки) ( 1) -> "D:\WindowsApplication1\Setup1\Setup1.isproj" (цель по умолчанию) (3) -> (цель сборки) -> C:\Program Files (x86)\MSBuild\InstallShield\2013Limited\InstallShield.target s: предупреждение: -7235: программе InstallShield не удалось создать тег идентификации программного обеспечения, поскольку параметр ID создателя тега в представлении "Общая информация" пуст. [D:\WindowsApplication1\Setup1\Setup1.isproj] C:\Program Files (x86)\MSBuild\InstallShield\2013Limited\InstallShield.target s: предупреждение: -1527: в проект не включены файлы. [D: \ WindowsAppl ication1 \ Setup1 \ Setup1.isproj]

"D: \ WindowsApplication1 \ WindowsApplication1 \ BuildAll.xml" (цель сборки) ( 1) -> "D:\WindowsApplication1\Setup1\Setup1.isproj" (цель по умолчанию) (3) -> (цель сборки) -> C:\Program Files (x86)\MSBuild\InstallShield\2013Limited\InstallShield.target s(108,3): ошибка: не предоставлены выходные данные для проекта "WindowsApplication1", кроме ссылок на проект установки "WindowsApplication1.ContentFiles". [D:\ \WindowsApplication1\Setup1\Setup1.isproj] C:\Program Files (x86)\MSBuild\InstallShield\2013Limited\InstallShield.target s(108,3): ошибка: не предоставлены выходные данные для проекта "WindowsApplication1", После установки проект ссылается на "WindowsApplication1.Built". [D:\WindowsApplication1\Setup1\Setup1.isproj]

Проект Setup1 имеет два файла приложения:

  • WindowsApplication1.ContentFiles
  • WindowsApplication1.PrimaryOutput

Но когда я использую Build > Build Solution в Visual Studio 2012, он работает нормально. Это производит Setup.exe.

Как сделать так, чтобы мой BuildAll.xml создавал тот же процесс сборки, что и решение для сборки Visual Studio?

1 ответ

Получил мой ответ из этого поста.

Я должен был построить все решение, а не на проект

Вот правильный сценарий:

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Build">
    <MSBuild Projects="D:\WindowsApplication1\WindowsApplication1.sln" />
  </Target>

</Project>
Другие вопросы по тегам