gpt4 book ai didi

dll - 为什么 MSTest 不复制引用的项目库?

转载 作者:行者123 更新时间:2023-12-03 22:28:34 27 4
gpt4 key购买 nike

我有一个带有 C# dll 项目的 Visual Studio 解决方案。该解决方案还有一个测试项目,它引用了 C# dll 项目的输出。引用的项目 dll 已设置 Copy Local = true。

如果我从 Visual Studio 运行这个测试,它工作正常。

但是,如果我从 MSBuild 任务运行它,由于某种原因,MSTest 不会将引用的 C# dll 复制到 MSTest 工作文件夹,因此测试失败。
奇怪的是,所有其他引用的库都被复制到 MSTest 工作文件夹中。
如果我放一个

 [DeploymentItem(@"PleaseCopyThis.dll")]

在我的测试方法之前,最后它被复制到 MSTest 工作文件夹并且我的测试运行良好。

但是为什么 Visual Studio 只复制不属于解决方案的引用的 dll,而不复制引用的项目 dll?

最佳答案

所以我找到了这篇文章:https://web-beta.archive.org/web/20140803214948/http://www.dotnetthoughts.net:80/mstest-exe-does-not-deploy-all-items/

似乎是 mstest 问题。

因为我刚刚遇到了同样的问题,所以我想了一种方法来解决它。在我的情况下,引用的 dll 从未实际直接从 testproject 使用(尽管它们是通过使用反射使用的)。
为了解决它,我添加了一个带有以下代码的测试类:

[AssemblyInitialize]
public static void InitializeReferencedAssemblies(TestContext context)
{
ObjectInAssemblyX dummy = new ObjectInAssemblyX();
ObjectInAssemblyY dummy2 = new ObjectInAssemblyY();
}

现在它们被使用,所以它们将被复制

关于dll - 为什么 MSTest 不复制引用的项目库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10486113/

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