【发布时间】:2021-03-15 08:10:49
【问题描述】:
我使用的是 ASP.NET Core 5.0,因为它是在不久前发布的,今天我发现了一些奇怪的东西。 我为我的软件制作了一个安装程序,它会自动过滤掉进入我的发布版本的每个 .pdb 文件。一种从未引起问题的机制。
但是新的.NET 5.0运行时好像有问题,IIS抱怨找不到文件runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.pdb强>。
我想知道为什么缺少调试符号会成为发布版本(或任何版本)的问题,并做了一些研究。我发现有问题的文件是 MyProject.deps.json
中的条目"Microsoft.Data.SqlClient.SNI.runtime/2.0.1": {
"runtimeTargets": {
"runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll": {
"rid": "win-arm",
"assetType": "native",
"fileVersion": "2.0.1.0"
},
"runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.pdb": {
"rid": "win-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "2.0.1.0"
},
"runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.pdb": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "2.0.1.0"
},
"runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.pdb": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "2.0.1.0"
},
"runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.pdb": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
如您所见,其中有 4 个 .pdb 文件。我尝试删除导致问题的一个条目,然后繁荣......现在一切正常。只需将 .pdb 文件添加到文件夹中也可以解决问题。所以我已经自己解决了实际问题。
我的问题是:我可以安全地从 .deps.json 中删除这些条目,还是会导致问题? 这可能是微软的错误吗?那些条目是不小心滑进去的吗?
【问题讨论】:
-
这非常有趣。我无法想象删除这些条目可能会导致执行问题。删除它们应该完全没问题。对我来说,更大的困惑是,如果这是生产构建的结果,为什么它首先包含对 pdb 文件的引用?
标签: asp.net-core pdb-files .net-5 asp.net-core-5.0