Search Issue Tracker

Fixed in 2018.3.X

Votes

0

Found in

2018.2.16f1

2018.3.0a1

2019.1.0a1

2019.2.0a1

Issue ID

1105403

Regression

No

DLL Placeholder values cannot be found when DLL is in a local package

Packman

-

How to reproduce:
1. Download and extract the "1105403_repro.zip" archive
2. Open the "1105403_project"
3. Observe the errors in the Console window
4. In the Project window, select Packages/Holo<...> FileServer/Assemblies/AOT/Newtonsoft.Json
5. In the Inspector, observe that the Placeholder value

Expected result: Placeholder values are found and are non-empty; no "Failed to find placeholder" errors in the Console.
Actual result: Placeholder values are empty; "Failed to find placeholder" errors thrown in the Console.

Reproducible with - 2018.2.20f1, 2018.3.0a1, 2018.3.5f1, 2019.1.0b3, 2019.2.0a5
Not tested on 2017.4, since Packages folder (in Project window) was not yet introduced.

Errors thrown:
Failed to find a placeholder ('Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.dll') for 'Packages/com.<...>/Assemblies/AOT/Newtonsoft.Json.dll', ensure it exists, or change plugin settings for 'Packages/com.com.<...>/Assemblies/AOT/Newtonsoft.Json.dll' accordingly.
UnityEditorInternal.InternalEditorUtility:GetPrecompiledAssemblies(Boolean, BuildTargetGroup, BuildTarget)
UnityEditorInternal.InternalEditorUtility:GetMonoIslandsForPlayer() (at C:/buildslave/unity/build/Editor/Mono/InternalEditorUtility.cs:390)
System.Reflection.MethodBase:Invoke(Object, Object[])
SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit:CompilationUnits(String)
SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit:CompilationUnitsForPlayer()
<...>

  1. Resolution Note (fix version 2018.3):

    The issue arises because the .meta files in the package project reference the placeholder using relative path, which is specific to that project. When you treat that project as a package, the paths will obviously point to the wrong location on disk.

    The solution here is to configure the placeholder from the project that's referencing a package. That way it gets configured in a package context and will work for any projects that include the package.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.