Visual Studio Understands but Unity Doesn't? - c#

I've installed the Microsoft.Identity.Client in Visual Studio and can now declare using Microsoft.Identity.Client; within the code. Visual Studio is happy. Unity, however, is not.
Assets\Scripts\AutoKhan.cs(8,17): error CS0234: The type or namespace name 'Identity' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
What must I do to make Unity similarly happy?

I have run into similar issues when using external libraries. Often there is a dll to add to your project because of how Unity compiles your project.
This may be useful.
How to use an external dll

Related

Bitmap not found in System.Drawing in Unity3D

Maybe just an oversight on my part, but I can't make sense of this:
I have the reference to System.Drawing in my project tree within the references
I have the correct using statement using System.Drawing;
I can access other members of this namepace
According to the docs, bitmap should be within this namespace.
However, if I try use a bitmap, I get the following error:
Error CS0246 The type or namespace name 'Bitmap' could not be found
(are you missing a using directive or an assembly reference?)
VS19-IntelliSense suggests to install the package System.Drawing.Common, however if I do that, I get yet another error, stating:
The type name 'Bitmap' could not be found in the namespace
'System.Drawing'. This type has been forwarded to assembly
'System.Drawing.
How can I resolve this issue to actually use the Bitmap class?
Copy the System.Drawing.dll from C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 into your Unity project folder. I put mine under Assets/Plugins/System.Drawing.dll.
This version will contain the Bitmap class. You will still have an error in the editor, but everything will compile fine and you should be able to use Bitmap in Visual Studio.
A problem you may now encounter when using certain types from this dll (e.g. Color, RectangleF) is that Unity gets confused between the 4.0 and 2.0 versions of the dll files. The only solution I found to resolve this is to change Api compatibility Level from .NET Standard 2.0 to 4.0 under Edit > Project Settings... > Player. .
If you choose not to do this, you will find that there is System.Drawing in the C:/Program Files/Unity/Hub/Editor/2020.2.0f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll. Removing this dll will cause Unity to complain until you restore it.
There are solutions suggesting to modify C:\Program Files\Unity\Hub\Editor\2020.2.0f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Drawing.dll or C:\Program Files\Unity\Hub\Editor\2020.2.0f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5\System.Drawing.dll, but I would advice against this as it would impact other projects using the same Unity version.

How to use System.Speech in Unity?

I want to use System.Speech to implement a text-to-speech to my unity desktop application. I don't get how to implement the System.Speech. When I type using System.Speech; in my C# file, it gives error : The type or namespace name System.Speech could not be found (are you missing a using directive or an assembly reference?)
I have copy the System.Speech.dll from C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0 to the asset folder, but it doesn't work.
When I add it using Nuget, it says that it doesn't compatible with any framework.
Can someone explain how to add the reference, to make it works?
Thank you very much.
you cant use this assembly directly in Unity, you have to have a wrapper
you could find a solution Wrapper For unity

Namespace or type 'Twilio' could not be found

I'm trying to use the Twilio API in my unity project but when I try to build in unity I get the error: namespace or type 'Twilio' could not be found (are you missing using directive or reference?)
Now I've loaded the twilio package (v 5.27.2) through Visual studio and it works fine there its just Unity that can't seem to find it.
Can someone explain to me whats going on and how to fix this?
I've provided some screenshots showing the error,
code ,and Unity configuration settings
Your application code is compiled by Unity itself, not by Visual Studio. You need to make Unity aware of any external DLL libraries. To make Unity aware of an external DLL, just place it inside of the Assets directory in your Unity Project.

The type or namespace name 'WinForms' does not exist

I was trying to biuld my project, when I got the following error:
The type or namespace name 'WinForms' does not exist in the class or namespace 'Microsoft.Reporting' (are you missing an assembly reference?)
I have already added this references:
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
using Microsoft.Reporting.WebForms;
And I'm using Visual Studio 2010, with .Net framework 4.0.
How can I fix this error?
Thanks
Even if you added the using its most probable that you don't have a reference to the Microsoft.Reporting dll. You need to add a reference to the Microsoft.Reporting dll in the project that is generating this error. I usually use the solution explorer in VS and right-click on the project -> Add Reference.
Do note that in the Add Reference dialog you generally have multiple sources available
P.S. I say the Microsoft.Reporting dll but because I assume that Microsoft.Reporting.WinForms is a namespace in said dll, but there could be a separate Microsoft.Reporting.Winforms dll

Why I can't use the Mysql data library?

A have a project which have to connect mysql server. For this I have to import the Mysql.data.dll. I did it. And after that I want to run my project the compiler says "Error 2 The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?) C:\Users\User\Documents\Visual Studio 2013\Projects\Project_name\Project_name\Db_Handling.cs 6 7". But the dll among the added references and I imported it with using. And the same happened in vs 2012 and 2013, although I have an other project with this dll.
I (want to )use the 6.7.2.0 version of mysql dll if it help anything.
Problem : as you said you have already added the Mysql dll and referenced required namespaces by using statement, i think the only problem is IDE is not pickingup the latest MySQL references added to the project.
Solution : you can clean and rebuild the whole solution to get the recently added references into your projet.

Categories