2017-04-11 58 views
0

我們正在努力建設我們在釋放模式項目,但我們得到了這個錯誤:MCG0023:UnresolvableAssemblyReference - 無法建立在釋放模式

Internal compiler error: MCG0023:UnresolvableAssemblyReference Unresolvable assembly reference 'Assembly(Name=System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)' found. Please check the references in your build system. A reference is either missing or an assembly is missing an expected type. 

我們都知道,System.Drawing cannot be used in UWP apps,似乎也沒有參考這個組裝在我們的UWP項目中。

但是,我們在某些時候引用了另一個使用System.Drawing dll的WPF項目(通過可執行文件,32位)。 我們只是這個項目添加到我們的授權擴展在Package.appxmanifest,在節點/封裝/應用/應用/擴展/

<desktop:Extension Category="windows.fullTrustProcess" Executable="OurExternalApplication.exe" /> 

有沒有辦法找出這樣做問題從哪裏來?

說明:我們使用外部解決方案Syncfusion for UWP,該解決方案在某些點引用此程序集。但在發佈中使用Syncfusion構建其他項目沒有任何問題。正如Davis Jebaraj在他的回答中指出的那樣,UWP特定的dll中不存在任何已知問題,因爲它實現了所需的System.Drawing類。

+0

能否請您提供重現這個問題一個簡單的演示? –

+0

正如我所說的,我不能在任何我們的其他測試項目的重現這個問題 - 即使採用相同的基準,它只是發生在我們的主要項目。 –

回答

0

一般來說,System.Drawing命名空間中不可用UWP。你可以檢查官方文件.NET for UWP apps但你說Syncfusion for UWP, that references at some points this assembly,哪個庫?我不確定syncfusion是否與微軟有合作關係。如果您確保syncfusion使用了System.Drawing命名空間的API在他們的圖書館,你可能要問他們official forum。他們的開發團隊可能會知道一些關於此的有用信息

+0

事實是,我們可以在我們的完整解決方案中搜索時找到「System.Drawing」文本。在匹配的文件中有很多Syncfusion的DLL,但使用相同的引用在其他項目的發行模式下編譯沒有問題。搜索還返回了一些其他文件,如文件夾$(SolutionPath)/ bin/x64/Release /($ ProjectName).exe中的可執行文件。唯一不在「/ bin」文件夾中的文件是我們需要複製的Syncfusion DLL,「Syncfusion.Pdf.Base.dll」。 注:我們使用Syncfusion v14.4.0.20。 –

+0

我不知道這件事。你可以在他們的官方論壇上提問。 – Skyblue

1

由於System.Drawing中不可用UWP,我們(Syncfusion)已經在我們的Pdf.UWP組件自身實現了所需System.Drawing中的類。直到現在我們還沒有看到這個參考問題。

Syncfusion提供Syncfusion.Pdf.UWP.dll爲UWP兼容性。你能確認你正在使用該組件在UWP項目(而不是Syncfusion.Pdf.Base.dll)

Documentation link

+0

我們的UWP部分確實使用了Syncfusion.Pdf.UWP.dll。在使用Syncfusion的任何其他測試項目中都沒有問題,所以我假設這個線程不是由於這個參考。感謝您在這一點上給我們啓迪。 –