你能在同一个项目中为类库混合使用vb和c#文件吗?是否有一些设置可以实现?
虽然后台编译器似乎能够很好地处理它,但我尝试了并不是intellisense都没有做得很好(除了我,然后,在同一名称空间中有2个类具有相同的名称并且它没有抱怨).
我们正在尝试从VB转换为C#但尚未完成所有代码的转换.我有一些我需要编写的新代码,但并不是真的想要为它创建一个新项目.
Joe*_*ant 123
不,你不能.程序集/项目(每个项目通常编译为1个程序集)必须是一种语言.但是,您可以使用多个程序集,并且每个程序集都可以使用不同的语言编码,因为它们都编译为MSIL.
它编译得很好,并没有抱怨,因为VB.NET项目只会实际编译.vb文件,而C#项目只会实际编译.cs文件.它忽略了其他的,因此你没有收到错误.
编辑:如果将.vb文件添加到C#项目,请在"解决方案资源管理器"面板中选择该文件,然后查看"属性"面板,您会注意到"构建操作"是"内容",而不是"编译".它被视为一个简单的文本文件,甚至不会作为二进制资源嵌入编译的程序集中.
编辑:使用asp.net网站,您可以将c#web用户控件添加到vb.net网站
小智 32
好吧,实际上我几年前从同事那里继承了一个项目,该同事决定在同一个项目中混合VB和C#webforms.这有效但维护起来很有趣.
我决定新代码应该是C#类并让它们工作我必须在web.config的编译部分添加一个子节点
<codeSubDirectories>
<add directoryName="VB"/>
<add directoryName="CS"/>
</codeSubDirectories>
Run Code Online (Sandbox Code Playgroud)
所有VB代码都进入App_Code中的一个名为VB的子文件夹,将C#代码放入CS子文件夹中.这将生成两个.dll文件.它工作正常,但代码的编译顺序与"codeSubDirectories"中列出的相同,因此,如果在C#和VB中使用,则接口应该在VB文件夹中.
我有一个VB和C#编译器的引用
<system.codedom>
<compilers>
Run Code Online (Sandbox Code Playgroud)
该项目目前更新为框架3.5,它仍然有效(但维护仍然没有乐趣..)
bre*_*dan 20
你不能在同一个项目中混合使用vb和c# - 如果你在visual studio中注意到项目文件是.vbproj或.csproj.你可以在解决方案中 - 在vb中有1个proj,在c#中有1个.
根据这个看起来你可以在App_Code目录中的web项目中使用它们:
http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx
Sco*_*ein 13
有可能通过一些自定义的MSBuild开发.提供的.targets强制项目为单一语言 - 但没有运行时或工具限制阻止这一点.
VB和CS编译器都可以输出到模块 - CLR的.obj文件版本.使用程序集链接器,您可以从VB和CS代码中获取模块并生成单个程序集.
并不是说这将是一项艰巨的努力,但它可能会奏效.
演练:在网站项目中使用多种编程语言 http://msdn.microsoft.com/en-us/library/ms366714.aspx
默认情况下,App_Code文件夹不允许使用多种编程语言.但是,在网站项目中,您可以修改文件夹结构和配置设置,以支持多种编程语言,如Visual Basic和C#.这允许ASP.NET创建多个程序集,每种语言对应一个程序集.有关更多信息,请参阅ASP.NET Web项目中的共享代码文件夹.开发人员通常在Web应用程序中包含多种编程语言,以支持独立运行并喜欢不同编程语言的多个开发团队.
小智 6
查看此链接,该链接讨论了该问题,并展示了如何在.NET 4.0中的一个项目中组合VB和C#代码
http://msdn.microsoft.com/en-us/library/t990ks23.aspx