jor*_*ane 6 .net msbuild assemblies visual-studio pdb
当我在 Visual Studio 中将 C# 项目构建为发行版时,生成的 .exe 包含以下字符串:
\nC:\\Users\\jornane\\source\\repos\\\xc2\xabsolution\xc2\xbb\\\xc2\xabproject\xc2\xbb\\obj\\Release\\\xc2\xabname\xc2\xbb.pdb\nRun Code Online (Sandbox Code Playgroud)\n.exe 文件泄露了我的用户名和存储项目的路径。有什么办法可以防止这种情况发生吗?我理解为什么该路径适用于调试版本,但不适用于发布版本。
\n可以使用-pathmap编译器选项替换存储的 PDB 路径,例如以下生成的\xc2\xabname\xc2\xbb.exePDB 路径存储为.\\\xc2\xabname\xc2\xbb.pdb,而不是使用完整路径。
C:\\Users\\\xc2\xabuser\xc2\xbb\\source\\repos\\\xc2\xabsolution\xc2\xbb\\\xc2\xabproject\xc2\xbb>csc -debug -pathmap:"%cd%=." \xc2\xabname\xc2\xbb.cs\nRun Code Online (Sandbox Code Playgroud)\n该-pathmap选项未在 IDE 中公开,但可以.csproj通过在文件末尾附近添加以下内容直接设置到文件中。
<Project>\n<!-- ... -->\n <Import Project="$(MSBuildToolsPath)\\Microsoft.CSharp.targets" />\n <PropertyGroup>\n <!-- after \'Microsoft.CSharp.targets\' for \'IntermediateOutputPath\' to be defined -->\n <PathMap>$(MSBuildProjectDirectory)\\$(IntermediateOutputPath)=.</PathMap>\n </PropertyGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n替换<PathMap>为<PathMap Condition="\'$(Configuration)\'==\'Release\'">仅适用于发布版本的选项。
注意".":替换路径在上面的示例中设置为,因为csc不允许它为空 ( error CS8101: The pathmap option was incorrectly formatted)。.任何其他非空用户定义字符串也可以代替。
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |