添加对相同 Nuget 包的引用,但针对不同的目标
Add reference to same Nuget package but for different targets
我在 Visual Studio 2013 年有一个解决方案,其中包含更多具有通用源代码但针对不同平台(.Net、WinRT、.Net Micro Framework 等)的 C# 项目文件。
所有的csproj文件都在同一个目录下。
这些项目使用可用于所有上述平台的 Nuget 包。
如果我为其中一个项目(例如 .Net)添加此 Nuget 包,则会创建 package.config 文件并在其中引用该目标(例如 .Net)。该包已下载到 packages 文件夹中。
如果我尝试将相同的包但针对不同的目标添加到解决方案中的另一个项目,UI 会告诉我该包已安装。这是真的,因为 package.config 文件已经存在,但我想为不同的目标使用相同的包。
所以我的问题如下:如何将相同的 Nuget 包添加到目标不同的所有不同项目中?
谢谢,
保罗
很遗憾,我认为 NuGet 不支持您的方案。
NuGet 期望 packages.config 文件与 .csproj 文件位于同一文件夹中。这些文件之间应该是一对一的关系。您应该为每个项目创建一个单独的文件夹,而不是将所有 .csproj 文件保存在同一文件夹中。
如果您想跨多个项目共享代码,最简单的方法是使用 Visual Studio 中新的共享项目支持。通常这仅适用于通用项目,但您可以安装一个扩展程序 [1],它可以为所有项目类型启用共享项目。
只需创建一个新的共享项目。将所有通用代码添加到其中。然后在您的平台特定项目中,您可以简单地添加共享项目引用。
由于现在每个项目都是独立的,NuGet 将添加相应的包。
希望这对您有所帮助。祝你好运!
[1] 共享项目参考经理 https://visualstudiogallery.msdn.microsoft.com/315c13a7-2787-4f57-bdf7-adae6ed54450
我在 Visual Studio 2013 年有一个解决方案,其中包含更多具有通用源代码但针对不同平台(.Net、WinRT、.Net Micro Framework 等)的 C# 项目文件。 所有的csproj文件都在同一个目录下。
这些项目使用可用于所有上述平台的 Nuget 包。
如果我为其中一个项目(例如 .Net)添加此 Nuget 包,则会创建 package.config 文件并在其中引用该目标(例如 .Net)。该包已下载到 packages 文件夹中。
如果我尝试将相同的包但针对不同的目标添加到解决方案中的另一个项目,UI 会告诉我该包已安装。这是真的,因为 package.config 文件已经存在,但我想为不同的目标使用相同的包。
所以我的问题如下:如何将相同的 Nuget 包添加到目标不同的所有不同项目中?
谢谢, 保罗
很遗憾,我认为 NuGet 不支持您的方案。
NuGet 期望 packages.config 文件与 .csproj 文件位于同一文件夹中。这些文件之间应该是一对一的关系。您应该为每个项目创建一个单独的文件夹,而不是将所有 .csproj 文件保存在同一文件夹中。
如果您想跨多个项目共享代码,最简单的方法是使用 Visual Studio 中新的共享项目支持。通常这仅适用于通用项目,但您可以安装一个扩展程序 [1],它可以为所有项目类型启用共享项目。
只需创建一个新的共享项目。将所有通用代码添加到其中。然后在您的平台特定项目中,您可以简单地添加共享项目引用。
由于现在每个项目都是独立的,NuGet 将添加相应的包。
希望这对您有所帮助。祝你好运!
[1] 共享项目参考经理 https://visualstudiogallery.msdn.microsoft.com/315c13a7-2787-4f57-bdf7-adae6ed54450