2014-04-17 4 views
3

최근 솔루션을 Visual Studio 2013로 업그레이드하고 2.6에서 테스트 라이브러리의 NUnit 2.6.3에 대한 참조를 2.6으로 업데이트했습니다. .2. Visual Studio에서는 모든 것이 제대로 작동하지만 배포 시스템을 구동하는 MSBuild 스크립트는 완전히 손상되었습니다.업그레이드 후 MSBuild에서 NUnit 실행에 실패했습니다 - System.IO.FileLoadException : 파일 또는 어셈블리 nunit.framework을로드 할 수 없습니다.

빌드 파일은 참조되는 MSBuild.Community.Targets 파일과 nunit-console.exe 및 다양한 종속 파일을 포함하는 NUnit 디렉토리가있는 MSBuild 폴더가있는 빌드 디렉토리에 있습니다. 나는 이것을 2.6.3으로 업그레이드했다. 난 그냥이 오류가

...

'System.IO.FileLoadException : 파일 또는 어셈블리 로드 할 수 없습니다'nunit.framework, 버전 = 2.6.0.12051을, 문화 = 중립, PublicKeyToken = 96d09a1eb7f44a77 '또는 그 종속성 중 하나. 어셈블리의 매니페스트 정의에 일치하는 어셈블리 참조가 일치하지 않습니다. (HRESULT 예외 : 0x80131040) '

이 코드는 전 2.6.2를 참조하기 전에 정상적으로 작동했기 때문에 2.6.0이 어디에서 왔는지 또는 어떻게 알 수 있습니까 땅에서 나는 (오른쪽이있는!) 2.6.3을 찾아 그것을 말해 (이 어떤 도움이된다면)

가 여기 내 빌드 파일의 ... 'RunTests의

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="DeployAndPackage" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <!-- IMPORTS --> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(MSBuildProjectDirectory)\MSBuild\MSBuild.Community.Tasks.targets" /> 
    <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/> 
    <!-- PROPERTIES --> 
    <PropertyGroup Label="BuildOptions"> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform> 
    <OutputPath Condition=" '$(OutputPath)' == '' ">bin\</OutputPath> 
    <ProjectConfiguration Condition=" '$(Configuration)' == '' ">Debug</ProjectConfiguration> 
    <ProjectConfiguration Condition=" '$(Configuration)' == 'Test' ">Debug</ProjectConfiguration> 
    <ProjectConfiguration Condition=" '$(Configuration)' == 'Staging' ">Release</ProjectConfiguration> 
    <ProjectConfiguration Condition=" '$(Configuration)' == 'Live' ">Release</ProjectConfiguration> 
    </PropertyGroup> 
    <PropertyGroup Label="DirectoryPaths"> 
    <RootDir>$(MSBuildProjectDirectory)\..\</RootDir> 
    <TestsDir>$(RootDir)Tests\</TestsDir> 
    <DatabaseDir>$(RootDir)SiansPlan.Database\</DatabaseDir> 
    <RelativePackageDir>$(RootDir)pkg\</RelativePackageDir> 
    <Solution>$(RootDir)SiansPlan.sln</Solution> 
    <SP_Auth>$(RootDir)SiansPlan.Authentication\SiansPlan.Authentication.csproj</SP_Auth> 
    <SP_Database>$(DatabaseDir)SiansPlan.Database.sqlproj</SP_Database> 
    <SP_Entities>$(RootDir)SiansPlan.Entities\SiansPlan.Entities.csproj</SP_Entities> 
    <SP_Domain>$(RootDir)SiansPlan.Domain\SiansPlan.Domain.csproj</SP_Domain> 
    <SP_Providers>$(RootDir)SiansPlan.Providers\SiansPlan.Providers.csproj</SP_Providers> 
    <SP_ApiDir>$(RootDir)SiansPlan.Api\</SP_ApiDir> 
    <SP_Api>$(SP_ApiDir)SiansPlan.Api.csproj</SP_Api> 
    <SP_Web>$(RootDir)SiansPlan.Web\SiansPlan.Web.csproj</SP_Web> 
    <SP_SpaDir>$(RootDir)SiansPlan.Spa\</SP_SpaDir> 
    <SP_Spa>$(SP_SpaDir)SiansPlan.Spa.csproj</SP_Spa> 
    <SP_Test_Support>$(TestsDir)SiansPlan.TestSupport\SiansPlan.TestSupport.csproj</SP_Test_Support> 
    <SP_Entities_Tests>$(TestsDir)SiansPlan.Entities.Tests\SiansPlan.Entities.Tests.csproj</SP_Entities_Tests> 
    <SP_Auth_Tests>$(TestsDir)SiansPlan.Authentication.Tests\SiansPlan.Authentication.Tests.csproj</SP_Auth_Tests> 
    <SP_Domain_Tests>$(TestsDir)SiansPlan.Domain.Tests\SiansPlan.Domain.Tests.csproj</SP_Domain_Tests> 
    <SP_Api_Tests>$(TestsDir)SiansPlan.Api.Tests\SiansPlan.Api.Tests.csproj</SP_Api_Tests> 
    </PropertyGroup> 
    <PropertyGroup Label="Globals"> 
    <ProjectGuid>2ae13924-f2dd-48b1-9acb-755e0ee2b0d1</ProjectGuid> 
    </PropertyGroup> 
    <!-- BUILD --> 
    <Target Name="Compile"> 
    <MSBuild Projects="$(SP_Auth)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Database)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Entities)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Domain)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Providers)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Api)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Web)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Spa)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Test_Support)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Entities_Tests)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Auth_Tests)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Domain_Tests)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    <MSBuild Projects="$(SP_Api_Tests)" Targets="Rebuild" Properties="Configuration=$(ProjectConfiguration);Platform=$(Platform);OutputPath=bin\" /> 
    </Target> 
    <!-- TEST --> 
    <Target Name="RunTests" DependsOnTargets="Compile"> 
    <CreateItem Include="$(RootDir)Tests\*.Tests\bin\*.Tests.dll"> 
     <Output TaskParameter="Include" ItemName="TestAssemblies" /> 
    </CreateItem> 
    <NUnit Assemblies="@(TestAssemblies)" ToolPath="$(MSBuildProjectDirectory)\NUnit" DisableShadowCopy="true" /> 
    </Target> 
    <!-- TRANSFORM --> 
    <Target Name="Transform"> 
    <TransformXml Source="$(SP_ApiDir)\Web.config" 
        Transform="$(SP_ApiDir)\Web.$(Configuration).config" 
        Destination="$(SP_ApiDir)\Web.transformed.config" 
        StackTrace="False" /> 
    <TransformXml Source="$(SP_SpaDir)\Web.config" 
        Transform="$(SP_SpaDir)\Web.$(Configuration).config" 
        Destination="$(SP_SpaDir)\Web.transformed.config" 
        StackTrace="False" /> 
    </Target> 
    <!-- DEPLOY & PACKAGE --> 
    <Target Name="DeployAndPackage" DependsOnTargets="RunTests"> 
    <CallTarget Targets="Transform"/> 
    <ItemGroup> 
     <SqlFiles Include="$(DatabaseDir)Upgrades\*.sql" /> 
    </ItemGroup> 
    <RemoveDir Directories="$(RelativePackageDir)" /> 
    <MakeDir Directories="$(RelativePackageDir)" /> 
    <MakeDir Directories="$(RelativePackageDir)sql\" /> 
    <Copy SourceFiles="@(SqlFiles)" DestinationFolder="$(RootDir)pkg\sql" /> 
    </Target> 
