Это неуклюжее предупреждение.У COM DLL Hell есть два аспекта.Действительно плохая модификация публичных интерфейсов, а не назначение новых GUID.Клиентское приложение, которое не было перекомпилировано, имеет тенденцию аварийно завершать работу, когда оно вызывает совершенно неправильный метод, или бомбы с неприятным AccessViolationException, которое вообще не дает ни малейшего понятия, что может быть за причина.право (назначение новых идентификаторов GUID), но затем перезаписывает существующую DLL новой версией.Вы по-прежнему будете аварийно завершать работу этого устаревшего клиентского приложения, но более мягко с результатом E_NOINTERFACE, который генерирует довольно специфическое исключение, которое помогает вам диагностировать причину.Однако пользователь ничуть не счастливее.
В этом сценарии есть готовое решение в .NET, GAC поддерживает параллельное развертывание сборок с разными номерами версий, так что обастарая и новая версии могут сосуществовать, и устаревшее клиентское приложение продолжает радоваться старой версии.Что требует сильного имени.Да, это предупреждение, безусловно, могло быть подавлено, когда вы используете / codebase, так как это ясно показывает, что вы не собираетесь использовать GAC.Хотя это не повредит немного подправить нос при использовании / codebase.Кроме того, вы никогда не используете GAC на своем компьютере разработчика во время тестирования, но, безусловно, должны учитывать его при развертывании.