@JohnFromGWN said in How do I get dotnet2 and dotnet 3 to play nice together.:
The second type of issue is that dotnet3, which i need, throws a VS 2019 error when I use UI.Subtitle. It doesn't support this?
So, after that long preface, is there a prefix i can use on the imports (VB.Net) or using (C#) or the functions themselves or any other fix to resolve using both dlls in one script?
Yes, there were API changes. Like
GTA.UI.Screen.ShowSubtitle
As you found out, yourself. Took me several hours to convert my old v2 scripts to v3. Annoying, but once you took the hurdle, you'll be glad you did.
However, there is no 'dll issue', running v3 and v2 concurrenly. Nor is there any need for "dotnet2 and dotnet 3 to play nice together." You simply compile against the version you need, like
<Reference Include="ScriptHookVDotNet3">
<HintPath>C:\SteamLibrary\steamapps\common\Grand Theft Auto V\ScriptHookVDotNet3.dll</HintPath>
</Reference
For your old, v2 scripts, you would simly keep referring to the v2 dll. Clearly, you want your new scripts compiled against v3 now. But you can keep both in your scripts directory. In fact, doing so is customary, as keeping the older version operational is useful for legacy reasons (until the older one has fully phased out).
One thing for sure, is you can't use both at the same time, well not without some hacks.
And this is patently untrue (see above).