最近,我通过构建dll来解决msbuild.exe的问题。我的想法是从DOS命令行调用msbuild来自动创建DLL,而无需打开MS Visual Studio。命令行(为例)我现在用的就是:msbuild.exe在文件更改后不会传递新的输出
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\example.sln /p:Configuration=example_config
问题是,即使我改变了文件,在这个项目中(微软的Visual Studio之外),似乎msbuild.exe不能识别出这个变化,然后根据旧文件输出旧的dll。
另外我试图删除预先输出的DLL,但仍然是相同的结果。 DOS下的命令行提供了旧的dll。
如果我打开Visual Studio并手动构建输出,则问题不会发生。
我在网上查了一下,但找不到一个可行的解决方案。有人提到它可能是MS的问题。其实,我在Windows XP下也没有遇到这个问题。
我使用
- 列表项
- 窗口7 64位版本
- MS的Visual C++ 2010
- 该溶液包含多个子项目,其中分别提供libary作为输出。
如果有人能帮忙,我会非常感谢。
当你说'MS Visio'你的意思是'微软的Visual Studio'? – Lanorkin 2013-04-09 11:43:39
尝试在msbuild命令行中使用附加的'/ t:Rebuild'开关 – Lanorkin 2013-04-09 11:45:33
- 抱歉,这是一个提示错误。我的意思是MS Visual Studio,而不是绘图程序Visio。 - 我添加了这个开关,它可以工作,但如果我让整个解决方案重新编译,它会花费太多时间。我也试过:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe C:\ example.sln/p:Configuration/t:MySubProject:Rebuild。仍然会重新编译整个解决方案。可能因为“MySubProject”是我的“输出”项目。 – OISS 2013-04-09 12:22:39