2010 MSBuild - как опубликовать веб-приложение к определенному местоположению (nant)?

Я пытаюсь заставить MSBuild 2010 публиковать веб-приложение к определенному местоположению. Я могу заставить это публиковать пакет развертывания к конкретному пути, но пакет развертывания затем добавляет свой собственный путь, который изменяется.

Например: если я говорю этому публиковать к C:\dev\build\Output\Debug затем фактические веб-файлы заканчиваются в C:\dev\build\Output\Debug\Archive\Content\C_C\code\app\Source\ControllersViews\obj\Debug\Package\PackageTmp И C_C часть изменений пути (не уверенный, как это выбирает эту часть пути).

Это означает, что я не могу только написать сценарий копии с опубликовать местоположения.

Я использую эту команду nant/msbuild в данный момент:

  <target name="compile" description="Compiles">
<msbuild project="${name}.sln">

  <property name="Platform" value="Any CPU"/>
  <property name="Configuration" value="Debug"/>
  <property name="DeployOnBuild" value="true"/>
  <property name="DeployTarget" value="Package"/>
  <property name="PackageLocation" value="C:\dev\build\Output\Debug\"/>
  <property name="AutoParameterizationWebConfigConnectionStrings" value="false"/>
  <property name="PackageAsSingleFile" value="false"/>

</msbuild>

Какие-либо идеи о том, как заставить это отправлять веб-файлы непосредственно в определенное местоположение?

17
задан Mr. Flibble 28 May 2010 в 16:03
поделиться

2 ответа

msbuild /t:Build;PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=C:\temp\somelocation;AutoParameterizationWebConfigConnectionStrings=false MyProject.csproj

Соответствующий сценарий NAnt:

<msbuild project="MyProject.csproj" target="PipelinePreDeployCopyAllFilesToOneFolder">
  <property name="Configuration" value="Release" />
  <property name="_PackageTempDir" value="C:\temp\somelocation" />
  <property name="AutoParameterizationWebConfigConnectionStrings" value="false" />
</msbuild>

Ссылки

См. Также Команда Сборка: локальная публикация с помощью MSDeploy

36
ответ дан 30 November 2019 в 11:32
поделиться

Я думаю, вы используете неправильное свойство. Вместо этого попробуйте свойство OutDir.

<arg value="/property:OutDir=C:\dev\build\Output\Debug\" />

Лично я вызываю MsBuild.exe напрямую, а не с помощью тега msbuild:

    <exec program="${MSBuildPath}">
        <arg line='"${ProjectFile}"' />
        <arg value="/target:_CopyWebApplication" />
        <arg value="/property:OutDir=${LocalDeployPath}\" />
        <arg value="/property:WebProjectOutputDir=${LocalDeployPath}" />
        <arg value="/property:Configuration=${SolutionConfiguration}" />
        <arg value="/verbosity:normal" />
        <arg value="/nologo" />
    </exec>

MSBuildPath - путь к MsBuild.exe (позволяет настроить таргетинг на любую версию фреймворка)

ProjectFile - Относительный путь к вашему файлу проекта

LocalDeployPath - Локальная папка, в которую все будет выведено. Ваш сценарий копирования также будет использовать его как исходный каталог.

SolutionConfiguration - выпуск, отладка

1
ответ дан 30 November 2019 в 11:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: