Skip to content
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

GUI hands when applying Merge modules via ILMerge #170

Closed
mcpiroman opened this issue Sep 5, 2020 · 4 comments · Fixed by #179
Closed

GUI hands when applying Merge modules via ILMerge #170

mcpiroman opened this issue Sep 5, 2020 · 4 comments · Fixed by #179
Labels
Milestone

Comments

@mcpiroman
Copy link

When I select Pre-Processing > Merge modules via ILMerge and click Apply the GUI hangs infinitely (this is, I waited few minutes).

dllexport_hang

  • DllExport -version: 1.7.3+9a4bc51
  • Used Visual Studio: 16.7.2

Information from Data tab or log data:

Project type: Cs
Storage: ProjectFiles
Compiler.Platform: Auto
Compiler.ordinalsBase: 1
Compiler.rSysObj: False
Compiler.ourILAsm: False
Compiler.customILAsm: 
Compiler.genExpLib: False
Compiler.peCheck: 3
Compiler.patches: None
PreProc.Type: None
PreProc.Cmd: 
PostProc.Type: None
PostProc.ProcEnv: $(SolutionPath);$(MSBuildThisFileFullPath)
PostProc.Cmd: 
SignAssembly: 
Identifier: F3E3613C-3055-4F3B-ABBF-4420E14FEC23
Instance: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\MSBuild.exe
Project path: F:\VSProjcets\PlSqlDeveloperPluginNet\IfsIntegrationPLugin\IfsIntegrationPlugin.csproj
Action: Configure
PlatformTarget: AnyCPU
TargetFramework: 
TargetFrameworks: 
TargetFrameworkVersion: v4.7.2
RootNamespace: IfsIntegrationPLugin
AssemblyName: IfsIntegrationPlugin
MgrArgs: 
MetaLib: tools\raw\lib\net20\DllExport.dll
MetaCor: tools\raw\lib\netstd\DllExport.dll
Proxy: 
StoragePath: .net.dllexport.targets
ddNS: RGiesecke.DllExport
ddNS max buffer: 500
UseCecil: True
intermediateFiles: False
timeout: 30000
RootPath: F:\VSProjcets\PlSqlDeveloperPluginNet\
PkgPath: F:\VSProjcets\PlSqlDeveloperPluginNet\packages\\DllExport.1.7.3\
SlnFile: 
SlnDir: F:\VSProjcets\PlSqlDeveloperPluginNet\.\
DxpTarget: tools\net.r_eg.DllExport.targets
MsgGuiLevel: -1
LockIfError: 

stdout after hitting Apply:

