diff --git a/Dependencies/Properties/AssemblyInfo.cs b/Dependencies/Properties/AssemblyInfo.cs
index bf9fb031..16131fc8 100644
--- a/Dependencies/Properties/AssemblyInfo.cs
+++ b/Dependencies/Properties/AssemblyInfo.cs
@@ -1,55 +1,55 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// Les informations générales relatives à un assembly dépendent de
-// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
-// associées à un assembly.
-[assembly: AssemblyTitle("Dependencies")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Dependencies")]
-[assembly: AssemblyCopyright("Copyright © 2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
-// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
-// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
-[assembly: ComVisible(false)]
-
-//Pour commencer à générer des applications localisables, définissez
-//CultureUtiliséePourCoder dans votre fichier .csproj
-//dans . Par exemple, si vous utilisez le français
-//dans vos fichiers sources, définissez à fr-FR. Puis, supprimez les marques de commentaire de
-//l'attribut NeutralResourceLanguage ci-dessous. Mettez à jour "fr-FR" dans
-//la ligne ci-après pour qu'elle corresponde au paramètre UICulture du fichier projet.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //où se trouvent les dictionnaires de ressources spécifiques à un thème
- //(utilisé si une ressource est introuvable dans la page,
- // ou dictionnaires de ressources de l'application)
- ResourceDictionaryLocation.SourceAssembly //où se trouve le dictionnaire de ressources générique
- //(utilisé si une ressource est introuvable dans la page,
- // dans l'application ou dans l'un des dictionnaires de ressources spécifiques à un thème)
-)]
-
-
-// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
-//
-// Version principale
-// Version secondaire
-// Numéro de build
-// Révision
-//
-// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
-// en utilisant '*', comme indiqué ci-dessous :
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// Les informations générales relatives à un assembly dépendent de
+// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("Dependencies")]
+[assembly: AssemblyDescription("Modern rewrite of the depends.exe tool.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Dependencies")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
+// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+//Pour commencer à générer des applications localisables, définissez
+//CultureUtiliséePourCoder dans votre fichier .csproj
+//dans . Par exemple, si vous utilisez le français
+//dans vos fichiers sources, définissez à fr-FR. Puis, supprimez les marques de commentaire de
+//l'attribut NeutralResourceLanguage ci-dessous. Mettez à jour "fr-FR" dans
+//la ligne ci-après pour qu'elle corresponde au paramètre UICulture du fichier projet.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //où se trouvent les dictionnaires de ressources spécifiques à un thème
+ //(utilisé si une ressource est introuvable dans la page,
+ // ou dictionnaires de ressources de l'application)
+ ResourceDictionaryLocation.SourceAssembly //où se trouve le dictionnaire de ressources générique
+ //(utilisé si une ressource est introuvable dans la page,
+ // dans l'application ou dans l'un des dictionnaires de ressources spécifiques à un thème)
+)]
+
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+// Version principale
+// Version secondaire
+// Numéro de build
+// Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.5.0.0")]
+[assembly: AssemblyFileVersion("1.5.0.0")]
diff --git a/README.md b/README.md
index 2b9a99e0..8fffae56 100644
--- a/README.md
+++ b/README.md
@@ -11,19 +11,36 @@
## Releases
-* v1.0 -- Initial release
+* [v1.5](https://github.com/lucasg/Dependencies/releases/download/v1.5/Dependencies.zip) :
+ * Support of Sxs parsing
+ * Support of api set schema parsing
+ * API and Modules list can be filtered
+* [v1.0](https://github.com/lucasg/Dependencies/releases/download/v1.0/Dependencies.zip) -- Initial release
## Installation and Usage
`Dependencies` is currently shipped as a binary (no installer present). Just uncompress the archive and click on it.
-Since the binary is not signed, `SmartScreen` might scream at runtime.
+Since the binary is not signed, `SmartScreen` might scream at runtime. `Dependencies` also bundle `ClrPhTester.exe`, a dumpbin-like executable used to test for non-regressions.
+
+`Dependencies` currently does not recursively resolve child imports when parsing a new PE since it can be really memory-hungry to do so ( it can over a GB even for "simple" PEs ). This behaviour can be overriden (app-wide) via a property located in "Options->Properties->Tree build behaviour".
+
+
+
+
+
+Tree build behaviours available :
+
+* `ChildOnly` (default) : only process PE child imports and nothing beyond.
+* `RecursiveOnlyOnDirectImports` : do not process delayload dlls.
+* `Recursive` : Full recursive analysis. You better have time and RAM on your hands if you activate this setting.
+
## Limitations
At the moment, `Dependencies` recreates features and "features" of `depends.exe`, which means :
* Only direct, forwarded and delay load dependencies are supported. Dynamic loading via `LoadLibrary` are not supported (and probably won't ever be).
-* `Min-win` dlls are not propertly supported. (UPDATED : minimal support of api set schema redirection)
+* `Min-win` dlls are not propertly supported. (UPDATED : support of api set schema redirection in 1.5)
* There are no checks between Api Imports and Exports for the moment, only dll presence is supported.
* No support of esoteric dll load paths (via `AppPaths` or `SxS` manifests entries). (UPDATED : minimal support of sxs private manifests search).
diff --git a/screenshots/UsageExemple.gif b/screenshots/UsageExemple.gif
index dff7e680..8274b602 100644
Binary files a/screenshots/UsageExemple.gif and b/screenshots/UsageExemple.gif differ
diff --git a/screenshots/UserOptions.png b/screenshots/UserOptions.png
new file mode 100644
index 00000000..11ab7acd
Binary files /dev/null and b/screenshots/UserOptions.png differ