2.1.86 shipped Dapper.StrongName and Dapper.EntityFramework.StrongName with an
all-zero strong-name signature, so they fail strong-name validation when loaded
on .NET Framework. Comparing the shipped assemblies:
2.1.79 sig 128B, nonzero=127 real signature
2.1.86 sig 128B, nonzero=0 public-signed only
Both projects carried
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
Public signing stamps the public key and sets the STRONGNAMESIGNED flag but
writes no actual signature: the assembly claims to be strong-named and is not.
.NET Core and later do not verify strong names, so only .NET Framework consumers
see the failure.
The condition never fired in practice because releases were packed by hand on
Windows. release.yml now builds on ubuntu-latest, so it fires on every release -
this is a regression introduced by #2230, not by anything in the signing setup.
The condition is a legacy workaround from when Roslyn could not fully sign off
Windows; it can now. Removing it rather than moving the release job to Windows
fixes the cause instead of avoiding it, and keeps a Linux developer build honest
too. Verified on Linux: a full Build.csproj pack produces real 128-byte
signatures for every TFM of both packages.
Dapper.snk is unchanged - untouched since the commit that added Dapper.StrongName
- so the public key token is identical and this is a signature fix, not an
identity change. Windows builds are unaffected: the condition was already false
there.
* attempt NRT makeover
- annotate NRTs on GridReader API
- add protected access to some of the GridReader internals
- switch GridReader callbacks to be more type-independent
docs
lib updates; deal with yellow warnings and test failures (SQL server certs and cancellation surfacing differently)
fix break
simplify proposed GridReader changes to protected OnBeforeGrid and OnAfterGrid[Async]
Builds: Bump library versions (#1935)
Tests: Upgrade dependencies for Dependabot (#1936)
I'll do a pass at all of these later, but getting CVE versions out of the pipe.
Resolving 4 alerts here: https://github.com/DapperLib/Dapper/security/dependabot
merge and lib updates
allow Identity to be constructed on-the-fly inside GridReader
fix build warnings
include readme
rev minor
- enable [SkipLocalsInit] everywhere
- use NET5_0_OR_GREATER
for remoting check
# Conflicts:
# Dapper/CommandDefinition.cs
# Dapper/DefaultTypeMap.cs
# Dapper/SqlMapper.Async.cs
# Dapper/SqlMapper.IDataReader.cs
# Dapper/SqlMapper.Link.cs
# Dapper/SqlMapper.cs
# Directory.Build.props
* shipped, not unshipped
* fixup SqlBuilder; use is null / is not null
* use central package management (#1949)
* Nullable test tweaks
* Nuget: let's just remove it!
* 2 test fixes from review
* fix FindExplicitConstructor
* add GetPropertySetterOrThrow
* fix NRT on FindConstructor
* DapperRow: value is object?
* use NotNullWhen
* make constructor problem more obvious
* test fixes
---------
Co-authored-by: Nick Craver <nrcraver@gmail.com>
This uses the new non-parallel-at-the-end I added to xUnit in https://github.com/xunit/xunit/pull/1411 This way we can run any global test that are other-test-unfriendly much more easily.
Due to the way VS test works (by injecting an executable entry point), the performance tests needed to be factored out. I also organized all of our existing tests better along the way.
Actual code changes to Dapper itself are very minor, only formatting and documentation fixes (which we need many more of).
The build.ps1 script is upated to work, but note that <frameworkAssemblies> is not working in .nuspec inside the packages in the new .csproj system. I consider this to be a blocker. Issue is here: https://github.com/NuGet/Home/issues/4853
Note: on a nuspec comparison, the following dependencies aren't there
anymore: Microsoft.CSharp, mscorlib, System, and System.Core aren't
explicitly specified in frameworkAssemblies anymore. The only one of
these I can imagine mattering is Microsoft.CSharp.
This eliminates the dual solutions and brings Contrib into the
project.json fold.
- Tests are ported to xUnit though SQLite is disabled on DNX due to
Issue #375 (Interop loads fail in the VS runner and params are busted
regardless).
- Projects are consolidated down to what's currently possible with
project.json.
- Contrib moved to: Dapper.Contrib and Dapper.Tests.Contrib (so tests
appear at the end, no other reason vs. Dapper.Contrib.Tests)
- EF moved to: Dapper.EntityFramework(.StrongName)
- Rainbow moved to: Dapper.Rainbow
- SqlBuilder moved to: Dapper.SqlBuilder
- Packages are removed since it's not current-tooling friendly to keep
them (nor was it using them).
- xUnit implemented in Contrib via abstracts - this allow us to very
quickly add any database provider to the rig in a very concise way.
- Contrib unit tests fixed in various places - they were not
parallel-runner friendly
- Nuspecs removed, since they aren't used anymore (to eliminate
confusion)
- Removed speed tests for libraries that aren't on current versions of
.Net (what would we be comparing?)
- Perf tests moved to Dapper.Tests (consolidation from
Dapper.DNX.Tests), but aren't activated yet (no define)