Ошибка при попытке прочитать файл манифеста VSIX ... Система не может найти указанный файл - PullRequest
3 голосов
/ 17 сентября 2011

Я пытаюсь создать проект пакета Visual Studio с помощью Hudson CI.Это проект Visual Studio 2010.Проект прекрасно собирается в моей коробке разработчика, но по какой-то причине я продолжаю получать следующую ошибку только при сборке в Hudson:

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0\ VSSDK \ Microsoft.VsSDK.targets (378,5): ошибка: ошибка при попытке прочитать файл манифеста VSIX "obj \ Release \ extension.vsixmanifest".Система не может найти указанный файл.(Исключение из HRESULT: 0x80070002) [C: \ hudson \ workspace \ MyProject_Daily_Compilation \ Source \ MyProject.VisualStudio \ MyProject.VisualStudio.csproj]

Я проверил, существует ли файл на диске в следующем месте:

C: \ Hudson \ workspace \ MyProject_Daily_Compilation \ Source \ MyProject.VisualStudio \ obj \ Release \ extension.vsixmanifest

Что может быть причиной этой проблемы?

Ответы [ 2 ]

8 голосов
/ 09 мая 2014

Скорее всего, вы столкнетесь с такой ошибкой, если у пользователя, на котором вы запускаете сборку, отсутствуют права администратора.

Таким образом, есть 2 решения:

1) Запустите сборку (сервер сборки) с правами администратора.

или, если вы не можете реально изменить пользователя, сервер сборкиработает на

2) и вам фактически не нужно развертывать расширение VS на самом сервере сборки, установите для свойства DeployExtension в вашем файле * .csproj значение false.

Microsoft.VsSDK.targets по умолчанию присваивает этому свойству значение true

<DeployExtension Condition="'$(DeployExtension)' == ''">true</DeployExtension>

, но если вам не нужно развертывать это расширение локально (а вместо этого вы предпочтете получить сборку * .vsix, вы можете смело ставить

<PropertyGroup>
    <DeployExtension>false</DeployExtension>
</PropertyGroup>

Первоначальная ошибка в основном происходит из-за того, что попытка получить путь развертывания в какой-то момент завершается неудачно и нарушает успешную генерацию пакета vsix. Если для свойства задано значение false, то сборка не пытается развернутьрасширение локально (но генерируется действительный * .vsix)

2 голосов
/ 03 октября 2011

Я предполагаю, что вы используете Hudson в качестве службы. В этом случае «0x80070002 - система не может найти указанный файл» вполне может быть из-за того, что пользователь, используемый для запуска hudson, не имеет доступа.

Быстрое решение этой проблемы - изменить пользователя «Log on», чтобы служба Hudson стала вашей обычной учетной записью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...