2

在我的开发机器上,我安装了VSeWSS 1.3并配置了本地 IIS 6,以便我可以构建我的 SharePoint 项目并将生成的 WSP文件部署到本地机器。WSP 文件是通过打包步骤生成的,我可以在其他机器上成功安装。

现在我必须将我的项目迁移到我们的构建机器上,该机器目前没有安装 SharePoint,也没有为 VSeWSS 配置(没有 VSeWSS Web 服务端点)。有没有一种方法可以自动构建 WSP 文件,而无需在构建机器上配置 IIS 以与 SharePoint 和 VSeWSS 一起使用?

有些书描述了使用MakeCab.exe 和定义 DDF文件的手动步骤,但我没有看到VSeWSS 生成的任何 DDF 文件(它是否可能在 TEMP 文件夹中生成,我可以使用它来配置我的自动构建过程?)。

4

1 回答 1

5

我刚刚遇到了同样的问题。我选择了另一种工具来开发整个解决方案:我发现WSPBuilder它更干净,干扰更少。它也可以从命令行使用,这对于构建文件非常有用。

我修改了一些由Bil Simser创建的 Nant 脚本,以便编译和部署项目并将代码从 VSeWSS 移动到 WSPBuilder。它在我的机器或构建机器上都像一个魅力。

您可以在http://www.Codeplex.com上找到 WSPBuilder ,这些目标需要 nantContrib(在www.tigris.org上)才能工作。

以下是我正在使用的一些目标:

<target name="build" depends="compile">
  <copy todir="${build.dir}\12\">
    <fileset basedir="${sharepoint.dir}\12">
      <include name="**/*"/>
    </fileset>
  </copy>
  <copy
    file="${sharepoint.dir}\solutionid.txt"
    tofile="${build.dir}\solutionid.txt"
  />
  <call target="buildsolutionfile" />
</target>



<target name="buildsolutionfile">
    <exec program="${wspbuilder.exe}" workingdir="${build.dir}">

      <arg value="-BuildDDF"/>
      <arg value="${debug}"/>

      <arg value="-Cleanup"/>
      <arg value="false"/>

      <arg value="-FolderDestination"/>
      <arg value="${build.dir}"/>

      <arg value="-Outputpath"/>
      <arg value="${build.dir}"/>

      <arg value="-TraceLevel"/>
      <arg value="verbose"/>
    </exec>
    <copy
      file="${build.dir}\${package.file}"
      tofile="${solution.dir}\${package.file}"/>
  </target>



 <target name="addsolution">
    <exec program="${stsadm.exe}" verbose="${verbose}">
      <arg value="-o" />
      <arg value="addsolution" />
      <arg value="-filename" />
      <arg value="${solution.dir}\${package.file}" />
    </exec>
    <call target="spwait" />
  </target>

  <target name="spwait" description="Waits for the timer job to complete.">
    <exec program="${stsadm.exe}" verbose="${verbose}">
      <arg value="-o" />
      <arg value="execadmsvcjobs" />
    </exec>
  </target>
  <target name="app.pool.reset" description="Resets Sharepoint's application pool.">
    <iisapppool action="Restart" pool="${apppool}" server="${server}" />
  </target>
  <target name="deploysolution" depends="addsolution">
    <exec program="${stsadm.exe}" workingdir="${build.dir}"  verbose="${verbose}">
      <arg value="-o" />
      <arg value="deploysolution" />
      <arg value="-name" />
      <arg value="${package.file}" />
      <arg value="-immediate" />
      <arg value="-allowgacdeployment" />
      <arg value="-allcontenturls" />
      <arg value="-force" />
    </exec>
    <call target="spwait" />
    <call target="app.pool.reset" />

  </target>
于 2009-08-13T22:53:57.237 回答