Это основы объектно-ориентированного программирования.
IEnumerable - это интерфейс. Он определяет методы без их реализации.
Список - это класс и реализует IEnumerable. Это означает, что он обеспечивает реализацию интерфейсных методов. Вы можете иметь несколько реализаций интерфейса.
Ваш второй оператор не будет работать в любом случае, потому что вы не можете создать экземпляр (объект) интерфейса, только конкретного класса.
Пожалуйста, прочитайте некоторые основные книги или руководства об интерфейсах и oop вообще
За исключением метода Вы упомянули выше (devenv), нет никакого способа сделать это с текущей версией MSBuild.
Методом использование команды Visual Studio для выполнения их сборок MSI является с Windows Installer XML. Можно узнать больше об использовании WiX для развертывания установочных пакетов здесь.
Обратите внимание, что WiX не поддерживает vdproj файлы, таким образом, это означает воссоздание проектов установщика.
Править: Похож я был избит к преследованию при захвате моих ссылок :)
Мы используем Wix для автоматизации сборок MSI для IronPython и IronRuby.
Править: для разъяснения это, вероятно, означает запускаться с нуля при создании установщика. В то время как Wix имеет механизм для создания конфигурации непосредственно из существующего ранее файла MSI, я никогда не получал удовлетворительный результат использования этого инструмента