针对更高版本的.NET会在构建时导致ms1685警告

时间:2016-10-02 14:48:02

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

我正在使用VS2013,它默认定位到.NET Framework 4.5。我试图使用需要定位.NET 4.5.2的第三方库。事情就这样开始了:

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

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

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

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

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

    3.   

      " System.Core,Version = 3.5.0.0之间存在冲突,   Culture = neutral,PublicKeyToken = b77a5c561934e089"和" System.Core,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"。

           

      " System.Core,Version = 3.5.0.0,Culture = neutral,   公钥= b77a5c561934e089"之所以被选中,是因为它是初级的   " System.Core,Version = 4.0.0.0,Culture = neutral,   公钥= 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
      

      其他细节: 我尝试使用的第三方库是构建找到的示例插件here所需的Dynamics CRM程序集。我收到了清单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,没有帮助。

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

1 个答案:

答案 0 :(得分:0)

我猜是.net 4.5.2开发包没有正确安装。我不能对动态crm发表评论,因为我从未参与其中。

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

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