Основная цель обычно предоставляемой библиотеки Interop DLL (например, Microsoft.Interop.Security.AzRoles) состоит в том, чтобы убедиться, что идентификаторы типов совпадают, когда две независимо создаваемые сборки должны передавать ссылки на базовые типы друг другу. Другими словами, если AssemblyA.dll необходимо предоставить коллекцию объектов типа IComInterface (из ComComponent.dll) в качестве открытого свойства, а AssemblyB.exe, в свою очередь, необходимо передать один или несколько этих объектов обратно в ComComponent. .dll, тогда вам нужна общая Interop DLL. Вот для чего нужен Microsoft.Interop.Security.AzRoles.dll. Когда вы добавляете ссылку из вашего проекта в AzRoles.dll, Visual Studio создаст для вас новую сборку Interop.AzRoles.dll, идентификаторы которой уникальны для этой сборки.
Суть в том, что вы можете не заботиться о передаче этих ссылок, но нет особого смысла в создании вашей собственной Interop DLL (даже если она автоматическая), когда она уже создана для вас. Используйте сборку Microsoft.Interop.Security.AzRoles). Кроме того, хотя я не вижу доказательств этого для этой сборки, сборка Interop теоретически может предоставить дополнительные функции, подобные адаптерам, которые улучшают работу управляемого-неуправляемого взаимодействия.