Не удалось открыть файл configSource, который был добавлен как ссылка

В моем приложении MVC я использую внешние файлы конфигурации для сохранения чистого web.config. Некоторые файлы являются общими, и я добавил их в проект как ссылку из одного места. Для этих файлов я устанавливаю параметр Копировать для копирования всегда, и эти файлы копируются в папку назначения, и я вижу их. Но когда я пытаюсь открыть домашнюю страницу в браузере, я вижу ошибку "Невозможно открыть файл configSource". Когда я удаляю ссылки на файлы и просто добавляю их (без ссылки), все работает хорошо. Любая идея, что может вызвать эту ошибку?

Ответ 1

Наконец, я понял, в чем проблема. При использовании Copy всегда файлы копируются в папку bin. Но файлы ищутся в виртуальном каталоге, а не в корзине. Поэтому я добавил пост-сборку, которая копирует файлы для исправления адресата.

Ответ 2

Я добавил событие post build, как было предложено. Но точные шаги:

  • Щелкните правой кнопкой мыши по проекту и перейдите к свойствам
  • Перейдите на вкладку "События сборки"
  • В командной строке Post-build event: я добавил:

xcopy/s "$ (ProjectDir)\bin\Config" "$ (ProjectDir)\Config"

Ответ 3

Я страдал от той же проблемы. В моем случае причиной этого было свойство конфигурации Build Action. (Щелкните правой кнопкой мыши на файле конфигурации> Свойства> Действие сборки)

Значение "Build Action" было установлено на "None". После того, как я изменил его на "Содержание", проблема решилась. (Я не уверен, что это был "ошибка Visual Studio" или "мой щелчок по ошибке", что сделало его "Нет").

Ответ 4

См. fooobar.com/questions/75845/... Короче говоря: вы можете добавить

<connectionStrings configSource="bin\Connections.config">  
</connectionStrings>

чтобы различать конфигурацию (версия развертывания/выпуска так debug/deploy). Вы можете добавить transform. Это очень удобно использовать в любом случае.

(Да, я знаю, что тема решена, но, возможно, кто-то найдет эту информацию полезной, как я)

Ответ 5

После попытки решения xcopy, которое не удалось, у меня сработало следующее:

Щелкните правой кнопкой мыши cstrings.config, перейдите в Properties.

Установите для свойства Copy to Output Directory значение Copy always