Использование msbuild для упаковки сайта с использованием элементов содержимого из файла csproj - PullRequest
0 голосов
/ 24 октября 2011

Я написал скрипт msbuild для упаковки веб-приложения следующим образом:

<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>

Это прекрасно работает, но мы создаем несколько веб-проектов в нашем решении, и все они упакованы одновременно с одним и тем же большим проектом msbuild. Так как же я могу запросить только элементы содержимого данного файла csproj в любое время?

В качестве альтернативы ... какой лучший способ сделать то, что я пытаюсь достичь?

Спасибо.

1 Ответ

0 голосов
/ 25 октября 2011

Рассматривали ли вы использование проектов веб-развертывания? Затем вы можете вызвать целевую упаковку.

http://blogs.msdn.com/b/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx

...