【问题标题】:Is there an equivalent to the "Property Manager" for C# projects (for common project settings)?是否有与 C# 项目的“属性管理器”等效的(用于常见项目设置)?
【发布时间】:2011-08-04 14:53:08
【问题描述】:

您可以在 Visual Studio 中为 managing common properties of C++ projects 使用 Property Manager 窗口,但对于 C# 项目似乎没有等效功能。

有没有办法跨多个项目设置通用设置?我想做的事情的例子:

  • 为所有具有 TEST 构建配置的项目添加 TEST 预处理器指令
  • 将所有 C# 项目的警告更改为错误
  • 一次为 N 个选定的 C# 项目添加对某些通用程序集的引用

插件、宏或扩展都是可以接受的。

【问题讨论】:

  • 没有等效项,主要是因为 C# 项目的可配置项非常少。您正在像 C++ 程序员一样思考,而不是开始使用 C# 的最佳方式。您可以通过手动编辑 .vcproj 文件来获得所需的内容,使用 <Import>
  • 我还没有开始使用 C#,唉,目前为止,我的解决方案是在 .csproj 文件上进行全局正则表达式替换。这不好玩。

标签: c# visual-studio-2010 configuration multiple-projects


【解决方案1】:

您可以为 Visual Studio 自定义 C# 项目模板,这样每次创建新项目时,它都有您想要的所有设置。

http://msdn.microsoft.com/en-us/library/6db0hwky.aspx

http://www.a2zdotnet.com/View.aspx?Id=170

【讨论】:

  • 对于新项目,这确实很有用。我正在寻找一种在现有项目中应用更改的解决方案。
  • 项目文件是 xml。如果你想清理现有文件,你可以编写一个小应用程序,将它们撕开并放入你想要的节点。
  • 嗯。这让我想到......我可以使用 VS 的 web.config 转换功能吗?一个单独的 sln,其中包含 .csproj 文件作为内容,而不是项目,并使用转换规则来更改文件。然后“真正的” sln 捡起这些......?
  • 听起来你会与很多内置的 VS 约定作斗争才能做到这一点。一个独立的控制台应用程序不会让 VS 做不自然的事情。只需告诉它在哪里寻找项目文件,把它们吸进去然后做你的脏活。
【解决方案2】:

目前最接近的等价物是在 VS 中对卸载的项目使用正则表达式,或者编写一些东西来处理支持 .csproj 文件的 msbuild xml。

【讨论】:

  • 您找到比这更好的解决方案了吗?
  • 并非如此。它出现的频率不够高。我编写了自定义工具来处理 XML。 XDocument 相当容易。
【解决方案3】:

对于 C# 项目,没有真正等效的 Property Manager。 但是,如果目标是在多个项目之间共享通用设置,您可以使用定义共享属性的 .props 文件创建 NuGet 包,并在您的 C# 项目中引用它 - VS 将在构建时自动导入它。

从 NuGet 2.x 开始支持包含 .props 和 .targets。 提示:确保 .props 文件名与 NuGet 包 ID 匹配,否则不会包含在内。 你可以看一个例子here

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多