【问题标题】:Referencing projects from other solutions in Visual Studio 2017在 Visual Studio 2017 中引用其他解决方案的项目
【发布时间】:2018-10-10 17:53:36
【问题描述】:

最近我开始在 Visual Studio 2015 中处理 xproj 项目。在构建 Web 应用程序时,我有一个位于不同解决方案中的类库,我可以使用 global.json 文件来引用它。我喜欢这个功能,因为您可以一次性构建它,而不是在 Visual Studio 实例之间切换。

我现在发现 Microsoft 正在远离这些项目并回到 csproj 的做事方式。我一直在努力跟上最佳实践,但我似乎无法弄清楚如何将外部项目引入解决方案,就像使用 global.json 一样。我也很尴尬地承认我似乎无法想到如何为此进行谷歌搜索。

在 Visual Studio 2017 中是否有推荐的新方法来执行此操作?

【问题讨论】:

  • 我可能在您的问题中遗漏了一些内容,但您可以在解决方案资源管理器中右键单击解决方案,然后选择添加 -> 现有项目 -> 并导航到您要添加的项目。
  • @RufusL 我想得越多,这可能就是这样做的方法。感觉与 global.json 文件的设置方式有很大不同,但我想理论上它和你提议的完全一样。
  • 如果您的项目在您的解决方案之外,那么直接引用它很可能有意义。如果该项目存在于解决方案之外,则可能意味着它打算被除您之外的其他解决方案使用,对吗?因此,如果您最终需要更改该项目,您可能会为所有其他解决方案更改它,这可能会破坏它们。世界已经超越了这样的直接引用。这就是我们拥有 NuGet 的原因。从项目创建 NuGet 包并在您自己的解决方案中引用它们。
  • @mason NuGet 让事情变得更加复杂。不过我明白你的意思。不确定 NuGet 是否适合我们,因为这是一个仅由几个项目在内部使用的类库。我们所做的任何更改都可以在可能受影响的几个项目中轻松修复。
  • 在我的类似经历中,不使用 NuGet 更麻烦。你对 NuGet 的恐惧是什么?

标签: c# visual-studio asp.net-core .net-core visual-studio-2017


【解决方案1】:

我们可以使用dotnet 命令行界面来添加现有项目...

到一个项目:

C:\temp\Bar> dotnet add .\Bar.csproj reference ..\Foo\Foo.csproj

解决方案:

C:\temp\Bar> dotnet sln .\Bar.sln add ..\Foo\Foo.csproj

【讨论】:

  • 这是否使引用的项目文件显示在解决方案资源管理器中,就像我直接打开它的解决方案一样?我喜欢 global.json 文件的原因是我可以从一个 Visual Studio 实例编辑两个项目中的所有文件,并一次性构建它们。
  • @ChrisLees 啊哈。您想将其添加到解决方案而不是项目中。
  • 你知道dotnet sln add...是否支持链接到xproj文件?当我尝试它崩溃时出现异常,抱怨无法找到一些 sdk 文件:未处理的异常:Microsoft.Build.Exceptions.InvalidProjectFileException:导入的项目“C:\Program Files\dotnet\sdk\1.0.0\Microsoft\未找到 VisualStudio\v15.0\DotNet\Microsoft.DotNet.Props”。确认 声明中的路径正确,并且该文件存在于磁盘上。
猜你喜欢
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多