我已经成功使用 C# 中的 DIA,而无需使用 Visual Studio 2019 手动构建类型库或从源代码导入库。如果注册了 COM 服务器,则可以简单地将 COM 引用添加到 csproj,如下所示:
<ItemGroup>
<COMReference Include="Dia2Lib.dll">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>0</VersionMinor>
<VersionMajor>2</VersionMajor>
<Guid>106173a0-0173-4e5c-84e7-e915422be997</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
这是因为 COM 服务器 dll 实际上将类型库作为资源嵌入其中。
也可以使用 Visual Studio UI 添加引用,方法是打开项目,右键单击 Dependencies->Add COM Reference...,然后搜索“dia”。如果 COM 服务器已注册,则名为“dia 2.0 类型库”的条目应该可用。
假设您的架构是 AMD64 并且您安装了 Visual Studio 2019 Enterprise,请按如下方式注册两个所需的 COM 服务器。可以更改路径以匹配您的特定安装和体系结构。这必须在提升的命令提示符下完成(右键单击并以管理员身份运行)。
regsvr32 /s "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\DIA SDK\bin\msdia140.dll"
regsvr32 /s "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\DIA SDK\bin\amd64\msdia140.dll"
当然必须安装 DIA SDK,这可以通过运行 Visual Studio Installer 来完成,为您的安装选择“修改”,然后选择“使用 C++ 进行桌面开发”并安装。