Missing assembly reference Microsoft.IdentityModel.Clients.ActiveDirectory - c#

I'm currently developing a Xamarin.Android application in VS2013.
I want to implement Azure Active Directory in my app following this guide. Then I add Microsoft.IdentityModel.Clients.ActiveDirectory nuget package as described.
Then I want to add an AuthenticationResult attribute, but then I got a missing assemble reference error. Even when I explicitely write (or drag and drop) Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResult.
I looked everywhere for solutions, but none fits my problem. (Upgrade/Downgrade target framework didn't solve the issue)
If anyone has an idea about this, I would be really thankful because I'm getting out of ideas.
Thank you.

Few things to check or try:
Does the Reference to Microsoft.IdentityModel.Clients.ActiveDirectory appear in the References list from your solution?
If it appears, what are the properties, like copy to output, absolute/relative path?
Is it added for all Project configurations (Debug/Release)?

So I found out what was the problem. I had to use a specific version of the package since it's a pre-released version. I had to install 3.0.110281957 exactly then it recognize the reference as I needed.

Related

Reference seemingly not working, no apparent error thrown

I have superficial knowledge on referencing libraries in projects. Usually most of the time a simple 'add reference' and then browsing to the appropriate path, just works. I am following an issue I will try to explain , and show all the approaches I tried to tackle it.
I am trying to use AutoIt. In their website it is stated that simply adding the .dll and using it, is enough to integrate their functionality in visual studio.
I am doing just that but for the moment I can not get my head around what is happening.
AutoItX is a public static class, as also the Run function is the same (public static). After adding the reference I can navigate to the appropriate .cs (if I control click on it for example). So the class AutoItX is not something unknown for the project. Moreover, the function Run indeed exists
however not inside the project itself. AutoItX also needs staff from (dont know if it is important):
The main error is that AutoItX doesnt exist in this context.
I have tried to register the dll, I have tried to add the com reference and remove it, I have tried to move the .cs files inside the project. None of those corrected the issue.
Any help would be valuable. If I missed something and you need extra info, I am willing to provide it. (Latest vs, latest autoit version, .net framework type of project).
Actually the above works.
For future reference.
The reason I did not try it first was, that they propose in their website to reference the autoItX.assembly.dll. This is probably deprecated and does NOT work anymore.
Second, if you have already referenced it , downloading this from NuGet WONT fix it.
Finally, the NuGet package does NOT work with .net CORE but ONLY with .net Framework project
I installed AutoItX.Dotnet 3.3.14.5, my test is no problem.
You can refer to my steps to create a new project to test it.
Right click References=>Manage NuGet Packages=>Browse=>AutoItX.Dotnet=>Install
Running result:

.Net project always rebuilds, not up to date caused by CopyLocal property

No matter what I do my .net Project will always rebuild. I read this Article https://oz-code.com/blog/visual-studio-keeps-rebuilding-projects-no-good-reason/, and I found the CopyLocal problem in my Project.
I got this message: Project 'PROJECTNAME' is not up to date. CopyLocal reference 'D:\...PROJECTPATH...\bin\x64\Debug\System.Net.Http.dll' is missing from output location..
My System.Net.Http.dll is referenced like this (Don't ask me why Private is set twice):
Visual Studio itself shows me it is taken from the "Reference Assemblies":
And as I figured out, Assemblies taken from the "Reference Assemblies" are never copied to the output folder.
Now the problem, if I change the CopyLocal to false it works, but after any NuGet restore it will be set to True again. I assume this is caused by the fact that the HintPath is refereing to a NuGet package where CopyLocal should be set to True.
It only happens with "System.*" references. The Project is .net 4.8 and I'm using the latest VS2019.
Is there any way to prevent this, or did i miss something how I can fix this? This is happening in a quite big solution and it takes forever to build if everything is rebuilt all the time.
I tried ReSharper-Build, and that worked but if possible i would like to stick to the standard.
Thank you for any help.
Is there any way to prevent this, or did i miss something how I can
fix this? This is happening in a quite big solution and it takes
forever to build if everything is rebuilt all the time.
As Hans said, you reference two system.net.http.dll in the same project in different ways so that it creates a build mess, making it impossible to determine the version of the reference. And it turns always rebuild.
In fact, System.Net.Http.dll is just a part of Net Framework4.8 and exists in the Reference assemblies.
All of this points to the fact that this is a public,global DLL that can be used directly in VS without having to install it using nuget. So I'm curious why you're still using nuget to install it.
Note: When you create a new net frameowrk4.8 project and then open reference, and you will find that it already references system.net.http.dll from Reference assemblies. So when you use nuget to install it or use the path of the nuget in the HintPath, it will not change the inital path.
Solution
To solve it, please uninstall the nuget package System.Net.Http.Right-click on the project-->Manage Nuget Packages--> uninstall it.
Hope it could help you.

.NET custom dependencies (no nuget)

So, I'm having trouble adding a git project to my net Core solution, and after spending hours trying to figure this out and being uncapable of finding a solution online, I decided to ask here.
I have a forked github repo (link) in which I modified some files to suit my needs, but I simply can't seem to get it to work with my current project.
The problem I'm having is that normally, when I want a package for a .NET project, I usually simply go to nuget and fetch the necessary dependencies. This is usually very simple and straight forward. But now that I have these modified files, I'm unsure on how to proceed.
I have tried adding it as a submodule, but after I built the project, I got an exception saying that the dll could not be found.
Then I've tried adding the dll itself as a reference, but the ImGui.dll depends on a C dll which couldn't be found then (nor added to the project).
Finally, I've tried adding the csproj as a project of my solution, but that didn't work either
Do you know what am I doing wrong here? Am I missing a key piece or is it just something obvious I'm not seeing? It can't be this hard to get it to work
From the look of it, that repository produces a DLL (output type Class Library). So modify it to your liking, and use the sample program build (ImGui.NET.SampleProgram) to test your changes. Once you're happy, build the DLL project (ImGui.NET) and use the resulting DLL as a Reference in your own app.
In Visual Studio:
Solution Explorer>YourApp>References>Right Click>Add Reference...>Locate your DLL
This means you should also keep track of your modifications to the ImGui.NET project itself, since you may/will be required to maintain this in the future.
Hope this gets you started -- update your question with more specific issues once you're underway.
Edit:
Like #CoolBots mentions, I probably misread your question. Seems like the build depends on cimgui.dll, which you can hotlink from the ImGui repo along with your custom DLL. In fact, the demo app is using cimgui.dll, cimgui.dylib and cimgui.so. Regardless of linking method, you want the files to copy into your build folder. I don't believe subfolder /bin is necessary.
You can find all the cimgui dependencies for various operating systems in the ~/ImGui.NET/deps/cimgui folder.
The demo also utilizes NuGet packages Velrid and Velrid.StartupUtilities.
Depending on your own codebase, you may or may not require these NuGet packages along with the aforementioned class library.

using Zxing.Net Mobile for forms does is not recognize

I am new in Xamarin.Forms and I want use the bar code scaner by Zxing.
however I install the plugin form nuget:
1)ZXing.Net.Mobile for Forms
2) ZXing.Net.Mobile. -> install it since I read somewhere it would help my problem but its not.
as far as I understood I need to add this line: to the Android project in main Activity
However alotugh I install the packages I am still getting an error of:
The type or namespace name 'Andorid' does not exist in the namespace 'ZXing.Net.Mobile.Forms' (are you missing an assembly reference?) ScannerZXing.Android
what can I do? (perofrm clean and rebuild for the project didn't help)
also would like to add that it is added in the referecnes of the projects.
Thanks for the ansewrs.
In my case the reason was that I installed only ZXing.Net.Mobile.Forms. After installing ZXing.Net.Mobile it`s gone. (two libraries need to be installed)
UPDATE: After trying to run the project I discovered that you actually need both Nuget Packages
Previous: Just in case anyone had the same issue as me there are actually two ZXing.Net.Mobile packages both of which by Redth. They both have the exact same description as well unfortunately. I tried the first one which at the time of this writing had the most downloads... however it produced the error as described. By uninstalling and reinstalling the second I resolved the issue:

How to use System.Xml.Linq in Unity C# Script?

working with unity and c# and when I try these line
using System.Xml.Linq;
I get this error
The type or namespace name Linq' does not exist in the namespace
System.Xml'. Are you missing an assembly reference?
So I found online, through a lot of searching, that Linq can cause problems, and you need to manually add a reference in MonoDevelop. So I added a reference there (by right clicking References in the solutions pane, clicking Edit References and browsing for System.Xml.Linq)
Still no luck,
Any ideas?
I think this SO post will answer your question...
https://stackoverflow.com/a/875704/1246574
It's pretty much the same issue you're having.
You can't modify the monodevelop (or visual studio) solution or project manually. Because they are generated by Unity. Even if you modify it, Unity can overwrite your changes when it regenerates the solution files.
The reason you can't use some namespaces is the .net/mono version selected in your Unity project settings.
Search for "API Compatibility Level" in this documantation http://docs.unity3d.com/Documentation/Manual/class-PlayerSettings.html
C'mon people, Stop modifying the generated code files. This is 2013!
from this post, I found that Unity doesn't support .NET 3.5 by default (which is required to use Linq). In the settings Xtro talked about, you can only choose .NET 2.0. Instead, you need to drag the desired .dll file into Unity like a texture. Kinda hackish, but it works. Once again, like Xtro said, there is NO REASON to edit the MonoDevelop settings. They have no affect on the final compilation.
EDIT: See Xtro's answer for an alternate solution. He was able to make Linq work by changing the API Compatibility Level to .NET 2.0 (not Subset).
EDIT 2: I just updated from Unity 4.1 to 4.2 today and got an error that Linq was defined twice. by deleting the .dll, I solved the error. Note I'm still using .NET 2.0 Subset. Looks like they added Linq support by default.

Categories

Resources