從Visual Studio中的一個全新的控制檯應用程序模板好吧,我編輯了.csproj
打造另一個項目是這樣的:構建不從VisualStudio的工作,但爲的MSBuild
...
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="BeforeBuild">
<MSBuild Projects=".\other.mproj"/>
</Target>
...
其中other.mproj
是:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<Target Name="Build">
<Message Text="kikou" />
</Target>
</Project>
過了一會兒,我發現了(例如,通過引入錯誤或更改文本kikou
別的東西)修改的other.mproj
內容將不被考慮,除非卸載/ R在Visual Studio中加載項目。
從命令行建立'msbuild myproj.csproj'
立即檢測'other.mproj'
中的更改。因此,所有這些看起來像是Visual Studio從other.mproj
文件的緩存版本開始工作。
爲什麼Visual Studio會緩存這個其他腳本(甚至不包括在項目中),我該如何解決這個問題?
更新:我也試過這UseHostCompilerIfAvailable,它不起作用。
NB1:我沒加other.mproj
作爲.csproj
項目引用,因爲它根本不是一個.NET項目(它只是在構建之前創建的.csproj
從其它輸入資源文件)
NB2:我使用VS2010(10.0.10219.1SP1Rel +的MSBuild 4.0.30319.1)
沒有解決方案,我知道這個問題,它已經發生在我身上,除了在Visual Studio中卸載/重新加載解決方案,似乎沒有辦法。 – 2012-02-10 12:23:21
@VirtualBlackFox:好的,thx。作爲一種解決方法,我將msbuild命令放置爲「PreBuildEvent」,而不是將其添加到「BeforeBuild」目標中。這既節省了編輯'.csproj'並解決了'.mproj'緩存問題:) – CitizenInsane 2012-02-10 14:02:53