问题标签 [projects-and-solutions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - Visual Studio 解决方案/多项目:如何在多个 C++ 项目之间有效传播项目属性
我正在使用包含多个项目(大约 30 个)的 Visual Studio 2005 C++ 解决方案。根据我的经验,维护项目的所有属性(即包括路径、库路径、链接库、代码生成选项...)通常会变得很烦人,因为您经常必须单击每个项目才能修改它们。当您有多种配置(Debug、Release、Release 64 bits,...)时,情况会变得更糟。
现实生活中的例子:
- 假设您要使用一个新库,并且您需要将该库的包含路径添加到所有项目中。您将如何避免必须编辑每个项目的属性?
- 假设您想测试新版本的库(比如 2.1beta 版),以便您需要快速更改一组项目的包含路径/库路径/链接库?
笔记:
- 我知道可以一次选择多个项目,然后右键单击并选择“属性”。但是,此方法仅适用于对于不同项目已经完全相同的属性:您不能使用它来将包含路径添加到使用不同包含路径的一组项目中。
- 我也知道可以全局修改环境选项(工具/选项/项目和解决方案/目录),但是由于它不能集成到 SCM 中,所以并不令人满意
- 我也知道可以将“配置”添加到解决方案中。它没有帮助,因为它需要维护另一组项目属性
- 我知道 codegear C++ Builder 2009 通过所谓的“选项集”为这个需求提供了一个可行的答案,它可以被多个项目继承(我同时使用 Visual Studio 和 C++ Builder,我仍然认为 C++ Builder 在某些方面比较摇滚到 Visual Studio)
- 我希望有人会建议使用“autconf”,例如 CMake,但是是否可以将 vcproj 文件导入到这样的工具中?
visual-studio - Visual Studio 项目属性中的各种“构建操作”设置是什么?它们的作用是什么?
在大多数情况下,您只需将 Visual Studio 为您设置的任何内容作为默认设置...我指的是在解决方案资源管理器中选择的每个文件的BuildAction属性。有很多选择,很难知道它们中的每一个会做什么。
visual-studio - 在 C# 中构建大型 Winforms 应用程序的项目和依赖项
更新:
这是我访问量最大的问题之一,但我仍然没有真正为我的项目找到令人满意的解决方案。我在另一个问题的答案中读到的一个想法是创建一个工具,该工具可以为您从列表中选择的项目“即时”构建解决方案。不过,我还没有尝试过。
如何构建一个非常大的应用程序?
- 一个大型解决方案中的多个小型项目/组件?
- 几个大项目?
- 每个项目一个解决方案?
以及在没有一种解决方案的情况下如何管理依赖项。注意:我正在寻找基于经验的建议,而不是您在 Google 上找到的答案(我可以自己做)。
我目前正在开发一个应用程序,它有超过 80 个 dll,每个都有自己的解决方案。管理依赖项几乎是一项全职工作。有一个自定义的内部“源代码控制”,添加了用于在各处复制依赖 dll 的功能。对我来说似乎是一个次优的解决方案,但有更好的方法吗?我担心,在实践中处理一个包含 80 个项目的解决方案会非常困难。
(上下文:winforms,而不是 web)
编辑:(如果您认为这是一个不同的问题,请给我留言)
在我看来,以下之间存在相互依赖关系:
- 应用程序的项目/解决方案结构
- 文件夹/文件结构
- 源代码控制的分支结构(如果使用分支)
但是,如果可能的话,我很难将它们分开来单独考虑。
我在这里问了另一个相关的问题。
visual-studio - 跨多个 Visual Studio 版本的项目依赖项
我有 3 个 .net 项目。
Project1.dll 由 VS2008 项目生成。
Project2.dll 由引用 Project1.dll 的 VS2005 项目生成。
Project3.dll 由引用 Project1.dll 和 Project2.dll 的 VS2008 项目生成。
现在,我构建了 Project1.dll,并手动将其复制到 Project 2 可以提取它的地方。
然后我构建 Project2.dll 并手动将它和 Project1.dll 复制到 Project 3 可以提取它们的地方。
显然我做错了什么(手动)。使我的项目参考资料保持最新的正确方法是什么?
将 Project2 更新到 VS2008,然后创建一个包含所有 3 个项目的解决方案目前不是一种选择。我们有一个 3rd 方的 visualstudio 插件,它还不能在 VS2008 中工作。Project2 必须留在 VS2005
将 Project1 和 Project3 取消更新到 VS2005,然后创建一个解决方案也不是一种选择。我们在这些项目中依赖于 C# 3.0 和 .net 3.5 功能。
.net - 构建通用实用程序库的最佳方法是什么?
我想知道构建可用于不同项目的通用实用程序库的最佳方法是什么。我正在使用 .Net 和 C#。
我应该为每个实用程序(如日志记录、身份验证、Excel 等)创建一个单独的项目,并将它们与依赖项一起单独发布,还是应该将所有实用程序与捆绑的所有依赖项一起包含在一个通用 utils 程序集中,并且只在项目中引用必要的依赖项使用常用工具?
visual-studio - 在 Visual Studio 中卸载项目时如何处理引用?
在 Visual Studio 中卸载项目时,任何引用项目都会在其对已卸载项目的引用上获得警告三角形。我为自己编写了一个宏来做一些聪明的事情(检测项目的添加/删除并将任何引用从文件/项目依赖项转换为文件),但我不敢相信我没有错过更简单的东西。如果我必须手动更改引用(并且它打破了“个人解决方案/共享项目”团队开发范式),卸载功能怎么能有用。
(这个问题与这个关于在 Visual Studio 中构建大型解决方案的问题的答案有关——一些答案提到了有很多项目的解决方案,但是“卸载”未使用的项目以提高性能。)
projects-and-solutions - 是否有系统的方法来避免软件解决方案的 3 个陷阱(如下)?
- 开发已经存在并可重复使用(商业或开源)的软件解决方案。又名“重新发明轮子”。
- 与上述相同,但您的解决方案已被破坏。又名“重新发明方轮”。
- 为不存在的问题制定解决方案。
同样,我对更正式的方法感兴趣,例如TRIZ
c# - 发现现有项目的最佳方式是什么?
最近我的任务是发现一个我以前从未见过的 C# 解决方案,并就重构它提出建议。我想我将使用 NDepend(有史以来第一次)来查看整体情况,并检查大量代码指标以找出可以重构的内容。我认为 NDepend 非常擅长展示项目的结构。
我的问题是一个更笼统的问题:您认为发现您第一次看到的代码并需要了解其结构的最佳方法是什么?(不幸的是,没有合乎逻辑的设计文档,代码注释也很差。)
visual-studio - 如何在 Visual Studio 中重命名项目文件夹?
我当前重命名项目文件夹的解决方案是:
- 从解决方案中删除项目。
- 重命名 Visual Studio 外部的文件夹。
- 将项目重新添加到解决方案中。
有没有更好的办法?
visual-studio - 如何在与 Web 项目相同的目录中创建 Visual Studio 解决方案文件 (.sln)?
我正在使用 VisualSVN 客户端和服务器,Web 项目按预期工作的要求之一是将 .sln 与其他文件放在同一目录(根目录)中。
我认为这就像删除所有额外的父路径 ../ 和其他相对路径并保存它一样简单。但是,当我尝试打开它时,它只会锁定 Visual Studio。
是否有创建此类解决方案文件的标准方法或解决方案文件工具来帮助确保其有效?还是我只是错过了一些非常明显的东西?
显然,至少我正在寻找的诀窍是您必须使用 ..\MyWebsite.org 或任何包含网站文件的文件夹。
[编辑] 我学到的东西和我为这个特定项目的最终 .sln 文件:
这是允许我打开网站并将 .sln 放在 web 文件夹的根目录中的最终解决方案文件。