< _CustomFiles>元素在.pubxml中无法识别

时间:2015-07-17 20:13:08

标签: asp.net visual-studio msbuild publish pubxml

我试图在ASP.NET文件系统中包含一个未包含在解决方案中的文件(它是从构建后的脚本自动生成的)。根据{{​​3}},我应该能够使用.pubxml元素在<_CustomFiles>定义中添加对该文件的引用。这是.pubxml文件的样子:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>(publish URL here)</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>

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

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

  <Target Name="CustomCollectFiles">
    <ItemGroup>
      <_CustomFiles Include="scripts\app.min.js" />

      <FilesForPackagingFromProject  Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>
</Project>

我添加了第二个<PropertyGroup><Target>元素。

但是,Visual Studio无法识别<_CustomFiles>元素,并且该文件未包含在发布中。注意元素下面的绿色波浪线:

enter image description here

当我将鼠标悬停在其上时,会显示以下错误消息:

The element 'ItemGroup' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003' has invalid child element '_CustomFiles' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003'

为什么Visual Studio无法识别此元素?为了在文件系统发布中包含此文件,我需要更改什么?

1 个答案:

答案 0 :(得分:3)

想出来。我误解了<_CustomFiles>元素的目的。这似乎是一个自定义元素(即不是XML模式的一部分,因此VS警告)用于将信息传递给它下面的<FilesForPackaginFromProject>元素。

事实证明这个方法 为我工作,我只是错误地使用相对路径。