Я взял на себя разработку веб-приложения, нацеленного на платформу .net 1.0 и написанного на C # и Visual Basic.
Я решил, что первое, что нам нужно сделать, это усовершенствовать процесс сборки, я написал файлы сборки для проектов C #, но у меня возникло множество проблем при создании файла сборки для Visual Basic.
По общему признанию, я лично не знаю VB, но кажется, что я должен жестко закодировать все импорты и ссылки в моем файле сборки, чтобы заставить что-либо работать ... конечно, не лучший способ сделать вещи ...
Для любого примера: если я не включу систему пространств имен в файл сборки, я получу несколько ошибок распространенных неизвестных типов, например: Guid
NAnt обычно требует этого для кода VB или код VB нуждается в возможном рефакторинге NAnt?
У кого-нибудь есть советы VB NAnt?
Я не уверен, если вы говорите о VB или VB.Net.
В любом случае, взгляните на Нанта Contrib . Может быть, у них есть решение.
Вы звоните msbuild для сборки? Или вы вызываете VSE .NET IDE exe для сборки. У нас не было проблем с нашим миксом c # / VB.NET с использованием CC.NET и NAnt, и нам не нужно было указывать ссылочные сборки внутри файлов сборки.
Мы используем 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 скомпилировать нативно, но, по моему мнению, это то, что я бы использовал для этого проекта, так как он, кажется, не работает?
Надеюсь, это поможет,
Ура,
Роб Г
У меня был похожий опыт работы с NAnt и компилятором vbc для проектов VB.NET, разработанных с помощью Visual Studio. Мое решение состояло в том, чтобы избежать импорта пространств имен на уровне проекта в Visual Studio (что происходит по умолчанию) и использовать явные операторы Imports на уровне класса / файла. Проекты C # работают таким образом по умолчанию (нет импорта пространства имен на уровне проекта), и мне нравится дополнительная информация, предоставляемая явными директивами пространства имен при просмотре файла.
Интересно, что проекты VB.NET и C # VS настолько разные в этом отношении.