Multiple errors in VectorIntFormatters.cs when building Addressables, after updating Odin from 3.0.12 to 3.0.13

Issue #866 new
Sergio del Valle created an issue

After upgrading Odin from 3.0.12 to 3.0.13 using Unity 2020.3.37, addressables can’t be built, with the console reporting multiple errors related to VectorIntFormatters.cs, all of them reporting “a missing assembly reference” (see attached screenshot), for example:

Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(9,34): error CS0234: The type or namespace name 'RegisterFormatterAttribute' does not exist in the namespace 'Sirenix.Serialization' (are you missing an assembly reference?)

Fortunately we make a backup before updating anything, and after trying again it is updating Odin from 3.0.12 to 3.0.13 what triggers it. Everything else seems to be working OK, it is just when trying to build addressables with Build → New Build → Default Build Script.

We extensively use Odin in our workflow and while we can get going staying on the previous version we are worried if this will become a problem if we are forced to move to a new version.

Kind regards

Comments (4)

  1. Sergio del Valle reporter

    Greetings again. Updated to Unity 2020.3.38 and Odin 3.1.2 and again problems with VectorIntFormatters.cs when building addressables using the default parameters:

    -----CompilerOutput:-stdout--exitcode: 1--compilationhadfailure: True--outfile: Temp/Sirenix.OdinInspector.CompatibilityLayer.dll
    Microsoft (R) Visual C# Compiler version 3.5.0-dev-20359-01 (8da8ba0c)
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(9,34): error CS0234: The type or namespace name 'RegisterFormatterAttribute' does not exist in the namespace 'Sirenix.Serialization' (are you missing an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(9,34): error CS0234: The type or namespace name 'RegisterFormatter' does not exist in the namespace 'Sirenix.Serialization' (are you missing an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(10,34): error CS0234: The type or namespace name 'RegisterFormatterAttribute' does not exist in the namespace 'Sirenix.Serialization' (are you missing an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(10,34): error CS0234: The type or namespace name 'RegisterFormatter' does not exist in the namespace 'Sirenix.Serialization' (are you missing an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(19,40): error CS0246: The type or namespace name 'MinimalBaseFormatter<>' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(28,60): error CS0246: The type or namespace name 'IDataReader' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(39,61): error CS0246: The type or namespace name 'IDataWriter' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(21,33): error CS0246: The type or namespace name 'Serializer<>' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(50,40): error CS0246: The type or namespace name 'MinimalBaseFormatter<>' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(59,60): error CS0246: The type or namespace name 'IDataReader' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(71,61): error CS0246: The type or namespace name 'IDataWriter' could not be found (are you missing a using directive or an assembly reference?)
    Assets\Plugins\Sirenix\Odin Inspector\Scripts\VectorIntFormatters.cs(52,33): error CS0246: The type or namespace name 'Serializer<>' could not be found (are you missing a using directive or an assembly reference?)
    -----EndCompilerOutput---------------
    

  2. Bjarke Elias

    I’ve tried to reproduce by installing old versions of Odin and then upgrade to newer ones, but I can’t seem to reproduce it.
    The problem is that the old versions of Odin has a compatibility layer located in Assets\Plugins\Sirenix\Odin Inspector\Scripts\"which has been removed entirely in newer versions of Odin as it’s no longer needed. This should have been automatically removed when installing the new version of Odin, which works for me, but for whatever reason that has not happened for you.

    So to fix, I’d recommend trying to install Odin again, and see if the Script folder doesn’t go away. Or remove the old version manually, and then install the new one. Or you could also try manually removing that Scripts folder.

  3. Log in to comment