我接管了针对.net 1.0框架的Web应用程序的开发,并使用C#和Visual Basic编写。
我认为我们需要做的第一件事是改进构建过程,我为C#项目编写构建文件,但是为Visual Basic创建构建文件有很多问题。
不可否认,我个人并不认识VB,但似乎我必须对构建文件中的所有导入和引用进行硬编码以使任何工作正常...当然不是最好的做事方式...... < / p>
对于任何示例:如果我在构建文件中不包含命名空间System,我将得到几个常见的Unkown Types错误,例如:Guid
对于VB代码,NAnt通常需要这个吗?或者VB代码是否需要可能的NAnt-freindly重构?
有人有VB NAnt提示吗?
答案 0 :(得分:2)
我对使用Visual Studio开发的用于VB.NET项目的NAnt和vbc编译器有类似的经验。我的解决方案是避免在Visual Studio中的项目级别导入名称空间(默认情况下会发生),并在类/文件级别使用显式Imports语句。默认情况下,C#项目以这种方式工作(没有项目级命名空间导入),我喜欢查看文件时显式命名空间指令提供的额外信息。
有趣的是VB.NET和C#VS项目在这方面是如此不同。
答案 1 :(得分:1)
我不确定,如果你谈论VB或VB.Net 无论哪种方式,请查看Nant Contrib。也许他们有一个解决方案。
答案 2 :(得分:1)
您是否正在调用msbuild来构建?或者您是否正在调用VS.NET IDE exe来构建。使用CC.NET和NAnt我们的c#/ VB.NET混合没有问题,也没有必要在构建文件中指定引用的程序集。
我们所做的是使用IDE exe构建包含我们要构建的项目的解决方案。
答案 3 :(得分:1)
我建议您将特定于语言的编译器从这个方程式中取出。你仍然可以使用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本地编译,但在我看来,这是我将用于这个项目,因为它似乎是一次性的?
希望有所帮助,
干杯,
Rob G