Скопируйте файлы css/js с помощью msdeploy при развертывании в один клик

Я развернул свое приложение ASP.NET MVC 5, используя развертывание одним щелчком в Visual Studio.

Тем временем мне нужно скопировать некоторые файлы css/js в централизованную папку, чтобы их можно было использовать из разных приложений моего решения.

Похоже, что msdeploy имеет несколько вариантов решения этой проблемы. Но где / как я могу передать параметры в msdeploy с помощью Visual Studio 2015?

1 ответ

Один из вариантов:

нам нужен некоторый класс, который наследует задачу. Это будет копировать файлы.

public class CopyFilesToFolder : Task
{
    [Required]
    public string FolderPathForSource { get; set; }

    [Required]
    public string OutputFolder { get; set; }

    public override bool Execute()
    {
        //Do copy here

        return true;
    }
}

Например, YouProject - это то, что вы хотите развернуть.

Нам нужно отредактировать файл YourProject.csproj: зарегистрируйте dll в классе CopyFilesToFolder и добавьте цель для MsDeploy

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask TaskName="CopyFilesToFolder" AssemblyFile="..\..\pathTodll\dllWithCopyFilesToFolderClass.dll">
  </UsingTask>
  <Target Name="CopyFilesToFolderForPublish">
    <CopyFilesToFolder FolderPathForSource="$(ProjectDir)\\$(_PackageTempDir)\\Content\\" OutputFolder="C:\\Deploy\\Content\\">
    </CopyFilesToFolder>
  </Target>
<!-- ... -->

</Project>

Как вы видите, мы можем передавать параметры классу, который мы создали ранее. И последнее, в файле YourProject.pubxml мы сказали MsDeploy, что, когда он соединяет все файлы, необходимые для пакета, выполняет цель CopyFilesToFolderForPublish

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <!-- Other properties -->
    <OnAfterCopyAllFilesToSingleFolderForPackage>CopyFilesToFolderForPublish;</OnAfterCopyAllFilesToSingleFolderForPackage>
  </PropertyGroup>
</Project>
Другие вопросы по тегам