我们维护一个 VSTO Office 加载项。在大多数机器上,我们的程序集都被复制到Shadow Copy文件夹,该文件夹通常默认位于C:\Users\{User}\AppData\Local\assembly\dl3
. 我们使用的第三方依赖项必须使用 GZipCompress 解压缩一些程序集,他们通过使用 Assembly.Location 属性解析程序集的路径来完成此操作。此路径始终被解析为 Shadow Copy 文件夹,因为默认情况下 VSTO 似乎对程序集进行了影子复制。
然而,在特定用户的机器上,程序集被复制到C:\Users\{User}\AppData\Local\Packages\Microsoft.Office.Desktop_{ALPHANUM}\LocalCache\Local\assembly\dl3
,但是 Assembly.Location 值仍然是C:\Users\{User}\AppData\Local\assembly\dl3
,我已经将两个\assembly
文件夹符号链接在一起,但是我想知道为什么 .NET 正在解析错误的影子复制路径,以及为什么在此用户的计算机上,程序集被影子复制到 Office 的 LocalCache。