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

 手机用户2502853881 发布于 2023-02-08 12:14

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

此外,我的问题似乎与这个主题重复,甚至这个和这个,情况并非如此.我的问题是我试过挂钩CopyAllFilesToSingleFolderForPackageDependsOn,CopyAllFilesToSingleFolderForMsdeployDependsOn甚至PipelineCollectFilesPhaseDependsOn没有运气.我在我的习惯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 = 
  ;

  ;
;

有些东西在这里

PipelineDeployPhaseDependsOn = 
  ;
  Package;

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

1 个回答
  • 似乎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>
    

    2023-02-08 12:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有