2015-08-18 53 views
1

我目前在Visual Studio Online(VSO)中設置了項目,並且在設置自動化構建時遇到了麻煩。 我的解決方案包含以通用Windows爲目標的項目 VSO使用msbuild來運行我的項目。在線視覺工作室的通用應用程序

在生成過程中我看到這樣奇怪的錯誤信息:

Error CS0518: Predefined type 'System.Void' is not defined or imported 
    Error CS0518: Predefined type 'System.Object' is not defined or imported 
    Error CS0246: The type or namespace name 'Uri' could not be found (are you missing a using directive or an assembly reference?) 

的MSBuild調用具有以下參數:

C:\Program Files (x86)\MSBuild\14.0\bin\amd64\msbuild.exe "C:\a\b0d9e3fd\test\src\Shipping.sln" /nologo /m /nr:false /fl /flp:"logfile=C:\a\b0d9e3fd\test\src\Shipping.sln.log" /dl:CentralLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"*ForwardingLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:Platform=Win32 /p:TargetVersion=」Windows10」 /p:TargetPlatformVersion=」10.0.10010.0」 /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="14.0" 

這有什麼錯呢?是否還有其他額外的參數需要使用msbuild構建通用Windows應用程序?

回答

1

您是否針對Windows 10 SDK?如果是這樣,請注意,它是安裝在TFS託管構建服務器上的而不是。因此,您將無法構建使用Windows 10 SDK的應用程序。你可以看到the complete list of installed software here

0

剛剛找到解決方案。

如果從VS構建UWP應用程序,它會自動解決NuGet依賴關係。默認情況下,VS 10項目使用第三版的NuGet,它沒有安裝在我們的構建機器上。這就是爲什麼我們有這樣的問題。 在將NuGet 3安裝到構建代理上並配置可在構建之前解析NuGet包的腳本時,問題得到解決。

0

如果您無法自定義構建代理的軟件(又名:免費託管代理),則另一種解決方法是隻檢查project.lock.json文件。

這是因爲NuGet v2.8.7可以讀取project.jsonproject.lock.json文件,但它不能從project.json文件生成project.lock.json文件。

而且,如果微軟在這個時候更新NuGet的默認構建代理,您可以將其從源代碼管理中刪除,並讓它作爲Nuget -restore的一部分自動生成。在此之前,請檢查它。

+0

FWIW,我偶然發現了這個問題,因爲我正在創建一個Visual Studio 2015便攜式庫,並選擇了Windows 10作爲目標。 –