如何用MSBuild通配符将项目deployment目录所有文件纳入部署包?
解决.NET Web项目部署包包含deployment子目录所有文件的方法
直接编辑你的.NET Web项目的.csproj文件,添加以下配置即可让deployment文件夹下的所有文件(包括子目录里的文件、DLL这类非内容文件)被纳入/p:DeployOnBuild=true生成的部署包:
<ItemGroup> <!-- 捕获deployment文件夹下所有文件及子目录 --> <ResolvedFileToPublish Include="deployment\**\*"> <RelativePath>deployment\%(RecursiveDir)%(FileName)%(Extension)</RelativePath> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </ResolvedFileToPublish> </ItemGroup>
配置说明:
Include="deployment\**\*":用通配符**匹配deployment下的所有子目录,*匹配任意类型的文件,确保整个子树都被选中<RelativePath>:指定文件在部署包中的相对路径,保持原有的目录结构,避免文件被打乱<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>:只复制更新过的文件,减少不必要的构建开销
这个配置绕过了内容项的判定逻辑,直接将目标文件标记为需要发布的资源,不管是DLL还是其他类型文件都能被正确包含。只要你的构建后步骤能把文件生成到项目内的deployment文件夹,打包时就会自动把这些文件加进去。
内容的提问来源于stack exchange,提问作者Jonathan Gilbert
相关产品推荐
相关产品推荐

