20190705_关于winform程序修改程序名后, 报未将对象引用设置到对象的实例
winform做了一个小项目, 其中要用到数据库连接, 字符串,
private string ConnStringSource = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStringSource"].ConnectionString;
就直接用的app.config配置文件
开发完成后, 也没有打包, 直接用debug下的文件发给用户了, 用户试用后, 觉得名字是英文的不方便, 想改下中文名
, 这个图是项目本来的名字;
,这个图是用户修改后的名字;
改完名字之后, 就一直包下图的经典错误:

解决办法是:
将配置文件也对应的改名, 比如你将 PrintBindRFID.exe 修改为 RFID打印.exe , 那么配置文件也得改成 RFID打印.exe.config;
问题到这里就解决了, 那么为什么是这样的呢?
看看System.Configuration.ConfigurationManager.ConnectionStrings 类的源码就知道了;
public static ConnectionStringSettingsCollection ConnectionStrings
{
get
{
object obj2 = GetSection("connectionStrings");
if ((obj2 == null) || (obj2.GetType() != typeof(ConnectionStringsSection)))
{
throw new ConfigurationErrorsException(SR.GetString("Config_connectionstrings_declaration_invalid"));
}
ConnectionStringsSection section = (ConnectionStringsSection) obj2;
return section.ConnectionStrings; //配置字符串从这个方法来
}
} //-----------------------------------------------------------------------------------------
public static object GetSection(string sectionName)
{
if (string.IsNullOrEmpty(sectionName))
{
return null;
}
PrepareConfigSystem();
return s_configSystem.GetSection(sectionName);//从这里来
} private static void EnsureConfigurationSystem()
{
object obj2 = s_initLock;
lock (obj2)
{
if (s_initState < 2)
{
s_initState = 1;
try
{
try
{
//s_configSystem使用这个进行实例化的, 转到它的构造函数
s_configSystem = new ClientConfigurationSystem();
s_initState = 2;
}
catch (Exception exception)
{
s_initError = new ConfigurationErrorsException(SR.GetString("Config_client_config_init_error"), exception);
throw s_initError;
}
}
catch
{
s_initState = 3;
throw;
}
}
}
}
//----------------------------------------------------------------------------------------- internal ClientConfigurationSystem()
{
this._configSystem = new ConfigSystem();
//ClientConfigurationHost看下这个类里面
this._configSystem.Init(typeof(ClientConfigurationHost), new object[2]);
this._configHost = (ClientConfigurationHost) this._configSystem.Host;
this._configRoot = this._configSystem.Root;
this._configRoot.ConfigRemoved += new InternalConfigEventHandler(this.OnConfigRemoved);
this._isAppConfigHttp = this._configHost.IsAppConfigHttp;
string schemeDelimiter = Uri.SchemeDelimiter;
}
//-----------------------------------------------------------------------------------------
internal sealed class ClientConfigurationHost : DelegatingConfigHost, IInternalConfigClientHost
{
// Fields
private ClientConfigPaths _configPaths;
private string _exePath;
private ExeConfigurationFileMap _fileMap;
private bool _initComplete;
private const string ConfigExtension = ".config";
internal const string ExeConfigName = "EXE"; //看到这里就不用再看下去了
internal const string ExeConfigPath = "MACHINE/EXE";
20190705_关于winform程序修改程序名后, 报未将对象引用设置到对象的实例的更多相关文章
- Dynamics CRM 安装CRM程序系统检查界面报未将对象引用设置到对象的实例的解决方法
今天在安装CRM的时候,在系统检查阶段遇到了如下的错误,咋看之下直接是懵逼的 但不要着急,界面上有两个按钮,一个是详细信息,一个是帮助,详细信息不用看了就那一行字也看不出什么,咱们点下帮助看看,定位到 ...
- C#一般处理程序设置和读取session(session报错“未将对象引用设置到对象的实例”解决)
登陆模块时,用到了session和cookie.在一般处理程序中处理session,一直报错.最后找到问题原因是需要调用 irequiressessionstate接口. 在ashx文件中,设置ses ...
- 黄聪:VS2010编辑C#未启动,打开设计视图时报"未将对象引用设置到对象的实例"
通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...
- C#中打开设计视图时报"未将对象引用设置到对象的实例"
通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...
- IIS报错 未将对象引用设置到对象的实例。
在vs中运行正常的项目 ,发布到IIS总是提示 未将对象引用设置到对象的实例. 运行静态页面 html正常,只是打开.aspx页面的时候报错,在确保了数据库,配置,权限均正常的情况下. 错误原因:先安 ...
- AutoMapper.Mapper.CreateMap报“System.NullReferenceException: 未将对象引用设置到对象的实例。”异常复现
>>Agenda: >>Ⅰ.国庆假期问题出现 >>Ⅱ.双休日异常再次出现 >>Ⅲ.排障 >>Ⅳ.异常复盘 >>Ⅴ.修复后监测 & ...
- SQL Sever无法打开链接对话框,未将对象引用设置到对象的实例。(AppIDPackage)
前几天刚做完系统,先装的是SQL Sever2008,装完后还试了一下,OK~没问题,然后就继续装VS2012等一些软件.搞到很晚没有继续试试就睡了,第二天运行SSMS出问题了..(如图 1.0 所示 ...
- WPF前台界面显示“未将对象引用设置到对象的实例”
在做即时通信项目中,使用WPF的MVVM模式,如果在前台绑定VM,经常会显示波浪线,鼠标放上去提示未将对象引用设置到对象的实例,但程序能正常运行,后来发现如果前台不绑定VM,在后台cs里绑定就不会出现 ...
- 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例
服务器无法处理请求. ---> 未将对象引用设置到对象的实例. 简短说下我遇到的问题.webservice部署到服务器上后,访问方法报上面的错误,最终原因为改方法需要操作文件夹,加上了相应的权限 ...
随机推荐
- Docker(4)- Docker 命令大全
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 容器生命周期管理 run sta ...
- java的高并发IO原理,阻塞BIO同步非阻塞NIO,异步非阻塞AIO
原文地址: IO读写的基础原理 大家知道,用户程序进行IO的读写,依赖于底层的IO读写,基本上会用到底层的read&write两大系统调用.在不同的操作系统中,IO读写的系统调用的名称可能不完 ...
- Redis基础—了解Redis是如何做数据持久化的
之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用. 数据持久化 我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的Q ...
- dict和list
一.字典(Dictionary) 1.什么是 dict(字典) 上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合. 而我们在讲列表(list)的时候,我们用了列表(list ...
- 设计师建筑师太难了,既要学BIM、无人机,还要学GIS!
我,一个平平无奇的城市规划专业(建筑专业.路桥专业)大学生,还有一年要毕业,很担心工作以后受到社会的毒打,遂问导师和学长,我要自学点什么技能和软件? 学长A:CAD,SketchUp,PS我都很熟练了 ...
- 内网渗透 day10-msfvenom免杀
免杀2-msf免杀 目录 1. 生成shellcode 2. 生成python脚本 3. 自编码免杀 4. 自捆绑免杀(模版注入) 5. 自编码+自捆绑免杀 6. msf多重免杀 7. evasion ...
- 内网安装python第三方包
内网快速安装python第三方包 内网安装包是一个很麻烦的问题,很多时候,内网的源会出现问题,导致无法安装. 这里给出一种快速在内网中安装第三方包,无需使用内网的源. 外网操作 1.根据开发环境下的所 ...
- mysql上月最后一天,当月最后一天
select last_day(DATE_SUB(now(),INTERVAL 1 MONTH)) #上月最后一天日期 %Y-%m-%d select last_day(curdate()) #当月最 ...
- table表格标签的属性
table标签目前前端主流推荐HTML.CSS.JS三者分离,实际使用table标签的CSS样式代码还是采用table的style的属性和值来进行外观样式控制. 习惯样式: 1 table { 2 d ...
- 变强——GitHub 热点速览 Vol.46
作者:HelloGitHub-小鱼干 网络不通怎么办?Ping 就是你的调试大招,而 gping 则是 Ping 的内功,终端可视化显示 Ping 结果,一眼看明数据接收情况.前端调试大招又是什么呢? ...