grm*_*mbl 12 msbuild solution visual-studio nuget
我应该如何引用另一个project A来自project B于同一个解决方案吗?
如果我:我获得了什么以及我将失去什么?
project A为项目引用.project A在project B.困扰我的事情是构建依赖,版本化......?
或者这完全破坏了解决方案的目的?
Leo*_*SFT 13
项目参考VS NuGet
项目参考或NuGet是我们开发过程中非常常见的问题,我们需要根据实际情况选择使用哪一个.
例如,如果在开发过程中频繁修改引用的项目A,我们建议使用Project引用.因为如果使用nuget,则必须重建引用的项目,重新创建nuget包,将该nuget包重新安装到项目B,甚至必须将其发布到服务器.这将带来许多不必要的工作,我们经常忘记在修改引用的项目A后更新我们的nuget包.如果使用项目引用,则不会出现这些问题.在我们构建项目B之前,修改后的引用项目A将自动更新.
另一方面,当我们从解决方案中分享我们引用的项目A,或者将该项目分享给其他人时,nuget将是更好的选择.它具有更多的可移植性.
因此,当您在同一解决方案中引用项目B中的另一个项目A时,将建议项目引用,当从解决方案共享参考项目或将项目共享给其他人时,nuget更合适.
此外,还有一个Visual Studio扩展NuGet Reference Switcher,它可以自动将NuGet程序集引用切换到项目引用,反之亦然.
希望这可以帮助.
使用第一种方法,您可以获得简单性,因为您不需要生成新版本的ProjectA nuget包,而是每次更改它(即ProjectA.nupkg).
但是,使用第二种方法,您可以获得可移植性,因为您可以轻松地与其他项目/解决方案共享相同的nuget包.
就个人而言,我只为那些目标是与其他解决方案共享的项目创建nuget包.(例如libs和框架).
希望这有助于您做出决定!
现在使用新的 csproj 格式,您可以同时使用两者(如果您在同一个解决方案中有两个项目)。
在您的示例中,您可以参考project Afromproject B作为项目参考。然后,如果您想project A作为 NuGet 包发布,您只需将以下标记添加到它的 csproj 中PropertyGroup:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Run Code Online (Sandbox Code Playgroud)
情节扭曲:如果您也想project B作为 NuGet 包发布,只需添加GeneratePackageOnBuild目标 - MSBuild 将设置projectA.nupkg为projectB.nupkg.
通过这种方式,您可以在内部处理您的项目,同时将它们作为包发布给第三方或其他团队。
| 归档时间: |
|
| 查看次数: |
5075 次 |
| 最近记录: |