0

我有以下“预构建事件”适用于我的 powershell 构建(包括我们的持续集成)。它只是将一个 DLL 移动到基于处理器架构的输出目录中。

if '$(PROCESSOR_ARCHITECTURE)'=='AMD64' (copy /y "$(ProjectDir)x64\sqlite3.dll" "$(OutDir)") 
if '$(PROCESSOR_ARCHITECTURE)'=='x86' (copy /y "$(ProjectDir)x86\sqlite3.dll" "$(OutDir)")
if '$(PROCESSOR_ARCHITEW6432)'=='AMD64' (copy /y "$(ProjectDir)x64\sqlite3.dll" "$(OutDir)")

我遇到的问题是当我在 IDE 中运行 Resharper 单元测试时。当我这样做时,Pre Build 事件不会运行,因此所有依赖于sqlite3.dll失败的测试。

我需要做的是能够在 Test Runner 运行之前将适当的文件移动到输出目录中,或者确保 Test Runner 仅针对 x86 架构运行,这样我就可以将适当的文件放在bin\debug文件夹中并成为完成它。

我尝试过的事情:

  1. 我尝试将“构建设置”设置为“始终构建”,但这对结果没有影响。似乎 IDE 中的构建没有运行 Pre Build Event
  2. 我还尝试根据文档在 [Resharper -> Options -> Tools -> Unit Testing] 中设置默认平台架构,但不幸的是我的 R# 版本没有该选项(7.1.3)
4

1 回答 1

1

您可以强制 C# 项目仅为 32 位,而 ReSharper 运行程序只会将其作为 32 位运行。这样,您可以将 x86 dll 放在 bin\debug 文件夹中,它应该可以正常工作。

于 2013-10-17T18:46:25.447 回答