http://msbuildextensionpack.codeplex.com/
Имеет задачу сборки vb6. ОДНАКО, это просто причудливая обертка для vb6.exe /make
.
Также задача msbuild помогает создать такую командную строку:
C:\Program Files\Microsoft Visual Studio\VB98\VB6.exe /MAKE /OUT "..\MyProjectFolder\MyOldSchoolVB6Project.vbp.log" "..\MyProjectFolder\MyOldSchoolVB6Project.vbp" /outdir" "..\MyProjectBuildResults\bin"
Вам не обязательно нужна задача msbuildextensionpack, но я считаю, что ее лучше использовать в долгосрочной перспективе. (Другой вариант - подключить задачу exec и «жестко вызвать» указанную выше командную строку.
НЕТ СПОСОБА СОЗДАТЬ .vbp без VB6.EXE. Примите этот факт, и ваш мир станет более понятным.
Я бы посоветовал установить vb6 с наименьшим общим знаменателем на сборочную машину (иначе, НЕ ПРОВЕРИТЬ каждый возможный вариант).
Затем запрограммируйте свой файл .msbuild.
Что-то вроде этого:
(Я не определяю SourceFilesBaseDirectory или OutputBuildDirectory, fyi)
<PropertyGroup>
<!-- This allows a way to provide a few options for the library -->
<TPath>$(MSBuildProjectDirectory)\..\MSBuild.ExtensionPack.tasks</TPath>
<TPath Condition="Exists('$(ProgramFiles)\MSBuild\ExtensionPack\MSBuild.ExtensionPack.tasks')">$(ProgramFiles)\MSBuild\ExtensionPack\MSBuild.ExtensionPack.tasks</TPath>
</PropertyGroup>
<Import Project="$(TPath)"/>
<ItemGroup>
<ProjectsToBuildIT001 Include="$(SourceFilesBaseDirectory)\MyProjectFolder\MyOldSchoolVB6Project.vbp">
<OutDir>$(OutputBuildDirectory)</OutDir>
</ProjectsToBuildIT001>
</ItemGroup>
<Target Name="BuildTheVBProjects001" >
<MSBuild.ExtensionPack.VisualStudio.VB6 TaskAction="Build" Projects="@(ProjectsToBuildIT001)"/>
</Target>
Мне лично не нравится vb6.exe на моей основной машине сборки. Но это я.
Слава богу, .Net 2.0 и позже придумали способ создания кода, который не полагался на устанавливаемую среду IDE.
«Жесткий вызов» выглядит примерно так. У вас возникнет соблазн сократить его и попробовать, вероятно, это сработает. Но я считаю, что вышеприведенная задача намного чище.
<exec program="c:\myfolder\myexe.exe" failonerror="false">
<arg value="/MAKE" />
</exec>
Это, конечно, всего лишь пример, нужно немного повозиться, чтобы все исправить.
Но, в конце концов, vb6.exe должен находиться где-то в окне сборки ~~.
..
person
granadaCoder
schedule
11.01.2011