Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
.net MSBuild无法生成引用Bcl相关库的网站_.net_Visual Studio_Web_Msbuild_Base Class Library - Fatal编程技术网

.net MSBuild无法生成引用Bcl相关库的网站

.net MSBuild无法生成引用Bcl相关库的网站,.net,visual-studio,web,msbuild,base-class-library,.net,Visual Studio,Web,Msbuild,Base Class Library,我有两个项目(.Net 4.0) 类库(数据提供程序) 添加对Bcl.Async库的引用(通过nuget) 提供一些异步方法 网站(SampleSite) 对“数据提供者”的引用 问题: 当我使用Visual studio构建时,一切都很好(我使用VS 2017社区) 尝试使用MSBuild(MSBuild/target:rebuild/p:Configuration=Release/m:4)时,我收到以下警告“.\WebSite1\u 1\u.metaproj”(rebuild

我有两个项目(.Net 4.0)

  • 类库(数据提供程序)
    • 添加对Bcl.Async库的引用(通过nuget)
    • 提供一些异步方法
  • 网站(SampleSite)
    • 对“数据提供者”的引用
问题:

  • 当我使用Visual studio构建时,一切都很好(我使用VS 2017社区)
  • 尝试使用MSBuild(MSBuild/target:rebuild/p:Configuration=Release/m:4)时,我收到以下警告“.\WebSite1\u 1\u.metaproj”(rebuild target)(2)-> ..\WebSite1_1_1.metaproj:警告MSB3268:无法解析主引用“..\WebSite1\DataProvider\bin\Debug\DataProvider.dll”,因为它间接依赖于框架程序集 “System.Runtime,Version=1.5.11.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,无法在当前目标框架中解析。“.NETFramework,版本=v4.0”。 要解决此问题,请删除引用“..\WebSite1\DataProvider\bin\Debug\DataProvider.dll”,或将应用程序重新定位到包含“System.Runtime,version=1.5.11.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的框架版本
  • 最新的DataProvider dll不会被复制到“SampleSite”的Bin文件夹中,如果我使用DataProvider中的一些新东西,我将得到错误(构建失败)
我四处搜索过,包括StackOverFlow。但我找不到任何与我的场景相关的内容。

我试过:

  • 更新app.config/web.config
  • 将BCL DLL复制到.Net 4.0引用程序集文件夹
  • 通读此()但找不到任何解决我的问题的方法
(此问题无代码)

我的期望:

  • 我可以自动使用MSBuild或其他工具来解决此问题(因为此问题是在生成服务器上自动发生的)
更新图像

  • 解决方案
  • 刚刚向DataProvider添加了新属性:
  • 在网站上正常使用:
  • MSBuild输出:
  • 数据提供者项目:

如果我右键单击“WebSite2”->Build web site,一切都会很好。但我想使用msbuild进行自动化作业

我现在可以在我的计算机中重现相同的问题(详细信息请参见#4594),因为它与有一些不同,所以我在
msbuild
中报告它,而不是在
dotnet cli
中报告问题

一个可以在命令行中工作的解决方法是使用命令

但它要求我们在构建机器中安装VS,然后我们可以使用
devenv命令,如:

使用
-Rebuild
开关可以很好地工作,就像它在VS.See中的行为一样

在我看来,如果我们在vs中构建这个特定的解决方案,它可能会比单个msbuild.exe执行更多的操作。这就是为什么它在vs中运行良好,但在msbuild命令行中运行不好

因此,如果我们需要在build server中自动构建这个特定的网站,我们可以尝试使用devenv命令。(要查看构建输出,使用
devenv.com
似乎比使用
devenv.exe
好,请参阅)


希望它能提供一些帮助,让我们跟踪4594中的问题。

这是Microsoft.Bcl.Async
包的一个已知问题,请参阅。如果您的.net 4.0项目是SDK格式的,我认为它们是相同的问题。在我的情况下,关于Bcl只有一个警告。问题只有在我使用MsBuild时,visual studio没有问题,我可以编写代码,生成,调试…等等实际上,如果您在同一解决方案中的VS中创建一个新的简单类库,并添加对DataProvider项目的引用,您甚至可以在VS中得到警告。是的,但如果“SampleSite”是一个Web应用程序,则没有关系。在我的情况下,它是一个网站,在添加对“DataProvider”的引用时,它会将DataProvider.dll复制到SampleSite”。如果我使用VisualStudio生成,DataProvider.dll将更新,“SampleSite”中使用的“DataProvider”的新代码可以。如果我使用MSBuild,它将显示警告,然后在生成“SampleSite”时显示错误(这意味着DataProvider.dll未更新)DataProvider的项目文件的格式是什么?新的sdk格式还是旧的?这个解决方法对我来说很好,我可以在我的构建机器上安装vs。感谢您在github上询问!