我正在使用VS2013,它默认定位到.NET Framework 4.5。我试图使用需要定位.NET 4.5.2的第三方库。事情就这样开始了:
类型' System.Runtime.Serialization.IExtensibleDataObject'是 在未引用的程序集中定义。您必须添加对程序集的引用,System.Runtime.Serialization'等
所以我添加了对System.Runtime.Serialization
的引用(我不完全理解这个错误),我需要浏览并手动从GAC添加对它的引用(因为我有没有针对.NET 4.5.2的程序集。
我还需要添加对System.ServiceModel
的引用。
我最终警告MS1685("预定义类型(...)在多个程序集中定义"),以及MSB3247("发现coflicts在不同版本之间)相同的依赖集合"等)。 查看构建日志,冲突是:
" 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帖子。许多人(例如1,2)只是说要摆脱导致问题的引用,但我想我确实需要所有这些。其他人(1,2)考虑CopyLocal
- 我尝试将其设置为True
和False
,没有帮助。
因此,我没有设法解决它,所以我很感激帮助。我知道这些都是警告"但我真的很想解决它们。
答案 0 :(得分:0)
我猜是.net 4.5.2开发包没有正确安装。我不能对动态crm发表评论,因为我从未参与其中。
执行以下步骤,如果有效,请告诉我。 (我想首先你已经完成了第一步。如果是,那么我建议再次这样做,因为它可能会修复安装错误,如果有的话。)