在TFS上的x86中构建ASP.NET Core
我试图通过TFS构建和部署ASP.NET Core 2.0.3 Web API。在TFS上的x86中构建ASP.NET Core
在Visual Studio中,我已经配置Release来定位x86平台。 我也保证了其在的csproj如下:
<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework>
<Platforms>x86</Platforms>
</PropertyGroup>
大厦局部产生预期的输出文件夹中BIN \ 86 \调试\ netcoreapp2.0
在TFS中我有一个新的.NET CORE使用restore/build/publish任务构建配置。我注意到,他们不使用标准BuildPlatform构建变量,我从任何一个CPU改为x86的
Build: --configuration $(BuildConfiguration) Publish: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)
他们只用BuildConfiguration这是Debug或释放。这会导致Any CPU dll在发布服务器上以x64的形式运行。
我已经尝试添加-r win7-x86到发布命令,但这导致了一个自包含的部署被发布,这不是我想要的。
我已经尝试添加-r win7-x86到生成命令,这会导致生成正确的dll,但publish命令确实是它自己的隐式生成并且不使用先前生成任务的输出。
如何让TFS为Web应用程序发布x86 DLL(框架相关)?
回答:
对于.NET核心应用程序(netcoreapp*
- 而不是.NET Framework上的ASP.NET Core),构建期间使用的平台通常无关紧要。
位数由用于加载和运行应用程序的dotnet.exe
主机的版本决定。例如。 (64位)或C:\Program Files (x86)\dotnet\dotnet.exe
(32位)。
的RuntimeIdentifier
的MSBuild属性(什么-r
开关套)仅适用于自包含的部署有关,但也有指定--self-contained false
(=>SelfContained
MSBuild的属性),因此运行时特定的应用程序,而无需创建内置的选项一个独立的部署。这通常仅用于过滤特定于运行时的资产 - 例如在runtimes
子文件夹中只包含win-x32版本的SQLite本机库,而不是windows/linux/Mac的多个版本等。
以上是 在TFS上的x86中构建ASP.NET Core 的全部内容, 来源链接: utcz.com/qa/262425.html