在我的Web应用程序项目上的MSBuild期间无法挂钩到CopyAllFilesToSingleFolderForMsdeployDependsOn

IPS*_*SUS 1 asp.net msbuild visual-studio-2010 microsoft-web-deploy visual-studio-2013

我的主要目标是缩小的JS脚本添加到我的ASP.NET Web应用程序的部署包使用cmd.

此外,我的问题似乎与这个主题重复,甚至这个这个,情况并非如此.我的问题是我试过挂钩CopyAllFilesToSingleFolderForPackageDependsOn,CopyAllFilesToSingleFolderForMsdeployDependsOn甚至PipelineCollectFilesPhaseDependsOn没有运气.我<Message Text="Inside of CustomCollectFiles" Importance="high"/>在我的习惯Target中使用了Sayed Ibrahim Hashimi 在他的回答中提出并/v:diag转换msbuild.exe来验证这个事实.我不知道如何修复它:尝试将上述问题中不同修改的相应XML片段.csproj直接放入文件中,并将其放入.wpp.targets用于自定义打包的单独文件中.

我的开发环境包括VS2010和VS2013,我通过Web PI,Web部署工具,Windows Azure SDK安装了Web部署3.5.我的系统PATH环境var包括c:\Windows\Microsoft.NET\Framework64\v4.0.30319\;c:\Program Files\IIS\Microsoft Web Deploy V3能够运行MSBuildMSDeploycmd.当我查看MSBuild日志时,我看到:

CopyAllFilesToSingleFolderForMsdeployDependsOn = 
  ;
  ;

CopyAllFilesToSingleFolderForPackageDependsOn = 
  ;

  ;
;
Run Code Online (Sandbox Code Playgroud)

有些东西在这里

PipelineDeployPhaseDependsOn = 
  ;
  Package;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是在哪里找到我的错误包装管道的来源?我错过了哪种额外的诊断?

IPS*_*SUS 6

似乎MSBuild缓存的构建目标可能非常错误,但是在Windows重新启动后,各种挂钩包括来自这篇帖子的那个终于解决了我的问题,开始按预期工作.

此外,对于所有正在进行自动构建的人来说,可能有趣的是注意到web deplopy相关的东西可以从主{Project Name}.csproj文件移动到相应的{Project Name}.wpp.targets文件,我认为这是一种更优雅的配置构建选项的方式,特别是如果你不这样做想要将它们包含在TFS中,或者想要为不同的发布目标定制构建befaviour.

所以,这是我的最终.wpp.targets文件,现在对我有用:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
        <IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
        <ExcludeFilesFromDeployment>Web.config</ExcludeFilesFromDeployment>
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <Message Text="Building our Web Deploy package using Tools path $(VSToolsPath)" Importance="high"/>
  </Target>

<!--  More verbose way of doing the same as with BeforeTargets -->
<!--  <PropertyGroup>-->
<!--    <CopyAllFilesToSingleFolderForPackageDependsOn>-->
<!--      CollectJsMinFiles;-->
<!--      $(CopyAllFilesToSingleFolderForPackageDependsOn);-->
<!--    </CopyAllFilesToSingleFolderForPackageDependsOn>-->
<!--    <CopyAllFilesToSingleFolderForMsdeployDependsOn>-->
<!--      CollectJsMinFiles;-->
<!--      $(CopyAllFilesToSingleFolderForMsdeployDependsOn);-->
<!--    </CopyAllFilesToSingleFolderForMsdeployDependsOn>-->
<!--  </PropertyGroup>-->
<!--  <Target Name="CollectJsMinFiles"> -->

  <Target Name="CollectJsMinFiles" BeforeTargets="CopyAllFilesToSingleFolderForPackage;CopyAllFilesToSingleFolderForMsdeploy">
    <Message Text="Collecting min JS files in CollectJsMinFiles" Importance="high"/>
    <ItemGroup>
      <JsMinFiles Include="**\*.min.js" />
      <FilesForPackagingFromProject  Include="%(JsMinFiles.Identity)">
        <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

1831 次

最近记录:

12 年,2 月 前