12

在 AssemblyInfo.cs 文件中,我有以下小节:

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

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

在此处输入图像描述

还能在哪里找到?

问候

4

3 回答 3

13

您可以使用反射来获取此信息。我相信它会像下面这样。

Assembly assembly = Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(true);
var config = attributes.OfType<AssemblyConfigurationAttribute>().FirstOrDefault();
if (config != null) {
        Debug.WriteLine(config.Configuration);
}

进一步考虑这是您的意图吗?

如何检查是否使用调试或发布配置构建了程序集?

从顶部答案链接的博客文章显示了确定程序集是否可调试的更好方法:http: //stevesmithblog.com/blog/determine-whether-an-assembly-was-compiled-in-debug-mode/

一个答案表明,如果您使用 AssemblyDescription 属性有条件地在文本中包含 Release/Debug,您可以在 Windows 资源管理器中获得该信息。

于 2011-04-19T16:48:22.097 回答
3

您可以使用ILDASM.exe查看已编译的程序集。有关使用 ILDASM.exe 的信息,请参阅http://msdn.microsoft.com/en-us/library/ceats605.aspx

或者你可以使用反射通过代码来查看它,比如 System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes()

于 2011-04-19T16:43:19.240 回答
1

Windows 资源管理器属性表从 win32 VERSIONINFO资源中提取该信息。许多程序集属性可以映射到 win32 资源字段(并将由构建设置),但该AssemblyConfiguration属性可能不是其中之一。

如果您想查看所有程序集属性,包括那些不设置 win32 资源字段的属性,.NET Reflector是一种选择。

于 2011-04-19T16:38:59.073 回答