Skip to content

chore: Bump the global-dependencies group with 17 updates#300

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/nuget/dot-config/global-dependencies-a8f170d6d2
Open

chore: Bump the global-dependencies group with 17 updates#300
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/nuget/dot-config/global-dependencies-a8f170d6d2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 1, 2026

Copy link
Copy Markdown
Contributor

Updated AspNetCore.Proxy from 4.4.0 to 4.5.0.

Release notes

Sourced from AspNetCore.Proxy's releases.

4.5.0

Available on NuGet.

What's Changed

New Contributors

Full Changelog: twitchax/AspNetCore.Proxy@v4.4.0...v4.5.0

Commits viewable in compare view.

Updated Blurhash.ImageSharp from 3.0.0 to 4.0.1.

Release notes

Sourced from Blurhash.ImageSharp's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated csharpier from 0.27.1 to 1.3.0.

Release notes

Sourced from csharpier's releases.

1.3.0

1.3.0

Breaking Changes

Change xml formatting to return error when it runs into syntax error so it is consistent with c# #​1854

Previously CSharpier treated an invalid xml file as a warning instead of an error. This was inconsistent with how it treated c# files.
Invalid c# or xml files are not treated as errors.
The --compilation-errors-as-warnings argument has been renamed to --syntax-errors-as-warnings and can be used to return warnings instead of errors when encountering invalid files.

What's Changed

Feature: Configurable whitespace handling for xml #​1790

CSharpier now supports two types of xml whitespace formatting strict or ignore.
By default all xml except xaml or axaml is treated as strict whitespace. See details

Feature: Move closing bracket for xml elements to the same line. #​1598

With strict xml whitespace handling, csharpier now keeps the closing bracket for an element on the same line instead of breaking it to a new line.

<!-- input & expected output -->
<ElementWithAttribute Attribute="AttributeValue__________________"
  >TextValue</ElementWithAttribute>

<!-- 1.2.6 -->
<ElementWithAttribute Attribute="AttributeValue__________________"
  >TextValue</ElementWithAttribute
>

Feature: Support for csharpier-ignore with XML formatter #​1788

CSharpier now supports csharpier-ignore in xml files. See details

Feature: Add MSBuild transitive and multi-target support #​1833

CSharpier.MSBuild can now work as a transitive dependency.

Feature: allow checking formatting with cache #​1830

The csharpier check command now supports a --use-cache option.

Feature: remove dependency on Microsoft.AspNetCore.App #​1508

Previously CSharpier required that Microsoft.AspNetCore.App be installed. CSharpier has been modified to use an HttpListener when it is run using server to remove the need for this dependency.

Fix: csharpier-ignore comment removes linespaces before block #​1867

CSharpier was removing blank lines before csharpier-ignore comments in some cases

// input and expected output
var x = 1;
    
// csharpier-ignore
var y=1;

/// 1.2.6
var x = 1;
// csharpier-ignore
var y=1;
 ... (truncated)

## 1.2.6

## What's Changed
### [Bug]: XML with DOCTYPE results in "invalid xml" warning [#​1809](https://github.com/belav/csharpier/issues/1809)
CSharpier was not formatting xml that included a doctype and instead reporting that it was invalid xml.
```xml
<?xml version="1.0"?>
<!DOCTYPE staff SYSTEM "staff.dtd"[
    <!ENTITY ent1 "es">
]>
<staff></staff>

[Bug]: Initializing a span using stackalloc leads to different formatting compared to new #​1808

When initializing a spacn using stackalloc, it was not being formatting consistently with other code

// input & expected output
Span<int> metatable = new int[]
{
    00000000000000000000000001,
    00000000000000000000000002,
    00000000000000000000000003,
};

Span<int> metatable = stackalloc int[]
{
    00000000000000000000000001,
    00000000000000000000000002,
    00000000000000000000000003,
};

// 1.2.5
Span<int> metatable = new int[]
{
    00000000000000000000000001,
    00000000000000000000000002,
    00000000000000000000000003,
};

Span<int> metatable =
    stackalloc int[] {
        00000000000000000000000001,
        00000000000000000000000002,
        00000000000000000000000003,
    };

[Bug]: Comments in otherwise empty object pattern disappear when formatting #​1804

CSharpier was removing comments if they were the only content of an object pattern.

// input & expected output
var match = obj is {
    //Property: 123
 ... (truncated)

## 1.2.5

## What's Changed
### Performance issue when running CLI in project with pnpm on Windows [#​1781](https://github.com/belav/csharpier/issues/1781)
**1.2.4 did not properly address this**

The code to determine if there is a version of CSharpier.MsBuild referenced that does not match the version of CSharpier being run has been optimized to not look in node_modules or .git. This significantly speeds things up in some setups.


**Full Changelog**: https://github.com/belav/csharpier/compare/1.2.4...1.2.5

## 1.2.4

# 1.2.4
## What's Changed
### Weird enter in closing when formatting XAML TextBlock [#​1785](https://github.com/belav/csharpier/issues/1785)
CSharpier was breaking an end element to a new line when it did not need to.
```xml
<!-- input & expected output -->
<root>
  <TextBlock Foreground="DarkGray">
    I saw the sign. When I opened up my eyes, I saw the sign.
  </TextBlock>
  <TextBlock>
    I saw the sign. When I opened up my eyes, I saw the sign.
  </TextBlock>
</root>

<!-- 1.2.3 -->
<root>
  <TextBlock Foreground="DarkGray">
    I saw the sign. When I opened up my eyes, I saw the sign.
  </TextBlock
  >
  <TextBlock>
    I saw the sign. When I opened up my eyes, I saw the sign.
  </TextBlock>
</root>

Order Modifiers (IDE0036) not formatting when code is preceded by a comment. #​1784

When incorrectly ordered modifiers were preceded by a comment they were not being reordered. Thanks go to @​TimothyMakkison for the contribution

// input & 1.2.3

// Comment
required public int Prop1 { get; set; }

// expected output
// Comment
public required int Prop1 { get; set; }

Performance issue when running CLI in project with pnpm on Windows #​1781

The code to determine if there is a version of CSharpier.MsBuild referenced that does not match the version of CSharpier being run has been optimized to not look in node_modules or .git. This significantly speeds things up in some setups.

Full Changelog: belav/csharpier@1.2.3...1.2.4

1.2.3

What's Changed

Large directories ignored in .gitignore significantly impact performance. #​1776

CSharpier was enumerating all files within all subdirectories and then determining if they should be formatted or not. That logic was optimized to only enumerate files in directories that are not ignored.

Full Changelog: belav/csharpier@1.2.2...1.2.3

1.2.2

What's Changed

The null coalescing operator is grouped in an unexpected place #​1769

Null coalescing is now consistently broken thanks to a contribution from @​ogaken-1

// input & expected output
var x =
    someValue.SomeCall().SomeProperty.SomeProperty
    ?? someValue.SomeCall().SomeProperty.SomeProperty;

var x =
    someValue.SomeCall().SomeProperty?.SomeCall().SomeProperty
    ?? someValue.SomeCall().SomeProperty?.SomeCall().SomeProperty;

var x =
    someValue.SomeCall().A_______.B_______.C_______
    ?? someValue.SomeCall().A_______.B_______.C_______;

// 1.2.1
var x =
    someValue.SomeCall().SomeProperty.SomeProperty ?? someValue
        .SomeCall()
        .SomeProperty.SomeProperty;

var x =
    someValue.SomeCall().SomeProperty?.SomeCall().SomeProperty ?? someValue
        .SomeCall()
        .SomeProperty?.SomeCall()
        .SomeProperty;

var x =
    someValue.SomeCall().A_______.B_______.C_______ ?? someValue
        .SomeCall()
        .A_______.B_______.C_______;

Xml formatter should not add a second line #​1760

When formatting an xml file with a declaration and extra blank line was being added.

<!-- input & expected output -->
<?xml version="1.0" encoding="utf-8"?>

<Element />

<!-- 1.2.1 -->
<?xml version="1.0" encoding="utf-8"?>


<Element />

... (truncated)

1.2.1

What's Changed

Multiline comments are now formatted in a single line in XML format #​1747

The 1.2.0 release was combining xml comments into a single line.

<!-- input & expected output -->
<Root>
  <!-- This is the first line comment-->
  <!-- This is the second line of my comment-->
</Root>

<!-- 1.2.0 -->
<Root>
  <!-- This is the first line comment--><!-- This is the second line of my comment-->
</Root>

Full Changelog: belav/csharpier@1.2.0...1.2.1

1.2.0

What's Changed

Custom XML Parser #​1679

CSharpier now has a custom xml parser. XmlDocument and XDocument do not provide the original white space or the original attribute values from the file that was parsed which blocked the ability to implement supporting keeping empty new lines and not automatically encoding attributes.

Support for keeping empty lines in xml files #​1599

CSharpier now supports keeping a single empty line between elements in xml files. It will remove any initial or trailing empty lines.

<!-- input -->
<Root>

  <Element />


  <Element />

</Root>

<!-- expected output -->
<Root>
  <Element />

  <Element />
</Root>

<!-- 1.1.2 -->
<Root>
  <Element />
  <Element />
</Root>

Xml - don't automatically encode attribute values #​1610

CSharpier will no longer encode attribute values. It will leave them encoded if they are supplied that way.

<!-- input & expected output -->
<Target Name="Transform" BeforeTargets="Build">
  <Message Importance="high" Text="@(MyItems->'MyItems has %(Identity)', ', ')" />
</Target>

<!-- 1.1.2 -->
<Target Name="Transform" BeforeTargets="Build">
  <Message Importance="high" Text="@(MyItems-&gt;'MyItems has %(Identity)', ', ')" />
</Target>

Add option to all integrations to report incorrect formatting as a warning instead of error #​1687

Formatting "using" import split on multiple lines requires formatting it twice to get the expected result #​1698

When a using contained a newline before the namespace it was not being sorted properly.

// input
using System.Net;
using
 ... (truncated)

## 1.1.2

## What's Changed
### Inconsistencies with null-coalescing wrapping on method chains [#​1573](https://github.com/belav/csharpier/issues/1573)
On longer method chains, depending on the exact chain a null coalescing expression wouldn't always be preceded by a new line.

```c#
// input & expected output
var x =
    someValue
        .Property.CallLongMethod_____________________________________()
        .CallMethod__________()
    ?? throw new Exception();

var x =
    someValue
        .Property.CallLongMethod_____________________________________()
        .CallLongMethod___________________________________________________()
    ?? throw new Exception();

// 1.1.1
var x =
    someValue
        .Property.CallLongMethod_____________________________________()
        .CallMethod__________() ?? throw new Exception();

var x =
    someValue
        .Property.CallLongMethod_____________________________________()
        .CallLongMethod___________________________________________________()
    ?? throw new Exception();

Full Changelog: belav/csharpier@1.1.1...1.1.2

1.1.1

What's Changed

Unhandled exception: System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string. (Parameter 'startIndex') #​1673

CSharpier was throwing an exception when formating a directory contained a file without an extension.

1.1.0

What's Changed

.gitignore from parent folders impacts formatting of children #​1627

CSharpier will no longer consider .gitignore files located above the root of the current git repository.

Changes to stdin formatting #​288 #​1657

There is a new option --stdin-filepath that is used to specify the filepath CSharpier should use for resolving options and ignore files.
When no path is specified via stdin-path

  • No ignore files are considered.
  • The current directory is considered when locating options
  • The file is assumed to be c# unless the first non-whitespace character is < in which case it is assumed to be xml.

Support for C# 14 and .NET 10 #​1654 #​1646

Changes were required to support the following

  • Extension Declarations
  • File level directives in file based C# Apps

Support --ignore-path CLI option #​1585

It is now possible to specify the path to an ignore file

dotnet csharpier format . --ignore-path .config/.csharpierignore

Format xaml and slnx by default #​1628 #​1604

CSharpier now formats xaml and slnx by default without the need for configuration changes.

XML formatting is not taking into account EOL configuration on multiline comments #​1660

When formatting the following XML, CSharpier would always use the system system default for ending lines within the comment instead of the respecting the configured EOL setting.

<Element>
  <!--
  Comment with EOL
  -->
</Element>

Error when no read access to intermediate containing folder #​1656

In the case that CSharpier had access to a sub directory but not the parent of that sub directory, it was failing with an exception. That has been resolved.

Misleading message after "csharpier check" #​1645

Previously the format and check commands both used the same output message. The check command now correctly reports that it checked files and did not format them.

# 1.0.3
dotnet csharpier check .
Formatted 13226 files in 21986ms.

# 1.1.0
dotnet csharpier check .
Checked 13226 files in 21986ms.

Multiline collection expressions should not be indented #​1635

CSharpier now formats collection expressions consistently when they are in a property

// input & expected output
public class ClassName
{
    public SomeObject LongValue = new
 ... (truncated)

## 1.0.3

## What's Changed
### Switch block case with conditionals adding newlines [#​1630](https://github.com/belav/csharpier/issues/1630)
Switch blocks were breaking on conditions within patterns.
```c#
// input and expected output
switch ("")
{
    case "" or "":
        break;
}

// 1.0.2
switch ("")
{
    case ""
    or "":
        break;
}

switch expression formatting adds odd newlines #​1620

CSharpier was breaking after a discard with a when, resulting in extra new lines

// input and expected output
_ = someValue switch
{
    _ when KeepWhenWithDiscard() => "",
    _ when KeepWhenWithDiscard_________________(
            SomeObject_______________________________________________
        ) => "",
    _ when KeepWhenWithDiscard_________________(
            SomeObject_______________________________________________
        ) => "LongString_____________________________________________________________________",
};

// 1.0.2
_ = someValue switch
{
    _ when KeepWhenWithDiscard() => "",
    _
        when KeepWhenWithDiscard_________________(
            SomeObject_______________________________________________
        ) => "",
    _
        when KeepWhenWithDiscard_________________(
            SomeObject_______________________________________________
        ) => "LongString_____________________________________________________________________",
};

multi-line raw string in linq query causes a subsequent linq query to be printed on one line #​1617

... (truncated)

1.0.2

What's Changed

Performance issues when supporting .gitignore. #​1588

CSharpier was using a naive algorithm for parsing and evaluating gitignore rules that caused significant perfomance issues. @​kevinboss reworked the implementation to drastically increate performance.

Exclude bin/ and obj/ directory content from xml formatting #​1600

CSharpier now excludes all files in bin/ and obj/ by default.

Error on syntactically valid conditional with is #​1612

The following c# is valid and compiles with 9.0.300+. CSharpier was updated to properly parse it.

var x = y is y ? [] : z ?? [];

Xml formatting with comments in text element inserts extra new lines #​1607

CSharpier has some issues with formatting text that contained xml comments. That has been improved.

Input & expected output

<NoWarn>
  CA1031; <!-- Since this is not a library project, catching general exceptions is OK -->
  IDE0005; <!-- Allow unused usings -->
</NoWarn>

1.0.1

<NoWarn
    >
      CA1031;
    <!-- Since this is not a library project, catching general exceptions is OK -->

    
      IDE0005;
    <!-- Allow unused usings -->
</NoWarn>

Inconsistent formatting of single-line lambda expressions #​1594

CSharpier 1.0.0 introduced a regression that caused the following formatting. This is now working as expected.

// input & expected output
        CallMethod(() => CallAnotherMethod______________________________________________________());
        CallMethod(() =>
            CallAnotherMethod______________________________________________________1()
        );
        CallMethod(() =>
            CallAnotherMethod______________________________________________________12()
        );
        CallMethod(() =>
            CallAnotherMethod______________________________________________________123()
        );

// 1.0.0
 ... (truncated)

## 1.0.1

## What's Changed
### CSharpier's support for .gitignore is causing performance issues [#​1584](https://github.com/belav/csharpier/issues/1584)
The support for `.gitignore` has some major performance problems when there are a large number of `.gitignore` files and/or ignore rules. The feature has been disabled for now until it can be fixed.
### CSharpier.MsBuild issues [#​1586](https://github.com/belav/csharpier/issues/1586)
CSharpier.MsBuild was not properly logging errors when performing a formatting check. This would result in the build passing when files were not formatted.
Setting `CSharpier_LogLevel` was passing an invalid parameter of `--loglevel` to CSharpier, resulting in a build failure


**Full Changelog**: https://github.com/belav/csharpier/compare/1.0.0...1.0.1

## 1.0.0

## Major Changes
### Support for formatting XML [#​819](https://github.com/belav/csharpier/issues/819)
CSharpier now formats xml files by default. It will try to format ".csproj", ".props", ".targets", ".xml", ".config" as if they were xml. \
If a file is not valid xml it will be treated as a warning. \
The default indent size is `2` instead of `4`

### Performance Improvements
@​TimothyMakkison put a lot of effort into improving the performance of CSharpier. These benchmark numbers show drastic improvement for both speed and memory usage.

Baseline
Method Mean Error StdDev Median Gen0 Gen1 Gen2 Allocated
Default_CodeFormatter_Tests 233.3 ms 4.63 ms 8.23 ms 229.7 ms 11000.0000 4000.0000 1000.0000 101.41 MB
Default_CodeFormatter_Complex 433.7 ms 8.53 ms 7.56 ms 433.4 ms 20000.0000 5000.0000 1000.0000 182.44 MB

After Improvements
Method Mean Error StdDev Gen0 Gen1 Allocated
Default_CodeFormatter_Tests 64.72 ms 0.548 ms 0.512 ms 1666.6667 1000.0000 18.33 MB
Default_CodeFormatter_Complex 137.83 ms 2.730 ms 4.708 ms 3000.0000 1000.0000 30.78 MB
## Breaking Changes
### ConfigurationFile - rename TabWidth to IndentSize [#​1377](https://github.com/belav/csharpier/issues/1377)
In order to get consistency between an `.editorconfig` and `.csharpierconfig` the option `TabWidth` has been renamed to `IndentSize`. This is also a more accurate name considering by default indentation is done with spaces and not tabs.
### Rework the CLI to use commands and arguments. [#​1321](https://github.com/belav/csharpier/issues/1321)
The CLI has been reworked to use commands. This helps make it clear which arguments apply to which commands. The two common commands are below, see https://csharpier.com/docs/CLI for more details.

dotnet csharpier format .
dotnet csharpier check .

### Changing the tool command to csharpier. Changing the assembly/exe to CSharpier [#​1418](https://github.com/belav/csharpier/pull/1418)
Prior to `1.0.0` the tool command was `dotnet-csharpier` and assembly/exe were named `dotnet_csharpier`. 
The tool command name was changed to just `csharpier`
- Running a local tool remains the same `dotnet csharpier --version`
- Running a global tool is changed to `csharpier --version`

The assembly/exe names have changed to just `CSharpier`

### Support for ignoring files via a .gitignore [#​631](https://github.com/belav/csharpier/issues/631)
CSharpier now works as follows when determining if a file should be ignored.

- .gitignore files are considered when determining if a file will be ignored. A .gitignore file at the same level as a given file will take priority over a .gitignore file above it in the directory tree.
- If a .csharpierignore file is present at the same level or anywhere above the given file in the tree and it contains a pattern for a given file, that will take priority.
- The patterns within .csharpierignore work the same as a .gitignore, with patterns lower in the file taking priority over patterns above
- CSharpier does not currently look further up the directory tree for additional .csharpierignore files if it finds one. But it does look for .gitignore files. If there is demand this could be added later.
## What's Changed
 ... (truncated)

## 0.30.6

## What's Changed
### Trailing comma is placed on new line if last enum value is followed by a comment [#​1429](https://github.com/belav/csharpier/issues/1429)
```c#
// input
enum MyEnum
{
    First,
    Second // the second value
}

// 0.30.5
enum MyEnum
{
    First,
    Second // the second value
    ,
}

// 0.30.6
enum MyEnum
{
    First,
    Second, // the second value
}

Full Changelog: belav/csharpier@0.30.5...0.30.6

0.30.5

What's Changed

Extra blank line added to file each time csharpier runs on this file #​1426

When a file ended in a comment and that comment had multiple blank lines before it, a new blank line was being added each time it was formatted.
// input

// input
namespace MyCompany.MyNamespace;


// Comment block

// 0.30.4
namespace MyCompany.MyNamespace;



// Comment block

// 0.30.5
namespace MyCompany.MyNamespace;

// Comment block

**Full Changelog**: https://github.com/belav/csharpier/compare/0.30.4...0.30.5

## 0.30.4

# 0.30.4
## What's Changed
### Formatting deletes `unsafe` modifier [#​1416](https://github.com/belav/csharpier/issues/1416)
Formatting a using directive with an unsafe modifier resulted in the lose of the unsafe keyword
```c#
// input & expected output
using unsafe NvapiQueryInterface = delegate* unmanaged[Cdecl]<uint, nint>;

// 0.30.3
using NvapiQueryInterface = delegate* unmanaged[Cdecl]<uint, nint>;

CSharpier keeps adding a newline every time a file is formatted #​1408

In some cases if a file ended with a comment, CSharpier would add a new extra blank line above the comment each time it formatted the file

// input & expected outpet
using System;

namespace MyCompany.MyNamespace;

// Comment block

// 0.30.3
using System;

namespace MyCompany.MyNamespace;


// Comment block

Full Changelog: belav/csharpier@0.30.3...0.30.4

0.30.3

What's Changed

CSharpier.MsBuild doesn't fail the github action anymore #​1357

The changes for 1311 caused CSharpier.MsBuild to not report unformatted files as errors on linux.

Thanks go to @​PetSerAl for the fix

0.30.2

What's Changed

CSharpier.MsBuild now uses DOTNET_HOST_PATH instead of just dotnet #​1387

Use current dotnet binary from DOTNET_HOST_PATH instead of just dotnet.

Collection expression inside a dictionary adds unexpected new line #​1390

// input & expected output
Dictionary<string, string[]> dictionary = new()
{
    {
        "Key",
        [
            "SomeValue__________________________________________",
            "SomeValue__________________________________________",
        ]
    },
};

// 0.30.1
Dictionary<string, string[]> dictionary = new()
{
    {
        "Key",

        [
            "SomeValue__________________________________________",
            "SomeValue__________________________________________",
        ]
    },
};

Failed syntax tree validation reported when trailing comma added before a trailing comment #​1388

With the following code, CSharpier will add a trailing comma before the trailing comment.
CSharpier's syntax tree validation was incorrectly reporting this as a failure.

// input
var someObject = new SomeObject()
{
    Property1 = 1,
    Property2 = 2 // Trailing Comment
};

// output
var someObject = new SomeObject()
 ... (truncated)

## 0.30.0

