首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包管理器、项目结构和迁移

包管理器、项目结构和迁移
EN

Stack Overflow用户
提问于 2011-02-14 21:54:35
回答 1查看 280关注 0票数 0

我有一个包含多个项目的解决方案,例如,10个与测试相关的项目依赖于nunit。目前我的解决方案结构包括Tools和Lib的文件夹,所以可能完整的nunit下载在Tools中,而dll在Lib中。

我认为任何包管理器(我正在考虑的两个是NuGet和OpenWrap )都需要为包创建自己的“已知”位置。因此,在手动更新我的Lib文件夹之后,我知道每个依赖于nunit的项目都更新了。

但是如果我使用包管理器更新,我需要访问每个项目以确保它被更新并指向相同的引用,对吗?一些动态链接库可能找不到(我现在认为是unHAddins ),所以你不能完全从手动包管理中解放出来。这意味着在包管理器更新每个项目之前,迁移到最新的更新是不会完成的。

所以我想知道我的理解是否正确,将包管理整合到一个适当规模的解决方案中的最佳方法是什么-例如:

代码语言:javascript
复制
0) add to source control: NuGet 'packages' folder or OpenWrap 'wraps' folder  
1) pick a dll (start with one that you beleieve has minimal dependencies)  
2) pick a project (ideally with minimal dependencies that might break)  
3) if OpenWrap, get the package you want into 'wraps'
4) for each project:  
    a) add reference to subject dll (manually if OpenWrap, NuGet will add for you)  
    b) fix compile error as needed  
    c) run tests  

这听起来对吗?

干杯,

Berryl

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-16 00:35:53

要回答你的问题,不,你不需要做任何事情,所有的项目都会导入一个作用域中的所有依赖项,所以更新适用于所有东西。

我不能为其他包管理器负责,但在openwrap中,您可以在源代码管理中添加/wraps文件夹,其中包含在添加或更新包时拉出的包。该过程将首先从远程存储库添加包(如果没有可用程序集,则从现有程序集中创建一个),然后手动从/lib中删除引用。在OpenWrap中,我们不会将引用添加到您的csproj中,而是在构建时添加它们,因此如果/lib中已经存在依赖项,我们将不会添加它。这意味着您可以添加所有的包,并一个接一个地删除引用,每次都运行测试。

希望这是一个暂时的问题,直到所有的all都以包的形式可用,这将很快发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4992967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档