移除Microsoft Dynamics 365自定义配置的正确/最佳方式是什么?
彻底清除D365 F&O开发虚拟机自定义残留的操作步骤
- 停止环境相关服务
操作前先停止AOS、IIS和批处理服务,避免文件占用导致清理不彻底,依次执行命令:net stop DynamicsAxBatchnet stop w3svcnet stop DynamicsAXServer - 清理全路径的模型文件残留
除了你已经操作的C:\AOSService\PackageLocalDirectory,还要检查C:\AOSService\PackagesLocalDirectory(注意路径名的单复数差异,多数环境默认使用带s的路径),删除对应自定义模型的文件夹,同时清理C:\DeployablePackages路径下对应自定义模型的部署包文件。 - 清空本地缓存文件
- 删除用户目录下的元数据缓存:
C:\Users\<当前登录用户名>\AppData\Local\Microsoft\Dynamics365FO\MetaDataCache下的所有文件 - 删除Visual Studio组件缓存:
C:\Users\<当前登录用户名>\AppData\Local\Microsoft\VisualStudio\<对应VS版本号文件夹>\ComponentModelCache下的所有文件 - 删除交叉引用缓存:
C:\AOSService\Scripts\CrossReference整个文件夹
- 删除用户目录下的元数据缓存:
- 清除数据库中的自定义元素残留
这是解决标准表/表单残留自定义字段的核心步骤,打开SQL Server Management Studio连接到AxDB数据库,依次执行以下操作:- 先查询要删除的自定义模型ID,执行SQL:
SELECT ModelId, Name FROM ModelManifest WHERE Name = '你的自定义模型名称' - 拿到对应ModelId后,执行清理SQL:
DELETE FROM ModelElementData WHERE ModelId = [你查询到的ModelId] DELETE FROM ModelElement WHERE ModelId = [你查询到的ModelId] DELETE FROM ModelManifest WHERE ModelId = [你查询到的ModelId]- 若MainAccount等标准表上的自定义字段仍存在,手动执行
ALTER TABLE MainAccount DROP COLUMN [你的自定义字段名]删除,操作前务必备份数据库,避免误删标准字段
- 先查询要删除的自定义模型ID,执行SQL:
- 重启服务并执行全量同步编译
依次启动服务:net start DynamicsAXServernet start w3svcnet start DynamicsAxBatch
打开Visual Studio执行全模型编译+全数据库同步,完成后执行iisreset重启IIS,再验证自定义内容是否已完全清除。 - 可选简化操作
如果上述手动操作太繁琐,可以直接打开Visual Studio,进入Extensions > Dynamics 365 > Model Management > Delete Model,选择要删除的自定义模型,工具会自动完成文件、缓存、数据库层面的清理,完成后再执行一次全同步即可。
内容的提问来源于stack exchange,提问作者Brian Kessler
相关产品推荐
相关产品推荐

