我是MSBuild的初学者。我有一个项目(A)依赖于另一个项目(B),它从NuGet服务器或本地工作区(我为此目的使用NuGetReferenceSwitcher)消耗它。 不久,这是我的要求:
以下是我的本地文件的位置:
\工作空间\了projectA \ projectA.sln
\工作空间\项目B \ projectB.csproj
我尝试的解决方案如下:
<?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>
projectB.csproj
包含以下内容:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\some_package" Condition="Exists('packages\some_package)" />
projectB.nuspec
包含:
<file src="build\**" target="build\net462" />
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')" />
以下是我的问题:
谢谢,
答案 0 :(得分:1)
使用nuget时,为什么此代码无法从发行版切换到调试?
很简单,NuGet没有“Debug”或“Release”的概念。
但是,有一种方法可以create debug symbols for NuGet packages,然后configure Visual Studio to step through the code已安装的软件包。