10

我知道以前在这里问过类似的问题,但我不确定它们是否真的解决了我的问题,除非我误解了它们。

今天早上我一直在开发一个应用程序,构建或重建解决方案没有任何问题,但是在吃完午餐然后回来(我让程序保持打开状态)之后,我突然无法构建它,因为它是返回 3 个错误,我以前没有遇到过类似的错误。

错误一:

无法从程序集“office”嵌入互操作类型,因为它缺少“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 对象库。那我该怎么办?他们在应用程序打开时出现似乎很奇怪?

4

5 回答 5

10

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

  • 清理并重建解决方案。
  • 如果这不起作用,请删除引用,然后重新添加它们。
于 2016-09-14T16:28:22.647 回答
5

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

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

于 2018-01-07T09:44:51.917 回答
3

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

于 2017-07-21T13:43:55.667 回答
2

实际问题是解决方案中的引用设置为将互操作类型嵌入到目标程序集中!只需检查引用的属性并将所有标记为 false 的属性都设置为。

于 2019-06-21T07:04:46.810 回答
1

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

于 2017-04-25T13:09:04.830 回答