• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

 

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

 

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

 

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

 

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

1
2
3
4
5
<!--Transform support-->
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.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_Data\Settings.Release.txt To \App_Data\Settings.txt -->
<Copy Condition="Exists('$(WebFolder)\App_Data\Settings.$(Configuration).txt')"
  SourceFiles="$(WebFolder)\App_Data\Settings.$(Configuration).txt"
    DestinationFiles="$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.txt"
SkipUnchangedFiles="true" OverwriteReadOnlyFiles="true" />
<!--Lets delete the Seetings.Release.txt file-->
<Delete Condition="Exists('$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt')"
    Files="$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt"/>

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

MSBuild学习资料:

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

 

前言

 

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

 

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

 

轮播

 

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

 

 

 

 <body style="width: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
BootStrap前端设计

 
 

 

 
 
 
deploy

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

 

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

 

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

 

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

 

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

1
2
3
4
5
<!--Transform support-->
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.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_Data\Settings.Release.txt To \App_Data\Settings.txt -->
<Copy Condition="Exists('$(WebFolder)\App_Data\Settings.$(Configuration).txt')"
  SourceFiles="$(WebFolder)\App_Data\Settings.$(Configuration).txt"
    DestinationFiles="$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.txt"
SkipUnchangedFiles="true" OverwriteReadOnlyFiles="true" />
<!--Lets delete the Seetings.Release.txt file-->
<Delete Condition="Exists('$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt')"
    Files="$(DeployFolder)\$(DeployPrefix)\App_Data\Settings.$(Configuration).txt"/>

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

MSBuild学习资料:

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

 

前言

 

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

 

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

 

轮播

 

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

 

 

 

 <body style="width: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
BootStrap前端设计

 
 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET 页面事件执行顺序发布时间:2022-07-10
下一篇:
在Mac下创建ASP.NET Core Web API发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap