如何将具有 post 构建依赖项的 WPF 应用程序打包到 UWP 包中?
How to package a WPF app with post build dependencies into UWP package?
我正在尝试使用 C# 打包项目将 wpf 应用程序打包到 UWP 包中。问题是我的应用程序具有 dll 依赖项 (c++ dll),这些依赖项在其输出中随 post 构建事件一起提供。因此,当我在打包项目中添加对我的应用程序的引用时,其输出仅包含从桌面应用程序构建生成的 dll - 所有其他 dll(来自 post 构建事件)都将被忽略。
然后我决定为打包项目制作相同的 post 构建事件并提供缺少的 dll,但不幸的是,打包过程没有考虑它们。
有没有办法强制将此 dll 打包到结果 appx 中?
我想出了一个适合我的情况的决定(不确定这是最好的……)。
假设桌面应用程序的名称是 MyApp。该解决方案包含以下步骤:
在桌面应用中添加post构建事件,将其输出复制到打包项目中的“MyApp”目录。
将此目录包含在打包项目中,并使其作为内容复制。
要使整个目录成为内容,请在打包项目 wapproj 文件中添加以下 ItemGroup:
<ItemGroup>
<Content Include="MyApp\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
这使得文件夹的内容被复制到打包项目的输出中。由于它与引用的应用程序同名,因此它被复制到相同的输出目录中,打包项目为每个引用的应用程序创建。它接缝发生在正确的时间(在调用 MakePri.exe 之前)并且所有依赖项都从打包项目的构建过程中考虑。
扩展 Yordans 的回答,如果你想引用项目之外的目录,请包含 Link
元数据:
<Content Include="..\release\win-unpacked\**\*.*" Link="app\%(RecursiveDir)%(Filename)%(Extension)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
我正在尝试使用 C# 打包项目将 wpf 应用程序打包到 UWP 包中。问题是我的应用程序具有 dll 依赖项 (c++ dll),这些依赖项在其输出中随 post 构建事件一起提供。因此,当我在打包项目中添加对我的应用程序的引用时,其输出仅包含从桌面应用程序构建生成的 dll - 所有其他 dll(来自 post 构建事件)都将被忽略。
然后我决定为打包项目制作相同的 post 构建事件并提供缺少的 dll,但不幸的是,打包过程没有考虑它们。
有没有办法强制将此 dll 打包到结果 appx 中?
我想出了一个适合我的情况的决定(不确定这是最好的……)。
假设桌面应用程序的名称是 MyApp。该解决方案包含以下步骤:
在桌面应用中添加post构建事件,将其输出复制到打包项目中的“MyApp”目录。
将此目录包含在打包项目中,并使其作为内容复制。
要使整个目录成为内容,请在打包项目 wapproj 文件中添加以下 ItemGroup:
<ItemGroup>
<Content Include="MyApp\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
这使得文件夹的内容被复制到打包项目的输出中。由于它与引用的应用程序同名,因此它被复制到相同的输出目录中,打包项目为每个引用的应用程序创建。它接缝发生在正确的时间(在调用 MakePri.exe 之前)并且所有依赖项都从打包项目的构建过程中考虑。
扩展 Yordans 的回答,如果你想引用项目之外的目录,请包含 Link
元数据:
<Content Include="..\release\win-unpacked\**\*.*" Link="app\%(RecursiveDir)%(Filename)%(Extension)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>