Существует ли способ объединить pdb файлы с ilmerge?

По различным причинам мы используем ilmerge для помещения всех наших блоков приложения в один файл, таким образом, пользователь должен обработать всего один файл. К сожалению, кажется, что нет никакого способа объединить .pdb файлы с блоками. Кто-либо знает способ работать вокруг этого?

21
задан Patrick 17 September 2009 в 15:53
поделиться

1 ответ

В этом конкретном случае исключения должны быть достаточно редкими, чтобы обернуть его не должно быть полезной вещью и, вероятно, просто будет мешать обработке ошибок вниз по линии. Есть много примеров в .Net Framework, где конкретное исключение, которое я могу обработать, заключено в более общий, и это делает меня гораздо сложнее (хотя и не невозможно) для обработки конкретного случая.

-121--2406212-

На сервере:

mkdir my_project.git
cd my_project.git
git --bare init

На клиенте:

mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

Обратите внимание, что при добавлении источника существует несколько форматов и схем, которые можно использовать. Я рекомендую вам посмотреть, что предоставляет ваша служба хостинга.

-121--1824557-

Хорошо, я вычислил этот, хотя это заняло некоторое время.

Эта статья имеет/ndebug точно назад.

Из примечаний к релизу, которые поставляются с ILMerge (ILMerge.doc, акцент мой):

2,8 DebugInfo public bool DebugInfo {get; набор;} Если установлено значение true, ILMerge создает PDB-файл для выходная сборка и объединяет в нее любую Для входных сборок найдены файлы .pdb. Если вы не хотите, чтобы был создан файл .pdb для выходной сборки, любой набор это свойство имеет значение false или указано иначе параметр/ndebug в команде линия. По умолчанию: true Командная строка option :/ndebug

Решение заключается в том, чтобы не иметь этот флаг в командной строке. ILMerge будет объединять файлы pdb по умолчанию. Убедитесь, что все файлы PDB исходных сборок находятся в одном каталоге, а также в связанных с ними DLL, чтобы ILMerge мог найти их. (Мы используем ссылки на проект и имеем один проект ILMerge, который заботится об этом требовании.)

Вот соответствующий раздел из моего файла ILMerge csproj.

 <Target Name="AfterBuild">
    <CreateItem Include="@(ReferencePath)" Condition="'%(CopyLocal)'=='true'">
      <Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
    </CreateItem>
    <Exec Command="&quot;..\..\Libraries\Ilmerge.exe&quot; /copyattrs /allowMultiple /out:&quot;@(MainAssembly)&quot; &quot;@(IntermediateAssembly)&quot; @(IlmergeAssemblies->'&quot;%(FullPath)&quot;', ' ')" />
    <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
  </Target>

Для полноты описания я использую последнюю версию ilmerge.exe: Version 2,10,219,0 с последней измененной датой 2/19/2010 9:49 утра

29
ответ дан 29 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: