脚本如下:
@echo off
@setlocal enableextensions @cd /d "%~dp0"
set InstallPath=C:DBoxServiceServer set UtilToolPath=C:WindowsMicrosoft.NETFrameworkv2.0.50727
echo Local installation folder - %InstallPath%
IF NOT EXIST "%InstallPath%" ( MKDIR "%InstallPath%" ECHO Folder %InstallPath% created )
IF EXIST "%InstallPath%DropboxWindowsService.exe" ( %UtilToolPath%InstallUtil.exe "%InstallPath%DropboxWindowsService.exe" /u ECHO Unregistered Service: %InstallPath%DropboxWindowsService.exe )
echo Start to copy files to service folder
copy DropboxWindowsService.exe "%InstallPath%" copy DropboxWindowsService.exe.config "%InstallPath%" copy DropboxCore.dll "%InstallPath%" copy log4net.dll "%InstallPath%"
ECHO Program files copied to %InstallPath%
%UtilToolPath%InstallUtil.exe "%InstallPath%DropboxWindowsService.exe" ECHO Registered Service (%InstallPath%DropboxWindowsService.exe)
net start DropboxWindowsService
ECHO DropBox Windows Service Installed on Server Successfully!
pause
其中出现过错误:
Uninstalling assembly 'C:DBoxServiceServerDropboxWindowsService.exe'.
Affected parameters are:
logtoconsole =
assemblypath = C:DBoxServiceServerDropboxWindowsService.exe
logfile = C:DBoxServiceServerDropboxWindowsService.InstallLog
An exception occurred while trying to find the installers in the C:DBoxServiceServerDropboxWindowsService.exe assembly.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Aborting installation for C:DBoxServiceServerDropboxWindowsService.exe.
Installing assembly 'C:DBoxServiceServerDropboxWindowsService.exe'.
出现这个错误的原因是项目中引用的DLL名称变了,而安装包里面的DLL没有跟着改变,造成了上面的错误。
如果安装时出现“生成此程序集的运行时比当前加载的运行时新”,则可能是服务成员的.net framework 版本比脚本中调用的InstallUtil.exe高
解决办法是调用更高版本的InstallUtil.exe ,例如,黄色的为版本号
C:WINDOWSMicrosoft.NetFrameworkv4.0.30319InstallUtil.exe