[英]Nuget package dependency between projects when package used in XAML only
I have C# WPF application solution with Windows Application and a Class Library DLL that implements some of the views and viewmodels. I added the Extended.Wpf.Toolkit package to the DLL project and use a control in that package from the XAML in my DLL project. 可执行项目引用 DLL 项目。 当我构建时,没有来自 package 的 DLL 被复制到可执行项目 bin/Debug 文件夹中(它们当然在 DLL 项目的 bin/Debug 中)。
DLL 项目使用了一些其他的包,这些包的 DLL 自动出现在可执行的 bin/Debug 文件夹中。 Extended.Wpf.Toolkit 的唯一区别是我没有使用此 package 的任何代码隐藏。
我尝试使用 Extended.Wpf.Toolkit 中的随机 class 向 DLL 项目添加一些虚拟代码,然后其中一个 DLL 出现在 bin 中。 显然,Visual Studio 现在在某种程度上承认了这种依赖关系(尽管它只复制了一个 DLL)。
DLL项目中的XAML:
<UserControl x:Class="MyNameSpace.PropertyPanel"
...
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
>
<Grid>
<xctk:PropertyGrid/>
</Grid>
</UserControl>
所以显然我也需要将 nuget package 添加到可执行项目中吗? 为什么使用 XAML 中的 package 与代码隐藏之间存在差异?
如果重要,请使用 Visual Studio 2017 社区版。 nuget packages.config 位于 class 库项目中:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="3.6.0" targetFramework="net452" />
<package id="SharpVectors.Reloaded" version="1.3.0" targetFramework="net452" />
</packages>
抱歉缺少简单的可复制项目。
为什么使用 XAML 中的 package 与代码隐藏之间存在差异?
这是一个已知的 XAML 问题。 编译器不会复制仅在 XAML 中使用的引用。
解决方法很简单。 在 class 库项目WPF application
集的Copy Local
属性设置为True
在正在使用的 Z30590A8FZ62 项目中安装 NuGet package。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.