.NET项目中的条件引用,有可能摆脱警告吗?

我有两个SQLite程序集的引用,一个用于32位,一个用于64位,看起来像这样(这是一个试图摆脱警告的测试项目,不要挂在路径上) :

 True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit\System.Data.SQLite.DLL   True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit\System.Data.SQLite.DLL  

这会产生以下警告:

 Warning 1 The referenced component 'System.Data.SQLite' could not be found. 

我有可能摆脱这个警告吗?

我开发时只考虑将项目配置为32位的一种方法,让构建机器在构建64位时修复引用,但这看起来有点尴尬,可能容易出错。

还有其他选择吗?

我想摆脱它的原因是警告显然被TeamCity收集并定期标记为我需要调查的东西,所以我想完全摆脱它。


编辑 :根据答案,我试过这个:

  ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit  

然后在我的参考:

  False $(SqlitePath)\System.Data.SQLite.DLL  

这摆脱了警告,但这是正确的吗?

如果SQL Lite没有“AnyCPU”程序集,则您将遇到单独的构建。

要执行单独的构建,请创建一个属性,该属性在条件属性组中提供正确的路径,然后使用该属性具有单个引用(即将条件移动到引用项组之外)。 这里有一个使用这样的属性(对于自定义FXCop扩展)的示例,您可以看到在.csproj文件的开头定义了许多条件属性。

(摘要:VS不能处理MSBuild的所有可能性。)

在我看来,你的原始项目的问题是你有True指定System.Data.SQLite, Version=1.0.61.0 ,而实际的程序集是版本1.0.65。 在Reference修改程序集名称中的版本应该有所帮助。