In a production pipeline AssetPostprocessors should always be placed in pre-built dll’s in the project instead of in scripts. AssetPostprocessors change the output of imported assets, thus a compile error in one of the scripts will lead to assets being imported differently.
What are they suggesting here? How do I move the post processor step from script to the dll?
You want to take your script from out of the project, then create a Visual Studio or MonoDevelop project that’s completely separate from the Unity project for the DLL you are making.
Create a new Visual C# project. Select “Class Library” as the output type. The target framework must be NO GREATER than .NET 3.5 (Unity doesn’t use .NET, it uses Mono 2.6, a cross-platform implementation of C# that is binary compatible with .NET).
Once the project is created, add a reference to the Unity DLLs. This can be done by the right clicking the project’s “References” folder in the Solution Explorer window and selecting “Add Reference…”. The Reference Manager window should pop up.
In the reference Manager window, Browse for the Unity DLLs, which can be found in “C:\Program Files (x86)\Unity\Editor\Data\Managed” on Windows. If making game scripts, use “UnityEngine.dll”. Do NOT add editor scripts here. If making editor scripts, use “UnityEditor.dll”, and “UnityEngine.dll” if necessary.
Write your scripts. Make sure all MonoBehaviour classes you write are in the global namespace.
Build the project when done. Optional: If you would like build the DLL to a Unity project, in Project Properties’ Build tab, under “Output”, select the output path to the Asset folder of your Unity project of choice. When you enter the editor, the DLL will be incorporated in the project.
Once the DLL is built, you just want to put the DLL in the Unity project like this page says.