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, к вашему сведению)
<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 должен существовать в окне сборки ~~ где-то.
..