Вопрос

Я работаю над проектом с проприетарным форматом файлов. В проекте есть большая программа, необходимая для установки, и меньшая программа просмотра, которая не требует установки. Я хотел бы иметь возможность экспортировать файлы из моего основного приложения, которые являются «самооткрывающимися» .exe, то есть вы можете дважды щелкнуть исполняемый файл, и встроенный файл отобразится (это сделано для того, чтобы передать средство просмотра людям, у которых есть НЕ установлено основное приложение, способное его просматривать - они будут только передавать документ).

Я немного не понимаю, как это сделать. Две мои мысли, которые я исследовал, зашли в тупик. Это:

1) Вставьте файл в программу просмотра. Я могу сделать это вручную через Visual Studio, и у меня есть рабочая демонстрация этого, но я не могу найти способ сделать это на лету.

2) Создайте самораспаковывающийся архив, который извлекает файл и исполняемый файл во временное состояние и запускает исполняемый файл с именем файла в командной строке. Это звучит просто и возможно (хотя и хакерски), но я столкнулся с проблемой, что архивирование или установка программ, похоже, не имеют командной строки, необходимой для всего этого.

Есть идеи? Я предпочитаю второй, потому что он простой, но первый, потому что он кажется более пуленепробиваемым / менее хакерским.

Это было полезно?

Решение

Хотя включение exe-файла в документ, чтобы сделать его самооткрывающимся документом, - отличная идея, я не думаю, что это лучшее решение проблемы.Проблема в том, что для документов требуется определенная программа для просмотра, которая недоступна.Так что сделайте так, чтобы зритель был максимально доступным.

И это то, что Xint0 предложил в комментариях.Найдите способ сделать зрителя максимально доступным.Не нужно беспокоиться о пиратстве, поскольку это только средство просмотра для закрытого формата, поэтому единственными заинтересованными в нем людьми будут люди, у которых уже есть документ, который они не могут открыть.Поэтому разместите средство просмотра на веб-сайте своей компании и поощряйте компании, использующие полную версию программного обеспечения, размещать ссылки на средство просмотра на своих веб-сайтах, чтобы их клиенты могли легко его найти.

Другие советы

Используя ваш метод (1):

Если вы используете .NET, вы можете сделать свою программу просмотра одной сборкой, а документ другой сборкой, а затем использовать ILMerge или тому подобное, чтобы объединить их в один окончательный исполняемый файл.

ILMerge - это программа командной строки, поэтому вы должны иметь возможность автоматизировать этот шаг.

Таким образом, должно быть довольно легко настроить вашу индивидуализированную программу просмотра, по сути, просто «загрузить другую сборку, которая находится со мной» и, возможно, вызвать функцию в другой сборке для получения данных.

Еще один фрагмент головоломки - как создать сборку «документа».Я не совсем уверен в шагах, но похоже, что это возможно.

Возможно, используйте CMake или аналогичный для создания проекта VStudio, а затем используйте MSBuild, чтобы встроить его в сборку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top