【问题标题】:Targeting a higher version of .NET causes ms1685 warning when building构建时针对更高版本的 .NET 会导致 ms1685 警告
【发布时间】:2016-10-02 14:48:01
【问题描述】:

我使用的是 VS2013,它默认面向 .NET Framework 4.5。我正在尝试使用需要以 .NET 4.5.2 为目标的第三方库。这是事情开始破裂的时候:

  1. 我收到警告 MSB3270(“处理器架构...与处理器架构...x86 之间存在不匹配”),因此我将平台更改为 x86。很好。
  2. 我遇到了错误(另请参阅本问题末尾的详细信息):

“System.Runtime.Serialization.IExtensibleDataObject”类型是 在未引用的程序集中定义。您必须添加对程序集“System.Runtime.Serialization”等的引用。

所以我添加了对System.Runtime.Serialization 的引用(不过我不完全理解这个错误),我需要浏览并手动从 GAC 添加对它的引用(因为我没有针对.NET 4.5.2)。

  1. 我还需要添加对System.ServiceModel 的引用。

  2. 我最终得到了警告 MS1685(“预定义类型 (...) 在多个程序集中定义”)和 MSB3247(“发现相同依赖程序集的不同版本之间的冲突”等)。 查看构建日志,冲突是:

“System.Core, Version=3.5.0.0, 文化=中性,PublicKeyToken=b77a5c561934e089”和“System.Core, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089"。

“System.Core,版本=3.5.0.0,文化=中性, 选择 PublicKeyToken=b77a5c561934e089" 是因为它是主要的并且 “System.Core,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089" 不是。

我还运行了 AsmSpy(ClassLibrary1 是我的项目名称):

Reference: mscorlib
        4.0.0.0 by ClassLibrary1
Reference: Microsoft.Xrm.Sdk
        8.0.0.0 by ClassLibrary1
Reference: System.ServiceModel
        4.0.0.0 by ClassLibrary1

其他细节: 我尝试使用的第三方库是构建示例插件所需的 Dynamics CRM 程序集,发现 here。我得到了清单2中提到的错误:

    // The InputParameters collection contains all the data passed in the message request.    
    if (context.InputParameters.Contains("Target") &&
                context.InputParameters["Target"] is Entity)

我阅读了有关这些警告的 SO 帖子。他们中的许多人(例如12)只是说要摆脱导致问题的引用,但我想我确实需要所有这些。其他人(12)认为CopyLocal - 我尝试将其设置为TrueFalse,但没有帮助。

因此,我没有设法解决它,所以我很感激帮助。我知道这些都是“只是警告”,但我真的很想解决它们。

【问题讨论】:

    标签: c# .net dynamics-crm .net-assembly


    【解决方案1】:

    我猜是.net 4.5.2 开发者包没有正确安装。我无法评论动态 crm,因为我从未参与过。

    执行以下步骤,如果可行,请告诉我。 (我想首先你已经完成了第一步。如果是,那么我建议再做一次,因为它可能会修复安装错误。)

    1. 从链接https://www.microsoft.com/en-us/download/details.aspx?id=42637 安装.net 4.5.2 开发包
    2. 通过转到项目属性对话框更改项目的目标版本。这将卸载项目并对引用程序集和配置文件进行必要的更改。
    3. 根据本文档https://msdn.microsoft.com/en-us/library/cc668079.aspx 中描述的步骤修复定位错误

    【讨论】:

    • 成功了!猜猜 .NET 4.5.2 没有正确安装。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 2015-10-04
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2014-01-07
    • 2013-07-21
    相关资源
    最近更新 更多