我正在使用 VS2019 预览版。我使用最新的 Blazor 扩展 (16.0.19227) 创建了一个“服务器托管”的 Blazor 应用程序。这是包含 3 个独立项目的变体...
- 我的应用程序客户端
- 我的应用服务器
- MyApp.Shared
我可以通过制作 MyApp 来调试它。为活动项目提供服务器,一切正常,但我正在努力将其发布/部署到 Azure。我尝试了以下...
- 在解决方案资源管理器中右键单击 MyApp.Server
- 选择“发布”
- 通过向导创建新的发布配置文件
- 将部署模式更改为“自包含”
- 点击发布
此时我在部署过程中遇到错误...
CSC(0,0):错误 CS0006:找不到元数据文件“D:\work\Applications\Web\MyApp.Client\bin\Release\netstandard2.0\win-x86\MyApp.Client.dll”
这似乎是因为 web-deploy 配置文件中的“目标运行时”设置为win-x86。客户端应用程序实际上正在构建为
"D:\work\Applications\Web\MyApp.Client\bin\Release\netstandard2.0\MyApp.Client.dll"
(没有额外的 win-x86 子文件夹)所以部署过程似乎对构建过程使用的路径做出了错误的假设。发布对话框中无法指定空白/无关目标运行时。
是否有解决方法,或者我使用了错误的部署方法?
有一些官方文档,但它不是很有帮助。
更新似乎部署正在使用客户端项目的输出路径,然后只是将netstandard2.0{Target Runtime}附加到它,因此更改客户端项目中的输出路径不足以解决该问题。
更新 2通过编辑 xml删除发布配置文件中的RuntimeIdentifier标记只会导致部署时错误,指出空的 RuntimeIdentifier 与独立部署不兼容。不幸的是,自包含部署是必要的,因为 Azure 尚未直接托管 .net core 3。