无法在VS 2015 C ++项目中更改.NET Target Framework版本

时间:2015-10-25 11:36:31

标签: c# c++ visual-studio-2015 clr

正如标题所说,我想为我的C ++项目更改.NET Target Framework版本。我试图使用/ clr命令进行编译,我认为应该启用它吗?

这是一个截图: enter image description here

我正在尝试构建一个在Unity中使用的DLL,我希望能够选择合适的框架。

我已尝试更改.vxproj文件中的信息但我无法找到正确的标记,当我自己添加它时会抛出错误。

编辑:

这是包含可以在C#中调用的方法的代码,以使用我之前编写的C ++代码。我只编辑了CLR类库的.h文件(所以.cpp文件只包含我认为应该没用的标题)

#pragma once
#include "PortAudioManager.h"

using namespace System;

namespace PortAudioWrapper {

public ref class PortAudioManaged
{
private:
    PortAudioManager* audioManager;
public:
    PortAudioManaged() : audioManager(new PortAudioManager()) {
    }

    virtual ~PortAudioManaged() {
        this->!PortAudioManaged();
    }

    // = Object.Finalize
    !PortAudioManaged() {
        delete audioManager;
        audioManager = nullptr;
    }

    void openStreamManaged() {
        audioManager->openStream();
    }

    void stopStreamManaged() {
        audioManager->stopStream();
    }
};
}

2 个答案:

答案 0 :(得分:6)

您应该可以按照https://msdn.microsoft.com/en-us/library/ff770576.aspx

上的指南进行操作

您可以在C ++中定位的.NET框架取决于您选择的工具集。您可能会发现只需下载支持您希望使用的框架的旧版VS即可。

在项目文件中,我刚刚创建了如下所示的部分:

<PropertyGroup Label="Globals">
   <ProjectGuid>{48ACEC98-3369-486F-9033-8C433D408570}</ProjectGuid>
   <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
   <Keyword>ManagedCProj</Keyword>
   <RootNamespace>ClassLibrary1</RootNamespace>
   <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>

答案 1 :(得分:2)

使用VS2015,我不得不将托管C ++ DLL的.Net目标从3.5升级到4.5.1。在“配置属性 - 常规”设置中,“。Net目标框架版本”显示为灰色且其值框不可编辑。

  1. 在记事本中打开Name.vcxproj文件。
  2. 导航至:“&lt;”PropertyGroup Label =“Globals”“”
  3. 添加:“&lt;”TargetFrameworkVersion“”v4.5.1“&lt;”/ TargetFrameworkVersion“
  4. 保存更新的项目文件,然后重新加载到VSS2015。
  5. 注意:取下尖括号周围的“”。 然后,当项目重新加载到VS2015时,您可以看到设置中列出的.Net版本。就我而言,它是V4.5.1。