当我构建并运行我的项目时,以下代码
Console.WriteLine("I am running in debug {0}", StaticConfiguration.IsRunningDebug);
在 debug 模式下产生 true ,在版本中产生 false 模式。然后我使用nuget添加一个包,nuget服务器是我们的本地nuget服务器,它是我们拥有并发布的库。
当我再次运行以上代码时,在 debug 模式下获得 true ,并 true 也处于发布模式。
//Get all non-nancy assemblies, and select the custom attributes
var assembliesInDebug
= AppDomainAssemblyTypeScanner.TypesOf<INancyModule>(ScanMode.ExcludeNancy)
.Select(x => x.Assembly.GetCustomAttributes(typeof(DebuggableAttribute), true))
.Where(x => x.Length != 0);
//if there are any, then return the IsJITTrackingEnabled
//else if the collection is empty it returns false
return assembliesInDebug.Any(d => ((DebuggableAttribute)d[0]).IsJITTrackingEnabled
);
当我在构建服务器上查看时,好像这些库是在发布模式下构建的。有什么想法可以找到吗?
更新:
我通过在Scott Hanselman网站上找到的代码来运行程序集,以检测它们是否以调试或发布模式构建。由于某些原因,两个下载的DLL均以 debug 模式构建。尽管在构建服务器上调用非常明确地说明了释放模式。
所以我现在假设,如果任何DLL是在调试模式下构建的,则整个构建都是因为调试模式
答案 0 :(得分:0)
添加软件包会使项目始终以调试模式运行
对于nuget软件包nancy
,这似乎是一个问题。
Nancy (2.0.0-clinteastwood) is a Debug build on net452
由于它不是正式发布的版本,我们可能需要等待正式版本才能解决此问题,您可以按照自己的评论并查看有关此问题的反馈。
希望这会有所帮助。