2

作为一个临时解决方案(直到我们获得内部符号服务器设置),我正在尝试构建包含 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 文件(我目前得到的只是一个反汇编的预览)。这可能吗,我认为应该是,但是我找不到任何有关如何执行此操作的示例。

编辑:感谢您接受的答案。请注意,我发现执行此操作的另一种方法是在消费解决方案 Common Properties -> Debug Source Files 列表中添加 Nuget 包的“src”文件夹。

4

1 回答 1

0

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

于 2014-11-17T12:41:51.400 回答