使用 WSP Builder 轻松安装 SharePoint 解决方案






4.67/5 (4投票s)
本文介绍了如何设置和构建基本的 wsp 解决方案文件,
引言
本文将介绍如何使用 WSPBuilder 和几个安装脚本安装基本的 SharePoint wsp 解决方案。
背景
安装 SharePoint 功能可能存在一些挑战,但通过几个关键步骤,你就可以顺利开始。
免责声明 - 希望这有帮助,如果没有,请不要来烦我,你花钱买的东西就是这样的,而且你这是免费的。如果对你有用,请给我投 5 分!
入门
安装功能或其他代码到你的站点的第一步是确定要安装到的站点。通常,SharePoint 允许你在不同的端口上创建任意数量的站点。一旦你知道要将解决方案部署到哪个站点,就可以使用 WSPBuilder 构建你的解决方案。以下是在 Visual Studio 中包含一些自定义页面的功能的典型项目结构

注意,功能部署中的主要内容文件位于 TEMPLATE 目录下。这允许 WSPBuilder 构建一个 .wsp 解决方案文件,该文件在部署后会知道将所有内容放在哪里。虽然构建你的功能项目是另一篇文章的内容,但从图像中可以看出,内容有几个部分。这些部分只有在它们位于 TEMPLATE 目录下的正确位置时才重要。构建以 WSPBuilder 为中心的项目有多种方法,这只是其中一种。
完成开发后,要构建你的项目,你必须安装 WSPBuilder 的 Visual Studio 插件(位于此处)。要创建你的解决方案文件,你需要右键单击你的项目,选择 WSPBuilder,然后选择菜单项“Build WSP”。这将构建一个 SharePoint 解决方案文件,并将其放置在你的项目根目录中。

构建解决方案文件后,你需要运行某种安装脚本才能将其安装到 SharePoint。以下是我创建的一个方便的脚本。要使用它,你只需要更改变量即可
WSPNAME
- 这是使用 WSPBuilder 编译的解决方案文件的名称。SERVERSITEURL
- 这是你的 SharePoint 服务器名称、端口和站点集合名称(如果适用)的组合,你希望将解决方案部署到该位置。FEATUREGUID
- 这来自你的 feature.xml 文件,它是功能 ID。
@echo off
CLS
SETLOCAL
SET StartDateTime=%DATE% at %TIME%
@SET STSADM="c:\program files\common files\microsoft shared\
web server extensions\12\bin\stsadm"
@SET WSPNAME="[Your Solution File Name].wsp"
@SET SERVERSITEURL=[your server name: your port name]/sites/[Your Site Collection Name]
@SET FEATUREGUID="[your guid]"
ECHO --------------------------------------------
ECHO ^| %WSPNAME% deployment process ^|
ECHO ^| Started on %StartDateTime% ^|
ECHO --------------------------------------------
TITLE Deploying %WSPNAME% solution...
Echo Add the solution to Solution gallery....
%STSADM% -o addsolution -filename %WSPNAME%
IF %ERRORLEVEL% NEQ 0 GOTO ERR
Echo Deploying the solution across farm....
%STSADM% -o deploysolution -name %WSPNAME% -immediate
-allowGacDeployment -url http://%SERVERSITEURL%/
IF %ERRORLEVEL% NEQ 0 GOTO ERR
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
:iisreset /noforce
Echo Activating feature....
%STSADM% -o activatefeature -id %FEATUREGUID% -url http://%SERVERSITEURL%/ -force
GOTO END
:ERR
TITLE Error!
Echo Error! Deployment has not been completed.
:END
ECHO -
ECHO - Done!
TITLE Done!
SET EndDateTime=%DATE% at %TIME%
ECHO --------------------------------------------
ECHO ^| %WSPNAME% deployment process ^|
ECHO ^| Started on %StartDateTime% ^|
ECHO ^| Ended on %EndDateTime% ^|
ECHO --------------------------------------------
popd
ENDLOCAL
pause
FEATUREGUID
变量取自 feature.xml 文件的 id 属性
<Feature
Id="8682CCBC-C49B-4957-ADAA-708E40C06121"
Title="SampleFeature"
Description="This is your feature description,
notice the scope is 'Site' since this example deploys on the site collection"
Scope="Site"
Hidden="false"
ImageUrl="SampleFeature\icon_contactlist.gif"
ReceiverAssembly="SampleFeatureProject, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=e30e9c1baed5c190"
ReceiverClass="SampleFeatureProject.FeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
更改脚本中的变量后,你可以运行此脚本,并查看中央管理/操作/解决方案管理页面,以查看是否发生错误或解决方案是否已正确部署。

如果你想卸载解决方案,这里也有一个脚本
@echo off
CLS
SETLOCAL
SET StartDateTime=%DATE% at %TIME%
@SET STSADM="c:\program files\common files\microsoft shared\
web server extensions\12\bin\stsadm"
@SET WSPNAME="[Your Solution File Name].wsp"
@SET SERVERSITEURL=[your server name: your port name]/sites/[Your Site Collection Name]
@SET FEATUREGUID="[your guid]"
ECHO --------------------------------------------
ECHO ^| %WSPNAME% uninstalling process ^|
ECHO ^| Started on %StartDateTime% ^|
ECHO --------------------------------------------
TITLE Uninstalling %WSPNAME% solution...
Echo Deactivating feature....
%STSADM% -o deactivatefeature -id %FEATUREGUID% -url http://%SERVERSITEURL%/ -force
Echo Retracting the solution from Web farm....
%STSADM% -o retractsolution -name %WSPNAME% -immediate -url http://%SERVERSITEURL%/
IF %ERRORLEVEL% NEQ 0 GOTO ERR
echo Wait for %WSPNAME% to be retracted....
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
NETSH Diag Ping Loopback
Echo Deleting the solution from solution gallery....
%STSADM% -o deletesolution -name %WSPNAME% -override
IF %ERRORLEVEL% NEQ 0 GOTO ERR
:iisreset /noforce
GOTO END
:ERR
TITLE Error!
Echo Error! Uninstalling has not been completed.
:END
ECHO -
ECHO - Done!
TITLE Done!
SET EndDateTime=%DATE% at %TIME%
ECHO --------------------------------------------
ECHO ^| %WSPNAME% uninstalling process ^|
ECHO ^| Started on %StartDateTime% ^|
ECHO ^| Ended on %EndDateTime% ^|
ECHO --------------------------------------------
popd
ENDLOCAL
pause
关注点
很简单,对吧?注意 NETSH Diag Ping Loopback 语句,这允许脚本暂停,以便 SharePoint 可以执行其操作……如果卸载失败或在任何时候未完成,只需重新运行它,直到完全卸载该功能。希望这有帮助,如果没有,请不要来烦我,你花钱买的东西就是这样的,而且你这是免费的。