【问题标题】:VB.Net and C# Projects in 1 SolutionVB.Net 和 C# 项目合二为一的解决方案
【发布时间】:2010-01-24 15:55:18
【问题描述】:

有没有办法让我在 VS 2008 的 1 个解决方案下使用不同的语言创建多个项目?如果有,怎么做?

【问题讨论】:

  • 虽然如果 OP 可以在询问之前尝试一下会更容易,但我认为这个问题不值得 -1 票。投票
  • 在 Visual Studio EXPRESS EDITION 中这是不可能的

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


【解决方案1】:

只需创建它们。一个解决方案可以愉快地容纳不同语言的项目。我有 C# 和 VB.NET 项目在同一个解决方案中没有问题。

你不能在同一个项目中混合多种语言。

【讨论】:

  • 可以在同一个 .NET 程序集中混合语言(通过使用不同的编译器编译不同的模块)。但是,Visual Studio IDE 不支持这种情况,因此对于所有实际用途都毫无用处。
  • 如果我没记错的话,在 VS2002 中,当您右键单击解决方案时,可以选择添加不同语言的项目。我在 2008 年看不到这一点。我一定是盲人什么的。我现在找不到那个选项。我该去哪里做这个?
【解决方案2】:

正如 Oded 所说,您只需创建它们。为此,请右键单击 Solution 节点,选择 Add > New Project,选择所需的语言和项目类型,然后为其命名。

我知道这不起作用的唯一时间是:

  1. 当您的Always show solution 选项未选中时(在Tools > Options > Projects and Solutions 下)

  2. 当您没有安装这两种语言时,例如,如果您安装了 Visual Basic 2008 Express Edition 而没有 Visual C# 2008 Express Edition,反之亦然,或者如果您在安装过程中取消选择其中一种语言。请注意,除了 express 版本,每个版本都默认包含所有语言。

如果您遇到问题,我会验证上述问题均不适用。只需检查Tools > Options 设置并检查Help > About Microsoft Visual Studio 下的Installed products 列表。如果您需要更改 Installed products 列表,只需重新运行 VS.NET 设置(或相应的 Express 版本设置)。

【讨论】:

    【解决方案3】:

    您还需要属性“CLSCompliant”来忽略不符合 cls 的类型/成员。

    例如,如果您使用 C# 和 VB 项目,则需要排除签名相同但大小写不同的方法(VB 不区分大小写)

            [CLSCompliant(false)]
            public static string GetTypeName() {
                return "SomeBase";
            }
    
            [CLSCompliant(false)]
            public static string getTypeName() {
                return "somBase";
            }
    

    【讨论】:

    • 关于 C# 和 VB.NET 之间区分大小写的差异的有趣观察,但我希望任何设计良好的 C# 库都不会真正需要这个。给两个函数命名相同但只区分大小写对我来说似乎是不好的做法,因为在调用它们时很容易混淆这两个函数。不同的名称或显式指定要返回哪种类型的字符串值的参数既可以使代码更清晰,又可以完全避免 VB.NET 兼容性问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    相关资源
    最近更新 更多