ソリューションのビルドに続いて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 .. \ Hosts \ MyApplication.Hosts.Web.Specs \ bin \ MyApplication.Hosts.Web.Specs.dll --teamcity"
を実行すると、次のエラーが発生します。
C:\ TeamCity \ buildAgent \ work \ 117e3aa3bb76aad0 \ Build> 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'またはその依存関係のe。間違った形式でプログラムをロードしようとしました。
調査を行った結果、ローカルマシンとビルドサーバーの「MyApplication.Hosts.Web.Specs.dll」は、どちらも15kbですが、md5チェックサムが異なることがわかりました。これは、MSpecテストの実行がエラーを引き起こす理由を説明している可能性があります。実際、ローカルマシンからビルドサーバーにdllをコピーすると、テストが実行されます。
だから私の質問は、他の誰かが「ひどく」構築されているアセンブリの構築のこの同じ問題に遭遇したかどうかです。
-編集-ローカルでは、ソリューションを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.