我在使用带有 c++/cli dll 的 Visual Studio 2012 托管测试项目时遇到问题。
第一个问题是警告 MSB3274 无法解决,因为它是针对“.NETFramework,Version=v4.5”框架构建的。这是比当前目标框架更高的版本“我无法在托管测试项目中找到任何属性页来更改目标框架,如果我卸载项目并编辑项目,我无法找到标签来更改它。
下一个问题是链接器错误错误 LNK2020: unresolved token (06000001)。后跟另一个链接器错误错误 LNK1120: 1 unresolved externals
C++/CLI 项目
头文件:
#pragma once
using namespace System;
namespace MathLibrary {
public ref class CustomMathLibrary
{
public:
int Sum(int number1, int number2);
};
}
CPP 文件:
#include "MathLibrary.h"
int MathLibrary::CustomMathLibrary::Sum(int number1, int number2)
{
return number1 + number2;
}
然后我通过在属性对话框 -> 通用属性 -> 框架和引用中添加引用将此项目链接到托管测试项目然后在属性对话框中添加头文件 -> 配置属性 -> C/C++ -> 附加包含目录
单元测试cpp文件
#include "stdafx.h"
#include "MathLibrary.h"
using namespace System;
using namespace System::Text;
using namespace System::Collections::Generic;
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
namespace ImdMathLibraryTest
{
[TestClass]
public ref class MathLibTest
{
public:
[TestMethod]
void SumTest()
{
Assert::AreEqual(1,1);
}
};
}
感谢大家为解决此问题提供任何建议。