Rya*_*yes 10 c# dll sharepoint visual-studio-2010 c#-4.0
我正在研究SharePoint的实用程序.这是一个适用于SharePoint 2007和2010的应用程序.当我引用SharePoint.dll的12.0.0.0版本时,该应用程序适用于SharePoint 2007,但不适用于2010.如果我引用版本14.0.0.0 dll,然后该应用程序适用于2010年,但不适用于2007年.
通过使用以下代码查看文件系统,在路径(SharePoint 2007)或14(SharePoint 2010)中检查12,我可以轻松地告诉我需要使用哪个.dll.
System.IO.File.Exists(
Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) +
@"\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll"));
Run Code Online (Sandbox Code Playgroud)
在开发时,我在Visual Studio中进行引用,因此它可以在2007或2010中构建.我希望能够在两个版本的SharePoint 上发布适用的应用程序.因此,我需要一些方法来加载/使用任何.dll对运行应用程序的用户有意义.
如何在运行时动态选择和加载.dll?
Rya*_*yan 14
反射?依赖注入?你为自己的生活变得艰难!
编译Microsoft.SharePoint.dll v12,它将在2007年工作.
部署到2010年,它将"正常工作"(几乎在所有情况下),因为SharePoint 2010已经具有绑定重定向设置,因此对v12的任何引用都将重定向到v14.
您不需要做任何配置.
你需要变得比这更复杂的唯一情况是
某些东西可以在2007年而不是在2010年运行的实例(我无法想到任何事情).
您可能希望利用2010年的特定功能.
如果是这种情况那么我个人会做的是双重编译.修改.csproj文件以生成2个略有不同的版本,在必要时使用参数和条件编译(就像使用#if DEBUG一样)用于特定于产品的代码版本(这些版本中的代码很少).您也可以在.csproj中的引用中使用这些条件,例如
<Reference Include="Microsoft.SharePoint">
<HintPath Condition="'$(SP2010)'!='true'">PathToV12\Microsoft.SharePoint.dll</HintPath>
<HintPath Condition="'$(SP2010)'=='true'">PathToV14\Microsoft.SharePoint.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)
缺点
好处
归档时间: |
|
查看次数: |
6509 次 |
最近记录: |