.net – 在发布时突然没有复制引用的程序集(DLL)

在Web项目发布期间,我遇到了一个引用库(ServiceStack.Ormlite)部署的奇怪问题.它工作正常,直到上周左右,现在突然一些ServiceStack DLL在项目从Visual Studio或msbuild发布到本地文件系统,FTP或Web Deploy时没有被复制.

Ormlite引用通过nuget添加到类lib项目中.类lib项目引用被添加到主Web App项目中.当我发布Web App项目时,它编译并复制除五个ServiceStack.Ormlite DLL中的三个(即ServiceStack.Common,ServiceStack.Interfaces和ServiceStack.Text未复制)之外的所有文件.我已经检查(甚至重置)所有DLL引用的’copy Local’属性为’true’,但问题仍然存在.我还检查过Ormlite未在GAC注册.

任何提示或建议表示赞赏.

更新1:

我遇到了一些与同一问题相关的帖子(但特别是ServiceStack没有).似乎Visual Studio和msbuild [正确地]在发布期间忽略项目中的任何间接引用.

以下是我遇到的一些解决方案:

>也参考主项目中的装配体.
>使用构建脚本将DLL复制为构建后事件.
>向类lib添加一个虚拟(模拟)方法,并从发布期间未复制的程序集或命名空间中实例化任何类.我选择了这个选项,它部分地解决了这个问题.现在,ServiceStack.Common和ServiceStack.Text被复制,但ServiceStack.Interfaces仍然没有被复制,即使我已经创建了一个’ServiceStack.Logging.LogManager’的模拟实例,它是ServiceStack.Interfaces的一部分.所以,基本上我还是卡住了.

这是设计的.您必须手动将二次引用的程序集添加到项目中,并将输出设置为“始终复制”,如本文第 http://msdn.microsoft.com/en-us/library/vstudio/cc837214%28v=vs.100%29.aspx条所示

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...