Unable To Access AppSettings From App.Config In A Class Library Project
Mar 1, 2012
I am trying to access appSettings using the following syntax and I have used it before in my many website projects but not in a class library project. In this class library project I cannot even access the AppSettings Keys. Is there any way I could access the AppSettings Key from my class? Is the class library project's app.config or project structure behave in a different way?
[Code]...
I have already added Project Reference to System.Configuration and imported in my class. When I run my code it says, "Object not set to an instance of any object".
I have a Class Library project with a appSettings.config file included into the project. The file is not embedded. So I have a ClassLibrary.dll with a appSettings.config beside in the bin.I have another project which is a Web Service. It has a reference on ClassLibrary.dll with a Copy Local=true. When I build the Web Service, the ClassLibrary.dll is brought into the bin of the Web Service. However, the .config doesn't follow.Do I need to do some postbuild event to copy the .config file or there is another setting I can set?
I have a class library (Named ADI), that needs some configuration settings from the project using it (like connectionstring, filesystem locations etc).
I want to define these settings in my Windows Forms/Web Projects App.Config or Web.Config, like other settings.
Here is part of my app.config for my windows forms application:
I was dangerously close to high-jacking another thread, so I thought I should create my own. We make class libraries so we won't duplicate code, but what about settings? I have a large solution that I've created a project in for common material, which includes an app.config. The problem is that a class library isn't an "app" so my functions can't get to the values. How do I get around this?
I have written a vb.net class library that pulls the url for a web service out of my.settings. However, at runtime it no longer bothers to read the class.dll.config file that it made.I want to deploy this dll in different environments and be able to custom choose the relative webservice via the class.dll.config file.
Got a solution with 3 projects, a Web Service, a WinForms (MyUI), and a Class Library (Foo).
MyUI calls methods in the DLL that access the web service. The DLL has project config settings that store the URL of the web service. I compile the solution and it compiles all 3 projects. In the DLL's bin dir it puts the foo.dll and foo.dll.config files. However, in the WinForms bin dir it puts the MyUI.exe, MyUI.exe.config, and foo.dll; it doesn't include the foo.dll.config. When I run the MyUI.exe from its bin dir, it appears to work, and is obviously getting the config settings from somewhere because it doesn't crash and successfully contacts the web service. However, if I copy the foo.dll.config file into the MyUI's bin dir, and change config settings and re-run, it appears to ignore my changes completely.
In the Class Library I setup the config settings through the project properties dialog under the Settings tab. I access them from code using My.Settings.
Added for my quick reference.When you use the following code to retrieve the values from config file in a library project.
Value = Configuration.ConfigurationManager.AppSettings("KeyName") The application will look for this key in AppSettings section of calling assembly and may lead to unpredictable results.
Say I have a Class Library project with its own .dll.config, and a forms application. I want to confirm that it is impossible to reference the .dll.config file from the .exe.config file and still use My.Settings.
For example: I have SomeClassLibrary project, with SomeSetting that I can access through My.Settings.SomeSetting. I also have SomeFormsApp project. This is what I want my SomeFormsApp.exe.config to look like:
From my readings, this seems impossible. I either need to copy the content of SomeClassLibrary.dll.config into SomeFormsApp.exe.config, which is tedious and error prone when copying from multiple class libraries, or I need to use ConfigurationManager, which bypasses My.Settings and its typed, Intellisensed goodness.
What is the purpose of the <Clear > XML element within the <AppSettings> tag in an application's config file?I see it removes previously added settings (see code below), but why would you want to do that? [code]I also understand that when manipulating app settings in code you could clear existing keys, but why have the <clear> XML element?Also, out of habit really, i've been putting the <clear> element before any <add> elements. Do i need to do this, should i not be doing this?
I have built a functionality where I want to back up the database - [Access]. Currently, its working but the user has to specify the file. I used a FileOpenDialog Box to get the file, saved it in a textbox and copied it to another directory. That works good. What I want now is the user doesnt have to know the lcoation of the Database. So, I just want to copy the Database File using the Configuration.Appsettings. He can specify the directory the file needs to be copied to. The Access DB is referenced as follows:
I hear COM here and there and I want to know is COM and a COM dll the same thing, and most important: when I create a Class library project is that a COM component?
I have a class library called Encrypt.dll that I added to my project (that class encrypts strings..). I have a problem that when I drag the app out of the Release folder, it crashes, giving me this error:Could not load file or assembly 'Encryption_Class, Version=1.0.0.0...' or one of its dependencies. The system cannot find the file specified.What am I doing wrong?I added it from the Reference tab->Add->Encrypt.dll
I know you can create a class library in C#.NET and then use that dll in a vb.net project and everything is just peachy. But can you use C++.NET and VB.NET/C#.NET in that manner?
I was wondering is it possible to put forms into a class library project and if so could I use those forms as an mdi child from my main forms app?A bit behind what I am trying to do:I am creating a game which is essentially going to have its own 'operating system' As the user progresses in the game they can 'install' new software into their operating system.I have my 'Desktop' that is an MDI Parent and what I want the users to be able to do it when they have purchased a new bit of software (also in game) the game will connect to my central server download a dll and place it in a directory, that is essentially installing the new bit of software and the game will then pick up that dll and add a new button the Programs list and when the user clicks on that software in the Programs list it will launch the form in the Class Library as an MDI Child of the 'desktop
I've created a class library and it's shared by several projects I'm working on.
I added a reference to the DLL - but it appears to have copied it locally - and that's causing problems when I modify the class library. Seems I have to drop the reference and re-add it.
I'm seeing info on the web about adding a PROJECT REFERENCE but can't seem to get that to work.
What is the best method of sharing a class library with several other projects.
Actually - should all my projects be in one SOLUTION? Is that preferred.
It will be 5 projects all working with the same class library...
In my earlier project I was able to change the connection string during the app settings loaded event and it was successfully. When I try to do the same for a code library project, I am not getting the system.configuration.connectionstringsettings to work. Could you please tell if there is a work around for this, or else it is always better to write the sql code instead of depending on the adapters etc.
Additional information: Clients App is WPF with Vb. Database is SQL Server 2008 Code Lib would only be on server, slq connectiona and data retrieving and saving actions are stored in classes in code lib only. Code Lib would be used with WCF, wcf is used to share the classes only and classes have the data. WCF is hosted as a windows service on server used by NET.TCP
I'm working on a windows form project where the first form displays a menu list made up of custom textbox controls. When the user navigates to a textbox and presses enter the underlying code runs another form and hides the menu form. The form to run and the navigations sequence is controlled by properties I added to the custom textbox. I have done the same with a custom button. Both custom control inherit from their respective Windows.forms controls.
In one of my applications, I decided to make a separate project for a few general classes. However, it started to give me tons of errors that I am having a difficult time figuring out.
I'm not sure if this is the right forum or not but...I've written my first VB.NET 2008 Express Class Library project (addin dll) and now I need to deploy it. I see Windows Form Applications have a Publsh tab (ClickOnce) in the project properties window but my class library project does not. How do I deploy a VB.NET 2008 Express Class Library project?
(VS 2008)I'm using a C# library for my VB.NET project. And the method summary/notes or what they are called do not show in intellisense. Is this supposed to be like that? Or is there something I must do to fix it? And if not, will VS 2010 be able to do this?
EDIT: Still unresolved. Now building library dll + xml file, but how to import the xml file in my vb project? See image: [URL]...
How do I reference the library project when I get this error?
"A project with an output type of class library cannot be started directly In Order to debug this project, add an executable project to this solution which references this library project. Set the executable project as the startup project."
I have downloaded the attached code from codeproject site, i'm new in vb.net, i have some background knowledge in vb6. when i try to run the code the following error message is diplayed:"A project with a output type of class library cannot be started directly"
I made a Class Library project that contains the main classes that my Main Project needs because I don't want to main classes when I distribute my project. I've successfully called and used it in my Main Project. But when I started debugging and stepping through my code which involves calling and using the class I wrote in my Class Library, I noticed that the class' file in my Class Library opens up during debug mode.
how can I prevent the Class Library's files from being opened during my Main Project's debug mode?
I am just testing how to use dll and after googling a lot, I made it work partially...Created new project Class Library, named it myFirstDll and made a Public Shared Sub helloDll to do something. Now since this is my first time, the dll is simply showing the input in a msgbox:
Public Shared Sub helloDll(ByVal msg As String)
If msg <> "" Then MsgBox(msg, MsgBoxStyle.OkOnly, "WE HAVE SOME MSG") Else MsgBox(msg, MsgBoxStyle.OkOnly, "NO MSG") End If
End Sub
After building the dll-file, I started a new project using normal windows forms, named it "useMyDll", I clicked Project -> Add Reference, and added my dll. The program file that I made needed a textbox and a button for using the dll:
Private Sub useDllButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles useDllButton1.Click Dim msg As String = Nothing msg = TextBox1.Text myFirstDll.myFirstDLL.helloDll(msg) 'this will be in msgbox in dll-file End Sub
And when running this I could write something in the textbox and a msgbox with that input would pop up. Really happy with that. My first attempt to make a dll and use it was very successful. Then I thought, what about running the dll from rundll32.exe? It would be handy to make a dll that could be run without my exe. After googling a long time, I tried to add a new button:
Private Sub useDllButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles useDllButton2.Click 'Now let us see if we can open it using rundll32.exe ? Dim msg As String = Nothing msg = TextBox1.Text
[CODE]...
Now the first button still works just fine, but the second button gives some error (translated to english would be) like "missing entry: helloDll" I also tried to open with command prompt, same result.
After googling again I read one place that you can't run a visual basic dll with rundll32.exe, so is this true? Or is there some way of doing it? I read one place that it works if you make the dll be "COM-Visible", but I don't really understand how to or what it means. I tried to open properties, clicked Assembly Information, and "Make assembly COM-Visible", but this doesn't change anything. Then I read somewhere that it has to be in a module to work. Could it be that I need to rewrite some codes and it would work, or would I have to start learning c++ in order to accomplish this?