zoukankan      html  css  js  c++  java
  • ASP.NET MVC 使用MSBuild部署的几个注意事项

    ASP.NET MVC 使用MSBuild部署的几个注意事项

    做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发布,Admin Area会丢失。

    研究了下NopCommerce的做法,使用MSBuild组织文件结构,关键的地方在下面:

    <!--Now lets publish Nop.Admin-->
    <MSBuild Projects="$(RootFolder)PresentationNop.WebAdministrationNop.Admin.csproj"
      Targets="ResolveReferences;_CopyWebApplication"
      Properties="WebProjectOutputDir=$(DeployFolder)$(DeployPrefix)Administration;
      OutDir=$(DeployFolder)$(DeployPrefix)Administrationin;Configuration=$(Configuration)" />
     
     
    <!--Now lets move the Nop.Admin/bin/ to the root bin/-->
    <CreateItem Include="$(DeployFolder)$(DeployPrefix)Administrationin*.dll">
      <Output TaskParameter="Include" ItemName="CompileOutput" />
    </CreateItem>
    <Copy SourceFiles="@(CompileOutput)"
      DestinationFolder="$(DeployFolder)$(DeployPrefix)in" />
     
     
    <!--Lets delete the bin in Nop.Admin-->
    <RemoveDir Directories="$(DeployFolder)$(DeployPrefix)Administrationin" />
             
    <!--Lets delete the packages.config files-->
    <Delete Files="$(DeployFolder)$(DeployPrefix)Administrationpackages.config;
      $(DeployFolder)$(DeployPrefix)packages.config"/>

    然后是如何替换配置文件:

    使用Web.Release.config替换Web.config

    1
    2
    3
    4
    5
    <!--Transform support-->
    <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)MicrosoftVisualStudiov$(VisualStudioVersion)WebMicrosoft.Web.Publishing.Tasks.dll"/>
     
    <!--Transform root web.config file-->
    <TransformXml Condition="Exists('$(WebFolder)Web.$(Configuration).config')" Source="$(WebFolder)Web.config" Transform="$(WebFolder)Web.$(Configuration).config" Destination="$(DeployFolder)$(DeployPrefix)Web.config" />

    使用Settings.Release.txt替换Settings.txt

    1
    2
    3
    4
    5
    6
    7
    8
    <!--Lets Copy App_DataSettings.Release.txt To App_DataSettings.txt -->
    <Copy Condition="Exists('$(WebFolder)App_DataSettings.$(Configuration).txt')"
      SourceFiles="$(WebFolder)App_DataSettings.$(Configuration).txt"
        DestinationFiles="$(DeployFolder)$(DeployPrefix)App_DataSettings.txt"
    SkipUnchangedFiles="true" OverwriteReadOnlyFiles="true" />
    <!--Lets delete the Seetings.Release.txt file-->
    <Delete Condition="Exists('$(DeployFolder)$(DeployPrefix)App_DataSettings.$(Configuration).txt')"
        Files="$(DeployFolder)$(DeployPrefix)App_DataSettings.$(Configuration).txt"/>

    MSBuild配置文件,可下载参考。

    MSBuild学习资料:

    http://technet.microsoft.com/zh-cn/library/0k6kkbsd

    Bootstrap3.0学习第二十六轮(JavaScript插件——图片轮播)

    前言

     

    阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.html

     

    本文主要来学习一下JavaScript插件--轮播。废话不多说,直接进入学习。

     

    轮播

     

     下面先来展示的就是此插件和相关组件制作的轮播案例。

     

     

     

    复制代码
     <body style="900px; margin-left:auto; margin-right:auto;">
        <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
          <!-- Indicators -->
          <ol class="carousel-indicators">
            <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
            <li data-target="#carousel-example-generic" data-slide-to="1"></li>
            <li data-target="#carousel-example-generic" data-slide-to="2"></li>
          </ol>
        
          <!-- Wrapper for slides -->
          <div class="carousel-inner" style="text-align:center">
            <div class="item active">
              <img alt="First slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=First slide" ></img>
            </div>
            <div class="item">
              <img alt="Second slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=Second slide" ></img>
            </div>
            <div class="item">
              <img alt="Third slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=Third slide"  ></img>
            </div>
          </div>
        
          <!-- Controls -->
          <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left"></span>
          </a>
          <a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right"></span>
          </a>
        </div>
     <script src="js/jquery-2.0.3.min.js"></script>
     <script src="js/bootstrap.min.js"></script>
     <script type="text/javascript">
    //$('.carousel').carousel('next');
     </script>
     </body>
    复制代码

     

    Internet Explorer 8 & 9不支持过渡动画效果

    Bootstrap基于CSS3实现动画效果,但是Internet Explorer 8 & 9不支持这些必要的CSS属性。因此,使用这两种浏览器时将会丢失过渡动画效果。而且,Bootstrap并不打算使用基于jQuery实现替代功能。

     

    可选选项

     

    在任何.item中均可以通过添加.carousel-caption从而为每帧幻灯片添加说明文字。也可以添加任何HTML代码,这些HTML代码将会被自动排列和格式化。

     

    复制代码
            <div class="item active">
              <img alt="First slide" src="http://placehold.it/900x500/78EB09/FFEB09/&text=First slide" ></img>
              <div class="carousel-caption">
                  <h4>First Thumbnail label</h4>
                  <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
               </div>
            </div>
    复制代码

     

    为三个项,分别加上,然后效果就有了额。

     

     

    可访问性问题

    轮播组件并不兼容可访问性标准。如果需要兼容,请考虑其他展示幻灯片的方案。

     

     

    通过data属性

     

    通过data属性可以很容易的控制轮播的定位。data-slide可以接受控制播放位置的prevnext关键字。另外,还可以通过data-slide-to传递以0开始的幻灯片下标。

     

    data-ride="carousel"属性用来标记在页面加载之后即开始启动的轮播组件。

     

     

    在最外层的轮播容器中添加即可

     

    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">

     

    通过JavaScript

     

    手动启动轮播组件(上面我们通过使用data-ride属性进行自动开启轮播组件。):

     

    $('.carousel').carousel()

     

    选项

     

    可以将选项通过data属性或JavaScript传递。对于data属性,需要将选项名称放到data-之后,例如data-interval=""

     

     

    方法

     

    $("").carousel(options)

     

    初始化轮播组件,接受一个可选的object类型的options参数,并开始幻灯片循环。

     

    $('.carousel').carousel({
      interval: 2000
    })

     

    .carousel('cycle')   从左到右循环各帧。

     

    .carousel('pause')  停止轮播。

     

    .carousel(number) 将轮播定位到指定的帧上(帧下标以0开始,类似数组)。

     

    .carousel('prev')  返回到上一帧。

     

    .carousel('next') 转到下一帧。

     

    事件

     

    Bootstrap的轮播组件暴露了两个事件用于监听。

     

     

    $('#carousel-example-generic').on('slide.bs.carousel', function () {
        alert(1);
    })

     

    就这样为轮播组件绑定事件,然后在相应的运行时就会执行的。这个在之前的JavaScript插件中讲解的也比较多,形式都是通用的,所以只要会用就可以了。

     

    图片

     

     这是几个比较实用的图片轮播插件,效果很不错,合理的使用,总会给你的页面加分的。JavaScript插件几乎也都学习完了,虽然只是浅层的只是简单的会用,但是还是收获了不少。

     

     本文已更新至Bootstrap3.0入门学习系列导航http://www.cnblogs.com/aehyok/p/3404867.html 

     

     

     

     

     

    分类: BootStrap3.0

     
     
     
     
     
  • 相关阅读:
    JDK8 Optional类使用
    Kafka RocketMQ
    Dubbo,ElasticSearch,JVM,多线程/高并发,消息中间件 常问问题
    Redis
    java jvm 虚拟机
    25 岁做什么,可在 5 年后受益匪浅?
    设计模式
    并发与并行的理解
    多线程学习
    FireFox 如何在当前页面打开书签
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3429214.html
Copyright © 2011-2022 走看看