如何使用CsPack打包azure webrole

时间:2012-09-24 00:00:53

标签: azure

我已升级到azure 1.7,现在我的构建过程已损坏。我有一个在构建之后运行的脚本,它只是按如下方式触发cspack。

cspack "C:\Users\MyAppBuild\.hudson\jobs\MyApp Portal Build\workspace\trunk\Portal\SMEEDI.Cloud\ServiceDefinition.csdef"   
/role:MyApp.Portal;"C:\Users\MyAppBuild\.hudson\jobs\MyApp Portal Build\workspace\trunk\Portal\Portal\MyApp.Portal\bin"   
/sites:"C:\Users\MyAppBuild\.hudson\jobs\MyApp Portal Build\workspace\trunk\Portal\Portal\MyApp.Portal\bin";"MyApp.Portal"   
/out:"C:\Users\MyAppBuild\.hudson\jobs\MyApp Portal Build\MyApp.Cloud.cspkg

这是我的服务定义:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyApp.Cloud" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-05.1.7">
<WebRole name="MyApp.Portal" enableNativeCodeExecution="true">
<ConfigurationSettings>
  <Setting name="DiagnosticsConnectionString" />
  <Setting name="DataConnectionString" />
  <Setting name="BaseUrl" />
  <Setting name="DatabaseConnectionString" />
  <Setting name="Environment" />
</ConfigurationSettings>
<Sites>
  <Site name="MyApp_WebRole" physicalDirectory="..\Portal\MyApp.Portal">
    <Bindings>
      <Binding name="HttpIn" endpointName="HttpIn" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="HttpIn" protocol="http" port="80" />
</Endpoints>
<Imports>
  <Import moduleName="RemoteAccess" />
  <Import moduleName="RemoteForwarder" />
</Imports>

我收到错误:

Error: CloudServices7 : The physical directories are not valid for role /sites:C
:\Users\MyAppBuild\.hudson\jobs\MyApp Portal Build\workspace\trunk\Portal\Port
al\MyApp.Portal\bin;MyApp.Portal sites, virtual directories, and virtual appli
cations..

物理目录应该是什么?

1 个答案:

答案 0 :(得分:0)

您可能需要使用相对路径而不是绝对路径。请参阅here

  

将csdef中具有相对路径的项目(如此处所示)升级到1.8 SDK时,您应该在升级日志中看到下面有关相对路径更改的警告。这一具体更改是为了更好地支持并行构建。

     

Site元素的physicalDirectory属性包含相对路径。此路径与打包时目标服务定义文件所在的目录相关。在以前的版本中,此文件位于根项目目录中。在此版本中,默认情况下,此文件位于项目输出目录中。您可能需要更新相对路径以反映目标服务定义文件的新位置。