Предполагая только конфигурацию отладки и выпуска, символ DEBUG по умолчанию определяется с конфигурацией отладки, поэтому приведенный ниже код в AssemblyInfo.cs (в папке «Свойства»).
#if DEBUG
[assembly: AssemblyTitle("Debug")]
#else
[assembly: AssemblyTitle("Release")]
#endif
Я использую AssemblyTitle вместо AssemblyDescription, так как он будет отображаться в свойствах моего проводника Windows 7:
![Свойства файла DLL](https://i.stack.imgur.com/MKNlL.png)
Для тех, кому нравится ответ Дэвида и Стивига, вот сценарий LINQPad, написанный на C#. Чтобы использовать сценарий, вам необходимо загрузить LINQPad 5 и убедиться, что выбрана программа C#, как показано на скриншоте ниже.
Просто замените DLL_FOLDER_PATH, чтобы указать на папку, содержащую DLL для проверки.
// TODO - Specify your folder containing DLLs to inspect
static string DLL_FOLDER_PATH = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0";
void Main()
{
(from dllPath in Directory.GetFiles(DLL_FOLDER_PATH, "*.dll")
let assembly = dllPath.SafeLoad()
let build = assembly == null ? "Error" : (dllPath.SafeLoad().IsAssemblyDebugBuild() ? "Debug" : "Release")
select new {
Assembly_Path = dllPath,
Build = build,
}).Dump();
}
static class Extensions {
public static bool IsAssemblyDebugBuild(this Assembly assembly)
{
return assembly.GetCustomAttributes(false).OfType<DebuggableAttribute>().Select(da => da.IsJITTrackingEnabled).FirstOrDefault();
}
public static Assembly SafeLoad(this string path){
try{
return Assembly.LoadFrom(path);
}
catch {
return null;
}
}
}
![Проверка выпуска или отладочной сборки с помощью LINQPad5](https://i.stack.imgur.com/6pO21.png)
LINQPAD 5 можно загрузить здесь.
person
Chris Voon
schedule
10.03.2016