我创建了一个VS2017解决方案,其中包含一个针对.NETStandard 1.4的示例库
对此我添加了一个类:
using System;
namespace ExampleNetstandard
{
public class Example
{
public string A { get; set; }
}
}
从视觉工作室它编译得很好,但如果你清除bin& obj目录然后使用以下命令从msbuild构建:msbuild ExampleNetstandard.sln / t:Build / p:Configuration = Release / p:Platform ="任何CPU"
我收到以下错误:
C:\用户\亚伦\应用程序数据\本地\ Temp.NETStandard,版本= v1.4.AssemblyAttributes.cs(4,20): 错误CS0400:类型或名称空间名称'系统'无法找到 在全局命名空间中(您是否缺少程序集引用?) [D:\ src \ Example Netstandard \ ExampleNetstandard.csproj] OBJ \发布\ netstandard1.4 \ ExampleNetstandard.AssemblyInfo.cs(6,12): 错误CS0246:类型或命名空间名称'系统'无法找到 (您是否缺少using指令或程序集引用?) [D:\ src \ ExampleNetstandard \ ExampleNets tandard.csproj]
为了让这种项目从msbuild构建,我需要做些什么吗?我正在研究这个问题,因为我们的TeamCity服务器在实际项目中抛出了这个错误
答案 0 :(得分:6)
如果你吹掉你的垃圾箱和obj目录,你需要再次恢复你的包裹。当您运行dotnet restore
时,您需要在obj目录中发出一些编译所需的文件。你也应该坚持使用dotnet cli进行dotnet核心项目。由于dotnet cli附带适当版本的msbuild for core。
您可以通过运行dotnet restore
来恢复您的软件包,然后运行dotnet build -c Release
来编译您的应用。无论何时清理obj目录,都必须运行dotnet restore