【发布时间】:2011-04-30 04:04:52
【问题描述】:
我大部分时间都在使用相同的代码库为 WPF 和 Silverlight 开发控件。为此,我将一个项目(比如 Silverlight)中的现有文件“作为链接”添加到另一个项目(比如 WPF)。对于细微的差异,我使用预处理器指令,如
#if SILVERLIGHT
...
#else
...
#endif
根据您打开文件的项目类型,这些块中的代码会显示为灰色。因此,如果您从 Silverlight 项目(其中定义了 SILVERLIGHT)打开文件,else 部分是灰色的,并且 Intellisense 无法在其中工作。
为了让 IDE 处理 WPF 部分(具有着色和 Intellisense 支持),您需要从 WPF 项目中打开文件。当您尝试这样做时,您会收到一个消息框,提示 “此文档已由另一个项目打开”,当您单击“确定”时,它会在 Silverlight 项目的上下文中显示该文件(不是我想要的查看)。所以我必须关闭文件,再次导航到 WPF 项目并再次打开文件。这非常非常烦人。
所以问题是这样的:是否有某种设置或附加组件可以使 Visual Studio 从我双击它的项目中重新打开文件,而不是显示那个愚蠢的消息框并向我显示该文件“错误”的项目?
【问题讨论】:
-
目前除了关闭文件外,没有解决这个问题的办法。此外,这也是 VS2010 中 dll 锁定“无法构建...”异常的原因。
-
我想知道加载项在理论上是否可以处理这个问题:在用户尝试打开文件之前得到通知,查看是否已经从另一个项目打开了同一个文件,关闭该文件,然后重新打开从当前项目。如果有这样的 API,听起来是可行的。
-
伙计,那真是太好了。不得不一直关闭和打开文件很烦人。
-
不是一个完美的解决方案,但您可以拥有 1 个 silverlight 解决方案和 1 个 WPF 解决方案并运行 VS 两次。
标签: wpf visual-studio silverlight