【发布时间】:2010-05-25 15:57:56
【问题描述】:
我们使用构建后事件将我们的生产构建复制到一个单独的文件夹中,并将app.config 文件替换为我们的生产 app.config。但是 Clickonce 会读取 bin\Release 文件夹中的文件。
我还尝试在构建后事件中将所有文件从我们的自定义构建位置复制到 bin\Release 文件夹,但 app.config 仍然被覆盖(我猜 clickonce 将项目重新构建到 bin\Release 中)。
是否可以告诉 Clickonce 从我们的自定义文件夹中读取?或者,如果这不是正确的方法,您如何处理这种情况?
编辑:附加信息
构建后事件脚本:
del /s /q /f "$(SolutionDir)Build\Client"
rmdir /s /q "$(SolutionDir)Build\Client"
if $(ConfigurationName) == Debug goto :debug
if $(ConfigurationName) == Release goto :release
:release
xcopy "$(TargetDir)*.dll" "$(SolutionDir)Build\Client\Prod\" /Y /I /R
xcopy "$(TargetDir)*MyApp.UI.Win.exe" "$(SolutionDir)Build\Client\Prod\" /Y /I /R
copy "$(TargetDir)Configs\App.Production.config" "$(SolutionDir)Build\Client\Prod\$(TargetFileName).config" /Y
REM for clickonce
copy "$(TargetDir)Configs\App.Production.config" "$(TargetDir)$(TargetFileName).config" /Y
copy "$(TargetDir)Configs\App.Production.config" "$(TargetDir)PostBuildEventWasHere.config" /Y
del /s /q /f "$(TargetDir)\*.pdb"
goto :exit
:debug
xcopy "$(TargetDir)*.dll" "$(SolutionDir)Build\Client\Dev\" /Y /I /R
xcopy "$(TargetDir)*MyApp.UI.Win.exe" "$(SolutionDir)Build\Client\Dev\" /Y /I /R
copy "$(TargetDir)Configs\App.Development.config" "$(SolutionDir)Build\Client\Dev\$(TargetFileName).config" /Y
goto :exit
:exit
还有我的发布输出:
------ Build started: Project: MyApp.UI.Win, Configuration: Release Any CPU ------
(...builds all projects)
Compile complete -- 0 errors, 4 warnings
(...echoing the build event script here, and successful copy/delete messages)
Building MyApp.UI.Win...
(It must be rebuilding here!)
------ Publish started: Project: MyApp.UI.Win, Configuration: Release Any CPU ------
Connecting to '\\MyPublishLocation'...
Publishing files...
Publish success.
\\MyPublishLocation\publish.htm
========== Build: 8 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
【问题讨论】: