Смешивание C # и VB в том же проекте

Можете ли вы смешивать файлы vb и c # в одном проекте для библиотеки classов? Есть ли какие-то настройки, которые позволяют?

Я пробовал, и ни один из intellisense не работает правильно, хотя фоновый компилятор, похоже, справляется с этим достаточно хорошо (кроме того, что у меня тогда было 2 classа в одном и том же пространстве имен с тем же именем, и он не жаловался).

Мы пытаемся конвертировать из VB в C #, но не закончили преобразовывать весь код. У меня есть новый код, который мне нужно написать, но он действительно не хотел создавать для него новый проект.

Нет, ты не можешь. Сборка / проект (каждый проект обычно составляет 1 сборку) должен быть одним языком. Однако вы можете использовать несколько сборок, и каждый может быть закодирован на другом языке, потому что все они скомпилированы в MSIL.

Он скомпилировался отлично и не жаловался, потому что проект VB.NET будет только на самом деле компилировать файлы .vb, а проект C # будет фактически компилировать файлы .cs. Он игнорировал другие, поэтому вы не получили ошибок.

Изменить: если вы добавите файл .vb в проект C #, выберите файл в панели Solution Explorer, а затем перейдите на панель «Свойства», вы заметите, что «Действие сборки» – это «Контент», а не «Компиляция». Он рассматривается как простой текстовый файл и даже не внедряется в скомпилированную сборку в виде двоичного ресурса.

Изменить: с веб-сайтами asp.net вы можете добавить элемент управления веб-пользователями c # на веб-сайт vb.net

Ну, на самом деле я унаследовал проект несколько лет назад от коллеги, который решил смешивать веб-формы VB и C # в рамках одного и того же проекта. Это работало, но далеки от удовольствия.

Я решил, что новый код должен быть classами C # и заставить их работать. Мне пришлось добавить поднод в часть компиляции web.config

    

Все VB-коды попадают в подпапку в App_Code под названием VB и код C # в подпапку CS. Это приведет к созданию двух DLL-файлов. Он работает, но код компилируется в том же порядке, что и в «codeSubDirectories», и поэтому Interfaces должен находиться в папке VB, если он используется как в C #, так и в VB.

У меня есть ссылка на VB и компилятор C # в

   

Проект в настоящее время обновлен до версии 3.5, и он по-прежнему работает (но до сих пор не забавно поддерживать ..)

Вы не можете смешивать vb и c # в одном проекте – если вы заметили в visual studio, файлы проекта либо .vbproj, либо .csproj. Вы можете в пределах решения – иметь 1 proj в vb и 1 в c #.

Похоже, в соответствии с этим вы можете использовать их как в веб-проекте в каталоге App_Code:

http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx

Это может быть возможно с помощью некоторой пользовательской разработки MSBuild. Поставляемые .targets заставляют проекты быть единым языком, но это не препятствует сокращению времени выполнения или инструментария.

Оба компилятора VB и CS могут выводить на модули – версию .obj-файлов CLR. Используя компоновщик компоновки, вы можете взять модули из кода VB и CS и создать единую сборку.

Не то, чтобы это было триумфальное усилие, но, вероятно, это сработало.

Пошаговое руководство. Использование нескольких языков программирования в проекте веб-сайта http://msdn.microsoft.com/en-us/library/ms366714.aspx

По умолчанию папка App_Code не позволяет использовать несколько языков программирования. Однако в проекте веб-сайта вы можете изменить структуру папок и параметры конфигурации для поддержки нескольких языков программирования, таких как Visual Basic и C # . Это позволяет ASP.NET создавать несколько сборок, по одному для каждого языка. Дополнительные сведения см. В разделе Папки общего кода в веб-проектах ASP.NET. Разработчики обычно include в себя несколько языков программирования в веб-приложениях для поддержки нескольких групп разработчиков, которые работают независимо и предпочитают разные языки программирования.

Ознакомьтесь с этой ссылкой, в которой обсуждается проблема и показано, как комбинировать код VB и C # в одном проекте, в .NET 4.0

http://msdn.microsoft.com/en-us/library/t990ks23.aspx

Хотя Visual Studio не поддерживает это (вы можете сделать некоторые трюки и заставить MSBuild скомпилировать оба, но не из Visual Studio), SharpDevelop делает. Вы можете иметь как в одном решении (пока вы работаете с Visual Studio Professional и выше), поэтому самое простое решение, если вы хотите использовать Visual Studio, – это разделить ваш код VB на другой проект и получить доступ к нему таким образом.

