我正在使用 ASP.NET Core 5.0,因为它刚刚发布不久,今天我注意到一些奇怪的事情。
我为我的软件制作了一个安装程序,它会自动过滤掉进入我的发布版本的每个 .pdb 文件。一种永远不会引起问题的机制。
但是新的.NET 5.0运行时似乎有问题,IIS抱怨找不到该文件运行时/win-x86/native/Microsoft.Data.SqlClient.SNI.pdb.
我想知道为什么缺少调试符号对于发布版本(或任何版本)来说会是一个问题,并做了一些研究。我发现有问题的文件是 en 条目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 中删除条目吗?这可能会导致问题吗?
这可能是微软的一个错误吗?这些条目是偶然滑进去的吗?