Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing values in Web.config with a Batch file or in .NET code

I have a web.config file on my computer.

There are alot of things i need to change and add in the file. (I am actually working with my SharePoint web.config file)

Can i do this with a Batch file, if so how would i do it. Or how would i do it using VB.NET or C# code?

Any ideas guys?

Edit: i need to create a program to alter a web.config of lets say i web.config laying on my deskop and not the actual web.config of my project

Regards Etienne

like image 836
Etienne Avatar asked Dec 22 '22 12:12

Etienne


2 Answers

You can modify it from C# code, for example:

Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~");     
AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings"); 

if (appSettingsSection != null) 
{
  appSettingsSection.Settings["foo"].Value = "bar"; 
  config.Save();
}

where foo is the key and bar the value of the key to set, obviously. To remove a value, use Settings.Remove(key);

See the msdn documentation for more information about the OpenWebConfiguration method and more.

like image 67
Razzie Avatar answered Jan 31 '23 02:01

Razzie


The context in which you want to change the file really affects how you should do it. If you're looking at performing changes relatively frequently, but in an administrative domain, then some sort of command-line tool makes sense, and in this case I'd agree with JaredPar that PowerShell would be a valuable tool.

If, on the other hand, you find yourself in a situation where you need to modify the web.config in a more programmatic environment (e.g., as part of a setup program), then using programmatic technologies might make more sense. I recently had to do such a thing and Linq to Xml proved very convenient.

For example, to open a document "C:\foo\bar.xml" you could do something like (untested, no convenient build environment at the moment):

XDocument config = XDocument.Load(@"C:\foo\bar.xml");

You could then carry on in the usual fashion with the API. Note that this may be overkill if you're doing an administrative task as opposed to a programmatic task-- there are big, long-term advantages to learning a tool like PowerShell.

Finally, if you're modifying the web.config from within the program that the web.config is being used for, and you aren't doing anything too fancy or dynamic, then using the built-in Settings or ConfigurationManager may be the way to go.

like image 40
Greg D Avatar answered Jan 31 '23 03:01

Greg D