使用Windows Server机器2012 R2机器进行设置(exe)并使用Wix v3.10。
当我在任何计算机上运行从Windows Server 2012 R2计算机获取的刻录可执行文件时,安装程序崩溃并显示错误为" System.IO.DirectoryNotFound"未找到。
在进一步调查此问题时,在使用WixBundleProviderkey检索刻录和引导程序相关文件(来自临时位置的.ba文件夹)期间发生了此异常。因为,.ba文件夹存在于某些其他(一些Guild(文件夹名称)}名称而不是临时位置中的所需目录。仅当从Windows Server 2012 R2计算机进行设置时才会出现此问题其他一些Windows机器,如果我们从它进行设置。
存在.ba文件夹的实际路径: C:\ Users \ server \ AppData \ Local \ Temp \ 2 {32DB2298-79D9-4816-9BD6-ABA4271CCA2F}
应用程序搜索.ba文件夹的路径: C:\ Users \ server \ AppData \ Local \ Temp \ 2 {36823a7e-b6d2-4db1-b0d1-212cdf7bd669} \
有谁可以让我们知道为什么在Windows服务器机器上发生此问题?
WixBundleProviderkey的主要功能是什么?
以下是我在启动设置时面临问题的代码
string baFolder = System.IO.Path.GetTempPath()+ SyncBA.Model.Bootstrapper.Engine.StringVariables [" WixBundleProviderKey"] +" \";
答案 0 :(得分:1)
这是由于v3.10.3中添加了安全性缓解措施。不再使用bundle的id创建那个临时文件夹,它是一个随机的guid。您应该以不同的方式获取BA的位置,例如AppDomain.CurrentDomain.BaseDirectory
。