如何使用Nuget源代码进行调试

时间:2014-11-17 12:34:47

标签: c# visual-studio nuget nuspec

作为临时解决方案(直到我们获得内部Symbol服务器设置),我正在尝试构建包含DLL的所有源代码的Nuget包,以便我们的用户可以调试其代码。

我已经构建了以下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在使用引用的DLL进行调试时使用src目录中的.cs文件(我目前得到的只是一个解密的预览版)。这可能是,我认为它应该是,但是我无法找到任何如何做到这一点的例子。

编辑: 谢谢你接受的答案。需要注意的是,我发现这样做的另一种方法是添加&#39; src&#39;消费解决方案中的Nuget包的文件夹Common Properties - &gt;调试源文件列表。

1 个答案:

答案 0 :(得分:0)

在运行程序时,可以调出Debug | Modules窗口。从那里,您可以选择DLL并浏览相应的PDB文件。之后,您可以手动打开源CS文件并在其中设置断点。 Visual Studio将验证PDB和CS是否与编译的CS文件相对应,但由于您将它们打包在一起,因此应该没问题。