【问题标题】:Build Windows Universal C# class library from command line从命令行构建 Windows 通用 C# 类库
【发布时间】:2016-02-19 17:24:56
【问题描述】:

我目前正在尝试构建面向 Windows Phone 8.1、Windows 应用 8.1 和 Windows 10 通用应用的 Microsoft 运行时组件 C# 类库。为了完成这个介绍,我的环境运行 Windows 8.1,我使用 Visual Studio 2015 作为 IDE。

为了使流程自动化,在我的团队中,我们需要通过命令行编译该库,以便在其他地方使用生成的 .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# 项目类库的正确方法是什么

【问题讨论】:

    标签: c# windows-phone-8.1 visual-studio-2015 win-universal-app winmd


    【解决方案1】:

    我假设我使用的是旧版本的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2018-12-28
      相关资源
      最近更新 更多