2011-12-27 57 views
1

我曾見過一些文章提到在.NET中運行時調用xmlserializer。如何避免在SharePoint中運行時調用csc.exe

我有一個sharepoint web部件,它調用一個web服務來檢索數據,然後應該在web部件上顯示這些數據。但是我得到這個錯誤: System.Runtime.InteropServices.ExternalException:無法執行程序。正在執行的命令是「C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ csc.exe」/ noconfig/fullpaths @「C:\ Users \ my_deploy_spFarm_user \ AppData \ Local \ Temp \ OICE_356C17F3-2ED2-423C- 8BBE-CA5C05740FD7.0 \ eelwfhnn.cmdline

現在,我在這裏閱讀的帖子指出,問題在於編譯器試圖創建一個即時創建XML序列化程序集,但沒有權限這麼做。

我已經看到了一些建議使用後生成事件來創建此XML序列化程序集在編譯時間,但我不知道怎麼做,我也不太清楚,如果這assemply會得到包含在.wsp包中?

回答

1

我會仔細看看您是否真的想要完整的自動生成的序列化程序,還是隻想發出/解析一些相對簡單的XML - 如果是後者,您將通過不使用來解決此問題需要生成代碼的東西,即直接使用XmlReader/XmlWriter。

+0

由於這看起來是更直接的選擇,我最終重寫了web服務,並使用一個簡單的webrequest/webresponse來取代所需的信息。如果不是針對這個任務的時間限制,我會研究如何做序列化程序集的預編譯,以便這個錯誤會消失。 – Andras 2011-12-27 22:55:17

0

This link有創建預編譯串行器的基本命令。

+0

您提供的鏈接確實提供了有關sgen.exe命令的信息,但是我仍然懷疑如何在項目的後期編譯事件中使用它,以及如何編寫這樣的命令...... – Andras 2011-12-27 22:56:59

+0

生成後:sgen.exe $(TargetPath) – 2011-12-28 15:07:11

+1

MSBuild任務調用SGen生成{AssemblyName} .Serilizers.dll程序集的任務方式(非生成後事件)。 http://stackoverflow.com/questions/134224/generating-an-xml-serialization-assembly-as-part-of-my-build – 2012-03-20 19:37:06

相關問題