构建项目时出现以下错误:
"Cannot embed interop type 'Microsoft.Office.Core.MsoXXX' found in both assembly 'c:\Windows\assembly\GAC_MSIL\office\14.0.0.0__71e9bce111e9429c\OFFICE.DLL' and 'c:\myProject\lib\OFFICE.DLL'. Consider setting the 'Embed Interop Types' property to false."
我收到了130个错误,每个错误都有另一个Microsoft.Office.Core.MsoXXX,如MsoLineDashStyle或MsoSyncStatusType。
实际上,Visual Studio中项目中的大多数引用都将该属性设置为TRUE。所以我将它们全部更改为FALSE,尤其是OFFICE.dll。 错误仍然存在。
重新启动VS后,embed interop的属性仍然设置为FALSE。
同一个地图中的另一个项目使用完全相同的OFFICE.dll(也位于c:\ myProject \ lib \ OFFICE.DLL),并且标志设置为FALSE。建立这个项目确实很好。
这个项目有点老了,很长时间没有建成。 除了一个未知对象外,VS没有明显的错误。因此,我期待进一步的编译错误。我不知道这是否与嵌入标志问题有关。
任何想法可能出错或如何解决? 提前谢谢。
答案 0 :(得分:1)
我得到了答案:
错误消息中的两个dll中的第一个 (C:\ WINDOWS \装配\ GAC_MSIL \办公\ 14.0.0.0__71e9bce111e9429c \ OFFICE.DLL) 实际上命名为Windows.Microsoft.Office.Core
而第二次参考 (C:\ myProject的\ lib中\ OFFICE.DLL) 被命名为OFFICE.DLL。
两者都在项目中并存。删除我的项目中的两个引用之一后,不再有任何问题。 我也能用embed-flag = TRUE来编译和运行代码!
所以这里的错误信息是误导性的。 谢谢你的聆听。