我正在將舊的應用程序從.Net 2升級到.Net 4.該程序利用了信息表格,並且造成了相當多的煩惱。首先,它拋出一個FileLoadException,並在消息「混合模式程序集針對運行時的版本v2.0.50727構建,並且無需其他配置信息即可加載到4.0運行時。」我做了一些研究,並添加以下到我的app.config文件:在.Net 4.0中打開InfoPath表單
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
我再重新運行應用程序了Visual Studio中的,當它只是試圖打開一個表格,現在拋出一個收到COMException,並且「此方法明確使用CAS策略,而.NET策略已被廢棄,爲了兼容性原因啓用CAS策略,請使用NetFx40_LegacySecurityPolicy配置開關。」所以我這樣做。添加以下到我的app.config文件:
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
現在,當它試圖打開一個InfoPath表單,它告訴我,我需要安裝.Net 3.5到我的電腦。我想我的問題是,我是否真的必須將.NET 3.5框架安裝到計算機上才能運行該應用程序,即使它是在.Net 4.0中? .Net 3.5的壓縮版本不起作用,我假設這些都是從CAS變化到3.5到4.0,但我希望有一種編程方式來記住這一點,並打開/保存InfoPath表單,而無需使用戶在他們的計算機上安裝另一個框架。