多个WINFORM项目(多个EXE)共用一个APP.CONFIG

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

  点击每个项目的右键属性——生成——输出——输出路径,这个路径最好是在主项目下建一个活页夹(比如file),输出路径就选择这个路径。

  点击主项目的右键属性——发布——发布位置可选择自己指定的一个地方。安装模式和和设置选择第二项,点击“应用程序文件”按钮,列出应用程序列表,系统必备的就不管了,但是如果是编程人员手动加入引用的DLL文件、exe文件、exe.confige文件等必须把发布状态改为包括(自动)。点击“系统必备”按钮,选择系统必备的组件,有些是默认选中状态,如果选择的是.net FrameWork 2.0 选择安装目位置为第二项,即从应用程序相同位置下载,其它可以根据需要设置。

 

 

如下两个方法是设置和读取Confige

先要添加引用DllConfigDemo.dll

页面顶部需要些using System.Configuration;

 

读取confige:

        private void GetConfige ()

        {

            string t1 = "";

            string t2 = "";

            string t3 = "";

            string t4 = "";

            string configFileName = Application.StartupPath + "//SSM.exe.config";//请根据实际情况修改  app.confige发布后就成了.exe.config文件

            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

            doc.Load(configFileName);

 

            XmlNodeList nodes = doc.GetElementsByTagName("setting");

            foreach (XmlNode node in nodes)

            {

                XmlElement xe = (XmlElement)node;

                if (xe.GetAttribute("name") == "SSMConnect")

                {

                    XmlNodeList nodes1 = xe.GetElementsByTagName("value");

                    foreach (XmlNode node1 in nodes1)

                    {

                        XmlElement ve = (XmlElement)node1;

                        string txtstr = ve.InnerText;

                        if (txtstr.LastIndexOf(';') != -1)

                        {

                            string[] list = txtstr.Split(';');

 

                            for (int i = 0; i < list.Length; i++)

                            {

                                if (i == 0)

                                {

                                    t1=list [0];

                                }

                                else if (i == 1)

                                {

                                    t2=list [1];

                                }

                                else if (i == 2)

                                {

                                    t3 = list[2];

                                }

                                else

                                {

                                    t4 = list[3];

                                }

                            }

                                

                            if (t1.Length > 8)

                            {

                                txt1.Text = t1.Substring(t1.LastIndexOf ("=")+1);

                            }

                            if (t2.Length > 10)

                            {

                                txt2.Text = t2.Substring(t2.LastIndexOf("=") + 1);

                            }

                            if (t3.Length > 5)

                            {

                                txt3.Text = t3.Substring(t3.LastIndexOf("=") + 1);

                            }

 

                            if (t4.Length > 5)

                            {

                                txt4.Text = t4.Substring(t4.LastIndexOf("=") + 1);

                            }

                        }

                    }

                }

            }

      

     }

 

    读取confige:

    private void SetConfige ()

        {

            string t1 = txt1.Text.Trim();

            string t2 = txt2.Text.Trim();

            string t3 = txt3.Text.Trim();

            string t4 = txt4.Text.Trim();

            string constr = "Data Source=" + t1 + ";Initial Catalog=" + t2 + ";User ID=" + t3 + ";Password=" + t4 + "";

            string configFileName = Application.StartupPath + "//SSM.exe.config";//请根据实际情况修改

            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

            doc.Load(configFileName);

          

            XmlNodeList nodes = doc.GetElementsByTagName("setting");

            foreach (XmlNode node in nodes)

            {

                XmlElement xe = (XmlElement)node;

                if (xe.GetAttribute("name") == "SSMConnect")

                {

                    XmlNodeList nodes1 = xe.GetElementsByTagName("value");

                    foreach (XmlNode node1 in nodes1)

                    {

                        XmlElement ve = (XmlElement)node1;

                        ve.InnerText = constr;

                        // xe.SetAttribute("value", constr);

                    }

                }

            }

            doc.Save(configFileName);

            MessageBox.Show("设置成功!");

            this.Close();

    }

 

 

 

   程序中使用app.congfige

   public ConnectionDb()

    {

        string configFileName = "SSM.exe.config";//请根据实际情况修改

        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

        doc.Load(configFileName);

      

        XmlNodeList nodes = doc.GetElementsByTagName("setting");

        foreach (XmlNode node in nodes)

        {

            XmlElement xe = (XmlElement)node;

            if (xe.GetAttribute("name") == "SSMConnect")

            {

                XmlNodeList nodes1 = xe.GetElementsByTagName("value");

                foreach (XmlNode node1 in nodes1)

                {

                    XmlElement ve = (XmlElement)node1;

                    

                    string[] strConfig = ve.InnerText.Split(';');

                    conStr = strConfig[0].Replace("server=", "").Trim();

                    conStr = conStr + ";" + strConfig[1].Replace("database=", "").Trim();

                    conStr = conStr + ";" + strConfig[2].Replace("uid=", "").Trim();

                    conStr = conStr + ";" + strConfig[3].Replace("pwd=", "").Trim();

                }

            }

        }

  

    }

 

发布后再进行打包安装:

打包安装时添加输出路径中的活页夹(file)中每个项目的exe文件,以及主项目的.exe.cofige文件,还有就是添加手动添加的应用dll文件即可。

