我有一个使用亚音速的项目,该项目是我在 Visual Studio 2008 中开发的,位于 C: 驱动器上。那里没问题。
我刚刚升级到 Visual Studio 2010(由于我的计算机碰巧死机了,我现在运行的是使用 VirtualBox 虚拟化的 Windows XP)。
该项目在 C: 驱动器上运行,没有任何投诉,但如果我从 G:(指向基本 PC 上的分区的映射驱动器)运行它,我无法运行 subsonic 使用的自定义工具(下面列出的错误),或者运行Web应用程序(“启动而不调试”给我:无法开始监视“G:\GPNNT\GpnntApp\GpnntApp”的更改)。
这是一个 .net 3.5 解决方案。
这似乎是一个有据可查且简单的问题。
我已采取以下行动:
(1) 批处理文件
c:
cd "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
caspol -all -reset
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive"
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive 1"
c:
cd "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"
caspol -all -reset
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive"
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive"
pause
(我尝试了无数种不同的网址格式,但都无济于事)
(2) .Net 2.0 配置实用程序(控制面板 > 管理工具)
使用分析工具,在上面的批处理文件中进行的两项设置似乎都适用于驱动器上的文件。
我还尝试将 Intranet 组设置为 FullTrust(我不想这样做!)。没有不同。
(3)从远程源加载
可以合理地假设,虽然项目本身仅使用 .NET 2,但 VS2010 本身可能在内部使用 .NET 4。经过更多谷歌搜索后(例如here),我补充说
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
到两个 .net 版本的 machine.config 文件。
(4)升级到VS2010 SP1
这些都没有产生任何影响。
在我的血压达到危险的高水平之前,有人能解释一下吗?我想我可以回到在 C: 上运行所有内容,但在这个虚拟化时代,这似乎有点荒谬。我真的希望数据位于与虚拟机不同的位置。
I note thisSO post也有同样的问题,并归咎于测试项目,这并不是非常令人满意。我也没有测试项目,尽管我想 SubSonic dll 中可能埋藏着测试引用。
最后一刻补充:我还注意到 SQL Server 2005/8 不会与 G: 对话(例如,从那里恢复备份),并假设任何解决方案也将允许这种情况发生。这将是另一个值得拥有的东西。