【发布时间】:2018-10-29 14:48:22
【问题描述】:
我正在为我的站点设置一些 DevOps,到目前为止,我已成功使用以下命令在两个 ASP.NET Core 应用上进行部署:
dotnet publish ProjectName.csproj /p:PublishProfile="PublishProfileName" /p:Password=password
我刚刚使用 V2 运行时和 .NET Core 2.1 创建了一个 Azure 函数,正如对所有新项目的建议(请参阅此处 https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/),但如果我使用相同的命令,我发现它只会发布它到本地文件夹,似乎没有将项目部署到 Azure。
如果我使用 MSBuild 等价物,它似乎也错过了部署阶段。
我猜测它在某种程度上与项目类型有关,没有适当的构建目标,但我不确定如何进一步跟踪。
我可以从 Azure 下载发布设置,将它们导入 Visual Studio 并通过 VS 发布,所以看起来如果 VS 路径有效,这可能是某处工具中的回归或错误,而不是不受支持的东西?
我正在使用:
- Visual Studio 15.8.8 +28010.2048
- Azure Functions 和 Web 作业工具 15.9.02046.0
如果我不应该将 dotnet publish 与 Azure 函数一起使用,我应该使用什么来代替命令行 CD?我已经看到对 Azure Function CLI 工具的引用,但如果可以通过其他工具完成,我宁愿不必在我们的构建代理上安装包管理器。
【问题讨论】:
-
如果从 VS 发布工作,那么只需使用 MSBuild 进行部署。这就是我发布函数的方式。 msbuild /p:DeployOnBuild=True /p:PublishProfile=somename.pubxml /p:Configuration=Release
-
@Svend,感谢命令行。看,这是奇怪的事情,我尝试了你的命令行,但它似乎仍然跳过了实际部署到天蓝色。 MSBuild 的最后一条日志是它到达 Publish 将其输出到本地文件夹,然后 _GenerateFunctionsAndCopyContentFiles 似乎移动了更多文件夹,然后完成。当然这意味着我的 Visual Studio 版本中存在错误/回归?我会重新安装,但我真的没有那么多空闲时间! :)
-
@Svend,更奇怪的是,我正在创建一个 repro 来记录针对 MSBuild 或 VS 的问题,似乎如果我在新解决方案中创建一个干净的函数项目,命令行就可以工作。如果我在现有解决方案的新项目中使用相同的命令行,则会跳过部署!我猜想到达某个地方。
-
您很可能在 csproj 文件中存在问题。尝试比较项目文件,看看其中一个是否缺少某些内容。如果您正在处理“合法”的 msbuild/vs 错误,我会吃掉我的帽子。
-
顺便说一句,csproj 文件相同(或足够相似)。同样的 NuGet 包和版本控制。
标签: c# azure .net-core azure-functions