【发布时间】:2018-03-31 12:43:02
【问题描述】:
我正在将 UWP 类库迁移到 .NET Standard 2.0 库,但在获取库中的一些资产文件时遇到了一些问题。
我已将它们包含在库项目中,位于名为“Dictionaries”的文件夹下,并将它们设置为包含在输出文件夹中。我的库 .csproj 文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Content Include="Dictionaries\EN.lst">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<ItemGroup>
...
我遇到的问题是我从 UWP 应用程序中引用了这个库,并且包含这些资产的文件夹没有复制到输出 AppX 文件夹中,而只是复制到父 Debug 文件夹中。我的意思是,当我在调试模式下编译时,我会得到这样的结果:
- 斌
- x86
- 调试
- AppX
- 字典
- ...
- 调试
- x86
现在,AppX 文件夹是在设备安装应用程序时分发给设备的唯一文件夹,因此库 .dll 文件本身包含在该 AppX 文件夹中。主应用程序的 Assets 文件夹也是如此。
我知道如何获取正在执行的 .dll 的路径:
new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath
我希望 Dictionaries 文件夹与 .dll 文件位于父 AppX 文件夹中的同一文件夹中,但这里不是这种情况,所以在故事结束时我不能使用那些我在库中需要的资产文件。
注意:因为我知道它们的位置,所以我知道我可以使用正确的路径,但问题是除非这些文件实际上位于 AppX 文件夹中,否则它们不会包含在最终分发给用户的 .appx 文件中。
我在这里遗漏了一些明显的东西吗,有没有办法指定将这些资产文件复制到已编译应用程序的实际文件夹(AppX 文件夹)中?
感谢您的帮助!
【问题讨论】:
标签: c# visual-studio uwp csproj .net-standard