2013-04-09 73 views
2

最近,我通过构建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作为输出。

如果有人能帮忙,我会非常感谢。

+0

当你说'MS Visio'你的意思是'微软的Visual Studio'? – Lanorkin 2013-04-09 11:43:39

+0

尝试在msbuild命令行中使用附加的'/ t:Rebuild'开关 – Lanorkin 2013-04-09 11:45:33

+0

- 抱歉,这是一个提示错误。我的意思是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

回答

1

您可以通过从命令行调用Visual Studio 2010来构建您的项目。要在不打开Visual Studio的情况下构建,请调用“devenv.com”(命令行友好的Visual Studio可执行文件)来构建项目。有关devenv命令行使用情况的更多信息可以是found on MSDN

定制以下命令,在命令提示符下运行它来建立你的项目:

"%VS100COMNTOOLS%..\IDE\devenv.com" "full-path-to-solution" /Rebuild "desired-configuration" /Project "full-path-to-project" 
+0

我无法在”C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE“文件夹中找到此”devenv.com“。它是一个可执行文件,例如“。可执行程序”? – OISS 2013-04-10 10:17:29

+0

你也可以调用'devenv.exe',它应该在Common7 \ IDE \文件夹中。 – Michael 2013-04-10 13:40:56

相关问题