我们知道一般开发组件之后,组件都有相关配置项,最常见的作法就是把它写到web.config里,而如果你将这个文件直接放到nuget里打包,在进行安装包包时,会提示你这个文件已经存在,不能去覆盖原来的config文件,这时,我们只能将配置信息写到别一个文本文件里,而使用者在安装包包后,还要手动将信息拷贝到自己的config文件,确实挺无奈的,没人愿意干这种重复的活!

解决这种现状

使用web.config.transform文件,将自己个性的信息写在里面,它将自动合并到现有config文件中

例如Microsoft.AspNet.WebApi.Core也有这个文件,Nuget如图

aaarticlea/png;base64,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" alt="" />

内容如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
</configuration>

当我们建立VS api项目之后,它会自动从nuget服务器上下载包包,并将config文件与本地的文件合并,确实觉得挺实用的,也彻底告别了我们的复制的工作,呵呵!

Nuget~让包包带上自己的配置信息的更多相关文章

  1. Mantis1.2.19 在Windows 平台上的安装配置详解

    安装环境: WindowsXP 32 Apache2.2.22+PHP5.4.39+MySQL5.5.28 一.简介 MantisBT是由PHP开发的.基于WEB的缺陷跟踪系统,并采用开源数据库MyS ...

  2. 在 CentOS 上安装和配置 OpenNebula

    转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...

  3. Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置

    Oracle 12cR1 RAC 在VMware Workstation上安装(上)-OS环境配置 1.1  整体规划部分 1.1.1  所需软件介绍 Oracle RAC不支持异构平台.在同一个集群 ...

  4. NuGet:自定义配置信息(2)

    有些类库项目打包后,如何让别人引用的时候自动添加上对应的配置项目呢,比如EntityFramework的NuGet包,打开后可以看到类似下面的结构: 空白处右击——Add Content Folder ...

  5. mac上php+nginx配置

    brew的安装: ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”php安装和配置bre ...

  6. 图文介绍openLDAP在windows上的安装配置

    目录 概述 测试环境 安装过程 配置启动 客户端介绍 多级DC的ldif文件的配置 [一].概述 什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何在windows平台 ...

  7. IDEA上tomcat的配置

    IDEA上tomcat的配置   IDEA上集成自己的tomcat,主要就是下面这张表的配置,不累述.

  8. Asp.net Core dotnet 发布类库文件 带上注释,发布预发行版,带上所有引用

    带上注释 效果图 带上所有引用 效果图 预发行版 效果图 由于微软取消了  project.json  这个json 转而用了csproj 用于保存配置 所以懵逼很大一会 资料来源 project.j ...

  9. 解决asp.net web api时间datetime自动带上带上的T和毫秒的问题

    今天用asp.net web api写微信小程序的接口时遇到一个问题. 返回的model中的datetime类型的字段自动转换成了“2014-11-08T01:50:06:234”这样的字符串,带上的 ...

随机推荐

  1. HDU 3746 (KMP求最小循环节) Cyclic Nacklace

    题意: 给出一个字符串,要求在后面添加最少的字符是的新串是循环的,且至少有两个循环节.输出最少需要添加字符的个数. 分析: 假设所给字符串为p[0...l-1],其长度为l 有这样一个结论: 这个串的 ...

  2. Entity Framework查询,EF执行SQl

    一.简介 EF 支持开放底层的 ADO.NET 框架,DbContext有三种常用方法 DbSet.SqlQuery //查询并返回Entities DbContext.Database.SqlQue ...

  3. 为什么多数游戏服务端是用 C++ 来写

    早年开发游戏必须用C++,这没得说,2000-2004年,java还没有nio,其他动态语言不抗重负,只能C/C++能开发出完整可用的游戏服务端.直到2005年,韩国的游戏很多都还是纯C++写服务端, ...

  4. 待实践三:MVC3下 路由的测试 使用 RouteDebug.dll 来测试判断路由是否符合

    在需要进行测试路由是否匹配的项目中引用    RouteDebug.dll   并且在MVC的Global.asax里面加入一段代码   //下面这行代码一定是在 RegisterRoutes(Rou ...

  5. LeetCode Single Number (找不不重复元素)

    题意:给一个序列,序列中只有1个是单个的,其他都是成对出现的.也就是序列中有奇数个元素.要求找出这个元素. 思路:成对出现用异或最好了.两个同样的数一异或就变零,剩下的,就是那个落单的. class ...

  6. java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数

    java转换成秒数 Date类有一个getTime()可以换回秒数,例如: public class DateToSecond { public static void main(String[] a ...

  7. WPF MultiBinding 和 IMultiValueConverter

    MultiBinding,描述附加到单个绑定目标属性的Binding对象的集合.可以指定多个数值绑定. IMultiValueConverter通过转换器使用MultiBingding对象,该对象讲根 ...

  8. HDU 5389 Zero Escape

    题意:有一些人,每人拿一个号码,有两个门,门的值分别为A和B,要求把人分成两堆(可以为空)一堆人手持号码之和的数字根若等于A或者B就可以进入A门或者B门,要求两堆人分别进入不同的门,求有几种分配方式, ...

  9. MyBatis批量删除 多态sql,构建in语句

    <!--==========================删除==================================== -->    <delete id=&quo ...

  10. NumberSeekBar 可任意拖动和自动

    package com.example.numberseekbar; import android.content.Context; import android.content.res.Resour ...