1

我在 .csproj 文件中定义一个属性

 <PropertyGroup>
<ProjectGuid>{3099AE33-98E7-4018-B0C3-4C3A37A6D56E}</ProjectGuid>
<OutputType>Exe</OutputType>
<!-- Property for CASI Dev Build location -->
<AppRoot>$(INETROOT)\target\distrib\$(BuildType)\$(BuildArchitecture)\CASI_Dev</AppRoot>
<DeploymentBranch>Dev</DeploymentBranch>

我也有一个参考项目:说

<ItemGroup>
<ProjectReference Include="$(INETROOT)\refproj.csproj">
  <Project>{F73278A5-AB7E-4FFD-8592-F135E7DB06F2}</Project>
  <Name>RemoteProj</Name>
</ProjectReference>

是否有某种方法可以访问引用项目中的属性 $(DeploymentBranch) 或 $(AppRoot),即在文件 refproj.csproj 中。

如果我现在尝试访问它们,则值为空白

4

1 回答 1

1

根据我对 MsBuild 的了解,这是不可能通过“标准”方式实现的。但是您可以使用以下选项来实现它: 1) 在 MSBuild 命令行中传递属性值以构建您的根解决方案: msbuild mySolution.sln /t:Build /p:Configuration=...;Platform=...;DeploymentBranch= ...;AppRoot=...

2)在您的 refproj.csproj 中,您可以导入 main.csproj 。但请记住路径的“相对性”,并且 main.csproj 可能会覆盖您的 refproj.csproj 属性和目标。

在此处查看更多信息

于 2013-01-08T21:23:59.440 回答