在.net版本的system.windows.forms

时间:2016-03-08 22:11:21

标签: c# .net msbuild compiler-warnings

我正在使用VS2015并在一个包含众多项目的解决方案中工作。

我的解决方案中的一个项目(称之为#34; MyDllProject")是针对.NET 4.0版的类库。它本身引用了许多dll,包括(在本例中)System.Windows.Forms。项目文件中的引用如下:

<Reference Include="System.Windows.Forms" />

因此它没有引用特定版本。从属性选项卡中,它似乎从以下位置获取该文件:

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Windows.Forms.dll

在我的系统上,我在C:\ Program Files下的各种其他子目录(v3.5,v4.5,v4.5.1,v4.6,v4.6.1)中有许多其他版本的System.Windows.Forms (x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ root。但在我看来,我的系统是正确的。

MyDllProject构建得很好,清理得很好,重建得很好,看起来像蛤蜊一样快乐。

我的解决方案中的许多其他项目也引用了MyDllProject,他们自己也可以构建,清理和重建。

但是......有一个旧的ASMX网站&#34;项目&#34;在这个解决方案中ASMX网站本身没有项目文件......所有项目信息都在解决方案文件中。不确定这是否相关。与解决方案中的其他所有内容一样,此ASMX网站的目标是.net 4.0版。当我构建该网站时,无论是构建整个解决方案还是仅构建网站项目,我都会收到以下警告:

  

(0,0):警告:以下程序集依赖于高于目标的.NET Framework版本,并且在运行时导致失败时可能无法正确加载:MyDllProject,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = null。依赖项是:System.Windows.Forms,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089。您应该确保依赖程序集对于目标框架是正确的,或者确保要解决的目标框架是从属程序集的目标框架。

现在一切似乎都在我的MyDllProject和ASMX网站中工作,但我喜欢遵循最佳实践并从我的构建中获取警告,或者至少理解它们。而且我不完全理解这个警告是如何产生的,它是如何构建这个ASMX网站的,以及如何摆脱它。

提前感谢任何见解或建议。

1 个答案:

答案 0 :(得分:0)

似乎this question的已接受答案也可用于解决我的问题。我还不完全明白为什么......但这是一个好的开始。