【发布时间】:2013-04-07 06:56:09
【问题描述】:
首先,让我先说 Nuget 很棒。我喜欢它。话虽这么说,但我刚刚发现了一件非常烦人的事情。
我们有一个用于几乎所有项目的内部框架。因此,我最近为它创建了一个 Visual Studio 项目模板,以及 VSIX .. 由于 Nuget.. 在此过程中遇到了一些问题。当模板引用框架时,它不会从模板创建新项目。 . 因为框架正在使用 Nuget,它在从模板创建的新项目中找不到 nuget 文件夹。因此,解决方案是从框架项目中删除 nuget,仅将 Nuget 用于其他项目(除框架之外的任何项目)。好的,太好了..这解决了问题!
但是,现在对于我打开的每个 Nuget 托管项目,它会自动将这两行添加回框架的 .csproj 中:
<RestorePackages>true</RestorePackages>
和
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
这令人沮丧,因为我们现在要么完全停止使用 Nuget,要么在每次要重建模板时继续从框架的 .csproj 文件中删除这些行。
有什么方法可以告诉 Nuget 忽略解决方案中的一个项目?就我而言,忽略框架项目...
【问题讨论】:
-
我真的没有设置 Visual Studio 模板的经验,所以我可能会在这里问一些愚蠢的问题:首先,您是否按照文档 (docs.nuget.org/docs/reference/…) 中描述的所有步骤操作在 VS 模板中使用 NuGet 包?而且,你的这个内部框架,你如何将它包含在你所有的其他项目中?这是作为 NuGet 包完成的吗?
-
嗨。谢谢回复。首先,我的模板中没有包含 nuget 包。虽然有一个packages.xml,所以当我们创建新项目时,我们只是将它设置为由Nuget管理,然后Nuget会自动从xml文件中检测那些丢失的包并自动下载它们......
-
...第二件事是我们没有引用Nuget的框架(代码库)..它被引用为解决方案中的项目(右键单击,添加现有项目)..哪个当然我们必须在项目创建后重新引用。我需要稍后研究多项目模板来解决这个问题......无论如何......你可能在想......然后只需从项目模板中删除引用。好吧,如果我这样做,是的..我想项目将被创建..但是项目模板将不会构建(缺少 nuget 文件夹问题,因为框架使用 Nuget)...
-
..再一次..如果我们从框架中删除 Nuget(原始计划),那很好并且它可以工作,但是下次我们打开一个引用框架的不同 nuget 管理的项目(相同解决方案),然后它会自动将框架再次添加到 nuget 管理中......我们又回到了起点。此外,当我们打开框架的解决方案时,它还抱怨缺少 nuget 文件夹,因为 nuget 是从外部解决方案而不是主框架的解决方案启用的。
-
如果有人想知道为什么我们将代码库添加到解决方案中而不是引用版本化的 DLL...这是因为库在不断变化并随着每个新项目而更新..它每天都会修改.. 所以使用 DLL 对我们来说并不是一个真正的选择
标签: visual-studio visual-studio-2012 nuget