TL; DRAssemblée exécution L'emplacement est inconnu
Pourquoi
System.Reflection.Assembly.GetExecutingAssembly().Location
retours "<Unknown>"
?
Toute l'histoire: Lorsque je lance ma console manuellement, tout se passe bien. Lorsque je définis le planificateur de tâches pour exécuter mon application, un problème se pose: mon application ne trouve pas de fichiers dépendants. Ces fichiers sont écrits dans le fichier .config comme ceci: <add key="SomeFile" value="SomeFolder\SomeFile.xml"/>
, je n'ai besoin que de chemins relatifs.
Quand je lance mon application manuellement, « dossier en cours » = « dossier d'application », mais quand je lance avec Planificateur de tâches, « dossier en cours » = C:\Windows\system32
, car avec Planificateur de tâches de mon application fonctionne sous taskeng.exe
qui se trouve dans system32.
donc trouver chemin d'assemblage Je veux utiliser ce code:
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
de cette réponse https://stackoverflow.com/a/16102640/6184866.
Mais cela ne fonctionne pas.
vous pouvez obtenir Directory.GetCurrentDirectory même dans une variable, puis Directory.SetCurrentDirectory à votre requis puis à nouveau définir dir actuel à temp une fois que vous avez terminé votre travail –