Изменить значок для исполняемого файла .NET после сборки? - PullRequest
1 голос
/ 24 марта 2009

У меня есть приложение .NET, которое я выпускаю несколько разных версий - одно и то же приложение, но с разным «брендированием» (заставка, имя и т. Д.). У меня есть все эти различия за пределами основного исполняемого файла, поэтому они обнаруживаются во время выполнения. Однако я не могу сделать это с помощью значка программы, потому что он запекается в EXE-файл.

Я бы хотел избежать создания множества разных проектов только для иконки. Есть ли способ изменить значок для уже созданного .NET EXE? У меня есть ощущение, что ILDASM.exe и ILAsm.exe могут быть здесь полезны, но я не уверен, что делать с разобранными битами, чтобы изменить значок, готовый к его передаче ILASM.

Должен ли я просто использовать сценарий, который изменяет исходный файл проекта, чтобы использовать новую иконку и перестраивать весь объект?

Или, может быть, я поступаю совершенно неправильно, любые предложения будут оценены.

Ответы [ 3 ]

1 голос
/ 24 марта 2009

Вы можете оставить свой exe "без бренда" и сохранить ваши иконки в виде отдельных файлов. Во время развертывания используйте соответствующий значок для ярлыков приложений.

0 голосов
/ 07 апреля 2009

В итоге мне нужно было изменить не только значок. Поэтому я использую CodeDom , чтобы сгенерировать заглушку exe со всеми правильными битами, которые ссылаются на «реальную» стартовую сборку, и просто вызывает ее версию «main».

Установка правильного значка для этого была просто вопросом использования

var compilerParams = new CompilerParameters
{
  GenerateExecutable = true,
  CompilerOptions = string.Format("/target:winexe /win32icon:\"{0}\"", iconPath)
  // ... other options ...
}

при звонке:

var codeProvider = new CSharpCodeProvider();
codeProvider.CompileAssemblyFromSource(compilerParams, new[] { sourceCode });
0 голосов
/ 24 марта 2009

Проверьте ResHacker.exe или XN Resource Editor. Я не использовал XN Resource Editor, но использовал ResHacker для изменения ресурса значков в PE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...