6

目前我们的 .net 代码不是特定于处理器的,但它取决于库 (Oracle/ODP.Net)。我们找到了一个解决方案,我们直接编辑 csproj 文件,并根据我们选择的构建配置将引用放入带有 Condition 子句的项目组。我们有 32 位调试/发布和 64 位调试/发布,并且正确的程序集是您构建该配置时的参考。

这在构建时或多或少地起作用,但它会导致 Visual Studio (2008) 中的各种古怪。最终结果是同一个程序集在引用下出现了四次,其中三个带有黄色感叹号。它还会生成一些我无法摆脱的 76 个警告。我们试图以 0 个警告为目标,因为我们想知道什么时候出现新警告,所以这有点问题。

是否有人知道条件引用的解决方案,使其看起来像单个引用(实际上是)并且不会在构建时填写我的警告?

4

2 回答 2

1

唯一想到的是拥有 4 个单独的项目文件......但在您担心添加类时必须维护 4 个文件之前,您可以在这里使用另一个 csproj 技巧:

<Compile Include="**\*.cs" />

其中(IIRC)说“包括文件夹结构中任何级别的所有cs文件”。

于 2009-05-12T22:10:23.167 回答
1

我们找到了一个与我们正在寻找的有点不同的答案,但我有点喜欢它。如果你在 runtime->AssemblyBinding 下把它添加到你的配置文件中

<依赖程序集>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
<bindingRedirect oldVersion="2.111.6.20" newVersion="2.111.6.0" />
</dependentAssembly>

然后 64 位和 32 位版本使用相同的构建。我们所要做的就是在部署时不要在本地复制 Oracle.DataAccess.dll 并让它从 GAC 中拉取。

谢谢!

于 2009-05-19T20:53:27.373 回答