Visual Studio中保持添加属性我的csproj。 为什么?(Visual Studio

2019-06-26 03:43发布

我使用Visual Studio 2012 RC与我的C#解决方案正常工作。 我所有的具体配置的设置都存储在一个文件.props,然后由我所有的.csproj文件包括范围内。

然而VS坚持把这一权利前面包括:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
   <IntermediateOutputPath>C:\Users\xyz\AppData\Local\Temp\vs855E.tmp\Debug\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
   <IntermediateOutputPath>C:\Users\xyz\AppData\Local\Temp\vs855E.tmp\Release\</IntermediateOutputPath>
</PropertyGroup>

<Import Project="$(MSBuildProjectDirectory)\..\Common.props" />

这是为什么?

仅供参考,我的共同文件看起来像这样: http://pastebin.com/Uued1XY0

Answer 1:

当的MSBuild被赋予一个坏的路径那些IntermediateOutputPath的可插入。

在我们的例子中,我们不得不对输出文件夹SolutionDir后额外不必要的斜线。

什么是不为我们工作(注意额外的斜杠):

<OutputPath>$(SolutionDir)\out\bin\</OutputPath>
<IntermediateOutputPath>$(SolutionDir)\out\obj\</IntermediateOutputPath>

什么做的工作:

<OutputPath>$(SolutionDir)out\bin</OutputPath>
<IntermediateOutputPath>$(SolutionDir)out\obj</IntermediateOutputPath>

要帮助解决您的特定情况下,尝试打开诊断MSBuild的输出,并在工具 - >选项 - >项目和记录解决方案 - >构建和运行 - > MSBuild项目生成输出的详细程度。 然后,搜索生成的文件夹(如“温度”)。

使用普通的凸出/道具/目标文件是一个好主意,但它确实需要战斗的Visual Studio一点。



Answer 2:

所以,你可以覆盖这些设置,如果需要的话。 如果您的导入来之前,Visual Studio中的属性将优先。 在MSBuild的,最后的定义胜被使用。 这是一件好事。 难道是造成错误? 或者你只是不喜欢吗?



Answer 3:

你已经在你的项目中指定的。 属性文件将有BaseIntermediateOutputPath。 如果不指定任何值,它会从你的基地进行的。

完整的中间输出路径从BaseIntermediateOutputPath如衍生,如果没有指定路径。 例如,\ OBJ \调试。 如果此属性将被覆盖,然后设置BaseIntermediateOutputPath没有任何影响。

请参阅: http://msdn.microsoft.com/en-us/library/bb629394.aspx



文章来源: Visual Studio keeps adding property to my csproj. Why?