2008-12-15 21 views
3

我通常使用MSBuild构建我的解决方案,以保持Visual Studio的响应并节省一点时间。现在,我在命令行运行的是非常简单的:使用MSBuild的新版本不包括新类

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

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

当我最终回到IDE,右键单击该项目,并选择“重建”,我的新类型出现在反射器。

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

回答

3

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

+0

在这种情况下,也可能是项目文件未保存。 – 2008-12-18 23:43:30

1

我发现历史上MS IDE并不总是保存项目和解决方案文件,当你问它......这可能对问题有一定的影响,但也许没有。

然而,也许它只是作为这样简单:

尝试增加/吨:重建

MSBuild.exe /米 “C:\ MyProject的\ MyProject.sln”/吨:重建

0

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

的msbuild /吨:重建/ P:配置=调试

季节的味道。

1

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