具有MSBuild的新生成不包括新类

具有MSBuild的新生成不包括新类,msbuild,Msbuild,我通常使用MSBuild构建解决方案,以保持VisualStudio的响应性并节省一些时间。现在,我在命令行中运行的操作非常简单: MSBuild.exe /m "C:\MyProject\MyProject.sln" 到目前为止,这一切都很顺利。然而,今天我在类库项目中添加了一个类,它的DLL是通过应用程序中的反射加载的,我无法创建新类的对象。我在调试器中查看了加载的DLL中包含的类型,但我的新类型不存在。我用反射器得到了同样的结果 当我最终回到IDE,右键点击项目,选择“重建”时,我的新类

我通常使用MSBuild构建解决方案,以保持VisualStudio的响应性并节省一些时间。现在,我在命令行中运行的操作非常简单:

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

当我最终回到IDE,右键点击项目,选择“重建”时,我的新类型出现在Reflector中


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

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

然而,也许就这么简单:

尝试添加/t:rebuild

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

尝试在MSBuild命令行调用中指定“rebuild”

msbuild/t:Rebuild/p:Configuration=Debug


品尝季节。

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

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

在这种情况下,也可能是项目文件未保存。从Visual Studio编译时,某些文件会在编辑器中打开,对于c#和VB,这些文件是从编辑器缓冲区而不是磁盘文件编译的。(在某些非常罕见的情况下,这些文件可能与磁盘版本不同步)