在我的项目中,在“构建 - 高级”部分中,我设置了“调试信息:嵌入”:
另外,我还设置了一个选项将我的项目打包为 nupkg 文件。
由于项目已构建,因此创建了一个 nupkg 文件,但是当我在调试另一个项目时使用此 nupkg 文件时,不包含任何符号,nupkg 文件内也不包含 PDB 文件。
我的问题:据我了解,我必须执行不同的步骤才能将 PDB 文件包含到我的 nupkg 中。在这种情况下,“调试信息:嵌入”选项的目的是什么,为什么它可用以及它有什么作用?由于即使启用此选项,结果包文件中也不包含调试信息。
谢谢。
将调试信息嵌入到构建中不包括任何
调试符号
Debugging information: Embedded
意思是MSBuild将嵌入PDB文件直接写入目标DLL,意味着DLL不仅包含自己的DLL,还包含PDB文件的内容。 ADLL已经包含两个内容:本身和pdb
file.
随着项目的构建,会创建一个 nupkg 文件,但是当我使用
在调试另一个项目时,此 nupkg 文件没有符号
包含,PDB 文件也不包含在 nupkg 文件内。
所以你不必担心丢失pdb文件,它已经被放入DLL中了。
如果你想在另一个项目本地调试 nuget 包的内容,你应该只打包源文件(cs files
)到 nuget 包中。
1)在您的 lib 项目中添加此类包节点。
<ItemGroup>
<Compile Update="Class1.cs" Pack="true" PackagePath="SourceFiles"></Compile>
//add any source files like this if you want to debug their functions
</ItemGroup>
它将把源文件打包到一个名为的文件夹中源文件nupkg 的。
The purpose就是将源文件与nuget一起打包,这样可以直接从包中取出源文件进行后续调试,保证调试成功。
2)然后打包项目,在将这个新版本的包安装到项目中之前,应该先卸载旧的,清理 nuget 缓存或者直接删除下面的所有文件C:\Users\xxx(current user)\.nuget\packages
,然后安装新的。
3)在调试项目之前,您应该首先将 nuget 的源文件添加到解决方案中。否则,VS调试时会报找不到nuget源文件的错误。
右键单击解决方案-->特性-->共同属性-->调试源文件
输入源文件将 nuget 文件夹放入其中:
此外, 有一个类似的问题.
这是关于我的测试的示例:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)