繁体   English   中英

从另一个项目调用的nuget项目的MSBuild目标

[英]MSBuild targets for nuget project called from another project

我是MSBuild的初学者。 我有一个依赖于另一个项目(B)的项目(A),并且它从本地工作区的NuGet服务器或从NuGet服务器中使用它(为此我使用NuGetReferenceSwitcher)。 很快,这是我的要求:

  1. 从NuGet服务器使用时,项目B必须同时支持Debug和Release版本。 这样,如果我们在Visual Studio中切换到“调试”,则当从A调用项目B时,我们也可以对其进行调试。现在,NuGet还提供了Release版本。
  2. 切换到本地工作区时,它仍应正确构建。

这是我的本地文件的位置:

\\工作空间\\了projectA \\ projectA.sln

\\工作空间\\项目B \\ projectB.csproj

我尝试的解决方案如下:

  1. 在projectB内部,我创建了一个目标文件(位于build \\ projectB.targets中),其内容如下:

 <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Condition="'$(Configuration)' == 'Debug'"> <Reference Include="lib1"> <HintPath>"$(MSBuildProjectDirectory)\\bin\\$platform$\\Debug\\lib1.dll"</HintPath> </Reference> </ItemGroup> <ItemGroup Condition="'$(Configuration)' == 'Release'"> <Reference Include="lib1"> <HintPath>"$(MSBuildProjectDirectory)\\bin\\$platform$\\Release\\lib1.dll"</HintPath> </Reference> </ItemGroup> </Project> 

  1. projectB.csproj包含以下内容:

 <Import Project="$(MSBuildToolsPath)\\Microsoft.CSharp.targets" /> <Import Project="packages\\some_package" Condition="Exists('packages\\some_package)" /> 

  1. projectB.nuspec包含:

 <file src="build\\**" target="build\\net462" /> 

  1. projectA.csproj (取决于projectB)包含:

 <Import Project="$(MSBuildToolsPath)\\Microsoft.CSharp.targets" /> <Import Project="..\\packages\\projectB.*\\build\\projectB.targets" Condition="Exists('..\\packages\\projectB.*\\build\\projectB.targets')" /> <Import Project="..\\..\\..\\..\\projectB\\projectB.csproj" Condition="!Exists('..\\packages\\projectB.*\\build\\projectB.targets')" /> 

这是我的问题:

  1. 使用此配置,当将本地工作空间用于projectB时,由于在projectA中找不到“ some_package”的相对路径,所以projectA的编译失败(正如您在第4点中看到的,它也使用projectB的相对路径)。 我还能如何从projectA引用projectB,这样它就不会编译失败?
  2. 为什么在使用nuget时此代码无法从发行版切换到调试?

谢谢,

为什么在使用nuget时此代码无法从发行版切换到调试?

很简单,NuGet没有“调试”或“发布”的概念。

但是,有一种方法可以为NuGet程序包创建调试符号 ,然后配置Visual Studio以逐步浏览已安装程序包的代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM