【问题标题】:Conditional Compilation in Visual Studio(C#)Visual Studio 中的条件编译(C#)
【发布时间】:2010-12-30 22:48:36
【问题描述】:

我正在尝试这样做,以便我们可以让我们的应用程序根据预处理器指令的存在表现出不同的行为。我读过您可以创建构建配置以根据您执行的构建定义不同的预处理器指令。好吧,我在 Visual Studio 中没有看到任何可以执行此操作的内容。我知道如何从命令行执行此操作,但不知道如何在 VS 2008 的自动化环境中执行此操作。

谁能告诉我如何创建一个新的构建配置,其中设置了预处理器指令?

还有,不知道有没有关系,但是我们的项目是一个ASP.Net网站

【问题讨论】:

  • IMO,这听起来最好通过 web.config 或 IoC/DI 之类的东西来完成。
  • 我们的 web.config 在源代码管理中。我们希望能够在不更改源代码管理中的文件的情况下测试每个配置。
  • 您可能很难找到有关这方面的信息,因为 C# 中没有预处理器。您正在寻找“条件编译”。
  • 是的,我知道这一点.. 不过我看不到用 asp.net 进行条件编译
  • 网站项目。有什么区别?

标签: c# visual-studio


【解决方案1】:

我什至没有办法控制 DEBUG 符号,它是一个 ASP.Net 网站

好的,问题来了。 ASP.net 网站选项使您对构建等的控制要少得多,因为它甚至不使用项目文件。

如果您完全可以切换,请切换到 ASP.net Web 应用程序。 Web 应用的行为将更像典型的 C# 项目(您有一个项目文件,csproj 文件的内容控制应用中的内容,而不仅仅是目录结构等。

转换后,您应该会看到您期望的选项。

这里是转换方向的链接:How To Convert ASP.NET Website to ASP.NET Web Application

【讨论】:

    【解决方案2】:

    如果你右键工程选择“属性”,然后选择“构建”选项卡,可以在“条件编译符号”中输入自定义编译符号。

    例如,如果您的代码如下所示:

    #if DEBUG
    // do something
    #else
    // do something else
    #end
    

    您可以将“DEBUG”设置为条件编译符号。

    您可以通过更改“配置”下拉菜单为不同的构建配置设置不同的值。

    【讨论】:

    • 这是我到处阅读的内容,我看到的唯一内容是“开始操作”“目标框架”“构建解决方案操作”“可访问性验证”.. 没有任何关于预处理器的内容在我可以列出的任何地方找。 @您的编辑:不存在用于输入“条件编译符号”的选项卡或任何内容
    • 有意思,这是什么类型的项目?在我的构建选项卡上,它显示了“常规”、“错误和警告”、“将警告视为错误”和“输出”等部分。 “条件编译符号”部分位于 General 下。
    • 我什至看不到控制 DEBUG 符号的方法。它是一个 ASP.Net 网站。我会发布一个屏幕截图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    相关资源
    最近更新 更多