我嘗試構建引用解決方案中的某些項目的.csproj
。這些參考文件標有CopyLocal=False
。這是所需的行爲。MSBuild在指定絕對路徑時複製相關性,並在相對時忽略
我使用MSBuild構建CI,所以我通過/p:OutputPath="some output dir"
設置輸出文件夾。我還設置了/p:SolutionDir="path to the solution"
正確解析一些NuGet引用。
問題是:當我指定輸出路徑與輸出目錄的絕對路徑(如d:\solution\build\buildgroupsubfolder
),然後MSBuild將每個依賴項複製到輸出目錄,我不知道它爲什麼這樣做。如果我使用相對路徑指定輸出路徑(如..\..\..\..\..\build\buildgroupsubfolder
),則MSBuild將正確處理CopyLocal=false
,並且不會將引用複製到輸出目錄。
我們在我們的解決方案中嵌套了一些嵌套項目,項目分組,所以我們希望它們被構建到子文件夾中。我希望能夠指定相對於基本構建路徑的構建路徑,而不是項目本身的路徑。
爲什麼MSBuild在指定絕對路徑時忽略CopyLocal = false,並在指定相對路徑時正確處理它?
哇!鬼祟的錯誤!你有沒有發佈這在連接? –
不,我沒有。我不認爲他們會認爲這是固定的。這並不重要。我們已經看到了多年來存在的更嚴重的錯誤。所以我不認爲這個人甚至值得張貼到連接:) –
只需在我們的CI構建中打這一個。很煩人,浪費了數小時...... –