在发布时更改 Visual Studio 中的连接字符串
本文关键字:连接 字符串 Studio Visual 布时更 | 更新日期: 2023-09-27 18:35:16
我有一个 asp.net 应用程序。我设置了两个数据库,一个测试和生产。在推送任何更新之前,请立即编写,我手动更改我的 conn 字符串以指向生产环境。当我发布应用程序时,有没有办法做到这一点,自动更改为生产环境?感谢您的任何帮助。
你可以为此使用 web.config 转换。
是的web.config转换,或者我认为更好的方法是将您的配置与web/app.config分开,因此例如为每个构建配置提供一个文件夹
Config/Debug/connectionStrings.config
Config/Stage/connectionStrings.config
Config/Production/connectionStrings.config
然后你的应用程序或web.config看起来像
<connectionStrings configSource="bin'connectionStrings.config" />
要将特定于环境的配置获取到您的 bin 目录,请创建一个构建后事件,该事件根据当前构建配置复制配置或手动将它们复制到您的 bin 中。这样,您就不必中继构建即可获得所需的配置。
如果您真的想要这种自动化,您的构建后事件可能看起来像
"$(SolutionDir)CopyConfigs.bat" "$(ProjectDir)" "$(ConfigurationName)" "$(OutDir).."
和批处理文件,以便可以在项目之间重复使用复制:
@echo CopyConfigs.bat :
@echo Coping Config Files...
set projectDir=%1
set configurationName=%2
set outDir=%3
REM Trim Quotes
for /f "useback tokens=*" %%a in ('%1') do set projectDir=%%~a
for /f "useback tokens=*" %%a in ('%2') do set configurationName=%%~a
for /f "useback tokens=*" %%a in ('%3') do set str3=%%~a
@echo Project Directory: %1
@echo ConfigurationName: %2
@echo OutDir: %3
if not exist %1 goto ProjectDirectoryNotFound
REM Copy the configuration files to the projects output directory
xcopy /Y "%projectDir%Configuration'%configurationName%'*.config" "%outDir%"
xcopy /Y "%projectDir%Configuration'*.config" "%outDir%"
@goto END
:ProjectDirectoryNotFound
@echo Project Directory %projectDir% was not found.
@goto END
:END
@echo Coping Config Done