T4 同解决方案下分别读写不同项目下的AppConfig和WebConfig

来源:互联网 发布:linux 流程图工具 编辑:程序博客网 时间:2024/05/29 18:28

首先为了能读写webconfig,需要引用System.Web.Configuration;

当然读取appconfig 需要有System.Configuration;


<#+private void WriteWebConfig(string webProjectName){string appPath = Path.Combine(Host.ResolveAssemblyReference("$(SolutionDir)"), "GrassInfo.WebFramework.Data","App.config");    var configMap = new ExeConfigurationFileMap { ExeConfigFilename = appPath };    System.Configuration.Configuration econfig = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);ConnectionStringsSection appConnSection = (ConnectionStringsSection) econfig.GetSection("connectionStrings");    string path = Path.Combine(Host.ResolveAssemblyReference("$(SolutionDir)"),webProjectName);    VirtualDirectoryMapping vdm = new VirtualDirectoryMapping(path, true);    WebConfigurationFileMap wcfm = new WebConfigurationFileMap();    wcfm.VirtualDirectories.Add("/", vdm);    System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");    ConnectionStringsSection connSection = (ConnectionStringsSection)config.GetSection("connectionStrings");    foreach (ConnectionStringSettings item in appConnSection.ConnectionStrings)    {if (connSection.ConnectionStrings[item.Name]== null){connSection.ConnectionStrings.Add(item);}   else   {        connSection.ConnectionStrings[item.Name].ConnectionString =item.ConnectionString;       }     }    config.Save();    }#>



0 0