Asp.net mvc 3 vs12不再支持CopyAllFilesToSingleFolderFormpackageDependson

Asp.net mvc 3 vs12不再支持CopyAllFilesToSingleFolderFormpackageDependson,asp.net-mvc-3,msbuild,visual-studio-2012,package,.net-4.5,Asp.net Mvc 3,Msbuild,Visual Studio 2012,Package,.net 4.5,我正在为网站使用visual studio 2012软件包功能,我有一个自定义目标,在压缩文件夹之前将一些子文件夹收集到软件包目标中。。 这过去在vs10中工作得很好,但在新的打包机vs12中,它不再关心这些配置中的任何一个,而且它们也没有被正确迁移 有没有办法做一些类似的事情,这样我的包最终会有这些文件 这是vs10中的外观: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "&g

我正在为网站使用visual studio 2012软件包功能,我有一个自定义目标,在压缩文件夹之前将一些子文件夹收集到软件包目标中。。 这过去在vs10中工作得很好,但在新的打包机vs12中,它不再关心这些配置中的任何一个,而且它们也没有被正确迁移 有没有办法做一些类似的事情,这样我的包最终会有这些文件

这是vs10中的外观:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <!-- Begin copy Contracts &Provider directories -->
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>
    <DesktopBuildPackageLocation>..\Package\Release\projectname.zip</DesktopBuildPackageLocation>
    <DeployIisAppPath>projectname</DeployIisAppPath>
    <!-- End copy Contracts &Provider directories -->
  </PropertyGroup>

  <Target Name="CustomCollectFiles">
    <ItemGroup>
      <_CustomFiles Include="$(OutputPath)\Contracts\**\*" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>bin\Contracts\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
    <ItemGroup>
      <_CustomFiles Include="$(OutputPath)\Providers\**\*" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>bin\Providers\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>

pdbonly
真的
垃圾箱\
痕迹
促使
4.
自定义文件;
$(将所有文件复制到SingleFolderForpPackageDependson);
..\Package\Release\projectname.zip
项目名称
bin\Contracts\%(递归目录)%(文件名)%(扩展名)
bin\Providers\%(递归目录)%(文件名)%(扩展名)


这在新项目中被完全忽略。做类似事情的好方法是什么?

找到了一个解决方案,只需将
CopyAllFilesToSingleFolderForPackageDependsOn
重命名为
copyallfilestosinglefolderperformsdeploydependson
,这些文件应该包含在部署包中


顺便说一句,这仍然不是最好的解决方案,因为您需要同时维护这两种解决方案以支持vs12和VS10,这是另一种同样有效且需要较少维护的方法

  <Target Name="CustomFolderDeploy" AfterTargets="CopyAllFilesToSingleFolderForPackage" BeforeTargets="MSDeployPublish">
    <PropertyGroup>
      <CustomFolder>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..\Lib\CustomFolder'))</CustomFolder>
    </PropertyGroup>
    <CreateItem Include="$(CustomFolder)\*.*">
      <Output TaskParameter="Include" ItemName="CustomFiles" />
    </CreateItem>
    <Copy SourceFiles="@(CustomFiles)" DestinationFolder="$(MSBuildProjectDirectory)\obj\$(Configuration)\Package\PackageTmp\bin" SkipUnchangedFiles="True" ContinueOnError="False" />
  </Target>

$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..\Lib\CustomFolder'))

这似乎是一个很好的解决方案,但在VS 2013中不起作用。似乎在.pubxml中忽略了BeforeTargets/AfterTargetsfiles@nZeus由于这些问题,我通常尽量避免发表。。您可以创建MSBuild脚本并以这种方式执行,然后它就可以工作了。