以优雅的方式停止错误的发布编译

本文关键字:布编译 编译 错误 方式停 | 更新日期: 2023-09-27 18:23:44

在开发过程中,您经常使用之类的东西

throw new NotImplementedException("Finish this off later") 

// TODO - Finish this off later

作为一个占位符,提醒你完成一些事情——但这些内容可能会被错过,并错误地出现在发布中。

你可以使用类似的东西

#if RELEASE
   Finish this off later
#endif

所以它不会在Release构建中编译——但有更优雅的方法吗?

以优雅的方式停止错误的发布编译

我在这里看到了一个优雅的实现

#if DEBUG
namespace FakeItEasy
{
    using System;
    using System.Diagnostics.CodeAnalysis;
    /// <summary>
    /// An exception that can be thrown before a member has been
    /// implemented, will cause the build to fail when not built in 
    /// debug mode.
    /// </summary>
    [Serializable]
    [SuppressMessage("Microsoft.Design",   
        "CA1032:ImplementStandardExceptionConstructors", 
        Justification = "Never used in production.")]
    public class MustBeImplementedException
        : Exception
    {
    }
}
#endif

我建议使用#warning:

#warning Finish this off later

并且在CCD_ 2配置中将CCD_ 3设置为CCD_。

在这种情况下,在Debug中,您将只将其视为警告,但在发行版中,它将引发异常。

您可以使用#error#warning指令抛出自己的构建错误和警告:

#if RELEASE
#error Not finished!
#endif

http://msdn.microsoft.com/en-us/library/c8tk0xsk(v=vs.80).aspx

您可以将其封装在它自己的方法中,这样,对于发布构建,只需在一个地方对其进行更改。

void NotImplemented()
{
    #if RELEASE
        Finish this off later
    #endif
}