Bot*_*tis 10 msbuild asp.net-core
我有一个比较奇怪的问题.
我们正在处理的其中一个应用程序在发布到Azure Web App后停止工作.一切都在当地工作.经过长时间的调查,罪魁祸首是构建生成的web.config(在VSTFS中)具有:
<aspNetCore processPath=".\SomeServiceName.Api " stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
虽然正确的是:
<aspNetCore processPath=".\SomeServiceName.Api.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
请注意缺少的.exe.
项目的构建输出设置为Console Application.它是ASP.NET核心应用程序,运行在完整的框架上.使用Visual Studio BuildVSTS中的任务运行构建,并使用以下MSBuildArguments:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"
如果我在我的开发机器上运行构建,使用MSBuild cli,使用相同的命令行参数,我得到:
<aspNetCore processPath="dotnet" arguments=".\SomeServiceName.Api.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
该项目正在使用<Project Sdk="Microsoft.NET.Sdk.Web">.
我猜我可以将web.config添加到项目中(它现在根本不存在)并且在源代码控制中按照我想要的方式进行控制,这应该可以解决我的部署失败的问题.但我想知道:
更新:
对于任何绊倒在这里的人,这里是github上的问题链接:https:
//github.com/aspnet/websdk/issues/408
看起来现在已经修复了,并且有一天将成为某些版本的一部分(不知道是什么虽然发布周期).
我遇到了完全相同的问题,上周我解决了。我们有 2 个 ASP.Net Core 项目,一个显示问题,另一个没有问题。所以我们比较了 2 个 .csproj 文件。
事实证明,在我们的例子中,我们需要做的就是删除
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
.csproj 中的属性;完成后,MSBuild 正确创建了 web.config,包括 processPath 末尾的 .exe。
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |