我有一个旧版 .NET 应用程序,已移植到 .NET 6.0 并正在执行跨平台(Windows 和 Linux)。
许多遗留代码是通过硬编码路径创建来开发的,在字符串中使用反斜杠,例如
new StreamWriter(FeuxBarreFolderName + @"\\JazzSchmazz.txt");
Run Code Online (Sandbox Code Playgroud)
我已经转换成类似的东西
new StreamWriter(Path.Combine(FeuxBarreFolderName, "JazzSchmazz.txt"));
Run Code Online (Sandbox Code Playgroud)
我想防止任何开发人员意外或故意在硬编码路径中再次添加 \ 。除了在代码审查时处理此问题之外,是否有一种方法可以通过代码分析或测试时的严重失败自动执行此操作?我的搜索没有帮助。
我曾经有过的想法
这里有更好的方法吗?
我正在尝试调试从 Visual Studio 2019(版本 16.11.10)运行 C#/.NET 6.0 控制台应用程序的 Linux 容器。
当我使用“调试/附加到进程...”连接到正在运行的容器并附加到我的进程时,出现错误:
无法启动调试适配器。输出窗口中可能会提供其他信息。
无法在“/home/dockeruser/.vs-debugger”找到调试器脚本
出于公司安全目的,我以用户dockeruser身份运行容器工作负载,但当我将 Dockerfile 调整为以用户 root 身份运行时,我可以重现此情况。错误信息变为
无法在“/root/.vs-debugger”找到调试器脚本
输出显示
Unable to find debugger script at '/home/dockeruser/.vs-debugger'.
Initialization log:
Determining user folder on remote system...
Checking for existing installation of debugging tools...
Downloading debugger launcher...
Creating debugger installation folder: /home/dockeruser/.vs-debugger
Copying debugger launcher to /home/dockeruser/.vs-debugger/GetVsDbg.sh
Failed: Failed to copy files.
Unable to find debugger script at '/home/dockeruser/.vs-debugger'.
Failed: Unable to find debugger script at '/home/dockeruser/.vs-debugger'.
The program '[1] …Run Code Online (Sandbox Code Playgroud)