-2
   #if DEBUG
                        mailMessage = new MailMessage("someEmail.com", "someEmail.com", subject, messsageBody);
   #else
                        mailMessage = new MailMessage(Membership.GetUser().Email, cppAccount.Email, subject, messsageBody);
   #endif

我有上面的代码,但即使我在发布时发布它仍然使用调试语句。这是一个 mvc4 c# 项目,此代码位于我的模型类之一中。

4

2 回答 2

2

这不是做你正在尝试的事情的最佳方式。例如,您应该在 web.config 中使用应用设置执行此操作。

<add key="MailMessageEnabled" value="true" />

然后在你的cs文件中做类似的事情 -

bool isEnabled = bool.Parse(ConfigurationManager.AppSettings["MailMessageEnabled"]);
mailMessage = isEnabled ? new MailMessage(Membership.GetUser().Email, cppAccount.Email, subject, messsageBody) 
            : new MailMessage("someEmail.com", "someEmail.com", subject, messsageBody);

您可以将配置的值在默认 Web 配置中设置为 true,在发布 Web 配置中设置为 false

于 2014-06-06T21:36:52.230 回答
1

正如 MoXplod 所说,您应该在 web.config 文件中执行此操作,但我认为使用 Transformation 更好,这样您就可以使用开发所需的值和 web.Release.config 使用您的 web.config 文件进行调试可以具有您在 PROD 环境中需要的值。检查http://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx了解有关转换的信息。

于 2014-06-06T21:43:26.637 回答