在Bamboo中运行时会产生不同的.NET构建结果

时间:2015-12-24 09:03:52

标签: c# .net telerik bamboo

我正在使用Atlassian Bamboo构建.net 4.5.2应用程序。该构建运行良好,依赖于Telerik.Windows.Controls.Data几周。

在最近的一个功能分支上,我添加了对Telerik.Windows.Controls.GridView.dll版本2015.3.1104.45的依赖。现在构建失败了。

  

警告MSB3245:无法解析此引用。找不到   程序集“Telerik.Windows.Controls.GridView,   版本= 2015.3.1104.45,文化=中立,   PublicKeyToken = 5803cfa389c90ce7,processorArchitecture = MSIL“。检查到   确保程序集存在于磁盘上。如果需要此引用   通过您的代码,您可能会遇到编译错误。 2015年12月24日08:11:23

     

错误MC3074:XML名称空间中不存在标记“RadGridView”   'http://schemas.telerik.com/2008/xaml/presentation'。第55行位置   18。

传统上,当构建失败时,我遵循了这些分类步骤:

  1. 在我的工作站上查看违规提交和测试版本
  2. 如果“在我的机器上运行”,请使用失败的工作目录登录构建服务器并测试构建
  3. 我在visual studio 2015 IDE中构建了两个步骤。在这种情况下 - 两个构建都成功。令人沮丧!所以我使用命令行并使用Bamboo执行的命令行构建解决方案:

    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com"  "SolutionNameRedacted.sln" /rebuild Release 
    

    这也成功了!

    我注意到竹子日志中的以下行:

      

    2015年12月24日08:10:23     C:\ Atlassian的\数据\竹\ XML的数据\集结DIR \ CS-CC13-JOB1>呼叫   “C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat”   amd64 24-Dec-2015 08:10:23'“C:\ Program Files(x86)\ Microsoft Visual   Studio 14.0 \ VC \ vcvarsall.bat“'未被识别为内部或   外部命令,

    此批处理文件用于指定编译器工具集。这是一个没有找到的问题吗?我总是假设编译器首选项由项目文件表示。我检查了Microsoft Visual Studio 14.0目录,vcvarsall.bat在任何地方都不存在。

    自上次构建以来对csproj文件的唯一重大更改是添加了这一行:

    <Reference Include="Telerik.Windows.Controls.GridView, Version=2015.3.1104.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL" />
    

    我有点亏本,因为它导致交货量大幅下滑。

    我目前的理论是,这是一个用户帐户问题,竹子无法访问所需的Telerik程序集。我的下一步也是:

    1. 使用正在破坏的xaml文件中的clr-namespace引用程序集
    2. 使用提升的权限测试用户帐户的构建(遗憾的是我没有这种访问权限)

1 个答案:

答案 0 :(得分:0)

事实证明,Telerik不会将其二进制文件安装到GAC。 Visual Studio需要csproj文件中的<hintpath>条目才能帮助发现。这条路径应该是你安装目录。

这听起来像个faff吗?这是我不是非常印象深刻。值得庆幸的是,Telerik VS Extension将为您添加引用和提示路径。我的建议是始终使用此向导。

缺点 - 所有开发人员都需要在同一文件夹中安装Telerik库。我非常确定你可以手动向GAC注册二进制文件。