Модификация манифеста генерируемой сборки (EXE)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 08.04.15 06:33
Оценка:
Господа, подскажите пожалуйста правильный способ модификации манифеста генерируемой сборки.

Мне нужно, на уровне секции assembly, добавить запись вида:
<file name = "_IBProvider_v3_vc12xp_w64_i.dll">
 <comClass progid="LCPI.IBProvider.3" clsid="{769A1280-04BF-11D8-AE8B-00A0C907DB93}" threadingModel = "Both" />
</file>


Руками все получается:
1. mt.exe -inputresource:YourApplication.exe;#1 -out:manifest.txt
2. добавляю в manifest.txt указанный "<file ...>...</file>"
3. mt.exe -outputresource:YourApplication.exe;#1 -manifest manifest.txt

И все работает.

Я конечно могу варварским способом запрограммировать эти три пункта непосредственно в csproj (AfterBuild).

Но вдруг я серьезно отстал от моды и это делается по-другому
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: Модификация манифеста генерируемой сборки (EXE)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 08.04.15 08:33
Оценка: 2 (1)
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Я конечно могу варварским способом запрограммировать эти три пункта непосредственно в csproj (AfterBuild).


Применил варварский способ и нашел более короткое решение

  <Target Name="BeforeBuild">
    <Error Text="WindowsSDK80Path not defined!" Condition="'$(WindowsSDK80Path)' == ''" />
  </Target>
  <Target Name="AfterBuild">
    <Message Importance="High" Text="Try to modify the assembly manifest" />
    <Exec Command="&quot;$(WindowsSDK80Path)bin\x86\mt.exe&quot; -updateresource:$(TargetPath);#1 -manifest ibprovider.manifest" />
  </Target>


Где ibprovider.manifest выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <file name = "_IBProvider_v3_vc12xp_w64_i.dll">
   <comClass progid="LCPI.IBProvider.3.64bit" clsid="{769A1280-04BF-11D8-AE8B-00A0C907DB93}" threadingModel = "Both" />
  </file>
</assembly>
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Free COM Registration .NET
Re: Модификация манифеста генерируемой сборки (EXE)
От: Andir Россия
Дата: 14.04.15 04:56
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Но вдруг я серьезно отстал от моды и это делается по-другому


VS автоматом включает манифест либо автоматически генерируемый, либо пользовательский — добавленный в проект. Регулируется на странице свойств проекта Icon & Manifest.

Внутри проекта это регулируется свойством:
  <PropertyGroup>
    <ApplicationManifest>app.manifest</ApplicationManifest>
  </PropertyGroup>


Хотя, конечно, mt.exe тоже никто не отменял.

С Уважением, Andir!
using(<< RSDN@Home 1.2.0 alpha 5 rev. 74>>) { /* Работаем */ }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.