在.NET Framework,SQL Server(如果应用程序使用数据库)和水晶报表引擎等客户端安装Windows窗体应用程序时,存在某些依赖关系。我已经使用了以上所有的应用程序。我不想在客户端安装所有这些东西,但我只希望他们进行设置(MSI)并在他们的PC上安装。有没有办法避免这些依赖?
PS:我刚刚在这个部分类似question的答案中读到了sqlite。
答案 0 :(得分:0)
我会挑剔并猜测安装过程实际上并不需要SQL或CR。如果你在安装期间运行代码需要它们,我可能会错,但假设你不是......
因此SQL问题可能只是一个应用程序问题。该应用程序首次运行,并且没有要连接的数据库,因此显示一个用于连接到数据库的对话框。保存生成的连接字符串供应用程序稍后使用。您不可能事先知道用户拥有其数据库的位置,因此这是唯一要做的事情。
对于CR,通常会有一个合并模块,您可以在设置中包含将安装所需文件的合并模块,这可能是一件好事,因为如果您的应用程序引用了CR Dll,那么如果Dlls可能无法加载不可用。另一种方法是找到CR可下载的可再发行组件,并要求用户先安装它。可能存在基于注册表搜索的启动条件,您可以使用该条件来阻止安装启动 - 请参阅搜索目标计算机并在安装项目中启动条件。
如果您的代码不直接依赖于CR,那么再次让应用程序启动并找出CR报告是否以某种方式安装,使用CR表示使用的任何方法。搜索“如何检测CR已安装”可能会有所帮助。