Как выполнять отладку с использованием исходного кода Nuget

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

Я создал следующий файл Nuspec

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
        <id>My Assembly</id>
        <version>1.0.0</version>
        <title>My Assembly</title>
        <authors>Me</authors>
        <owners>Me</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>My description</description>
        <copyright>© Me 2014</copyright>
          <dependencies>
            <dependency id="Autofac" />
            <dependency id="Autofac.Configuration" />
            <dependency id="Autofac.Web"/>
            <dependency id="AutoMapper" />
            <dependency id="FluentNHibernate" />
            <dependency id="Iesi.Collections"/>
            <dependency id="Newtonsoft.Json" />
            <dependency id="NHibernate"/>
        </dependencies>
          <frameworkAssemblies>
  <frameworkAssembly assemblyName="System.Web" />
</frameworkAssemblies>
    </metadata>
   <files>
    <file src="bin\MyAssembly.dll" target="lib" />
    <file src="bin\MyAssembly.pdb" target="lib" />
    <file src="**\*.cs" target="src"/>
  </files>          
</package>

Когда я добавляю сборку этого файла Nuspec, я получаю хороший пакет, включающий мою DLL, а также папку с именем src, содержащую исходный код.

Чего я не вижу, так это заставить Visual Studio использовать файлы .cs в каталоге src при отладке с помощью указанной DLL (все, что я сейчас получаю, - это предварительный просмотр). Возможно ли это, я предполагаю, что так и должно быть, однако я не могу найти примеров того, как это сделать.

Изменить: спасибо за принятый ответ. Просто отметим, что другим способом, который я нашел для этого, является добавление папки «src» для пакета Nuget в список потребляющих решений «Общие свойства» -> «Исходные файлы отладки».


person StrictlySocial    schedule 17.11.2014    source источник


Ответы (1)


Пока вы запускаете свою программу, вы можете вызвать окно Debug|Modules. Оттуда вы можете выбрать DLL и найти соответствующий файл PDB. После этого вы можете вручную открыть исходный файл CS и установить в нем точки останова. Visual Studio проверит, соответствуют ли PDB и CS скомпилированному файлу CS, но это должно быть нормально, поскольку вы упаковываете их вместе.

person fejesjoco    schedule 17.11.2014
comment
Спасибо, я изменил свой вопрос, чтобы включить немного больше информации. Жаль, что VS автоматически не проверяет папку «src», так как это в значительной степени считается местом по умолчанию для включения исходного кода в пакеты Nuget. - person StrictlySocial; 17.11.2014
comment
Спасибо за информацию, я раньше не видел этот диалог VS. NuGet по-прежнему кажется аутсайдером в VS. - person fejesjoco; 17.11.2014
comment
Исходя из IntelliJ / Java, я абсолютно поражен тем, что источники не связаны по умолчанию, если они были представлены в пакете NuGet. Конечно, я что-то пропустил. - person Ryan The Leach; 13.09.2017