如何确保 class 库中定义的 UserControl 包含在 NuGet 包中?
How can I ensure that a UserControl defined in a class library is included in a NuGet package?
我需要使用 UWP 项目中通用 Windows class 库中定义的 UserControl,该项目将 class 库作为依赖项。 (两个程序集都是我的。)在以前的项目中,当实现 UserControl 的项目是同一解决方案的一部分时,这工作得很好。对于我当前的项目,我将 class 库作为 NuGet 包使用。当尝试使用 NuGet 包中的 UserControl 时,一切都会构建,但在运行时加载包含 UserControl 的页面时会立即抛出 XamlParseException。
我发现 , which lead me here,这很有启发性(似乎出于某种原因,为用户控件生成的二进制文件没有自动包含在 NuGet 包中),但建议的解决方案不符合我的需要.建议似乎是将某些输出文件(*.xr.xml、*.pri、*.xbf)从一个项目的 'bin' 手动移动到另一个项目的 'bin',但这似乎不可持续。如果在 NuGet 包中包含这些特定文件是答案,那么我如何自动执行此操作?我可以向 'nuget pack' 提供一些特定的参数集吗?如果我需要包含一个 .nuspec 文件,我需要包含什么才能获得正确的文件?
我的项目和工作流的一些额外背景,以防相关:我正在使用 Xamarin 和 MvvmCross 构建一个跨平台应用程序,目前针对 UWP 和 Android。定义我的用户控件的 class 库是我的 UWP 项目所依赖的通用 Windows class 库。我正在使用 Visual Studio Team Services 为我的每个程序集托管存储库;签入后,它们会自动构建、测试、打包并发布到内部提要,在那里它们可能会被依赖它们的项目获取。我正在寻找一种解决方案,使我能够自动将所有必需的输出文件包含在我的 NuGet 包中,以便我可以保持这种自动化水平。
简短的回答是否定的。目前还没有一组命令可以神奇地完成这项工作。您将必须手动指定所需的文件集。
另外请注意,您可能不需要在 NuGet 包中包含 .xbf 文件。 XAML 编译器会将所有 Xaml 文件(除非被覆盖)转换为 .xbf,即使是那些来自引用的扩展 SDK 或 NuGet 包的文件。但是,您确实需要包含 Xaml 文件,因为这既可以使 Xaml 设计器正常工作,又可以作为 Xaml 编译器的输入。
您还可以考虑编写一个脚本来读取 csproj 并根据需要使用预打包和 post 构建步骤所需的内容更新 nuspec。
Tim Heuer 的 post here
是围绕这个主题的一个很好的读物
我需要使用 UWP 项目中通用 Windows class 库中定义的 UserControl,该项目将 class 库作为依赖项。 (两个程序集都是我的。)在以前的项目中,当实现 UserControl 的项目是同一解决方案的一部分时,这工作得很好。对于我当前的项目,我将 class 库作为 NuGet 包使用。当尝试使用 NuGet 包中的 UserControl 时,一切都会构建,但在运行时加载包含 UserControl 的页面时会立即抛出 XamlParseException。
我发现
我的项目和工作流的一些额外背景,以防相关:我正在使用 Xamarin 和 MvvmCross 构建一个跨平台应用程序,目前针对 UWP 和 Android。定义我的用户控件的 class 库是我的 UWP 项目所依赖的通用 Windows class 库。我正在使用 Visual Studio Team Services 为我的每个程序集托管存储库;签入后,它们会自动构建、测试、打包并发布到内部提要,在那里它们可能会被依赖它们的项目获取。我正在寻找一种解决方案,使我能够自动将所有必需的输出文件包含在我的 NuGet 包中,以便我可以保持这种自动化水平。
简短的回答是否定的。目前还没有一组命令可以神奇地完成这项工作。您将必须手动指定所需的文件集。
另外请注意,您可能不需要在 NuGet 包中包含 .xbf 文件。 XAML 编译器会将所有 Xaml 文件(除非被覆盖)转换为 .xbf,即使是那些来自引用的扩展 SDK 或 NuGet 包的文件。但是,您确实需要包含 Xaml 文件,因为这既可以使 Xaml 设计器正常工作,又可以作为 Xaml 编译器的输入。
您还可以考虑编写一个脚本来读取 csproj 并根据需要使用预打包和 post 构建步骤所需的内容更新 nuspec。
Tim Heuer 的 post here
是围绕这个主题的一个很好的读物