visual-studio-2010 - 为添加的项目修复 EnvDTE 中的配置/平台

标签 visual-studio-2010 configuration extension-methods platform envdte

我创建了一个加载项...除此之外,它还向解决方案添加了一个 C++ 项目。

我在将 c++ 项目添加到包含 c# 或 vb.net 项目的解决方案时遇到问题(我将这些解决方案称为 dot net 解决方案)。

我相信你们都做到了——没有 envdte 自动化。

将 c++ 项目(具有支持的平台 Win32 和 x64)添加到点网解决方案。查看 Configuration Manager -> 由于 dot net 解决方案只有 x86 和 x64,x64 配置是正确的,但在 x86 配置中,您将看不到 c++ 项目的 Win32 - 您将看到 x64 而不是 !!!!!哦,是的,VS 足够聪明,知道这行不通,也不会选择此配置来构建!!!!

如果您是手动执行此操作,那么作为开发人员的您应该足够聪明地进行检查,好的。但我正在尝试构建一个自动化来添加这个项目——这意味着,用户可能没有意识到这个错误,将构建解决方案——但它会失败。

我曾尝试更改平台 - 但它是只读的。

这是我迄今为止唯一发现的东西:

SolutionConfiguration config = solution.SolutionBuild.SolutionConfigurations.Item("Debug");

string msg = "";

foreach (SolutionContext context in config.SolutionContexts)
{
  msg += context.ProjectName + context.ConfigurationName + context.PlatformName + context.ShouldBuild;
  context.ConfigurationName = "Debug";  // I can modify this but I don't want to
  if(context.PlatformName == "x64" && !context.ShouldBuild) // this must be the wrong platform
  {
    // I'd like to do that but it won't even compile
    context.PlatformName == "Win32";   // <--- intellisense says error
    context.ShouldBuild = true;        // compiles but checkbox doesn't get set
  }
}

我考虑过尝试删除整个配置行并添加一个新配置行 - 但找不到如何执行此操作...

我找到了“ConfigurationManager.DeleteConfigurationRow 方法”,但它只会删除“调试”或“发布”配置... http://msdn.microsoft.com/en-us/library/ash2539k(v=vs.100).aspx

(我认为这不是我想要的 - 我只需要删除与特定平台相关的特定配置 - 或者,由于所有平台都添加为 x64,因此标记为“ShouldBuild = False”的平台或与 x86 解决方案配置相对应的项目配置。如果我删除所有配置......那不应该工作,即使那样......我下一步该做什么?)

ConfigurationManager.AddConfigurationRow 方法”- 没有什么可以指定平台...- 所以假设我删除了该行,我该如何正确地将其添加回来?

最佳答案

目前,我正在修改 sln 文件 -

它需要关闭解决方案,编辑文本文件,然后重新打开。

这并不理想 - 如果有人能提出合适的解决方案,我将不胜感激。

关于visual-studio-2010 - 为添加的项目修复 EnvDTE 中的配置/平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029011/

相关文章:

Java 配置框架

c# - 将扩展方法组转换为具有泛型类型的委托(delegate)

c# - C# 中扩展方法和方法之间的区别

c++ - exe 上的字符串命令显示太多

apache - 如何为除 localhost 之外的所有域提供动态虚拟主机

visual-studio-2010 - Visual Studio 2010 - 带有命名空间的类图

configuration - 在yaml中设置文件路径位置

c# - 关于扩展方法的一些理解

c++ - 为什么 Visual Studio 会尝试注册我的 DLL

c++ - 如何在 VS 2010 中生成均匀分布的随机数?