2009-05-27 2 views
3

В проекте визуальной студии C# можно добавлять ссылки на библиотеки COM. Затем Visual Studio будет использовать tlbimp.exe для генерации сборки interop при создании проекта. Ссылка выглядит в файле .csproj:Подавлять предупреждения tlbimp в визуальной студии

<ItemGroup> 
    <COMReference Include="TDAPIOLELib"> 
     <Guid>{F645BD06-E1B4-4E6A-82FB-E97D027FD456}</Guid> 
     <VersionMajor>1</VersionMajor> 
     <VersionMinor>0</VersionMinor> 
     <Lcid>0</Lcid> 
     <WrapperTool>tlbimp</WrapperTool> 
     <Isolated>False</Isolated> 
    </COMReference> 
    </ItemGroup> 

Однако тип 3rdparty библиотека, которую я ввожу здесь вызывает TLBIMP испускать некоторые предупреждения. Как подавить эти предупреждения в визуальной студии? Я пытался изменить инструмент обертки для

<WrapperTool>tlbimp /silent</WrapperTool> 

но вызывает визуальные студии жаловаться с

Ошибкой была встречается, предотвращающие ссылки «TDAPIOLELib» от нагрузки. Инструмент обертки «tlbimp/silent» не является действительным инструментом обертки .

ответ

2

Я закончил с использованием целевого BeforeBuild для явного вызова Tlbimp.exe:

<Target Name="BeforeBuild"> 
    <Exec Command="tlbimp /silent ..\3rdparty\comlibrary.dll /out:..\bin\interop.comlibrary.dll" /> 
    </Target> 

Это требует ссылки на interop.comlibrary.dll двоичный, в результате чего в маленький желтый предупреждающий знак на ссылку в визуальной студии при открытии проекта до первой сборки.

4

Если COM-библиотека постоянно меняет свои COM-интерфейсы, вы можете запустить импортер typelib один раз, а затем обратиться к сборке interop в своем проекте с этого момента. Если у вас есть бесплатный COM, все, что вам нужно, это то, что библиотека COM будет скопирована в вашу выходную папку сборки.

+0

Я считал это, но я предпочитаю создавать сборку interop во время сборки. Модернизация библиотеки COM проще в этом; нет необходимости документировать, что сборка interop также должна быть воссоздана. –

Смежные вопросы