编辑:我已经编辑了整个问题,因为这不仅适用于Unity3D,而且完全适用于.sln项目。
我在我的macbook上安装了visual studio代码(不是visualstudio,而是这个:https://code.visualstudio.com/)。在其他方面,vscode在普通和unity3d项目中运行良好。我对所有类都有智能感知,包括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的正常行为,我们将非常感谢您的任何验证。此外,如果有人知道任何解决方案,甚至是黑客的解决方案,克服这个bug并强制intellisense自动完成也会有帮助。
我得到的错误是:
The name 'tester' does not exist in the current context [DummyConsoleApplication]

我的硬件是带有优胜美地的MacBook,编译器是dnx-mono.1.0.0-beta4。

最佳答案

这是OmniSharp的已知限制,这是visual studio代码built around的c引擎。添加<DefineConstants>支持有一个open enhancement request,但它与一个关于MSBuild Support的更大问题有关。
目前,这不是visual studio代码下支持的配置。您可以尝试通过launch.json来定义您的常量,但最多只能提供最少的支持。

08-27 13:36