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 任务并“硬调用”上面的命令行。
没有 VB6.EXE 就无法构建 .vbp。接受这个事实,你的世界就会变得更有意义。
我建议将绝对最小公分母 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 必须存在于构建框~~某处。
..