c# - 发布 WPF 应用程序时包括目录?
问题描述
我遇到的问题是 Visual Studio 中的发布设置。我试图包含的目录正在变平,并且存在冲突的文件导致两个问题。
我已经设法轻松地捆绑单个文件,但我还需要在构建应用程序时包含一个目录(包含文件)。
原因是 Unity(我正在嵌入)需要一个“UnityBuild_Data”目录(它也有自己的子目录)。
所以我发布的应用程序需要:
(WPF app files, i.e AppCore.exe & it's files)
UnityBuild.exe
UnityBuild_Data/
... etc
因此,虽然我已经弄清楚如何包含 UnityBuild.exe,但我似乎无法包含统一所需的目录 (UnityBuild_Data)。因此,Unity 抱怨 Data 目录不存在。如果我手动转到我的应用程序的安装位置并将其放置在那里,一切正常。
似乎正在发生的事情是目录中的所有文件都被展平并放在根级别。
我已编辑项目文件 (.csproj) 以包含以下内容:
<ItemGroup>
<Content Include="$(SolutionDir)Dependencies\**\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
</Content>
</ItemGroup>
在这种情况下,Dependencies 文件夹将位于解决方案目录中,并包含一个名为 UnityBuild_Data/ 的子目录
Solution/
-- Dependencies/
-- -- UnityBuild_Data/
** dlls and other files in here **
额外信息:
在我尝试构建甚至只是为了检查我是否遇到任何问题之后,这个错误,我相信这是因为 1)文件被展平而不是放入子目录 2)导致 dll 命名相同:
严重性代码描述项目文件行抑制状态错误未知的构建错误,'覆盖成员时违反继承安全规则:'System.Uri.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization .StreamingContext)'。重写方法的安全可访问性必须与被重写方法的安全可访问性相匹配。第 8 行位置 87。AppCore.UI C:\Users\userj\Source\Repos\AppCore\src\AppCore.UI\App.xaml 8
如果我删除 UnityBuild_Data/Managed 中的任何冲突 dll,我的项目构建正常
但是问题仍然存在,当我通过 Visual Studio(创建安装程序)“发布”应用程序时,一切都变得扁平,并且“UnityBuild_Data”目录丢失(unity 抱怨错误)。
潜在的解决方案,但并不理想:
1)压缩目录,然后以某种方式提取应用程序代码?
2)创建目录并移动文件(重命名冲突的文件)
解决方案
推荐阅读
- android - 当我退出应用程序并重新打开它时,我的反应原生 android 应用程序不会从根组件启动
- c# - .Net Core 3.1.2 中的 GetFullPath 行为与 .Net 4.6.1 不同
- airflow - 气流:带有烧瓶的 RBAC,werkzeug.routing.BuildError
- python - 有没有为 Connexion 应用程序指定模板和静态文件夹(默认除外)?
- javascript - 嵌套对象的键是否存储在对象中?
- batch-file - 在 MinGW 中处理 32 个窗口限制(Windows 批处理文件)
- html - Bootstrap4 网格系统 - SM+ 中的 Flex 和 XS 中的 Row>Col
- css - 如何在有角材料的一行上制作标题和日期
- curl - CURLOPT_REQUESTFIELDS
- sql - 将行转入未知数量的列