Я использую Visual Studio 2008 и встроенные инструменты установки для клиентского приложения C#. Как я могу использовать этот установщик для установки шрифта на клиентском компьютере (если его еще нет)?





Взгляните на эту статью.
http://www.atakala.com/Browser/Item.aspx?user_id=amos&dict_id=83
Самый важный вызов - это вызов AddFontResource Win32 API, хотя описанная последовательность операций должна соблюдаться для того, чтобы вы установили рабочий шрифт в системе.
http://msdn.microsoft.com/en-us/library/ms534231(VS.85).aspx
The AddFontResource function adds the font resource from the specified file to the system font table. The font can subsequently be used for text output by any application.
вы оба правы - файл шрифта нужно скопировать в папку Fonts, а затем добавить AddFontResource с именем также.
Я только что проверил, достаточно ли простого добавления шрифта в папку шрифтов проекта VS, и беспокоился, что мне придется вручную выполнять эти вызовы. К счастью, у проекта VS есть свойство Register = vsdrfFont, поэтому я предполагаю, что установщик делает это автоматически.
В VS2005 (так что я предполагаю также 2008) щелкните правой кнопкой мыши файловую систему на целевой машине, добавьте специальную папку -> папку шрифтов, затем поместите туда свой файл шрифта.
Я использую InnoSetup для доставки своих приложений VS. Он позволяет вам устанавливать шрифты из вашей системы в клиентскую систему.
Я никогда не тестировал в Windows 7 или Vista (возможно, у вас возникнут проблемы с разрешениями).
Помните, что не все шрифты распространяются бесплатно.
Для меня Тимоти Картер в основном правильно ответил:
«щелкните правой кнопкой мыши файловую систему на целевой машине, добавьте специальную папку -> папку шрифтов, затем поместите туда файл шрифта».
Но этого было недостаточно. Фактически, шрифты не были установлены как системные шрифты.
Чтобы установить шрифты, мне пришлось посетить свойства каждого файла шрифта и изменить Register = vsdrfDoNoRegister на Register = vsdrfFont. После этого созданный мной установочный файл также установит шрифт!
Это не устанавливает шрифт, поэтому он постоянно доступен для системы. Он загружает его только в текущий сеанс, поэтому он будет потерян при перезагрузке системы. Для правильной установки шрифта его необходимо помимо этого поместить в папку системных шрифтов и зарегистрировать в реестре.