2015-08-22 3 views
2

Я пытаюсь запустить мои первые тесты xUnit.net через MSBuild, и я следую документации here. Вот мой файл проекта:Как определить версию MSBuild, сборка была построена с помощью?

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build;Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="..\packages\xunit.runner.msbuild.2.0.0\build\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.runner.msbuild.props" 
      Condition="Exists('..\packages\xunit.runner.msbuild.2.0.0\build\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.runner.msbuild.props')" /> 

    <!--Extra lines omitted for brevity--> 

    <UsingTask AssemblyFile="xunit.runner.msbuild.dll" 
      TaskName="Xunit.Runner.MSBuild.xunit"/> 
    <Target Name="Test"> 
    <xunit Assembly="bin\$(Configuration)\Core.dll"/> 
    </Target> 
</Project> 

Когда я бегу MSBuild, однако, он дает мне следующую ошибку:

C:\Users\James\libvideo\tests\Core\Core\Core.csproj(85,5): 

error MSB4127: The "xunit" task could not be instantiated from the assembly "C:\Users\James\libvideo\tests\Core\packages\xunit.runner.msbuild.2.0.0\build\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.runner.msbuild.dll". 
Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. 
Unable to cast object of type 'Xunit.Runner.MSBuild.xunit' to type 'Microsoft.Build.Framework.ITask'. 

Я проверил, что написание является правильным, однако он по-прежнему дает мне это ошибка. Документация xUnit.net ничего не говорит об этом (или, по крайней мере, от того, где я смотрел), поэтому я застрял в том, что делать сейчас. Это говорит мне, что я могу проверить версию MSBuild, с которой была собрана сборка, но как мне это сделать? Требуется ли MSBuild для сборки сборки?

(MSBuild говорит, что это версия 14.0.23107.0, у меня есть VS2015, если это важно.)

Спасибо!

+0

https://github.com/xunit/xunit/issues/334 –

ответ

4

MSBuild основан на задачах и задачах. Вы можете видеть, как это выглядит в .csproj, обычно в конце. Объект задачи определяется в версии MSBuild, которую вы используете, например, C:\Program Files (x86)\MSBuild\12.0\Bin.

версия MSBuild обычно следует рамки .NET, как это:

version 1.0: 2006 
version 2.0: 
version 3.5: 2011 

Вы, вероятно, пропустите нужную версию MSBuild. Или вы можете попробовать с другой версией, чем ToolsVersion="14.0".

+0

Что представляет собой «2006»? Нет VS 2006; и .NET framework 3.0 был выпущен в 2006 году; .NET framework 1.0 был выпущен в 2002 году. – cowlinator

Смежные вопросы