繁体   English   中英

Nuget package 仅在 Z8CBFD56579569C1BD36DDED1B21D8 中使用 package 时项目之间的依赖关系

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM