Создание файла WSP на компьютере сборки

На моей машине разработки я установил VSeWSS 1.3 и настроил локальный IIS 6, чтобы я мог построить свой проект SharePoint и развернуть сгенерированный файл WSP на локальном компьютере. Файл WSP создается на этапе упаковки, который я могу успешно установить на других компьютерах.

Теперь мне нужно перенести мой проект на нашу сборочную машину, на которой в настоящее время не установлен SharePoint, и он не настроен для VSeWSS (без конечной точки веб-службы VSeWSS). Есть ли способ автоматизировать создание файла WSP без необходимости настройки IIS на компьютере сборки для использования с SharePoint и VSeWSS?

В некоторых книгах описан шаг ручного использования MakeCab.exe и определения файла DDF, но я не вижу ни одного файла DDF, созданного VSeWSS (возможно, он создан в папке TEMP, которую я мог бы использовать для настройки процесса автоматической сборки).?).

1 ответ

Решение

Я просто столкнулся с той же проблемой. Я выбрал другой инструмент для разработки всего решения: я нашел WSPBuilder намного чище и менее навязчиво. Его также можно использовать из командной строки, что отлично подходит для файлов сборки.

Я изменил некоторые сценарии Nant, созданные Билом Симсером, чтобы скомпилировать и развернуть проект и переместить код из VSeWSS в WSPBuilder. Это работает как шарм на моей машине или на сборочной машине.

Вы можете найти WSPBuilder на http://www.codeplex.com/, и для работы этих целей необходим nantContrib (на http://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>
Другие вопросы по тегам