我正在尝试编写一个小型生成事件实用程序来读取我的代码的当前程序集版本。
因此,我希望该可执行文件位于我的%path%(或至少某个中心位置)中,并且能够将目标程序集的相对路径作为参数(对assembly.LoadFile()它),但assembly.LoadFile()会抱怨接收到相对路径。
我该如何做:
C:\calling\path>mytool rel\path\target.exe
而不必每次都键入C:\devpath\to\mytool.exe?
并且能够在MyTool.exe中获得字符串“C:\calling\path\rel\path\to\target.exe”?
原来,这是有点痛。
C#程序集要求它的支持文件与它自己所在的目录相同,所以在简单的情况下,我们不能仅仅将exe复制到我们选择的目录中。
另一种可能是创建exe的快捷方式并将其移动到目录中。不幸的是,尽管C#有大量的“当前”路径getter,C#没有办法知道它是否是通过快捷方式启动的。
从C:\calling\path中的快捷方式调用时,将执行以下所有操作:
Console.WriteLine(Environment.CurrentDirectory);
Console.WriteLine(Directory.GetCurrentDirectory());
Console.WriteLine(Assembly.GetEntryAssembly().Location);
Console.WriteLine(System.AppDomain.CurrentDomain.BaseDirectory);
Console.WriteLine(System.AppContext.BaseDirectory);
//Console.WriteLine(Process.GetCurrentProcess().StartInfo.WorkingDirectory);
Console.WriteLine(Process.GetCurrentProcess().MainModule.FileName);
Console.WriteLine(Environment.GetCommandLineArgs()[0]);
返回“C:\devpath\to”的变体。process.startinfo除外,它只是崩溃。您无法获得您没有process.start()的进程的StartInfo,包括您自己的进程。
要检索“C:\Calling\Path”,似乎唯一可行的方法是在“C:\InPath”中创建一个批处理文件,直接调用原始程序集。
so:C:\inpath\exe.bat:
C:\devpath\to\mytool.exe %*
C:\devpath\to\mytool.cs:
Console.WriteLine(Environment.CurrentDirectory);
Console.WriteLine(Directory.GetCurrentDirectory());
这2个将返回“C:\calling\path”。
另一个选择是将C:\devpath\添加到路径
任何帮助都将不胜感激!
问题内容: 在Linux C程序中,如何打印pthread库创建的线程的线程ID? 例如:我们可以通过 问题答案: 函数将给出当前线程的线程ID。 该函数返回调用线程的Pthread句柄。pthread_self()函数不会返回调用线程的整数线程。您必须使用返回该线程的整数标识符。 注意: 比这些调用快得多,但是提供了相同的行为。
问题内容: 我有一个存储过程,在内部我想调用另一个返回记录集的过程,如何通过“ CALL”导航存储过程返回的记录集? [edit]我一直在尝试按照建议使用TEMPORARY TABLE,但存在问题: 我需要使用CALL,因为’rsHeadOfAnyDepartments’不是一个函数,但这将不被接受。 工作正在进行中,但到目前为止我还没有被编辑接受: 问题答案: 不可以,存储过程可以生成结果集,但
问题内容: 我正在使用Ubuntu。如何使用C程序获取本机或接口eth0的MAC地址。 问题答案: 您需要遍历计算机上所有可用的接口,并与标志一起使用以获取mac地址。mac地址将以6字节的二进制数组形式获取。您还希望跳过环回接口。
我有以下C代码: 我想查看此C代码编译为什么汇编代码,因此选择了以下选项: 此选项将输出每个C语句并直接在其下输出它对应的Assembly指令。但是有些C语句不对应于任何汇编指令(例如:)。所以我想确保在阅读生成的汇编代码时我的以下假设是正确的:
本文向大家介绍如何利用Emacs来调试C++程序,包括了如何利用Emacs来调试C++程序的使用技巧和注意事项,需要的朋友参考一下 俗话说,Emacs是神的编辑器,而Vim是编辑器之神。高手程序员都是用这两样神器进行开发。本人觉得,Emacs之所以厉害,是因为许多在其他编辑器下必须用鼠标点选很多步的操作,在Emacs下都可以通过键盘来完成。大大地节省了你在显示器上找按钮的时间。Emacs在Linu