如果您正在开发 AX 报告,在部署时可能会很麻烦,而且很多时候不是您的代码而是环境。
核心错误可能是准确的,但原因是麻烦。编译后的业务逻辑程序集应位于报表服务器上(默认路径)C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\CustAgingReport.BusinessLogic.dll
我假设由于错误无法成功编译和部署您的错误。
但此错误可能会产生误导,因为我已经看到真正的原因是由于具有多个特定对象层,我建议您检查与报告关联的每个主要对象(Dynamics Project、C# Business Logic Project ,相关的 C# 业务逻辑项目 [i.e. SrsDrillThroughCommon])首先检查每个对象存在于哪些层。
如果 Visual Studio 位于错误的层,在编译过程中会发生什么,它无法看到存在于另一层中的关联代码,从而导致依赖对象的编译失败。拥有一个包含不同层对象的报告不一定是问题,它只是确保您在编译时单脚站立并旋转正确的方向。
首先,在 AX 中仔细检查对象,然后尝试使用指向所有对象所在层的 .axc 文件打开 Visual Studio。要执行此操作,请参阅 https://docs.microsoft.com/en-us/dynamicsax-2012/developer/how-to-open-visual-studio-with-a-specific-configuration?redirectedfrom=MSDN。并确保重新编译等,看看是否单独修复它。
第二个思路是,直接尝试编译业务逻辑程序集(根据报错)。
例如,在 AX 中,当您打开 Dynamics AX Model Project 时,它并不总是加载 C# Business Logic Project。
您可以看到销售发票报表在 AOT 中有这两个项目对象:
当您右键单击 Dynamics AX Model Project 并单击 Edit 时,它会在您的解决方案资源管理器中启动 Visual Studio:
在左侧的 VS 中,在 Application Explorer(如果缺少,请查看>应用程序资源管理器)下,找到关联的 C# Business Logic Project 并双击它以将其添加到您的项目中。在我的例子中是SalesInvoiceReport.BusinessLogic。
在我这样做之后,它还会自动添加SRSDrillThroughCommon,因为这也是一个依赖项。 [侧边栏:SRSDrillThroughCommon 用于那些蓝色超链接以启动相关的 AX 表单]
确保您在正确的层中启动了 Visual Studio,尝试重新编译所有内容以查看是否可以解决问题。
最后,我最后要说的是因为这只是我碰巧想到的最后一件事......我稍后可能会想出其他东西,尝试通过找到它直接从 AX 进行完整的 AX 编译和部署在 AOT。有关更多信息,请参阅https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/how-to-deploy-reports-to-a-report-server。
我有一份报告如此复杂和麻烦,连微软都无法解决。我怀疑原因是没有人遇到过的错误,因为我正在做一些非常不寻常的开发。我最终通过将完全相同的项目内容的 XPO 导入 AOT 然后部署来解决它。不知何故,它设法让它工作。这个错误不是一个有趣的错误。祝你好运!