ошибка MSB4175: не удалось загрузить фабрику задач "CodeTaskFactory" из сборки - PullRequest
0 голосов
/ 30 мая 2018

В моем файле .csproj есть цель, которая выглядит следующим образом:

<UsingTask TaskName="GetPackageVersion" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<ParameterGroup>
  <FileName ParameterType="System.String" Required="true" />
  <PackageVersion ParameterType="System.String" Output="true" />
</ParameterGroup>
<Task>
  <Reference Include="System.Xml" />
  <Reference Include="System.Xml.Linq" />
  <Using Namespace="System.IO" />
  <Using Namespace="System.Xml.Linq" />
  <Code Type="Fragment" Language="cs"><![CDATA[
  var doc = XDocument.Load(FileName);
  var defaultNamespace = doc.Root.GetDefaultNamespace();
  PackageVersion = doc.Root.Element(defaultNamespace.GetName("Identity")).Attribute("Version").Value;
]]>
</Code>
</Task>
</UsingTask>
<Target Name="GetZip">
<GetPackageVersion Filename="Package.appxmanifest">
  <Output PropertyName="PackageVersion" TaskParameter="PackageVersion" />
</GetPackageVersion>
<ItemGroup>
  <BinDirectoryFiles Include="$(MSBuildProjectDirectory)\AppPackages\MyApp_$(PackageVersion)_x86_MyApp_Test\**\*.*" />
</ItemGroup>
<Zip Files="@(BinDirectoryFiles)" WorkingDirectory="$(MSBuildProjectDirectory)\AppPackages\MyApp_$(PackageVersion)_x86_MyApp_Test" ZipFileName="$(MSBuildProjectDirectory)\Zip\MyApp_$(PackageVersion).zip" />
</Target>

Мой проект находится на GitLab и автоматически собирается, когда я что-то фиксирую.Проект собирается без каких-либо проблем, а затем архивирует приложения.В начале это работало, но после установки новейшей версии Windows 10 (1803) на мою виртуальную машину он завершается с ошибкой в ​​цели Zip с этой ошибкой:

C: \ Multi-Runner \ builds \ 9fca3796\ 0 \ mobile \ mail-windows \ MyApp \ MyApp.csproj (657,5): ошибка MSB4175: не удалось загрузить фабрику задач "CodeTaskFactory" из сборки "C: \ Program Files (x86) \ Microsoft Visual Studio \2017 \ сообщество \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Tasks.Core.dll».Клиент не имеет требуемой привилегии

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

1 Ответ

0 голосов
/ 07 июня 2018

В последней версии Windows 10 расположение сборки по умолчанию C: \ gitlab-runner \ builds защищено.Одно из решений состоит в том, чтобы переместить каталог builds в домашнюю папку пользователя бегуна, добавив строку builds_dir в раздел runners вашего файла config.toml.Экранированные обратные косые черты были необходимы для правильного анализа пути в .toml.

builds_dir = "c: \\ Users \\ gitlab-ci-users \\ builds"

Мне пришлось перезапуститьмой сервис gitlab, чтобы изменения вступили в силу.

...