我通常使用MSBuild构建我的解决方案,以保持Visual Studio的响应并节省一些时间。现在,我在命令行运行的非常简单:
MSBuild.exe /m "C:\MyProject\MyProject.sln"
到目前为止,这已经很好了。但是,今天我在一个类库项目中添加了一个类,它的DLL通过我的应用程序中的反射加载,我无法创建新类的对象。我在调试器中查看了我加载的DLL中包含的类型,并且我的新类型不存在。我用Reflector获得了相同的结果。
当我最终回到IDE时,右键单击该项目,然后选择“Rebuild”,我的新类型显示在Reflector中。
我可以在MSBuild中设置一些设置或命令行标志,以确保每次都能捕获新的更改吗?
答案 0 :(得分:3)
这可能听起来像个愚蠢的问题,但你确定新的类文件已经保存了吗?重建通常会自动保存所有文件,而MSBuild则不会。
答案 1 :(得分:1)
我发现历史上MS IDE并不总是在你要求时保存项目和解决方案文件......这可能会对问题产生影响,但可能没有。
然而,也许它就像这样简单:尝试添加/ t:rebuild
MSBuild.exe / m“C:\ MyProject \ MyProject.sln”/ t:rebuild
答案 2 :(得分:1)
原来是一个未保存的文件问题。它实际上不是新的类文件;该文件已保存。在IDE中添加新类文件后,未保存的是 .csproj 文件。如果我单击“全部保存”或突出显示该项目并单击“保存”,MSBuild就可以正常工作。
答案 3 :(得分:0)
尝试在msbuild命令行调用中指定“ReBuild”。
msbuild / t:Rebuild / p:Configuration = Debug
品尝季节。