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

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

Merged
merged 3 commits into from
Apr 28, 2020
Merged

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

merged 3 commits into from
Apr 28, 2020

Conversation

3F
Copy link
Owner

@3F 3F commented Apr 15, 2020

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
Copy link
Owner Author

3F commented Apr 18, 2020

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
Copy link
Owner Author

3F commented Apr 28, 2020

Rebased onto 2131353

@3F 3F changed the title WIP. Adds Pre-Processing feature. Related issue #40 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ILmerge support and other assembly manipulation.
1 participant