原文: http://www.cnblogs.com/wangmiao/articles/1306292.html
Vista Media Center 开发之深入浅出 (二)
----- Vista Media Center 程序的新建及部署
1. 新建程序模板简介
正如上一节最后一张所述Vista Media Center SDK提供了三种新建Vista Media Center程序的模板分别为:
(1) A project for creating a Windows Media Center Application containing a page with four buttons which invoke a Media Center dialog box.
该工程运行将出现一个页面上面包含四个按钮,当点击按钮时显示对应的对话框。
(2) A project for creating a Windows Media Center Background Application.
该工程运行直接弹出一个“The background application did something.”对话框。
(3) A project for creating a Windows Media Center Application containing the minimum code and markup required.
该工程运行将出现一个最基本的显示Hello 的界面(以下称做Hello 模版)。
2. 将程序安装到Vista Media Center
下面以新建Hello 模板为例,讲解如何将开发好的程序安装到Media Center中。
(1)为程序集增加签名
新建一个Hello World模板的Media Center Application后,要想将其安装到Media Center中必须为该程序制作签名,其方法如下:
○1 在解决方案管理器中,右键单击属性,在左侧找到签名,钩上为程序集签名。
○2 点击下选择强名称密钥文件下拉框,选择已有的snk文件或是新建snk文件。
进行如上操作则把程序集做上了签名。
(2)在Registration.xml文件中修改该程序集的注册信息
在每种模版中都包含一个Registration.xml文件,用于填写Media Center Plugin程序的注册信息,其内容如下:
<application title="Application1" id="{6a04b667-1e20-4833-b141-5f15262234d6}">
<entrypoint id="{e244677c-de06-4b6e-bd1f-d6d4b9f05e70}"
addin="Application1.MyAddIn,
Application8,Culture=Neutral,Version=1.0.0.0,PublicKeyToken=insert_public_key_token_here"
title="Application1"
description="Application1 Description"
ImageUrl=".\Application.png">
<category category="More Programs"/>
</entrypoint>
</application>
在将程序安装到Media Center之前需要修改PublicKeyToken=insert_public_key_token_here,将该程序集真实的PublicKeyToken填写在这。
获取程序集PublicKeyToken的方法如下:
○1 生成该程序集得到DLL文件。
○2 右键单击“Visual Studio 2008 命令提示”,点击以管理员身份运行。
○3 运行sn.exe -T assemblly.dll命令即可获得PublicKeyToken。(注意,大写T与小写t在这里是有区分的)
将PublicKeyToken=insert_public_key_token_here 替换为程序真实的PublicKeyToken 例如PublicKeyToken=3a43633ac34b99df,保存文件。
Registration.xml文件中的一些其他相关属性将放到如何制作安装包一节讲解。
(3)用DevInstall.cmd将程序安装到Media Center
在每种模版中同样都包含一个DevInstall.cmd文件,用于操作将Plugin程序集安装到Media Center中的全过程。
由于Media Center Plugin程序集需要注册到GAC中,因此需要调用到gacutil.exe命令,而VS2008与VS2005中gacutil.exe文件的存储路径是不同的。而SDK模版中的DevInstall.cmd文件中调用gacutil.exe文件的存储路径是按照VS2005来写的。
因此如果采用VS2005作为开发环境,那么就不需要对该文件做任何改动,如果是VS2008做为开发环境,那么就需要做一些小的变动。即将
ECHO.Register the DLL with the global assembly cache
"%ProgramFilesPath%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /if "%ProgramFilesPath%\%CompanyName%\%AssemblyName%\%AssemblyName%.dll"
ECHO.
替换为
ECHO.Register the DLL with the global assembly cache
ECHO.Comment "%ProgramFilesPath%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /if "%ProgramFilesPath%\%CompanyName%\%AssemblyName%\%AssemblyName%.dll"
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\gacutil.exe" /if "%ProgramFilesPath%\%CompanyName%\%AssemblyName%\%AssemblyName%.dll"
ECHO.
以管理员身份运行DevInstall.cmd,出现Success的提示及说明安装成功。
打开Media Center ,在“在线媒体”的“节目库”下会出现,刚刚做好的程序。打开该程序,出现“Hello”界面,说明Media Center Plugin程序集安装成功。
调试是制作程序,不可缺少的一部分,由于Media Center Plugin的调试跟以往的程序集调试有些不同,下一节讲述如何调试Media Center Plugin的后台代码。