【问题标题】:How to create SourceCode only nuget packages for WPF environments如何为 WPF 环境创建仅源代码的 nuget 包
【发布时间】:2021-03-29 08:47:17
【问题描述】:

我们在自己的“框架”中有一些代码,希望在所有项目之间共享。
但由于某些原因,我们不希望该特殊代码出现在它自己的程序集中。
相反,我们想要一个将代码添加为 C# 文件的 NuGet 包。

我发现 this article 描述了如何做到这一点,然后我使用 the mentioned GitHub Gist 来创建我的包。

在我在 WPF 项目中使用它之前,一切都很好。一旦我将UserControl 添加到项目中,我就会收到一个构建错误,即无法找到 NuGet 包中的代码。

我创建了a sample project 来显示错误。
下面的屏幕截图显示了该示例的代码。

在这里我添加了source code only NuGet 包并构建了解决方案。

在这里我添加了一个空的UserControl。现在代码正在破坏。

在使用 WPF 时,我必须进行哪些更改才能使其也能正常工作?

感谢您的帮助!

【问题讨论】:

  • 包装source generators 能很好地解决您的问题吗?
  • 您说的是框架代码,但您的项目是核心。在核心中制作包并尝试将其重新应用到您的项目中。
  • @nalka 我刚刚阅读了几篇文章并尝试了一些示例,但我无法弄清楚如何解决我的问题。
  • @XAMlMAX by Framework code 我的意思是:我想在几个不同的项目中重用的一段代码。 core 是指.net core 吗?我不想将 .net SDK 或 Targetframework 更改为 netstandard 以外的其他内容,因为我需要 net5net5-windowsnet472 中的代码。

标签: c# wpf nuget


【解决方案1】:

感谢manuelroemer/Nullable#20 的帮助,我可以找到问题的解决方案。 解决方案描述于microsoft/CsWin32#7

引用的 WPF 项目必须在项目中添加以下属性:

<IncludePackageReferencesDuringMarkupCompilation>true</IncludePackageReferencesDuringMarkupCompilation>

【讨论】:

    猜你喜欢
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多