首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Web配置转换不起作用

Web配置转换不起作用
EN

Stack Overflow用户
提问于 2012-01-13 03:26:41
回答 4查看 72.9K关注 0票数 95

在.NET MVC3.0应用程序中,我在appSettings中有以下配置

web.config

<appSettings>
<add key="SMTPHost" value="mail.domain.com"/>
    <add key="SMTPUsername" value="user@gmail.com"/>
    <add key="SMTPPort" value="25"/>
    <add key="SMTPPwd" value="mypassword"/>
    <add key="EmailFrom" value="notific@gmail.com"/>
</appSettings>

为了进行调试,我定义了以下配置转换:

web.Debug.config

<appSettings>
    <add  key="SMTPPort" value="58" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>

我在调试模式下运行应用程序,但是我的SMTP端口仍然从web.config而不是web.Debug.config获取值。

有没有人能建议一下这个配置中可能出了什么问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-13 03:28:04

Web.config转换仅作为发布操作的一部分应用。

如果您希望这作为app.config构建操作的一部分来完成,那么您可以使用SlowCheetah - XML Transforms Visual Studio插件:

http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

票数 166
EN

Stack Overflow用户

发布于 2019-06-01 05:20:23

对于VS 2017,我找到了答案here,不确定为什么上面没有人引用它,因为它似乎是一个非常受欢迎的解决方案。也很简单。确保你在Mar5 2019上看到来自IOrlandoni的评论,让它在VS 2017和所有版本中工作。

基本上它是两步走的。首先,编辑.csproj文件,附加以下代码。其次,创建一个新的web.base.config配置并将现有的web.config复制到其中。这样做之后,任何构建都会用您想要的转换覆盖您的web.config。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
    <TransformXml Source="Web.Base.config" 
        Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>  
票数 8
EN

Stack Overflow用户

发布于 2017-06-01 16:39:08

你直接的问题已经回答了--解释是转换是在发布时应用的,而不是在构建时应用的。

然而,我认为它并没有提供如何实现你想要做的事情的解决方案。

我已经在这个问题上挣扎了几天了,正在寻找一种方法来保持web.config的整洁,并在相应的转换文件中设置根据环境而变化的所有关键点。我的结论是,最简单和最稳定的解决方案是在原始web.config中使用调试值,这样当您在Visual Studio中进行调试运行时,它们总是存在的。

然后为您想要发布到的不同环境创建转换-测试、集成、生产-无论您拥有什么。现在内置的在发布时转换web.config文件的功能就足够了。不需要SlowCheetah或编辑构建事件或项目文件。如果你只有web项目,那就是。

如果您愿意,您也可以在解决方案中包含web.debug.config文件,以便保留一个单独的文件,其中包含与开发环境相关的所有值。但是,一定要在其中注明在Visual Studio中运行时不会应用这些值,以防其他人试图将其用于该目的!

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

https://stackoverflow.com/questions/8841075

复制
相关文章

相似问题

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