将Windows工作流活动添加到项目时,无法加载指定的元数据资源?

时间:2014-08-16 07:59:02

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

构建项目时,会在目录/ 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文件中获取它们。