将VB文件添加到C#项目中

时间:2014-07-01 17:59:57

标签: c# vb.net visual-studio-2013

我目前正在尝试在C#项目中添加一个VB文件,但我只能添加C#文件。有没有办法让我能够添加更多语言模板,如下所示?

下面的图片是我在一个旧项目中可以做的一个例子,它可以将VB和C#文件添加到一个项目中。 Example

更新:我正在使用新的bootstrap框架将ASP.NET 2.0站点重新开发到最新版本。在C#开始重新开发之前,我没有意识到旧项目主要使用VB。我注意到旧项目也使用了一些C#。我试图通过添加VB文件来查看是否可以在新的ASP.NET项目中使用这两种语言。如果没有,我将只创建一个VB项目并将所有C#代码转换为它。

2 个答案:

答案 0 :(得分:0)

当您在项目中打开“添加新文件”对话框时,它将按您正在处理的当前项目类型进行过滤。例如。你不能将* .vb文件添加到C#项目类型中,而不会以某种方式破解它。

* .csproj文件中的GUID定义当前项目类型。 This site contains a set of known GUIDs,从2008年开始,它有点过时了。

正如我在评论中所说,您能够在Web项目中混合使用VB和C#代码的原因是使用CodeFile属性,而不是CodeBehind属性。后者将项目中的所有源文件编译为具有相同名称的程序集。这将是您向网络服务器上传的文件以及.aspx文件。

示例文件结构:

bin/MyApp.MyProject.dll
Index.aspx

动态编译源代码的CodeFile变体将需要同一目录中的所有文件,或者属性中指定的目录中的所有文件,对于此示例,它将驻留在同一目录中。这还允许您更改Web服务器上的代码,而不必将代码下载到开发环境中。 (当你向任何版本控制和其他有用工具挥手告别时,不建议这样做。)

示例文件结构:

Index.aspx
Index.aspx.cs

我的建议是决定是否继续在VB中开发,或切换到C#。将代码库包含在一种语言中是可取的。如果您决定重构整个解决方案,为什么不给ASP.NET MVC一个机会呢? : - )

答案 1 :(得分:-1)

实际上,将VB文件放在C#项目中,以前不确定它是否仍然可用。您可能需要添加文本文件类型,但使用.vb扩展名来命名。然后将其放在一个文件夹中。然后在app或web配置中,你需要添加一些配置来告诉运行时在哪里找到vb文件并使用VB编译器来编译代码。

虽然有效,但很笨重,不推荐。再一次,不确定它是否可用。

就个人而言,如果您有VB代码,请使用像this one这样的vb2cs转换器开始转换它。它们并不完美,但在大多数情况下它至少是一个良好的开端。