Msbuild 无法通过间接引用 System.Runtime 构建网站项目
Msbuild fails building website project with an indirect reference to System.Runtime
我 运行 遇到了 MSBuild 的依赖问题。我为 Microsoft.Tpl.Dataflow 添加了一个 NuGet 包到我的解决方案中的一个项目。这会导致引用第一个项目的解决方案中的网站项目构建失败。获取正确的运行时版本似乎有问题。
这是我在使用 MSBuild 构建解决方案时遇到的众多错误之一。
C:\src\MyWebsite.metaproj : warning MSB3268: The primary reference
"C:\src\projects\ReferencedProject\bin\Debug\ReferencedProject.dll"
could not be resolved because it has an indirect dependency on the
framework assembly "System.Runtime, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the
currently targeted framework. ".NETFramework,Version=v4.5". To resolve
this problem, either remove the reference
"C:\src\projects\ReferencedProject\bin\Debug\ReferencedProject.dll"
or retarget your application to a framework version which contains
"System.Runtime, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a".
令人困惑的是解决方案在 Visual Studio 中构建良好。此外,解决方案构建中的所有其他项目——只有网站项目失败了。
我试过了
- 正在将网站的目标框架更改为 4.0(目前为 4.5)。
- 添加对 System.Runtime.dll 版本 4.0.0.0
的程序集引用
我仍然无法构建它。我该如何解决这个问题?
原来 aspnet_compiler.exe(由 msbuild 调用)不在
的 Facade 目录中查找库
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facade
因此,解决方案中的网站项目无法编译。
我从 this blog post. 中发现了这一点,正如那里提到的那样,为了解决这个问题,我将 DLL 从 Facade 目录复制到 v4.5 目录中,一切正常。
老实说,这是一个不太理想的解决方案。
我 运行 遇到了 MSBuild 的依赖问题。我为 Microsoft.Tpl.Dataflow 添加了一个 NuGet 包到我的解决方案中的一个项目。这会导致引用第一个项目的解决方案中的网站项目构建失败。获取正确的运行时版本似乎有问题。
这是我在使用 MSBuild 构建解决方案时遇到的众多错误之一。
C:\src\MyWebsite.metaproj : warning MSB3268: The primary reference "C:\src\projects\ReferencedProject\bin\Debug\ReferencedProject.dll" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.5". To resolve this problem, either remove the reference "C:\src\projects\ReferencedProject\bin\Debug\ReferencedProject.dll" or retarget your application to a framework version which contains "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
令人困惑的是解决方案在 Visual Studio 中构建良好。此外,解决方案构建中的所有其他项目——只有网站项目失败了。
我试过了
- 正在将网站的目标框架更改为 4.0(目前为 4.5)。
- 添加对 System.Runtime.dll 版本 4.0.0.0 的程序集引用
我仍然无法构建它。我该如何解决这个问题?
原来 aspnet_compiler.exe(由 msbuild 调用)不在
的 Facade 目录中查找库C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facade
因此,解决方案中的网站项目无法编译。
我从 this blog post. 中发现了这一点,正如那里提到的那样,为了解决这个问题,我将 DLL 从 Facade 目录复制到 v4.5 目录中,一切正常。
老实说,这是一个不太理想的解决方案。