## Breaking Changes
The CSharpier dotnet tool no longer supports net6 & net7.
## What's Changed
### Support C# 13 & dotnet 9. [#​1318](https://github.com/belav/csharpier/issues/1318)
CSharpier now supports dotnet 9 along with formatting all C# 13 language features.
### Inconsistent Formatting for new() Operator Compared to Explicit Object Constructors [#​1364](https://github.com/belav/csharpier/issues/1364)
Implicit and explicit object initialization with constructors was not formatted consistently
```c#
// input & expected output
SomeObject someObject = new(
    someLongParameter___________________,
    someLongParameter___________________
)
{
    Property = longValue_______________________________________________________________________,
};

SomeObject someObject = new SomeObject(
    someLongParameter___________________,
    someLongParameter___________________
)
{
    Property = longValue_______________________________________________________________________,
};

// 0.29.2
SomeObject someObject =
    new(someLongParameter___________________, someLongParameter___________________)
    {
        Property = longValue_______________________________________________________________________,
    };

SomeObject someObject = new SomeObject(
    someLongParameter___________________,
    someLongParameter___________________
)
{
    Property = longValue_______________________________________________________________________,
};

Adds additional space before each member access in verbatim interpolated multiline string #​1358

When an interpolated verbatim string contained line breaks, the code within the interpolations would contain extra spaces.

// input & expected output
var someStringWithLineBreakAndLongValue =
    $@"
{someValue.GetValue().Name} someLongText________________________________________________________________";

// 0.29.2
 ... (truncated)

## 0.29.2

## What's Changed
### Comments don't follow tabs indent style [#​1343](https://github.com/belav/csharpier/issues/1343)
Prior to `0.29.2` CSharpier was converting any tabs within the block of a multiline comment to spaces.
```c#
public void SomeFunction()
{
	/*
	The following line is an example with an indent:
		This line is indented by one tab. (prior to 0.29.2 this would end up as a tab followed by 4 spaces)
	*/
	/*
	The following line is an example with an indent:
		This line is indented by 4 spaces but will be converted to 1 tab (prior to 0.29.2 this would end up as a tab followed by 4 spaces)
	*/
	/*
	The following line is an example with an indent:
	   This line is indented by 3 spaces but will be left as 3 spaces
	*/
}

csharpier-ignore-start now supported in object initializers #​1342

// input & expected output
return new SomeClass
{
    // csharpier-ignore-start
    SomeProperty =     someValue,
    SomeProperty2 =     someValue
    // csharpier-ignore-end
};

// 0.29.1
return new SomeClass
{
    // csharpier-ignore-start
    SomeProperty = someValue,
    SomeProperty2 = someValue
    // csharpier-ignore-end
};

Fixed extra new line between cast and collection expression. #​1334

// input & expected output
CallMethod(
    (string[])
        [
            longerValue_____________________________________________,
            longerValue_____________________________________________,
        ]
 ... (truncated)

## 0.29.1

## What's Changed
### Sorting of usings with underscore differs from Visual Studio [#​1327](https://github.com/belav/csharpier/issues/1327)
CSharpier now sorts `_` to the bottom of usings.
```c#
using SomeCompany.MWord;
using SomeCompany.ZWord;
using SomeCompany._Word;

Process cannot access the file "....net8.0\any\server.log" while running multiple extensions. #​1324

CSharpier Server now uses a log file name based on the port that it is starting on to avoid concurrency issues trying to access the same log file

Full Changelog: belav/csharpier@0.29.0...0.29.1

0.29.0

Breaking Changes

The formatting command will now exit with an error code of 1 if one of the target files cannot be compiled #​1131

Prior to 0.29.0 if csharpier encountered a file that could not be compiled it would treat it as a warning and exit with a code of 0.
As of 0.29.0 a file that cannot be compiled is now treated as an error and csharpier will exit with code 1

What's Changed

Enforce trailing commas in object and collection initializer #​668

CSharpier will now add trailing commas automatically where appropriate. It will collapse to a single line and remove the trailing comma in cases where everything fits on one line.

// input
public enum SomeEnum
{
    Value1,
    Value2
}

string[] someArray = new string[]
{
    someLongValue_____________________________________________,
    someLongValue_____________________________________________
};

string[] someArray = new string[]
{
    someValue,
    someValue,
};

// 0.29.0
public enum SomeEnum
{
    Value1,
    Value2,
}

string[] someArray = new string[]
{
    someLongValue_____________________________________________,
    someLongValue_____________________________________________,
}

string[] someArray = new string[] { someValue, someValue };

Many thanks go to @​dawust for the contribution.

Support for formatting custom file extensions #​1220

Prior to 0.29.0 csharpier would only format files with an extension of .cs or .csx. It is now possible to configure csharpier to format other files extensions, and to specify configuration options per file extension.
See https://csharpier.com/docs/Configuration#configuration-overrides for more details.

Invalid blank line being added with lambda returning collection expression #​1306

... (truncated)

0.28.2

What's Changed

Pipe to dotnet csharpier fails when subdirectory is inaccessible #​1240

When running the following CSharpier would look for config files in subdirectories of the pwd. This could lead to exceptions if some of those directories were inaccessible.

echo "namespace Foo { public class Bar { public string Baz {get;set;}}}" | dotnet csharpier

Thanks go to @​jamesfoster for reporting the issue.

Full Changelog: belav/csharpier@0.28.1...0.28.2

0.28.1

What's Changed

Third party .editorconfig leading to: Error Failure parsing editorconfig files #​1227

When CSharpier encountered an invalid .editorconfig file, it would throw an exception and not format files. These files could appear in 3rd party code (for example within node_modules). CSharpier now ignores invalid lines in .editorconfigs

Thanks go to @​K0Te for reporting the issue

Full Changelog: belav/csharpier@0.28.0...0.28.1

0.28.0

What's Changed

Fix dedented method call if there is a long chain #​1154

In some cases of method chains, the first invocation would end up dedented.

// 0.27.3
o.Property.CallMethod(
    someParameter_____________________________,
    someParameter_____________________________
)
    .CallMethod()
    .CallMethod();

// 0.28.0
o.Property.CallMethod(
        someParameter_____________________________,
        someParameter_____________________________
    )
    .CallMethod()
    .CallMethod();

Extra newline in switch case statement with curly braces [#​1192](belav/csharpier#1192

If a case statement started with a block it would get an extra new line

// 0.27.3
switch (someValue)
{
    case 0:
    {
        // dedented because the only statement is a block
        break;
    }

    case 1:

        {
            // indented because there are two statements, a block then a break
        }
        break;
}

// 0.28.0
// 0.27.3
switch (someValue)
{
    case 0:
    {
        // dedented because the only statement is a block
        break;
    }
 ... (truncated)

## 0.27.3

## What's Changed
### Add more options to CodeFormatterOptions [#​1172](https://github.com/belav/csharpier/issues/1172)
The API for CSharpier was only exposing `CodeFormatterOptions.PrintWidth`. It is now in sync with the CLI and exposes all of the available options
```c#
public class CodeFormatterOptions
{
    public int Width { get; init; } = 100;
    public IndentStyle IndentStyle { get; init; } = IndentStyle.Spaces;
    public int IndentSize { get; init; } = 4;
    public EndOfLine EndOfLine { get; init; } = EndOfLine.Auto;
}

Thanks go to @​Phault for the contribution

Extra indent when call method on RawStringLiteral #​1169

When a raw string literal was the first argument to a method call, it was getting an extra indent.

// input & expected output
CallMethod(
    """
    SomeRawString
    """.CallMethod()
);

// 0.27.2
CallMethod(
    """
        SomeRawString
        """.CallMethod()
);

Thanks go to @​Rudomitori for reporting the bug.

Using aliases sorting is not always the same depending on the input order #​1168

Using aliases were not sorting properly, resulting differing outputs and unstable formatting.

Inputs of

using A = string;
using B = string;
using C = string;
using D = string;

And

using D = string;
using C = string;
 ... (truncated)

## 0.27.2

## What's Changed
### Orphan variable since 0.27.1 [#​1153](https://github.com/belav/csharpier/issues/1153)
0.27.1 introduced the following formatting regression, resulting in short variables being orphaned on a line
```c#
// 0.27.1
o
    .Property.CallMethod(
        someParameter_____________________________,
        someParameter_____________________________
    )
    .CallMethod()
    .CallMethod();

// 0.27.2
o.Property.CallMethod(
    someParameter_____________________________,
    someParameter_____________________________
)
    .CallMethod()
    .CallMethod();

Thanks go to @​aurnoi1 for reporting the bug

Better support for CSharp Script #​1141

Version 0.27.1 parsed .csx files as if they were C#, so it could only format simple ones. It now parses them as CSharpScript files so it can format them properly.

Thanks go to @​Eptagone for reporting the bug.

Full Changelog: belav/csharpier@0.27.1...0.27.2

Commits viewable in compare view.

Updated EPPlus from 7.0.8 to 8.6.1.

Release notes

Sourced from EPPlus's releases.

8.6.1

Changes in EPPlus 8.6.0

  • 9 new functions:

    • GROUPBY
    • PIVOTBY
    • TRIMRANGE
    • WRAPROWS
    • WRAPCOLS
    • USDOLLAR
    • CODE
    • ENCODEURL
    • ISFORMULA
  • Support for the trim reference operators.

  • Ranges can now convert their values to rich text via ConvertToRichText() e.g. ws.Cells["A1"].ConvertToRichText()

  • Calculation of dynamic array formulas now support dirty cell recalculation inside other dirty cell calculations.

  • Minor bug fixes. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues

Release is available on Nuget.org per 20260529 : https://www.nuget.org/packages/EPPlus/

8.6.0

  • 9 new functions:

    • GROUPBY
    • PIVOTBY
    • TRIMRANGE
    • WRAPROWS
    • WRAPCOLS
    • USDOLLAR
    • CODE
    • ENCODEURL
    • ISFORMULA
  • Support for the trim reference operators.

  • Ranges can now convert their values to rich text via ConvertToRichText() e.g. ws.Cells["A1"].ConvertToRichText()

  • Calculation of dynamic array formulas now support dirty cell recalculation inside other dirty cell calculations.

  • Minor bug fixes. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues

Release is available on Nuget.org per 20260529 : https://www.nuget.org/packages/EPPlus/

8.5.4

8.5.4

8.5.0

Minor features.

  • Added CancellationToken to Calculate - see Cancelling a calculation.
  • Added property ValueFromCellsRange and the SetValueFromCellsRange method to data labels on chart series.
  • Improved performance for SUMIFS, AVERAGEIFS, COUNTIFS.
  • Improved performance for formula calculation with full column references (e.g. A:A, $B:$B).

Release is available on Nuget.org per 20260416 : https://www.nuget.org/packages/EPPlus/

8.5.3

8.5.3

8.5.0

Minor features.

  • Added CancellationToken to Calculate - see Cancelling a calculation.
  • Added property ValueFromCellsRange and the SetValueFromCellsRange method to data labels on chart series.
  • Improved performance for SUMIFS, AVERAGEIFS, COUNTIFS.
  • Improved performance for formula calculation with full column references (e.g. A:A, $B:$B).

Release is available on Nuget.org per 20260416 : https://www.nuget.org/packages/EPPlus/

8.5.2

8.5.2

8.5.0

Minor features.

  • Added CancellationToken to Calculate - see Cancelling a calculation.
  • Added property ValueFromCellsRange and the SetValueFromCellsRange method to data labels on chart series.
  • Improved performance for SUMIFS, AVERAGEIFS, COUNTIFS.
  • Improved performance for formula calculation with full column references (e.g. A:A, $B:$B).

Release is available on Nuget.org per 20260330 : https://www.nuget.org/packages/EPPlus/

8.5.1

8.5.1

Minor bug fixes.

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues

8.5.0

Minor features.

  • Added CancellationToken to Calculate - see Cancelling a calculation.
  • Added property ValueFromCellsRange and the SetValueFromCellsRange method to data labels on chart series.
  • Improved performance for SUMIFS, AVERAGEIFS, COUNTIFS.
  • Improved performance for formula calculation with full column references (e.g. A:A, $B:$B).

Release is available on Nuget.org per 20260330 : https://www.nuget.org/packages/EPPlus/

8.5.0

Minor features.

  • Added ´CancellationToken´ to Calculate - see Cancelling a calculation.
  • Added property ´ValueFromCellsRange´ and the ´SetValueFromCellsRange´ method to data labels on chart series.
  • Improved performance for SUMIFS, AVERAGEIFS, COUNTIFS.
  • Improved performance for formula calculation with full column references (e.g. A:A, $B:$B).

Minor bug fixes.

See Minor features and fixed issues. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20260306 : https://www.nuget.org/packages/EPPlus/

8.4.2

8.4.2
Minor bug fixes.
8.4.0
Added .NET 10 targeting framework.
Minor bug fixes.
See Minor features and fixed issues. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20260204 : https://www.nuget.org/packages/EPPlus/

8.4.1

8.4.1

  • Minor bug fixes.

8.4.0

8.4.0

8.4.0

8.3.1

8.3.0

Support for adding external connections and query tables

  • Adding, updating and removing connections.
    • Power query connections.
    • Database connections
    • OLAP connections
    • Web connections
    • Text connections
      -Adding, updating and removing range and table query tables.
      -Adding pivot tables with external connections as source.
      -3 new functions:
    • PERCENTOF
    • VALUETOTEXT
    • BASE

8.3.1

8.3.0

Support for adding external connections and query tables

  • Adding, updating and removing connections.
    • Power query connections.
    • Database connections
    • OLAP connections
    • Web connections
    • Text connections
      -Adding, updating and removing range and table query tables.
      -Adding pivot tables with external connections as source.
      -3 new functions:
    • PERCENTOF
    • VALUETOTEXT
    • BASE

See Minor features and fixed issues. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20251120 : https://www.nuget.org/packages/EPPlus/

8.2.1

Features

8.2.1 Minor features and fixed issues. See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20251009 : https://www.nuget.org/packages/EPPlus/

8.2.0
Features

  • Added support for 8 new LAMBDA-based functions in workbook calculations. See Using LAMBDA functions for details:
    • LAMBDA
    • MAKEARRAY
    • SCAN
    • MAP
    • REDUCE
    • BYROW
    • BYCOL
    • ISOMITTED
  • Support for defining LAMBDA functions via defined names.

8.2.0

Features

Features

  • Added support for 8 new LAMBDA-based functions in workbook calculations. See Using LAMBDA functions for details:
    • LAMBDA
    • MAKEARRAY
    • SCAN
    • MAP
    • REDUCE
    • BYROW
    • BYCOL
    • ISOMITTED
  • Support for defining LAMBDA functions via defined names.

EPPlus 8.1.1

8.1.1

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
  • Support for adding shapes and pictures to standard charts.

EPPlus 8.1.1

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20250909 : https://www.nuget.org/packages/EPPlus/

8.1.0

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
  • Support for adding shapes and pictures to standard charts.

EPPlus 8.1.0

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20250815 : https://www.nuget.org/packages/EPPlus/

8.0.8

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.8

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues
Release is available on Nuget.org per 20250722 : https://www.nuget.org/packages/EPPlus/

8.0.7

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.7

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues

8.0.6

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.6

See https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues

8.0.5

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.4

8.0.4

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.4

8.0.3

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.3

8.0.2

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

EPPlus 8.0.2

8.0.1

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • Reduced memory consumption when calculating formulas.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returns the new inserted range.
  • In-cell checkboxes now render in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

Fixes since 8.0.0-beta

  • Several fixes in the formula calculation,
    • Better expression caching
    • Fixed column filter in GETPIVOTDATA.
    • Fixed PERCENTRANKS functions.
    • Fixed array handling in the IF function.
    • Fixed some issues in the IMAGE function.
    • Fixed an issue in the COUNTIF function when comparing numbers
  • Ole objects
    • Added new properties ProgId, ExternalLink and Image to the ExcelOleObject
    • Removed Removed ExcelOleObjectParameters.Extension and use extension from the file name.
    • Fixed issue with duplicate images.
  • Added DeleteAll method with predicate to ExcelWorkbook, ExcelRange, ExcelRangeRow and ExcelRangeColumn
  • Adding EMZ image files did not work in streams.
  • Removed several methods and properties marked as obsolete.
  • Changed several properties and methods from decimal to double. See breaking changes.
  • Fixed some issues with rich data and in-cell images.
  • GenericImageReader sometimes returned an invalid DPI.
  • Fixed support for .tif files.
  • Fixed images corrupting files in rare cases.
  • Ensured ungrouping the last drawing in a group deletes the group shape.
  • Ensured valid xml for leader lines in charts.
  • Ensured SetImage method did not swap width and height when switching between .svg and .png.
  • Inserting and deleting cells now updates chart references. Ensuring charts continue pointing to the moved cells.
  • Fixed numerous issues with array formulas and CalculatedColumnFormulas in tables related to inserting and deleting.

License keys

EPPlus 8 introduces license keys for commercial licenses and a new interface for providing license information. See this page for Commercial Use and this page for Noncommercial/Personal Use

8.0.0-rc

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • EPPlus now rounds decimal numbers more true to Excels precision.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returnes the new inserted range.
  • In-cell checkboxes now renders in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added a new rounding that is more true to Excels precision. You can switch between .Net and Excel precision with ParsingContext.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

Fixes since 8.0.0-beta

  • Several fixes in the formula calculation,
    • Better expression caching
    • Fixed column filter in GETPIVOTDATA.
    • Fixed PERCENTRANKS functions.
    • Fixed array handling in the IF function.
    • Fixed some issues in the IMAGE function.
    • Fixed an issue in the COUNTIF function when comparing numbers
  • Ole objects
    • Added new properties ProgId, ExternalLink and Image to the ExcelOleObject
    • Removed Removed ExcelOleObjectParameters.Extension and use extension from the file name.
    • Fixed issue with duplicate images.
  • Added DeleteAll method with predicate to ExcelWorkbook, ExcelRange, ExcelRangeRow and ExcelRangeColumn
  • Adding EMZ image files did not work in streams.
  • Removed several methods and properties marked as obsolete.
  • Changed several properties and methods from decimal to double. See breaking changes.
  • Fixed some issues with rich data and in-cell images.
  • GenericImageReader sometimes returned an invalid DPI.
  • Fixed support for .tif files.
  • Fixed images corrupting files in rare cases.
  • Ensured ungrouping the last drawing in a group deletes the group shape.
  • Ensured valid xml for leader lines in charts.
  • Ensured SetImage method did not swap width and height when switching between .svg and .png.
  • Inserting and deleting cells now updates chart references. Ensuring charts continue pointing to the moved cells.
  • Fixed numerous issues with array formulas and CalculatedColumnFormulas in tables related to inserting and deleting.

License keys

EPPlus 8 introduces license keys for commercial licenses and a new interface for providing license information. See this page for Commercial Use and this page for Noncommercial/Personal Use

8.0.0-beta

Features

  • Support for OLE objects (Linked or Embedded files).
  • Support for digital signing workbooks and signature lines.
  • In-cell pictures / support for the IMAGE function.
  • Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).

Minor features

  • Autofit columns optimization.
  • Range Copy now supports fill.
  • EPPlus now rounds decimal numbers more true to Excels precision.
  • Added ExcelRange.IsEmpty method.
  • Shape adjustments points support.
  • ExcelRangeBase.BorderAround now override borders for adjacent cells.
  • InsertRange now returnes the new inserted range.
  • In-cell checkboxes now renders in the HTML export.
  • Improved API for Tables to access data via column names.
  • Added a new rounding that is more true to Excels precision. You can switch between .Net and Excel precision with ParsingContext.
  • Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
  • Override borders in Adjacent cells in BorderAround method.

License keys

EPPlus 8 introduces license keys for commercial licenses and a new interface for providing license information. See this page for Commercial Use and this page for Noncommercial/Personal Use

7.7.3

7.7.2 Minor bug fixes

Release is available on Nuget.org per 20250722 : https://www.nuget.org/packages/EPPlus/

7.7.2

7.7.2 Minor bug fixes

Release is available on Nuget.org per 20250514 : https://www.nuget.org/packages/EPPlus/

7.7.1

Major update to the calculation engine to support array formulas. See EPPlus7 features
Improved performance and better support for cross-worksheet references in conditional formatting.

7.7.1 Minor bug fixes

Release is available on Nuget.org per 20250415 : https://www.nuget.org/packages/EPPlus/

7.7.0

Major update to the calculation engine to support array formulas. See EPPlus7 features
Improved performance and better support for cross-worksheet references in conditional formatting.

Added target .NET 9.

Downgraded .NET 8, NET Standard 2 & 2.1, to use 8.. packages instead of the .NET 9, from 7.7.0
Bug fixes.

Release is available on Nuget.org per 20250317 : https://www.nuget.org/packages/EPPlus/

7.6.1

Major update to the calculation engine to support array formulas. See EPPlus7 features
Improved performance and better support for cross-worksheet references in conditional f...

Description has been truncated

Bumps AspNetCore.Proxy from 4.4.0 to 4.5.0
Bumps Blurhash.ImageSharp from 3.0.0 to 4.0.1
Bumps csharpier from 0.27.1 to 1.3.0
Bumps EPPlus from 7.0.8 to 8.6.1
Bumps HtmlAgilityPack from 1.11.58 to 1.12.4
Bumps Jsonize from 3.1.1 to 3.2.0
Bumps Jsonize.Parser from 3.1.1 to 3.2.1
Bumps Jsonize.Serializer from 3.1.1 to 3.2.1
Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 7.0.14 to 8.0.28
Bumps Microsoft.AspNetCore.Mvc.NewtonsoftJson from 7.0.14 to 8.0.28
Bumps Microsoft.IdentityModel.Protocols.OpenIdConnect from 7.3.1 to 8.19.1
Bumps MySql.Data from 8.3.0 to 9.7.0
Bumps Newtonsoft.Json from 13.0.3 to 13.0.4
Bumps ReverseMarkdown from 4.3.0 to 5.4.0
Bumps SixLabors.ImageSharp to 3.1.11, 4.0.0
Bumps Swashbuckle.AspNetCore from 6.5.0 to 10.2.3
Bumps System.IdentityModel.Tokens.Jwt from 7.3.1 to 8.19.1

---
updated-dependencies:
- dependency-name: AspNetCore.Proxy
  dependency-version: 4.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: global-dependencies
- dependency-name: Blurhash.ImageSharp
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: SixLabors.ImageSharp
  dependency-version: 3.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: global-dependencies
- dependency-name: csharpier
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: EPPlus
  dependency-version: 8.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: HtmlAgilityPack
  dependency-version: 1.12.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: global-dependencies
- dependency-name: Jsonize
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: global-dependencies
- dependency-name: Jsonize.Parser
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: global-dependencies
- dependency-name: Jsonize.Serializer
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: global-dependencies
- dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer
  dependency-version: 8.0.28
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: Microsoft.AspNetCore.Mvc.NewtonsoftJson
  dependency-version: 8.0.28
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: Microsoft.IdentityModel.Protocols.OpenIdConnect
  dependency-version: 8.19.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: System.IdentityModel.Tokens.Jwt
  dependency-version: 8.19.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: MySql.Data
  dependency-version: 9.7.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: Newtonsoft.Json
  dependency-version: 13.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: global-dependencies
- dependency-name: ReverseMarkdown
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: SixLabors.ImageSharp
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
- dependency-name: Swashbuckle.AspNetCore
  dependency-version: 10.2.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: global-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants