VS2022 程序打包过程总结

2022年11月12日更新,VS提供这个工具,越用,越是觉得拉跨。我已弃坑!

推荐使用NSIS,这个打包软件,很多市面上流行的软件都是它打包的。免费里面最强。

可以看看这篇文章,讲的很不错:

NSIS打包教程 Wnform程序打包-罗分明网络博客 (luofenming.com)

权限不足的问题可以通过相同的方式解决

//------------------------依然对VS提供这个工具感兴趣的可以往下看

这篇文章写的比较详细:

VS2010 C/S模式winForm打包部署.详细!_邢海芳的博客-CSDN博客https://blog.csdn.net/xhf55555/article/details/7702212具体过程,看这篇文章,我这边讲一下这边踩的坑。

添加项目输出

选择主项目输出就行,不用把Debug中的文件一个个加进去,vs会自动关联相关dll:

 

 但是,额外的文件还是得自己添加,比如这个sqlite.dll 就是需要和exe放在一起的文件(还有一一些配置或者图片)。

凡是vs并不知道它的存在,无法关联,所以需要额外添加。

系统必备相关报错

 选择系统必备后,无法生成程序,报错如下:

解决方法:

https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net48

 下载,个体小的是语言包,个头大的是运行时

ndp48-x86-x64-allos-chs.exe和ndp48-x86-x64-allos-enu复制到 目录:

C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\

ndp48-x86-x64-allos-chs.exe 复制到zh-Hans文件夹下(必须要,不然依然会失败)

 版本报错

 

这个报错,意思就是,你重新生成了安装文件,但是安装文件的版本和之前是一样的!

那版本号,在哪设置?请看下图:

 如果你将Version从1.0.0改为1.0.1那么上面那个报错就会消失。就可以直接用新版本替换旧版本。

那,新版本检测和移除旧版本的选项,都是根据这个Version来的。

比如,检测更新的话,如果按照的是较低的版本,安装的过程就会提示:

配置文件问题 

现在还有一个需求,更新新版本的时候,不要更新配置文件(因为配置是根据现场的具体情况设置的)

如果是true,会删除之前版本然后再安装。

但是如果你安装是同一个目录Config这个文件夹里的文件不会删除。而且也不会覆盖,会保持原样。除非更新之前,你先卸载了。

打包后安装在C盘权限不足的问题

打包后程序默认安装到C盘,此时自己读取自己配置文件结果权限不足。

VS中右键项目-》属性-》安全性,勾选【启用ClickOne安全设置】

然后这里会多个文件 :app.manifest

改下执行等级:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

修改为

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

 

再次找到项目属性的安全性,去掉【启用ClickOne安全设置】的勾选;

保存后编译,再次打包,安装,即可。

.net6下的做法

.net6下找不到这个安全性的选项。

直接添加,app.manifest, 修改内容和之前一样

修改默认安装路径

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 IntelliJ IDEA 中,可以通过 Maven 或 Gradle 进行 Java 程序打包。下面介绍两种方法: ### 通过 Maven 进行打包 1. 在 IntelliJ IDEA 中创建一个 Maven 项目,或者将现有的 Java 项目转化为 Maven 项目。在 pom.xml 文件中添加以下内容: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 其中,`com.example.MainClass` 是你的程序的入口类的完整类名。 2. 在 IntelliJ IDEA 的 Maven Projects 窗口中,点击 package 命令,或者在终端中运行以下命令: ``` mvn package ``` 这个命令会在 target 目录下生成一个以项目名称为前缀,以 .jar 为后缀的可执行 jar 文件。 ### 通过 Gradle 进行打包 1. 在 IntelliJ IDEA 中创建一个 Gradle 项目,或者将现有的 Java 项目转化为 Gradle 项目。在 build.gradle 文件中添加以下内容: ```groovy plugins { id 'java' } jar { manifest { attributes 'Main-Class': 'com.example.MainClass' } } ``` 其中,`com.example.MainClass` 是你的程序的入口类的完整类名。 2. 在 IntelliJ IDEA 的 Gradle 窗口中,点击 build 命令,或者在终端中运行以下命令: ``` ./gradlew build ``` 这个命令会在 build/libs 目录下生成一个以项目名称为前缀,以 .jar 为后缀的可执行 jar 文件。 无论是 Maven 还是 Gradle,你都可以通过在终端中运行以下命令来运行可执行 jar 文件: ``` java -jar myprogram.jar ``` 其中,`myprogram.jar` 是你的可执行 jar 文件的名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值