我有一个包含几个c#项目的解决方案,我希望能够在一个地方将所有项目的输出路径和其他属性设置在一起.Property Sheets(vsprops)似乎不能用于C#项目,$(SolutionDir)变量被忽略.是否有其他方法可以在多个C#项目中设置属性?
更新 按照Bas Bossink的回答中的信息,我能够通过创建一个公共csproj并将其导入单个项目来设置多个项目的输出路径.其他几点:
Bas*_*ink 39
csproj文件已经是一个msbuild文件,这意味着csproj文件也可以使用这里描述的import元素.import元素正是您所需要的.您可以创建一个包含以下内容的Common.proj:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5"xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputPath>$(SolutionDir)output</OutputPath>
<WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
您可以在每个csproj中导入此Common.proj,例如:
<Import Project="..\Common.proj" />
Run Code Online (Sandbox Code Playgroud)
import语句应该位于依赖于Common.proj中定义的属性的任何任务之前
我希望这有帮助.我无法用$(SolutionDir)变量确认你的问题,我多次使用它.但我确实知道,当您通过命令行在解决方案中包含的特定项目上运行msbuild命令时,不会设置此变量.在Visual Studio中构建解决方案时将设置它.
| 归档时间: |
|
| 查看次数: |
15790 次 |
| 最近记录: |