在项目中找不到Interop dll

问题描述:

我正在开发一个使用Microsoft Word 2007的C#项目。我在项目中添加了对Word组件的引用。编译后,我无法在bin中找到Interop dll。我在哪里可以找到Interop dll?我需要复制它。在项目中找不到Interop dll

+0

这就是您使用.NET 4.0或更高版本以及VS2010或更高版本时应该采用的方式。 “嵌入互操作类型”功能取代了仍然需要部署互操作库的需求。不要修复它。 –

+0

@HansPassant由于Office对象模型的某些部分存在已知问题(嵌入了不正确的信息),因此您要小心鼓励人们使用“启用Interop类型”。当你推荐它时,最好还建议彻底测试...... –

+0

嗯,不,那不是必要的。有些程序员不明白“使用适用接口”错误消息的含义,就这些。我们有Q + A的。 –

在Word组件中,展开您的项目引用,找到Interop dll,突出显示它,并在属性窗口中启用“复制本地”。再次编译后,您现在应该可以在输出目录中看到dll。

在正常配置中,Office在GAC中安装了dll(PIA =主互操作程序集)。因此,您无需将其与您的项目一起分发。

对于Office 2007,始终存在缺省安装PIA的警告,因此用户的计算机可能没有GAC中的它们。由于这个原因,Microsoft提供了一个可重新分发的作为下载。您的安装可以检查项目中使用的PIA的存在并安装它们(与.NET Framework相同)。

这是可能使用tlbimp.exe(https://msdn.microsoft.com/en-us/library/tw4zwhbe(v=vs.110).aspx)创建您自己的IA,并且在某些情况下您可能需要这样做。在这种情况下,你会分发你的项目的DLL。

Hans提到了更新版本的.NET Framework的“Embed interop types”选项。这可能是有用的,但是彻底的测试是必要的,因为这个选项有时会给出“意想不到的结果”(嵌入来自PIA的错误或不完整的信息)。