以优雅的方式停止错误的发布编译
本文关键字:布编译 编译 错误 方式停 | 更新日期: 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
}