【问题标题】:How to avoid csc.exe being called from runtime in sharepoint 2010如何避免在 sharepoint 2010 中从运行时调用 csc.exe
【发布时间】:2011-12-27 15:46:25
【问题描述】:

我看到一些帖子提到 xmlserializer 在运行时在 .Net 中被调用。

我有一个共享点 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 序列化程序集的建议。但是我不确定该怎么做,也不确定这个组件是否会包含在 .wsp 包中?

【问题讨论】:

    标签: web-services sharepoint web-parts xmlserializer


    【解决方案1】:

    我会仔细看看您是否真的想要完整的、自动生成的序列化程序,或者您是否只想发出/解析一些相对简单的 XML - 如果是后者,您将通过不使用东西来解决这个问题需要生成代码,即直接使用XmlReader/XmlWriter。

    【讨论】:

    • 因为这似乎是更直接的选择,所以我最终重写了 web 服务,并使用简单的 webrequest/webresponse 来检索所需的信息。如果不是因为这个任务的时间限制,我会研究如何进行序列化程序集的预编译,这样这个错误就会消失。
    【解决方案2】:

    This link 具有创建预编译序列化程序的基本命令。

    【讨论】:

    • 您提供的链接确实提供了对 sgen.exe 命令的见解,但我仍然怀疑如何在项目的编译后事件中使用它,以及我将如何编写这样的一个命令...
    • 构建后:sgen.exe $(TargetPath)
    • MSBuild 调用 SGen 生成 {AssemblyName}.Serilizers.dll 程序集的任务方式(非构建后事件)。 stackoverflow.com/questions/134224/…
    猜你喜欢
    • 2010-10-12
    • 2012-05-15
    • 1970-01-01
    • 2014-04-02
    • 2011-11-29
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多