2013-09-16 85 views
1

我有內部的兩個默認項目的解決方案(VisualBasic中控制檯應用程序)溶液內的目標:建築使用的MSBuild

Solution1\ 
      Solution1.sln 
      ConsoleApplication1\ConsoleApplication1.vbproj 
      ConsoleApplication2\ConsoleApplication2.vbproj 

我添加了一個自定義的目標ConsoleApplication1:

... 
    <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> 

    <Target Name="HelloWorld"> 
    <Message Text="Hello Build!"></Message> 
    </Target> 
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
    ... 
</Project> 

我想要設置一個腳本來執行兩個項目的正常構建,然後調用我的自定義目標。

據:http://msdn.microsoft.com/en-us/library/ms171486.aspx,我應該能夠調用使用以下命令的特定目標(現在忽略了項目的初步建立):

msbuild C:\Path\To\Solution1\Solution1.sln /t:ConsoleApplication1:HelloWorld 

相反,我收到以下錯誤信息:

錯誤MSB4057:目標「ConsoleApplication1:HelloWorld」在項目中不存在。 [E:\ Path \ To \ Solution1 \ Solution1.sln]

我認爲我的語法不正確,正確的語法是什麼來實現這個目標?

以下命令按預期工作:

msbuild C:\Path\To\Solution1\Solution1.sln 
msbuild C:\Path\To\Solution1\ConsoleApplication1\ConsoleApplication1.vbproj /t:HelloWorld 

回答

0

你有沒有考慮只是添加自定義目標行爲的AfterBuild目標所需的MSBuild PROJ文件?這是一種不同的方法,但不需要明確調用自定義目標,仍然是項目文件特定的。

+0

這絕對是一個有效的解決方法,如果我無法找到發佈的代碼片段無法正常工作的適時原因,我會採用(或將.sln.metaproj重寫爲.proj)。 – user1112560