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