我的解决方案中有很多项目。
我想让每个人都有一个设置被覆盖。我可以去编辑它们。但这对于跟随我的开发人员来说是乏味且容易出错的。
所以,我希望有一种方法可以在构建实际开始之前将自定义 .proj 文件合并到 .csproj 中。
我要更改的设置是输出设置(用于调试配置)。我想将其设置为 $(SolutionDir)\bin\Debug。
我是个一厢情愿的人?或者有没有办法做到这一点?
我的解决方案中有很多项目。
我想让每个人都有一个设置被覆盖。我可以去编辑它们。但这对于跟随我的开发人员来说是乏味且容易出错的。
所以,我希望有一种方法可以在构建实际开始之前将自定义 .proj 文件合并到 .csproj 中。
我要更改的设置是输出设置(用于调试配置)。我想将其设置为 $(SolutionDir)\bin\Debug。
我是个一厢情愿的人?或者有没有办法做到这一点?
您可以创建一个自定义 .targets 文件,该文件设置您希望所有项目通用的属性。
在您的自定义 .targets 文件中,设置属性:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<OutputPath>$(SolutionDir)\bin\Debug</OutputPath>
</PropertyGroup>
您仍然必须在每个 .csproj 文件中包含此目标文件,并删除先前设置的 OutputPath 属性(否则,它将覆盖 .targets 文件中的设置)。
<Import Project="<PathToYourTargetsFile>"/>
虽然这仍然涉及编辑每个 .csproj 文件,但它比直接在每个文件中设置该属性更易于维护,特别是如果您认为将来可能有更多设置希望每个项目都有共同点。在任何添加的项目中,开发人员都必须记住导入该 .targets 文件。
从 msbuild 命令行设置输出参数:
/p:OutputPath="$(SolutionDir)\bin\Debug"
OutputPath - 指定输出目录的路径,相对于项目目录,例如“bin\Debug”。
另一种选择是在 csproj 文件中放置一个配置覆盖。像下面这样。不确定这是否是您想要做的事情。
<Config
Name = “Release”
AllowunsafeBlocks = “false”
BaseAddress = “285212672”
CheckForOverflowUnderflow = “false”
ConfigurationoverrideFile = “debug. web. config”
DefineConstants = “TRACE”
DocumentationFile = “
DebugSymbols = “false”
FileAlignrnent = “4096”
IncrementalBuild = “false”
Optimize = “true”
OutputPath = “bin\”
RegisterForcomlnterop = “false”
RemovelntegerChecks = “false”
TreatWarningsAsErrors = “false”
WarningLevel = “4”
/>