ClickOnce-CrystalReport的DLL如何不放到到编译后资源中

2023-12-07 17:18

本文主要是介绍ClickOnce-CrystalReport的DLL如何不放到到编译后资源中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CrystalReport有个运行时组件,如果你是ClickOnce的话,客户端运行的时候需要先安装这个运行时组件。

一般做法是做一个setup.exe,然后用户通过主页的安装按钮,来下载并安装这个setup.exe。

setup.exe会打开WindowsInstaller,然后下载并安装这些需要的组件,比如

.NetFramework

.CrystalReport运行时组件 等

 

我今天要说这个编译时,不把CrystalReport的DLL给放到到编译后资源文件里,因为

1,这个会导致编译后资源文件变大

2,本来客户端已经安装了运行时组件了,实际上不需要这些DLL

 

下面来说说这些内容:

1,setup.exe打开的WindowInstaller都会下载并安装的组件,在哪里设置

右键Project,点击 属性,然后点击 发行,然后点击 必须组件 这个按钮(如图1),打开必须组件窗口(如图2)

<图1>

 

<图2> 我这里面需要 .NetFramework4.8和CrystalReport 两个组件。

 

这样,在主页点击按钮,去执行setup.exe的时候,就会先打开WindowsInstaller,下载并安装这两个组件了。

 

2,编译CrystalReport的DLL问题

不想把这个多余的DLL给放到编译后资源里,需要修改DLL的copy local 设置为 False 就可以了。

 当然,需要把所以DLL都设置一遍,不要漏了。

 

 

设置之后呢,在上面图1中 应用程序文件 按钮里面,确认一下是不是 公开状况 变更成了 必须组件(自动) 了。

如此,在编译的话,就不会把DLL给放到编译后资源里面了。

<图3>

 

后记:这个local copy属性是干什么用的呢?

好像是把DLL给拷贝到GAC文件夹里用的。

然后,因为不想把DLL给放到编译后资源里,可以在图1中 应用程序文件 按钮里面,手动把CrystalReport 公开状况 变更成了 必须组件 ,就可以了。

 

但是,local copy为True的话,  ※因为是默认为True,一般也没人改它,所以很可能是True

因为CrystalReport的DLL的特性----即,

64位的运行是组件,实际上内部使用的是32 位DLL

会导致

・64位应用程序,并且安装了64位CrystalReport运行组件,

・点击setup.exe的时候,因为会看GAC里有没有DLL,没有的话需要拷贝过去,于是出现下面图4的错误,让你安装32位的CrystalReport组件。

 

<图4>

这篇关于ClickOnce-CrystalReport的DLL如何不放到到编译后资源中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466688

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、