C# 在32位windows计算机中找不到库microsoft.mshtml

C# 在32位windows计算机中找不到库microsoft.mshtml,c#,.net,C#,.net,我开发了一个使用库microsoft.mshtml的应用程序,它在64位机器上运行良好,但在32位机器的GAC中似乎没有dll,当您使用x64版本时,您需要依赖他人的善意。PIA需要安装在目标机器上。这通常是安装程序需要注意的事项。它已准备好包含在安装程序中,您可以在计算机上的C:\ProgramFiles(x86)\Microsoft.NET\Primary Interop Assemblies目录中找到它 程序员不太喜欢安装程序。当项目已经迟到时,总是最后一件要处理的事情,没有人有时间去做。

我开发了一个使用库microsoft.mshtml的应用程序,它在64位机器上运行良好,但在32位机器的GAC中似乎没有dll,

当您使用x64版本时,您需要依赖他人的善意。PIA需要安装在目标机器上。这通常是安装程序需要注意的事项。它已准备好包含在安装程序中,您可以在计算机上的
C:\ProgramFiles(x86)\Microsoft.NET\Primary Interop Assemblies
目录中找到它

程序员不太喜欢安装程序。当项目已经迟到时,总是最后一件要处理的事情,没有人有时间去做。在GAC中实际需要PIA的情况非常罕见:

  • .NET 4.0+和VS2010+支持程序集引用的嵌入互操作类型选项。编译器现在可以在程序本身中包含互操作类型,而不必依赖于PIA。而且只有它实际使用的那些,大大减少了部署规模始终喜欢此选项,只需在属性窗口中将其设置为True即可。这本身已经是一个很好的理由来更新你的VS版本并升级到.NET4,如果这是一个障碍的话

  • 大多数sane部署实际上不需要GAC中的程序集。只需将程序集引用上的“复制本地”属性更改为True。在生成目录中获得Microsoft.mshtml.dll的副本,将其与EXE和其他dll依赖项一起复制到目标计算机


库的copy属性不允许我将其设置为true,我想我必须拔掉那颗牙。那么,您是否看到了嵌入互操作类型属性,并且该属性是否已设置为True?当然,设置“复制本地”没有意义,因此它被禁用。你不需要PIA。