2013-04-09 44 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