发布WPF应用程序时要包括目录吗?

时间:2018-07-30 19:55:17

标签: c# wpf

我遇到的问题是Visual Studio中的“发布”设置。我尝试包含的目录已变平,并且文件冲突导致两个问题。

我设法轻松地捆绑了单个文件,但是在我的应用程序构建时,我还需要包括一个目录(包含文件)。

原因是Unity(我正在嵌入)需要一个“ UnityBuild_Data”目录(该目录也具有自己的子目录)。

所以我的发布应用必须具备:

(WPF app files, i.e AppCore.exe & it's  files)
UnityBuild.exe
UnityBuild_Data/

... etc

因此,尽管我已经弄清楚如何包含UnityBuild.exe,但似乎无法包含unity所需的目录(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”目录(团结组织抱怨错误)。

可能的解决方案,但不理想:

1)压缩目录,然后以某种方式提取应用代码?

2)创建目录并移至文件(重新命名冲突文件)

0 个答案:

没有答案