6

此问题已通过 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 项目之前不存在。

我尝试将项目 OutputPath 更改为不在项目文件夹下的路径,但 Visual Studios 不允许我这样做。

4

3 回答 3

9

这是 Microsoft 的一个已知错误,已在 CU5 和后来的 SP1 中更正。在 SQL Server 2012 RTM 中根本没有出现该问题。

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 文件夹,即设置只读属性。

于 2011-05-02T06:34:24.297 回答
0

您可以使用进程监视器来找出哪个进程改变了它。您需要做的就是设置一个包含感兴趣文件的完整路径的过滤器,并注意对该文件执行的任何操作。还要关闭所有其他监视器,例如注册表和网络。它们位于右侧的主工具栏上。

于 2011-01-21T16:45:39.660 回答
0

persay,以下不是修复程序,但它是一种解决方法,在您的服务器更新之前不会变得更好。不断删除项目的 bin 文件夹很快就过时了我被困在一个有问题的服务器实例上,对于一个简单的批处理脚本来说,这似乎是一项不错的工作。

它只是递归地删除项目目录中名为“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

如果您已正确完成此操作,您现在只需在收到错误时从 Visual Studio 中按 CTRL+ALT+Z 或您选择的任何键。容易多了!

享受!

于 2014-11-07T20:36:22.583 回答