【问题标题】:What scenarios are possible where the VS C# compiler would not compile a reference of a reference?VS C# 编译器不会编译引用的引用可能会出现哪些情况?
【发布时间】:2010-10-12 19:34:48
【问题描述】:

我可能问错了这个问题(这可能是谷歌没有提供帮助的原因),但这里是:

在 Visual Studio 中,我正在编译一个 C# 项目(我们称之为项目 A,即启动项目),该项目引用了项目 B。项目 B 引用了项目 C,因此在构建 A 时,dll 用于B 被放置在 A 的 bin 目录中,C 的 dll 也是如此(因为 B 需要 C,而 A 需要 B)。但是,我最近显然做了一些更改,以便在重建解决方案时,项目 C 的 dll 不会进入项目 A 的 bin 目录。我不知道我做了什么来实现这一点。

我没有修改解决方案本身的设置,我只是添加了对项目文件的附加引用。代码方面,我已经注释掉了项目 B 中引用项目 C 中的类的大部分实际代码,但没有从项目本身中删除引用(我认为这不重要)。有人告诉我,也许 C# 编译器正在以某种方式进行优化,因此它没有构建 Project C,但实际上我没有想法。我认为有人之前遇到过类似的事情

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# visual-studio build-process compilation


    【解决方案1】:

    您是否更改了构建配置?在 Visual Studio 2008 中,默认的解决方案配置是调试和发布,而默认的解决方案平台是任何 CPU。我的经验表明解决方案配置/平台对具有独特的构建配置。换句话说,Debug/Any CPURelease/Any CPU 是两个独立的构建配置,每个都有自己的设置。如果您选择了不同的配置,则原始配置的设置不会自动应用;您需要为所有配置以及添加到解决方案的任何新项目设置依赖项,以便在它们之间无缝切换。

    【讨论】:

      【解决方案2】:

      您可以在解决方案资源管理器中右键单击解决方案,并检查您的项目依赖关系。

      我的猜测是,不知何故,您已标记 B 不依赖 C。

      或者:在解决方案属性中,确保当前配置设置为构建项目 C。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-18
        • 2010-10-26
        • 2020-01-02
        • 2018-10-23
        • 2018-04-26
        • 1970-01-01
        • 2012-02-19
        • 2011-08-20
        相关资源
        最近更新 更多