如何在NAnt中为VB.Net创建自动构建文件?
我已经接管了以.net 1.0框架为目标并以Cand Visual Basic编写的Web应用程序的开发。
我认为我们要做的第一件事是优化构建过程,为Cprojects编写了构建文件,但是在为Visual Basic创建构建文件时遇到了很多问题。
诚然,我个人并不了解VB,但是似乎我必须对构建文件中的所有导入和引用进行硬编码才能使任何东西正常工作...肯定不是最好的处理方法...
对于任何示例:如果我在构建文件中不包含名称空间System,则会收到一些常见未知类型的错误,例如:Guid
NAnt通常对于VB代码是否需要这样做?或者VB代码是否需要可能的NAnt友好重构?
有人有VB NAnt提示吗?
解决方案
回答
我不确定,如果我们谈论的是VB或者VB.Net。
无论哪种方式,请看看Nant Contrib。也许他们有解决方案。
回答
我们在打电话给msbuild来构建吗?或者我们正在调用VS.NET IDE exe进行构建。使用CC.NET和NAnt的c#/ VB.NET组合没有问题,也不必在构建文件中指定引用的程序集。
我们要做的是使用IDE exe来构建包含要构建的项目的解决方案。
回答
我建议我们从特定于语言的编译器中脱颖而出。而且我们仍然可以使用NAnt来做到这一点:
首先从使用MSBuild的目标开始,因为它将使用任何语言编译项目,并为我们处理依赖项。这意味着我们不需要对它们进行硬编码。
例子:
<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进行本机编译,但是在我看来,这是我将要用于此项目的内容,因为这似乎是一次过的尝试?
希望能有所帮助,
干杯,
罗布·G
回答
我对NAnt和使用Visual Studio开发的VB.NET项目的vbc编译器也有类似的经验。我的解决方案是避免在Visual Studio的项目级别(默认情况下)导入名称空间,并在类/文件级别使用显式的Imports语句。默认情况下,Cprojects以这种方式工作(不导入项目级别的名称空间),并且我喜欢查看文件时由显式名称空间指令提供的额外信息。
有趣的是,VB.NET和CVS项目在这方面是如此不同。