Щелкните правой кнопкой мыши проект. Выберите Добавить папку Asp.Net. В папке создайте две папки с именем VBCodeFiles и другие CSCodeFiles. В Web.Config добавьте новый элемент под компиляцию

       

Теперь создайте страницу cshtml. Добавьте ссылку на VBCodeFiles.Namespace.MyClassName, используя

 @using DMH.VBCodeFiles.Utils.RCMHD @model MyClassname 

Где MyClassName – это объект classа, найденный в пространстве имен выше. теперь выпишите объект в бритве, используя файл cshtml.

 

@Model.FirstName

Обратите внимание: каталогName = “CSCodeFiles” является избыточным, если это проект C #, а directoryName = “VBCodeFiles” избыточен, если это проект VB.Net.

Да, его возможные проекты c # и vb.net в одном решении.

step1: Файл-> Добавить-> Существующий проект

Шаг 2: Project-> Добавить reference-> dll или exe проекта, который был добавлен ранее.

step3: В форме vb.net, где вы хотите использовать c # forms-> import namespace проекта.

Я не вижу, как вы можете скомпилировать проект с компилятором C # (или компилятором VB), и не заставлять его комментировать не на том языке.

Сохраните код C # в отдельном проекте из проекта VB. Вы можете включить эти проекты в одно и то же решение.

Вам нужен один проект на один язык. Я вполне уверен, что увидел инструмент, который объединил сборки, если вы найдете этот инструмент, вам нужно идти хорошо. Если вам нужно использовать оба языка в одном classе, вы должны будете написать половину его в разделе VB.net, а затем написать остальное на C #, наследуя class VB.net.

Риск повторения любого другого ответа, нет, вы не можете смешивать их в одном проекте.

Что в стороне, если вы только что закончили преобразовывать VB в C #, зачем писать новый код в VB?

Для .net 2.0 это работает. Он компилируется как в том же проекте, если вы создаете подкаталоги в коде приложения с соответствующим кодом языка. На данный момент я ищу, будет ли это работать в 3.5 или нет.

Почему бы вам просто не скомпилировать свой VB код в библиотеку ( .dll ). Получите это позже от своего кода и все. Управляемые dlls содержат MSIL с которыми скомпилированы и c# и vb .

Как говорили другие, вы не можете поставить оба в одном проекте. Однако, если у вас есть только небольшой fragment кода C # или VB, который вы хотите включить в проект на другом языке, есть инструменты автоматического преобразования . Они не идеальны, но они делают все очень хорошо. Кроме того, у SharpDevelop есть встроенная утилита преобразования.

Нет, не в том же проекте. Но вы можете использовать их в одном решении. хотя вам необходимо позаботиться о том, чтобы ваш код соответствовал CLS. Это означает, что вы не должны использовать такие функции / функции, которые не понимаются другим языком. Например, VB не понимает unsigned ints.

Да, вы можете добавить оба файла только на веб-сайт. Если проект является веб-приложением, он не разрешает использовать другой тип файла.

  • VB.Net Передача значений в другую форму
  • Почему я получаю: «Ссылка на объект не установлена ​​на экземпляр объекта». Но не связана ли строка кода?
  • Различия между vbLf, vbCrLf и vbCr Константы
  • Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальной машине
  • Контрольный массив в VB.NET
  • Доступ к imgUr через OAuth (загрузка в учетную запись пользователя)
  • Есть ли эквивалент VB.NET для C # ''? ' оператор?
  • Создание файла Excel в ASP.NET
  • Потребляйте веб-службу SOAP, не полагаясь на app.config
  • Возврат функции VB.NET
  • Использование связанных данных, хранящихся в двумерном массиве
  • Interesting Posts

    Как создать папку, которая автоматически связывается с общим диском между Windows и Linux?

    Использовать Task.Run () в синхронном методе, чтобы избежать тупиковой остановки в асинхронном методе?

    Пример кода Apple PNS (push notification services)

    Метод BufferedReader.ready () гарантирует, что метод readLine () не возвращает NULL?

    Как имитировать полное внешнее соединение в Excel?

    ‘do … while’ vs. ‘while’

    Установить шрифт для всех текстовых элементов в действии?

    Как удалить несколько строк без цикла в Excel VBA

    KDE Konsole для выбора текста и копирования в буфер обмена

    Каковы некоторые лучшие практики и «эмпирические правила» для создания индексов базы данных?

    Почему в HTTP-ответе следует использовать как кеш, так и нет-хранилище?

    Как перенести файл из одного места в другое на диске?

    Как пропустить Получить только свойства в servicestack json serializer?

    Разница между функциями $ (window) .load () и $ (document) .ready ()

    Что означает эта тильда?

    Давайте будем гением компьютера.