Comments (31)
@ElPumpo
You should not assume that people have WinRAR and 7-Zip.
If you want to automatically extract the driver why not just use SevenZipSharp, and save both users and yourself the trouble?
https://sevenzipsharp.codeplex.com/
from tinynvidiaupdatechecker.
Correction: the drivers e.g 385.41-desktop-win10-64bit-international-whql.exe
are inside a 7zip SFX archive. I'll look into alternatives! Damn you do constructive feedback!
from tinynvidiaupdatechecker.
The 7-Zip Extra download offers a command line executable and a DLL. Just pointing 7-Zip to the driver executable was enough to get 7-Zip to extract it on my system, even through the command line version. I can't speak as to how to go about implementing 7-Zip into your program, but it's probably the best way forward.
from tinynvidiaupdatechecker.
You should not assume that people have WinRAR and 7-Zip
well I do..
and as I've already said above, I really don't want to add more libaries that I ship with the application
from tinynvidiaupdatechecker.
Thanks @ElPumpo for using the better AND open source alternative !
from tinynvidiaupdatechecker.
So after some research I'm left confused yet again
Why did you recommend me SevenZipSharp?!
- has not been updated since 2011
- 'newest' fork by StevenBonePgh was updated ~1 year ago
- still requires 7zip installed (7zip binaries,
7z.dll
etc) - NO documentation
I'm not ready to pack 5000 dll files into TNUC, sorry. Unless I find another solution to this, I guess will stay with what I'm already using...
and I still want an answer for:
who doesn't have either winrar or 7zip on their computer?
from tinynvidiaupdatechecker.
@ElPumpo
Yes, SevenZipSharp project is old and seems abandoned, but it is the only fully functional wrapper around the COM interface from 7z.dll and its LZMA SDK. If you prefer writing your own from scratch be my guest.
As for what is needed for distribution the only thing you need besides SevenZipSharp.dll is 7z.dll which contains actual decompression code. The advantage of this approach is that you can do everything from your own application process.
You have another option and that would be to bundle 7za.exe with your application, then launch it as a process from your code and wait for it to finish, but unless you create pipes for STDIN and STDOUT to communicate with 7za.exe process (which still requires good Windows API knowledge and some marshalling) you won't be able to display the decompression progress, not to mention that launching console apps in a separate process when there is a programatic way of doing decompression is ugly.
As to who doesn't have 7-Zip or WinRAR, the answer is approx. 95% of PC users, because most of them are happy with built-in Windows ZIP support. You can argue that those 95% don't need your program, but I'd say that even those who have 7-Zip don't because they can find and download and extract the driver on their own. For a program to be useful it has to offer a signiicant amount of convenience and this convenience will always be more significant to those who are not tech savvy already.
It's your project anyway, so do as you wish. Hopefully you find my advice at least helpful.
from tinynvidiaupdatechecker.
@ElPumpo I'm glad you're taking in consideration to switch to 7zip way to go!
thanks!!
Personally I never installed winrar being shareware, plus 7zip is far better at archiving than winrar so it's a win\win :), can't wait to see it implemented in a non beta version thanks!
from tinynvidiaupdatechecker.
EDIT: And now realizing that the problem might not be unRAR but SFX. Entirety of everything above might be useless.
haha exactly, seems like I only have 1 choice:
- make 7zip compatiable (cuz it works aswell)
- but would require it to be installed by the user? i don't want to ship an extra libary
- still gotta confirm some command line arguments
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip
MainConsole.cs#L998
from tinynvidiaupdatechecker.
On the one hand, 7-zip is pretty commonly used, I imagine especially among potential users of this program.
On the other hand, forcing the user to install a program that they have to obtain elsewhere to access a feature is also undesirable.
Proposal: offer both options? Ship two ZIP files, one with 7za.exe (7za.dll only handles 7z format; if you planned on using a .dll instead of an .exe, you'll need the regular 7z.dll.) and one without. (Include HTML Agility Pack in both, for convenience.)
EDIT: Fun fact: even if you included the larger 64-bit version of 7za.exe, you'd still be able to fit it all onto a floppy disk. 1440 KiB per floppy disk vs. 1365 KiB for 7za 64-bit, HtmlAgilityPack, and the UpdateChecker.
from tinynvidiaupdatechecker.
Ok but who doesn't have either winrar or 7zip on their computer? I even wanted to remove html agility pack because it made the application less portable.
from tinynvidiaupdatechecker.
You are free to do as you wish, but then you will have less people using your application, which defeats the purpose of making it available to everyone in the first place. WinRAR is not free software -- it is shareware, and shareware cannot be used for free past the initial trial period.
from tinynvidiaupdatechecker.
TinyNvidiaUpdateChecker v1.9.0 beta 1.zip
build with 7zip support! oh i forgot to tell y'all i was working on this :D
from tinynvidiaupdatechecker.
Important: if the application crashes whilst trying to download htmlagilitypack it's because it isn't released yet on github, and the application assumes that it exists there. I've also updated to the new version of htmlagilitypack so you have to download it manually because I haven't released a version yet with the new libary file!
Workaround: download the latest version of htmlagilitypack HtmlAgilityPack.zip
@berserkwarwolf thanks for the feedback! and to correct you I never dropped support for winrar, instead i extended the support. Feel free to post more feedback if you have any!
from tinynvidiaupdatechecker.
Would you consider having a download for the 7ZipSharp library in case it is absent, like you do for HTMLAgilityPack? That way you only need to ship a single executable.
from tinynvidiaupdatechecker.
You can always ship 7ZipSharp and HtmlAgilityPack as binary resources and use them dynamically if you are so concerned about libraries.
Or include their source in your own maybe?
It would require more programming but i think its better than downloading them. I am not fan of program downloading libraries, people may argue that is a security problem. Any solution would be better than an already installed program
from tinynvidiaupdatechecker.
You know what, I'll have look into shipping the app with the libaries then... But I'm not sure about the license... HAP is licensed under MIT so I think I can include it, 7zipsharp is under LGPL?
from tinynvidiaupdatechecker.
@ElPumpo
Yes, under LGPL 3.0: http://www.gnu.org/licenses/lgpl.html
In short, to distribute SevenZipSharp you need to:
- Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
- Accompany the object code with a copy of the GNU GPL and this license document.
In any case, it is better to distribute both AgilityPack and SevenZipSharp because you control the version, new versions may break your program be it intentionally (API change) or unintentionally (bug).
from tinynvidiaupdatechecker.
Ok @levicki thanks for the info!
from tinynvidiaupdatechecker.
@ElPumpo
You are welcome.
from tinynvidiaupdatechecker.
So I was just going to tell ElPumpo about 7-zip, and sevenzipsharp.. I think I don't have to. =P
Btw, codeplex is shuting down.. 7-zip extra is also available at sourceforge (Personal note: SF.. Eew!)
from tinynvidiaupdatechecker.
Yea why did they not chose github?
from tinynvidiaupdatechecker.
I have no problem with just including 7z.exe (and the DLLs) with the binary when I distribute it. Would that work? Will the program search its immediate directory for 7z (or if not, could it?)
from tinynvidiaupdatechecker.
You have another option and that would be to bundle 7za.exe with your application, then launch it as a process from your code and wait for it to finish, but unless you create pipes for STDIN and STDOUT to communicate with 7za.exe process (which still requires good Windows API knowledge and some marshalling) you won't be able to display the decompression progress, not to mention that launching console apps in a separate process when there is a programatic way of doing decompression is ugly.
have you tried out v1.9.0-beta1? it uses 7zG.exe
which will show a GUI whilst extracting the content, which is good enough i say.
You can argue that those 95% don't need your program, but I'd say that even those who have 7-Zip don't because they can find and download and extract the driver on their own
Sure thing man, but exactly which files should you extract; and which ones shouldn't you ? 🔢
For a program to be useful it has to offer a signiicant amount of convenience and this convenience will always be more significant to those who are not tech savvy already.
Then I'll say again: for 'minimal install' to be effective, the user must fully uninstall the current drivers using DDU and then use the extracted drivers that TNUC makes. This feature is only for advanced users, and I expect advanced users to have either 7Zip or WinRAR installed.
from tinynvidiaupdatechecker.
To answer your questions:
-
No, I have not tried 1.9.0 beta1 because I don't see it on the releases page here on GitHub.
-
Extract all files and modify setup.cfg using Notepad to remove telemetry while still allowing the user to install other stuff they need such as PhysX (pretty much required for most games), 3D Vision (in case they have NVIDIA 3D glasses), HDAudio driver (in case they use audio through HDMI). It is not that hard to do that manually for people who are familiar with NVIDIA driver packages.
Anyway, this discussion has just became pointless so I am out. I just wanted to help, sorry if I have disturbed you.
from tinynvidiaupdatechecker.
So after some research I'm left confused yet again
Why did you recommend me SevenZipSharp?!
has not been updated since 2011
'newest' fork by StevenBonePgh was updated ~1 year ago
still requires 7zip installed (7zip binaries, 7z.dll etc)
NO documentation
Old, yes, but it works. And the docu is good.
I'm not ready to pack 5000 dll files into TNUC, sorry. Unless I find another solution to this, I guess will stay with what I'm already using...
Ehm.. read the docu? =P
Nope, not 5000, nor 500 or 50.. more like 5.. or 15 if you want .FAR support (Who uses .far anyway?)
and I still want an answer for:
who doesn't have either winrar or 7zip on their computer?
7zip, because a lot of people doesn't know about it.
Winrar, because they use the built in crap in windows.
from tinynvidiaupdatechecker.
I'm not going to argue any more about this either, as I've already said the requirement is optional, and only used for the optional feature called 'minimal install' and is only for advanced users.
I have no problem with just including 7z.exe (and the DLLs) with the binary when I distribute it. Would that work? Will the program search its immediate directory for 7z (or if not, could it?)
How about the application if searches for a 7ip
directory in the same directory the executable is located in, so you can use 7Zip portable? By default it will check if the program is installed by looking in the registry for the 7zip installer & uninstaller
from tinynvidiaupdatechecker.
Works for me!
from tinynvidiaupdatechecker.
TinyNvidiaUpdateChecker v1.9.0-beta 2.zip
- now also supports a portable version of 7zip, there must be a
7-Zip
directory in the same folder that the application is in
Two betas have been released in total, next thing would be fully releasing v1.9.0
from tinynvidiaupdatechecker.
Hi there
Ok but who doesn't have either winrar or 7zip on their computer?.
I :)
I went to test the beta 2 but i stopped when the message for winrar came out, so i finally did not test the beta.
Anyway, i think the 7zip option commented before could be the best and for sure i will prefer if you bundle the dll and the config file in the same download.
If you finally take this way, how to do this?. Well, i have no idea since i'm not a coder but you have a good example in one of the following links:
http://www.peazip.org/peaextractor-unace-unrar-unzip.html
Portable versions of the software (direct downloads):
Windows All: peaextractor-portable-1.3.WINDOWS.zip
Windows 64 bits: peaextractor-portable-1.3.WIN64.zip
Just download one of the portable versions, and look inside the downloaded zip for the folder 7z
, That's the way!!. Perhaps you can use an exact copy of that directory with your config file simply adding another text file referring to the Peazip Project or even is not requiered thanks to the GNU LGPL license.
Have a good day!.
PD Also i recommend peazip instead 7zip for compress and extract stuff, i think is better, you can google some benchmarks between them.
from tinynvidiaupdatechecker.
@MrJustMe sure thing man! Adding support for PeaExtractor now! (I also fixed the links in your comment)
Edit
But why do you want support for PeaExtractor? It uses 7zip to extract .sfx
files anyways
i think is better, you can google some benchmarks between them.
you think, but you don't know. as i said above it uses 7zip, so how can it be any faster?!
Edit 2
Seems like PeaExtractor doesn't support listing the files to be extracted, so I cannot add it - there's nothing I can do. We use inclList.txt
to give the extractors a list of the stuff inside the archive we want extracted. PeaZip supported command line arguments
from tinynvidiaupdatechecker.
Related Issues (20)
- TNUC shows Studio Driver as latest driver available and no opt-out available HOT 10
- Disable "Press any key to exit..." with command line argument `--noprompt` HOT 3
- Implement Studio Driver support HOT 1
- Optimize gpu-data.json and os-data.json fetching HOT 2
- Check, if driver already is in folder XY HOT 1
- Questions about TNUC HOT 1
- quiet is not quiet HOT 1
- Always telling: there is a new driver available HOT 2
- Skip update HOT 1
- WinRAR 7 update causes Win32Exception on "Extracting drivers" phase HOT 3
- [NVIDIA API intermittent issue] API returning Studio drivers when GRD is chosen HOT 6
- Slow internet connect on login causes TNUC exception HOT 3
- Crash if internet connection is disconnected whilst downloading driver HOT 13
- [Request] NanaZip Support HOT 6
- Custom paths for extract libary HOT 1
- Network Interface Binding. HOT 1
- The future of TNUC HOT 4
- Run quietly installed the entire driver in Windows 10 HOT 1
- Fix duplicate code
- GPU metadata for your card does not exist HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinynvidiaupdatechecker.