7

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

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

我的项目结构:

MyProject /
  Bin/
    release/
      MyProject.dll
  VariousFolders/
    CSFiles.cs
  VariousCSFiles.cs
  MyProject.csproj
  MyProject.nuspec

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

<?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>

检查 teamcity 产生的 MyProject.0.0.nupkg

lib/
  net40/
    MyProject.dll
  net45/
    MyProject.dll

检查 TeamCity 产生的 MyProject.0.0.symbols.nupkg

lib/
  net40/
    MyProject.dll
    MyProject.pdb
  net45/
    MyProject.dll
    MyProject.pdb
src/
  VariousFolders/
    CSFiles.cs
  VariousCSFiles.cs

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

Data/
  MyProject/
    0.0/
      Bianaries/
        MyProject/
          some_hash/
            MyProject.dll
            MyProject.pdb
            MyProject.txt
      Sources/
        [Empty]
      MyProject.0.0.nupkg

Sources 文件夹是空的,100% 是空的,我似乎无法将任何 .cs 文件放入该“Sources”文件夹,但话又说回来,我不知道 nuget push 到我的 repo 之间到底发生了什么,实际转储到数据文件夹中,VS2012 神奇地拉入调试符号。

所以,我完全不知道下一步该去哪里检查。

4

1 回答 1

0

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

于 2013-11-05T09:03:30.517 回答