如何在NAnt中为VB.Net创建自动构建文件?

如何在NAnt中为VB.Net创建自动构建文件?

How do I create an automated build file for VB.Net in NAnt?

我已经接管了以.net 1.0框架为目标并用C#和Visual Basic编写的Web应用程序的开发。

我认为我们要做的第一件事是优化构建过程,我为C#项目编写了构建文件,但是在为Visual Basic创建构建文件时遇到了很多问题。

诚然,我个人并不了解VB,但似乎我必须对构建文件中的所有导入和引用进行硬编码,以使一切正常工作……肯定不是最好的处理方法... <铅>

对于任何示例:如果我在构建文件中不包括名称空间System,我将遇到一些常见的未知类型的错误,例如:Guid

对于VB代码,NAnt通常需要这样做吗?或者VB代码是否需要可能的NAnt-freindly重构?

有人有VB NAnt提示吗?


我对于使用Visual Studio开发的VB.NET项目的NAnt和vbc编译器也有类似的经验。我的解决方案是避免在Visual Studio的项目级别(默认情况下)导入名称空间,并在类/文件级别使用显式的Imports语句。默认情况下,C#项目以这种方式工作(不导入任何项目级别的名称空间),并且我喜欢在查看文件时由显式名称空间指令提供的额外信息。

有趣的是,VB.NET和C#VS项目在这方面是如此不同。


我建议您将特定于语言的编译器从该方程式中排除。而且您仍然可以使用NAnt来做到这一点:

首先从使用MSBuild的目标开始,因为它将使用任何语言编译您的项目,并为您处理依赖项。这意味着您不需要对它们进行硬编码。

示例:

1
2
3
4
5
6
7
8
<target name="WinBuild">
  <exec program="msbuild.exe"
        basedir="${DotNetPath}"
        workingdir="${SolutionPath}"
        commandline="MySolution.sln
                     /nologo /verbosity:normal /noconsolelogger
                     /p:Configuration=Debug /target:Rebuild"
/>
</target>

我认为一旦确定了这一点-您就可以花费大量时间尝试让NAnt进行本机编译,但是在我看来,这是我将要用于此项目的内容,因为这似乎是一次过的尝试?

希望有帮助,

干杯,

Rob G


您要调用msbuild进行构建吗?或者,您正在调用VS.NET IDE exe进行构建。使用CC.NET和NAnt的c#/ VB.NET组合没有问题,也不必在构建文件中指定引用的程序集。

我们正在使用IDE exe来构建包含要构建的项目的解决方案。


我不确定,如果您谈论的是VB或VB.Net。
无论哪种方式,请看看Nant Contrib。也许他们有解决办法。


推荐阅读