Можете ли вы смешивать языки .net в рамках одного проекта? - PullRequest
18 голосов
/ 13 октября 2008

Можете ли вы смешивать языки .net в рамках одного проекта? Предварительно скомпилированный, я хотел бы вызывать классы и методы других исходных файлов.

Для веба и приложений?

В частности, я бы заинтересовался F # и C #.

Ответы [ 5 ]

16 голосов
/ 13 октября 2008

Вы можете смешивать языки в одной сборке с ILMerge и MSBuild .

Здесь - очень хороший пример.

11 голосов
/ 13 октября 2008

Да, вы можете, но Visual Studio не поддерживает его напрямую. Что вы будете делать, это скомпилировать код для сетевых модулей, а затем объединить их в одну сборку. Компиляторы поддерживают опцию «/ target: module», которая генерирует эти сетевые модули.

Затем вы можете использовать компиляторы для ссылки на другие сетевые модули при сборке или использовать Assembly Linker (Al.exe) . Для этого есть даже задача msbuild: AL (Assembly Linker) Task .

Полный обзор представлен на MSDN: Как: создать многофайловую сборку

8 голосов
/ 13 октября 2008

CMS упоминает интересный подход, но на самом деле я бы посоветовал вам не усложнять ситуацию и иметь разные сборки (проекты) для кода C # и F #. Между C # и F # есть хорошо документированные точки связи (например, здесь и здесь ) - я бы порекомендовал их. Различия между C # и F # (особенно с F #, имеющим другое время выполнения!) Довольно велики ...

2 голосов
/ 13 октября 2008

Вы можете сделать это в проекте веб-сайта по сравнению с проектом с компиляцией: http://www.aspnetlibrary.com/articledetails.aspx?article=Use-C-Sharp-and-VB.NET-in-the-same-project. BuildProvider веб-сайта разрешает языковые элементы на лету.

.NET BuilderProvider по-прежнему недоступен для проектов, не связанных с веб-сайтами, поэтому вам не повезло со стандартным приложением Intellisense.

2 голосов
/ 13 октября 2008

вы можете указать язык в каждом проекте сборки (библиотека DLL) и использовать несколько из них в одном решении, но я не думаю, что вы можете смешивать языки в одной сборке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...