Is there a way to have common Properties file for all the projects of the solution?
I have a console application and bunch of other class librarry files and i want to have only one Settings file for them.
I am not talking about app.Config file. I am talking about Settings.settings file.
Any idea how i can do it?
Also is it a good practice to store configuration settings in the Settings file rather than app.config?
Place the file you want to share across projects in a Solution Folder. Then, in each project, choose to Add Existing Item ..
In the Add Existing Item dialog, choose the common file. Instead of clicking the Add button, click the drop-down arrow on the right side of the Add button and choose Add As Link from the drop-down menu.
If this is for a Settings file, you need to set the Custom Tool property for the file:
If your file is Settings.settings
you can open your project properties and go to the Settings tab and Visual Studio will set this Custom Tool property for you automatically.
Once the Custom Tool is set, you will see a Designer.cs file created underneath your settings file. This Designer.cs file contains generated code to make your settings accessible programatically.
As you can see, the Designer.cs file is also a linked file, and it's physical location will be the same as your settings file.
Alternatively, you can set the Settings to public
instead of internal
.
Go to YourProject->Properties->Settings
The answer accepted above by @quentin-starin is correct, but I had a situation where specifying the CustomToolNamespace came in handy as I already had some project specific settings. By setting the Namespace to something specific, I did not get the autogenerated namespace relative to each project in the solution.