第一部分:使得打包的文件可以在C盘写入
内容来源:添加/删除/读写c盘文件——c# - vv彭 - 博客园 (cnblogs.com)
一、前言:
有时候我们为自己的程序添加配置文件,如tet、ini、xml等文件,又或者保存软件运行时的日志
当我们把软件打包后,默认安装在c盘,而配置文件也会跟随生成在安装目录下
此时你会发现,配置文件无法生成/修改
这是因为操作c盘文件需要管理员身份
二、写入C盘方法:
有两种方法可以达到目的,一种是修改安装后的软件属性,另一种是修改打包前的程序属性
(一)方法一:修改安装后的软件属性
步骤:1.右键需要运行的exe文件选择属性
2.选择兼容性目录栏
3.勾选以管理员身份运行此软件
4.点击“应用”,“确定”
注:此方法操作简单,不用重新打包,对只有一次安装该软件比较友好,但如果需要多次安装,就显得很繁琐,每安装一次都要去修改一次,发行给别人不推荐 ;
(二)方法二:在项目中配置管理员权限(相关步骤进行完后,记得生成一下解决方案哦)
(1)来到相关的解决方案,右键选中需要提升权级的项目——>属性——>安全性——>勾选启动ClickOnce安全设置选项。
相关项目的“Properties”会出现app.manifest配置。
(2)双击打开Properties下的app.manifest文件,按照按照注释把requestedExecutionLevel 节点的 level="asInvoker"替换成level="requireAdministrator" 即可。
其中权限解析如下:
- asInvoker 当前权限,可以理解为只有一般用户的权限;
- requireAdministrator 管理员权限,如果运行此程序的账户没有管理员权限则直接不运行;
- highestAvailable 用户所能拿到的最高权限,如果用户不是管理员也会运行。
下图是修改后的截图:
(3)将之前勾选的ClickOnce取消掉:右键项目——>属性——>安全性——>取消勾选启动ClickOnce安全设置选项。如果不取消,会报错误:“ClickOnce 不支持请求执行级别“requireAdministrator”“
(4)注意,生成一下解决方案和项目。
第二部分:如何将C# WInform打包为exe让User在本地运行
第一步:下载扩展Microsoft Visual Studio Installer Projects
1.工具=>扩展和更新=>扩展 => 管理扩展
2.搜索框输入:Microsoft Visual Studio Installer Projects
3.点击下载,然后按着指示安装(此图是已经下载安装完成)
第二步:右击选中项目的解决方案 => 添加 => 新建项目

选中“Setup Project”,点击“确定”
第三步:项目创建成功之后,添加文件
1.右击Application Folder(应用程序文件夹) => Add => 文件
把你需要打包的项目下 => bin => Debug文件夹下的所有文件一个一个添加到Application Folder(应用程序文件夹)中(注:项目不同文件多少不一致,全部添加)
勾选的文件被显示到右侧。(我需要打包的项目里的文件全部添加后如下)
注:文件夹的话虽然在添加的时候有勾选,但是实际未能成功添加到里面。建议在程式里运用如下Code去判断bin下是否有相关(如BackUp)文件夹,如果没有则创建。
if (!System.IO.Directory.Exists(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\BackUp"))
{
System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\BackUp");
}
2.添加卸载程序 (C:\Windows\System32)msiexec.exe
右击Application Folder(应用程序文件夹) => Add => 文件 =>把msiexec.exe文件添加到Application Folder(应用程序文件夹)
添加后如下
右击msiexec.exe文件 => 点击Create Shortcut to msiexec.exe
得到以下文件
点击Setup1(您建的项目)将ProductCode 属性的值复制
点击Shortcut to msiexec.exe => 将复制的ProductCode 属性值 粘贴在Arguments 属性中,然后在最前面加上 /X (注:/X后有一个空格)
.最后将卸载拖动到User‘s Programs Menu(用户的程序菜单,即将快捷方式添加到开始面板中)
(注:如果不需要在开始面板中放,可以不用生成相关快捷方式;或依旧将快捷方式放在Application Folder文件夹不迁移位置,也是可以的。)
3.选择项目=>主输出 => 点击确定
得到以下文件
将主输出文件拖到User’s Desktop(用户的桌面)中,这样可以形成桌面快捷方式的形式。
(注:如果不想生成桌面快捷方式,就不用将其拖拽到“User's Desktop”中,还保留在"Application Folder"中也是可以的)
第四步,更改框架
(注:该步骤只是为了修改采用的框架,如果选用本机默认框架的话,请跳过本步骤,到第五步,
1.右击Setup1(您建的项目)=> 属性
(注:该步骤只是为了修改采用的框架,如果选用本机默认框架的话,请跳过本步骤)
2.点击Prerequisites…
(注:该步骤只是为了修改采用的框架,如果选用本机默认框架的话,请跳过本步骤)
3.选择如下选项 => 确定
(注:该步骤只是为了修改采用的框架,如果选用本机默认框架的话,请跳过本步骤)