ant*_*ell 67 c# deployment teamcity symbol-server nuget
我已将我的团队使用的库放入从TeamCity部署到网络文件夹的nuget包中.我虽然无法调试这段代码!SymbolSource是我读过的一个解决方案,但我更愿意找到一些方法直接从Teamcity访问.pdb /源文件.有谁知道如何做到这一点?
编辑. 当我签'Include Symbols and Source'
入Nuget Pack构建步骤时,除了网络文件夹中的.nupkg文件之外,TeamCity还会创建.Symbol.nupkg..Symbol.nupkg包含src和.pdb文件.
编辑. 我'Include Symbols and Source'
在TeamCity上取消选中并将以下内容添加到我的nuspec文件中:
<files>
<file src="..\MyLibrary\bin\release\MyLibrary.dll" target="lib\net40" />
<file src="..\MyLibrary\bin\release\MyLibrary.pdb" target="lib\net40" />
<file src="..\MyLibrary\*.cs" target="src" />
<file src="..\MyLibrary\**\*.cs" target="src" />
</files>
Run Code Online (Sandbox Code Playgroud)
这在nuget包中添加了我的库的dll,pdb和源文件,并且没有生成.Symbols文件,我认为这只是符号服务器所需要的.
Gra*_*ham 69
这意味着您将能够单步执行代码并查看异常,但您可能必须在磁盘上找到一个文件并在设置断点之前将其打开.显然你需要注意源是正确的修订版.
关于步骤1的更多细节
如果你当前正在打包没有Nuspec,你需要创建一个Nuspec,然后将pdb添加到lib文件夹中的文件列表"NuGet spec"可能是一个有用的命令,用于生成NuGet中定义的初始规范docs.然后确保Team City Nuget Pack步骤引用您的新nuspec.
关于第2步的更多细节
打开解决方案后,右键单击Solution,选择Properties ... Common Properties ... Debug Source Files,然后添加相关二进制引用的根源目录.或者参见MSDN.注意,调试时无法打开解决方案属性.
从Visual Studio 2017 15.5 preview2中,您可以将以下内容添加到项目文件中:
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbolsInPackage>true</IncludeSymbolsInPackage>
<DebugSymbols>true</DebugSymbols>
<DebugType>portable</DebugType> <!-- Required for EmbedSources -->
<EmbedSources>true</EmbedSources>
</PropertyGroup>
<ItemGroup>
<!-- Does the equivalent of EmbedSources in MSBuild (hopefully won't be needed long term) -->
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这个方法还处于早期阶段,可能会有一些注意事项,请参阅此评论的底部和相关讨论以了解更多信息.
ant*_*ell 29
最新版本的dotPeek(免费!)可以充当符号服务器并动态生成pdb文件.这使我可以调试通过teamcity提供的dll.
在这里下载:
http://blog.jetbrains.com/dotnet/2014/04/09/introducing-dotpeek-1-2-early-access-program/
有关如何在此处进行设置的说明.
小智 8
您当然可以设置和配置自己的符号服务器,但它可能最容易......
所有这一切都可以通过ProGet的免费版本完成.
免责声明 - 我的日常工作是在Inedo
小智 6
在你的.nuspec
(直接下<package>
):
<files>
<file src="bin\$configuration$\$id$.pdb" target="lib\net451\" />
</files>
Run Code Online (Sandbox Code Playgroud)
(更改net451
为您正在编译的平台)