【发布时间】:2018-12-11 08:33:14
【问题描述】:
我有一个项目 Project.Api,它引用了另一个项目 Project.DomainModel。当我通过运行构建 API 项目以进行发布时
dotnet restore && dotnet build -c Release
它构建成功。但是,当我尝试发布时
dotnet publish -c Release -o published --no-restore --no-build ./Project.Api
我收到此错误:
/usr/local/share/dotnet/sdk/2.1.302/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets(168,5): error MSB3030: Could not copy the file "xxxx/Project.DomainModels/bin/Debug/netcoreapp2.1/Project.DomainModels.dll" because it was not found. [xxxx/Project.Api/Project.Api.csproj]
根据报错,它是在Debug目录下寻找引用的项目,但是当然不会在那里找到,因为它会在Release目录下。
Project.Api.csproj 文件如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Project.DomainModels\Project.DomainModels.csproj" />
</ItemGroup>
</Project>
知道为什么它在 Debug 目录而不是 Release 中查找吗? 在 Mac 和 linux 机器上都可以使用它。
【问题讨论】:
-
项目属性中的构建部分怎么样?您实际上有什么?您为发布模式指定了哪个输出位置?
-
两个项目的发布路径都是`bin\Release\netcoreapp2.1`。我可以确认这也是人工制品的实际去处。
-
或者你的一个引用(一个.dll)可能是从调试目录添加的?
-
我也这么认为,但这是唯一的参考
而 DOmainModels 没有 -
移除
--no-build标志
标签: c# asp.net-core dotnet-publish