使用 Visual Studio Code 和使用定义的符号
Posted
技术标签:
【中文标题】使用 Visual Studio Code 和使用定义的符号【英文标题】:Using Visual Studio Code and using defined symbols 【发布时间】:2015-07-29 15:08:24 【问题描述】:编辑:我已经编辑了整个问题,因为这不仅适用于 Unity3D,而且适用于所有 .sln 项目。
我在工作的 Macbook 上安装了 Visual Studio Code(不是 Visual Studio,而是这个:https://code.visualstudio.com/)。否则,VSCode 在普通和 Unity3D 项目中工作得很好。我在所有类上都获得了 Intellisense,包括 Unity3D 特定的类,比如 GameObject。所以我认为我的安装和启动顺序是正确的。
我唯一的问题是 VSCode 似乎无法识别 .csproj 文件中定义的常量。首先,我在一些 Unity3D 插件中注意到了这一点,但它在普通的 Visual Studio 项目中也存在。
我的示例项目是一个从 Internet 下载的虚拟应用程序,但它完全可以在 MonoDevelop 上运行。这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DummyConsoleApplication
class Program
static void Main(string[] args)
tester();
#if DEBUG
static void tester()
#endif
Main 中的函数调用导致编辑器出现未找到的异常,但它编译正常,因为 .csproj 文件有这一行:
<DefineConstants>DEBUG;TRACE</DefineConstants>
如果这是否是 VSCode 的正常行为,我们将不胜感激。此外,如果有人知道任何解决方案,甚至是骇人听闻的解决方案,以克服这个错误并强制 Intellisense 自动完成也会有所帮助。
我得到的错误是:
The name 'tester' does not exist in the current context [DummyConsoleApplication]
我的硬件是装有 Yosemite 的 Macbook,我的编译器是 dnx-mono.1.0.0-beta4。
【问题讨论】:
可能与行尾有关吗?在 Unity 中使用 Visual Studio 代码时必须转换行尾。是的,MonoDevelop 是一场噩梦。 嗯,这是我还没有做的事情。你能给我指出一个正确的方向吗? 我想我已经转换了行尾。我使用了一个名为 LineBreak 的实用程序来执行此操作。没有修复错误。如果你使用的是 VSCode,你能检查一下你的环境中的行为吗? 这些链接充分说明了 Visual Studio 而不是 VSCode,因此它们对我的情况没有帮助。是的,MonoDevelop 注意到行尾发生了变化。我用 LineBreak 工具尝试了 mac、win 和 unix 结局,但没有任何帮助。 【参考方案1】:这是 OmniSharp 的一个已知限制,Visual Studio Code 是 built around 的 C# 引擎。有一个 open enhancement request 用于添加 <DefineConstants>
支持,但它与 MSBuild Support 相关的更大问题。
目前,这不是 Visual Studio Code 下支持的配置。您可以尝试通过 launch.json 来定义您的常量,但支持最多的是最少的。
【讨论】:
谢谢。很高兴知道它不在我的环境中。你能给我更多关于在 lauch.json 中定义它们的信息吗?如果我让 VSCode 在“#if UNITY_android”-tags 中调用方法时不出错,我会很高兴。【参考方案2】:它应该可以工作...
作为一个健全的检查,你有没有:
最近“同步 MonoDevelop 项目”? 确保 Visual Studio Code 选择了 -csharp 解决方案 (.sln)? (点击状态栏中的火焰进行更改)【讨论】:
是的。我进行了同步,打开了包含 .sln 文件的项目文件夹,并从底部的火焰中选择了项目。 Intellisense 工作得很好而且很花哨。你的 VSCode 能识别 Unity 定义的那些标签吗?以上是关于使用 Visual Studio Code 和使用定义的符号的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio Code 创建和链接另一个网页?