Сборка ASP.NET Core в x86 на TFS

Я пытаюсь создать и развернуть веб-API ASP.NET Core 2.0.3 через TFS.

В Visual Studio я настроил Release для платформы x86. Я также обеспечил следующее в csproj:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <Platforms>x86</Platforms>
</PropertyGroup>

Сборка локально производит ожидаемый результат в папке bin \ x86 \ Debug \ netcoreapp2.0


В TFS у меня есть новая конфигурация сборки .NET CORE с задачами восстановления / сборки / публикации. Я заметил, что они не используют стандартную переменную сборки BuildPlatform, которую я изменил с Any Cpu на x86.

Build: --configuration $(BuildConfiguration)

Publish: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)

Они используют только BuildConfiguration, то есть Debug или Release. Это приводит к созданию библиотеки DLL Any CPU, которая будет работать как x64 на сервере выпуска.

Я пробовал добавить -r win7-x86 в команду публикации, но это привело к публикации автономного развертывания, чего я не хочу.

Я пробовал добавить -r win7-x86 к команде сборки, что приводит к созданию правильной dll, но команда публикации выполняет собственную неявную сборку и не использует выходные данные предыдущей задачи сборки.

Как я могу заставить TFS публиковать x86 DLL (зависит от платформы) для веб-приложения?

Какую версию TFS вы используете?   —  person Daniel Revell    schedule 19.12.2017

См. также:  Как программно захватить строки отладки веб-метода в Visual Studio 2017
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Daniel Revell

    Для приложений .NET Core (netcoreapp* — не ASP.NET Core в .NET Framework) платформа, используемая во время сборки, обычно не имеет значения.

    Разрядность определяется версией хоста dotnet.exe, который используется для загрузки и запуска приложения. Например. C:\Program Files\dotnet\dotnet.exe (64 бит) или C:\Program Files (x86)\dotnet\dotnet.exe (32 бит).

    Свойство RuntimeIdentifier MSBuild (то, что задает переключатель -r) актуально только для автономных развертываний, но есть также возможность указать свойство --self-contained false (=> SelfContained MSBuild), чтобы приложение, зависящее от времени выполнения, создавалось без создания автономного развертывание. Обычно это требуется только для фильтрации ресурсов, специфичных для времени выполнения — например, включайте только win-x32 версии собственной библиотеки SQLite вместо нескольких версий для windows / linux / Mac и т. д. в подпапку runtimes.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: