I'm trying to create a CustomActivity to run after each successful build.

I've followed the exact steps of several tutorials

  1. http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2010/03/08/lessons-learnt-building-a-custom-activity-to-run-typemock-isolator-in-vs2010-team-build.aspx

  2. http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx
  3. http://www.dotnetcurry.com/ShowArticle.aspx?ID=522&AspxAutoDetectCookieSupport=1

  4. 所有这些都导致我得到相同的结果-几秒钟后,由于以下错误,构建失败:
    TF215097: An error occurred while initializing a build for build definition
    \MyCompany\Dev - Client: Cannot create unknown type '{clr-
    namespace:BuildTasks.Activities;assembly=BuildTasks}TFSBuildLocalizer'.
    

    我到了删除所有我在CodeActivity项目中拥有的自定义引用并注释掉所有代码的地步。

    我已将输出dll添加到TFS,并且在项目的属性中具有以下构建后脚本:
    "$(DevEnvDir)\TF.exe" checkout "$/MyCompany/Development/Djenne/Dev/Tools/BuildProcess/Output/$(TargetFileName)"
    copy /Y "$(TargetPath)" "C:\tfs2010\MyCompany\Dev\Tools\BuildProcess\Output\$(TargetFileName)"
    "$(DevEnvDir)\TF.exe" checkin "$/MyCompany/Development/Djenne/Dev/Tools/BuildProcess/Output/$(TargetFileName)"
    

    我确保工作流xaml中的 namespace 对于自定义CodeActivity是正确的。

    我不知道我还能尝试什么

    请帮忙!

    谢谢,

    编辑:我要添加关于我已经尝试过的内容的更多描述:

    CodeActivity类已经具有以下属性:
    [BuildActivity(HostEnvironmentOption.All)]
    

    CodeActivity类包含在事件库项目中。
    这是csproj文件中的ProjectTypeGuids标记:
    <ProjectTypeGuids>{32f31d43-81cc-4c15-9de6-3fc5453562b6};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    

    在自定义工作流程xaml中,我已经在“获取受影响的测试,索引源和发布符号”之后添加了我的CodeActivity。

    我目前在CodeActivity中没有任何InArgument或OutArgument。

    这些是我的CodeActivity项目中的引用:
  5. Microsoft.CSharp
  6. Microsoft.TeamFoundation.Build.Client
  7. 系统
  8. System.Activities
  9. System.Core
  10. System.Data
  11. System.Data.DataSetExtensions
  12. System.Xaml
  13. System.Xml
  14. System.Xml.Linq
  15. WindowsBase的

  16. 在“构建 Controller 属性”中,使用与我的后期构建脚本相同的TFS路径设置“自定义程序集的版本控制路径”:
    $/MyCompany/Development/Djenne/DEV/Tools/BuildProcess/Output

    在我的构建定义中,我使用自定义工作流程xaml设置了“构建过程模板”。

    谢谢你们的回答,您还有其他想法吗?
    谢谢

    最佳答案

    好吧,我明白了这件事。

    这是对我有用的东西:

    我已经将我的dll安装到了构建服务器中的GAC,运行了构建,突然工作了!

    gacutil.exe /i buildtasks
    

    之后,我已经从GAC卸载了dll,并且它仍然可以正常工作。
    gacutil.exe /u buildtasks
    

    另一件事,我的项目有几个引用,我还必须在与CodeActivity dll本身相同的目录中 checkin 。
    为此,我更改了项目的后构建脚本:
    cd "C:\tfs2010\Djenne\Dev\Tools\BuildProcess\Output\"
    "$(DevEnvDir)\TF.exe" checkout "$/TradeNetworks/Development/Djenne/Dev/Tools/BuildProcess/Output/*.*"
    xcopy "$(TargetDir)*.*" "C:\tfs2010\Djenne\Dev\Tools\BuildProcess\Output\" /E /R /C /Y
    

    现在剩下要做的唯一一件事就是弄清楚如何调试这该死的东西。
    但这是另一个问题。

    多亏了每个人的帮助,

    希望这也会对将来的所有人有所帮助。

    编辑:

    我注意到的另一件事是,每当我编辑自定义工作流程时,它都会重新生成xaml并从自定义CodeActivity namespace (xmlns)中删除后缀“; assembly = BuildTasks”。
    因此,每次更改后,我都需要编辑xaml以一遍又一遍地修复它,否则会再次发生相同的错误。

    关于xaml - 错误 'TF215097:...Cannot create unknown type for...'自定义CodeActivity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3753713/

10-13 02:14