我正在尝试在TFS上构建一个API,该API在dotnet.core3.1中包含多个项目 当我在TFS上运行dotnet build Api.sln命令时,结果就是
TFS 2017
Dotnet Core 3.1项目
TFS git上的源代码管理
代理无法连接到外部(互联网)
依赖项导入是从私有服务器完成的,这要归功于NuGet.Config文件的建立,该文件用于重定向依赖项导入不在https://api.nuget.org/v3/index.json服务器上,而在我们私有公司的服务器上也是如此。
在TFS git源管理器上,PMTApi.sln项目包含7个.csproj文件
但是在PMTApi.sln文件中,仅包含4个.csproj
良好的dotnet构建可以完成5个成功的项目。
不好。
我的印象是TFS基于TFS git源管理器中的所有.csproj文件,而不是PMTApi.sln中的文件 结束语PMTApi.sln中未引用的项目仍尝试还原导致最高错误的依赖项。
我试图像这样在我的NuGet.Config文件中排除这3个.csproj项目,但是它不起作用
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="XXX NuGet Packages" value="http://privateServer/nuget" />
</packageSources>
<ItemGroup>
<ProjectReference Exclude="..\folderName1\projectName1.csproj" />
<ProjectReference Exclude="..\folderName2\projectName2.csproj" />
<ProjectReference Exclude="..\folderName3\projectName3.csproj" />
</ItemGroup>
</configuration>
您对成功完成dotnet构建任务有什么想法吗?
1-在这里,您必须右键单击解决方案
2-为解决方案管理软件包Nuget
3-添加您的私有服务器的网址
4-并取消选中api.NuGet.org的服务器
对于我来说,我也取消选中Visual Studio软件包
答案 0 :(得分:0)
您应该在csproj
参数中指定要使用的Project(s)
文件,而不是sln
文件中。检查此参数的描述:
要使用的csproj文件的路径。您可以使用通配符(例如 ** / *。csproj(用于所有子文件夹中的所有.csproj文件)。该字段遵循glob模式,并且完全针对存储库的根目录运行 时间与工作目录无关。