Unity5 Projekt nicht zu bauen, für Standalone-PC, auf Windows mit externen Visual-Studio-version (2017)

Obwohl es nur aus der Ferne im Zusammenhang mit der Programmplanung, hier geht es:

Seit Letzte Woche Spiele ich schon mit Einheit (5.6.0f3 Gemeinschaft x64) auf Win 10 (x64) - mit Visual Studio (2017 Gemeinschaft) als angebracht-editor, wie Einheit "erfordert" - und begann mit der [Einheit]: Tutorials (erste). Für ein paar Tage ging alles gut, aber dann Gebäude für PC Standalone Ziel, die aufgehört zu arbeiten. Googleing und überprüfen Sie die Foren, nicht Hilfe bei der Suche nach Informationen über dieses genaue Verhalten:

Unity5 Projekt nicht zu bauen, für Standalone-PC, auf Windows mit externen Visual-Studio-version (2017)

Als man auf der Build-Einstellungen dialog (nach rechts verschoben), es gibt keine (Zielplattform oder Architektur) combo-Boxen zulassen, um anzugeben, build-Parameter. Fehler werden auf der linken Seite.

Hinweise (über das aktuelle Verhalten):

  • Erste Vermutung war, dass die tutorial-Projekt wurde irgendwie Durcheinander, so habe ich eine neue von Grund auf (dummy /einfach mit einem Sphäre befestigt ein Festkörper und ein C# Skript, das gilt Kräfte, basierend auf Benutzer-input), aber es verhält sich (dies ist das Projekt-build-Ausgang in der Abbildung oben)
  • WebGL build läuft einwandfrei (lädt im browser); dies ist die Abhilfe, die derzeit verwendet werden, aber es dauert eine Ewigkeit, bis die vollständige
  • Spielening (offensichtlich) funktioniert auch (unnötig zu sagen, dass die Dinge sind OK in VStudio, keine Beschwerden von csc), !!!aber!!! nach versuchen (und scheitern) zu bauen, Spielening funktioniert nicht mehr (Neuladen des Projekts ist der einzige Weg, um es zu beheben)

Um auszuschließen, mögliche Zweifel, hier ist ein DownloadAssistant screenshot:

Unity5 Projekt nicht zu bauen, für Standalone-PC, auf Windows mit externen Visual-Studio-version (2017)

Alles ist geprüft, es gibt 2 items (nicht sehr relevant in diesem Fall), werden nicht angezeigt (weil das Fenster nicht beträchtlich), aber Sie sind überprüft (und installiert).

Hintergrund info:

  • Bei der ersten Installation Einheit, es gab keine VStudio 2017 version auf dem computer vorhanden, so ist es (Community Edition) installiert wurde, als Teil der Einheit Installation (ich erinnere mich an (mindestens) eine VStudio Verwandte combo-box in der Assistant)
  • Dann ein VStudio patch verfügbar war; bei der Vorbereitung, um es zu installieren, merkte ich, dass VStudio installiert wurde, auf den Standard-Pfad (auf %SYSTEMDRIVE%), welche doesn T Arbeit für mich, denn es ist eine große Produkt, also:
    • Es deinstalliert
    • Es neu installiert (direkt von [VisualStudio]: Visual Studio Downloads) auf ein anderes Laufwerk (und ja, ich bin mir bewusst, dass das ändern des install-Pfad noch installiert ein ziemlich großes Teil wie Windows SDK auf %SYSTEMDRIVE%)
    • Da ich dachte, dass die oben genannten 2 Schritte würden die Verknüpfungen zwischen Einheit und die neue VStudio ich auch neu installiert Einheit. Dieses mal gab es keine VStudio zugehörigen check-Boxen in der Assistant (scheint normal zu prüfen, ob ein Stück software, die Sie installieren muss, ist das nicht bereits installiert ist 1). Später fand ich auch eine persistente (was bedeutet, dass es nicht ausgelöscht zu Einheit deinstallieren mal) RegValue (HKEY_CURRENT_USER\SOFTWARE\Unity Technologies\Installer\Select_VisualStudio) mit einem Wert von 0 (im Gegensatz zu einer Reihe anderer Werte, die unter dem gleichen Schlüssel mit den Werten 1)
  • Danach habe ich neu installiert Einheit mehrmals, einschließlich neu gestartet (nicht erforderlich) zwischen deinstallieren /installieren, aber ohne Ergebnis (ich brauchte auch ein langer Schuss von der Aktivierung der RegVaue oben, bevor Assistant)

Ein wenig debugging ergab, dass, wenn Sie versuchen zu bauen (PC Standalone), Einheit soetwas macht (nicht dagegen die Pfade, es ist wie Sie sind auf meiner Maschine), das reproduziert werden kann, von cmdline:

build_win.bat:

"E:\Install\x64\Unity\5.6.0f3\Editor\Data\MonoBleedingEdge\bin\mono.exe" "E:\Install\x64\Unity\5.6.0f3\Editor\Data\MonoBleedingEdge\lib\mono\4.5\mcs.exe" "@args-win.txt"

args_win.txt:

-debug
-target:library
-nowarn:0169
-langversion:4
-out:Temp/Assembly-CSharp.dll
-unsafe
-optimize
-r:E:/Install/x64/Unity/5.6.0f3/Editor/Data/UnityExtensions/Unity/GUISystem/Standalone/UnityEngine.UI.dll
-r:E:/Install/x64/Unity/5.6.0f3/Editor/Data/UnityExtensions/Unity/Networking/Standalone/UnityEngine.Networking.dll
-r:E:/Install/x64/Unity/5.6.0f3/Editor/Data/UnityExtensions/Unity/UnityAnalytics/UnityEngine.Analytics.dll
-define:UNITY_5_3_OR_NEWER
-define:UNITY_5_4_OR_NEWER
-define:UNITY_5_5_OR_NEWER
-define:UNITY_5_6_OR_NEWER
-define:UNITY_5_6_0
-define:UNITY_5_6
-define:UNITY_5
-define:UNITY_ANALYTICS
-define:ENABLE_AUDIO
-define:ENABLE_CACHING
-define:ENABLE_CLOTH
-define:ENABLE_DUCK_TYPING
-define:ENABLE_GENERICS
-define:ENABLE_PVR_GI
-define:ENABLE_MICROPHONE
-define:ENABLE_MULTIPLE_DISPLAYS
-define:ENABLE_PHYSICS
-define:ENABLE_RUNTIME_NAVMESH_BUILDING
-define:ENABLE_SPRITERENDERER_FLIPPING
-define:ENABLE_SPRITES
-define:ENABLE_TERRAIN
-define:ENABLE_RAKNET
-define:ENABLE_UNET
-define:ENABLE_LZMA
-define:ENABLE_UNITYEVENTS
-define:ENABLE_WEBCAM
-define:ENABLE_WWW
-define:ENABLE_CLOUD_SERVICES_COLLAB
-define:ENABLE_CLOUD_SERVICES_ADS
-define:ENABLE_CLOUD_HUB
-define:ENABLE_CLOUD_PROJECT_ID
-define:ENABLE_CLOUD_SERVICES_UNET
-define:ENABLE_CLOUD_SERVICES_BUILD
-define:ENABLE_CLOUD_LICENSE
-define:ENABLE_EDITOR_METRICS
-define:ENABLE_EDITOR_METRICS_CACHING
-define:ENABLE_NATIVE_ARRAY
-define:INCLUDE_DYNAMIC_GI
-define:INCLUDE_GI
-define:PLATFORM_SUPPORTS_MONO
-define:RENDER_SOFTWARE_CURSOR
-define:INCLUDE_PUBNUB
-define:ENABLE_PLAYMODE_TESTS_RUNNER
-define:ENABLE_SCRIPTING_NEW_CSHARP_COMPILER
-define:ENABLE_VIDEO
-define:UNITY_STANDALONE_WIN
-define:UNITY_STANDALONE
-define:ENABLE_SUBSTANCE
-define:ENABLE_RUNTIME_GI
-define:ENABLE_MOVIES
-define:ENABLE_NETWORK
-define:ENABLE_CRUNCH_TEXTURE_COMPRESSION
-define:ENABLE_UNITYWEBREQUEST
-define:ENABLE_CLOUD_SERVICES
-define:ENABLE_CLOUD_SERVICES_ANALYTICS
-define:ENABLE_CLOUD_SERVICES_PURCHASING
-define:ENABLE_CLOUD_SERVICES_CRASH_REPORTING
-define:ENABLE_EVENT_QUEUE
-define:ENABLE_CLUSTERINPUT
-define:ENABLE_VR
-define:ENABLE_WEBSOCKET_HOST
-define:ENABLE_MONO
-define:NET_2_0_SUBSET
Assets/_Scripts/x.cs
-r:E:\Install\x64\Unity\5.6.0f3\Editor\Data\Mono\lib\mono\unity\System.Runtime.Serialization.dll
-r:E:\Install\x64\Unity\5.6.0f3\Editor\Data\Mono\lib\mono\unity\System.Xml.Linq.dll
-r:E:\Install\x64\Unity\5.6.0f3\Editor\Data\Mono\lib\mono\unity\UnityScript.dll
-r:E:\Install\x64\Unity\5.6.0f3\Editor\Data\Mono\lib\mono\unity\UnityScript.Lang.dll
-r:E:\Install\x64\Unity\5.6.0f3\Editor\Data\Mono\lib\mono\unity\Boo.Lang.dll
-sdk:unity

args_win.txt ist eine Kopie von einer der ${PROJECT_ROOT}\Temp\UnityTempFile-*s (ich werde beziehen sich auf eine solche Datei als utfile), genauer gesagt die eine, die erzeugt wird beim starten des build. Das Irre daran ist, dass es erstellt wurde, von einem anderen (einer von den 10+ identisch erstellt am Projekt load-time) utfile durch (habe nicht durch schauen, vielleicht gibt es zusätzliche Linien) - striping (und Schlurfen (amestecating)) ein paar Zeilen.

Die offensichtlich einen (nicht einmal überprüfen Sie die Quelle utfile): -r:E:/Install/x64/Unity/5.6.0f3/Editor/Data/Managed/UnityEngine.dll, die, eingefügt in der genannten Datei, funktioniert tadellos. Aber ich weiß nicht, wie man anweisen Einheit nicht zu Streifen.

Andere Fakten (mehr oder weniger relevant):

  • Es gibt mehrere andere VStudio Versionen installiert (2010, 2013, 2015), und mehr VCRedists, aber ich bezweifle ernsthaft, dass irgendeiner dieser würde einen Unterschied machen, da VStudio ist nur für die Bearbeitung (z.B. gestartet durch Einheit wenn dblclicking ein Skript)
  • Meinem computer auch "leidet" an [BT]: Hat Ihr Windows-10-Startmenü nicht mehr? Wie es zu lösen ist (ich starten Sie es neu, ~einmal in der Woche; nach ~3-4 Tagen ist das problem wieder auftaucht), aber das passiert seit Wochen, vor der Installation Einheit

Mögliche Lösungen:

  • Deinstallieren Einheit und VStudio, und die Wiederherstellung der ursprünglichen Konfiguration (falls es noch funktioniert) - nicht wünschenswert
  • Bekommen eine Antwort (hier oder auf Einheit Foren, wo ich werde post die gleiche Frage gerade entfernt), und hoffentlich bekommen die unteren es
  • Beginnen den schmerzhaften Prozess des debugging/monitoring ([MS. Docs]: Process Monitor (ProcMon) ist ein ausgezeichnetes Werkzeug) auch, könnte mit der Demontage UnityDownloadAssistant-5.6.0f3.exe, aber es gibt keine Garantien, dass es ergäbe sich eine (günstige) Ergebnis. Wie auch immer, ich denke, es ist eine (versteckte jetzt) Verbindung zwischen:
    • VStudio check-box nicht anwesend ist, ist Assistant, wenn VStudio bereits installiert
    • Fehlen die build-Parameter combo-Boxen für PC Standalone
    • Strippen die UnityEngine.dll Abhängigkeit, wenn Gebäude
  • Einen möglichen Arbeitsplan /Algorithmus für die Festsetzung dieses würde (nur Theorie):
    • Debuggen der Assistant und die Identifizierung der Ressource (registry-Wert, Datei, ...) abgefragt VStudio installation status
    • Optimieren, dass Ressourcen Assistant "denken", dass VStudio ist nicht installiert; auslösen würde, dass die VStudio installer (und auch Assistant "markieren", dass diese installation als geeignet für PC Standalone baut), die würde erkennen, die eine Vorherige installation (natürlich, bevor Sie diese, Sie die Ressource (wenn der gleiche) muss untweaked) und Versagen (eine weitere lange, die hier gedreht werden würde, dass Assistant nicht überprüfen Sie die return-codes)
    • Lassen Assistant fertig und hoffentlich wird alles gut

Alle Ideen sind willkommen.

Seite Hinweis: 1 (nicht bezogen auf die Frage): bei der deinstallation/Installation Einheit, bemerkte ich smth; wenn es Community Edition bestimmten, kann ich (etwas) verstehen, aber wenn nicht, dann ist es ein ganz lame Fehler /Verhalten:

  • Haben Einheit installiert (komplett wie oben)
  • Laufen die Assistant und ändern Sie nichts aus der vorherigen installation (die Eltern RegKey der RegValue, die ich oben erwähnt habe, der sicher stellt, dass in der Standardeinstellung). Es wird:
    • Download (und überschreiben ???) jede sub-pkg (z.B. UnitySetup-Linux-Support-for-Editor-5.6.0f3.exe, FacebookGamesArcade.msi, ...); für mich war es ~3GB+ (auch wenn die Dateien, die bereits dort waren)
    • Laufen alle angegebenen("checked") pkg /Datei
    • Entfernen (UnitySetup64.exe) alle bestehenden installation vor der installation (???)
Sie haben using UnityEngine; oben in deinem script?
Natürlich. Das Skript ist syntaktisch richtig, sonst wäre es ja nicht spielen/bauen und wäre "rot" in VStudio.
Nur die überprüfung, dass die erste Sache, die entstanden mind. Sehr seltsam.

InformationsquelleAutor CristiFati | 2017-04-20

Schreibe einen Kommentar