【问题标题】:UWP - Class librairies and PRI file generationUWP - 类库和 PRI 文件生成
【发布时间】:2020-06-26 23:09:53
【问题描述】:

在我的 UWP 解决方案中,我有一个 ClassLibrary1 项目(带有 BlankPage1.xaml)和一个引用 ClassLibrary1 项目(带有 BlankPage2.xaml)的 ClassLibrary2 项目.

我正在做 2 个 NuGet 包(一个用于 ClassLibrary1,另一个用于 ClassLibrary2)。

在 UWP 应用中,我添加了 ClassLibrary2 NuGet 包。但是,当我编译这个应用程序时,我得到了这些编译错误:

Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\BlankPage1.xbf" because it was not found.
Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\BlankPage1.xaml" because it was not found.
Error: Could not copy the file "C:\Users\xxx\.nuget\packages\classlibrary2\1.0.0\lib\uap10.0.16299\ClassLibrary1\ClassLibrary1.xr.xml" because it was not found.

我注意到 ClassLibrary2.pri 文件包含这 3 个文件,但不应该因为它们包含在 ClassLibrary1 NuGet 包中。

如何指示不将这些文件包含在 ClassLibrary2.pri 中?

这是一个重现问题的示例项目:https://github.com/kakone/PriGeneration/

【问题讨论】:

  • ClassLibrary1/*.pri 文件被复制到 ClassLibrary2 的输出文件夹,只是不包含在 nupkg 中。是否可以将 ClassLibrary1/*.pri 文件包含到 ClassLibrary2.nupkg 中?
  • 不,这不是一个真正的选择,我希望能够在不更新 ClassLibrary2 包的情况下更新 ClassLibrary1 NuGet 包。

标签: c# uwp nuget


【解决方案1】:

我找到了一种解决方法,方法是将自定义的 filters.layout.resfiles 文件复制到名为 _GenerateProjectPriFileCore 的 MSBuild 目标之前的 obj 文件夹。

我在 .csproj 中添加了这些行:

<Target Name="CustomPriFileGeneration" BeforeTargets="_GenerateProjectPriFileCore" Condition=" '$(Configuration)'=='Release' ">
    <Copy SourceFiles="$(ProjectDir)\filtered.layout.resfiles" DestinationFolder="$(BaseIntermediateOutputPath)\$(Configuration)\$(TargetFramework)" />
</Target>

和我的项目中的 filters.layout.resfiles 文件:

ClassLibrary2\BlankPage2.xaml
ClassLibrary2\ClassLibrary2.xr.xml

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2010-12-30
    相关资源
    最近更新 更多