awaescher / RepoZ

👨‍💻 A zero-conf git repository hub for Windows and macOS with Windows Explorer- & CLI-enhancements
MIT License
1.02k stars 92 forks source link

netcore version of grr with /lib subfolder #55

Closed awaescher closed 5 years ago

awaescher commented 5 years ago

By converting grr and grrui to netcore apps, there are plenty of common libraries in the application root folder. I don't want all of them in a folder which is also added to the Windows PATH. Who knows how Windows will react with other tools having the same dependencies.

Put as much dlls to a subfolder like "/lib" and helper executables to "/tools" to clean the root directory.

awaescher commented 5 years ago

This is so frustrating. Everything I try ends up in:

The rid fallback graph is: {
}
-- Listing probe configurations...
probe_config_t: probe=[] deps-dir-probe=[1]
Adding tpa entry: D:\Develop\GitHub\RepoZ\_output\win\Assemblies\grr.dll, AssemblyVersion: , FileVersion:
Processing TPA for deps entry [AsyncIO, 0.1.26, lib/netstandard1.3/AsyncIO.dll]
  Considering entry [AsyncIO/0.1.26/lib/netstandard1.3/AsyncIO.dll], probe dir [], probe fx level:0, entry fx level:0
    Local path query did not exist D:\Develop\GitHub\RepoZ\_output\win\Assemblies\AsyncIO.dll
    Skipping... not found in deps dir 'D:\Develop\GitHub\RepoZ\_output\win\Assemblies\'
    Skipping... not found in probe dir ''
Error:
  An assembly specified in the application dependencies manifest (grr.deps.json) was not found:
    package: 'AsyncIO', version: '0.1.26'
    path: 'lib/netstandard1.3/AsyncIO.dll'

Additional probing paths are ignored no matter if I pass it as argument grr.exe --additionalProbingPath lib or in the runtimeconfig:

{
  "runtimeOptions": { "additionalProbingPaths": [ "lib" ] }
}

It seems I am not the only one:

awaescher commented 5 years ago

Holy freaking stuff this is the most awesome fancyness I ever encountered. It works with an absolute path (only) like grr.exe --additionalProbingPath C:\BlaBla\RepoZ\_output\win\Assemblies\lib\..\..\...

So I have to go three directories up from that absolute one even if I removed all the paths from the deps.json;

"AsyncIO": {                                            <- was "AsyncIO/0.1.26"
        "dependencies": {
          "NETStandard.Library": "2.0.3",
          "System.Net.NameResolution": "4.0.0"
        },
        "runtime": {
          "AsyncIO.dll": {                               <- was "lib/netstandard1.3/AsyncIO.dll"
            "assemblyVersion": "0.1.25.0",
            "fileVersion": "0.1.25.0"
          }
        }

... and also closer at the end ...

    "AsyncIO/0.1.26": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-mV6fvJg4K...==",
      "path": "/",                                      <- was "path": "asyncio/0.1.26"
      "hashPath": "asyncio.0.1.26.nupkg.sha512"
    },

WTAF?!

awaescher commented 5 years ago

Unfortunately, this seems to be complex to be used right now. I don't want to modify deps files on the users' machines during the setup. Even the file customisations during the build process seems just wrong to me.

Thanks izaruba for your help, that was way more than I could have expected but it seems not to be worth the hack.