我的计算机上有一个web.config文件。
我需要在文件中更改和添加很多内容。 (我实际上使用的是我的SharePoint web.config文件)
我可以使用批处理文件执行此操作,如果是这样,我该怎么做。 或者我如何使用VB.NET或C#代码?
任何想法的人?
编辑:我需要创建一个程序来改变web.config,让我说我放在我的桌面上的web.config而不是我项目的实际web.config
此致 艾蒂安
答案 0 :(得分:4)
您可以从C#代码修改它,例如:
Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~");
AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings");
if (appSettingsSection != null)
{
appSettingsSection.Settings["foo"].Value = "bar";
config.Save();
}
其中foo是键,并且显然要设置键的值。要删除值,请使用Settings.Remove(key);
有关OpenWebConfiguration方法的更多信息,请参阅msdn documentation 。
答案 1 :(得分:3)
您想要更改文件的上下文确实会影响您应该如何操作。如果您正在考虑相对频繁地执行更改,但是在管理域中,那么某种命令行工具是有意义的,在这种情况下,我同意JaredPar PowerShell将是一个有价值的工具。
另一方面,如果您发现自己需要在更具程序性的环境中修改web.config(例如,作为安装程序的一部分),那么使用编程技术可能会更有意义。我最近不得不这样做,Linq to Xml证明非常方便。
例如,要打开文档“C:\ foo \ bar.xml”,您可以执行类似(未经测试,目前没有方便的构建环境):
XDocument config = XDocument.Load(@"C:\foo\bar.xml");
然后你可以用API以通常的方式继续。请注意,如果您正在执行管理任务而不是编程任务,这可能会有点过头 - 学习像PowerShell这样的工具有很大的长期优势。
最后,如果您正在从正在使用web.config的程序中修改web.config,并且您没有做任何过于花哨或动态的事情,那么使用内置的{{1} }或ConfigurationManager
可能是要走的路。
答案 2 :(得分:1)
您最好的选择是使用MSBuild脚本和MsBuild Community Tasks XML批量更新任务来更改它
答案 3 :(得分:1)
我个人建议使用PowerShell。这是微软的下一代命令行,它位于.Net之上。它是为了跨大型文件集进行批量编辑等项目而构建的。
答案 4 :(得分:1)
对于SharePoint环境中的web.config更改,您可以使用专门为此任务开发的类。您只需搜索SPWebConfigModification class。
答案 5 :(得分:1)
加载任意.NET配置文件
string configLocation = @"C:\myconfigFile.Config";
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileName = configLocation;
configFileMap.ExeConfigFilename = configFileName;
Configuration configuration= ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
然后使用Razzie's code更改实际的配置设置
AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings");
if (appSettingsSection != null)
{
appSettingsSection.Settings["foo"].Value = "bar";
configuration.Save();
}
答案 6 :(得分:0)
这是我需要做的.......感谢所有帮助!!!
// Read in Xml-file
XmlDocument doc = new XmlDocument();
doc.Load("C:/Web.config");
//SaveControl tag..........................................................
XmlNode n = doc.SelectSingleNode("/configuration/SharePoint/SafeControls");
XmlElement elemWeb = doc.CreateElement("SafeControl");
elemWeb.SetAttribute("Assembly", "SamrasWebOption4");
elemWeb.SetAttribute("Namespace", "SamrasWebOption4");
elemWeb.SetAttribute("TypeName", "*");
elemWeb.SetAttribute("Safe", "True");
XmlElement elemSmartPart = doc.CreateElement("SafeControl");
elemSmartPart.SetAttribute("Assembly", "Machine_Totals");
elemSmartPart.SetAttribute("Namespace", "Machine_Totals");
elemSmartPart.SetAttribute("TypeName", "*");
elemSmartPart.SetAttribute("Safe", "True");
//Appending the Nodes......................................................
n.AppendChild(elemWeb);
n.AppendChild(elemSmartPart);
//Saving the document......................................................
doc.Save("C:/Web.config");