Я пытаюсь заставить 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>
Какие-либо идеи о том, как заставить это отправлять веб-файлы непосредственно в определенное местоположение?
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
Я думаю, вы используете неправильное свойство. Вместо этого попробуйте свойство 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 - выпуск, отладка