我有以下子句:
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
在组装完成后可以看到这些信息?由于文件细节中没有任何内容:
在哪里可以找到它?
此致
答案 0 :(得分:11)
您可以使用反射来获取此信息。我相信它会像以下那样。
Assembly assembly = Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(true);
var config = attributes.OfType<AssemblyConfigurationAttribute>().FirstOrDefault();
if (config != null) {
Debug.WriteLine(config.Configuration);
}
进一步思考这是你的意图吗?
How to check if an assembly was built using Debug or Release configuration?
从顶部答案链接的博客帖子显示了确定程序集是否可调试的更好方法:http://stevesmithblog.com/blog/determine-whether-an-assembly-was-compiled-in-debug-mode/
一个答案表明,如果您使用AssemblyDescription属性有条件地在文本中包含Release / Debug,则可以在Windows资源管理器中获取该信息。
答案 1 :(得分:3)
您可以使用 ILDASM.exe 查看已编译的程序集。有关使用ILDASM.exe的信息,请参阅http://msdn.microsoft.com/en-us/library/ceats605.aspx。
或者您可以使用Reflection通过代码查看它,例如
System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes()
答案 2 :(得分:1)
Windows资源管理器属性表从win32 VERSIONINFO资源中提取该信息。许多程序集属性可以是mapped to win32 resource fields(并且将由构建设置),但可能是AssemblyConfiguration
属性不是其中之一。
如果要查看所有程序集属性,包括那些未设置win32资源字段的程序集属性,.NET Reflector是一个选项。