Я подозреваю, что нет никакой строки в вашем коде, которая вызывает это, поскольку вы говорите, что не используете типы System.Windows.Forms, и ошибка компилятора не указывает на (полезную) строку вашего кода.
Я думаю, что происходит то, что вы ссылаетесь на библиотеку, которая имеет публично видимый метод или свойство, которое либо возвращает System.Windows.Forms.Control, либо принимает его в качестве параметра. Не имеет значения, действительно ли вы в итоге вызываете этот метод / свойство, тот факт, что он является публично видимым, означает, что ваш собственный код должен иметь возможность разрешать все типы, которые использует библиотека. Если бы библиотека использовала только System.Windows.Forms для внутреннего использования , этого не произошло бы.
Это также означает, что просто просмотр зависимостей сборок, от которых вы зависите, может просто сузить список подозреваемых, поскольку могут быть некоторые сборки, которые зависят от System.Windows.Forms внутри (без проблем) и проблемная сборка с открытым параметром / возвращаемым значением типа из сборки SWForms.
Мое предложение заключается в том, что вы просто создаете пустой проект без ссылки на S.W.Forms, затем по очереди добавляете каждую из ваших зависимостей и пытаетесь скомпилировать их после каждой.