为了使我的引用根据我的配置进行更新,我通过添加属性并更改所有引用以使其使用来对.csproj文件进行了调整,如下所示:
<PropertyGroup>
<ReferencePath Condition=" '$(Configuration)' == 'Release'">foo\release\1.0.0.9\bin\</ReferencePath>
<ReferencePath Condition=" '$(Configuration)' == 'Debug'">bar\debug\</ReferencePath>
</PropertyGroup>
<Reference Include="BasicControls, Version=5.0.53.0, Culture=neutral, PublicKeyToken=25ad4b03c913ffff, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(ReferencePath)\BasicControls.dll</HintPath>
</Reference>
出了点问题,阻止了更改的传播。我对.csproj文件所做的任何更改都不会更改引用的路径-不管我做什么,右键单击引用并在属性中查看其路径都显示与开始编辑该文件之前显示的路径相同的路径。
.csproj中的所有引用均使用该$(ReferencePath)
设置,而我的ReferencePath均未使用原始路径。
我想念什么?是我使用物业的方式吗?
正如我在评论中提到的那样,我认为stijn提供了很多有关如何调试.csproj文件问题的良好信息。他的一些基本知识帮助我解决了问题。由于stijn尚未在评论中发布所有信息作为我接受的答案,因此,我对其进行了汇总,并使其成为社区Wiki。
使我步入正轨的最简单方法是在.csproj的编辑之间退出VS。我一直在关闭解决方案并重新打开它,但是不知何故有不同的结果。因此,如果您担心更改无法传播,请始终退出VS。
我已经看到.suo文件导致一些奇怪的缓存问题,我的文件不再引用的路径仍然出现。为了尽可能保持干净,退出VS后,请删除.suo。这只是一个首选项缓存;删除它不会使您失去任何东西。
如果要调试变量,可以将以下代码放在.csproj中:
<Target Name="ShowRefPath" BeforeTargets="Build"> <Message Text="$(MyRefPath)"/> </Target>
MyRefPath
您感兴趣的变量在哪里?如果将输出日志过滤器设置为“普通”或更高版本,它将在构建时显示在输出日志中。
其中,对我来说最有用的技巧是设置输出日志的详细程度并退出VS,而不是关闭解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句