我们已将一个 C# 项目添加到我们的 AX 环境中。我们最近对 app.config 文件进行了修改,清理并重建了项目,并将其部署到 AOT。如果我进入 SqlServer Management Studio 并查询 VSASSEMBLIES 表,我可以看到对应的 .dll 和 .dll.config 文件。我转储了 .dll.config 的内容并将其转换回文本,以确保表中的版本是最新的,并且确实如此。
问题是当 AOS 重新启动时,.dll.config 文件永远不会被写入磁盘 (C:\Program Files\Microsoft Dynamics AX\60\Server[Instance]\bin\VSAssemblies)。.dll 被写出,但不是配置。如果我清除整个目录并重新启动 AOS,除了我们的配置文件之外的所有内容都会被写回。
EInvoiceCFDI_MX.dll 的配置文件被写出,所以我已经搜索了他们的项目文件和配置,但无法提出他们设置的任何我们没有设置的内容。
我在 AOT 中看到的唯一内容是 EInvoiceCFDI_MX 项目在项目输出下显示了 .dll.config 文件,而我们的项目没有。我检查了默认构建脚本引用的中间目标,它清楚地表明 app.config 应该被复制到项目输出中,但由于某种原因它不是。
我错过了什么?
简,谢谢你的帖子。
我们正在按照您引用的方式构建/配置服务:
CLRObject clientType = CLRInterop::getType("OurService");
OurService client = AifUtil::createServiceClient(clientType);
createServiceClient() 抛出异常:
System.Reflection.TargetInvocationException: Exception has been thrown by the
target of an invocation. ---> System.InvalidOperationException: Unable to find
the application configuaration file C:\Users\<user>\AppData\Local\Microsoft\
Dynamics Ax\VSAssemblies\OurService.dll.config.
OurService.dll.config 文件位于 AOT 中,但在服务器或客户端启动时它不会被写入磁盘。