【问题标题】:Creating new Calc Document (OpenOffice) in C#在 C# 中创建新的 Calc 文档 (OpenOffice)
【发布时间】:2011-07-27 16:17:32
【问题描述】:

我正在尝试打开新的 Calc 文档,但出现此错误:

System.IO.FileLoadException:混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。

Cli 引用包含在项目中。

    void OpenSpreadsheetClick(object sender, EventArgs e)
    {
        XComponentContext oStrap = uno.util.Bootstrap.bootstrap();
    //The next step is to use OpenOffice.org's service manager to create a desktop:
    XMultiServiceFactory oServMan = (XMultiServiceFactory) oStrap.getServiceManager();
    XComponentLoader oDesk = (XComponentLoader) oServMan.createInstance("com.sun.star.frame.Desktop" );
    string url = @"private:factory/scalc";
    PropertyValue[] propVals = new PropertyValue[0];
    XComponent oDoc = oDesk.loadComponentFromURL(url, "_blank", 0, propVals);
    }

如何解决? Tnx 寻求帮助:)

【问题讨论】:

  • 添加配置文件解决了问题:

标签: c# openoffice.org calc


【解决方案1】:

在我看来,您的 app.config 需要这样做:

  <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
  </startup>

查看这篇(有些相关的)帖子了解更多信息:http://blogs.msdn.com/b/jomo_fisher/archive/2009/11/17/f-scripting-net-4-0-and-mixed-mode-assemblies.aspx

编辑:如果您想了解更多关于 useLegacyV2RuntimeActivationPolicy 标志的实际作用,MSDN 上有一个页面:http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx

【讨论】:

    【解决方案2】:

    将项目中的 Target Framework 设置为 3.5 或 2.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多