我正在使用InfoPath.FormControl (例如,InfoPath.FormControl)在.NET4.0 WPF應用程序中託管InfoPath表單。在VS2010中使用InfoPath FormControl的問題
<WindowsFormsHost Name="infoPathFormsHost">
<ip:FormControl x:Name="infoPathXmlEditor"/>
</WindowsFormsHost>
一切都正常運行,我可以成功地打開窗體中使用:
this.infoPathXmlEditor.NewFromFormTemplate(formTemplatePath, fileStream, XmlFormOpenMode.Default);
不過,我會出現問題,當我嘗試和導航該表單元素使用上MainSource CreateNavigator,例如
this.infoPathXmlEditor.XmlForm.MainDataSource.CreateNavigator().SelectSingleNode(xPathToElement);
在這一點,我得到以下異常:
「混合模式組件構建針對運行時的版本‘V2.0.50727’,並且不能在無需額外配置信息4.0運行時加載。」
我設法找到了克服這一問題的方法是添加以下app.config文件:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
然而,當我補充一點,我現在得到的NewFromFormTemplate方法調用這個異常:
InfoPath無法創建新的空白表單。 InfoPath無法打開表單。要解決此問題,請聯繫您的系統管理員。
表單模板:file:/// 由於表單代碼中的錯誤,InfoPath無法打開選定的表單。 此方法顯式使用已被.NET Framework廢棄的CAS策略。爲了兼容性原因啓用CAS策略,請使用NetFx40_LegacySecurityPolicy配置開關。有關更多信息,請參閱http://go.microsoft.com/fwlink/?LinkID=155570。
有誰知道這個問題的解決方案?任何幫助將非常感激。
注意:InfoPath FormCode.cs中沒有代碼隱藏。