Silverlight 2学习教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具

Silverlight 2学习教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具,第1张

概述VS在编译时Silverlight 2的应用程序时,会先将cs等文件进行编译成dll,然后会调用Chiron.exe这个打包工具打包成.xap文件。也可以使用它进行动态语言无打包部署。Chiron.exe一般位于C:/Program Files/Microsoft SDKs/Silverlight/v2.0/Tools/Chiron文件夹下,.xap格式的文件其实就是一个zip格式的压缩包,如果将

VS在编译时Silverlight 2的应用程序时,会先将cs等文件进行编译成dll,然后会调用Chiron.exe这个打包工具打包成.xap文件。也可以使用它进行动态语言无打包部署。Chiron.exe一般位于C:/Program files/Microsoft SDKs/Silverlight/v2.0/Tools/Chiron文件夹下,.xap格式的文件其实就是一个zip格式的压缩包,如果将扩展名改为.zip,可以使用解压缩工具进行解压。解压后的文件可以使用Chiron这个工具再进行打包成.xap文件。

例如:将E:/Example1/Mengxianhui/ClIEntBin/SilverlightApplication1下的文件打包成SilverlightApplication1.xap,命令如下:

Chiron.exe /d: E:/Example1/Mengxianhui/ClIEntBin/SilverlightApplication1 /x: SilverlightApplication1.xap


对于动态语言,如IronRuby、IronPython和Managed Jscript,除了可以进行打包之外,还可以进行直接部署。
例如:有这样的文件夹结构:

    E:/Silverlight2Example/Example2/default.htm
    E:/Silverlight2Example/Example2/app/app.xaml
    E:/Silverlight2Example/Example2/app/app.Jsx

其中:
default.htm的内容是:

< !DOCTYPE HTML  PUBliC  " -// W3C // DTD xhtml  1.0  Transitional // EN" "http: // www.w3.org / TR / xhtml1 / DTD / xhtml1 - Transitional.dtd" >
< HTML >
< head >
  
< Title > 动态 Silverlight 测试页面 </ Title >
  
< style type = " text / CSS" >
    HTML, body {
      height: 
100 % ;
      overflow: auto;
    }
    body {
      padding: 
0 ;
      margin: 
0 ;
    }
    #silverlightControlHost {
      height: 
100 % ;
    }
  
</ style >

  
< script type = " text / JavaScript" >
    
function  onSilverlightError(sender, args) {
      
if  (args.errorType  ==  "InitializeError")  {
        
var  errordiv  =  document.getElementByID("errorLocation");
        
if  (errordiv  !=   null )
          errordiv.INNERHTML 
=  args.errorType  +  " -  "  +  args.errorMessage;
      }
    }
  
</ script >
</ head >
< body >
< div ID = ' errorLocation '  style = "Font - size: small;color: Gray;" ></ div >
  
< div ID = "silverlightControlHost" >     
    
< object data = "data:application / x - silverlight," type = "application / x - silverlight - 2 - b1" wIDth = " 100 % " height = " 100 % " >
      
< param name = "source" value = "app.xap" />
      
< param name = "onerror" value = "onSilverlightError"  />
      
< param name = "background" value = "white"  />
      
< param name = "initParams" value = "deBUG = true,reportErrors = errorLocation"  />
      
< param name = "windowless" value = "true"  />
      
      
< a href = "http: // go .microsoft.com / fwlink / ?linkID = 108182 " style = " text - decoration: none;" >
          
< img src = "http: // go .microsoft.com / fwlink / ?linkID = 108181 " alt = "Get Microsoft Silverlight" style = "border - style: none" />
      
</ a >
    
</ object >
    
< iframe style = ' visibility:hIDden;height:0;wIDth:0;border:0px ' ></ iframe >      
  
</ div >
</ body >
</ HTML >

app.xaml:

< UserControl  xmlns ="http://schemas.microsoft.com/clIEnt/2007"
 xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
 x:Class
="System.windows.Controls.UserControl"
 x:name
="Page"  
    WIDth
="400"  Height ="300" >
    
< GrID  x:name ="LayoutRoot"  Background ="White" >
  
< Canvas  Canvas.top ="20" >
   
< TextBlock  Canvas.top ="10"  Canvas.left ="20" > 请输入您的姓名:  </ TextBlock >
   
< TextBox  x:name ="Userinput"  WIDth ="200"  Height ="30"  Canvas.top ="40"  Canvas.left ="20" ></ TextBox >  
   
< TextBlock  x:name ="Msg"  Canvas.top ="90"  Canvas.left ="20"  Foreground ="Navy"  FontSize ="48"   ></ TextBlock >
  
</ Canvas >
    
</ GrID >
</ UserControl >

app.Jsx:

import( " System.windows.Application " )
import(
" System.windows.Controls.* " )
import(
" System.windows.* " )

var  xaml;
function  App() {
    xaml 
=  Application.Current.LoadRootVisual( new  UserControl(),  " app.xaml " )    
}

App.prototype.start 
=   function () {
  
// 注册事件处理器
   xaml.Userinput.KeyUp  +=  handler1;  
}

function  handler1(sender, args) {
  xaml.Msg.Text 
=   " Hello, "   +   xaml.Userinput.Text;
}


app 
=   new  App
app.start()

则先切换到E:/Silverlight2Example/Example2文件夹,然后执行:

E:/Silverlight2Example/Example2>"C:/Program files/Microsoft SDKs/Silverlight/v2.0/Tools/Chiron/Chiron.exe" /w

Chiron就会启动一个http的Web服务器,将E:/Silverlight2Example/Example2/作为网站的根目录,如图:

单击“default.htm”文件,出现下面的界面:

比较奇怪的是:
1,app.xaml里居然不能写<button></button>对象,不知道是何原因;
2,输入框不支持中文,汗啊;
3,这个工具不稳定,老是将浏览器搞掉。

Chiron的完整参数列表:
用法: Chiron [<选项>]

  通用选项:

    /d[irectory]:<path>
      指定文件夹(默认是当前文件夹)
    /x[ap]:<file>
      指定要产生的XAP文件名
      没有启动Web服务器,不能与/w或/b组合使用

    /n[ologo]
      忽略logo的显示

    /s[ilent]
      忽略所有输出的显示

  动态语言选项:

    /z[ipdlr]:<file>
      与/x相同,但包含动态语言程序所需要的文件
      不启动web服务器,不能与/w或者/b同时使用

    /w[ebserver][:<port number>]
      启动一个web服务器,自动为动态语言应用程序创建XAP文件,端口可选,默认是2060

    /b[rowser]
      启动系统当前默认的浏览器,并启动Web服务器。
      含义与/w相同,但不能与/x或者/z组合使用

    /r[efpath]:<path>
      指定包含动态语言装配件的文件夹
   只拷贝项目中程序语言使用的装配件,默认是Chrion安装目录下的dlr子文件夹

    /m[anifest]      将生成的AppManifest.xaml文件保存到磁盘上,使用/d设置包含资源的文件夹,只能与/d、/n和/s组合使用

总结

以上是内存溢出为你收集整理的Silverlight 2学习教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具全部内容,希望文章能够帮你解决Silverlight 2学习教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1057205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存