Skip to content

Adds Pre-Processing feature. Related issue #40 - #146

Merged
3F merged 3 commits into
masterfrom
dev/preproc
Apr 28, 2020
Merged

3F merged 3 commits into
masterfrom
dev/preproc

Conversation

@3F

@3F 3F commented Apr 15, 2020

Copy link
Copy Markdown
Owner

Closes #40

After serial questions about manipulation for modules together with our tool and some misunderstanding such for "How do I do this without the /ndebug flag" https://twitter.com/GitHub3F/status/1248621686930337795

I decided to add configurable Pre-Processing where we can configure like ILMerge, Conari, and others.

"WIP" since PackageReference is missing copy files to output if .NET Core/SDK-style

But GeneratePathProperty feature NuGet/Home#4837 (comment) will require additional processing to find related platform:

<PackageReference Include="Conari" Version="1.4.0" GeneratePathProperty="true" />
...
<Copy SourceFiles="$(PkgConari)\lib\netstandard2.0\Conari.dll" DestinationFolder="$(OutDir)" />

Thus CopyLocalLockFileAssemblies still is more suitable for this case. But I'm still not sure, I'll try to review this later.

@3F 3F added this to the 1.7.1 milestone Apr 15, 2020
3F added a commit that referenced this pull request Apr 18, 2020
…sing

Part of #146

* Based on `CopyLocalLockFileAssemblies`
* A bit refactored Project class. Pre-Proc feature has been splitted into separate PreProcGear implementation (IProjectGear)
@3F

3F commented Apr 18, 2020

Copy link
Copy Markdown
Owner Author

Well, CopyLocalLockFileAssemblies is here; Actually I don't want to see all dependencies inside output folder because it can be confusing. But ...

+Pre-Proc feature has been splitted into separate PreProcGear implementation (IProjectGear)

@3F
3F marked this pull request as ready for review April 18, 2020 19:14
3F added 2 commits April 28, 2020 15:27
…sing

Part of #146

* Based on `CopyLocalLockFileAssemblies`
* A bit refactored Project class. Pre-Proc feature has been splitted into separate PreProcGear implementation (IProjectGear)
@3F

3F commented Apr 28, 2020

Copy link
Copy Markdown
Owner Author

Rebased onto 2131353

@3F 3F changed the title WIP. Adds Pre-Processing feature. Related issue #40 Apr 28, 2020
@3F
3F merged commit 2579d14 into master Apr 28, 2020
@3F
3F deleted the dev/preproc branch April 28, 2020 12:43
3F added a commit that referenced this pull request May 7, 2020
* NEW: Pre-Processing feature. PR #146.
       Related issue #40

       Official ILMerge support;
       https://github.com/dotnet/ILMerge

       Quick integration with Conari for most easy access to unmanaged features;
       https://github.com/3F/Conari

       +Other related tools and assembly manipulations.
       Manual configuring: #40 (comment)

* NEW: Post-Processing. PR #148.
       Continues direction of Pre-Processing feature. PR #146
       Related issue #144

       Explanation and details:
       https://ko-fi.com/Blog/Post/ILMerge---Conari---Debug-information---DllExport-=-O5O61MV8A

       1.7.1 Provides only basic GUI support for predefined options. Thus,

        *! Some Post-Proc features are not yet available in GUI.
        But you can already configure it with msbuild:
        ```
        <Target Name="DllExportPostProc">

            <!-- After activation, you can access the following properties and items:

            $(DllExport)     - version
            $(DllExportSln)  - full path to .sln which controls current project
            $(DllExportPrj)  - full path to current project where processed .NET DllExport

            @(DllExportDirX64)    - $(TargetDir)x64\*.*
            @(DllExportDirX86)    - $(TargetDir)x86\*.*
            @(DllExportDirBefore) - $(TargetDir)Before\*.*
            @(DllExportDirAfter)  - $(TargetDir)After\*.*

            @(DllExportDependents + populated property name)
               - each populated properties from DllExportProcEnv,
                  e.g. DllExportDependentsTargetDir

            @(DllExportDependencies + populated property name)
              - each populated properties from DllExportProcEnv,
                  e.g. DllExportDependenciesTargetDir

            @(DllExportSeqDependents + populated property name)
               - each populated properties from DllExportProcEnv,
                  e.g. DllExportSeqDependentsTargetDir

            -->

        </Target>
        ```
        #148 (comment)

* NEW: Optional copying of intermediate files + x86+x64 directories into output
           for projects that dependent on projects where used DllExport. Issue #144.

           Including sequential referencing through other projects:
           #148 (comment)

* FIXED: Fixed #140 ... failed to create safe SSL/TLS context.

* FIXED: Pack of fixes for .net.dllexport.targets. PR #147.

        * Fixed "Cannot modify an evaluated object originating in an imported file".
        * Fixed possible duplication in .net.dllexport.targets when configuring.
        * Adds removing TargetsFile if not used.
        * Fixed possible loss of settings in .targets when configuring.

* FIXED: Fixed #143 'Microsoft.NET.Sdk' specified could not be found.

* FIXED: A multiple empty `<PropertyGroup />` in project files during new configuration.

* CHANGED: Wizard. Dropped support for ssl3 + tls1.0 + tls1.1

* CHANGED: Wizard. Simplified notification for stable versions.

* CHANGED: Manager. Access to hMSBuild tool (packed) via `-hMSBuild` key.
                    https://github.com/3F/hMSBuild
                    Since it uses packed version (while GetNuTool is integrated inside),
                    you need use -dxp-version to control specific version.

* CHANGED: Updated Cecil 0.11.2
           https://github.com/jbevain/cecil/releases/tag/0.11.2

* CHANGED: Updated MvsSln 2.5.2
           https://github.com/3F/MvsSln/releases/tag/2.5.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment