我的主要目标是缩小的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
能够运行MSBuild
和MSDeploy
从cmd
.当我查看MSBuild日志时,我看到:
CopyAllFilesToSingleFolderForMsdeployDependsOn = ; ; CopyAllFilesToSingleFolderForPackageDependsOn = ; ; ;
有些东西在这里
PipelineDeployPhaseDependsOn = ; Package;
所以我的问题是在哪里找到我的错误包装管道的来源?我错过了哪种额外的诊断?
似乎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>