WinForm配置同步难题:解析Settings.settingsapp.config/exe.config的更新机制差异 本文深入解析WinForm开发中Settings.settingsapp.config/exe.config文件的更新机制差异,揭示配置修改后程序读取旧值的根本原因。文章提供了强制复制app.config、使用生成后事件及自定义配置类等多种实战解决方案,帮助开发者彻底解决配置同步难题,确保应用配置正确生效。 阅读详情

相关推荐

WinForm中Settings.settings和app.config修改后信息不同步到exe.config问题

(推荐)

cgs的博客 687

多个cs-winform项目共用一个app.config配置文件

一个c#大项目下,有好几个小的cs程序子项目,net默认的配置文件是 程序a.exe.config、程序b.exe.config,这样一些本来可以共用的设置,就需要设置好多遍,不便于程序安装部署。 用了同一个配置文件,不让他们分散读了,都去读同一个app.config文件

WinForm配置同步难题:解析Settings.settingsapp.config/exe.config的差异解决方案

本文深入解析WinForm开发中Settings.settings、app.configexe.config文件的差异同步难题。针对手动修改配置不生效的常见问题,揭示了Visual Studio编译时的单向覆盖机制用户作用域设置的优先级陷阱,并提供了强制复制、生成后事件及深度清理等实战解决方案,确保配置同步生效。

qsc901234的博客 338

关于app.config共用的问题

关于在开发中一个项目多个app.config共用的问题。

winform项目app.configexe.config文件

winform项目app.configexe.config文件 winform项目创建后默认会有一个App.config的配置文件,最好不要修改这个文件的内容,编译你的解决方案,会在输出目录中发现生成了一个YourSoft.exe.config(假设你的应用程序名为YourSoft.exe)。下面有几点需要说明:      1:YourSoft.exe.config其实对应的就是你解决方案

快乐人生 8467

应用程序配置文件简单问题:winform的配置文件App.config的问题,真的简单?

应用程序配置文件简单问题:winform的配置文件App.config的问题,真的简单? 文章来源:CSDN社区 - 原文地址:http://topic.csdn.net/t/20040217/00/2741411.html   注意几个前提: 1、和Asp.net的Web.config不同,创建winform应用时并不会默认的创建app.config。 2、如果你选定

meiyu_1212的专栏 926

WinForm读取指定的config文件的内容

config文件的使用 一、缘起     最近做项目开始使用C#,因为以前一直使用的是C++,因此面向对象思想方面的知识还是比较全面的,反而是因没有经过完整、系统的.Net方面知识的系统学习,经常被一些在C#老鸟眼里几乎是常识的小知识点给绊倒。       为什么这么说呢,因为我在网络上查找的资料的时候,经常大部分问题,都是能够找到或多或少的参考资料,但是这些小知识点却很少能够找到...

weixin_33889665的博客 858

C#winform嵌套另一个exe程序

一共有二种方法,也不知道作者从哪里复制来的,先感谢原作者。 首先建立一个程序,加2个按钮,为了区分,界面修改成红色。 第一种: 1.建立一个主程序,加一个panel1,为了区分背景是绿色 2.代码调用 3.所有代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.

故里2130 1万+

WinFormApp.config文件进行加密

最近在做一个WinForm项目,由于采用的是在客户端直接连接数据库的方式,需要在客户端部署App.config,由于使用了Enterprise Library,需要对App.config文件里的connectionStrings片断进行加密处理,搜索MSDN,发现已经有了现成的工具ASP.NET IIS 注册工具 (Aspnet_regiis.exe),可是它只能针对ASP.NET的Web.

Sbangm的专栏 993

c#多项目\应用程序共用一个Config配置文件

c#多个项目共用一个Config配置文件 c#多个应用程序共用一个Config配置文件

C# winform页面多进程打开exe

资源可以在一个winform页面同时加载多个exe到页面,并且可以传参数。

实现WinForm中嵌入外部EXE程序(调用系统api,源码)

实现在自己的winform内嵌入其他人的exe程序,从而可以实现多应用程序的组合,以及对原应用程序的部分功能的附加,但有部分受保护的应用程序则不能被嵌入

C# winForm读取配置文件 App.config

WinForm或WPF应用程序有时候需要保存用户的一些配置就要用到配置文件,而微软为我们的应用程序提供了Application Configuration File,就是应用程序配置文件,可以很方便的访问和修改应用程序的配置。此文中我们以Winform的数据库服务器配置为例。 工具:Microsoft Visual Studio 2013  系统:Widows7 方法和步骤如下:

普羅●米修斯 ——— HelloWorld 1万+

有关winform 配置文件 app.config

   1、和Asp.net的Web.config不同,创建winform应用时并不会默认的创建app.config。     2、如果你选定项目-添加新项-应用程序配置文件,不更改默认的App.config名称,那么你得到一个符合要求的最小的App.config文件。注意,若你生成该项目,bin目录下面会出现一个复制了App.config内容的名字为应用程序名.exe.config的配置文件。  

qianhe_he的专栏 1847

Winform中C#实现读写app.config中的connectionStrings

      由于在winform设计中,常常对datagridview利用向导设置数据源,那么在向导中的数据库连接字符串保存在app.config中。因此,如果涉及到修改数据库连接设置的时候,必须对app.config中的connectionStrings进行读写。1.app.configjin进行读写的类ModifyAppConfig class ModifyAppConfig    

tx_yu的专栏 1万+
上一篇: Excel导出(二)
下一篇: 打印(一)
cuitht
博客等级 码龄17年 4粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值