gpt4 book ai didi

c# - 不同解决方案中的共享项目使 Visual Studio 编译器失败 (C#)

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:24 24 4
gpt4 key购买 nike

我有一个用 C# 编写的服务器-客户端应用程序。客户端和服务器是独立的解决方案并共享公共(public)代码。对于开发来说,至关重要的是共享代码在每个解决方案(.sln 文件)中都可​​用,因为它会不断变化。目前,共享代码作为额外项目添加。但是,当我从 Visual Studio 2015 运行/调试服务器和客户端时,编译器会生成(有时):

Error CS2012 "...\obj\Debug\Tools.dll" cannot be opened because it is blocked by another process.

我为这两个解决方案启动了两个 Visual Studio 实例。大概是 Visual Studio 的另一个实例阻止了 .dll。重新启动/构建客户端可能会解决此问题,但并非总是如此,这真的很烦人。我怎样才能避免这种情况?

最佳答案

@spender 提出的答案似乎是这种情况的理想解决方案。我做了一个名为“Superbuild”的新解决方案,组织如下:

Superbuild-Project
* Client\
* Client-project 1
* Client-project 2
...
* Server\
* Server-project 1
* Server-project 2
...
* SharedProjects\
* Shared-project 1
* Shared-project 2
...

只需将所有现有解决方案文件打开到新的 Superbuild 解决方案中,即可轻松实现这一目标。 Visual Studio 2015 自动识别出几个项目被导入了两次。我将它们移动到一个名为“SharedProjects”的新文件夹中。要同时启动 Client 和 Server,可以右键单击 Superbuild 解决方案并选择 “Set startup projects”,然后选择相应的 Client 和 Server 项目。这样,您可以使用单个 VS 实例运行所有内容并同时调试两个应用程序。在任何情况下,您都可以随时返回到旧的解决方案文件。非常感谢@spender 分享这个!

关于c# - 不同解决方案中的共享项目使 Visual Studio 编译器失败 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44409797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com