Visual studio 未将Microsoft.Owin.Host.HttpListener复制到引用项目的生成输出

Visual studio 未将Microsoft.Owin.Host.HttpListener复制到引用项目的生成输出,visual-studio,reference,owin,self-hosting,copy-local,Visual Studio,Reference,Owin,Self Hosting,Copy Local,我正在从同一解决方案中的另一个项目引用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是迄今为止我遇到的唯

我正在从同一解决方案中的另一个项目引用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是迄今为止我遇到的唯一一个拒绝将其作为MSBuild的_CopyFilesMarkedCopyLocal步骤的一部分复制到项目A的生成输出的文件,无论设置如何

我尝试将其添加到app.config中的条目中,但没有帮助

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

您可以自由使用这些设置

在问这个问题之前,我已经检查了Stackoverflow中的相关问题,这些问题没有得到回答或没有关系


请告诉我如何将.HttpListener.dll与其他.dll一起复制到预期的引用项目输出。

在团队成员的帮助下,我找到了问题的根源。编译器忽略了HttpListener dll,因为它并没有在项目A或B的代码中的任何地方显式使用。因此,我在项目B的代码中添加了以下行:

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

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

在团队成员的帮助下,我找到了问题的根源。编译器忽略了HttpListener dll,因为它并没有在项目A或B的代码中的任何地方显式使用。因此,我在项目B的代码中添加了以下行:

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

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

对我有用。谢谢,伙计!对我有用。谢谢,伙计!