Unity5 projet ne permet pas de construire pour PC Autonome, sur Windows externes de la version de Visual Studio (2017)

Bien que c'est seulement à distance liée à la programmation, ici, il va:

Depuis la semaine dernière, j'ai joué avec l'Unité (5.6.0f3 Communauté x64) sur Gagner 10 (x64) - à l'aide de Visual Studio (2017 Communauté) comme attaché de l'éditeur, comme l'Unité "exige" -, et a commencé avec le [Unité]: Tutoriels (premier). Pendant quelques jours, tout s'est passé très bien, mais ensuite, la construction PC Autonome cible, l'arrêt de travail. Googleing et de vérifier les forums, n'a pas aider à trouver des informations à propos de ce comportement exact:

Unity5 projet ne permet pas de construire pour PC Autonome, sur Windows externes de la version de Visual Studio (2017)

Comme on le voit sur la Paramètres de construction de la dialogue (déplacé vers la droite), il n'y a pas (Plate-forme Cible ou Architecture) listes déroulantes permettant de spécifier des paramètres de conception. Les erreurs sont sur le côté gauche.

Notes (sur le comportement actuel):

  • Première hypothèse était que le projet didacticiel est devenu en quelque sorte foiré, j'ai donc créé un nouveau à partir de zéro (un mannequin /simple contenant un Sphère ayant fixé un Rigidbody et un C# script qui applique des forces basé sur la saisie de l'utilisateur), mais il se comporte de la même (c'est la version du projet de sortie dans l'image ci-dessus)
  • WebGL génération fonctionne très bien (la charge dans le navigateur); c'est la solution utilisée actuellement, mais il prend une éternité à terminer
  • Jouering (évidemment) fonctionne également (inutile de dire que les choses sont OK dans VStudio, ne se plaint de scc), !!!mais!!! après avoir essayé (et l'échec) de construire, Jouering ne fonctionne plus (rechargement de la projet est le seul moyen pour résoudre ce problème)

Afin d'écarter tous les doutes possibles, voici un DownloadAssistant capture d'écran:

Unity5 projet ne permet pas de construire pour PC Autonome, sur Windows externes de la version de Visual Studio (2017)

Tout est vérifié, il y a 2 éléments (pas très pertinente pour ce cas) qui ne s'affichent pas (parce que la fenêtre n'est pas important), mais ils sont vérifiés (et installé).

Informations de fond:

  • Lors de la première installation l'Unité, il n'y a pas de VStudio 2017 version présente sur l'ordinateur, de sorte qu'il (Community Edition) a été installé dans le cadre de l'Unité processus d'installation (je me souviens (au moins) un VStudio liées zone de liste déroulante dans le Assistant)
  • Puis, un VStudio patch est disponible, lors de la préparation de l'installer, j'ai réalisé que VStudio a été installé sur le chemin d'accès par défaut (sur %SYSTEMDRIVE%), qui ne fonctionne pas pour moi, car c'est un grand produit, de sorte que:
    • Désinstallé
    • Réinstallé (directement à partir de [VisualStudio]: Visual Studio Téléchargements) sur un autre lecteur (et oui, je suis conscient que le fait de changer le chemin d'installation, encore installe une assez grande partie comme Windows SDK sur %SYSTEMDRIVE%)
    • Car je pensais que les 2 étapes de casser le lien entre l'Unité et la nouvelle VStudio, j'ai aussi réinstallé l'Unité. Cette fois, il n'y avait pas VStudio liées cases dans le Assistant (semble normal de vérifier si un morceau de logiciel que il a besoin pour installer, n'est-ce pas déjà installé 1). Plus tard, j'ai trouvé aussi un persistante (ce qui signifie qu'il n'est pas anéanti à l'Unité désinstaller le temps) RegValue (HKEY_CURRENT_USER\SOFTWARE\Unity Technologies\Installer\Select_VisualStudio) avec une valeur de 0 (par opposition à un tas d'autres valeurs sous la même clé avec des valeurs de 1)
  • Après cela, j'ai réinstallé l'Unité à plusieurs reprises, y compris redémarre (pas nécessaire) entre les désinstaller /installer, mais sans résultat (j'ai aussi pris un long coup de l'activation de la RegVaue ci-dessus avant de commencer Assistant)

Un peu de débogage a révélé que, en essayant de construire (PC Autonome), l'Unité fait quelque chose comme ça (n'ayez pas l'esprit de la des chemins, c'est comment ils sont sur ma machine), qui peut être reproduite à partir cmdline:

build_win.chauve-souris:

"E:\Install\x64\Unity.6.0f3\Editor\Data\MonoBleedingEdge\bin\mono.exe" "E:\Install\x64\Unity.6.0f3\Editor\Data\MonoBleedingEdge\lib\mono.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 est une copie de l'un des ${PROJECT_ROOT}\Temp\UnityTempFile-*s (je vais me référer à un tel fichier comme utfile), plus précisément de celui qui est créé lors du démarrage de la construction. Le funky, c'est qu'il est créé à partir d'un autre (l'un des 10+ identique créé au projet temps de chargement) utfile par (n'a pas à faire de a à vérifier, peut-être il y a d'autres lignes) la répartition des données (et de brassage (amestecating)) quelques lignes.

Le plus évident (n'avez même pas à vérifier la source utfile) est: -r:E:/Install/x64/Unity/5.6.0f3/Editor/Data/Managed/UnityEngine.dll, qui a inséré dans le fichier ci-dessus, fonctionne parfaitement. Mais je ne sais pas comment faire pour charger l'Unité pas à la dépouiller.

Autres faits (plus ou moins pertinentes):

  • Il existe plusieurs autres VStudio versions installées (2010, 2013, 2015), et plus VCRedists, mais je doute sérieusement que cela ferait une différence, puisque VStudio est seulement utilisé pour l'édition (par exemple, lancé par l'Unité quand dblclicking un script)
  • Mon ordinateur aussi "souffre" de [BT]: A votre Windows 10 menu Démarrer cessé de travailler? Comment résoudre le problème (j'ai redémarrer ~une fois par semaine; après ~3-4 jours, le problème réapparaît), mais ce qui se passe pendant des semaines avant d'installer l'Unité

Solutions possibles:

  • Désinstaller l'Unité et VStudio, et de restaurer la configuration d'origine (si elle fonctionne encore) n'est pas souhaitable
  • Obtenir une réponse (ici ou sur l'Unité forums, où je vais poster la même question tout de suite), et j'espère au fond de lui
  • Démarrer le processus douloureux de débogage/surveillance ([MME Docs]: Moniteur de Processus (ProcMon) est un excellent outil) aussi, on peut relever le démontage UnityDownloadAssistant-5.6.0f3.exe, mais il n'y a aucune garantie que ça donnerait un (favorable) résultat. De toute façon, je pense qu'il y a un (caché pour l'instant) lien entre:
    • VStudio case ne pas être présent dans Assistant, quand VStudio déjà installé
    • Manque de construire des paramètres de la combo-box pour PC Autonome
    • Le décapage de la UnityEngine.dll de dépendance lors de la construction de
  • Un possible plan de travail /de l'algorithme pour la résolution de ce serait, seulement de la théorie):
    • Débogage de l' Assistant et l'identification de la ressource (valeur de registre, fichiers, ...) interrogé pour VStudio état de l'installation
    • Tordre de ressources pour faire Assistant "pense" que VStudio n'est pas installé; qui déclencherait la VStudio installer (et aussi faire Assistant "marque" que cette installation convient pour PC Autonome construit), qui permettrait de détecter une installation précédente (bien sûr, avant cela, la ressource (si le même) doit être untweaked) et ne permettrait pas (un autre long shot ici serait que Assistant ne pas vérifier les codes de retour)
    • Laisser Assistant terminer et nous espérons que tout se passera bien

Toutes les idées sont les bienvenue.

Note de côté 1 (non liée à la question): lors de la désinstallation/installation de l'Unité, j'ai remarqué qch; si c'est Community Edition spécifique, je peux (un peu) comprendre, mais si non, alors c'est un assez boiteux bug /comportement:

  • Ont l'Unité installé (entièrement comme ci-dessus)
  • Exécuter le Assistant et ne pas changer quoi que ce soit provenant d'une installation précédente (le parent RegKey de la RegValue que je l'ai mentionné ci-dessus, permet de s'assurer de que par défaut). Il permettra de:
    • Télécharger (et remplacer ???) tout sous-groupe (par exemple, UnitySetup-Linux-Support-for-Editor-5.6.0f3.exe, FacebookGamesArcade.msi, ...); pour moi, c'était ~+ 3GB (même si le fichiers étaient déjà là)
    • Exécuter chaque spécifié("checked") pkg /fichier
    • Supprimer (UnitySetup64.exe) toute installation existante avant d'installer (???)
avez-vous des using UnityEngine; en haut de votre script?
Bien sûr. Le script est syntaxiquement correct, sinon il ne serait pas jouer/construire et qu'il serait "rouge" dans le VStudio.
Vérifier simplement, comme c'est la première chose que les ressorts à l'esprit. Très bizarre.

OriginalL'auteur CristiFati | 2017-04-20