Доступ к ошибке пути в Visual Studio - PullRequest
6 голосов
/ 21 января 2011

Эта проблема была решена с помощью накопительного обновления SQL Server 2008 R2 5 / SP1 / SQL Server 2012 RTM


Иногда при попытке построить проект служб Reporting Services как частьпри развертывании или предварительном просмотре отчета в Visual Studios я получаю следующую ошибку:

Доступ к пути 'C: \ My Solution Folder \ bin \ Debug \ My Report.rdl' запрещен.

Похоже, что файл в папке \ bin \ Debug \ был изменен только для чтения.Я могу «исправить» симптом, удалив флажок «только для чтения» в затронутом файле.Я хотел бы найти способ избежать этой ошибки в целом, так как это происходит обычно несколько раз в день.

Я проверил, что файл не сохраняется в моей системе контроля версий, поэтому он не похож на мой источникПлагин управления вызвал бы эту проблему.Кажется, проблема началась с SQL Server 2008 R2, и это имеет смысл, учитывая, что я вполне уверен, что папки \ bin \ Debug \ не существовали до этой версии проекта служб Reporting Services.

Я пыталсяизменив выходной путь проекта на путь, который не находится в папке проекта, но Visual Studios не позволил бы мне сделать это.

Ответы [ 3 ]

9 голосов
/ 02 мая 2011

Это известная ошибка в Microsoft, которая была исправлена ​​CU5, а затем и в SP1.Эта проблема вообще не возникала в окончательной первоначальной версии SQL Server 2012.

https://connect.microsoft.com/SQLServer/feedback/details/543755/fiserv-tap-checking-it-rdl-source-sets-output-folder-to-read-only

Основной обходной путь - сборка один раз, сброс атрибута «Только чтение» для всех файлов в папке BIN проекта отчета.и все будет работать снова ... пока вы снова не отредактируете файл.

Я подозреваю, что это связано с тем, что файлы VSS помечены как доступные только для чтения после того, как они зарегистрированы ... VS затем копирует ресурсы (*.RDL) дословно в папку BIN, т.е. с установленным атрибутом только для чтения.

0 голосов
/ 07 ноября 2014

Следующее не является исправлением, конечно, но это обходной путь, который не улучшится, пока ваш сервер не будет обновлен. Постоянное удаление папок bin для проектов быстро устарело real , и я застрял на экземпляре сервера с проблемой, и это показалось хорошей работой для простого пакетного сценария.

Он просто рекурсивно удаляет каждую папку с именем 'bin' в каталоге вашего проекта.

BINZAP.bat

  1. Создайте новый текстовый файл в каталоге windows \ users \ YOURNAME
    • Это расположение позволяет легко получить доступ из обычной подсказки cmd, если это необходимо.
  2. Вставить в блок кода под этим списком
    • Замените многоточие на путь вашей системы
  3. Сохранить как BINZAP.bat (хорошее название очень важно)
  4. Щелкните правой кнопкой мыши на рабочем столе.
  5. Создать новый ярлык.
  6. Направьте его на пакетный скрипт.
  7. Щелкните правой кнопкой мыши ярлык и щелкните в текстовом поле «Сочетание клавиш»
  8. Нажмите Z или другую клавишу, если этот аккорд клавиши уже назначен чему-то еще.

@echo off
cd "C:\ ... \Reports"
for /d /r . %%d in (bin) do @if exist "%%d" rd /s/q "%%d"
echo.
echo All your bin are belong to us.
echo.
pause
exit

Если вы сделали это правильно, теперь вы можете просто нажимать CTRL + ALT + Z или любую другую клавишу в Visual Studio всякий раз, когда вы получаете сообщение об ошибке. Намного проще!

Наслаждайтесь!

0 голосов
/ 21 января 2011

Вы можете использовать Process Monitor , чтобы узнать, какой процесс это меняет.Все, что вам нужно сделать, это установить фильтр с полным путем к нужному файлу и следить за любыми операциями, выполняемыми над этим файлом.Также отключите все остальные мониторы, такие как реестр и сеть.Они находятся на главной панели инструментов справа.

...