繁体   English   中英

.NET程序集未复制到bin文件夹

[英].NET assemblies not being copied to bin folder

我已经为这个问题努力了两个星期。 我的所有DLL都被正确引用,并设置为Copy Local,并且我可以将应用程序从本地计算机很好地构建到构建计算机中。 我的本地框和构建框都安装了Azure SDK 2.9,但是在临时环境中运行应用程序后,

“无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Common,版本= 5.0.505.0,文化=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。”

我在登台计算机上启用了融合日志,这是输出:

=== Pre-bind state information ===

日志:DisplayName = Microsoft.Practices.EnterpriseLibrary.Common,版本= 5.0.505.0,文化=中性,PublicKeyToken = 31bf3856ad364e35(完全指定)日志:Appbase = file:/// F:/ sitesroot / 3 /日志:初始PrivatePath = F:\\ sitesroot \\ 3 \\ bin

调用程序集:(未知)。

日志:此绑定在默认的加载上下文中启动。 日志:使用应用程序配置文件:F:\\ sitesroot \\ 3 \\ web.config日志:使用主机配置文件:D:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\ aspnet.config日志:使用D中的计算机配置文件:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\ config \\ machine.config。 日志:政策后参考:Microsoft.Practices.EnterpriseLibrary.Common,版本= 5.0.505.0,文化=中性,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// D:/Windows/Microsoft.NET/Framework64 /v4.0.30319/临时ASP.NET文件/ public_ [我的DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary.Common.DLL。 日志:尝试下载新的URL文件:/// D:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / public_ [my DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary.Common /Microsoft.Practices.EnterpriseLibrary.Common.DLL。 日志:尝试下载新的URL文件:/// F:/sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common.DLL。 日志:尝试下载新的URL文件:/// F:/sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common/Microsoft.Practices.EnterpriseLibrary.Common.DLL。 日志:尝试下载新的URL文件:/// D:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / public_ [my DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary.Common 。可执行程序。 日志:尝试下载新的URL文件:/// D:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / public_ [my DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary.Common /Microsoft.Practices.EnterpriseLibrary.Common.EXE。 日志:尝试下载新的URL文件:/// F:/sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common.EXE。 日志:尝试下载新的URL文件:/// F:/sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common/Microsoft.Practices.EnterpriseLibrary.Common.EXE。

当我转到D:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET时,DLL不存在,因此显然在此DLL的“错误”位置中查找。

我正在使用VS2013。有人有什么想法吗?

编辑:当我从本地构建时,可以在将一些DLL重新复制回该文件夹之前确认bin文件夹已清除。 奇怪的是,成功复制到那里的DLL在我的代码或配置文件中的任何地方都不再被引用。 我也有一个后生成脚本,但我确认那里也没有引用这些旧的DLL。

第二编辑:

我在其中一个暂存实例上找到了Enterprise Library DLL,但该目录不在错误所指的目录中。 我们有一个Web项目引用了另一个项目,该项目实际上是Azure云服务。 因此,似乎该服务的文件夹正在“ ASP.NET临时文件”文件夹下创建,但它为空。

DLL在这里:

D:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\临时ASP.NET文件\\ root \\ 59a01799 \\ 5b6b1a2 \\ assembly \\ dl3 \\ 11d624d2 \\ 4e820e1f_4413d201

我假设“ root”是Web应用程序。 错误正在此文件夹中查找:

D:/Windows/Microsoft.NET/Framework64/v4.0.30319/ASP.NET临时文件/ [我的服务类库] / 060e4c2a / e3b3457e /

适用于Microsoft.Practices.EnterpriseLibrary.Common.DLL。 对于Web项目和所引用的服务类库,我们都有一个“ packages”文件夹,它们都包含所有必需的DLL。 因此,我认为服务类库中可能有一个设置仍指向根Web应用程序项目文件夹以查找DLL,我只是不知道那是什么。

因此,问题在于,在Web项目中引用的服务库的预构建脚本中,这位前开发人员编写了一个文件复制程序,以手动将某些DLL复制到bin文件夹中。 我将这些DLL添加到了构建定义和viola下的脚本中,它起作用了。

感谢大家的回应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM