我正在尝试在构建解决方案后运行MSpec测试。所以,我的MSBuild脚本设置如下:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="../MyApplication.Web.sln" />
<Message Text="Building solution" Importance="high" />
</Target>
<Target Name="TeamCity" DependsOnTargets="Build">
<Message Text="Before executing MSpec command" Importance="high" />
<Exec Command="mspec.exe ..\Hosts\MyApplication.Hosts.Web.Specs\bin\MyApplication.Hosts.Web.Specs.dll --teamcity" />
<Message Text="Running MSpec" Importance="high" />
</Target>
</Project>
然后我将“TeamCity”称为TeamCity中的目标。当命令
执行“mspec.exe .. \主机\ MyApplication.Hosts.Web.Specs \ BIN \ MyApplication.Hosts.Web.Specs.dll --teamcity“
,我收到以下错误:
C:\ TeamCity \ buildAgent \ work \ 117e3aa3bb76aad0 \ Build&gt; mspec .. \ Hosts \ Application.Hos ts.Web.Specs \ BIN \ Application.Hosts.Web.Specs.dll 无法加载文件或程序集'file:/// C:\ TeamCity \ buildAgent \ work \ 117e3aa3bb7 6aad0 \ Hosts \ Application.Hosts.Web.Specs \ bin \ Application.Hosts.Web.Specs.dll'或on 它的依赖关系。尝试加载具有不正确f的程序 ORMAT。
在做了一些调查之后,我发现本地机器和构建服务器上的“MyApplication.Hosts.Web.Specs.dll”虽然都是15kb,但却有不同的md5校验和。这可能解释了为什么执行MSpec测试会导致错误。实际上,如果我将dll从本地计算机复制到构建服务器,则测试将运行。
所以我的问题是,是否有其他人遇到了同样的问题,即构建“严重”的程序集?
CNC中 本地我将解决方案构建为64位应用程序,但在TeamCity中,我将其构建为32位(x86)。这可能是问题吗?
PS:我尝试在TeamCity中将其构建为64位应用程序,但是我得到了其他错误,我暂时忽略了这些错误。但是,为了完整起见,这里是:
Client\ProdMaster.SLCharts\ProdMaster.SLCharts.csproj
[15:11:22]: [Client\ProdMaster.SLCharts\ProdMaster.SLCharts.csproj] GetFrameworkPaths
[15:11:22]: [GetFrameworkPaths] ValidateSilverlightFrameworkPaths
[15:11:22]: [ValidateSilverlightFrameworkPaths] C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104, 9): The Silverlight 4 SDK is not installed.
答案 0 :(得分:2)
大卫,
您是哪个版本的MSpec 运行?如果你还在0.3.0.0我 鼓励您切换到most recent 0.4.9.0 build。这个构建 包含mspec.exe(AnyCPU) as mspec-x86.exe(x86)。你应该 使用匹配构建的可执行文件 环境/架构。
请跟踪装配 与Fustion日志查看器绑定 - 它是Windows SDK的一部分。该 错误消息“尝试了 加载程序不正确 格式。“表示MSpec能够 找到规范DLL,但目标 架构之间不匹配 MSpec可执行文件和规范 组装