2012-08-08 20 views
0

我正在將舊的應用程序從.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表單,而無需使用戶在他們的計算機上安裝另一個框架。

回答

0

事實證明,如果您啓用了ClickOnce安全性(解決方案屬性>安全性>啓用ClickOnce安全設置),嘗試調試時會導致此問題。但是,如果您發佈項目(啓用ClickOnce安全性),則可以打開該應用程序並按正常方式使用它。因此,對於調試,禁用ClickOnce安全性,對於正常的測試和部署,啓用它,然後發佈該項目以便正確使用。

相關問題