2

尽管共享项目自 Visual Studio 2015 以来就已经存在(可能早在 VS 2013 update2),但我最近才了解它们。今天,我花时间尝试学习如何使用它们,遵循我找到的教程共享项目:Visual Studio 2015 Preview 的一个令人印象深刻的功能。但是,作者在该教程中所做的一件事对我们不起作用,他创建了共享项目和其他 3 个项目,它们都在同一个解决方案中。当然,您可以这样做,但实际上我们可能希望在某个解决方案中创建一个共享项目,然后随着时间的推移,将该共享项目包含在其他解决方案中。

因此,我所做的不是将 Windows 窗体应用程序放入与 C# Corner 帖子的作者相同的解决方案中,而是创建了一个包含 Windows 窗体项目的新解决方案,然后我尝试从第一个添加共享项目解决方案。首先,我尝试添加 .sln 文件。那惨遭失败。然后我尝试将 .shproj 文件添加到第二个解决方案中。那也惨败了。

接下来,我在 SO 上分享了解决此问题的方法。我找到了 2 个帖子:在共享 (.shproj) 项目中添加引用以及如何从另一个项目添加对共享代码项目 (.shproj) 的引用。第二个给了我一个想法。我决定通过单击解决方案资源管理器中的第二个解决方案,然后执行“添加现有项目”,将共享项目从第一个解决方案添加到第二个解决方案。那行得通。

但我想知道,这是您应该使用共享项目的方式吗?如果是这样,在我看来,我也可以在第一个解决方案中创建一个简单的类库,然后将该类库项目添加到第二个解决方案中。如果您将共享项目添加到不同的解决方案中,而不是仅仅将常规类库项目添加到解决方案中,共享项目是否有一些东西可以使它们本质上更好地使用?

4

2 回答 2

4

类库编译成它自己的 DLL 并且您的原始项目引用该 DLL,而使用共享项目的项目将编译成单个程序集。对于共享项目,我可以想到的一种情况是,您可以拥有单个代码库,但具有由指令标记的特定于平台的代码部分。

于 2019-03-27T22:07:24.847 回答
3

有一个关于这个主题的好视频,即使它是在 xamarin 的背景下解释的,我认为他们做得很好。 https://www.youtube.com/watch?v=G5ov0gLZWgQ

就个人而言,II 总是使用 PCL(便携式类库)而不是 SAP(共享项目)。我在我的项目中使用共享代码项目作为文档容器。项目绿色图标非常突出。我把所有东西都放在那里,从 markdown doc 文件到存储过程等等。

于 2021-01-20T05:49:12.317 回答