Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Prism模块化并按源包含Unity的Unity容器错误_C#_Wpf_Unity Container_Prism - Fatal编程技术网

C# 使用Prism模块化并按源包含Unity的Unity容器错误

C# 使用Prism模块化并按源包含Unity的Unity容器错误,c#,wpf,unity-container,prism,C#,Wpf,Unity Container,Prism,我在试图使用Prism4引导程序时不断遇到一个错误,源代码引用Unity并将现有项目包含到解决方案中。我还从源代码构建Unity,然后包含输出文件时出错 详情如下: 我有一个使用Prism4的项目。Prism的引导程序组件依赖于Unity 2.0。更确切地说,他们依赖于unity的2.0.414.0版 如果我试图将当前或更新版本的Prism作为Prism 4包含到我的项目中,那么VS会给我一条消息,生成一些app.config代码,强制加载最新的程序集。 当为Unity 2.0和Unity 2

我在试图使用Prism4引导程序时不断遇到一个错误,源代码引用Unity并将现有项目包含到解决方案中。我还从源代码构建Unity,然后包含输出文件时出错

详情如下:

我有一个使用Prism4的项目。Prism的引导程序组件依赖于Unity 2.0。更确切地说,他们依赖于unity的2.0.414.0版

如果我试图将当前或更新版本的Prism作为Prism 4包含到我的项目中,那么VS会给我一条消息,生成一些app.config代码,强制加载最新的程序集。

当为Unity 2.0和Unity 2.1使用预构建的dll文件时,这不会出现问题

但是,如果我试图从源代码构建这些DLL并使用新的DLL,或者将项目直接包含到我的项目中,我总是会遇到错误:

The type 'Microsoft.Practices.Unity.IUnityContainer' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 请注意,Unity 2.0[b]是[/b]版本2.0.414.0。所以我的第一次尝试是使用unity 2.0源代码库。我也使用这个版本做了很多后续的尝试,包括从一个新的项目开始。我尝试过通过预构建的bin文件、源代码和自定义构建的dll来包含Prism,结果都是一样的。我还使用Unity2.1尝试了所有相同的方法,希望它能起作用

我的环境是MSVC 2010 win7 x64。我已经在x86和任何CPU配置以及调试和发布下构建了。唯一的依赖项是Prism和Unity。

找到了解决方法

我打开了Prism源的解决方案,删除了对unity的任何引用。然后,我将unity项目作为现有项目添加到prism解决方案中。最后,我引用unity作为所有相关prism项目的一个项目。因此,我将用于我的项目的unity dll由prism unityextensions输出

一些批处理文件稍后会更新,瞧,这是一个解决方法

这不是最好的解决方案,但我现在准备继续前进

注意,主题行不正确。这是prism中UnityExtensions的问题,而不是模块化的问题。另外,当我称UnityBootTrapper为

Correction时,我不清楚它是什么。当我称UnityBootTrapper为Prism的引导程序组件时,我也不清楚它是什么。 The type 'Microsoft.Practices.Unity.IUnityContainer' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.