visual-studio-2010 - Visual Studio 2010,TlbImp 在 2.0 项目中生成 .net 4.0 互操作

标签 visual-studio-2010 interop tlbimp

在 C# 项目中,我们通过指向 COM 对象的添加引用设置添加对 COM 对象的引用,这会导致 IDE 自动生成互操作程序集。所以这很好,但我们是基于 .net 3.5 SP1 aka CLR 2.0 构建的,并且生成的互操作使用 4.0 CLR,这使得它们不兼容。有没有办法防止这种情况?

我假设另一个选项是配置我们的构建脚本以尝试将 tlbimp.exe 与/references 参数一起使用?指向 mscorlib v2.0?

无论如何,我希望某处有一面旗帜可以允许这样做。

最佳答案

我恰好遇到了这个问题。我找到的解决方案是使用位于 %ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin 中的 .Net Framework SDK(或 Windows Platform SDK?)中的 tlbimp 3.5 版,它使用了 CLR 2。

我还发现我需要这些信息来从我正在导入的 exe 文件中获取正确的类型库,因为 VS 只会使用第一个类型库:

“从包含多个类型库的模块中导入类型库时,可以选择将资源 ID 附加到类型库文件中。”

tlbimp MyModule.dll\1

来自 http://msdn.microsoft.com/en-us/library/tt0cf3sx%28VS.80%29.aspx

关于visual-studio-2010 - Visual Studio 2010,TlbImp 在 2.0 项目中生成 .net 4.0 互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2659738/

相关文章:

c# - 配置系统初始化失败

.net - Visual Studio 2010 中缺少 PostgreSQL 数据提供程序

.net - 如何通过 COM/VB6 将参数传递给 .net dll 中的函数?

c# - 从 C# COM dll 返回 S_FALSE

c# - 使用 tlbimp 不需要第二次组装?

com - 类型库导入器在类型验证过程中遇到错误

visual-studio-2010 - 在 VS 2010 中生成 UML 类图

visual-studio-2010 - 如何防止对类图中的属性名称进行排序?

C# 和 C++ 库

c# - 如何将指向 char[256] 数组的指针从 C++ 编码到 C#