在代码

时间:2016-01-08 08:04:08

标签: c# macros pre-build-event

由于原因,我需要从我的代码中读取TargetName-Macro的值。它必须是编译时常量。 我看了一下Reflection.Assembly,但是反射似乎没有帮助我,因为我的模块既不是执行程序集,也不会从反射中获得编译时间常量。

我有什么方法可以半动态,例如作为预先构建的步骤,稍后在我的代码中使用ProjectSettings-Macros?

1 个答案:

答案 0 :(得分:0)

当你的代码运行时,你的模块 正在执行的程序集,所以在这种情况下它会帮助你。

这不是你的条目汇编,但这是另一回事。

目标名称是程序集名称,它实际上是没有扩展名的执行程序集文件名。

实际上,您可以使用正在执行的程序集的CodeBase属性,并使用Path库来获取其文件名而不使用扩展名。

使用此:

Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase)