Upgrade Compiler Issues

Hello,

I recently upgraded to the new Free Version and am seeing some compiler issues, e.g. “AIBaseEditior” being unable to find “AIBase”. I’ve tried deleting the AstarPathfindingProject directory and re-adding the package with no luck. Also note I do not have another file named AIBase, so it’s not a namespace issue.

Is it typical for the package to have it’s own csproj and editor csproj? I use to have the older version in a Third Party directory.

Hi

Are you sure you deleted all the previous folders? If you had the previous version in the ThirdParty directory maybe there is an existing editor folder there still?

Yes, I’ve just verified that there is nothing remaining in the ThirdParty directory. There is only the AstarPathfindingProject directory in the Assets folder.

Are you seeing these errors in Unity or in e.g. visual studio?

I’m mainly seeing them in Visual Studio which is why I was wondering if it is expected that the Astar package is meant to be split into its own csproj and editor csproj.

Matter of fact I don’t have generating csproj files enabled for any package types in Preferences >> External Tools…

Yes. The package uses assembly definition files (see https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html). This causes parts of the package to be compiled as their own dlls. This improves compilation speeds.

I think you’ll have to let Unity generate the csproj files, otherwise things will not stay in sync.

Thanks, I’ll have some more time to diagnose it after work; I’ll update if I find a solution.

I’ve tried all number of things with no luck. Clearing cache, deleting temp and Library, deleting all csproj and the sln, updating from VS 2017 to VS 2019, verifying I have no compile errors in my own code. Nothing helps; I’m going to assume it’s just a bug with the Unity VS Bridge and Assembly definitions.
Unfortunately I’m just going to delete the asm files from the AstarPathfindingProject library for now until I get a response from Unity.

One more question though, is AstarSplines meant to be private? I was using the CatmullRom method in the older version I had to interpolate a point for my entity to follow. I’ve made the class public for now, but I wasn’t sure if I’m supposed to be calling something else?

Thanks.

Did you press the button in Unity to rebuild the cs project files?

AstarSplines isn’t really intended to be part of the public API for the pathfinding package. If you need parts of it I would suggest that you just copy the relevant methods to your own utility class. I think I might have removed a large part of that class in the latest beta too.

Yes, I’ve tried that option as well.

Ok, I’ll go ahead and do that. Thanks again!

Ok some good news.

The assembly definition / dll issue seems to be localized to Unity 2019.3.12f1.

I went ahead and tried opening my project in the beta version 2020.1.0b7 and there is no issue at all.

So just in case anyone else runs into compile issues between references in dlls in Visual Studio, I would advise either reverting to an older version or moving to 2020 if you can afford to.

1 Like

There is a solution for this, I also encountered this problem when upgrading project.

For whatever reason the way the csproj files are generated now by Unity, they set the ReferenceOutputAssembly attribute to false in the project file:

<ProjectReference Include="AstarPathfindingProject.csproj">
  <Project>{C2A65ABE-5C0A-E39C-EED7-D0CC3FF0EB43}</Project>
  <Name>AstarPathfindingProject</Name>
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>

If you change it to true in csproj and recompile in Visual Studio, the errors should go away. This change is strange and I expect it will be reverted in future versions of Unity.

3 Likes

Hey I made an account just to thank you, I’ve been dealing with this for a day and was driving me nuts. Your solution is the only one that worked for me.

1 Like

Glad to hear I could help.

This issue, supposedly, has been fixed with today’s tech release:

2 Likes