导出 (0) 打印
全部展开

CSPack 命令行工具

更新时间: 2013年11月

CSPack 命令行工具 (CSPack.exe) 可以准备应用程序以进行部署。CSPack 的使用方式取决于要将应用程序部署到的位置。

  • 若要准备应用程序以部署到 Windows Azure 计算仿真器,请使用 CSPack 将二进制文件复制到目录布局中。

  • 若要准备应用程序以部署到 Windows Azure,请使用 CSPack 生成要上载到 Windows Azure 的包文件。

  • 若要将现有程序包转换为新的包格式,请参见 Windows Azure 包格式以了解更多信息

工具位置

对于 Windows Azure SDK 版本 1.7 和更高版本,如果您已将 SDK 安装到默认位置,则可在 C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\<SDK 版本>\bin 目录中找到 CSPack。在 Windows Azure SDK 1.6 版和早期版本中,CSPack 会安装到 C:\Program Files\Windows Azure SDK\<SDK 版本>\bin\ 目录中。

命令行语法

CSPack <DefinitionFile> [options]

选项

下表列出了 CSPack 的选项。若要查看最新选项列表,请在命令提示符处,从安装位置输入 CSPack /?

 

选项 说明

/out:<file> | directory>

此选项指示角色二进制文件的输出格式和位置。

如果同时指定 /copyOnly 选项和此选项,CSPack 将创建命名的输出目录,并将角色二进制文件复制到该目录下。

如果未指定 /copyOnly,则此选项指定应用程序包的文件名。如果未指定文件名,则应用程序包以 <service-definition-file-name>.cspkg 名称创建。

/copyOnly

如果指定此选项,CSPack 会为角色二进制文件创建一个目录布局,计算仿真器将使用该布局在本地运行应用程序。

如果未通过 /out 选项指定输出位置,则 CSPack 将创建一个名为 <service-definition-file-name>.csx 的目录。

/role:<RoleName>;[<RoleBinariesDirectory>];[<RoleEntryPointDLL>]

如果指定此选项,CSPack 会为角色二进制文件创建一个目录布局,计算仿真器将使用该布局在本地运行应用程序。

如果未通过 /out 选项指定输出位置,则 CSPack 将创建一个名为 <service-definition-file-name>.csx 的目录。

/roleFiles:<RoleName>;<RoleFileList>

此选项指定一个文件,其中包含一组指向构成角色的各个文件的路径。对于定义文件中指出的每个角色,命令行均可包含一个 /roleFiles 选项。

若要指定用来定义角色入口点的 DLL,请同时使用 /rolePropertiesFile 选项和 /roleFiles 选项。

<RoleFileList> 参数指定一个简单的本地文本文件,其中每行都具有以下形式:

<InputPath>;<TargetPath>

<InputPath> 可以是指向构成角色的文件的绝对路径或相对路径。如果 <InputPath> 是相对路径,则它相对于 <RoleFileList> 所指定的文件的位置。

<TargetPath> 是相对路径,它指定要在服务包中放置 <InputPath> 引用的文件的位置。

如果指定 /roleFiles 选项,则不应再指定 /role 选项。

/rolePropertiesFile:<RoleName>;<RolePropertyFile>

此选项指定一个文件,其中包含角色的属性列表。/rolePropertiesFile 选项应该与 /roleFiles 选项同时指定。在角色属性文件中,可以指定包含角色入口点的 DLL 和此角色运行时应针对的目标 .NET Framework 版本。

<RolePropertyFile> 参数指定一个简单的本地文本文件,其中每行都具有以下形式:

<PropertyName>=<PropertyValue>

有关有效的属性名称和值的详细信息,请参见“备注”部分。

/sitePhysicalDirectories:<RoleName>;<VirtualPath1>;
<PhysicalPath1>;<VirtualPath2>;<PhysicalPath2>;…

利用此选项,您可以为 Sites 部分中定义的每个虚拟路径定义物理目录。每个网站、虚拟目录和虚拟应用程序元素都会创建一个虚拟路径(在 web.config location 元素中也称为“位置路径”)。

有关使用 Site 元素的更多信息,请参见在服务定义文件中配置站点入口

/sites:<RoleName>;<SiteName>;<VirtualPath1>;
<PhysicalPath1>;…

利用此选项,可以将物理目录中的内容映射到网站的虚拟目录。将按照定义的顺序追加每个网站、虚拟目录和虚拟应用程序元素以创建虚拟路径(在 web.config location 元素中也称为“位置路径”)。

