Azure DevOps Pipeline未找到edmx资源

狄龙·德罗比纳

我有一个.Net Core 3.1 MSTest项目,该项目调用一个连接到我的数据库的单独的类库,该类库首先在数据库中完成,所以我有一个.edmx文件。一切都在本地运行良好,但是当我将其发布到我的Azure DevOps管道时,我开始遇到Unable to load the specified metadata resource.异常。我已经通过放入一些代码以打印出程序集中的所有资源来进行测试

var resources = (Assembly with EDMX).Assembly.GetManifestResourceNames();
System.Console.WriteLine("There are " + resources.Length + " resources in the assembly");
foreach (var resource in resources)
{
    System.Console.WriteLine(resource);
}

我的本地计算机上的结果将打印出我期望的结果

There are 3 resources in the assembly
Model.csdl
Model.msl
Model.ssdl

但是,在我的管道上进行的相同运行显示0个资源

There are 0 resources in the assembly

我在本地和管道上的构建过程完全相同

task: PowerShell@2
inputs:
targetType: 'inline'
script: |
  & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" $(Build.SourcesDirectory)\MyProject\MyProject.sln
  dir $(Build.SourcesDirectory)\MyProject -include ('*.csdl', '*.msl', '*.ssdl') -recurse
  & "C:\hostedtoolcache\windows\dotnet\dotnet.exe" test $(Build.SourcesDirectory)\MyProject\Project.Tests\Project.Tests.csproj

为了确保资源确实存在于我的Azure Build代理中,我添加了第二个powershell命令来查找我的.csdl,.msl和.ssdl文件,并确保它们确实存在

Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
-a----        5/30/2020   3:54 PM          30772 Model.csdl                                                   
-a----        5/30/2020   3:54 PM          10993 Model.msl                                                    
-a----        5/30/2020   3:54 PM          23351 Model.ssdl 

这些文件位于$(Build.SourcesDirectory)\ MyProject \ Project.Models \ obj \ Debug \ edmxResourcesToEmbed中

而且该属性似乎已在我的.csproj中正确设置

  <ItemGroup>
      <EntityDeploy Include="ProjectModels.edmx">
          <Generator>EntityModelCodeGenerator</Generator>
          <LastGenOutput>ProjectModels.Designer.cs</LastGenOutput>
      </EntityDeploy>
  </ItemGroup>

我不经常使用.edmx数据库设计,因此我不熟悉如何处理资源,是否应该将其编译到程序集中还是只是在运行时加载?我在本地和管道中的构建过程均显示:

Skipping target "EntityDeployNonEmbeddedResources" because it has no outputs.
EntityDeployEmbeddedResources:
Processing 1 EDMX files.
Starting to process input file 'ProjectModels.edmx'.
Finished processing input file 'ProjectModels.edmx'.
Finished processing 1 EDMX files.

不知道这表明什么,但是由于两者都发生了,所以我假设它不是问题的一部分。我能想到的唯一其他区别是我的Azure Pipeline使用Visual Studio 2019 Enterprise,而我的本地版本使用Visual Studio 2019 Community。

关于如何使这些资源加载到管道构建中的任何想法?

刘o

Azure DevOps Pipeline未找到edmx资源

此问题应该来自dotnet测试。

AFAIK,dotnet cli不支持嵌入的edmx资源。MSBuild道具/目标中不支持这些类型的文件,该工具不在CLI中提供,而仅在完整框架VS中提供。

您可以检查此票以获取更多详细信息。

剩下的工作已经在dotnet / ef6#231进行了跟踪

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Azure DevOps:未找到 WikiHttpClient 的 Wiki 页面

来自分类Dev

是否可以继承Azure DevOps Pipeline的定义?

来自分类Dev

Azure DevOps Pipeline构建意外触发

来自分类Dev

在Azure DevOps Pipeline CI中使用MongoDB

来自分类Dev

Azure DevOps Pipeline创建空zip

来自分类Dev

Azure DevOps Pipeline托管代理-在哪里可以找到系统功能?

来自分类Dev

在Azure Devops YAML管道中访问容器资源变量

来自分类Dev

我资源上的Azure Devops部署管道被卡住

来自分类Dev

如何使Azure DevOps Pipeline等待外部过程完成?

来自分类Dev

如何使用Azure DevOps Pipeline部署多个ARM

来自分类Dev

.net core 3.1 Azure devops Pipeline在nuget还原时失败

来自分类Dev

Azure DevOps Classic Pipeline无分支筛选器

来自分类Dev

Azure DevOps YML Pipeline将git checkout更改为Classic

来自分类Dev

获取 Azure DevOps Pipeline Artifact 输出 Windows 应用程序

来自分类Dev

Azure DevOps Pipeline -> Hosted 和 Hosted VS 2017 之间的区别

来自分类Dev

Azure Devops生成策略

来自分类Dev

Azure Devops Interactive代理

来自分类Dev

Azure DevOps使项目只读

来自分类Dev

Azure DevOps作业序列

来自分类Dev

Azure DevOps REST API

来自分类Dev

Azure DevOps受限板

来自分类Dev

Azure DevOps中的GetUsers

来自分类Dev

Azure DevOps管道阶段

来自分类Dev

Azure DevOps服务帐户

来自分类Dev

Azure DevOps触发管道

来自分类Dev

Azure DevOps用户迁移

来自分类Dev

Azure DevOps 与 Microsoft AppCenter

来自分类Dev

Azure DevOps 增量管道

来自分类Dev

创建 Azure DevOps 附件