In my MVC application I use external config files to keep clean web.config. Some files are common and I added them to project as link from one location. For those files I set Copy option to Copy always and those files are copied to destination folder and I see them. But when I try to open home page in the browser I see "Unable to open configSource file" error. When I remove links to files and just add them (no link) everything works good. Any idea what may cause this error?
- 
                    This is not supported. – SLaks Dec 09 '15 at 18:33
 - 
                    Oh, really? I read many articles where this technic was described. The only acent was on Copy option, it should be Copy always or Copy if newer. – Alexandr Zaitsev Dec 10 '15 at 08:30
 
6 Answers
Finally I found what was the issue. When use Copy always, files are copied to bin folder. But files are searched in the virtual directory not in the bin. So I added post build task which copies files to correct destination.
- 421
 - 1
 - 3
 - 9
 
- 
                    3It's worth noting that in the case of connectionStrings.config, it must be in the same folder as web.config to work correctly: https://www.asp.net/identity/overview/features-api/best-practices-for-deploying-passwords-and-other-sensitive-data-to-aspnet-and-azure – Ramón Jan 17 '17 at 16:57
 
After trying the xcopy solution, which failed, the follow worked for me:
Right click the cstrings.config, go to Properties.
Set the property Copy to Output Directory value to Copy always
- 768
 - 8
 - 20
 
- 
                    I had a issue with log4net config file and this helped me, thanks! Steps: right click log4net.config and select [Properties], lastly set [Copy to Output] file property => Always Copy – Tumelo Apr 15 '20 at 08:39
 
I added the post build event as suggested. But the exact steps are:
- Right click on the project and navigate to properties
 - Click on the Build Events tab
 - In the Post-build event command line: box I added:
 
xcopy /s "$(ProjectDir)\bin\Config" "$(ProjectDir)\Config"
- 301
 - 4
 - 12
 
I suffered from the same problem. In my case, config file's 'Build Action' property was the cause. ( Right click on the config file > Properties > Build Action )
The 'Build Action' value was set to 'None'. After I changed it to 'Content', the problem sovled. ( I am not sure if it was 'a Visual Studio's bug' or 'my click-by-mistake' that made it set to 'None'.
- 99
 - 1
 - 6
 
See https://stackoverflow.com/a/38408867/2240453 Long story short: You can add
<connectionStrings configSource="bin\Connections.config">  
</connectionStrings>
to differentiate configuration (deploy/release so debug/deploy version) You can add transformation . It's quite handy to use them anyway.
(Yes, i know the topic is solved, but maybe someone will find this information useful as I did)
- 149
 - 1
 - 10
 
