Nuget:将一个项目置于解决方案中,由Nuget无法管理?

时间:2013-04-15 08:10:22

标签: visual-studio visual-studio-2012 nuget

首先,让我首先说Nuget很棒。我喜欢它。话虽如此,我刚刚发现其中有一件事情真的变得非常烦人。

我们有一个内部框架,我们几乎用于所有项目。所以,我最近为它创建了一个Visual Studio项目模板,以及VSIX ..由于Nuget在途中遇到了一些问题..当模板引用框架时,它不会从模板创建新项目。因为框架使用的是Nuget,它无法在从模板创建的新项目中找到nuget文件夹。因此,解决方案是从框架项目中删除nuget,并仅将Nuget用于其他项目(除框架之外的任何项目)。好的,很好......解决了这个问题!

但是,现在我打开的每个Nuget托管项目,它会自动将这两行添加回框架的.csproj中:

<RestorePackages>true</RestorePackages>

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

这很令人沮丧,因为我们现在需要完全停止使用Nuget或者每次我们想要重建模板时从框架的.csproj文件中删除这些行。

有什么方法可以告诉Nuget忽略解决方案中的一个项目?就我而言,忽略框架项目......

1 个答案:

答案 0 :(得分:1)

根据Nailuj的建议以及我在这里找到的建议:http://samritchie.net/2012/09/17/nuget-packages-in-vs2012-templates/,我尝试了一些我认为可以工作的东西,但它没有满足我的需要;该方法只是用于包含新项目的包,这对我来说没有帮助,并没有解决问题(关于缺少.nuget目标文件夹的错误)。所以,我玩了一下,想出了一些不理想的东西,但是可以接受:

  1. 从作为模板的项目中删除Nuget的所有内容和所有操作。这会引起引用框架的问题,因为框架项目期望由Nuget管理,并且从这个解决方案不是,所以发生错误......所以:
  2. 从解决方案中删除框架项目并仅引用DLL以便构建,但不会抱怨缺少nuget文件夹
  3. 重建
  4. 导出到模板
  5. 使用导出的模板构建VSIX
  6. 安装模板
  7. 从新安装的模板
  8. 创建新项目
  9. 在新项目解决方案上启用Nuget包还原
  10. 打开软件包管理器控制台
  11. 注意有关丢失软件包的消息并同意下载并安装它们(大约1分钟)
  12. 删除框架DLL引用并替换为实际项目(右键单击,添加现有项目)
  13. 重建并运行
  14. 庆祝!
  15. 我希望这可以帮助任何可能发现自己陷入困境的人。如果有人有更好的想法,请告诉我。赏金仍然开放6天,所以我不会将此标记为答案。