代码之家  ›  专栏  ›  技术社区  ›  Brian Sullivan

使用MSBuild进行的新建不包括新类

  •  3
  • Brian Sullivan  · 技术社区  · 17 年前

    我通常使用MSBuild构建我的解决方案,以保持Visual Studio的响应速度并节省一些时间。现在,我在命令行运行的内容非常简单:

    MSBuild.exe /m "C:\MyProject\MyProject.sln"
    

    到目前为止,这一切都很顺利。然而,今天我向一个类库项目添加了一个类,该类库项目的DLL是通过我的应用程序中的反射加载的,我无法创建新类的对象。我在调试器中查看了加载的DLL中包含的类型,但我的新类型不存在。我用Reflector得到了同样的结果。

    当我最终回到IDE时,右键单击项目并选择“重建”,我的新类型显示在Reflector中。

    我是否可以在MSBuild中设置一些设置或命令行标志,以确保每次都能捕获新的更改?

    4 回复  |  直到 17 年前
        1
  •  3
  •   hmcclungiii    17 年前

    这听起来可能是个愚蠢的问题,但你确定新的类文件已经保存了吗?重建通常会自动保存所有文件,而MSBuild则不会。

        2
  •  1
  •   Tim    17 年前

    我发现,从历史上看,当你要求MS IDE保存项目和解决方案文件时,它并不总是这样……这可能与问题有关,但也许不是。

    然而,也许就这么简单:

    尝试添加/t:重建

    MSBuild.exe/m“C:\MyProject\MyProject.sln”/t:重建

        3
  •  1
  •   Brian Sullivan    17 年前

    结果发现这是一个未保存的文件问题。这实际上不是新的类文件;该文件已保存。这是 .csproj 在IDE中添加新类文件后未保存的文件。如果我单击“全部保存”或突出显示项目并单击“保存”,MSBuild就会正常工作。

        4
  •  0
  •   Rob Hunter    17 年前

    尝试在msbuild命令行调用中指定“ReBuild”。

    msbuild/t:重建/p:配置=调试

    根据口味调味。