Использование памяти программой не на 100% связано с размером ее двоичного файла или ресурсов.
Это зависит от того, что делает ваша программа. Например, если вы создаете что-то вроде этого:
List<int> list = new List<int>();
for (i=1; i<100000; i++) list.Add(i);
Это займет столько памяти, сколько нужно для хранения целых чисел плюс накладные расходы на объект.
И это зависит от того, что вы использовали.
Вы пометили свой пост winforms - я полагаю, у вас есть приложение графического интерфейса. Использование памяти графическим интерфейсом зависит от используемых элементов управления и стиля графического интерфейса (например, анимации, эффектов наведения ...)
И .NET имеет сборщик мусора, который освобождает неиспользуемую память во время выполнения.