gpt4 book ai didi

asp.net - 在我的 Web 应用程序项目上的 MSBuild 期间无法连接到 CopyAllFilesToSingleFolderForMsdeployDeployDependsOn

转载 作者:行者123 更新时间:2023-12-05 09:23:36 25 4
gpt4 key购买 nike

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

另外,我的问题似乎与 this topic 重复甚至 thisthis ,事实并非如此。我的问题是我尝试连接到 CopyAllFilesToSingleFolderForPackageDependsOn , CopyAllFilesToSingleFolderForMsdeployDependsOn甚至PipelineCollectFilesPhaseDependsOn没有运气。我用了<Message Text="Inside of CustomCollectFiles" Importance="high"/>在我的习惯里面 Target正如 Sayed Ibrahim Hashimi 提议的那样 in his answer/v:diag msbuild.exe的开关来验证这个事实。我不知道如何解决它:尝试将对上述问题进行不同修改的相应 XML 片段放入 .csproj直接归档并放入单独的文件中 .wpp.targets用于定制包装。

我的开发环境包括 VS2010 和 VS2013,我已经通过 Web PI、Web 部署工具、Windows Azure SDK 安装了 Web Deployment 3.5。我的系统 PATH 环境变量包括 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\;c:\Program Files\IIS\Microsoft Web Deploy V3能够运行 MSBuildMSDeploy来自 cmd .当我查看 MSBuild 日志时,我看到了这一点:

CopyAllFilesToSingleFolderForMsdeployDependsOn = 
;
;

CopyAllFilesToSingleFolderForPackageDependsOn =
;

;
;

这里有一些东西

PipelineDeployPhaseDependsOn = 
;
Package;

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

最佳答案

似乎 MSBuild 缓存的构建目标可能非常错误,但是在 Windows 重新启动 之后各种 Hook ,包括来自 this post which finally solved my problem 的 Hook 。开始按预期工作。

此外,对于所有从事自动构建工作的人来说,可能会注意到 Web 部署相关的东西可以从主 {Project Name}.csproj 文件移动到相应的 {Project Name}.wpp.targets 文件,我认为这是一种更优雅的配置构建选项的方式,特别是如果您不想将它们包含在 TFS 中或想要为不同的发布目标自定义构建行为。

所以,这是我现在可以使用的最终 .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>

关于asp.net - 在我的 Web 应用程序项目上的 MSBuild 期间无法连接到 CopyAllFilesToSingleFolderForMsdeployDeployDependsOn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com