ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【C#】编译调试问题汇总

2022-03-30 10:00:32  阅读:173  来源: 互联网

标签:Framework C# blog 编译 https -- NET net 调试


一、调试问题

1、System.Reflection.TargetInvocationException 调用的目标发生了异常

这个错误是在没有加上try catch捕捉异常前,跳转到了Main()函数里报错。

加上异常捕获后,报System.Threading.ThreadAbortException:正在中止线程:
解决方案:https://www.cnblogs.com/imstrive/p/5631147.html
 

2、未加载mscorlib.pdb/System.Reflection.TargetParameterCountException 未经处理的异常在mscorlib.dll中发生/参数计数不匹配

delegate声明处的参数数量一定要与调用时传入的参数数量一致!
这个问题编译阶段不会出现编译错误,但运行时就报错了,一定要注意。

http://blog.sina.com.cn/s/blog_6b6bf63d0102y2r8.html


3、无法修改“xxx”的返回值,因为它不是变量

(1)C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量

https://blog.csdn.net/u012169685/article/details/48317577?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

 
(2)无法修改"List.this[int]"的返回值,因为它不是变量

https://blog.csdn.net/Anfeng0228/article/details/80083522


4、当前上下文中不存在名称InitializeComponent

打开当前控件.Designer.cs文件,第一行的namespace名字是否与控件窗口名字一致


5、LC.exe”已退出,代码为 -1

在VS解决方案资源管理器里,把项目文件夹下Properties文件夹下的licenses.licx文件删除,重新编译。
https://jingyan.baidu.com/article/b24f6c822592b686bfe5daac.html


6、CLR无法从COM上下文 0x622b440转换为COM上下文 0x622b5b0

https://blog.csdn.net/zy19901021xy/article/details/84855231

 

 


7、未能写入输出文件“...\obj\Debug\xxx.exe”--“另一个程序正在使用此文件,进程无法访问

如果是偶尔产生的,那么手动删除项目里的obj文件夹,再重新生成即可。

如果伴随警告 “xxx.cs”中的类型与“x.exe”中导入的类型“xxx”冲突。请使用“xxx.cs”中定义的类型,且项目中每个类都如此提示,那么应该是因为在“引用”中引用了项目本身,从引用中册除对所在项目的引用就可以了,同时可以解决错误和警告。


8、MSBuildToolsPath is not specified for the ToolsVersion解决办法

解决办法:32位的机器:在注册表中找到以下注册项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild,删掉以下东西
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\14.0                         
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\TOolsVersions\14.0
    如果是64位的机器,还需要找到以下注册项:
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild
    删掉以下东西
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\14.0                                     HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0
    重新启动IDE,就恢复正常了。


9、不安全代码只会在使用 /unsafe 编译的情况下出现

解决方案资源管理器,在项目上右键-->属性-->生成-->勾选 允许使用不安全的代码


10、属性不可作为 ref 或 out 参数传递

(1)为什么在C#中属性不可作为 ref 或 out 参数传递?

https://bbs.csdn.net/topics/350262475


(2)C#中使用ref 和 out 的一点认识

https://www.cnblogs.com/tangt/p/3914147.html

 

11、项目引用了 DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称

(1)在项目上点右键-->属性-->应用程序-->目标框架-->修改为.NET Framework 4。

而我原来的设置是.NET Framework 4 Client Profile。问题就出在这里。

以下是MSDN给出的提示:

If you are targeting the .NET Framework 4 Client Profile, you cannot reference an assembly that is not in the .NET Framework 4 Client Profile. Instead you must target the .NET Framework 4.

不过也因为如此,当在 Visual Studio 2010 建立新项目时,如果发现 [添加引用] 中没有列出原本应该列出的组件或者引用的其他程序集,在代码中的调用一直提示找不到名字空间时,可以先检查是否是项目的 target framework 设成了 .NET 4.0 Client Profile (例如 System.Web.dll 就不在 .NET 4.0 Client Profile 套件中),若是改成.NET Framework 4就OK了。

(2)检查Dll.net版本与当前项目是否一致,90%不一致。

https://www.cnblogs.com/xdot/p/6266735.html


二、编译器操作


1、打开.sln文件加载项目失败

点击确定后提示缺少.csproj文件。
重新生成解决方案:

 

 

2、VS2013设置类或函数前不显示引用的数量

找到菜单栏: 工具 ---> 选项  ---> 文本编辑器 ---> 所有语言 ---> CodeLens

设置取消启用CodeLens,并保存。


3、引用程序集带有黄色叹号

一般是版本不对应。操作:
https://blog.csdn.net/qq_41135605/article/details/83107886


4、VS3013如何查询该项目是什么样工程类型

解决方法:
在.vcproj文件中搜索Keyword。

MFC Application : MFCProj
MFC DLL: MFCDLLProj
Win32: Win32Proj

 

控制台程序:
用记事本打开.vcproj或.vcxproj文件,在里面查找subsystem。

 


5、VS2008 在文件中按 Ctrl + F 查找,不弹出查找框

选择窗口的重置窗口布局。(大概是弹出的窗口被别的挡住了)


6、工具箱被隐藏

ctrl+alt+x


7、窗体设计器双击打不开

首先把该窗体对应的.cs文件关闭,再双击窗体设计器即可。


8、代码行无法折叠及ctrl+鼠标左键无法跳转到定义的问题

都需要联机安装插件。

(1)代码行无法折叠
    在 Visual Studio 的菜单栏中,选择 “工具(T)”。
    然后选择 “拓展和更新(U)…” 选项卡。
    然后选择 “联机” 选项卡。
    再选择 “Visual Studio 库” 选项卡。
    排序依据保持默认 “最常用”即可, 在右侧搜索栏中搜索 “c# outline 2013” 插件。
    根据提示, 下载安装, 重启之后即可使用 “Ctrl + 鼠标左键” 实现快速查找函数变量类。

(2)ctrl+鼠标左键无法跳转到定义
    操作相同,搜索插件Go To Definition


9、扩展“C# outline 2013”需要的 .NET Framework 版本没有安装的问题

https://blog.csdn.net/wnk1997/article/details/111900945
补充一下,改完那个文件后,是直接双击CSharpOutline.vsix文件开始安装,而不是到VS里安装。


10、Visual Studio无法登录账号

(1)VS2015
提示Microsoft Edge浏览器版本过低。
工具 >> 选项 >> 环境 >> 账户 >> 使用以下方式添加账户并重新进行身份验证 >> 选择  系统Web浏览器。

 
(2)VS2017
提示脚本错误。我电脑浏览器一直用火狐,没有升级IE浏览器。
网上说在那个提示到期的弹框弹出来之前点击
帮助>>发送反馈>>报告问题
在弹出的界面上就可以登录。
但我这样操作直接跳转到了官方网页登录界面,并不是弹窗。
最终还是升级了下IE浏览器。

IE11下载安装

重启生效。


11、VS2013无法折叠所有方法

本来是 右键---大纲显示---折叠到定义,就可以折叠所有方法。
但不知道为什么突然失效。
只有快捷键 ctrl+m+o 可以折叠所有到namespace那层去了。
勉强实现,但还是麻烦(要从namespace展开再翻找)。

 
网上什么去工具箱设置的方法都解决不了。
直接到控制面板程序卸载里找到VS2013右键开始修复就能用,就是比较耗时,一个小时左右。

 

标签:Framework,C#,blog,编译,https,--,NET,net,调试
来源: https://www.cnblogs.com/Mars-0603/p/16075564.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有