VirtualPath1 将映射到服务定义文件中的 <Site> 元素的名称属性所定义的网站名。

PhysicalPath1Site 内容的位置。

/generateConfigurationFile:<ConfigurationFile>

此选项用于生成应用程序的框架性配置文件。在部署应用程序之前,编辑所生成的文件以指定应用程序中各项设置的值和角色实例的数量。

/allowLegacyWebRoles

此标志禁止显示针对包含在托管 Web 核心中运行的旧版 Web 角色的包的警告。您可以使用此选项在托管 Web 核心中运行角色实例,也可以向服务定义中添加 Sites 元素。

/useCtpPackageFormat

此选项指定以新的包格式设置包的格式。有关使用新格式的信息,请参见使用 CSPack 创建采用新格式的程序包

/convertToCTPPackage

此选项指定要将现有包转换为新的包格式。有关更多信息,请参见将现有程序包转换为新格式

备注

可以在角色属性文件中指定以下属性:

note注释
Windows Azure 库中查看此主题有困难?请尝试在 MSDN 库中查看它。

 

属性名称 属性值 示例

TargetFrameWorkVersion

一个数字,指示此角色运行时所针对的目标 .NET Framework 版本。此属性设置的格式是 TargetFrameWorkVersion=vMajor.Minor,其中,Major 是指主版本号,Minor 是指次版本号。

TargetFrameWorkVersion=v4.0

TargetFrameWorkVersion=v3.5

EntryPoint

用作角色入口点的 DLL 的名称。此属性设置的格式是 EntryPoint=DLLFileName,其中,DLLFileName 是一个字符串,用于指定 DLL 的文件名。

EntryPoint=myroleentrypoint.dll

Important重要
如果在升级到 Windows Azure SDK 1.2 或更高版本后,调用面向 Windows Azure SDK 1.1 工作的 CSPack 失败,则问题可能是您没有为 CSPack 正确指定目标 .NET Framework 版本。默认情况下,CSPack 假定已在 .NET 3.5 下编译服务代码。如果代码是在 .NET 4 下编译的,则必须创建一个角色属性文件,并在命令行上包含 /rolePropertiesFile 选项,以便指出这一点。

Warning警告
在 Windows SDK 1.5 版和更高版本中,CSPack 创建的包不再加密。建议您不要在包内容中存储敏感数据。

示例

下面的示例演示如何使用 CSPack 从命令行将一些 Windows Azure SDK 示例手动打包。

下面的示例演示如何将 HelloWorld 示例打包,以便部署到开发环境中:


c:\samples\HelloWorld>cspack HelloWorld\ServiceDefinition.csdef /out:HelloWorld.csx /role:HelloWorld_WebRole;HelloWorld_WebRole /sites:HelloWorld_WebRole;Web;d:\HelloWorld_WebRole\HelloWorld_WebRole /copyOnly

下面的示例演示如何将 HelloWorld 示例打包,以便部署到 Windows Azure:


c:\samples\HelloWorld>cspack HelloWorld\ServiceDefinition.csdef /out:HelloWorld.cspkg /role:HelloWorld_WebRole;HelloWorld_WebRole /sites:HelloWorld_WebRole;Web;d:\HelloWorld_WebRole\HelloWorld_WebRole

下面的示例演示如何将包含辅助角色的示例打包:


c:\samples\HelloFabric>cspack HelloFabric\ServiceDefinition.csdef 
   /role:HelloFabric_WorkerRole;HelloFabric_WorkerRole\bin\Debug;HelloFabric_WorkerRole.dll 
   /out:HelloFabric.cspkg

c:\samples\Thumbnails>cspack ThumbnailsWorkerOnly\ServiceDefinition.csdef 
/role:Thumbnails_WorkerRole;Thumbnails_WorkerRole\bin\Debug;Thumbnails_WorkerRole.dll 
/out:ThumbnailsWorkerOnly.cspkg

下面的示例演示如何将同时包含辅助角色 OrderProcessingRole 和 Web 角色 FrontendWebRole 的示例打包:


C:\samples\MultiTierApp>cspack MultiTierApp\ServiceDefinition.csdef /out:MultiTierApp.cspkg
/role:FrontendWebRole;FrontendWebRole /sites:FrontendWebRole;Web;c:\MyDirectory\MultiTierApp\FrontendWebRole 
/role:OrderProcessingRole;OrderProcessingRole\bin\Debug;OrderProcessingRole.dll

另请参阅

显示:
© 2014 Microsoft