针对不同.net版本

时间:2016-12-06 13:59:23

标签: c# wpf unit-testing mvvm-light

我的Visual Studio 2015解决方案包含一个针对.NET 4.5的单元测试项目。

我正在测试的代码是.NET 4.0 WPF应用程序。平台差异是必要的,因此Visual Studio可以识别" async Task"测试方法正确。

WPF应用程序项目依赖于MvvmLight NuGet包,因此我还必须在Unit Test项目中引用此包。

单元测试编译失败,因为它预期MvvmLight 5.3.0.19038,但它包含对5.3.0.19026的引用。

我尝试在Unit Test项目上手动编辑packages.config文件,使MvvmLight包(及其依赖项)以.NET 4.0为目标,如:

  <package id="MvvmLight" version="5.3.0.0" targetFramework="net40" />

然而,组装仍然是相同的。

如何编译这个项目?

1 个答案:

答案 0 :(得分:0)

我可以通过创建这样的测试来解决.NET 4.0上的“异步任务”测试方法限制:

    [TestMethod]
    public void MyTestMethod()
    {
        TaskEx.Run(async () =>
        {
            //Replace with unit test code
            await TaskEx.Delay(1000);

        }).GetAwaiter().GetResult();
    }

仍不确定这是否适用于所有测试,但这是一种入门方式。