Winform-重定向和"加载报告失败"错误

2020-08-22 02:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有2个winform应用程序。...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有2个winform应用程序。 一个(称为" A")是在VS2013中开发的,并使用CR SP 10。

较新的版本(" B")是在VS2017中开发的,使用的是CR SP 22。

两者均以32位(x86)编译。

应用程序(可执行文件,DLL,配置文件,.rpt文件)位于网络文件夹中。

用户已映射应用程序根文件夹,并运行网络文件夹中的应用程序exe文件。

这可以无缝部署应用程序更新。

客户端1已安装CR SP10(使用.msi),可以从控制面板中进行观察。

现在,我需要客户端1能够执行更新的应用程序B(使用CR SP22)。

为此,我根据配置文件2719939更新了配置文件(应用程序的根文件夹中的App.config和应用程序bin文件夹中的 .exe.config)。

实质上,较新的应用程序B中的配置文件将应用程序重定向为使用SP 22(位于应用程序的bin文件夹中):

<?xml版本=" 1.0"编码=" utf-8"?> <配置> <启动useLegacyV2RuntimeActivationPolicy =" true"> <运行时>


并像这样针对每个Crystal组件。

客户端运行并从较旧的应用程序A弹出水晶报表没有问题。

但是,当尝试运行更新的应用程序时,会出现错误"加载报告失败"。

(当然,我已经验证了报告的存在,路径正确)。

我查看了"对加载报告失败进行故障排除"文档(于2010年创建)。 我排除了任何权限问题,因为我(这是我作为"客户端"的测试机)能够运行旧版应用并显示CR(SP 10)报告。

此外,本文还指出对Temp文件夹的权限可能是一个问题。 TEMP系统环境变量为c:Windows \ temp。

此外,用户TEMP环境变量是c:\ Users \ \ AppData \ Local \ Temp,当我从较早的应用程序中打开CR报告时,我能够看到如何创建Crystal临时文件。 。

据此,我得出结论,至少对于CR SP 10,使用的临时文件夹不是* system * TEMP变量设置的文件夹,而是* user * TEMP变量设置的文件夹。

我现在遇到的问题是,SP 22使用的TEMP变量是什么? 如果CR SP22使用的TEMP变量是* system * TEMP变量,则有可能是权限的原因。但是,如果与CR SP 20相同,则权限是罪魁祸首,因为 我可以调出执行旧版SP10应用程序的CR报告,也许"加载报告失败"错误与重定向有关,而不与权限有关。

谢谢您的帮助。

张柏芝

6条回答
huskylover
2020-08-22 03:24

我运行procmon帮助查看问题的确切位置。

请参见下图。

1)第一个失败的条目与某些策略的"未找到名称"相关。在此之前,策略默认读取为sea,所以我认为这些不是罪魁祸首。

2)然后,第一个看起来像问题的条目是与CrystalDecisions.Windows.Forms条目关联的"未找到路径"。

procmon中的路径显示:

C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_32 \ CrystalDecisions.Windows.Forms \ v4.0_13.0.3500.0__692fbea5521e1304

路径是包含版本名称的错误名称

为什么要尝试在GAC中找到CrystalDecisions.Windows.Forms.dll? DLL位于文件夹的应用程序的bin文件夹中。

一周热门 更多>