Please check if the pull request fulfills these requirements
[x] Tests for the changes have been added (for bug fixes / features)
[x] Does it pass all existing unit tests without modification?
If not, what did you change?
If you altered it significantly, what coverage issue did you fix?
[ ] Docs have been added / updated (for bug fixes / features)
[x] CHANGELOG.md has been updated to describe this change
What kind of change does this pull request introduce?
[x] Bug Fix
[ ] Feature
[ ] Something else
What is the current behavior?
In v2.2.2, Yarn Spinner's dependency DLLs were renamed to have the prefix Yarn. to prevent errors when two DLLs of the same name (e.g. Google.Protobuf.dll) are present in the same project.
This fix solved the edit-time problem, but introduced a new error when the project used Unity's Burst compiler, which looks for DLL files based on their assembly name.
When compiling with Burst, Unity looks for the DLL file based on the name of the assembly, so when it goes searching for (for example) Google.Protobuf, it will only look for the file Google.Protobuf.dll, and not the renamed file.
This causes build failures when the project includes the Burst package.
What is the new behavior (if this is a feature change)?
With this change, the update_dlls.yml build script, which pulls in the latest version of Yarn Spinner and its dependencies, now uses the dotnet-assembly-alias tool to rename the DLLs and their assembly names.
This change fixes the build failure by modifying the DLL syncing GitHub Action.
Does this pull request introduce a breaking change?
This PR introduces no change in behaviour in the Editor or in built players.
Other information:
It's worth noting that the assembly aliasing is being performed by a third-party tool, so this PR effectively adds dependency on this tool. A potential, but (to this developer) acceptable risk is that the tool becomes unavailable. Additionally, the aliasing tool rewrites DLLs, which introduces a (again, acceptable, in the eyes of this developer) security consideration.
Docs have been added / updated (for bug fixes / features)What kind of change does this pull request introduce?
[x] Bug Fix
[ ] Feature
[ ] Something else
What is the current behavior?
In v2.2.2, Yarn Spinner's dependency DLLs were renamed to have the prefix
Yarn.
to prevent errors when two DLLs of the same name (e.g.Google.Protobuf.dll
) are present in the same project.This fix solved the edit-time problem, but introduced a new error when the project used Unity's Burst compiler, which looks for DLL files based on their assembly name.
When compiling with Burst, Unity looks for the DLL file based on the name of the assembly, so when it goes searching for (for example)
Google.Protobuf
, it will only look for the fileGoogle.Protobuf.dll
, and not the renamed file.This causes build failures when the project includes the Burst package.
What is the new behavior (if this is a feature change)?
With this change, the
update_dlls.yml
build script, which pulls in the latest version of Yarn Spinner and its dependencies, now uses the dotnet-assembly-alias tool to rename the DLLs and their assembly names.This change fixes the build failure by modifying the DLL syncing GitHub Action.
This PR introduces no change in behaviour in the Editor or in built players.
It's worth noting that the assembly aliasing is being performed by a third-party tool, so this PR effectively adds dependency on this tool. A potential, but (to this developer) acceptable risk is that the tool becomes unavailable. Additionally, the aliasing tool rewrites DLLs, which introduces a (again, acceptable, in the eyes of this developer) security consideration.