C# 具有dll引用的.NET核心生成
我正试图让.NETCore在我的工作中与构建系统一起工作,构建系统是用Java设计的。但不幸的是,它已经融入到我们的管道中,我们不可能没有它。因此,如果我想在工作中使用.NET,它必须与这个构建系统一起使用 每个项目都构建在一个包中,并有自己的git存储库 给定一个如下所示的程序,其中C# 具有dll引用的.NET核心生成,c#,.net,asp.net-core,asp.net-core-2.0,C#,.net,Asp.net Core,Asp.net Core 2.0,我正试图让.NETCore在我的工作中与构建系统一起工作,构建系统是用Java设计的。但不幸的是,它已经融入到我们的管道中,我们不可能没有它。因此,如果我想在工作中使用.NET,它必须与这个构建系统一起使用 每个项目都构建在一个包中,并有自己的git存储库 给定一个如下所示的程序,其中MyConsoleApp依赖于MyLibrary MyProgram-Solution - MyConsoleApp - MyLibrary 在构建时,源代码将放在 /build/packages/MyCon
MyConsoleApp
依赖于MyLibrary
MyProgram-Solution
- MyConsoleApp
- MyLibrary
在构建时,源代码将放在
/build/packages/MyConsoleApp/
/build/packages/MyLibrary/
然而,我一次只能构建一个,并且我不能移动源代码。
这意味着我需要首先构建MyLibrary
,而DLL最终将在
/build/packages/MyLibrary/out/MyLibrary.1.0.dll
当我构建MyConsoleApp时,我需要一种方法来告诉.NET核心构建工具,MyLibrary.1.0.dll
文件可以在
/build/packages/MyLibrary/out/MyLibrary.1.0.dll
在Nuget中存储包不是一个选项,因为包在构建时可能还没有准备好发布,并且构建系统在沙箱模式下工作,这意味着它没有外部连接
如果可能的话,我可以编辑MyConsoleApp.csproj。您可以使用Visual Studio添加程序集引用,与.NET Framework项目相同 如果要手动修改项目文件,则需要以下内容:
<ItemGroup>
<Reference Include="MyLibrary">
<HintPath>..\..\..\MyLibrary\out\MyLibrary.1.0.dll</HintPath>
</Reference>
</ItemGroup>
..\..\..\MyLibrary\out\MyLibrary.1.0.dll
无需外部连接即可使用NuGetMyLibrary
可以构建一个包,然后MyConsoleApp可以使用NuGet.config
文件在构建系统上添加一个文件夹作为NuGet包源,即直接从/build/packages/MyLibrary/out/
中提取NuGet包。