Как создать файл автоматической сборки для VB.Net в NAnt?

Я взял на себя разработку веб-приложения, ориентированного на платформу .net 1.0 и написанного на C# и Visual Basic.

Я решил, что первое, что нам нужно сделать, это усовершенствовать процесс сборки, я написал файлы сборки для проектов C#, но у меня масса проблем с созданием файла сборки для Visual Basic.

По общему признанию, я лично не знаком с VB, но мне кажется, что мне нужно жестко закодировать весь импорт и ссылки в моем файле сборки, чтобы что-то работало ... конечно, не лучший способ делать что-то ...

Для любого примера: если я не включу пространство имен System в файл сборки, я получу несколько ошибок распространенных неизвестных типов, например: Guid

NAnt обычно требует этого для кода VB или код VB требует возможного NAnt-freindly рефакторинга?

Есть ли у кого-нибудь подсказки VB NAnt?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 827
4

Ответы 4

Я не уверен, если вы говорите о VB или VB.Net.
В любом случае, посмотрите Nant Contrib. Может, у них есть решение.

Вы вызываете msbuild для сборки? Или вы вызываете VS.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 в этом отношении очень разные.

Другие вопросы по теме