Quick blog. How I fixed InfoPath 2010 Debug/Preview error, after installing Office 2013.
InfoPath cannot open the selected form because of an error in the form's code.
InfoPath will fail to load this form because Microsoft .NET Framework 3.5 is not installed or is installed incorrectly
Install .NET Framework 3.5
First, if you are on Windows 8, you do need to install the .NET Framework 3.5 feature. Do this via Add Windows Feature control panel.
Reverse the .NET Assembly Binding Redirect Policies
Fix these two policies that was redirecting v14 references to v15.
- C:\Windows\assembly\GAC_MSIL\Policy.14.0.Microsoft.Office.InfoPath.Client.Internal.Host\22.214.171.124__71e9bce111e9429c\ Policy.14.0.Microsoft.Office.InfoPath.Client.Internal.Host.config
- C:\Windows\assembly\GAC_MSIL\Policy.14.0.Microsoft.Office.InfoPath\126.96.36.199__71e9bce111e9429c\ Policy.14.0.Microsoft.Office.InfoPath.config
If you just change it to bind to the original version 14:
- <bindingRedirect oldVersion="188.8.131.52" newVersion="184.108.40.206"></bindingRedirect>
If you see complains about ipdmctrl, copy it from:
- C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Common\IPDMCTRL.dll to C:\Program Files\Microsoft Office\Office14\
You can find IPDMCTRL in any Visual Studio Tools for Office installation. Your directory could be different.
Use the Fusion Log Viewer tool
I figured this out using the fuslogvw tool - which logs .NET assembly loading events, and so I could figure out what it was trying to load when debugging, and failing.
Pics or it didn't happen
Here is both VS2012 debugging an InfoPath 2013 form, at the same time as VSTO debugging a separate InfoPath 2010 form.