[18:42:56.2150] [Info] Remove old Import elements:'net.r_eg.DllExport.targets'
[18:42:56.2180] [Info] Trying to remove old Import elements via pk:'8337224c9ad9e356'
[18:42:56.2200] [Info] Trying to remove old restore-target: 'DllExportRestorePkg'
[18:42:56.2231] [Info] Trying to remove dynamic `import` section: 'DllExportRPkgDynamicImport'
[18:42:56.2231] [Info] Trying to remove X_EXT_STORAGE Import elements: '545F5C4B-1B08-4609-AFCC-B4B670B2A8DD'
[18:42:56.2251] [Info] Find and remove 'net.r_eg.DllExport.targets' as an old .target file of the DllExport.
[18:42:56.2270] [Debug] Trying to remove pre-proc-targets: `DllExportPreProc`, `DllExportPreProcAfter`
[18:42:56.2311] [Debug] Trying to remove post-proc-target `DllExportPostProc`
[18:42:56.6461] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportIdent':'E8FBEC0B-804D-4864-9CB7-147AA5562AE3'
[18:42:57.1860] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportMetaLibName':'DllExport.dll'
[18:42:57.1890] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportNamespace':'RGiesecke.DllExport'
[18:42:57.1900] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportDDNSCecil':'true'
[18:42:57.1920] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportSkipOnAnyCpu':'false'
[18:42:57.2250] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'PlatformTarget':'AnyCPU'
[18:42:57.2270] [Debug] Export has been configured for platform: x86 + x64
[18:42:57.2330] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportOrdinalsBase':'1'
[18:42:57.2341] [Debug] The Base for ordinals: 1
[18:42:57.2341] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportGenExpLib':'false'
[18:42:57.2360] [Debug] Generate .exp + .lib via MS Library Manager: False
[18:42:57.2390] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportOurILAsm':'false'
[18:42:57.2401] [Debug] Use our IL Assembler: False
[18:42:57.2410] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportSysObjRebase':'false'
[18:42:57.2420] [Debug] Rebase System Object: False
[18:42:57.2451] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportLeaveIntermediateFiles':'false'
[18:42:57.2461] [Debug] Flag to keep intermediate Files (IL Code, Resources, ...): False
[18:42:57.2471] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportTimeout':'30000'
[18:42:57.2481] [Debug] Timeout of execution in milliseconds: 30000
[18:42:57.2481] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportPeCheck':'2'
[18:42:57.2490] [Debug] Type of checking PE32/PE32+ module: PeIl
[18:42:57.2511] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportPatches':'0'
[18:42:57.2520] [Debug] Applied Patches: None
[18:42:57.2571] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportPreProcType':'0'
[18:42:57.2581] [Debug] Pre-Processing type: None
[18:42:57.2621] [Debug] 'TestPSDPlugin\TestPSDPlugin.csproj' Schedule an adding property: 'DllExportPostProcType':'0'
[18:42:57.2631] [Debug] Post-Processing type: None
[18:42:57.3000] [Info] Add .targets: '$(SolutionDir)packages\DllExport.1.7.3\tools\net.r_eg.DllExport.targets':8337224c9ad9e356
[18:42:57.3171] [Info] Add 'DllExportRestorePkg' target
[18:42:57.3311] [Info] Add meta library: 'F:\VSProjcets\PlSqlDeveloperPluginNet\packages\DllExport.1.7.3\gcache\$(DllExportMetaXBase)\$(DllExportNamespace)\$(DllExportMetaLibName)'
[18:42:57.3330] [Info] Add 'DllExportRPkgDynamicImport' target
[18:42:57.3720] [Info] Trying to remove Wz PackageReference records
[18:42:57.3731] [Info] Remove old Import elements:'net.r_eg.DllExport.targets'
[18:42:57.3741] [Info] Trying to remove old Import elements via pk:'8337224c9ad9e356'
[18:42:57.3750] [Info] Trying to remove old restore-target: 'DllExportRestorePkg'
[18:42:57.3761] [Info] Trying to remove dynamic `import` section: 'DllExportRPkgDynamicImport'
[18:42:57.3770] [Info] Trying to remove X_EXT_STORAGE Import elements: '545F5C4B-1B08-4609-AFCC-B4B670B2A8DD'
[18:42:57.3780] [Info] Find and remove 'net.r_eg.DllExport.targets' as an old .target file of the DllExport.
[18:42:57.3791] [Debug] Trying to remove pre-proc-targets: `DllExportPreProc`, `DllExportPreProcAfter`
[18:42:57.3800] [Debug] Trying to remove post-proc-target `DllExportPostProc`
[18:42:57.7420] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportIdent':'04B9F5EA-B14B-427C-9C33-DEEB3A81DF91'
[18:42:57.7700] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportMetaLibName':'DllExport.dll'
[18:42:57.7721] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportNamespace':'RGiesecke.DllExport'
[18:42:57.7731] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportDDNSCecil':'true'
[18:42:57.7741] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportSkipOnAnyCpu':'false'
[18:42:57.7970] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'PlatformTarget':'AnyCPU'
[18:42:57.8010] [Debug] Export has been configured for platform: x86 + x64
[18:42:57.8021] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportOrdinalsBase':'1'
[18:42:57.8031] [Debug] The Base for ordinals: 1
[18:42:57.8040] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportGenExpLib':'false'
[18:42:57.8051] [Debug] Generate .exp + .lib via MS Library Manager: False
[18:42:57.8061] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportOurILAsm':'false'
[18:42:57.8070] [Debug] Use our IL Assembler: False
[18:42:57.8081] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportSysObjRebase':'false'
[18:42:57.8090] [Debug] Rebase System Object: False
[18:42:57.8111] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportLeaveIntermediateFiles':'false'
[18:42:57.8121] [Debug] Flag to keep intermediate Files (IL Code, Resources, ...): False
[18:42:57.8131] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportTimeout':'30000'
[18:42:57.8140] [Debug] Timeout of execution in milliseconds: 30000
[18:42:57.8140] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportPeCheck':'2'
[18:42:57.8161] [Debug] Type of checking PE32/PE32+ module: PeIl
[18:42:57.8171] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportPatches':'0'
[18:42:57.8181] [Debug] Applied Patches: None
[18:42:57.8191] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportPreProcType':'0'
[18:42:57.8210] [Debug] Pre-Processing type: None
[18:42:57.8210] [Debug] 'PreserveWorkspacePlugin\PreserveWorkspacePlugin.csproj' Schedule an adding property: 'DllExportPostProcType':'0'
[18:42:57.8221] [Debug] Post-Processing type: None
[18:42:57.8520] [Info] Add .targets: '$(SolutionDir)packages\DllExport.1.7.3\tools\net.r_eg.DllExport.targets':8337224c9ad9e356
[18:42:57.8541] [Info] Add 'DllExportRestorePkg' target
[18:42:57.8550] [Info] Add meta library: 'F:\VSProjcets\PlSqlDeveloperPluginNet\packages\DllExport.1.7.3\gcache\$(DllExportMetaXBase)\$(DllExportNamespace)\$(DllExportMetaLibName)'
[18:42:57.8560] [Info] Add 'DllExportRPkgDynamicImport' target
[18:42:57.8890] [Info] Trying to remove Wz PackageReference records
[18:42:57.8900] [Info] Remove old Import elements:'net.r_eg.DllExport.targets'
[18:42:57.8910] [Info] Trying to remove old Import elements via pk:'8337224c9ad9e356'
[18:42:57.8920] [Info] Trying to remove old restore-target: 'DllExportRestorePkg'
[18:42:57.8930] [Info] Trying to remove dynamic `import` section: 'DllExportRPkgDynamicImport'
[18:42:57.8950] [Info] Trying to remove X_EXT_STORAGE Import elements: '545F5C4B-1B08-4609-AFCC-B4B670B2A8DD'
[18:42:57.8960] [Info] Find and remove 'net.r_eg.DllExport.targets' as an old .target file of the DllExport.
[18:42:57.8971] [Debug] Trying to remove pre-proc-targets: `DllExportPreProc`, `DllExportPreProcAfter`
[18:42:57.8980] [Debug] Trying to remove post-proc-target `DllExportPostProc`
[18:42:58.2880] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportIdent':'F3E3613C-3055-4F3B-ABBF-4420E14FEC23'
[18:42:58.3221] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportMetaLibName':'DllExport.dll'
[18:42:58.3241] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportNamespace':'RGiesecke.DllExport'
[18:42:58.3251] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportDDNSCecil':'true'
[18:42:58.3260] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportSkipOnAnyCpu':'false'
[18:42:58.3290] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportPlatform':'Auto'
[18:42:58.3300] [Debug] Export will try to use available platform from user settings.
[18:42:58.3311] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportOrdinalsBase':'1'
[18:42:58.3341] [Debug] The Base for ordinals: 1
[18:42:58.3351] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportGenExpLib':'false'
[18:42:58.3360] [Debug] Generate .exp + .lib via MS Library Manager: False
[18:42:58.3370] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportOurILAsm':'false'
[18:42:58.3381] [Debug] Use our IL Assembler: False
[18:42:58.3391] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportSysObjRebase':'false'
[18:42:58.3400] [Debug] Rebase System Object: False
[18:42:58.3411] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportLeaveIntermediateFiles':'false'
[18:42:58.3411] [Debug] Flag to keep intermediate Files (IL Code, Resources, ...): False
[18:42:58.3421] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportTimeout':'30000'
[18:42:58.3450] [Debug] Timeout of execution in milliseconds: 30000
[18:42:58.3461] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportPeCheck':'3'
[18:42:58.3461] [Debug] Type of checking PE32/PE32+ module: 3
[18:42:58.3471] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportPatches':'0'
[18:42:58.3481] [Debug] Applied Patches: None
[18:42:58.3491] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportPreProcType':'25'
[18:42:58.3501] [Debug] Pre-Processing type: ILMerge, DebugInfo, IgnoreErr
[18:42:58.3511] [Debug] 'IfsIntegrationPLugin\IfsIntegrationPlugin.csproj' Schedule an adding property: 'DllExportILMerge':''
[18:42:58.3521] [Debug] Merge modules via ILMerge 3.0.29:
[18:42:58.3580] [Info] Add 'DllExportPreProc' target
@mcpiroman mcpiroman added the bug label Sep 5, 2020
@3F
Copy link
Owner

