Comments (8)
Please try cloning master, then choose HarmonyFat and right click Harmony project and choose Pack. Use the NuGet package that builds in Harmony/bin locally (point your own projects nuget settings to its directory as an extra nuget source and move it up in priority) or use the 0Harmony.dll in the corresponding .net version folder.
The master contains changes on how dependencies are internalized. If that does not solve your problem you can try the existing Lib.Harmony.Thin nuget package and supply all dependencies yourself.
Let me know if this solves your problem. I am about to release Harmony and the way itβs build is currently actively discussed on the official discord (beta channel).
from harmony.
Looks like the latest version has been fixed.
from harmony.
Is the screenshot from Thin or Fat?
from harmony.
Is the screenshot from Thin or Fat?
from harmony.
My question is: which, fat or thin, did solve your problem?
from harmony.
My problem occurs in version 2.3.0-prerelease.7. clone code from GitHub can solve the CS0433 error thrown during compilation.
But when running the program, the Mono.Cecil
reference cannot be found. When switched to ReleaseFat
mode to compile, but the compilation failed: ILRepack.targets error : Failed to resolve System.Reflection.BindingFlags
.
After consulting the information about ILRepack, I learned that it is a tool for merging 3rd dlls. Considering that its behavior is to merge through IL reorganization, there may be a risk of damaging related 3rd dlls. So I used the NuGet package Costura.Fody
instead. After compilation, referenced the local NuGet package and runs OK.
The relevant changes are as follows:
<PropertyGroup Condition="'$(Configuration)'=='DebugThin' Or '$(Configuration)'=='ReleaseThin'">
<!-- Disable to merge external dll -->
<DisableFody>true</DisableFody>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="all"/>
<PackageReference Include="MonoMod.Core" Version="$(MonoModCoreVersion)" PrivateAssets="all" />
<!-- Reference assemblies are needed for non-Windows .NET Framework targeting builds. -->
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
</ItemGroup>
The first part of the PropertyGroup configuration is used to prohibit merging third-party dlls in thin mode.
The second part is to remove ILRepacker
and use Costura.Fody
instead.
Costura.Fody
packages third-party dlls as embedded resources and loads them at runtime. This approach will not change third-party dlls, especially signed dlls.
from harmony.
Costura.Fody
has a very questionable license model so I rather not want to use it.
from harmony.
@jichulu You should try master
instead of prerelease 7
from harmony.
Related Issues (20)
- Add strongname to make all projects can use this library HOT 2
- Seemingly random NOP invalid IL errors HOT 4
- Correct way to patch TWindow GetWindow<TWindow>() HOT 1
- Release a new prerelease for the updated Mono.Cecil
- Error in exported Godot Engine build when attempting to patch method HOT 5
- Incorrect code generation for exception block when patching `System.Net.WebClient::DownloadFile(System.Uri address, System.String fileName)` HOT 2
- Problem patching specific method with latest pre-release HOT 2
- Harmony CANNOT be used in Godot!!!! HOT 2
- Any restriction to hook .Net service? HOT 9
- Getting an instance from the TargetMethod patch HOT 1
- Using GeneratedRegex causes failed compile due to ReadOnlySpan HOT 2
- A crash after hook:The object's current state invalidates the operation HOT 2
- Harmony fails to patch method and throws exception in exported Godot build HOT 13
- ModuleInitializerAttribute HOT 1
- RtDynamicMethod get MetadataToken throws InvalidOperationException HOT 2
- Patch on .net 7&8 throw TypeLoadException while debugging HOT 18
- Harmony 3.0: Utility Epic
- Investigate Testing the NuGet Package Directly HOT 3
- Add a Release Pipeline
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from harmony.