Объединить C # и VB.NET в решении - PullRequest
0 голосов
/ 02 марта 2012

У меня есть решение, Winforms, в основном составленное из проектов VB.NET (Wiforms, Constrols и бизнес-классов).

Как, я добавил к нему проект WPF, но написал его на C #.

На самом деле, каждый раз, когда я делаю изменения в проекте WPF C #, мне нужно (заново) создавать проект C # WPF.

Есть ли возможность заставить его работать как другие (VB.NET) проекты (принять и «увидеть» изменения, не перестраивая проект C #)?

Пример:

Когда я ссылаюсь на проект "R.VB" в проекте "M.VB", я добавляю метод "DoTest" в "R.VB" и использую этот метод в "M.VB" без ошибок компиляции.

Если я добавлю «DoTest» в элемент управления WPF C # и попытаюсь использовать его в проекте «M.VB», я получу ошибку компиляции «DoTest» не является членом класса «R.C # Class».

C # опции в моем VS

enter image description here

Ответы [ 5 ]

1 голос
/ 02 марта 2012

Нет, C # поддерживает фоновую компиляцию.

0 голосов
/ 02 марта 2012

Есть ли у вас проекты VB.NET и ваш C # / WPF в одном решении? Они должны автоматически восстановить, если вы делаете. Если вы используете ссылку на сборку, вам нужно сделать это вручную. Насколько я знаю, изменение кода без перестройки в стиле VB6 в любом случае не поддерживается в .NET ...

0 голосов
/ 02 марта 2012

если вам нужна динамическая сборка, вы можете взглянуть на проект Roslyn

подробнее здесь

"Разработчики также могут использовать выводтакого программного обеспечения для выполнения таких задач, как рефакторинг или реорганизация своего кода, для добавления функциональности C # и Visual Basic к программам, написанным на других языках, а также добавляет динамическую типизацию к статически типизированным C # и Visual Basic, позволяя разработчикам добавлять объектыи новые переменные для программы на лету. "

0 голосов
/ 02 марта 2012

Нет - если вы измените код, который вам нужен для повторной компиляции, по крайней мере, я думаю, что это то, что вы просите.

0 голосов
/ 02 марта 2012

Если проект A ссылается на проект B, A не может видеть изменения в B, пока проект B не будет перестроен.

Однако, если вы хотите автозаполнение и несколько других приемов перед перекомпиляцией ссылочных проектов, вы можете использоватьрасширение, которое смотрит на ваш исходный код вместо скомпилированного вывода, например ReSharper .

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