是否可以使用新的 csproj 项目文件覆盖或清除 dll 构建中的调试路径?

Ste*_*ath 1 path csproj dumpbin pdb

当使用dumpbin来查看我的媒体库的详细信息:
dumpbin /headers Test.dll

我看到 {{FullFolder to Test.pdb}} 是 pdb 的完整文件夹。

调试目录

    Time Type        Size      RVA  Pointer
-------- ------- -------- -------- --------
95BA9373 cv            A1 000199D4    17BD4    Format: RSDS, {4AF64893-BAF4-4FF3-9343-E8D5A55E94FF}, 1, {{FullFolder to Test.pdb}}
00000000 repro          0 00000000        0
Run Code Online (Sandbox Code Playgroud)

有没有办法在 csproj 文件中排除这个?

我的 .csproj 看起来像:

<DebugType>full</DebugType>
<IncludeSource>True</IncludeSource>
<IncludeSymbols>True</IncludeSymbols>
<PdbPath>none</PdbPath>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Run Code Online (Sandbox Code Playgroud)

似乎该PdbPath元素不再以新的(vs2017 多框架) .csproj 格式工作?

Mar*_*ich 6

在 roslyn 2+ 中为此引入的编译器标志是/pathmap或 csproj 等效PathMap属性:

<PropertyGroup>
  <PathMap>$(MSBuildProjectDirectory)=/some/dir</PathMap>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)