2014-06-05 68 views
1

我正在通过外部工具编辑Visual Studio中的开放式解决方案(其'.Sln-file)。我的程序将各种数据添加到.Sln-file。发生此编辑时,解决方案或VS-IDE似乎无法完成这些更改。以编程方式在Visual Studio中重新加载解决方案

我正在做的是:以编程方式添加配置。假设你在你的项目中的以下数据:

{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug|Any CPU.Build.0 = Debug|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Release|Any CPU.ActiveCfg = Release|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Release|Any CPU.Build.0 = Release|Any CPU 

我的程序会将其配置一个新的配置,其改变的方式,项目解决方案的调试/构建两行。

{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug|Any CPU.Build.0 = Debug|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug-CA|Any CPU.ActiveCfg = Debug-CA|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Debug-CA|Any CPU.Build.0 = Debug-CA|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Release|Any CPU.ActiveCfg = Release|Any CPU 
{EB8A3A65-3612-4E3C-967E-3432851D20F4}.Release|Any CPU.Build.0 = Release|Any CPU 

编辑发生时,.Sln-file确实发生了变化。然而,我无法用这个相同的外部工具重新加载整个解决方案。

如果手动关闭解决方案并重新打开,我的添加配置将被Visual Studio拾取。

有没有什么办法来以编程方式重新加载解决方案,并获得可用的配置?

编辑:如果解决方案在Source Control下,则会检测到更改。我认为这与.Sln-file被检出有关?

+0

你正在做一个.Sln文件编辑,如在一个正常的文件编辑? – Jsinh

+0

是的,定期的'File.WriteAllLines'。当您手动重新启动解决方案时,所做的更改会得到提示,因此写入不会出错。 – Matthijs

回答

0

我认为这与焦点变化有关。因为如果我在Notepad2中更改.sln文件并将其保存,则在VS切换焦点之前,VS没有任何反应。那是对话框出现的时间。

尝试以编程方式将焦点切换到Explorer Explorer,然后再返回。

+0

我实际上切换到我的记事本++来查看是否出现更改,以便获得焦点。当我回到VS时,我的配置仍然无法检测到。 – Matthijs

相关问题