У меня есть проект в Visual Studio 2017, который до сегодняшнего обеда прекрасно создавался.
Однако после обеда я сделал публикацию, и он не смог установить.В сообщении об ошибке указано нехватка места на диске, но это красная сельдь, щелкнув «Детали», выявляется фактическая проблема: -
Downloading file:///R:/Distributions/Versions/2_52_1_28/office.dll did not succeed.
The file 'C:\Users\UserName\AppData\Local\Temp\Deployment\J96Q2Z24.5ZW\PLRNLLH9.P83\office.dll' already exists.
После небольшого расследования я наконец нашел причину.
ВВ предыдущих сборках, в том числе сделанных незадолго до обеда, файл Project.exe.manifest содержал только одну ссылку на Office.dll
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="office.dll" size="416544">
<assemblyIdentity name="office" version="12.0.0.0" publicKeyToken="71E9BCE111E9429C" language="neutral" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>T20B2Tc3f9WAJjzj714VHOHjZvE=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Однако в новых сборках есть две ссылки на Office.dll
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="office.dll" size="416544">
<assemblyIdentity name="office" version="12.0.0.0" publicKeyToken="71E9BCE111E9429C" language="neutral" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>T20B2Tc3f9WAJjzj714VHOHjZvE=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="office.dll" size="448360">
<assemblyIdentity name="office" version="14.0.0.0" publicKeyToken="71E9BCE111E9429C" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>jPF8AFD1PyAMdP0Ixm/h2Fo10MQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Это происходит независимо от того, занимаюсь ли я публикацией или просто сборкой, и независимо от того, делаю ли я сначала очистку или нет.
Я сравнил код до и после (мыиспользовать TFS), и ничего не изменилось, кроме очень простого исправления (три строки кода), которое не имеет ничего общего с Office.
У меня есть другой сотрудник, который после публикации выполнил публикацию с его компьютера.a Получить последнюю версию, чтобы убедиться, что у нас обоих одинаковый код, и его публикация работала, с одной ссылкой на Office.dll в Project.exe.manifest.
Затем я попытался собрать другую версиюверсия того же проекта (последняя версия Live, а не версия UAT), и это работало, только одна ссылка на Office.dll в манифесте.
Итак, подведем итог: -
Проект A получает две ссылки на Office.dll в манифесте с компьютера 1
Проект A получает одну ссылку на Office.dll в манифесте с машины 2
Проект B получает одну ссылку на Office.DLL в манифесте с машины 1
Проект B получает одну ссылку на Office.dll в манифесте с машины 2
Первые два предполагают, что это проблема на основе компьютера, поскольку тот же код даетразные результаты на разных машинах.
Однако вторые две предполагают, что это проблема на основе кода, поскольку обе машины могут собираться без проблем.
Потратил пару часов, гугля и пробуя вещи,и ничто из того, что я придумал, не позволило Project A добавить две ссылки на Office.dll в ProjectA.exe.manifest.
Любой из вас, прекрасные люди, когда-либо имел это раньше,и если да, то как ты это исправил, пожалуйста?