我有一个使用我在Visual Studio 2008中在C:驱动器上开发的亚音速项目。没问题。 我刚刚升级到Visual Studio 2010(因为我的计算机巧合地死了,我现在正在运行使用VirtualBox虚拟化的Windows XP)。
该项目在C:驱动器上没有投诉,但是如果我从G:(一个指向基本PC上的分区的映射驱动器)运行它,我无法运行自定义工具亚音速使用(错误列在下面),或运行Web应用程序('start without debugging'给我:无法开始监视对'G:\ GPNNT \ GpnntApp \ GpnntApp'的更改)。
这是一个.net 3.5解决方案。
这似乎是一个记录良好且直截了当的问题。 我采取了以下行动:
(1)BATCH FILE
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)loadFromRemoteSources
可以合理地假设虽然项目本身只使用.NET 2,但VS2010本身可能在内部使用.NET 4。经过一些谷歌搜索(例如here)后,我添加了
<runtime> <loadFromRemoteSources enabled="true"/> </runtime>
到两个.net版本的machine.config文件。
(4)升级到VS2010 SP1
这些都没有产生任何不同。 在我的血压达到危险的高水平之前,任何人都可以对此有所了解吗?我想我可以回到C:上运行一切,但在这个虚拟化时代看起来有点荒谬。我真的希望数据位于VM的不同位置。
我注意到this SO帖子有同样的问题,并指责测试项目,这不是非常令人满意。我也没有测试项目,尽管在我认为的某个地方可能存在埋在SubSonic dlls中的测试参考。
最后一分钟补充:我还注意到SQL Server 2005/8不会与G对话:(例如从那里恢复备份),并假设任何解决方案也允许这种情况发生。那将是另一个伟大的。
答案 0 :(得分:3)
对于后代,以下是我调查的一些结果。
VS 2010中的映射驱动器:
所以,毫不奇怪,我认为将VS项目存储在映射驱动器上真的太痛苦了。源控制和本地项目是可行的方法。坦率地说,网络驱动器上没有撤消操作对于开发人员来说也是一件痛苦的事情。
BUT
最初的问题并不是我需要一个网络驱动器,因为我不想将项目存储在我的VM的C:中(即我希望能够从VM单独备份数据)基于驱动图像)。
一直盯着我的答案就是创建第二个虚拟磁盘并将其作为G:附加到VM。这是一个本地驱动器,所以我没有得到所有的信任问题,但我得到了完整的数据分离。我将该驱动器上的所有数据保存在Dropbox文件夹中,同时为我提供完整的实时异地备份,这让我感到高兴。
答案 1 :(得分:0)
也许我错了(我没看错)但我认为在处理映射驱动器时需要使用强名称。喜欢
caspol -m -q -ag My_Machine_Zone -url g:\* Nothing -n "GDrive"
caspol -m -q -ag "GDrive" -strong -file "<pathToFile>" "<assemblyStrongName>" "<assemblyVersion>" FullTrust -n "GDriveFileX" -d "Code Group for fileX"
我总是会创建一个顶级组,以便您以后轻松修改或删除该策略。我认为不允许基于uri e ven对映射驱动器给予完全信任是有道理的,尽管这很痛苦。
如果可能的话,可以使用更现代的东西。