【发布时间】: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 结局,但没有任何帮助。
标签: c# constants csproj visual-studio-code