EDYCJA: Edytowałem całe pytanie, ponieważ dotyczy to nie tylko Unity3D, ale wszystkich projektów .sln.Używanie kodu Visual Studio i używanie zdefiniowanych symboli
Mam instalację kodu Visual Studio (nie Visual Studio, ale to: https://code.visualstudio.com/) na moim Macbook w pracy. VSCode w przeciwnym razie działa poprawnie w normalnych projektach Unity3D. Dostaję Intellisense na wszystkich klasach, w tym specyficznych dla Unity3D, takich jak GameObject. Myślę, że moja sekwencja instalacji i uruchamiania jest poprawna.
Jedyny problem jaki mam, to to, że VSCode nie rozpoznaje stałych zdefiniowanych w plikach .csproj. Najpierw zauważyłem to z niektórymi wtyczkami Unity3D, ale jest ono trwałe również w normalnych projektach Visual Studio.
Mój przykładowy projekt to fikcyjna aplikacja pobrana z Internetu, ale działa w pełni na MonoDevelop. To jest mój kod
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
}
}
Wywołanie funkcji w Main powoduje nie znaleziono wyjątek w edytorze, ale kompiluje grzywny, ponieważ plik .csproj ma ten wiersz:
<DefineConstants>DEBUG;TRACE</DefineConstants>
żadnej weryfikacji, czy na jest to normalne zachowanie dla VSCode byłoby bardzo mile widziane. Ponadto, jeśli ktoś jest świadomy jakiegoś rozwiązania, nawet hacky, aby ominąć ten błąd i zmusić Intellisense do autouzupełniania, też by mu pomógł.
Błąd pojawia się:
The name 'tester' does not exist in the current context [DummyConsoleApplication]
Mój sprzęt jest Macbook z Yosemite i mój kompilator jest DNX-mono.1.0.0-beta4.
Czy to może mieć coś wspólnego z zakończeniami linii? Musisz konwertować zakończenia linii, gdy używasz kodu Visual Studio w Unity. i tak, MonoDevelop to koszmar. –
Cóż, to jest coś, czego jeszcze nie zrobiłem. Czy możesz wskazać mi właściwy kierunek, w jaki sposób to zrobić? – Quido3
Myślę, że konwertowałem końcówki linii. Użyłem narzędzia o nazwie LineBreak, aby to zrobić. Nie naprawiłem błędu. Jeśli używasz VSCode, czy możesz sprawdzić zachowanie w swoim środowisku? – Quido3