我从2008年到2010年转换了我的visual studio解决方案。项目有一个对ShDocVw的引用。当我运行程序时,我得到一个BadImageFormatException。谷歌让我用corflags检查互操作库:
corflags Interop.ShDocVw.dll
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 3
ILONLY : 1
32BIT : 1
Signed : 0
果然,32位标志被设置,所以我的应用程序构建为64位机器上的任何CPU不能加载这个库。如果我运行corflags/32BIT-我可以关闭32BIT标志,一切工作正常。问题是,为什么这个互操作库是用那个标志集生成的?我在VS2008中没有这个问题,这只是在升级后才开始发生。
更重要的是,我如何修复它,这样我就不必运行corflags来关闭位?我想这可能是由于一些MSBuild-fu,我不太理解。我什么也没发现
问题是升级后c#项目文件中的
这就是我找到答案的地方