Msbuild 包括部署时的额外文件

Msbuild 包括部署时的额外文件,msbuild,Msbuild,我需要在部署过程中包含文件夹和其中的文件。此文件夹不是项目的一部分。此文件夹是在生成服务器上创建的。我无法将此文件包括在项目中 我觉得这很有帮助 我已经编辑了我的web应用程序csproj文件,并将其添加到文件末尾 <PropertyGroup> <CopyAllFilesToSingleFolderForPackageDependsOn>CustomCollectFiles;$(CopyAllFilesToSingleFolderForPackageDepe

我需要在部署过程中包含文件夹和其中的文件。此文件夹不是项目的一部分。此文件夹是在生成服务器上创建的。我无法将此文件包括在项目中

我觉得这很有帮助

我已经编辑了我的web应用程序csproj文件,并将其添加到文件末尾

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

  <Target Name="CustomCollectFiles">
    <ItemGroup> 
      <_CustomFiles Include="Workspace\build\**\*" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>Workspace\build</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>  

自定义文件$(将所有文件复制到SingleFolderFormpackageDependson);
自定义文件$(将所有文件复制到SingleFolderFormpackageDependson);
工作区\构建
它应该包括文件夹
Workspace\build
中的所有文件,并将其放在部署目录中相同的位置


但不幸的是,它不起作用。我对msbuild不太在行,因此我想我在这里遗漏了一些东西。

例如,假设您的文件位于名为
build
的目录中,该目录与解决方案目录位于同一目录级别,您可以这样做:

<Target Name="AfterBuild">
    <CreateItem Include="$(SolutionDir)..\build\**\*.*">
        <Output TaskParameter="Include" ItemName="AdditionalFiles" />
    </CreateItem>
    <Copy SourceFiles="@(AdditionalFiles)" DestinationFolder="$(TargetDir)build" />
</Target>

这将在生成解决方案时,将
$(SolutionDir)…\build
中的那些文件复制到输出目录
$(TargetDir)build
子目录。修改
包含
掩码、
目标文件夹
并生成目标名称以满足您的需要。

请参阅


这仅适用于文件部署(不是MSDeploy)。

当您说它不起作用时,您的意思是您的自定义目标CustomCollectFiles没有被调用,还是被调用但您的文件仍然没有被包括在内?您是否已经尝试过使用PipelineCollectFilesPhaseDependsOn?cokeman:正在调用,但是我的文件不包括在内。菲利克斯·拉默:它有效!回答这个问题,我会接受的。问题是我只需要在部署时复制这些文件。不是每一个版本。