首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态编译ASP.NET网站

动态编译ASP.NET网站
EN

Stack Overflow用户
提问于 2013-08-26 17:15:06
回答 1查看 669关注 0票数 4

我希望根据我设置的配置/符号动态编译一个ASP.NET网站(而不是有.csproj的项目)。因此,在配置管理器下,我有以下内容:

代码语言:javascript
复制
DEVELOPMENT
STAGING
PRODUCTION

Default.aspx.cs中,我有:

代码语言:javascript
复制
#if PRODUCTION
      lblMessage.Text = "PRODUCTION";
#elif STAGING
      lblMessage.Text = "STAGING";
#elif DEVELOPMENT      
      lblMessage.Text = "DEVELOPMENT";
#endif

我在web.config上有:

代码语言:javascript
复制
  <system.codedom>
    <compilers>

      <compiler
           language="c#;cs;csharp" extension=".cs"
           compilerOptions="/d:DEVELOPMENT,STAGING,PRODUCTION"
           type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

    </compilers>

  </system.codedom>

然而,无论我选择哪种配置(开发、分期、生产),我总是在查看网页时(在重建之后)获得产品。奇怪的是,它总是编译"compilerOptions“属性中的最后一个。

虽然我可以找到各种问题的答案,为这个问题,但它不适用于我。我看过/尝试过,但没有成功:

http://odetocode.com/blogs/scott/archive/2005/12/01/conditional-compilation-in-asp-net-2-0.aspx

未定义条件编译符号

http://blog.aggregatedintelligence.com/2008/07/conditional-compilation-in-aspnet.html

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-06 19:23:44

在项目中使用构建配置可以更好地处理这一问题。很可能目前还没有定义正确的符号。默认情况下,有一个调试和发布配置。您需要创建/编辑您的构建配置来匹配您的符号。此方法将允许您只从下拉对话框中选择要使用的build配置,然后再编译。

此外,有许多项目,我把自己画到了一个角落与各种#if DEBUG疯狂。如果您可以在配置文件中加入这些条件,并实现配置变换,那么将来您(或您的继任者)的生活就会变得更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18449418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档