【问题标题】:ASP.NET 5 Class Library - Nuget package Web.Config transformASP.NET 5 类库 - Nuget 包 Web.Config 转换
【发布时间】:2015-06-09 17:20:49
【问题描述】:

我使用 Microsoft 提供的新项目结构创建了一个 ASP.NET 5 类库。我可以构建项目并将其托管在个人 Nuget Feed 上。唯一的问题是,我希望这个包在目标项目 Web.config 文件中插入一个密钥,它不配合。

构建项目会产生两个文件:

../artifacts/bin/{Project}/Debug/{Project}.nupkg ../artifacts/bin/{Project}/Debug/{Project}.symbols.nupkg

{Project}.nupkg 是我发布到托管 Nuget 供稿的内容。

我已经关注了Nuget docs,但无济于事。

我的web.config.transform 文件如下所示:

<configuration>
  <appSettings>
    <add key="Test Key" value="Test Value" />
  </appSettings>
</configuration>

在项目中安装时,web.config 文件保持不变。

ASP.NET 5 类库的项目结构与 Nuget 规范不完全一致(例如,它没有 contentlib >build 目录)。这可能是导致问题的原因吗?

编辑 我想在较旧的(.Net 4.5)项目中使用这个 Nuget 包。鉴于 ASP.NET 5 仍然很新,我还没有任何项目可以使用它的新结构(即 project.json)。话虽如此,如果可能的话,我想让包向后兼容旧的(ASP.NET 5 之前的项目)和新的(利用 JSON 文件结构的)。

【问题讨论】:

    标签: c# nuget-package asp.net-core visual-studio-2015 web.config-transform


    【解决方案1】:

    很遗憾,ASP.NET 5 不支持 NuGet 转换。如果您提供有关您的方案的更多详细信息,我们可能会看到是否有替代方案。

    另外,您应该避免使用 web.config。基于 JSON 文件的新配置系统。 (不过仍然支持 xml)

    【讨论】:

    • 感谢您提供的信息。问题是,我想在旧项目中使用这个 Nuget 包。鉴于 ASP.NET 5 仍然很新,我还没有任何项目可以使用它的新结构(即 project.json)。话虽如此,如果可能的话,我想让包向后兼容旧的(ASP.NET 5 之前的项目)和新的(利用 JSON 文件结构的)。我完全需要这样做的原因是因为我正在创建的包有一些配置选项,这些选项是从 appSettings 节点中的 web.config 读取的。
    • 是否可以设计需要 web.config 设置的代码来抛出异常并带有可操作的错误消息?基本上是告诉用户缺少设置。
    • 这可以做到,但我将如何设计代码来支持 ASP.NET 5 项目?也就是说,我了解到 ConfigurationManager 有点过时,所以我必须从其他地方为这些类型的项目提取应用程序设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多