2016-10-02 55 views
0

我正在使用VS2013,默認情況下它將以.NET Framework 4.5爲目標。我正在嘗試使用需要定位.NET 4.5.2的第三方庫。這是當事情開始打破:針對更高版本的.NET會導致構建時出現ms1685警告

  1. 我被警告MSB3270(「有處理器架構......以及處理器architectur ... 86之間的錯配」),所以我改變了平臺的x86。精細。
  2. 我得到THR誤差(也見的細節在這個問題的結束):

類型「System.Runtime.Serialization.IExtensibleDataObject」是在未引用的程序集定義 。您必須添加一個引用程序集「System.Runtime.Serialization」等

所以我加入到System.Runtime.Serialization參考(我不完全理解這個錯誤,雖然),我需要瀏覽和手動去從GAC添加對它的引用(因爲我沒有針對.NET 4.5.2的程序集)。

  1. 我還需要添加對System.ServiceModel的引用。我發現MS1685(「預定義類型(...)在多個程序集中定義」)和MSB3247(「在相同的相關程序集的不同版本之間找到coflicts」等)結束了。 展望生成日誌,衝突是:

之間存在着衝突 「System.Core程序,版本= 3.5.0.0, 文化=中性公鑰= b77a5c561934e089」 和「System.Core程序, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089「。

「System.Core程序,版本= 3.5.0.0,文化=中性 公鑰= b77a5c561934e089」 被選擇,因爲它是伯和 「System.Core程序,版本= 4.0.0.0,文化=中性 公鑰= 「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 

其他細節: 我試圖使用的是動態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帖子。他們中的很多人(例如1,2)只是爲了擺脫導致問題的參考,但我想我確實需要所有這些。其他(1,2)方面CopyLocal - 我試圖將它設置爲TrueFalse,沒有幫助。

因此,我沒有設法解決它,所以我會很感激幫助。我知道這些都是「只是警告」,但我真的想解決它們。

回答

0

我猜的是.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
+0

工作!猜測.NET 4.5.2沒有正確安裝。謝謝! – HeyJude

相關問題