无法嵌入程序集

时间:2016-09-14 13:30:18

标签: .net vb.net interop reference-library

我知道之前已经在这里提出了类似的问题,但我不确定它们是否真正解决了我的问题,除非我误解了它们。

我今天早上一直在处理一个应用程序而且没有任何问题构建或重建解决方案,但是在吃完午餐然后回来之后(我打开程序),我突然无法构建它,因为它返回了3个错误,我之前没有遇到过这样的错误。

错误1:

  

无法在程序集'office'中嵌入interop类型,因为它缺少'ImportedFromTypeLib'属性或'PrimaryInteropAssembly'属性。

错误2:

  

无法在程序集'office'中嵌入互操作类型,因为它缺少'Guid'属性

错误3:

  

无法加载引用的库'C:\ WINDOWS \ assembly \ GAC_MSIL \ Office \ 15.0.0.0__71e9bce111e9429c \ Office.dll':系统找不到指定的文件。 C:\ WINDOWS \ assembly \ GAC_MSIL \ Office \ 15.0.0.0__71e9bce111e9429c \ Office.dll

突然出现导致这些错误的原因是什么?

签入项目属性>参考>添加> COM,我可以看到Office 15.0对象库被引用。那我该怎么办?在应用程序打开时,它们似乎很奇怪?

5 个答案:

答案 0 :(得分:8)

就这样,在永恒的剩余时间内没有标记,对于任何潜在的未来用户都有同样的问题,答案是,正如@soohoonigan和@TnTinMn所建议的那样:

  • 清理并重建解决方案。
  • 如果这不起作用,请删除引用,然后重新添加它们。

答案 1 :(得分:2)

默认为“true”,而不是“false”。因此,通过删除它并再次添加它,您将其设置为“true”。

答案 2 :(得分:2)

只看到错误1和2,在这里的答案和一些进一步的研究的指导下,为我解决问题的是:

参考文献 - > Microsoft.CSharp - >属性 - 将“嵌入互操作类型”更改为“False”,然后重建。

答案 3 :(得分:0)

我认为这不是答案。您可能已在程序集属性窗口中将“嵌入互操作类型”标记为“真实”'。通过删除和添加引用,您已将其设置为默认值,这是“假”'。

答案 4 :(得分:0)

实际的问题是您的解决方案中的引用被设置为将Interop类型嵌入到目标程序集中!只需检查引用的属性并将其设置为false即可。