从命令行生成 Windows 通用 C# 类库
本文关键字:通用 类库 Windows 命令行 | 更新日期: 2023-09-27 18:35:21
我目前正在尝试构建一个面向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",是名称为 ApplicationModel
、Devices
、Security
和 Networking
的命名空间的缺失。此命名空间名称是 Windows RT C# API 的一部分,在执行此命令期间看起来不存在。
正如我所说,看起来我们没有指定实现编译所需的所有参数,或者我们做得不好。使用命令行构建面向通用应用的 VS C# 项目类库的正确方法是什么?
我假设我使用的是旧版本的MSBuild.exe。为了使它工作,我必须安装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