【发布时间】:2016-08-27 03:59:40
【问题描述】:
我的解决方案有一个控制台应用程序 (.exe) 项目,该项目使用多个类库项目 (.dll)。类库项目具有对控制台应用程序的引用。控制台应用程序在运行时加载类库项目。 (.exe 扫描同一目录中的 dll 并加载它们。)
_________________
| | <-- library1.dll
| application.exe | <-- library2.dll
|_________________| <-- library3.dll
当我 clean 解决方案然后点击 start 或 debug 时,Visual Studio 只会按原样构建该控制台项目 (.exe)启动项目。但它不构建库项目 (.dll),因为控制台应用程序不引用库。
如果我直接在库项目或整个解决方案上点击 build,我会得到 .dll 文件。但这是一个我可能会忘记的操作,因此我最终可能会使用没有 .dll 文件或使用旧版本的 .dll 文件的应用程序。
我想让 VS2015 在运行或构建控制台应用程序时构建所有项目。我已经试过了:
=> 从控制台应用程序对 DLL 进行引用,但失败,因为这会给出循环引用。
=> 在控制台应用程序项目上添加构建依赖项,同时构建库项目。但这是不可能的,因为 Visual Studio 声称这也会提供循环引用。
=> 使解决方案中的所有项目成为启动项目。这实际上 works 作为 VS2015 构建所有项目并将 .exe 创建为 .dll 文件。 但是然后我每次运行应用程序时都会收到烦人的弹出窗口,告诉我控制台应用程序不能是启动应用程序。
=> 通过创建另一个库项目 (connect.dll) 来拆分控制台应用程序,其中包含其他库需要引用的内容。然后所有项目都引用common.dll,控制台应用程序最终可以引用控制台库。这也有效,但是给你留下了一个额外的项目:
_____________ _________________
| | <------------------- | |
| | <-- library1.dll <-- | |
| connect.dll | <-- library2.dll <-- | application.exe |
| | <-- library3.dll <-- | |
|_____________| |_________________|
在构建控制台应用程序项目时,是否有一种更好的方法可以让 VS2015 也构建非引用项目,而无需添加整个新项目?
【问题讨论】:
标签: c# build visual-studio-2015 reference