【发布时间】:2012-07-11 15:08:58
【问题描述】:
我有一个包含一些 Sharepoint 功能的 utils 类库项目。该项目引用Microsoft.Sharepoint.dll(复制本地设置为false)。我们有许多其他项目引用了我们的 utils dll,每当我们构建它们时,Microsoft.Sharepoint.Sandbox.dll 都会被复制到这些应用程序的 bin 文件夹中。然后在运行任何应用程序时出现以下错误:
Could not load file or assembly 'Microsoft.Sharepoint.Sandbox' or one of its dependencies. An attempt was made to load a program with an incorrect format.
删除 dll 可解决问题。 有没有办法阻止这个 Microsoft.Sharepoint.Sandbox.dll 被复制到 bin 文件夹中? 我不想使用后期构建脚本,因为有很多项目引用了 utils 项目,我们仍然需要在部署时手动删除 dll。
我可以重现如下:
1) 创建一个新的解决方案
2) 添加一个名为utils的类库项目
3) 参考 Microsoft.Sharepoint.dll
4) Class1.cs:
namespace Utils
{
public class Class1
{
public void testMeth()
{
Microsoft.SharePoint.DefaultItemOpen c;
}
}
}
5) 向解决方案添加一个新的 Web 项目 (WebApplication1)
6) 引用 Utils 项目并尝试运行 WebApplication1
编辑: Microsoft.Sharepoint.Sandbox 是 64 位 dll,但我需要针对任何 CPU。
有没有办法告诉 VS 停止跨越隐式引用?
【问题讨论】:
-
其他人可以复制这个吗?
-
当您添加 Microsoft.Sharepoint.dll 时,它可能会隐含对沙盒的引用。尝试添加对沙盒的显式引用,然后对其执行 Copy Local=False。如何添加参考:sladescross.wordpress.com/2009/10/06/… ----- 这个链接也可能有点帮助:blah.winsmarts.com/…
-
@colinsmith 感谢您的评论和链接。我很确定它确实有对沙盒 dll 的隐式引用,这导致了这种不便。我需要一种方法来告诉 VS 不要太聪明,并且不要复制隐式引用。
-
@colinsmith 我曾尝试将其显式添加,并将本地复制设置为 false,但之前没有运气。我会在早上重试并告诉你
-
@colinsmith 在 utils 项目中显式添加 ref 并将 copy local 设置为 false 不起作用
标签: asp.net sharepoint build project post-build-event