你可以在一个类库的同一项目中混合使用vb和c#文件吗?有没有一些设置可以让它成为可能?
我试过了,没有一个intellisense能很好地工作,尽管后台编译器似乎能很好地处理它(除了我在同一个名称空间中有两个同名的类,而且它没有抱怨)。
我们正在尝试从VB转换到C#,但是还没有完成所有代码的转换。我有一些新的代码需要写,但并不是真的想为它做一个新的项目。
发布于 2009-08-14 14:06:14
不,你不能。一个程序集/项目(每个项目通常编译成一个程序集)必须是一种语言。但是,您可以使用多个程序集,并且每个程序集都可以用不同的语言编码,因为它们都编译为CIL。
它编译得很好,没有任何问题,因为VB.NET项目实际上只编译.vb文件,而C#项目实际上只编译.cs文件。它忽略了其他的,因此你没有收到错误。
编辑:如果您将.vb文件添加到C#项目中,请在解决方案资源管理器面板中选择该文件,然后查看属性面板,您会注意到构建操作是“内容”,而不是“编译”。它被视为一个简单的文本文件,甚至不会作为二进制资源嵌入到编译后的程序集中。
编辑:使用asp.net网站的您可以将c# web用户控件添加到vb.net网站
发布于 2010-10-21 22:18:22
实际上,几年前我从一位同事那里继承了一个项目,他决定在同一个项目中混合使用VB和C# webforms。这很有效,但维护起来一点也不有趣。
我决定新代码应该是C#类,为了让它们正常工作,我必须在web.config的编译部分添加一个子节点
<codeSubDirectories>
<add directoryName="VB"/>
<add directoryName="CS"/>
</codeSubDirectories>
所有VB代码放入App_Code中名为VB的子文件夹中,C#代码放入CS子文件夹中。这将生成两个.dll文件。它可以工作,但代码的编译顺序与"codeSubDirectories“中列出的顺序相同,因此,如果在C#和VB中都使用接口,则接口应位于VB文件夹中。
中有对VB和C#编译器的引用。
<system.codedom>
<compilers>
该项目目前已更新到框架3.5,并且仍然可以正常工作(但维护起来仍然没有乐趣。)
发布于 2009-08-14 14:05:28
您不能在同一项目中混合使用vb和c# -如果您注意到在visual studio中,项目文件是.vbproj或.csproj。你可以在一个解决方案中-在vb中有一个项目,在c#中有一个项目。
根据这一点,您可以在App_Code目录下的web项目中使用它们:
http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx
https://stackoverflow.com/questions/1278024
复制相似问题