【问题标题】:Building a project changes another project's bin folder in a Visual Studio Solution构建项目会更改 Visual Studio 解决方案中另一个项目的 bin 文件夹
【发布时间】:2018-01-01 12:12:45
【问题描述】:
我在一个解决方案中有几十个 Web 应用程序和许多类库。当我构建一个 Web 应用程序时,假设为“A”,另一个 Web 应用程序项目,假设为“B”,受此编译影响。 “A”和“B”没有直接引用,但它们使用相同的类库。如果我构建或重建“A”,则此构建创建的程序集也会进入“B”的 bin 文件夹。所以,每次我构建“A”时,我都在等待“B”的启动。据我所知,项目的这些 bin 文件夹之间没有任何硬链接/符号链接。
另外,我使用类库的通用输出路径,但不用于 Web 应用程序。
这是错误还是默认行为?如何防止这种行为?
【问题讨论】:
标签:
visual-studio
build
msbuild
【解决方案1】:
这是错误还是默认行为?如何防止这种行为?
这是默认行为。将项目引用添加到 Visual Studio Web 项目,以下内容将添加到您的 Web 项目的 Bin 文件夹中:
- 从添加的项目创建的程序集副本。
- 依赖程序集、XML 文档文件、许可文件、资源文件等的副本。
因此,一旦您将库项目添加到 web,添加的项目中的程序集将自动添加到 web 项目的 Bin 文件夹中。
如果您想防止这种行为,您可以将类库打包为 NuGet 包,然后将该包添加到 Web 项目 A 和 B。有关 NuGet 创建包的更多信息,您可以参考this document。