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". + +

+User options +

+ +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