2015-10-20 72 views
0

建設項目時,我收到以下錯誤:C# - 無法嵌入互操作類型 - 仍設置「嵌入互操作類型」屬性設置爲false

"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,每個與其他微軟.Office.Core.MsoXXX像MsoLineDashStyle或MsoSyncStatusType。

實際上在Visual Studio帽子項目中的大多數引用將該屬性設置爲TRUE。所以我將它們全部更改爲FALSE,特別是OFFICE.dll。 錯誤仍然存​​在。

重新啓動VS後,嵌入interop ist的屬性仍設置爲FALSE。

同一個地圖內的另一個項目使用完全相同的OFFICE.dll(也位於c:\ myProject \ lib \ OFFICE.DLL),並且標誌設置爲FALSE。建設這個項目確實工作得很好。

該項目有點舊,並沒有很長一段時間。 除了一個未知對象外,VS沒有標記錯誤。因爲這個,我會期待進一步的編譯錯誤。我不知道這是否可能與嵌入標誌問題有關。

任何想法可能是錯誤的或如何解決它? 在此先感謝。

回答

1

我通過reallive答案:

從錯誤消息的第一個兩個的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的代碼!

所以這裏的錯誤信息是有誤導性的。 謝謝傾聽。

+0

對於刪除引用,我們只需要從bin文件夾中刪除.ddl,對吧? ps-new到c#.net –

相關問題