-
-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop support of any standard NuGet clients #38
Comments
…#38 +GetNuTool project has been added as submodule.
Also changed `IDDNS.setNamespace(...)` I think I'll leave old configurator for original nuget clients... need to think. +updated MvsSln v1.0.1.43422 https://github.com/3F/MvsSln
536bfbc contains the final draft-version of the new configurator that will work without amazing NuGet clients at all. |
Anyone please also test it before final release ! How to check it:
All current available commands: >DllExport
DllExport - v1.5.2.34083 [ 6641d7e ]
Copyright (c) 2009-2015 Robert Giesecke
Copyright (c) 2016-2017 Denis Kuzmin [ entry.reg@gmail.com :: github.com/3F ]
Distributed under the MIT license
https://github.com/3F/DllExport
Wizard - based on hMSBuild logic and includes GetNuTool core - https://github.com/3F
Usage: DllExport [args to DllExport] [args to GetNuTool core]
------
Arguments:
----------
-restore - To restore configured DllExport.
-sln-dir {path} - Path to directory with .sln files to be processed.
-sln-file {path} - Optional predefined .sln file to process via the restore operations etc.
-metalib {path} - Relative path from PkgPath to DllExport meta library.
-dxp-target {path} - Relative path to .target file of the DllExport.
-dxp-version {num} - Specific version of DllExport. Where {num}:
* Versions: 1.6.0 ...
* Keywords:
`actual` to use unspecified local version or to get latest available;
-msb {path} - Full path to specific msbuild.
-packages {path} - A common directory for packages.
-server {url} - Url for searching remote packages.
-wz-target {path} - Relative path to .target file of the Wizard.
-eng - Try to use english language for all build messages.
-GetNuTool {args} - Access to GetNuTool core. https://github.com/3F/GetNuTool
-debug - To show additional information from hMSBuild.
-version - Display version of hMSBuild.
-build-info - Display build information of DllExport.
-help - Display this help. Aliases: -help -h -?
--------
Samples:
--------
DllExport -restore
DllExport -restore -sln-file "Conari.sln"
DllExport -build-info
DllExport -restore -sln-dir -sln-dir ..\ -debug
DllExport -GetNuTool -unpack
DllExport -GetNuTool /p:ngpackages="Conari;regXwild"
---------------------
Possible Error Codes: ERROR_FILE_NOT_FOUND (0x2), ERROR_PATH_NOT_FOUND (0x3), ERROR_SUCCESS (0x0)
---------------------
|
…#38 We'll support only information about new installer because: * The `\build` feature still does not guarantee of work for all cases. #36 (comment) * We don't have any guaranteed information about uninstall operation for our package because of removed uninstall.ps1 #38
Check latest from dev_1.6 branch https://ci.appveyor.com/project/3Fs/dllexport/build/build-54/artifacts How to check:
I added information via
It also prepares yes, updated key:
Side note:
<Import Project="..." />
<!-- ... and optionally -->
<Target Name="DllExportLib" BeforeTargets="PrepareForBuild">
<CallTarget Targets="...." />
</Target>
Therefore, today I added only information about our new installer: As you see, I'll write compressor/encoder for this later. Seems should work from hMSBuild. |
also added `MsgGuiLevel` flag to show messages via GUI dlg for selected level
Also added release version via vssbe scripts
.NET DllExport v1.6 Wizard - Demonstration of the new manager & distribution. |
TODO:
that is, we'll also try to provide The old Configurator is obsolete anyway because of caching etc, that's incompatible with ddNS etc. |
* NEW: The new lightweight manager & distribution via MvsSln & GetNuTool projects. Issue #38. Based on hMSBuild logic and includes GetNuTool core. Now you shouldn't use standard nuget clients anymore: https://www.youtube.com/watch?v=okPThdWDZMM Package from nuget.org already contains this, but you can also get it directly. Latest version: https://raw.githubusercontent.com/3F/DllExport/latest/manager/DllExport.bat ~18 Kb text-based embeddable batch-scripts that does not require powershell and dotnet-cli. To install/uninstall or to reconfigure your projects: `DllExport -action Configure` To manually restore package: `DllExport -action Restore` All available features: `DllExport -h` Server by default - nuget.org * NEW: The new Wizard (configurator via MvsSln). To easy configure your projects in any place. Issue #38. MvsSln v1.0.1.43422: https://github.com/3F/MvsSln * NEW: Added support of global namespaces - Issue #47. Use `Direct-Mod` if Cecil will not process this correctly. * FIXED: Fixed target platform detection. Issue #34. Details: #34 (comment) * FIXED: Fixed problem when the Post-Build event is triggered before our tool. Issue #35. Use this if still is needed: ``` <Target Name="PostBuildEventBeforeDllExport" BeforeTargets="DllExportMod"> ... </Target> ``` * FIXED: Fixed generation of exp + .lib via MS Library Manager for VS2017. Issue #37. Now it also includes processing through VsDevCmd & VcVarsAll initializer scripts. Use the folowing msbuild properties to override values by default: * $(DllExportVcVarsAll); $(DllExportVsDevCmd) * FIXED: Fixes possible problem with multiple properties that contains *Undefined* word, e.g.: *Undefined*\path1;C:\path2 ... * CHANGED: Added information about finding lib tool. Issue #44. * CHANGED: UI. Selected platform now affects to all configurations of project instead of active as before. * CHANGED: Now, nuget package does not contain library in `lib/.../` Details in #36. * CHANGED: Now, we also distribute .zip package for work through our manager etc. https://github.com/3F/DllExport/releases The latest text-based manager you can find here: https://raw.githubusercontent.com/3F/DllExport/latest/manager/DllExport.bat Illustration here: https://www.youtube.com/watch?v=okPThdWDZMM
-_- damn, no any problems with local server, but after release, yes, of course... Problem 1:
Problem 2 (via VS IDE):
Something went wrong with package from nuget.org server ! I checked that released local .nupkg works perfectly via local server, but failed from nuget.org o_o upd. problem has been isolated but still does not resolved because of bugs from nuget.org
Seems problematic symbols, but it placed via online editor on nuget.org after release ! what the... >( I already edited this: My first thoughts: I escaped this manually: Even if I'm trying to remove all text, no result for .nupkg package.
How long ?!
No any response after 3 hours of waiting via https://www.nuget.org/policies/Contact Well, to reupload new package with new number 1.6.0.1-beta is the most easy way, and to update manager in Everyone: use correct .nupkg from GitHub while we have problem with nuget.org upd2. Incredible project in any time ! Unfortunately guys, you should wait fixes from nuget.org (maybe new data will be updated automatically after 10 hours, I don't know...), or wait new packages from us on the next week. Or use other server with valid package from https://github.com/3F/DllExport/releases/tag/v1.6-beta https://www.nuget.org/packages/DllExport/1.6.0-beta/ReportMyPackage
! upd3: As I see, this package has been updated now (seems automatically after 24 hours etc.).
|
Ok, what I found: The second problem ('corrupted data' via manager - see above) is more complex. The nuget.org repacks .nupkg with different compression method for some files: the 0x08 means Deflate method, but nuget server does it with 0x00 that means without compression and with compressed length as 2 bytes (see value from 0x3F96 - 0x3F99) Well, I don't know why nuget.org does this, but I know how to correctly process this via our GetNuTool. The initial a correct package DllExport.1.6.0-beta.nupkg here: https://github.com/3F/DllExport/releases/download/v1.6-beta/DllExport.1.6.0-beta.nupkg please be patient, I've plan to release beta2 after improving GetNuTool client. This week, as possible for my time. You can also test released beta version via any local server etc. because this problem for nuget.org server only. Write here if you have any related questions etc. |
…problems with possible incorrect CRC & Compressed size info - #38 3F/GetNuTool#3 #38 (comment)
* NOTE: This release contains trivial fixes only for our manager because of problems with nuget.org. Issue #38. Please read all changes in previous beta release and please note again - you shouldn't use standard nuget clients anymore: https://www.youtube.com/watch?v=okPThdWDZMM Test and comment anything about this in Issue #38 if you need. * FIXED: Updated GetNuTool v1.6.1 to fix problems with possible incorrect CRC & Compressed size info from nuget.org. Changelog here: https://github.com/3F/GetNuTool/blob/master/changelog.txt Related issues: * 3F/GetNuTool#3 * #38 (comment) * CHANGED: Changed url to get latest manager directly. Please use this if you need: * https://3F.github.io/DllExport/releases/latest/manager/ Other versions you can find from GitHub Releases: * https://github.com/3F/DllExport/releases Or get it from nuget packages starting with v1.6+
Ok, now all this changes has been merged into master, and we're ready to use this as the main features for this project. I also implemented optional configuration via external storage and now it looks like this: I also can to implement features for configuring without any modification of project files at all (like PackageReference features from nuget), it's not so hard for implementing, however, the main problem in comparison with Before final release I've plan to release the latest beta-3 soon for public tests. |
Im sorry to say this, but this is a terrible choice from a user perspective. Suddenly I am prompted to download some .bat files from the internet with no clear and easy instructions to use them. I will have to find out how exactly I need to use every time I use it (since I have to install it rarely into new projects). If I run DllExport_Configure.bat, the cmd window flashes up, Im guessing it crashes, because nothing happens. I guess at this point, Im faster at writing a C++/CLI layer than investigating this further. Please consider minimal NuGet support again, no need for the configuration GUI, just deliver a default configuration (e.g. x86 + x64, etc..) via NuGet please. |
it looks like a bug, please attach detailed log, but first, try latest changes: #56
to be sure again, you don't need to do anything because all still should be automatically.
I agree, we need new illustration for 'how to'. But today, please see this video-illustration: https://www.youtube.com/watch?v=okPThdWDZMM&t=46s I'll update some documentation soon. Please do not hesitate to contact with me if anyone else still have any problem for this. |
Thanks for the fast reply. It seems I was under a wrong impression based on a bug (I thought I had to run this scripts manually, etc.). I will take some time to post some details later. |
So I still don't quite understand, if I install the NuGet package, I don't need to run the DllExport_Configure.bat? I opened an issue for DllExport_Configure.bat crashing: #58 |
When your project will be configured, yes, you don't need to run the DllExport.bat (DllExport_Configure.bat - it just a wrapper to command
Do not use std. nuget installation and also remove any old DllExport-packages. Only DllExport.bat |
So.. I do need to manually run a bat file. I stand by my statement that this is a big step back from a user perspective. Why is the .bat file which is download by the nuget package not also run by the nuget package? |
@ArgusMagnus I don't see difference. When you install v1.5.2 through nuget client you still need to configure it manually. Again, you do not need to call DllExport.bat (neither you nor anyone else) after initial configuration. When anyone else will get your src with configured DllExport, again, all will be restored automatically. Seriously, while you're trying to solve problem with #58 why you don't want to check how it works via empty new projects. |
* NEW: The new embeddable lightweight manager for distribution via MvsSln & GetNuTool projects. Issue #38. Based on hMSBuild logic and includes GetNuTool core v1.6.1. Now you shouldn't use standard nuget clients anymore: https://www.youtube.com/watch?v=9bYgywZ9pPE Quick start: https://www.youtube.com/watch?v=sBWt-KdQtoc ============================== DllExport -action Configure ============================== Package from nuget.org already contains manager, but you can also get it directly. Latest manager: https://3F.github.io/DllExport/releases/latest/manager/ ~18 Kb text-based embeddable batch-script that does not require powershell and dotnet-cli. Automatic restoring still is available but you can also use: `DllExport -action Restore` All available features: `DllExport -h` Direct links to remote package (without nuget server) via `-pkg-link {uri}` key. Issue #53. NuGet Server by default: nuget.org. * NEW: The new Wizard (configurator via MvsSln). To easy configure your projects in any place. Part of Issue #38. MvsSln v2.0: https://github.com/3F/MvsSln * NEW: Added support of empty/global namespaces - Issue #47. Use `Direct-Mod` if Cecil will not process this correctly. * NEW: Implemented another storage for configuration: '.net.dllexport.targets'. Issue #49. * NEW: New settings for configurator (Wizard): * Path to custom ILAsm. * Flag to keep intermediate Files (IL Code, Resources, ...). * Timeout of execution in milliseconds. * NEW: Implemented automatic checking existence of a correct exported proc via Conari. Issue #55. Wizard controls it via `$(DllExportPeCheck)`: * 0x01 bit - Will check count of all planned exports from final PE32/PE32+ module. * 0x02 bit - Will check existence of all planned exports (IL code) in actual PE32/PE32+ module. * NEW: Implemented PE32/PE32+ Viewer to check manually available exports from final modules. Issue #55. New key for manager: ``` -pe-exp-list {module} - To list all available exports from PE32/PE32+ module. ``` Sample: ``` DllExport -pe-exp-list bin\Debug\regXwild.dll ``` * FIXED: Fixed target platform detection. Issue #34. Details: #34 (comment) * FIXED: Fixed problem when the Post-Build event is triggered before our tool. Issue #35. Use this if still is needed: ``` <Target Name="PostBuildEventBeforeDllExport" BeforeTargets="DllExportMod"> ... </Target> ``` * FIXED: Fixed generation of exp + .lib via MS Library Manager for VS2017. Issue #37. Now it also includes processing through VsDevCmd & VcVarsAll initializer scripts. Use the folowing msbuild properties to override values by default: * $(DllExportVcVarsAll); $(DllExportVsDevCmd) * FIXED: Fixes possible problem with multiple properties that contains *Undefined* word, e.g.: *Undefined*\path1;C:\path2 ... * CHANGED: Added information about finding lib tool. Issue #44. * CHANGED: UI. Selected platform now affects to all configurations of project instead of active as before. * CHANGED: Now nuget package does not contain library in `lib/.../` Details in #36. * CHANGED: Now we also distribute .zip package for work through our manager etc. https://github.com/3F/DllExport/releases * NOTE: How to avoid EXP0014: RunIlAsm. The library manager still cannot be found. https://www.youtube.com/watch?v=zUejJ4vUPGw Related Issue #44 * NOTE: Quick start (Configuring, Automatic restoring, Pe-Viewer): https://www.youtube.com/watch?v=sBWt-KdQtoc * NOTE: The latest text-based manager: https://3F.github.io/DllExport/releases/latest/manager/ Other versions you can find from GitHub Releases: * https://github.com/3F/DllExport/releases Or get it from nuget packages starting with v1.6+ * NOTE: PE-features via Conari v1.3.0 https://github.com/3F/Conari * KNOWN: Bug when - "Build successful but methods are not exported." Issue #59 For today, anyone else may also try to use https://github.com/3F/Conari to avoid similar @Genteure's problem. * DIFF(v1.6-RC): * FIXED: Wizard. Fixed incorrect layout for zh_CN Simplified Chinese (Thanks @Genteure). Issue #61 * FIXED: Fixes automatic restoring the package via msbuild. Issue #62
I added basic information for How to start.
|
I agree with the sentiment. I uninstalled this 3x before I finally let myself run the batch file. I realize that this is actually more of a special program to configure the project file. But all I did was choose the 64-bit option and click apply. It's a big step. |
Also, Windows Defender popped up in my case and proudly blocked the batch file from executing at first. |
I uninstalled this 3x before I finally let myself run the batch file.
Please clarify, I'm not sure what do you mean.
all I did was choose the 64-bit option and click apply.
good, we'll need also to add a silent mode for installation, something
like install/uninstall for all possible projects with default settings.
thanks for feedback
Windows Defender popped up in my case and proudly blocked the batch
file from executing at first.
not sure how to prevent this, probably only through report to MS about
false positive detection
21.02.2018 6:46, Darryl T. Agostinelli:
…
I agree with the sentiment. I uninstalled this 3x before I finally let
myself run the batch file.
I realize that this is actually more of a special program to configure
the project file. But all I did was choose the 64-bit option and click
apply.
It's a big step.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#38 (comment)>, or
mute the thread
<https://github.com/notifications/unsubscribe-auth/ADGJ_a8STW9YuRpgr8zsN4Qtbbf2yMH2ks5tW5GlgaJpZM4NvJuE>.
|
Eek, I think I may have mis-explained. There is no bug. I apologize. What I meant was that I installed DllExport, took one look at the batch file and uninstalled it without trying. I forgot about DllExport, rediscovered it, tried it and said no way again. I repeated all of that 3 times before I eventually read this GitHub issue and decided to do it. Windows Defender even reported this library as a potential red-flag. It's the sentiment that I'm agreeing with. That this should just work from a NuGet package and not from the batch file. It's just very, very irregular to have a batch file. |
Unfortunately the modern NuGet (a new focus in development at all) is very inconvenient for projects like this. We are not a library, we're tool. And I already discussed about I have no plan for this at all, firstly and mainly - I just don't want. I'm tired of the fact that the support for important things from nuget project periodically are lost or canceled (suddenly but officially). The weird and unclear support of their product for all years. A contrast example: in past I had many urgent tasks to solve problems with canceled the solution-level for X products (the community should know about open vsSBE tool, as an example). Now it also ps-scripts. And I'm already silent about compatibility and functionality between their different clients - console tool, vsix-plugin etc. And moreover, for this project I'm focused on other things at all: " I've plan to fully avoid the dependence on ILAsm and ILDasm. So probably it will be fully new project. " But ! anyone else may try to support also this way. I'll review definitely your PR later. Welcome.
I'm still don't understand your "3 times"
|
By the way, this script can be embedded inside any other place and freely distributed between repos, or just be downloaded from github before build via any script etc. The main pros: this can be embedded or distributed via different servers and tools. Fully independent. The one setting, and then all in automatic mode (restoring, configuring, etc.) Looking ahead, it also ready for different OS beyond of the Windows. Because as I already said in other discussion (I'll add more details for current wiki later), this batch script was based on GetNuTool core, that's Cross-Platform Embeddable Package Manager that requires only MSBuild. So it very easy to continue support for any other platform. |
I edited my "3 times" comment above for clarity. It's irrelevant anyway... |
Since we have a lot of problems/inconvenience with new nuget features like a global caching, new PackageReference format, removed install/uninstall ps-scripts, and the overall focus on libraries only, I'll consider new destribution via our compact GetNuTool client (or something else, not important). That is, this package still will be placed via any nuget server, but without any guarantee for support of any standard client.
Because I'm tired from nuget project -_- in recent years it's very inconvenient for any tools, because of main focus to libraries (that's soundly not for all cases).
GetNuTool (batch file about 10kb) has been created primarily to provide tools and service of user projects, libraries, the build processes, etc.
It especially used by vsSolutionBuildEvent projects (CIM library for support CI features) because of removed solution-level in 2015
Thus, probably we need to reconsider new way for distribution our tool for best support.
Related issue: #36 (comment)
How it can be (draft)
gnt.core can be wrapped to 1 batch file (text-based file, who don't know) that will:
Requirements: no any, GetNuTool works via msbuild like your common build. And logic will be placed in 1 batch file, that you can store with your code as simple build-script.
Problems
But GetNuTool is oriented for solution-level only, therefore we need also provide support to add our settings & required targets for user project-files.
For this I can encapsulate logic of this inside our package from vsSolutionBuildEvent project (I think part of this I can open by new MIT license), and main scheme should be like:
so I think it should be fine.
Pros / cons
+
-
install
command not works properly. (partially resolved)So what anyone think about this ? Your suggestions ?
The text was updated successfully, but these errors were encountered: