Я хочу сослаться на COM DLL в проекте .NET, но я также хочу убедиться, что созданная interop 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 или ссылка на сборку?)
Есть ли способ сделать это, не создавая все мои ссылки на COM с TlbImp
заранее?
Если ответ да , есть ли способ указать номер сборки в дополнение к основной и вспомогательной версиям? (например, 1.2. 42 .0)