1

我从同一解决方案中的另一个项目引用 Visual Studio 解决方案中的一个项目。被引用的项目(项目 B)具有 Microsoft.Owin.Host.HttpListener nuget 包,因此其中引用了 .dll。正在构建引用项目 B(项目 A)的项目。输出文件夹获取项目 B 中引用的所有 dll,Microsoft.Owin.Host.HttpListener.dll 除外,即使它被标记为 Copy Local - true。

Microsoft.Owin.Host.HttpListener.dll 是迄今为止我遇到的唯一一个拒绝复制到项目 A 的构建输出作为 MSBuild 的 _CopyFilesMarkedCopyLocal 步骤的一部分,无论设置如何。

我试图将它添加到 app.config 中的条目中,但没有帮助。

我已经安排了展示引用问题的示例项目并将其上传到 GitHub此处

您可以随意使用这些设置。

在提出这个问题之前,我已经查看了 Stackoverflow 中的相关问题,它们没有得到回答或不相关。

请给我一个提示,如何将 .HttpListener.dll 与其他 .dll 一起复制到预期的引用项目输出中。

4

1 回答 1

5

在我的团队成员的帮助下,我能够找到问题的根源。编译器省略了 HttpListener dll,因为它没有在项目 A 或 B 的代码中明确使用。因此,我在项目 B 的代码中添加了以下行:

//Dummy line to bypass the optimization.
Trace.TraceInformation(typeof(Microsoft.Owin.Host.HttpListener.OwinHttpListener).FullName);

这创建了对 HttpListener.dll 的实际依赖,并开始包含在项目 A 的输出中。

于 2016-03-09T13:50:47.630 回答