我遇到的问题是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)创建目录并移至文件(重新命名冲突文件)