我有一个Winforms应用程序,我想使用ClickOnce进行发布。此应用程序附带一个初始数据库,该数据库必须在每台计算机上安装一次。经过不少的努力,我已经着手使用自定义先决条件来安装.sdf文件。我使用了Bootstrapper Manifest Generator(BMG)为我想运行的.cmd文件创建一个包,并且将.sdf文件作为“附加文件”。以数据库为前提的ClickOnce部署
我的期望是这两个文件最终会在同一个目录下,我将能够将.sdf文件复制到我想要的地方(它们最终会在同一个目录中).pre在Visual Studio中出现的必备条件很好。它可以很好地部署到客户端系统,安装程序可以很好地启动前提条件。
唯一的问题是,.cmd文件正在执行的当前工作目录是C:\ Documents and Settings \\ Desktop!
这两个文件(.cmd或.sdf)都没有位于那里 - 它们在别处下载,例如“C:\ Documents and Settings \ drogers \ Local Settings \ Temp \ VSD5A.tmp”。所以,虽然我知道在哪里xcopy,但我不知道从哪里进行xcopy。
我该如何解决这个问题?
这里是.cmd文件:
REM Modify this file to reflect your manufacturer name [FHCRC] and product name [ClickOnceSharedDataDemo].
SET TargetBase=%ALLUSERSPROFILE%
IF NOT "%TargetBase%"=="C:\ProgramData" SET TargetBase=%ALLUSERSPROFILE%\Application Data
REM We only want to do this copy for the first user!
if exist "%TargetBase%\FHCRC\ClickOnceSharedDataDemo\shareddata.sdf" GOTO EXIT
if not exist "%TargetBase%\FHCRC" mkdir "%TargetBase%\FHCRC"
if not exist "%TargetBase%\FHCRC\ClickOnceSharedDataDemo" mkdir "%TargetBase%\FHCRC\ClickOnceSharedDataDemo"
CACLS "%TargetBase%\FHCRC\ClickOnceSharedDataDemo" /E /T /C /G "Users":C
xcopy shareddata.sdf "%TargetBase%\FHCRC\ClickOnceSharedDataDemo\"
if not exist "%TargetBase%\FHCRC\ClickOnceSharedDataDemo\shareddata.sdf" PAUSE
if not exist "%TargetBase%\FHCRC\ClickOnceSharedDataDemo\shareddata.sdf" exit /B -1
:EXIT
PAUSE
exit /B 0
谢谢, 大卫
它似乎没有问题 – 2011-01-22 00:07:06