我正在通过外部工具在Visual Studio中编辑开放解决方案(其' .Sln-file
)。我的程序将各种数据添加到.Sln-file
中。当这种编辑发生时,解决方案或VS-IDE似乎不会接收到更改。
我正在做的是:以编程方式添加配置。假设您的项目中有以下数据:
{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拾取。
是否有任何方法以编程方式重新加载解决方案并由此获得可用的配置?
Edit:如果解决方案在Source Control
下,则会检测到更改。我想这与.Sln-file
被检查出来有关?
我认为这与焦点变化有关。因为如果我在Notepad2中更改。sln文件并保存它,在我将焦点切换到它之前,VS不会发生任何变化。这时对话框就出现了。
尝试以编程方式将焦点切换到资源管理器,然后再切换回来。