3F commented Oct 2, 2020

Thanks for the report!

I think there is a problem for "Generate debug info" option.

Unfortunately I'm not sure when I personally be ready to fix something because of https://twitter.com/GitHub3F/status/1302228682870841345

For 1.7.3 try to temporarily uncheck this option. Or please open PR. I can try to coordinate some workflow for new release later.
Thanks!

@mcpiroman
Copy link
Author

Thanks, that worked!

Though, do you know some trick to actually enable the debug info (if that's what I think it is, this is merging of .pdbs)? Couse just removing '/ndebug' from ilmerge's command didn't work out (it throws some assembly load exception).

Or, since you look like you have some insight into the problem, maybe you may tell where you think is the issue and what I might need to fix the original option (as I have zero knowlage of this codebase).

Anyway, thanks for help.

@3F
Copy link
Owner

3F commented Oct 7, 2020

@mcpiroman

/ndebug had a bit problematic implementation in ilmerge as I remember. You need either to specify different output path or remove existing .pdb before new processing. Also unsupported portable-pdb type: either pdbonly or full. And related.

You can also look at manual configuring via msbuild #40 (comment)

Other, follow the changes after #146
https://github.com/3F/DllExport/tree/master/Wizard
To debug at runtime https://github.com/3F/DllExport/wiki/Debug-.NET-DllExport

@3F
Copy link
Owner

3F commented Dec 28, 2020

Please test the fix before merge:

DllExport -force -pkg-link https://ci.appveyor.com/api/buildjobs/6p1yyvxlbejaho3n/artifacts/bin/Release/DllExport.1.7.3.nupkg

@3F 3F closed this as completed in #179 Jan 1, 2021
3F added a commit that referenced this issue Jan 1, 2021
* Fixed #170. GUI hands when applying Merge modules via ILMerge

* Updated Id for Pre/PostProc gears

* Fixed possible UI threads problems at Pre/PostProc features
3F added a commit that referenced this issue Jan 2, 2021
* FIXED: Basic project integration stuck on adding property message. Issue #175.
         Modern VS/MSBuild 16.8+

* FIXED: Fixed integration with Conari and merging modules via ILMerge. Issue #170.

* FIXED: double.NaN leads to errors for non exported methods. Issue #174.
         ```
         syntax error at token '-' in: IL_0029: ldc.r8 -nan(ind)
         ```

* NEW: Manager. Implemented `-no-mgr` key:
        - Do not use manager for automatic restore the remote package.

* CHANGED: FIPS compliant algorithms.
           Unable to install when FIPS enabled. Issue #171.

* CHANGED: Improved the searching paths logic for RootPath and PkgPath,
            to be more loyal when no keys for some reason. Part of #175.

* CHANGED: Updated MvsSln 2.5.3
           https://github.com/3F/MvsSln/releases/tag/2.5.3

* CHANGED: Use special edition for DllExport project. Part of issue #171.
           https://github.com/3F/MvsSln
           branch: edition/DllExport
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants