使用Unity IoC Container时,VS 2015建模项目MSB3268会发出警告

时间:2015-09-30 08:15:39

标签: .net visual-studio-2015 unity-container

我正在使用Visual Studio Enterprise 2015并尝试创建图层图以生成和验证依赖项。但这失败了,因为VS在构建建模项目时会抛出警告:

  

CurrentVersion.targets(1819,5):警告MSB3268:主要参考   " ... \ ClassLibrary4 \ BIN \调试\ ClassLibrary4.dll"无法解决   因为它对框架程序集有间接依赖性   " System.Runtime,Version = 4.0.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a"这无法解决   目前的目标框架。 " .NETFramework,版本= 4.0版&#34 ;.解决   这个问题,要么删除引用   " ... \ ClassLibrary4 \ BIN \调试\ ClassLibrary4.dll"或重新定位你的   应用程序到包含" System.Runtime的框架版本,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"。

我发现如果删除Unity,警告就会消失,依赖关系会按预期显示。

此行为的原因是什么,是否有解决方法?

我尝试了Unity预发行包以及另一个目标框架。完全没有效果。在添加建模项目并在一个引用项目中使用unity之后,可以使用新项目重现该问题。

1 个答案:

答案 0 :(得分:5)

我在将构建输出设置为详细信息后找到了解决方案。 VS2015使用错误的目标框架(4.0)编译建模项目的问题:

  

任务参数:TargetFrameworkDirectories = C:\ Program Files   (x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0

建模项目(* .modelproj)的项目文件中没有TargetFrameworkVersion。但是在将它添加到第一个属性组之后,它正在按预期编译和验证。没有任何警告。

解决方案:

  1. 卸载建模项目
  2. 右键单击 - >打开* .modelproj
  3. 将以下行添加到第一个Property(替换为您的目标框架)
  4. (用目标框架替换v4.5)

    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    

    使用架构工具获得快乐。