VS2013 — Ошибка развертывания при использовании wpp.targets

#msbuild #visual-studio-2013 #web-deployment

#msbuild #visual-studio-2013 #веб-развертывание

Вопрос:

Я хочу создать zip-файл развертывания для своего веб-сайта.

Мне нужно было добавить папку в пакет развертывания, поэтому я последовал этому руководству (я добавил файл .wpp.targets в свой проект)

Но когда я запускаю MSBuild с помощью командной строки, я получаю эту ошибку :

C:Program Файлы (x86)MSBuildMicrosoft VisualStudiov12.0WebMicrosoft.Web.Publishing.targets(3898, 5): ошибка msdeploy ОШИБКА_EXCEPTION_WHILE_CREATING_OBJECT: не удалось выполнить задачу веб-развертывания. (Объект типа «манифест» и путь «C:MyprojectMyWebsitedeploymentfolderWebsite .SourceManifest.xml «не может быть создан.

Строка 3898 и после :

  <VSMSDeploy Condition="!$(UseMsdeployExe)"
   MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
   Source="@(MsDeploySourceProviderSetting)"
   Destination="@(MsDeployDestinationProviderSetting)"
   DeploymentTraceLevel="$(PackageTraceLevel)"
   DisableLink="$(PackageDisableLinks)"
   EnableLink="$(PackageEnableLinks)"
   DeclareParameterItems="@(_Package_MsDeployDeclareParameters)"
   OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
   ImportDeclareParametersItems="$(_VsPackageParametersFile)"
   ReplaceRuleItems="@(MsDeployReplaceRules)"
   RetryAttempts="$(RetryAttemptsForDeployment)">
  <Output TaskParameter="Result" PropertyName="PackageResult" />
</VSMSDeploy>
  

Моя команда MSBuild :

 MSBuild Myproject.sln /P:Configuration="Release" /P:DeployOnBuild="True"  /P:Platform="Any CPU" /P:PackageLocation="deploymentfolder/Website.zip" /P:DeployTarget=Package 
  

У вас есть идея, как исправить ошибку?

Я попробовал с новым проектом и получил ту же ошибку…

Я просто хочу добавить папку в свой deployment .zip

Ответ №1:

Хорошо, я нашел проблему. Флодер, который я хотел добавить, был пуст. По какой-то причине это не работает. Я добавил файлы в папку, и это работает…

И я, наконец, изменил свой файл .wpp.targets, чтобы просто добавить папку со всеми файлами в deployment .zip :

 <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="CustomCollectFiles">
    <ItemGroup>
      <CustomFiles Include="MyFolder***" />
      <FilesForPackagingFromProject Include="%(CustomFiles.Identity)">
        <DestinationRelativePath>MyFolder%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>

  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>

    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>
</Project>