哪里可以找到装配配置信息?

时间:2011-04-19 16:34:21

标签: .net .net-assembly assemblyinfo

在AssemblyInfo.cs文件中的

我有以下子句:

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

在组装完成后可以看到这些信息?由于文件细节中没有任何内容:

enter image description here

在哪里可以找到它?

此致

3 个答案:

答案 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是一个选项。