teamcity - 排除 teamcity 工件中的文件类型

标签 teamcity teamcity-5.1

我正要第一次自己设置teamcity。在我不得不说的大多数方面都非常好和简单。但是,我有一个问题无法解决,也无法找到任何相关信息。

当我想发布我的工件时,我想排除某些文件类型。

例子:

%system.agent.work.dir%\trunk\Source\Projects\Webproject.Web/Controllers => Webproject.Web/Controllers

但是,我不想复制文件夹中的所有 .cs 文件。我只需要文件夹。
是否可以只复制文件夹而不复制内容,然后复制我需要的任何内容?或者,如果我复制目录,我可以排除文件吗?

最佳答案

您可以添加一个 MSBUILD 目标,为您准备“部署”包。我有以下内容(可能需要对您的项目进行一些更改):

  <Target Name="Publish" DependsOnTargets="Build" Condition="'$(WebProjectOutputDir)'!=''">
    <RemoveDir Directories="$(WebProjectOutputDir)" ContinueOnError="true" />
    <!-- Log tasks -->
    <Message Text="Publishing web application for $(MSBuildProjectName)" />
    <Message Text="WebProjectOutputDir: $(WebProjectOutputDir)" />
    <!-- Create the _PublishedWebsites\app\bin folder -->
    <MakeDir Directories="$(WebProjectOutputDir)\bin" />
    <!-- Copy build outputs to _PublishedWebsites\app\bin folder -->
    <Copy SourceFiles="@(IntermediateAssembly)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" />
    <Copy SourceFiles="@(AddModules)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" />
    <Copy SourceFiles="$(IntermediateOutputPath)$(_SGenDllName)" DestinationFolder="$(WebProjectOutputDir)\%(Content.SubFolder)%(Content.RecursiveDir)" SkipUnchangedFiles="true" Condition="'$(_SGenDllCreated)'=='true'" />
    <Copy SourceFiles="$(IntermediateOutputPath)$(TargetName).pdb" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" Condition="'$(_DebugSymbolsProduced)'=='true'" />
    <Copy SourceFiles="@(DocFileItem)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" Condition="'$(_DocumentationFileProduced)'=='true'" />
    <Copy SourceFiles="@(IntermediateSatelliteAssembliesWithTargetPath)" DestinationFiles="@(IntermediateSatelliteAssembliesWithTargetPath->'$(WebProjectOutputDir)\bin\%(Culture)\$(TargetName).resources.dll')" SkipUnchangedFiles="true" />
    <Copy SourceFiles="@(ReferenceComWrappersToCopyLocal); @(ResolvedIsolatedComModules); @(_DeploymentLooseManifestFile); @(NativeReferenceFile)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" />
    <!-- copy any referenced assemblies to _PublishedWebsites\app\bin folder -->
    <Copy SourceFiles="@(ReferenceCopyLocalPaths)" DestinationFiles="@(ReferenceCopyLocalPaths->'$(WebProjectOutputDir)\bin\%(DestinationSubDirectory)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
    <!-- Copy content files recursively to _PublishedWebsites\app\ folder -->
    <Copy SourceFiles="@(Content)" DestinationFolder="$(WebProjectOutputDir)\%(Content.RelativeDir)" />
    <!-- Copy items that have been marked to be copied to the bin folder -->
    <Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectory)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" />
    <Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectoryAlways)" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="false" />
  </Target>

因此,在 TC 构建中,我使用 MSBUILD 构建器,如下所示:
Targets: Rebuild;Publish

Command line parameters: /p:WebProjectOutputDir="%system.teamcity.build.workingDir%\Website"

然后您可以使用 Website目录作为您的工件。

关于teamcity - 排除 teamcity 工件中的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889983/

相关文章:

Teamcity 自定义内部版本号生成器

silverlight - 使用 StatLight 和 TeamCity 自动化 silverlight 单元测试

continuous-integration - 如何运行 White + Teamcity(Winforms 应用程序)

visual-studio - 如何在团队城市中构建多个 Visual Studio 目标

TeamCity - 使用 setParameter 在构建步骤之间传递信息

teamcity - 如何在 TeamCity 中将代码覆盖率阈值设置为高水位线?

nunit - 从团队城市运行 NUnit 测试