Я искал способ избежать использования путей исходного файла (с компьютера разработчика) в файле pdb.Причина этого состоит в том, чтобы избежать ненужных длинных путей в трассировках стека и скрыть потенциально запутанную структуру / имена папок, поскольку все необработанные исключения сообщаются серверу (как часть системы анонимных сообщений об ошибках).
Я обнаружил эта статья , где предлагаемое решение должно использовать <PathMap>
в файле .csproj
, например:
<AppOutputBase>$(MSBuildProjectDirectory)\</AppOutputBase>
<PathMap>$(AppOutputBase)=X:\test\</PathMap>
Как указано в статье ...
Снова собираем приложение, теперь пути меняются на X: \ test.Это также означает, что, когда исключение генерируется и т. Е. Регистрируется, у исключения будут новые пути в трассировке стека.
Unhandled Exception: System.InvalidOperationException: Operation is not valid due to the current
state of the object.
at ConsoleApp1.Program.Main(String[] args) in X:\test\Program.cs:line 9
... это прекрасно работает.
Однако у меня есть опасения, что при изменении MSBuildProjectDirectory
возможны проблемы.Поэтому я хотел бы получить второе мнение:
Это безопасная вещь?