Skip to content

1.0.0

Latest

Choose a tag to compare

@lindexi lindexi released this 16 Sep 12:30
· 23 commits to main since this release
f68a8a5
Try fix the dll file copy error (#22)

* Try fix the dll file copy error

* Fix DirectWriteForwarder assembly resolution by registering it in .deps.json

The generated buildTransitive targets previously copied
DirectWriteForwarder.dll into the output directory only after
Build/Publish completed. This placed the file on disk but did not
register it in the application's .deps.json, so the CLR continued to
resolve the same-named assembly from the Microsoft.WindowsDesktop.App
shared framework. The resulting private ABI mismatch with the
repo-built PresentationCore.dll caused MissingMethodException when
calling TextAnalyzer.Itemize.

Update the generated targets to register the RID-specific
DirectWriteForwarder.dll as a real runtime dependency:

- Add it to ReferenceDependencyPaths.
- Set IncludeRuntimeDependency="true".
- Add it to ReferenceCopyLocalPaths.
- Remove any existing same-named asset before registering it.

This ensures the assembly is written to .deps.json and the CLR resolves
the repo version from the app directory instead of the shared framework
version.

Add regression tests covering this behavior.

* Update document

* Register DirectWriteForwarder as a real reference before ResolveReferences

The generated buildTransitive targets previously copied
DirectWriteForwarder.dll into the output directory only after
ResolveReferences completed. The file existed on disk but was never part
of the app's dependency graph, so framework-dependent apps still resolved
the same-named assembly from the Microsoft.WindowsDesktop.App shared
framework. The resulting internal ABI mismatch with the repo-built
PresentationCore.dll caused MissingMethodException at TextAnalyzer.Itemize.

Register the assembly before reference resolution instead:

- Add <Reference Include="DirectWriteForwarder"> with a RID-specific
  <HintPath>.
- Set <Private>true</Private> so it is treated as a real runtime
  dependency and written to .deps.json.
- Remove the previous ineffective logic that injected
  ReferenceDependencyPaths and ReferenceCopyLocalPaths after
  ResolveReferences.

* Try disable implicit framework reference

* Try remove the framework reference

* Try manually loading the assembly

* Try fix inline

* Add comment

* Update tests

* Try fix CI

* Try fix platform

* Revert "Try fix platform"

This reverts commit b1462141f7c2b06c8ad70c10fc59b38af0341bb6.

* Add the more test

* 更新记录文档

* Fix the DirectWriteForwarder version [Main fix]

* Add the test code

* Revert "Add comment"

This reverts commit 703b230e35e056322023bcf28077f8a00b0cc99e.

* Revert "Try fix inline"

This reverts commit cd9859a9cdd9ce40655a7c126dca145336042d26.

* Revert "Try manually loading the assembly"

This reverts commit 3e998a63639eeeaeb0ab9f74f8a75234f01b6400.

* Update document

* The slim code

* Remove the unuse target

* Try fix CI