She*_*hea 13 dll visual-studio-2015
我有3个C#项目A,B和C.A和B都引用C.对A和B的C的引用设置为"Copy Local",暗示在C之后构建到C.dll(在C的输出目录中) C),它被复制到A或B的输出目录(无论哪个编译)
我有2个解决方案,SA和SB.SA包含A和C,SB包含B和C.我启动了Visual Studio 2015的2个实例.我在一个实例中打开SA,在另一个实例中打开SB.
我发现如果我从SA开始调试(F5)A,然后(当A仍在调试时),从SB更改C并尝试编译SB,我收到一个编译错误,说明C.dll不能被覆盖,因为它正在被另一个进程(运行SA的devenv.exe实例)使用.
这对我没有意义,因为在将C编译为C.dll并复制到A的输出目录之后,Visual Studio应该释放对该文件的锁定.
我已经验证(通过SA中的Modules窗口)已加载的C.dll版本是已复制到A的输出目录的版本.
这开始于我昨天开始使用Visual Studio 2015(而不是Visual Studio 2013)时.
有没有人有任何想法?我目前的解决方案是通过CTRL-F5运行SA(无需调试即可启动),但是当我想同时在调试模式下运行SA和SB时,这会变得很烦人.
谢谢.
UPDATE
我做了一些研究,为什么"编辑并继续"功能可能会导致所描述的行为,并根据此页面https://msdn.microsoft.com/en-us/library/ms164926.aspx >编辑并继续允许一个在调试会话中进行源代码修改,并使结果生效,而不必停止调试,重新编译和重新启动调试会话(这是一个多么严重的问题).启用该功能后,Visual Studio可能需要随时重新编译任何相关DLL,以解释锁定.
Mat*_*mok 20
我有同样的问题.我更改了我的VS2015设置,似乎问题消失了:
不确定是谁导致锁定,但我怀疑我在VS2013中没有的诊断工具.(我从德语翻译成英语的设置名称,不知道它是否与英语VS版本中的名称完全相同.)
编辑: 正如Shea所研究的那样,编辑并继续功能锁定了DLL.
| 归档时间: |
|
| 查看次数: |
8373 次 |
| 最近记录: |