2013-04-15 79 views
4

首先,让我先说Nuget真棒。我喜欢它。话虽如此,我刚才发现有一件事真的让人非常恼火。Nuget:将解决方案中的一个项目设置为不受Nuget管理?

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

不过,现在每的NuGet管理的项目,我打开,它会自动将这些2号线回框架的.csproj:

<RestorePackages>true</RestorePackages> 

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

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

有没有什么办法可以让Nuget忽略解决方案中的一个项目?在我的情况下,忽略框架项目...

+0

我真的没有设置Visual Studio模板的经验,所以我可能会在这里问愚蠢的问题:首先,你是否按照文档中所述的所有步骤(http://docs.nuget.org/ docs/reference/packages-in-visual-studio-templates)在VS模板中使用NuGet包吗?此外,您的内部框架,您如何将其纳入所有其他项目?这是做为一个NuGet包吗? – Nailuj

+0

嗨。谢谢回复。首先,我不在我的模板中包含nuget包。尽管有一个packages.xml,所以当我们创建新项目时,我们只需将它设置为由Nuget管理,然后Nuget将自动检测xml文件中缺少的包并自动下载它们... – Matt

+0

... The第二件事是我们没有通过Nuget引用框架(代码库)..它被引用为解决方案中的项目(右键单击,添加现有项目)..当然,项目之后我们必须重新引用创建。我需要稍后查看多个项目模板来解决这个问题...无论如何..您可能会想......然后从项目模板中删除参考。那么,如果我这样做,是的..我想该项目将被创建..但是然后项目模板将不会建立(丢失nuget文件夹的问题,因为框架使用Nuget)... – Matt

回答

1

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

  1. 删除任何东西,一切从它作为一个模板,该项目做的NuGet。然后,这引起了引用框架的问题,因为框架项目期望由Nuget管理,并且从这个解决方案中它不是,所以发生错误...所以:
  2. 从解决方案中删除框架项目,并只引用DLL所以它会建立,而不是抱怨缺少的NuGet文件夹
  3. 重建
  4. 导出使用导出的模板
  5. 到模板
  6. 构建VSIX安装模板
  7. 创建新安装的模板创建一个新的项目
  8. 启用NuGet包上新项目的解决方案恢复失踪包
  9. 打开包管理器控制台
  10. 通知消息,并同意下载并安装它们(约1分钟)
  11. 删除框架DLL参考,并用实际的项目替换(右键单击,添加现有项目)
  12. 重建并运行
  13. 庆祝!

我希望这可以帮助其他任何可能陷入困境的人。如果有人有更好的主意,请告诉我。赏金仍然开放6天,所以我不会将此标记为答案。

相关问题