如何解决使用 Visual Studio 将 C# 项目部署到 AX 2012 的错误?

How to solve Error to Deploy C# Project using Visual Studio to AX 2012?

我想通过 Visual Studio 部署一个 C# 项目,但我得到这个错误:

Error 1 Some of report's datasets refer to the data methods from class CustAgingReport_report_Name. Business logic assembly (CustAgingReport_Report_name.BusinessLogic) cannot be found. Rebuild the Business logic Project. \SSRS Reports\Reports\CustAgingReport

Error 2 The type or namespace name 'Application' does not exist in the namespace 'Microsoft.Dynamics.AX' (are you missing an assembly reference?)

拜托,你能帮帮我吗?你有什么建议吗?

谢谢

如果您正在开发 AX 报表,在部署时它们可能会很麻烦,而且很多时候不是您的代码而是环境。

核心错误可能是准确的,但原因是麻烦。已编译的业务逻辑程序集应位于报表服务器上的(默认路径)C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\CustAgingReport.BusinessLogic.dll

根据错误,我假设你的缺失,因为它无法成功编译和部署它。

虽然这个错误可能会产生误导,因为我已经看到真正的原因是由于具有多个特定对象层,我建议您检查与报告关联的每个主要对象(Dynamics Project、C# Business逻辑项目,相关的 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 然后部署来解决它。不知何故设法让它工作。这个错误不是一个有趣的错误。祝你好运!