【问题标题】:Unable to load the specified metadata resource when I add a Windows Workflow activity to the project?将 Windows 工作流活动添加到项目时无法加载指定的元数据资源?
【发布时间】:2014-10-09 21:10:39
【问题描述】:

我有一个包含一个 emdx 模型的 ASP .NET 项目;在我向其添加工作流活动之前,该项目运行良好。将工作流活动添加到项目时,出现以下错误“无法加载指定的元数据资源”。 我在这两种情况下都使用反射器检查了生成的 .dll 文件,我发现

1- 当我删除工作流活动时,资源文件(.csdl、.msl、.ssdl)被正确嵌入。

2- 当工作流活动存在时,不嵌入资源,而是嵌入工作流资源文件。

工作流活动是 ABC.xaml。在资源中,我只找到了这两个文件(ABC.g.xaml,TestApp_ABC_BeforeInitializeComponentHelper.txt)。

是否有任何修复程序可以在使用 Workflow 时嵌入 .edmx 资源文件。

【问题讨论】:

    标签: c# asp.net dll workflow-foundation embedded-resource


    【解决方案1】:

    我找不到嵌入资源的方法,但我找到了一种可以让它工作的解决方法。

    项目构建时,会在/obj/Debug/edmxResourcesToEmbed目录下生成资源文件(.csdl,.msl,.ssdl)。我将文件复制到 bin 目录并将连接字符串更改为

    <add name="TestDBEntities" connectionString="metadata=~/bin/TestDBModel.csdl|~/bin/TestDBModel.ssdl|~/bin/TestDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=****;initial catalog=TestDB;persist security info=True;user id=*****;password=******;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
    

    而不是

     <add name="TestDBEntities" connectionString="metadata=res://*/TestDBModel.csdl|res://*/TestDBModel.ssdl|res://*/TestDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=****;initial catalog=TestDB;persist security info=True;user id=*****;password=******;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
    

    通过这样做,应用程序将从 bin 目录中获取资源文件,而不是从 .dll 文件中获取它们。

    【讨论】:

      猜你喜欢
      • 2013-04-12
      • 2016-05-01
      • 1970-01-01
      • 2023-03-10
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多