我正在尝试打开新的 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 寻求帮助:)
最佳答案
在我看来,您需要将此添加到您的 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
关于c# - 在 C# 中创建新的 Calc 文档 (OpenOffice),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513538/