• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 408
  • Last Modified:

How to define the path to an assembly DLL in the applicationConfig.xml

I'm working with some software where I can extend the functionality by adding libraries to it.
In order to add the new stuff, I create a library and point to it in an ApplicationConfig.xml that resides in the directory of the executable.

The new DLL can be put either in the GAC (which I have to avoid) or in the directory of the executable, then it works fine. I would like to put my custom assemblies in a separate directory so I need to add the path somehow.

This is the definition I currently have that works with the MyTest.DLL in the GAC or in the directory of the EXE.
<Assembly name="MyTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
      <Module class="My.Namespace.Class.MyTest">
      </Module>
  </Assembly>

The assembly is: MyTest.dll
The class included in this one is: My.Namespace.Class.MyTest

CAVEAT: I'm not sure if this is .NET standard or something custom for this particular application.
If it's not standard, I have to try to get the info from the vendor but I suspect a response might take a while so I try here first.
0
Sharp2b
Asked:
Sharp2b
  • 4
  • 4
1 Solution
 
Gautham JanardhanCommented:
u can hook assembly resolve event of appdomain to do this
0
 
Gautham JanardhanCommented:
AppDomain.CurrentDomain.AssemblyResolve +=
                new ResolveEventHandler(CurrentDomain_AssemblyResolve);


static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            string AssemblyFullName = args.Name;
            //load from the folder u want as

            Assembly assembly = Assembly.LoadFile(assemblyPath);
            return assembly;
        }
0
 
Sharp2bAuthor Commented:
I'm not sure where I could add this code.
My code is not loaded unless the main application can find it as defined in the ApplicationConfig.xml
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Gautham JanardhanCommented:
if winfors then in programs.cs
if WPF app then app.xaml.cs
0
 
Sharp2bAuthor Commented:
Thanks, I probably need to clarify the situation.
I'm extending the functionality of an application that is outside of my control. On startup, this application reads the ApplicationConfig.xml to find out what assemblies to load. One of them being my custom code. None of my code is executed unless it's loaded as specified in the xml file.

The problem is to get my code loaded from a specific location that is not the directory of the exe (where ApplicationConfig.xml is also located) or the GAC. So, I need a way to specify the path to the DLL in the xml file. Maybe this is not standard .NET stuff but something that is defined by the vendor of this application. Then I might have to ccontact their developers to find out if this is possible.

Sorry if I was not clear before
0
 
Gautham JanardhanCommented:
if u dont have acesst to the startup then this soln cant be used..
ApplicationConfig.xml is this deefined by the vendor ?  then u will have to contact them for more info..
0
 
Sharp2bAuthor Commented:
I will do so.
Thanks a lot for your help anyway, and I will accept your solution above as I had no idea about this possibility and I think it can come in handy in other projects later on.
0
 
Sharp2bAuthor Commented:
Thanks!
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now