我有一個非常奇怪的問題,我已經創建了一個自定義MSBuild任務,將我需要爲我的MVC項目的所有文件移動到特定位置,以便我們可以發佈它。當我在我的機器上觸發本地腳本時,此工作正常,但只要我檢查此更改並且Teamcity運行腳本,它就會複製除Bin文件夾以外的所有內容。 但是,如果直接從命令行(同一腳本)運行MSbuild,它會複製bin文件夾。我不明白爲什麼在TeamCity構建它時這不起作用。Bin文件夾不被複制與MSBuild,Teamcity
有沒有人有一個想法,爲什麼發生這種情況,以及如何解決它?
<Target Name="AfterBuild">
<CallTarget Targets="Move" />
</Target>
<Target Name="Move">
<Copy SourceFiles="@(BinFolder)" DestinationFolder="$(ArtifactsDir)\Webproject.Web\bin" />
<Copy SourceFiles="@(ContentFolder)" DestinationFolder="$(ArtifactsDir)\SchrodersFundEngine.Web\Content" />
<Copy SourceFiles="@(ImagesFolder)" DestinationFolder="$(ArtifactsDir)\SchrodersFundEngine.Web\Images" />
<Copy SourceFiles="@(ScriptsFolder)" DestinationFolder="$(ArtifactsDir)\SchrodersFundEngine.Web\Scripts" />
</Target>
<ItemGroup>
<BinFolder Exclude="*.cs" Include="$(ProjectDir)bin\**\*.*"/>
<ContentFolder Exclude="*.cs;*.svn-base" Include="$(ProjectDir)Content\*.css"/>
<ImagesFolder Exclude="*.cs;*.svn-base" Include="$(ProjectDir)Images\*.*"/>
<ScriptsFolder Exclude="*.cs;*.svn-base" Include="$(ProjectDir)Scripts\*.js"/>
</ItemGroup>
$(ArtifactsDir)是paramanter我從TeamCity的&通過在命令行手動。
/p:ArtifactsDir="%system.agent.work.dir%\WebProject\trunk\Website"
你的構建腳本的其餘部分是什麼樣的 - 在哪裏聲明$(ArtifactsDir)和$(BinFolder)? – stack72 2010-10-15 14:23:23
在上面添加了更多信息。 – MrW 2010-10-15 15:46:25