在我的web和worker角色中,我引用了核心框架DLL的替代版本。该文件标记为Copy Local
。 Visual Studio在项目引用中显示正确的版本。编译项目时,bin
目录也包含正确的版本。Azure包中包含不正确的DLL
但是,当我要求Visual Studio创建一个Azure包时,该包(以及包装期间创建的csx
文件夹)仅包含用于Worker角色的错误(原始)DLL。 Web角色具有正确的DLL。如果我手动使用cspack
,则不会发生这种情况,但这不是一个真正想要打包的方法。
什么会导致Visual Studio使用正确的引用DLL进行编译,但绑定了错误的引用?
附加信息: 当我运行msbuild
做包装,而不是Visual Studio中,我看到了下面两行:
Copying file from "C:\Users\bytenik\Dropbox\Treadmarks\lib\EntityFramework\System.Data.Entity.dll" to "C:\Users\bytenik\Dropbox\Treadmarks\src\Azure\obj\Debug\Worker\System.Data.Entity.dll".
Copying file from "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.Entity.dll" to "C:\Users\bytenik\Dropbox\Treadmarks\src\Azure\obj\Debug\Worker\System.Data.Entity.dll".
因此,它似乎复制我的参考,然后在它复制与系统参考。
注意:我很清楚替换.NET CLR DLL的整个概念是一个巨大的破解。当.NET 4.5出来支持我需要的功能时,这一切都将被剥离。同时,我需要能够继续发展。
这是对问题“Azure References Incorrect DLL”的替换,它实际上是不正确的,并导致有效的答案,但没有解决我的问题。
以供将来参考它会更好重新写了原来的问题。谢谢。 – Kev 2012-02-14 15:51:22
@Kev我想过,但所有的答案都没有意义。 – 2012-02-14 15:53:43