调试NuGet包 - 没有显示源的符号

gwi*_*g33 7 c# debug-symbols symbol-server nuget visual-studio-2012

我正在尝试为我的库构建nuget包和符号.我正在使用TeamCity构建软件包,然后将它们推送到我的内部SymbolSource仓库.

一切似乎都在构建/打包/推送很好,但是当我去调试我的nuget包(使用VS2012)时,源代码不正确,更好的是,我找不到它在任何地方显示的方法名称图书馆.

我的项目结构:

MyProject /
  Bin/
    release/
      MyProject.dll
  VariousFolders/
    CSFiles.cs
  VariousCSFiles.cs
  MyProject.csproj
  MyProject.nuspec
Run Code Online (Sandbox Code Playgroud)

在我的.nuspec文件中(注意,在TeamCity端处理v4.0和v4.5目录):

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyProject</id>
    <version>0.0</version>
    <title>MyProject</title>
    <authors>Me</authors>
    <owners>Possibly You</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Sweet Description</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2013</copyright>
  </metadata>
  <files>
    <file src="MyProject\**\*.cs" target="src" />
    <file src="MyProject\bin\release\v4.0\*.dll" target="lib\net40" />
    <file src="MyProject\bin\release\v4.0\*.pdb" target="lib\net40" />
    <file src="MyProject\bin\release\v4.5\*.dll" target="lib\net45" />
    <file src="MyProject\bin\release\v4.5\*.pdb" target="lib\net45" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

检查teamcity产生了MyProject.0.0.nupkg

lib/
  net40/
    MyProject.dll
  net45/
    MyProject.dll
Run Code Online (Sandbox Code Playgroud)

检查TeamCity生成了MyProject.0.0.symbols.nupkg

lib/
  net40/
    MyProject.dll
    MyProject.pdb
  net45/
    MyProject.dll
    MyProject.pdb
src/
  VariousFolders/
    CSFiles.cs
  VariousCSFiles.cs
Run Code Online (Sandbox Code Playgroud)

所以我假设的问题是,当我将包推送到我的内部符号repo时,我去查看文件结构,如下所示:

Data/
  MyProject/
    0.0/
      Bianaries/
        MyProject/
          some_hash/
            MyProject.dll
            MyProject.pdb
            MyProject.txt
      Sources/
        [Empty]
      MyProject.0.0.nupkg
Run Code Online (Sandbox Code Playgroud)

Sources文件夹是空的,100%为空,我似乎无法将任何.cs文件放到'Sources'文件夹中,但是再一次,我不知道nuget push到我的repo之间到底发生了什么.实际转储到数据文件夹和VS2012神奇地拉入调试符号.

所以,我完全不知道接下来要去哪里检查.

Pri*_*era 0

不确定这是否有效。但是你尝试过重置VS2012设置吗?您可以通过“工具”->“导入和导出设置”来执行此操作,然后在对话框中选择“重置所有设置”选项。如果需要,您可以保存当前设置。