通过本地项目引用导入NuGet引用

时间:2017-06-22 18:04:43

标签: c# visual-studio nuget projects-and-solutions

假设我有一个“主要”C#项目,它使用NuGet来管理其第三方依赖项。

现在让我说我在主项目旁边创建一个单元测试项目,其中包括主项目作为参考。

不幸的是,似乎我需要在主项目中重新添加通过nuget包含的依赖项,以便使用它们为单元测试项目中的单元测试编写代码。

我的问题是:有没有办法在测试项目中自动包含“主要”nuget引用?

1 个答案:

答案 0 :(得分:0)

  

似乎我需要在主项目中重新添加通过nuget包含的依赖项,以便使用它们为单元测试项目中的单元测试编写代码。

这是因为Visual Studio / MSBuild试图变得聪明并且仅将引用引入到项目单元测试中,它被检测为项目" main"所需的。这样做可以避免项目单元测试中的间接参考污染。您可以参考accepted answer了解更多详情。

  

我的问题是:有没有办法自动包含" main"测试项目中的nuget参考?

简单的答案是肯定的,但不确定这种方法对您是否有效。我在这里发布,希望它可以给你一些帮助。

您可以将要添加的包列表复制到" main"中的package.config进行UI测试。将投影到UI测试项目中的package.config ,例如:

  <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net452" />
  <package id="NUnit" version="3.7.1" targetFramework="net452" />

然后nuget将在您构建UI测试时恢复这些包,您需要做的是使用Package Manager控制台中的NuGet命令行:

Update-Package -Reinstall -ProjectName [name of your target project]

强制将包引用重新安装到UI测试项目中。

相关问题