【发布时间】:2010-09-07 16:42:31
【问题描述】:
我想在 .NET 项目中引用 COM DLL,但我还想确保创建的互操作 DLL 具有正确的版本(以便补丁知道何时必须更改 DLL)。
如果我使用 TlbImp,我可以使用 /asmversion 标志指定所需的版本,但是当我直接从 Visual Studio 添加它时,它会得到一个与原始 COM DLL 版本无关的版本。
我尝试更改 .vcproj 文件中的版本
<ItemGroup>
<COMReference Include="MYDLLLib">
<Guid>{459F8813-D74D-DEAD-BEEF-00CAFEBABEA5}</Guid>
<!-- I changed this -->
<VersionMajor>1</VersionMajor>
<!-- This too -->
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
但随后项目未能构建并出现以下错误:
错误 CS0246:找不到类型或命名空间名称“MYDLLLib”(您是否缺少 using 指令或程序集引用?)
有什么方法可以在不使用TlbImp 预先创建我的所有 COM 引用的情况下完成此操作?
如果答案是是,除了主要版本和次要版本之外,还有其他方法可以指定内部版本号吗? (例如 1.2.42.0)
【问题讨论】: