2012-03-02 3 views
0

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

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

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

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

Пример:

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

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

C# параметры в моем VS

enter image description here

+1

Даже если бы все было написано на C#, вам придется перестроить. Ваш вопрос не имеет смысла. –

+1

@Ramhound «если бы все было написано на C#, вам нужно было бы перестроить», я согласен, НО в VB.NET вам не нужно перестраивать. – serhio

ответ

0

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

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

+0

Я не знаю, я знаю, что мне нужно перекомпилировать каждый раз, когда проект C#, но любой из VB.NET, я ссылаюсь на проекты, а не на dll ... – serhio

+0

Ссылки на проекты VB.NET могут вести себя по-другому - я C# dev. Когда вы ссылаетесь на проект C#, вы на самом деле ссылаетесь на скомпилированную dll выбранной вами конфигурации (Debug/Release/etc). – jrummell

+0

Точно, jrummel, вы говорите о проектах C#, но я говорю об обоих из них C# (ведомый) в VB (мастер), это о VB.NET, которые не ведут себя точно так же, как и C#. см. мое обновление (пример) ... – serhio

0

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

+0

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

1

Нет, C# действительно поддерживает сборку фона.

+0

О, это очень жаль – serhio

+0

C# поддерживает сборку фона, так как Visual Studio 2008 SP1. но [убедитесь, что он включен] (http://social.msdn.microsoft.com/Forums/en-US/vstsrosario/thread/9c4cd091-3583-4166-ba4b-01d70aff1791/) – MarkJ

+1

Компиляция фона на C# отличается от VB.net один. C# проверяет синтаксис, но не делает изменения видимыми вне сборки. – Chriseyre2000

0

, если вам необходимо динамическое построение вы посмотрите на project Roslyn

подробнее можно here

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

0

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

+0

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

Смежные вопросы