我为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 Unit Tests。当我这样做时,Pre Build事件不会运行,因此所有依赖于sqlite3.dll
的测试都会失败。
我需要做的是能够在Test Runner运行之前将相应的文件移动到输出目录中,或者确保Test Runner仅针对x86架构运行,我可以将相应的文件放在bin\debug
文件夹并完成它。
答案 0 :(得分:1)
您可以强制C#项目仅为32位,而ReSharper运行程序仅将其作为32位运行。这样,您可以将x86 dll放在bin \ debug文件夹中,它应该都可以正常工作。