【问题标题】:D365 (DevVM): BestPractise broken after updating to PU28D365 (DevVM):BestPractise 在更新到 PU28 后被破坏
【发布时间】:2019-07-25 13:30:05
【问题描述】:

我有一个 Dynamics365 DevVM 并将其从 10PU26 更新到 10PU28,以便我在与我正在开发的系统相同的平台版本上进行开发。应用 10pu28 后,我启动了我的 VisualStudio,更改了一些内容并尝试保存和编译,但注意到 BP 已损坏,因此我无法进一步开发。 Visual Studio 记录以下内容,但我不确定我能做些什么来解决这个问题。

Build started 07/25/2019 06:27.
Build step: Metadata validation started.
  Exception occured while performing operation Validate Metadata. Exception details: Path: []:System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value, IEqualityComparer`1 comparer)
   at Microsoft.Dynamics.Framework.Tools.ILGeneratorAgent.CompilationService.ValidateMetadata(String module, String metadataPath, String compilerMetadataPath, IEnumerable`1 referencedAssembliesFolders, IEnumerable`1 elements)
Build step: Metadata validation completed (10 ms).
Build step: X++ compilation, label generation and resource deployment started.
Build step: X++ compilation, label generation and resource deployment completed (670 ms).
Build step: Best practice check started.
  Exception occured while performing operation Best practice checks. Exception details: BP Rule: [Exception occured while performing operation Best practice checks. Exception details]:System.ArgumentNullException: Value cannot be null.
Parameter name: referencedAssembliesFolders
   at Microsoft.Dynamics.Framework.Tools.ILGeneratorAgent.MetadataProviderExtensions.AddReferenceProvider(IMetadataProvider provider, IEnumerable`1 referencedAssembliesFolders, IDiagnosticSink diagnostics, String modelModule, MetadataProviderFactory factory)
   at Microsoft.Dynamics.Framework.Tools.ILGeneratorAgent.CompilationService.RunBestPracticeChecks(String module, String metadataPath, String compilerMetadataPath, IEnumerable`1 referencedAssembliesFolders, IEnumerable`1 elements, String modelName, Boolean isNormalizedCollectionNeeded)
Build step: Best practice check completed (9 ms).
Build completed (716 ms).

作为临时解决方法,我尝试在构建时禁用正在运行的 BP,但这也不起作用。当 BP 被禁用时,我仍然无法编译。以下是日志:

Build started 07/25/2019 06:40.
Build step: Metadata validation started.
  Exception occured while performing operation Validate Metadata. Exception details: Path: []:System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value, IEqualityComparer`1 comparer)
   at Microsoft.Dynamics.Framework.Tools.ILGeneratorAgent.CompilationService.ValidateMetadata(String module, String metadataPath, String compilerMetadataPath, IEnumerable`1 referencedAssembliesFolders, IEnumerable`1 elements)
Build step: Metadata validation completed (8 ms).
Build step: X++ compilation, label generation and resource deployment started.
Build step: X++ compilation, label generation and resource deployment completed (381 ms).
Build completed (409 ms).

【问题讨论】:

  • @FH-Inway 我没有修改拓扑文件。我尝试通过“Dynamics365 > Build Models”编译我的模型(带有引用),到目前为止,无论有无 BestPractiseChecks,这都有效。看来我无法从解决方案构建项目,而只能基于模型
  • oof...感谢您在该文档上提出问题。我将回滚我的虚拟机,明天再次尝试修改拓扑文件。谢谢
  • @FH-Inway 看起来很有用,如果有帮助,我必须检查一下并报告。我对当前的更新体验不太满意...
  • @FH-Inway 使用 ps 模块进行更新非常方便 :) 这次 pu28 失败了,因为“向127.0.01/ReportServer 发出 http 请求时发生了 System.Net.WebException 类型的异常@ “但这可能是它自己的问题......
  • 确实如此。我们也遇到了这个问题。启动 Windows 服务“SQL Server Reporting Services (MSSQLSERVER)”可以解决它。

标签: dynamics-365 dynamics-365-operations


【解决方案1】:

如果更新没有成功更新所有组件,可能会导致此问题。如果使用默认拓扑文件进行更新,则可能会导致此问题。 Microsoft 的documentation 在更新过程的这一部分有点令人困惑(请参阅issue 1137)。确保根据文档中的Collect topology configuration data 部分更改拓扑文件。

我还建议看一下d365fo.tools,其中包括 函数Invoke-D365SDPInstall,它在升级过程中为您做了很多工作(包括更新拓扑文件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2013-05-16
    • 2018-10-17
    • 2014-08-15
    • 1970-01-01
    相关资源
    最近更新 更多