</Project> 

전체 출력을 '빌드의 일부는 ...

RunTests :

C : \ 개발 \ 클라이언트 \ SiansPlan 소스 \ 빌드 \ \ NUnit과 \ NUNIT - Console.exe를 /NOLOGO/noshadow C : \ 개발 \ 클라이언트 \ SiansPlan 소스 \ 빌드 \ .. \ 테스트 \ SiansPlan.Api.Tests \ bin \ SiansPlan.Api.Tests.dll C : \ Development \ Clients \ SiansPlan \ source \ build .. \ Tests \ SiansPlan.Api.Tests \ bin \ SiansPlan.Domain.Tests.dll C : \ Development \ Clients \ SiansPlan \ source \ build .. \ Tests \ SiansPlan.Authentication.Tests \ bin \ SiansPlan.Authentication.Tests.dll C : SiansPlan.Domain.Tests \ bin \ SiansPlan.Domain.Tests.dll C : \ Development \ Clients \ SiansPlan \ source \ build .. \ Tests \ SiansPlan.Entities.Tests \ bin \ SiansPlan.Entities.Test C : \ Development \ Clients \ SiansPlan \ source \ build. \ Tests \ SiansPlan.Logging.Tests \ bin \ SiansPlan.Domain.Tests.dll C : \ Development \ Clients \ SiansPlan \ source \ build. .net-4.5 처리되지 않은 예외 : System.IO.FileLoadException : 로드 할 수없는 파일 또는 어셈블리 ' nunit.framework, 버전 = 2.6.0.12051, 문화 = 중립, PublicKeyToken = 96d09a1eb7f44a77 '또는 종속성 중 하나입니다. 위치한 어셈블리의 매니페스트 정의가 과 일치하지 않습니다. (HRESULT에서 예외 : 0x80131040)
파일 이름 : 'nunit.framework, 버전 = 2.6.0.12051, 문화 = 중립, PublicKeyToken = 96d09a1eb7f44a77'

어떤 아이디어가 내가 머리에있어 대부분의 환영받을 것 책상 무대에 두드리는 소리. 나는 내 책상에 곰, 내 고무 오리와 Soundwave를 요청했고 그들 중 누구도 솔직히 많은 것을 사용하지 못했습니다!

+0

난 그냥 직접 명령 프롬프트에서 명령을 실행하도록 시도하고 내 빌드 디렉토리에 NUNIT - Console.exe를 인스턴스를 사용하거나 컴퓨터에 로컬로 설치 여부를 나는 같은 문제를 얻을 수 그들은 둘 다 nunit 2.6.0을 찾지 못하고 넘어진다. –

답변

1

모호한 문제에 대한 모호한 답변 - 내 주변에 매달려있는 오래된 도서관 (Logging의 Domain.Tests는 약간의 경품이었습니다)이 넘어져서 쓰러지고 있습니다. ,

cleanfail는