C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用

一、简介

本文主要介绍下面几个文件:

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第1张图片

二、app.manifest文件的作用

2.1、设置软件以Windows 管理员身份运行。为什么要这样设置管理员身份运行?因为这样使得自己做的程序更加安全,不会随便被别人更改。

参考  https://zhidao.baidu.com/question/1178730173827327819.html

在Win7系统中,需要管理员身份运的功能实际上是用户帐户控制(简称UAC机制),它有助于预防有害程序对电脑进行更改,防范黑客或恶意软件的攻击。当程序欲对电脑执行重要更改时,UAC即会通知用户,并询问是否许可执行更改

2.2、转https://www.cnblogs.com/lvdongjie/p/5440849.html

通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执行程序

微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC)。当程序执行时需要权限的话,UAC会弹出警告消息:让用户确认是否同意允许这个程序改变你的计算机配置,windows需要得到你的许可才可以让程序继续执行下去。


通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执行程序。

方法如下:

打开vs2005、vs2008等工程,在【解决方案资源管理器】里查看是否有app.manifest这个文件,如果没有的话,通过以下方法创建:
方法1:
1、在【解决方案资源管理器】右键工程名称选择属性;
2、在弹出的该对话框中,选择【安全性】选项卡。
3、勾选【启用ClickOnce安全设置】,并选中【这是完全可信的应用程序】。
4、保存工程,这时候app.manifest就自动创建了。

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第2张图片

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第3张图片

打开app.manifest把默认的配置修改一下,通过代码的注释,可以知道需要修改的节点是【requestedExecutionLevel】
C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第4张图片

asInvoker : 如果选这个,应用程序就是以当前的权限运行。
highestAvailable: 这个是以当前用户可以获得的最高权限运行。
requireAdministrator: 这个是仅以系统管理员权限运行。
找到
把其改为
这时候修改完成,按下F5进行调试,通常会收到如下的错误提示:【ClickOnce 不支持请求执行级别“requireAdministrator”】。
事情好像发生了相互矛盾,上面开启【ClickOnce】便自动创建了app.manifest,现在修改了app.manifest却提示:ClickOnce 不支持请求执行级别“requireAdministrator”。
解决方法是:只要把【启用ClickOnce安全设置】不勾选就可以了。
如果操作步骤正确,按下F5进行调试,会弹出如下的提示框,VS具有提升的权限。

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第5张图片

这样我们编写的应用程序在运行后,就会首先弹出这样一个提示框 , 点【Yes】后,程序才可以继续运行,并且获得系统管理员的权限。
方法2:
为工程项目添加一个类,应用程序清单文件(app.manifest)。
C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第6张图片

然后可以看到app.manifest的位置不在Properties属性里了,变成在引用里了,其节点内容也少了一些。

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第7张图片

剩下的方法和上面相同。这样跳过了【启用ClickOnce安全设置】这步,直接执行,不会出错了。

三、AssemblyInfo.cs文件的作用

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

https://blog.csdn.net/zhaoyuqings/article/details/77480727

1、查看版本信息

1.1、你可以右击——属性——应用程序——程序集信息,查看软件的版本信息:

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第8张图片

 1.2、你可以右击项目生产EXE文件,查看详细信息:

C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用_第9张图片

2、读取版本信息,给他类使用。

四、Resources.resx和Resources.Designer.cs文件的作用

4.1、https://zhidao.baidu.com/question/151625754.html

* resx文件是资源文件,里面定义了你程序需要用到的字符串、图标等。单独提出一个文件来是为了方便以后的多语种版本本地化(如果需要的话)。

4.2、https://blog.csdn.net/microcosmv/article/details/52534613

Resources.designer.cs 存放窗体的一些控件页面等肉眼看见的一些东西和相关的配置信息之类的一些东西;

Resources.resx是该窗体使用的一些资源信息,例如使用了哪些资源,存放位置等等

4.3、(重点)https://www.jb51.net/article/101845.htm

五、Settings.settings和Settings.Designer.cs文件的作用

往后再看:

https://blog.csdn.net/zxd9790902/article/details/52119340

https://www.cnblogs.com/zhuyingchun/p/6592967.html

https://blog.csdn.net/wqq1027/article/details/84873014

你可能感兴趣的:(----------,【C#.基础】)