C# - Loading An Assembly Using Assembly.LoadFrom() As The Assemblies Are Located In A Different Path?
Apr 2, 2012
I am loading an Assembly using Assembly.LoadFrom() as the assemblies are located in a different path from Application Base directory.
Dim oAssembly As Assembly = _
Assembly.LoadFrom("C:\MyFolder\" + ddlXlate.SelectedItem.ToString() + ".dll")
And I consume a Type from that assembly without any problem:
oXML = CType(oAssembly.CreateInstance(sBaseType + ".XlateContainer"), _
XlateBase.XlateContainer)
However, the problem occurs when I try to use a Type from this assembly from within another method like the one below:
oComboBox.DataSource = _
[Enum].GetValues(Type.GetType(sType + "+ItemEnum," + sAssemblyName))
sAssemblyName is the one I loaded using LoadFrom() actually. After it said it cannot find the assembly, I used AssemblyResolve event which solved my problem :Subscribing AssemblyResolve event :
AddHandler AppDomain.CurrentDomain.AssemblyResolve, _
AddressOf MyResolveEventHandler
Event Handler Method:
Private Shared Function MyResolveEventHandler(ByVal sender As Object, _
ByVal args As ResolveEventArgs) As Assembly
Return Assembly.LoadFrom("C:\PSIOBJ\" + args.Name + ".dll")
End Function
And I thought maybe the error occurs because it cannot find a dependent assembly defined in assembly manifest file I loaded using LoadFrom() already but when I checked the args.Name, I saw it was trying to load same assembly and after that it worked without any problem. So basically a type in the loaded assembly cannot be found before the event adding change.
My old code was using AppDomain.CurrentDomain.Load() and Assembly.Load() methods and they were working fine without the AssemblyResolve event. I was able to reach types in dynamically loaded Assembly from every where within the same AppDomain.
LoadFrom() can find dependencies automatically within the same requested assembly path and that couldn't be problem as everything this dll needs was there. So at first it looked like a AppDomain problem to me as it looks like it seems it can reach assemblies from Load context instead of LoadFrom context and I am now using LoadFrom context.But now it seems I should pass oAssembly instance evertwhere to use any type from the loaded assembly?Doesn't it load the assembly where I can reach it everywhere (same AppDomain) using simple Type.GetType(...) method?
View 2 Replies
ADVERTISEMENT
Oct 3, 2007
I am working on a program that requires me to load 2 dll at runtime.My code is as shown below:
View 2 Replies
Sep 25, 2010
AFAIK, there're 3 methods to load an assembly into a AppDomain:
Assembly.Load()
Assembly.LoadFrom()
Assembly.LoadFile()
The LoadFrom() method takes the assembly filepath as its argument, but the filepath is merely providing the assembly identity information as a clue to the CLR. The LoadFrom() method still internally calls Load() with that identity information. So it is quite possible that LoadFrom(filepath) will load a totally different assembly from the one specified by the filepath. But the tame LoadFile() method will just load the assembly we specified.
I am wondering why do we need the LoadFrom() method? It adds nothing but confusion and pitfall. Is there any scenario that only LoadFrom() is applicable?
View 3 Replies
Oct 9, 2008
I've got an exception when I deployed my application: "the located assembly's manifest does not match the assembly reference" What I remember is changing the project name from the previous source code, does it affect that much?
View 1 Replies
Nov 25, 2011
I have the below code in a .Net 4 Winforms app which loads an assembly. All files are on a C:. There are numerous DLL's which work fine but two error with the following: [code]
View 3 Replies
Jul 31, 2011
I create a .net dll on the fly with codedom then I load it with Assembly.LoadFrom like this:
Private Sub Test()
Dim ASM As Assembly = Assembly.LoadFrom("test.dll")
'Do some stuff with the loaded assembly...
[code]....
View 1 Replies
Jan 5, 2010
I am loading an assembly using LoadFrom method on a file located in another folder. The assembly is called VisualCronAPI.dll. The assembly that I load has references to another assembly (VisualCron.dll) which contains some general type definitions used in VisualCronAPI. The file VisualCron.dll resides in the same folder as isualCronAPI.dll.When using LoadFrom I see in the output that VisualCron.dll is loaded. I am able to retrieve all methods in VisualCronAPI that uses parameters from VisualCron.dll. I am able to see parameter values However, when trying to create a Type using the following code I get an exception:
Dim t As Type = assem.GetType("VisualCron.NetworkCredentialClass, true)
Exception: Could not load type 'VisualCron.NetworkCredentialClass' from assembly 'VisualCronAPI, Version=1.0.3.32487, Culture=neutral, PublicKeyToken=55f7a52402de1c04'.
[code].....
View 2 Replies
Dec 28, 2005
When running setup to install published program, the following message occurs: System Update Required: Unable to install or run the applicaiton. The application requires that asssembly CrystalDecisions.CrystalReports.Engine Version 10.2.3600.0 be install in the Global Assembly Cache (GAC) first. This version is listed in the references of the program and in my mind, be included in build. How do I get by this error?
View 23 Replies
Apr 18, 2012
When running setup to install published program, the following message occurs: System Update Required: Unable to install or run the applicaiton. The application requires that asssembly CrystalDecisions.CrystalReports.Engine Version 10.2.3600.0 be install in the Global Assembly Cache (GAC) first. This version is listed in the references of the program and in my mind, be included in build. How do I get by this error?
View 2 Replies
Dec 4, 2009
I have recently upgraded an VB6 project to vs2008. I was almost finished when the following error occured. Unable to emit assembly: Referenced assembly AxInterop.MSFlexGridLib does not have a strong name Prior to this error appering, I tested my app several times and it was fine. Only after publishing it did the error appear. I have tried all solutions I could find, but nothing helps. I have read [URL]
View 1 Replies
Jun 17, 2009
I receive this error as "Assembly Load Error" whenever adding a form or other object that has to be inherited.
"Unable to load assembly. Ensure that the file is a valid .net Framwork assembly"
View 1 Replies
Jun 1, 2011
I'm wanting to include a system tray icon in my WPF project, and found this resource:[URL]..which looks like it will work beautifully, but it's written for C# and I'm using VB.net for this project. I downloaded his project and built the notifyicon as a DLL, then added as a reference to my project.
It throws up an error: Unable to emit assembly: Referenced assembly 'Hardcodet.Wpf.TaskbarNotification' does not have a strong name So I'm trying to figure out the best way to proceed. Do I need to strong name it, or is there a better way to do this?
View 2 Replies
Jun 25, 2012
I have created several DLL (.NET) libraries that are used in several projects. In these DLL libraries I want to know/retrieve which assembly (EXE) calls/uses the library, so if possible I want to know info like assembly name (EXE), strong name, version number, etc.
NB: Examples may be in C# or VB. I use both languages.
View 2 Replies
Apr 7, 2009
I have written a .net assembly which plugs into to a third party COM application. The .net assembly is COM visible to the third party application. However this .net assembly references other regular assemblies. If I put these assemblies in the GAC the COM visibile assembly sees them without a problem. However for various reasons I do not want to put them into the GAC but I cannot get my COM visible assembly to see the other assemblies when they are in other locations. I have tried putting them in the same directory as the COM visible assembly. I have tried putting them in the same directory as the third party app's exe but neither of these work.
View 5 Replies
Aug 3, 2009
I am getting a
"Method not found: 'Boolean MyCompany.LibraryAssembly.SomeFunction (System.String)'"
Exception/error when running a VB.NET console application. The method is part of an external assembly and it is definitely in the assembly. The error only occurs at runtime when I go to enter the function that calls the method. I have the assembly referenced by my project and I am not copying it locally. Intellisense shows no errors, and neither does the compiler. I am loading the assembly statically not dynamically. I reference the from a local folder (not the GAC) although the same version is also available from the GAC.
View 5 Replies
May 14, 2009
How do I get the path of the current assembly? I need to get data from some paths relative to the location of hte current assembly (.dll).
I thought someone told me to use the reflection namespace but I can't find anything in there.
View 3 Replies
Jun 18, 2008
i am writing a simple games client using an XNA 2.0 engine to play games. The games are written in dll files and the client uses the assembly.loadfrom method to read and execute the games accordingly...Now this all works fine on my computer and my laptop. However when i give it to my friend he gets this error and the dll doesnt load - "Unable to load one or more of the requested types. Retrieve the loader exceptions property for more information"
View 1 Replies
Dec 20, 2011
I now have a need to dynamically load a dll into my application and I've found the reflection/assembly information and it's fairly easy to implement so I thought I was on my way. However, I quickly found out that I'm only able to use 'shared' methods. What I was originally thinking was I could have one shared method 'library.beginprocess' and then that would make all the necessary calls to the other methods, but this doesn't work unless all the other methods and class level objects are also shared.
I feel like I'm missing something or somethings just going right over my head. I've looked at many, many sites and examples, but I've only run across examples that expose 1 method,[URL]..which explain how to implement a plugin architechture, which I have not tried yet, but maybe would allow me to keep my class structure the same without having to make everything shared?
View 14 Replies
Oct 8, 2009
How do I get the full file system path to my DLL? I have found a number of calls/properties for "Name", "FullName" etc. The closest I have come is to call Me.GetType().Module.Assembly.GetName().CodeBase. But that string has stuff appended to the front of the actual filename. Plus I don't know if a codebase is always available (say if I don't do "regasm /codebase" on my assembly.I simply want something like "c: empmyproject.dll". That is, what GetModuleFileName would return. Surely I don't have to call Marshal.GetHINSTANCE(Me.GetType().Module).ToInt32()) and then directly invoke the Windows GetModuleFilename API for something so basic.ps. I always wonder why there is an "Alert me" check box at the bottom of the post page. Never been alerted although it is always checked (my profile has my e-mail address).
View 4 Replies
Apr 25, 2012
I have 1 exe and 1 dll. The dll (ClassLibrary1) file is located in the root of a website. In the dll I have a UserControl that populates with data its controls, from a database that is on a website too. The end user gets the exe file. This exe loads the dll and displays the UserControl1 on the form. This is how i load the control from inside the dll (located on the web site), on my form (exe file).
Private _dll As String = "http://www.site.com/ClassLibrary1.dll"
Private _class As String = "ClassLibrary1.UserControl1"
Private WithEvents cont As UserControl
[code]....
The error is "Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."Note that if i dont load the usercontrol from the web and instead have it locally, there is no problem. The data are fetched from the database (db is on the web) with no problem.The problem seems to be that the loaded assembly from the web (the usercontrol1 inside the dll) has no permission to access anything. I am not trying to access stuff from the user's pc (like file IO), but access a database located on a web server.
View 3 Replies
May 31, 2009
When ever I finish simple programs no matter what it is and i click to debug it it comes up"Error while trying to run project:could not load file or assembly"project name" or one of its dependencies.the module was expected to contain an assembly manifest"
View 4 Replies
Apr 21, 2011
sorry for my English, I don't speek well... I need to compile assembly in memory, that can compile another one. There is a form with one button. Here is a code of the form
Imports System
Imports System.Threading
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Collections
[Code]...
View 1 Replies
Jan 14, 2010
Since, it's possible for anyone to name an assembly starting with 'System', checking for 'System' is not a satisfactory solution.
Alternatively, if that's not possible, how about checking the modules in an assembly?
View 3 Replies
Jun 20, 2010
I am building a dll-Assemby A which references another Assembly B. Assembly B is strongly named and installed in the GAC of my development computer. An other computer will not have assembly B installed in the GAC.
Question: If i handle strongly named assembly B like a private assembly and copying it into the bin-directory by specifying local copy = true in the properties-window, will the programm run on the other computer?
View 1 Replies
Oct 8, 2009
One of them is giving us trouble in only 1 spot out of the 4 spots we use it at:The trouble spot is a windows form project that uses reflection to dynamically load some DLLs that run long running processes. One of these long running processes is an agent that relies on one of our vender DLLsWe're getting the missing assembly exception at the point where we first enter a function that references the library. I already checked the silly things such as if we had forgotten to move a reference from the old version to the new version, but that's not the case. I also checked the bin directory of the project and the assembly is there.
View 3 Replies
Mar 11, 2010
Assume a .NET class library code that, for example, writes to the Windows registry. Then this code has problem to run over internet, because default Internet policy does not give access to write to the registry.By adding a RequestMinimum statement in the assembly we can specify that the code requires permission to write to write to the registry. This will not alter the fact that the code does not have the permission, but will stop the assembly from loading; the runtime will throw a System.Security.Policy.PolicyException and identify the permission that is required.Do you now any other examples of using evidence, security policy and permissions (the key elements of code-access security) to prevent an assembly from loading on a web server?
View 1 Replies
Jul 20, 2010
We have upgraded our project from Visual Studio 2008 to Visual Studio 2010 without any issues until now. Our project contains a folder call Libraries which contains different versions of Oracle ODP.NET DLL's as well as different versions of Telerik DLL's. Our project contains references to one of the versions of each. The problem is once we remove the reference and re-add it by browsing to the new version, again inside the Libraries folder inside the project, it adds the reference, but to the same version we just removed. We can even copy the DLL to our desktop, remove the reference and add to the new one on our desktop and it still will point to the Libraries folder version???. The only we we can actual change the reference to the new DLL is by manually changing the path in the .vbproj file, which is obviously not going to work for us. The same behaviour worked perfectly in VS 2008. We switch our references quite often, when new versions come out, but also far more often to QA different versions of ODP.NET and Telerik Control DLL's, so manually editing the .vbproj file is becoming quickly cumbersome. If I browse to a specific version at a specific path, Visual Studio should ALWAYS do what I'm telling it to do..
I did some seaching and came across a few other people with the same issue. This better not be as designed and if it's a bug, which I believe it to be, when will it be fixed?[URL]..
View 14 Replies
Sep 20, 2011
Probably a dumb question, but can you write a unit test project in one language to test against another project in a different language?I'd like to translate one of our VB assemblies into C#, but want to build unit tests to verify the results. I've tried to set a unit test project up to do this, but I can't seem to access the VB code within a unit test... I can't figure out if I'm just missing/doing something stupid, or it really isn't allowed.
View 2 Replies
Feb 26, 2011
What does [String] mean in VB.NET?
Dim assem As [Assembly] = [Assembly].GetExecutingAssembly()
Dim assem As Assembly = Assembly.GetExecutingAssembly()
View 1 Replies
May 25, 2009
I am writing a program and I want the program to support plugins. I created an interface that the program must implement. I am using the following code from my main program to call the plugin:
Dim asm As Assembly = Assembly.LoadFrom(ff.FullName)
' Get the type
Dim myType As System.Type = asm.GetType(asm.GetName.Name + "." + asm.GetName.Name)
' If the type is null then we try again without the root namespace name
[code]....
I set this property from my main program and everything works. Except, after a while, m_PanelObject gets set to Nothing for some odd reason. I'm not setting it to Nothing anywhere in my program and there is no place in the plugin code that sets it to Nothing.
View 1 Replies