最近Windows裝了幾個安全補丁,導致原來好好的Sharepoint插件程序,無法編譯通過。一直提下如下錯誤
未能解析主引用“Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL”,因爲它對框架程序集“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”有間接依賴關係,而在當前目標框架中未能解析該程序集。“.NETFramework,Version=v4.0”。若要解決此問題,請移除引用“Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL”,或將應用程序的目標重新指向包含“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的框架版本。
重新引用對應的dll多次無效。最終發現錯誤可能是因爲安裝某些程序或補丁將“System.Net.Http.dll” 刪除導致的。
原本在如下目錄應該有“System.Net.Http.dll”
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
打開文件夾發現“System.Net.Http.dll” 不存在。返回上一級 目錄如下:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
發現上級目錄v4.5可以找到“System.Net.Http.dll”。將v4.5的“System.Net.Http.dll”拷貝v4.0中,重新編譯項目,順利通過。
同樣的問題,發現如果有提示 System.Web.Http.dll等類似的錯誤,應該都是同樣的問題導致的。在同級目錄中找到對應的dll複製過來即可。