2009-05-21 7 views
2

Après msbuild a construit ma solution (avec un site asp.net), et le projet webdeployment a construit et mis le site dans le répertoire _PublishedWebsites:MSBuild et _PublishedWebsites

c: \ mybuilds \ buildName \ Daily_20090519.3 \ Release_PublishedWebsites \ MyWebsite. Comment puis-je copier ceci dans le répertoire fixe vers lequel pointe IIS pour le site Web de test?

J'ai trouvé des tas d'extraits de code, mais je n'arrive pas à en trouver un qui prenne en compte le fait que ce nom de répertoire change.

Répondre

1

C'est assez facile. Vous pouvez modifier le projet et insérer quelque chose de similaire à ce qui suit.

<PropertyGroup> 
    <OutputDest>$(MSBuildProjectDirectory)\..\OutputCopy\</OutputDest> 
</PropertyGroup> 
<Target Name="AfterBuild"> 
    <!-- Create an item with all the output files --> 
    <ItemGroup> 
    <_OutputFiles Include="$(OutputPath)**\*" Exclude="$(OutputPath)obj\**\*" /> 
    </ItemGroup> 
    <!-- You probably don't want to include the files in the obj folder so exclude them. --> 

    <Message Text="OutputDest : $(OutputDest)" /> 
    <Copy SourceFiles="@(_OutputFiles)" 
     DestinationFiles="@(_OutputFiles->'$(OutputDest)%(RecursiveDir)%(Filename)%(Extension)')"/> 
</Target> 

Est-ce ce que vous cherchez ???

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

Lorsque vous dites 'éditer le projet', voulez-vous dire le projet de site Web, le projet de déploiement Web ou TFSBuild.proj? – simon831

+0

Je fais référence au projet de déploiement Web que vous avez dit utiliser. Ce sont des fichiers MSBuild eux-mêmes. –

1

J'utilise la technique différente.

<PropertyGroup> 
    <BinariesRoot>c:\BinariesForIis\</BinariesRoot> 
</PropertyGroup> 

Le c:\BinariesForIis\ sera utilisé pour la sortie directe des fichiers binaires compilés (avant la copie à ...\Daily_20090519.3\Release_ ...).