외부 파일을 사용하여 web.config 섹션을 대체하는 웹 배포 프로젝트가 있습니다. (이것은 연결 문자열 섹션을 변경하는 것입니다). web.config 섹션 교체는 수동으로 빌드 할 때 잘 작동하지만 TFS 빌드의 일부로 빌드하면 섹션이 교체되지 않습니다. 빌드 로그에서 오류나 경고를 찾을 수 없습니다.web.config 파일 섹션 대체품
가능한 원인은 무엇입니까? 또는 어떻게 이것을 디버깅 할 수 있습니까?
외부 파일을 사용하여 web.config 섹션을 대체하는 웹 배포 프로젝트가 있습니다. (이것은 연결 문자열 섹션을 변경하는 것입니다). web.config 섹션 교체는 수동으로 빌드 할 때 잘 작동하지만 TFS 빌드의 일부로 빌드하면 섹션이 교체되지 않습니다. 빌드 로그에서 오류나 경고를 찾을 수 없습니다.web.config 파일 섹션 대체품
가능한 원인은 무엇입니까? 또는 어떻게 이것을 디버깅 할 수 있습니까?
이것이 전혀 도움이되지 않을지 모르지만 .... 이것은 전체 구성 섹션을 바꾸지 않고 연결 문자열을 추가/업데이트하는 방법입니다.
public static void SaveConfigVal(string connectionString, string connName)
{
System.Configuration.ExeConfigurationFileMap fileMap = new System.Configuration.ExeConfigurationFileMap();
fileMap.ExeConfigFilename = GetConfigFileName();
//System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
// Retrieve the section group
ConnectionStringSettings keyValue = config.ConnectionStrings.ConnectionStrings[connName];
// If the key already exists, just replace
if (keyValue != null)
{
keyValue.ConnectionString = connectionString;
}
else
{
// Add a new key if the setting doesn't exist
config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(connName, connectionString));
}
config.Save(ConfigurationSaveMode.Modified);// (ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("ConnectionStrings");
}
private static string GetConfigFileName()
{
//return config file name....
}
Web.Config에서 별도의 파일에서 섹션을 가져 오는 것이 좋습니다.
<connectionStrings>
<add name="ConnString" connectionString="Data Source=<server>;Initial Catalog=<DB>;User ID=<ID>;Password=<pwd>" providerName="System.Data.SqlClient"/>
</connectionStrings>
: 그런 다음 연결 문자열을 별도의 파일로 배포 할 수 있습니다
<connectionStrings configSource="WebCS.config"/>
: 당신과 같이 외부 파일을 참조하십시오 (이 내 연결 문자열 섹션을 가진 파일을로드하는 내 코드입니다)
그런 식으로 web.config 파일을 변경하는 것에 대해 걱정할 필요가 없습니다.
Visual Studio 2010을 사용 중이거나 업그레이드 할 수있는 경우 새 web.config 변형을 사용하여 선택한 구성을 기반으로 web.config를 변경할 수 있습니다.
이것을 빌드 또는 웹 배포와 통합하는 방법은 무엇입니까? – simon831
MSI를 사용하고 있습니까? – CSharpAtl