2

通过一些自定义逻辑,我在我的 Asp Mvc 4 应用程序中为我的 Web 配置添加了一个模板。当我需要修改 web.config 文件时,我正在为其编辑模板文件,并且当我运行应用程序时,更改会在 web 配置文件中被替换。问题是,当我通过 nuget 添加需要修改 Web 配置文件的包时,我丢失了这些设置,因为所有内容都从我的模板文件中覆盖。有没有办法以某种方式强制 nuget 包修改一些自定义 xml 文件而不是原始的 web 配置文件。例如,修改mytemplate.xml 而不是web.config.xml.

我在这个领域很新,找不到我的问题的解决方案。据我了解,需要修改 web.config 文件的包带有web.config.transform合并所需字段的文件,我唯一的解决方案是将包添加到我的 web 配置文件中的设置手动替换到模板文件中。还有其他解决方案吗?谢谢!

4

1 回答 1

1

您正在使用 web.config 文件做两件不同的事情:

  1. nuget 包的静态配置
  2. 站点的动态配置

web.config 文件允许您在外部文件中定义一些设置并导入它们 - 例如

  <configuration>
    ...
    <appSettings configSource="appSettings.config" />
    ...
  </configuration>

这是 appSettings.config:

  <appSettings>
    <add key="umbracoDbDSN" value="..."/>
    <add key="DefaultInstanceName" value="..."/>
    <add key="aspnet:MaxHttpCollectionKeys" value="..."/>
  </appSettings>

您不太可能需要在每次构建时完全重新生成 web.config,可能只需要特定部分 - 如果这些不与您安装的包冲突,那么这种方法将为您提供应用程序所需的灵活性。

或 B 计划

packages.config列出解决方案中的所有活动包

包将其 web.config 设置存储在本地文件中: /packages/package/content/Web.config.transform

您能否将构建 web.config 文件的过程扩展为:

  1. 枚举活动包
  2. 检查内容/Web.config.transform 文件
  3. 将这些文件合并到您的 web.config 构建管道中

我看不到任何重新配置​​ nuget以将配置推送到不同文件的方法。

于 2013-10-25T12:07:26.927 回答