小编Ker*_*rry的帖子

从NuGet安装NUnit后,如何强制TestDriven.Net使用NuGet引用的NUnit dll?

我正在尝试设置一个Visual Studio解决方案,以促进:

我想要:

  • 将所有引用和依赖项保留在解决方案的目录结构的根目录下

  • 当我右键单击TestDriven.NET提供的项目时,能够使用"使用NUnit测试"命令.

我不想:

  • 使用TestDriven.NET为自己安装的NUnit版本

我的确想要:

  • "使用NUnit测试"命令使用NuGet在我的解决方案的子目录下安装的NUnit版本

更多细节和我已经尝试过的内容:

当您安装TestDriven.NET时,它将自己的NUnit版本放在以下路径中:

  • \ Program Files(x86)\ TestDriven.NET 3\NUnit\2.5

当您使用NuGet安装最新版本的NUnit时,它将NUnit放在如下路径中:

  • Solution_root \包\ NUnit.2.5.10.11092

NuGet会自动为您添加对\ packages\NUnit.2.5.10.11092\lib \nunit.framework.dll的引用.如果您想要使用TD.Net菜单轻松执行NUnit测试,那么该引用几乎毫无价值,因为TD.Net实际上并不使用NuGet刚为您设置的NUnit DLL.

  • 如何强制TestDriven.Net的菜单在我的解决方案路径中使用引用的NUnit dll,而不是在\ Program Files(x86)\ TestDriven.NET 3\NUnit \下安装的NUnit dll?

要么

  • 如果那是不可能的,是否有一个简单的快捷键/菜单命令来执行使用我的解决方案文件夹下的NUnit的SpecFlow测试而不使用TestDriven.Net?

我为什么要这样做?

我使用NuGet安装了NUnit,这样我就可以将测试框架库保留在我的解决方案中并在源代码管理下.我需要能够在我的解决方案路径(Solution_root\packages\NUnit.2.5.10.11092)下引用nunit.framework.dll之类的东西,而不是从(\ Program Files(x86)\ TestDriven.NET 3\NUnit\2.5)引用它.

我已经尝试过这里的建议:

我也不想手动复制和替换TD.Net安装的NUnit文件,因为它不允许在源代码管理下使用特定于解决方案的依赖文件和隔离.

nunit unit-testing testdriven.net visual-studio nuget

9
推荐指数
1
解决办法
3699
查看次数

为什么我在使用Microsoft.Bcl时不能在Windows Phone 7.1 MvvmCross项目中使用await关键字 - 无法等待'System.Threading.Tasks.Task?

在使用Microsoft.Bcl"Microsoft BCL Portability Pack"时,我无法在MvvmCross Windows Phone 7.1项目中使用await关键字.

我已经在GitHub上发布了我在下面描述的示例项目的代码,并且此行发生了await错误.

当我尝试构建包含FirstViewModel的第三个"核心"Windows可移植类库(PCL)时,我得到以下错误:

Type System.Threading.Tasks.Task<string> not awaitable under VS red squiggles, and
Cannot await 'System.Threading.Tasks.Task<string>' when building.
Run Code Online (Sandbox Code Playgroud)

解决方案中有四个项目:

  1. Windows可移植类库(PCL),其中包含一个接口,用于引用BCL提供的"任务"对象.

  2. 一个针对OS 7.1的Windows Phone类库,它实现了上面的接口,并且还使用了BCL中的"任务".

  3. 另一个Windows可移植类库(PCL),提供应用程序的"核心"功能,包括ViewModel.

  4. 试图引用和使用上述DLL的Windows Phone 7.1 /"7.5"应用程序.

前两个项目包含接口和接口的实现编译没有任何错误.但第三个"核心"PCL无法使用上面显示的错误构建.

更多细节如果你想要他们:

  • 我尝试了这个App.config"修复",如"已知的BCL问题"中所述:http: //blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx.但是当我添加时没有解决错误App.config只是"核心"项目,当我尝试将相同的App.config添加到每个项目时.有可能我没有在元素中使用正确的版本或我只是错误地做了App.config的东西.

  • 解决方案中设置为以PCL为目标的每个项目在Visual Studio中都设置为"Profile104".

那些DLL位于:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\Profile\Profile104\
Run Code Online (Sandbox Code Playgroud)
  • 此PCL配置文件显示为在Visual Studio项目属性中定位这些平台:适用于Windows应用商店应用的.NET,.NET 4.5,Silverlight 4+和Windows 7.5+

  • 解决方案中的每个项目也都通过NuGet引用了Microsoft.Bcl"Microsoft BCL Portability Pack".

  • 所有四个项目都使用MvvmCross(Mvx).

  • 此示例中的所有项目都没有尝试定位与Xamarin Droid/iOS堆栈相关的任何内容.它是所有Windows,并且仍然在await关键字上失败.

  • 带有接口的PCL和Windows Phone类库都使用Mvx CrossCore NuGet包,并设置为"Mvx插件".

  • "Core"PCL使用完整的MvvmCross NuGet包,并包含发生等待错误的FirstViewModel.

  • Windows Phone App项目也引用了完整的MvvmCross,并将Windows Phone特定的Mvx文件引入其中.

  • 如上所述,请参阅GitHub上失败的示例代码.

c# base-class-library windows-phone portable-class-library mvvmcross

4
推荐指数
1
解决办法
2204
查看次数