1

我目前正在嘗試構建一個針對Windows Phone 8.1,Windows應用8.1和Windows 10通用應用的Microsoft運行時組件C#類庫。爲了完成這個介紹,我的環境運行Windows 8.1,並將Visual Studio 2015用作IDE。從命令行構建Windows通用C#類庫

爲了使流程自動化,在我的團隊中,我們需要通過命令行編譯該庫,以便在其他位置使用生成的.winmd文件。雖然解決方案和項目與IDE完美編譯,但我們無法通過Windows命令行編譯我們的項目。經過一番調查後,我們發現了一個可能的命令,但我們得到的錯誤告訴我們我們缺少一些參數。命令行是下一個:

C:\solutionDir>"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" project\project.csproj 

結算項目,並執行此命令後,我們得到了一堆這樣的錯誤:

"C:\solutionDir\project\project.csproj" (default target) (1) -> 
(CoreCompile target) -> 
    Class1.cs(2,15): error CS0234: The type or namespace name 'System' 
    does not exist in the namespace 'Windows' (are you missing an assembly 
    reference?) [C:\solutionDir\project\project.csproj] 

其他錯誤,但來自同所有的未來缺少名稱空間「Windows」,名稱空間名稱爲ApplicationModelDevicesSecurityNetworking。此命名空間名稱是Windows RT C#API的一部分,看起來在執行此命令期間它不存在。

正如我所說,看起來我們沒有指定實現編譯所需的所有參數,或者我們沒有正確地做好它。 什麼是正確的方式來建立一個VS C#項目類庫的目標通用應用程序與命令行

回答

0

我假設我使用的是舊版本的MSBuild.exe。爲了使它工作,我不得不安裝standalone version of the MSBuild。該命令文件可以在這裏找到:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj 

您可以指定配置(調試|版本)的說法:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj /property:Configuration=Release 

甚至更​​好:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj /t:rebuild /property:Configuration=Release