不要复制引用的库我有ProjectA(WPFApplication)引用ProjectB(ClassLibrary)。在ProjectB中,我有一个wpf窗口,它使用来自ThirdParty.dll的控件,所以我从ProjectB中引用。问题是它没有在ProjectA的输出文件夹中找到ThirdParty.dll,它抛出xaml解析运行时异常。GAC中没有ThirdParty.dll。“本地复制”设置为true。如果我在ProjectA的输出文件夹中手动添加该库,它也可以工作,如果我在我的cs文件中的某处使用ThirdParty.dll,它也可以工作。我怎么解决这个问题?原因是如果设置了“复制本地”,VisualStudio只会将资源复制到输出文件夹。只需将引用设置为复制本地,就可以了。查看此链接以了解其工作原理。引用ProjectA时,不会自动引用ProjectB的引用。为此,您需要在ProjectA中添加对ThirdParty.dll的引用(如果您仅在XAML中使用它)。编译器不会复制仅在XAML中使用的引用。但是,如果您在代码中使用它们,它们将被复制。这与此处讨论的问题相同您应该将对第三方dll的引用添加到您希望它出现在输出目录中的项目中。如果CopyLocal设置为true,它将显示在bin目录中,无论您是在代码中还是在xaml中使用它。向ProjectB.csproj添加类似这样的内容:ThirdParty.dllPreserveNewest这说服VS将ThirdParty.dll复制到ProjectA的输出文件夹(无需向ProjectA添加任何有关ThirdParty.dll的内容)。我仍然觉得它不合适,因为如果ThirdParty.dll在NuGet包中,它的路径通常包含一个版本号,当你更新包时它会改变。我没有尝试过,但我不希望NuGet像它那样更新路径。以上为C#学习教程:引用库分享的内容不要全部复制。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
