在工作中,我们正在开发一个包含大量前端、后端和支持组件的大型应用程序。通常,前端是用 C# 开发的,后端是用 Java 开发的,尽管部分后端也是用 C# 开发的,也可能是后来的 C++。
语言和平台的选择不是任意的;我们尝试权衡每个组件在开发时间、工具链成本、特定开发团队对语言的熟悉程度等方面的相对优点。 然而,所有这些组件的共同点是,它们都是完整操作所必需的产品,并且它们由独立(但高度沟通)的团队同时开发。
以前,我们对 .NET 代码使用 Team Foundation Server,对 Java 代码使用 Subversion;由于团队职责明确分离,因此除了将一个源代码树生成的二进制文件(在本例中为 WAR)放置在另一个源代码树中的不便之外,几乎没有什么问题,以及保持分支和修订同步的高额手动开销。在这个项目中,团队之间的分离程度故意要小得多,并且分支/合并的数量预计要高得多;因此,我们正在转向统一的 VCS,更具体地说是 Subversion。
这让我想到了一个问题:如何有效地混合 Java 和 C# 代码?实际上,我们将拥有依赖于 Java 代码库的 .NET 代码;Java 二进制文件需要运行单元测试代码以外的任何东西(集成测试已经需要二进制文件,而 QA、验收测试等当然也需要)。我们目前想到的是:
/树干
/java
/组件1
/组件2
/图书馆1
/图书馆2
/网
/组装1
/组装2
/...
项目.sln
这个想法是将整个源代码树放在一个分支下;.NET 代码依赖于 Java 代码,因此我们将向解决方案添加一个构建后步骤,该步骤将(最有可能)调用 Java 组件的 ant 脚本。这允许分支整个代码库(对于 .NET 开发人员)或仅 Java 组件(对于 Java 开发人员)。
这个解决方案的问题是:
我很想听听您的意见!
我有一个依赖于多个静态库的 exe,在 Visual Studio 中,它们都作为 1 个 sln 文件的一部分进行管理,并且该 exe 依赖于静态库。
如何在 Qt Creator 中进行设置?似乎有 2 个选项:1. 在 Qt Creator“会话”中创建多个项目。但是会话不会在用户之间共享,对吗?所以我不确定这会如何工作?例如,是否有创建的会话文件?2.使用子项目。并制作exe的静态lib sub projs?
有什么建议吗?我对 Qt Creator 完全陌生,需要将它用于 linux 端口。
谢谢!
是否有Visual Studio的扩展,可以为解决方案创建类似"卸载的项目配置文件"的内容?
我有一个包含大量项目的解决方案(~100).在处理某个部分时,我可以卸载不相关的项目以提高性能.我希望能够保存这组卸载的项目,这样当我切换到不同的部分工作时,我可以改为加载它的项目.
Visual Studio的解绑是什么?绑定操作做解决方案 .suo文件中的项目?
Microsoft提供了有关如何:绑定或取消绑定解决方案或项目的说明,该操作恰好可以解决在解决方案打开时出现的可怕的"未指定错误".此MSDN论坛帖子有一个用户说明他们未绑定,然后重新绑定他们的项目,以解决该问题.
当我遇到相同的"未指定的错误"问题时,我做了一些额外的挖掘,发现解决 .suo文件是我解决问题后唯一可能改变的候选人.
我读了一个SO问题的答案,关于.suo文件是有效的一次性的,碰巧能够通过我周围陈旧的工作空间重新创建UE问题.所以我继续删除解决方案 .suo文件并打开解决方案 .sln文件.奇迹般地,我的UE问题已经消失了.
这导致我结束unbind | bind对.suo文件有一些影响,但由于文件二进制,专有结构我无法识别发生了什么.
我的问题:
1.那么Visual Studio的解绑是什么?绑定操作做解决方案 .suo文件中的项目?
2.现在我找到了与.suo文件的链接,是否有人可以推测导致这些"未指定的错误"的原因?
脚注1:这篇MSDN文章解释了一些关于.suo文件的内容,但并没有详细介绍.
我正在创建一个应用程序。要更改多个项目的命名空间(解决方案),我将内容复制到另一个位置,更改文件夹名称,替换文件内容中的文本(旧命名空间与新命名空间),一切正常。该解决方案具有文件夹(这些文件夹仅存在于解决方案中,在 VS 中)并且每个文件夹都包含项目和文件......这是原始(或模板)解决方案的结构:
MySolution
|
|---SolutionFolder1
| |
| |-- Documentation.docx
|
|---SolutionFolder2
| |
| |-- ThirdPartyLibrary.dll
|
|---SolutionFolder3
| |
| |-- MySolution.MyLibrary(**Project**)
| |
| |-- Class.cs
|
|---SolutionFolder4
| |
| |-- MySolution.MyConsoleApp(**Project**)
| |
| |-- Program.cs
|
Run Code Online (Sandbox Code Playgroud)
我只将整个解决方案复制到另一个地方,甚至在 .csproj 和 .sln 文件中更改了一些名称。如果我打开新解决方案全部出现在它的位置(如上面的结构),解决方案文件夹中的项目和解决方案编译,一切正常。但是,如果我在打开新解决方案时更改每个项目的 ProjectGuid,则会得到以下结构:
MySolution
|
|---SolutionFolder1
| |
| |-- Documentation.docx
|
|---SolutionFolder2
| |
| |-- ThirdPartyLibrary.dll
|
|---SolutionFolder3
|
|---SolutionFolder4
|
|
|-- MySolution.MyLibrary(**Project**)
| |
| |-- Class.cs
|
|-- MySolution.MyConsoleApp(**Project**) …Run Code Online (Sandbox Code Playgroud) 为我们的解决方案考虑这个 repo/file 结构......
Shared Repo (Checked out to D:/Shared/trunk)
????Shared1.dll Project
????Shared2.dll Project
App1 Repo (Checked out to C:/Code/App1/Trunk)
????App1 Project (Refs Shared1.dll project)
????App1.dll Project (Refs Shared1.dll and Shared2.dll projects)
????App1.sln
App2 Repo (Checked out to C:/Code/App2/Trunk)
????App2 Project (Refs Shared1.dll project)
????App2a.dll Project (Refs Shared1.dll and Shared2.dll projects)
????App2b.dll Project (Refs Shared1.dll and App2a.dll projects)
????App2.sln
Run Code Online (Sandbox Code Playgroud)
为了更轻松地使用代码,我们将共享项目直接引入应用程序的解决方案中,例如,如果您打开 App1.sln,这将是您的项目树...
App1.sln
????Shared1.dll Project
????Shared2.dll Project
????App1 Project (Refs Shared1.dll project)
????App1.dll Project (Refs Shared1.dll and Shared2.dll projects)
Run Code Online (Sandbox Code Playgroud)
如您所见,这两个共享 DLL 来自一个单独的存储库,但包含在此解决方案中。Visual …
我经常更换项目并创建新项目,但我有一个很大的项目,我经常工作.随着我越来越多地使用它,IDE布局(视图位置,大小和对接)也在不断发展.我正在寻找一种在IDEA项目之间自动共享IDE布局的方法吗?
我想避免每次进行File/New/Project时重新设置我的环境.我还想避免为每个File/New/Project导出/导入我的配置.处理更新也是一个非常好的,也就是说,当我在一个项目中调整Project/Debug视图时,它会在我创建的所有项目中重新更改或重新打开.基本上我想在每次切换上下文(项目)时避免重复点击.
我真的习惯于Eclipse存储绑定到工作区的设置,并且在创建新项目时它们具有相同的设置.
我使用Microsoft Visual Studio Ultimate 2013,看起来这个按钮在一个项目(WPF应用程序)中工作,而不是在同一个解决方案中的其他项目(服务器应用程序)中工作.哪个VS设置我可能已经坏了?
好吧,这可能听起来是一个重复的问题,但对于我的搜索,它不是.
我一直在寻找一种在我的解决方案中配置特定nuget包源(url)的正确方法,该源自动生成与解决方案路径相关的所有内容(.nuget文件夹和/或nuget配置文件).
我不想使用APPDATA和MACHINE.
我想只使用解决方案目录,所以当存储库中的另一个用户获取解决方案时,它会正确安装所有内容(包括包文件夹上的nuget引用).
我一直在阅读NuGet文档,看起来,这种方式可以实现并不简单,因为NuGet有不同的版本等等......
有人可以提供简化指南来实现这一目的吗?提前谢谢你的帮助!
更新的问题:
我注意到使用NuGet版本3.4+我不再需要.nuget文件夹了!
我的问题/问题是通过解决方案而不是通过machine/appdata配置包源URL,这是因为我使用的是包含公司库源的私有包源URL!谢谢 :)
细节:
我注意到Package Sources URL存储在%APPDATA%\ NuGet\NuGet.Config的NuGet.config文件中.
如何通过解决方案正确配置?这样它很容易在公司业务中维持?
(我的意思是我不需要每个用户在他们的机器上配置源)
" 解决方案特定的NuGet.Config文件位于解决方案的.nuget文件夹中.此文件中的设置仅适用于解决方案范围的软件包,仅在NuGet 3.3及更早版本中受支持.对于NuGet 3.4及更高版本,它将被忽略."
这是否意味着我无法单独为每个解决方案正确配置源?谢谢!
projects-and-solutions solution nuget nuget-package visual-studio-2015