使用 msbuild 使用 csproj 文件中的内容项打包网站
我编写了一个 msbuild 脚本来打包 Web 应用程序,如下所示:
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="Main">
<PropertyGroup>
<WebAppSourceDir>e:\Web</WebAppSourceDir>
</PropertyGroup>
<Import Project="$(WebAppSourceDir)\WebApp.csproj"/>
<ItemGroup>
<BuiltFiles Include="$(WebAppSourceDir)\bin\**\*.*"/>
</ItemGroup>
<Target Name="Main" DependsOnTargets="" >
<Copy SourceFiles="$(WebAppSourceDir)\%(Content.Identity)"
DestinationFiles="c:\temp\buildoutput\%(Content.Identity)" Condition="%(Content.Link) == ''"/>
<Copy SourceFiles="@(BuiltFiles)"
DestinationFolder="c:\temp\buildoutput\bin\%(RecursiveDir)"/>
</Target>
</Project>
这工作正常,但我们在解决方案中构建了多个 Web 项目,并且它们都与同一个更大的 msbuild 项目同时打包。那么我如何才能在任何时候专门请求给定 csproj 文件的内容项呢?
或者...有什么更好的方法来实现我想要实现的目标?
谢谢。
I've written an msbuild script to package a webapp as follows:
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="Main">
<PropertyGroup>
<WebAppSourceDir>e:\Web</WebAppSourceDir>
</PropertyGroup>
<Import Project="$(WebAppSourceDir)\WebApp.csproj"/>
<ItemGroup>
<BuiltFiles Include="$(WebAppSourceDir)\bin\**\*.*"/>
</ItemGroup>
<Target Name="Main" DependsOnTargets="" >
<Copy SourceFiles="$(WebAppSourceDir)\%(Content.Identity)"
DestinationFiles="c:\temp\buildoutput\%(Content.Identity)" Condition="%(Content.Link) == ''"/>
<Copy SourceFiles="@(BuiltFiles)"
DestinationFolder="c:\temp\buildoutput\bin\%(RecursiveDir)"/>
</Target>
</Project>
This works fine, but we build multiple web projects in our solution and they are all packaged at the same time with the same greater msbuild project. So how can I specifically ask for just the Content Items of a given csproj file at any one time?
Alternatively... what is a better way of doing what I'm trying to achieve?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否考虑过使用 Web 部署项目?然后您可以调用打包目标。
http://blogs.msdn.com/b/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx
Have you considered using Web Deployment Projects? You can then call the Packaging target.
http://blogs.msdn.com/b/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx