Another Export Error

error.log (97.8 KB)

Exec: : ERROR C:\Users\Cat.nuget\packages\stride.core.assets.compilerapp\\buildTransitive\Stride.Core.Assets.CompilerApp.targets(145,5): The command ““C:\Users\Cat.nuget\packages\stride.core.assets.compilerapp\\buildTransitive…\lib\net472\Stride.Core.Assets.CompilerApp.exe” --disable-auto-compile --project-configuration “Release” --platform=Windows --project-configuration=Release --compile-property:StrideGraphicsApi=Direct3D11 --output-path=“C:\Users\Cat\Documents\vvvv\gamma-preview\Exports\MegaPlaza_V0.01\lib\data” --build-path=“C:\Users\Cat\Documents\vvvv\gamma-preview\Exports\src\MegaPlaza_V0.01\obj\stride\assetbuild\data” --package-file=“C:\Users\Cat\Documents\vvvv\gamma-preview\Exports\src\MegaPlaza_V0.01\MegaPlaza_V0.01.csproj” --msbuild-uptodatecheck-filebase=“C:\Users\Cat\Documents\vvvv\gamma-preview\Exports\src\MegaPlaza_V0.01\obj\Release\stride\assetcompiler-uptodatecheck”” exited with code 1.

System.Exception: [AssetCompiler] Unhandled exception. Exception: InvalidOperationException: Two different classes have the same DataContract Alias [CameraInputSourceComponent]: VL.Stride.Input.CameraInputSourceComponent and VL.Stride.Input.CameraInputSourceComponent

I am using a camera into an render texture in stride, is this causing the issue?

I think the camera should be fine.

Do you have two VL.Stride.Runtime.dll somewhere in your scope? The error means that the asset compiler finds the same class twice in the project…

What do you mean by scope? The project is mostly 1 file, the other doesn’t reference stride, so in the dependancies there is only 1 reference. (8.4 KB)
Here is a scene that demos the issue, removing the library gives a different error, but still stride related.

I have the same problem.

1 Like

This is an issue of Stride’s asset compiler. I’ve opened a PR addressing it. Hopefully it gets merged soon and Stride is open to push out another 4.0 release. Or we’ll have to reference a preview version of Stride which is not desirable.

As a side note - the version conflict which crashes the asset compiler comes from the VL.Video.MediaFoundation package. It references VL.Stride with version 0.9.x while latest previews use a higher version.

Sadly I don’t really see a workaround for now.

why can’t we just release a new VL.Video.MediaFoundation package with the appropriate version? or change the nuget reference in a way that it doesn’t install the old VL.Stride nuget, but expects it to be there and uses the latest version.

Trying that just now. But it’s only a temporary fix and will probably break 2021.3

indeed, that uses an older nuget version… but we should in general try to have the packages that ship with vvvv gamma only as design time references. so that the external nugets don’t bring their own core packages.

It’s not about the nuget. The older VL.Stride version is not pulled into the compilation process. It’s about the assembly referencing VL.Stride.Runtime (VL.Video.MediaFoundation in that case). The assembly also stores the version of the referenced assembly. On assembly load the asset compiler tries to find that assembly by name and version, loads it into memory and runs its module constructor which in turn leads to registration of Stride serializers. Since the referenced version is different than what it has already loaded it “thinks” it needs to load and initialize the assembly again by loading the same thing from a different path and initializing it again. That leads to the above mentioned error.

1 Like

Side one, but good one! I just removed MediaFoundation from the project and it builds finally :-)

Just pushed a new version of VL.Video.MediaFoundation referencing 2021.4 of VL.Stride. Upcoming builds (>= 104) will ship that version. Your export should work with those.

1 Like

Hey @Elias, I’ve just checked 104 - there isn’t VL.Video.MediaFoundation inside at all :-)

1 Like

@Rayment you have to install it from nuget with the -pr switch.
@Elias that works for me, thanks!