VS 2010 : Creating New AppDomain To Load/unload Plugin Dll's?
Dec 29, 2011
I'm in the process of trying to create a new appdomain to load plugin dll's, then unload the new appdomain so I can update the plugin dll's without having to exit the main application. There are many, many examples out there and it looks like it should be fairly straightforward, however I'm having a problem where the main application is loading the plugin dll's along with the new appdomain. Of course this is a problem because I cannot overwrite the plugin dll's if they live in the main appdomain. Based on the examples I've seen the code below should only load the plugin dll into the new appdomain, however for some reason it also loads into the main appdomain.
Dim oDomain As AppDomain = Nothing
Dim oSetup As New System.AppDomainSetup()
With oSetup
[code]....
The IDPAPlugin interface is in a seperate project that both the plugin dll and the main application reference.
View 2 Replies
ADVERTISEMENT
Dec 2, 2010
I have an ApDomain that is running a Main Routine, for example:
Public Sub Main() Implements Interfaces.IScript.Main
For a as Integer=1 to 99999
[Code]...
View 3 Replies
Oct 23, 2011
I'm kinda new here, and I didn't know what forum to put this in, so I just put it here. I wanted to load an assembly to an Application Domain, use it, then unload it when I'm done with it. The assembly uses too much memory. The problem is: After I unloaded the assembly, the memory used is not getting freed. I was watching the performance all the time. The available memory increases only after I close the whole application. And that assembly is the only thing that uses a lot of memory in my application. Here's the code I used to load and unload the assembly: How can I free up the memory without closing my application. The memory was suppose to get freed up by simply unloading the assembly that uses it much.
View 2 Replies
Jun 22, 2010
how to create a stable plugin architecture. Stable because I plan on opening up plugin creation to the public but I dont want a sloppy coded plugin to take down my whole application.
So I thought of using an AppDomain per plugin and I did a little seaching. But it seems that even using a temp AppDomain to load plugins and then unloading it once all assemblies have been inspected raises complexity allot and I was planing on using an AppDomain per plugin.
I feel the gained stability (if there is any at all) may be raising the complexity so much the app will never be done..
Is there another way to both create a stable application and at the same time making it extensible?
I cases where the host calls a defined function via say IPluginInterface I guess I can pack a whole lot of try catch blocks around that call but what if a plugin insisted of a timed routine that would run continously without being invoked from the host other that a starting call to StartPluginService or something like that?
If I include a plugin like that in the default AppDomain and it blows up I sure will blow my own foot off right?
View 3 Replies
Nov 25, 2009
Background: I am creating PDF with PrinceXML.I want to adjust the tracking on a paragraph in the PDF. So I select a unique piece of text, match it in the starting document, add a tracking attribute to the text, and re-create the PDF using PrinceXML.I have to delete the current PDF in order to create the revised PDF.When I was using the AxAcroPDF1 control in VB.NET all I needed to do was
1) If File.Exists(sPDFoutputName) Then File.Delete(sPDFoutputName)
Now I am trying to do the same thing but instead of using the AxAcroPDF control I am trying to do it with WebBrowser [Why am I doing this? Adobe places a burden on the developer to maintain a list of who has the program (Reader) to comply with US export law. This is an unacceptable requirement for the program.]
2)WebBrowser1.Navigate(sPDFoutputName + "#" + sPDFargument)
I want to jump to the same page that I was on so set the page to open in the sPDFarguement variable.Now when my program tries to delete as in #1 above I get error message that file is locked/in use.Question: How do I unload/close/unlock file in the webbrowser so I can delete it?The closest idea that I have found that almost works is to copy the xxxPDF to another file: displayPDF and only display the latter.With this I can delete and recreate a new xxxPDF. The problem again hits me when I try to delete the displayPDF. I have also tried to navigate to a dummyPDF but still displayPDF remains locked.
View 4 Replies
Jun 16, 2007
the forum,this is my first message, and I hope that my English is understandable (I'm Italian)....I've developed a WIndows Service using VB.net 2.0; this service executes a routine every 4 hours... I would like load a dll (without entry point) at run time and when the operation is terminated, I would like unload that. I think that I've to create a new AppDomain and to load my DLL into this, but I don't know the good way to do it.
View 9 Replies
Feb 26, 2010
I am calling a Fortran DLL from Vb.Net. I am declaring this in the class and then I am calling the DLL. I made this Fortran DLL from a Fortran Exe code. If I just use the exe code of the Fortran program I get different values than if I use Fortran DLL. First I thought may be there is a delay, so I used Sleep() before the end of the loop. But this does not change the values I am getting. I don;t understand why the results are different in exe and DLL, since I made DLL using the same exe code. I am not sure if the DLL is completely exited before it called again. Below is the code (partial).
Declare Sub abbb Lib "C:Documents and Settingssanjida.tamannaMy DocumentsVisual Studio 2005ProjectsDll53Dll53DebugDll53.dll" Alias "aaa" (ByRef TOL1 As Single, ByRef tt1 As Single, ByRef TEND1 As Single, ByRef t_exposure2 As Single)
[Code]....
View 5 Replies
Dec 1, 2011
I am working on a project where I have to load assemblies (lets call them tasks) at runtime, run the task and then be able to kill off the whole assembly so that the dll can be replaced without interrupting the main application.There are many of these tasks running within the main application,some run sequentially and some run in parallel.Occasionally one or to of these tasks need to be updated and then re-added to the queue. Currently we are stopping the entire application and interrupting the other tasks at whatever stage they are at, which is not ideal.I have figured out that I will have to load each assembly into a separate AppDomain, but loading the assemblies in those domains is proving difficult, especially when I need to actually run the tasks and receive events from them.I have been looking into this problem for a couple of days and have still not managed to get a working proof-of-concept.
I have an Interface for the tasks which includes a 'run' and 'kill' method (subs) and a 'taskstep','complete' and 'killed' event.'taskstep' returns an object to be cached later, 'complete' fires when the whole task is done and 'killed' fires when it is ready to be unloaded.There should also be a timeout on the whole process of two hours and a timeout of 2 minutes on the killed event in case it gets stuck, at which point I would like to be able to unload it, forcing any threads to terminate (which is what 'kill' should do anyway).Each assembly may contain several tasks, all of which should loadable be unloadable.I have no problems loading these tasks as 'plugins' but am lost when trying to both use them and unload them. If I have to create some elaborate wrapper then so be it but is what I need even possible? I have tried inheriting from MarshalByRefObject but I do not even know the assembly fullname unless I load it first, which then locks the file. I have tried loading from a byte array of the assembly. This means that the file is not locked but a copy of it remains in the current appdomain. This will become problematic over the following months / years![code]
View 2 Replies
Jun 23, 2010
Followup to a previous post: It's been determined that Windows Device Drivers cannot be written in VB.NET; that's being dealt with separately.
What I'm interested to know here is if there's a DotNET Framework facility for adding/removing/managing device drivers; for example, can I build a VB.NET application to list loaded drivers, or drivers attached to a specific device, then load or unload those drivers as needed? It never hurts to try. In a worst case scenario, you'll learn from it.
View 1 Replies
Oct 9, 2009
load and unload form just like vb6 in vs 2005 using vb.net. I'm trying this code.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
[Code]....
but when i click the button, nothing happened..
View 1 Replies
May 6, 2012
I have an application in which i need to load a specific keyboard layout only when application is running and a text box (Textbox1) is under focus. I don't have an idea to load a specific keyboarded in VB.NET via programming.
View 1 Replies
May 29, 2009
I am using MDI form and nearly more than 10 child forms.. Here, When i load or unload some forms, it flickers very much.. It is not as much good.. So i need to avoid this.. How to avoid form flickering?
View 3 Replies
Apr 23, 2012
Not sure if this is the correct place for this postWhat I am trying to do is update dll's in my application.Using VB with dotnet 2 (Visual Studio 2010)The Project has a number of Dll's one of each department i.e. Sales is sales.dll... Development is development.dll etc....Each dll has classes/User controls which is used and dispose depending on the section within the application.Once work has been completed with a dll, it put in the deployment area, currently another is program launching checks the file verison and updates as required, before the main application lauches, this works. The exe hasn't needed updated for a long time as all the changes are in the dlls.
What i have been looking at is update method for the dll's dymanically, when not in use, when the dll called into use or disposed of.I have looking at LoadLibrary/FreeLibrary and application.domain. I have been reading loads and tried out some of the examples, with a modified to suit. I am just not getting it.
View 2 Replies
Jun 27, 2009
I'm just wondering, what is the best way to load and unload forms with visual studio 2005. In VB6, I used to use the following at a button click, for example.
[Code]...
View 6 Replies
Jan 15, 2007
Our company has an app that load their components by System.Reflection.Load (By the way, an awesome technique )But, we start to monitorate the application and detect a extrange grow up of memory (actually when our application still all day on air, their allocate memory on task manager is 200 MB plus memory) And all of our components (60 plus DLLs) is load by this technique.My doubt is how to deallocate this assemblies or how the best way to deallocate any assemblies loaded by the System.Reflection.Assemblie.Load method?
View 10 Replies
Apr 26, 2010
My Problem: I am using Matlab COM Automation Server to call and execute matlab .m files from a VB.Net plugin for a CAD program called Rhino 3D. The code works flawlessly when set up as a simple Windows Application in Visual Studio, but when I insert it (and make the requisite reference) into my .Net plugin and test it in the CAD program I get the following error: "Could not load file or assembly 'Interop.MLApp, Version 1.0.0.0, culture=neutral, PublicKeyToken=null' or one of its dependencies. the system cannot find the file specified."
What I've Tried: I am baffled as to why this occurs, but I was able to contact the CAD program's technical support staff and they suggested that it has something to do with their DotNet SDK having trouble with references that are located far outside the CAD program directory. They didn't have any solutions so I tried playing around with copylocal and this made no difference. I tried using other COM libraries and the Open Office automation server works fine, although uses url's instead of requiring a reference. I also tested Excel, which does require a reference, and it returned the error: "retrieving the COM class factory for component with CLSID {...} failed due to the following error: 80040154." This may or may not be related to the issue with the Matlab COM reference, but I thought was worthwhile to share. Perhaps is there another way to reference Interop.MLApp?
View 1 Replies
Jun 16, 2010
VB 6.0
Private Sub Form_Unload(Cancel As Integer)
VB.NET 2008
VB 6.0
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
VB.NET 2008
is VB.Net supported this two events ?
View 2 Replies
Sep 1, 2010
I would like to have the ability to watch my IP camera view via Visual Basic 2010 and VLC plugin.My camera works as a Web Server and it has a 'User Name' and a 'Password' in order to be accessed.I use the code below:
vlc1.addtarget("rtsp:ipofcamera:554mpeg4/media.amp",Nullable,AxVLC.VLCPlayListMode.VLCPlayListInsert,0)
vlc1.play()
And nothing happens.If I replase the "rtsp" with a file path and name to our Hard Disk,the video works fine.How can I use RTSP?How can I store the UserName and Password for my Camera in VB source code?
View 3 Replies
May 11, 2011
have created a new AppDomain with a unique name. But i do not want to store that name during the whole application runtime.So i ask you guys if it is possible to get that created AppDomain by name back.
Sub Main()
AppDomain.CreateDomain("TestDomain")
End Sub
so How do i get the AppDomain with the name "TestDomain" back so i can unload it later without storing that AppDomain globally?
View 9 Replies
Jan 19, 2010
What is AppDomain.CreateDomain
View 2 Replies
Apr 28, 2009
Can you have more than one AppDomain in a process Or more than one process in a AppDomain? What about threads? I was always told there were many threads in one process and one processor has many processes. How does App Domains fit into this picture?To me, it seems like its the same concept with a different name??
View 1 Replies
Oct 27, 2010
I want to create and write to a text file upon Program Load...this is my code (does not work):
Dim path As String = "C:Documents and SettingsAll UsersDocumentsThe Bible Study Tool est.txt"
My.Computer.FileSystem.CreateDirectory(path)
'create and write to settings file
My.Computer.FileSystem.WriteAllText(path, "Some meaningless Text!!!!")
The directory is there, but the text file is not....
View 8 Replies
Jun 12, 2012
I have create setup for my project, when i tried to open the form which contain datagridview on it. It give me this error. Here is the attachment screen shot of the error.How to solve this error.
View 12 Replies
Feb 23, 2012
First, I changed my ILS function to be simply: Public Overrides Function InitializeLifetimeService() As Object Return Nothing End Function
Then I included this in my Program as well as A. As Timiz0r pointed out, Form inherits MarshalByRefObject, so I didn't have to include a Inherits statement on my main class (which already inherited Form). This was the big thing, because I didn't include it originally. Next, I changed my AppDomain setup to be:
Dim _ADomain As AppDomain = AppDomain.CreateDomain(Name)
Dim item As New A
item = CType(_ADomain.CreateInstanceAndUnwrap(GetType(A).Assembly.FullName, GetType(A).FullName), A)
With these changes I can now use separate instances of the DLL COM object as desired.
Original Question I am writing an application that creates a list of objects, each referring to a DLL, and each object placed in its own AppDomain to keep the instances of the DLL from interfering with each other. Taken another way:Program maintains a List(Of A)A is created as an instance of AppDomain using CreateInstanceAndUnwrap Each A refers to mirror.dll, which is including in the application's references
[Code]...
View 1 Replies
Aug 16, 2010
I keep getting a "System.Runtime.Serialization.SerializationException" in my application while loading a not-defined assembly (AKA: Plug-in loading.)Even if I turn Serialization on for that plug-in, then it will fail once again. I've been looking around and couldn't find a good tutorial about it..
So all together: How to load an assembly using AppDomain?
View 10 Replies
Apr 23, 2011
I have done a lot of research on the memory leaks present in the WebBrowser control, and the following thread (http:url]...) told me that the only real way to reclaim the memory eaten up by WebBrowser is to load the control in a separate appdomain.I went ahead and did this, but when I unload the AppDomain that the WebbBrowser is created in (using AppDomain.Unload()), the memory is still not freed. I am looking at the Private Bytes of the process in Task Manager (which is accurate and what I'm interested in) to confirm this. The memory usage stays at 50MB+ instead of its default 5MB.Here is my code:
Form1.vb
Imports System.Reflection
Public Class Form1
Private ad_WBInst As AppDomain[code].....
View 6 Replies
Mar 8, 2011
I have an Addin for MS Excel which needs a singleton to share data amongst modules.Depending on the version of Excel (2003, 2007, 2010), and how Excel was started, it calls my addin from different, unpredictable AppDomains, which prevents the classic singleton approach.Creating a custom AppDomainManager won't work because Excel has already created the AppDomains before the addin is called.
Linking to mscoree to enumerate domains breaks the addin registration process (and I really don't want that anyway); there doesn't seem to be any other way of enumerating, so that isn't an option either.The only solution that I've found is to use remoting. Here's my test rig:
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
' Remeber to add reference to System.Runtime.Remoting DLL[code].....
Once everything is running, access to the singleton takes ~100µS, which is perfect. I can live with the ~400mS the first time each AppDomain is initialised. The problem is at startup, where the remoting invocation takes ~2.5 seconds.
View 1 Replies
Sep 26, 2010
I need to get the information of all the appdomain created in given process?
View 4 Replies
May 22, 2011
I've been working on creating forms and objects through code in the the load event of Form1, truthfully theres a few questions I have under this one category but to start I want to create a button click event that will check what button was pressed then set that button to a variable. I want the event to treat the button that was clicked like it was that buttons click event.Here's a shortened version of my code (Lol if you can call this short):
[code]...
View 3 Replies
Jan 5, 2011
I have a service application that randomly stops without any errors in my log or in the event application log. I believe that there could be an unhandled exception somewhere in the code so I set up the AppDomain.Unhandled event to catch any exceptions. While trying to induce unhandled exceptions I have found that this event is not always fired. I added the following code to my service's Shared Sub Main method (but I orginally had it in the OnStart method and was seeing mostly the same thing)
Dim currentDomain as AppDomain = AppDomain.CurrentDomain
Add Handler currentDomain.UnhandledException, Address of MyHandler
View 7 Replies