.props 文件中的 C# 参考

Posted

技术标签:

【中文标题】.props 文件中的 C# 参考【英文标题】:C# reference in .props file 【发布时间】:2016-10-29 04:17:45 【问题描述】:

当我将此代码直接添加到 .csproj 文件中时,引用已正确解析:

<ItemGroup>
  <Reference Include="base_csharp">
    <HintPath>D:\Repositories\MDSBuild\MdsDrivers\deps\Base\install\bin\Windows\MSVC\x86\Debug\base_csharp.dll</HintPath>
  </Reference>
</ItemGroup>

但是,当我将完全相同的代码放入道具文件中时

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Reference Include="base_csharp">
      <HintPath>D:\Repositories\MDSBuild\MdsDrivers\deps\Base\install\bin\Windows\MSVC\x86\Debug\base_csharp.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
</Project>

并将该道具文件导入 .csproj

<Import Project="D:\Repositories\MDSBuild\MdsDrivers\deps\Base\scripts\props\base_csharp.props" /

我收到无法解析引用的警告:

警告 MSB3245:无法解析此引用。找不到程序集“base_csharp”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,则可能会出现编译错误。

代码完全相同,所有路径都是绝对路径,但由于某种莫名其妙的原因,它无法找到 .dll 文件。我做错了什么?

【问题讨论】:

【参考方案1】:

一个问题是你打开了2个“ItemGroup”标签,只关闭了一个。

如果你的路径是绝对的,你可以这样给出:

<ItemGroup>
        <Reference Include= "D:\Repositories\MDSBuild\MdsDrivers\deps\Base\install\bin\Windows\MSVC\x86\Debug\base_csharp.dll" />
</ItemGroup>

【讨论】:

以上是关于.props 文件中的 C# 参考的主要内容,如果未能解决你的问题,请参考以下文章

路由中的props

vue中的prop

从 C# 访问 XML 数据

React中的state与props的再理解

C#中的CSV到PDF文件

如何从 C# 中的 URL 下载文件?