我目前正在尝试构建一个针对 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。命令文件可以在这里找到:
"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
打开命令提示符或终端:
导航到所需目录:
cd
命令将当前目录更改为要创建类库的位置。
cd path\to\desired\directory
创建一个新的类库项目:
dotnet new classlib
命令创建一个新的类库项目。
dotnet new classlib -n YourLibraryName
将“YourLibraryName”替换为您的类库所需的名称。
导航到项目目录:
cd YourLibraryName
在文本编辑器或 IDE 中打开(可选):
code .
将代码添加到类库:
构建类库:
dotnet build
命令构建类库。
dotnet build
这将编译您的代码并创建必要的输出文件。
找到编译输出:
bin
目录中找到。