编辑:我已经编辑了整个问题,因为这不仅适用于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来定义您的常量,但最多只能提供最少的支持。