【发布时间】:2010-10-15 14:21:36
【问题描述】:
我有一个非常奇怪的问题,我创建了一个自定义 MSBuild 任务,它将我的 MVC 项目所需的所有文件移动到特定位置,以便我们可以发布它。当我在我的机器上本地触发脚本时,这工作正常,但是一旦我检查了这个更改并且 Teamcity 运行脚本,它会复制除 Bin 文件夹之外的所有内容。 但是,如果直接从命令行(相同的脚本)运行 MSbuild,它会复制 bin 文件夹。我不明白为什么在 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) 是我在命令行中手动从 Teamcity 传入的参数。
/p:ArtifactsDir="%system.agent.work.dir%\WebProject\trunk\Website"
【问题讨论】:
-
构建脚本的其余部分是什么样子的 - $(ArtifactsDir) 和 $(BinFolder) 声明在哪里?
-
在上面添加了更多信息。
标签: asp.net-mvc msbuild teamcity