You can do that using Scott Dorman’s Visual Studio macro available on CodeProject:
Visual Studio 2010 and Target Framework Version
Below is the code, download it to your <UserProfile>DocumentsVisual Studio 2010ProjectsVSMacros80MyMacros
folder, open the Visual Studio Macro IDE (Alt-F11) and add it as an existing item to the “MyMacros” project:
'------------------------------------------------------------------------------
' Visual Studio 2008 Macros
'
' ProjectUtilities.vb
'
'------------------------------------------------------------------------------
' Copyright (C) 2007-2008 Scott Dorman (sj_dorman@hotmail.com)
'
' This library is free software; you can redistribute it and/or
' modify it under the terms of the Microsoft Public License (Ms-PL).
'
' This library is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' Microsoft Public License (Ms-PL) for more details.
'------------------------------------------------------------------------------
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module ProjectUtilities
Private Class ProjectGuids
Public Const vsWindowsCSharp As String = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
Public Const vsWindowsVBNET As String = "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}"
Public Const vsWindowsVisualCPP As String = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
Public Const vsWebApplication As String = "{349C5851-65DF-11DA-9384-00065B846F21}"
Public Const vsWebSite As String = "{E24C65DC-7377-472B-9ABA-BC803B73C61A}"
Public Const vsDistributedSystem As String = "{F135691A-BF7E-435D-8960-F99683D2D49C}"
Public Const vsWCF As String = "{3D9AD99F-2412-4246-B90B-4EAA41C64699}"
Public Const vsWPF As String = "{60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}"
Public Const vsVisualDatabaseTools As String = "{C252FEB5-A946-4202-B1D4-9916A0590387}"
Public Const vsDatabase As String = "{A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}"
Public Const vsDatabaseOther As String = "{4F174C21-8C12-11D0-8340-0000F80270F8}"
Public Const vsTest As String = "{3AC096D0-A1C2-E12C-1390-A8335801FDAB}"
Public Const vsLegacy2003SmartDeviceCSharp As String = "{20D4826A-C6FA-45DB-90F4-C717570B9F32}"
Public Const vsLegacy2003SmartDeviceVBNET As String = "{CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}"
Public Const vsSmartDeviceCSharp As String = "{4D628B5B-2FBC-4AA6-8C16-197242AEB884}"
Public Const vsSmartDeviceVBNET As String = "{68B1623D-7FB9-47D8-8664-7ECEA3297D4F}"
Public Const vsWorkflowCSharp As String = "{14822709-B5A1-4724-98CA-57A101D1B079}"
Public Const vsWorkflowVBNET As String = "{D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}"
Public Const vsDeploymentMergeModule As String = "{06A35CCD-C46D-44D5-987B-CF40FF872267}"
Public Const vsDeploymentCab As String = "{3EA9E505-35AC-4774-B492-AD1749C4943A}"
Public Const vsDeploymentSetup As String = "{978C614F-708E-4E1A-B201-565925725DBA}"
Public Const vsDeploymentSmartDeviceCab As String = "{AB322303-2255-48EF-A496-5904EB18DA55}"
Public Const vsVSTA As String = "{A860303F-1F3F-4691-B57E-529FC101A107}"
Public Const vsVSTO As String = "{BAA0C2D2-18E2-41B9-852F-F413020CAA33}"
Public Const vsSharePointWorkflow As String = "{F8810EC1-6754-47FC-A15F-DFABD2E3FA90}"
End Class
'' Defines the valid target framework values.
Enum TargetFramework
Fx40 = 262144
Fx35 = 196613
Fx30 = 196608
Fx20 = 131072
End Enum
'' Change the target framework for all projects in the current solution.
Sub ChangeTargetFrameworkForAllProjects()
Dim project As EnvDTE.Project
Dim clientProfile As Boolean = False
Write("--------- CHANGING TARGET .NET FRAMEWORK VERSION -------------")
Try
If Not DTE.Solution.IsOpen Then
Write("There is no solution open.")
Else
Dim targetFrameworkInput As String = InputBox("Enter the target framework version (Fx40, Fx35, Fx30, Fx20):", "Target Framework", "Fx40")
Dim targetFramework As TargetFramework = [Enum].Parse(GetType(TargetFramework), targetFrameworkInput)
If targetFramework = ProjectUtilities.TargetFramework.Fx35 Or targetFramework = ProjectUtilities.TargetFramework.Fx40 Then
Dim result As MsgBoxResult = MsgBox("The .NET Framework version chosen supports a Client Profile. Would you like to use that profile?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Target Framework Profile")
If result = MsgBoxResult.Yes Then
clientProfile = True
End If
End If
For Each project In DTE.Solution.Projects
If project.Kind <> Constants.vsProjectKindSolutionItems And project.Kind <> Constants.vsProjectKindMisc Then
ChangeTargetFramework(project, targetFramework, clientProfile)
Else
For Each projectItem In project.ProjectItems
If Not (projectItem.SubProject Is Nothing) Then
ChangeTargetFramework(projectItem.SubProject, targetFramework, clientProfile)
End If
Next
End If
Next
End If
Catch ex As System.Exception
Write(ex.Message)
End Try
End Sub
'' Change the target framework for a project.
Function ChangeTargetFramework(ByVal project As EnvDTE.Project, ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean) As Boolean
Dim changed As Boolean = True
If project.Kind = Constants.vsProjectKindSolutionItems Or project.Kind = Constants.vsProjectKindMisc Then
For Each projectItem In project.ProjectItems
If Not (projectItem.SubProject Is Nothing) Then
ChangeTargetFramework(projectItem.SubProject, targetFramework, clientProfile)
End If
Next
Else
Try
If IsLegalProjectType(project) Then
SetTargetFramework(project, targetFramework, clientProfile)
Else
Write("Skipping project: " + project.Name + " (" + project.Kind + ")")
End If
Catch ex As Exception
Write(ex.Message)
changed = False
End Try
End If
Return changed
End Function
'' Determines if the project is a project that actually supports changing the target framework.
Function IsLegalProjectType(ByVal proejct As EnvDTE.Project) As Boolean
Dim legalProjectType As Boolean = True
Select Case proejct.Kind
Case ProjectGuids.vsDatabase
legalProjectType = False
Case ProjectGuids.vsDatabaseOther
legalProjectType = False
Case ProjectGuids.vsDeploymentCab
legalProjectType = False
Case ProjectGuids.vsDeploymentMergeModule
legalProjectType = False
Case ProjectGuids.vsDeploymentSetup
legalProjectType = False
Case ProjectGuids.vsDeploymentSmartDeviceCab
legalProjectType = False
Case ProjectGuids.vsDistributedSystem
legalProjectType = False
Case ProjectGuids.vsLegacy2003SmartDeviceCSharp
legalProjectType = False
Case ProjectGuids.vsLegacy2003SmartDeviceVBNET
legalProjectType = False
Case ProjectGuids.vsSharePointWorkflow
legalProjectType = False
Case ProjectGuids.vsSmartDeviceCSharp
legalProjectType = True
Case ProjectGuids.vsSmartDeviceVBNET
legalProjectType = True
Case ProjectGuids.vsTest
legalProjectType = False
Case ProjectGuids.vsVisualDatabaseTools
legalProjectType = False
Case ProjectGuids.vsVSTA
legalProjectType = True
Case ProjectGuids.vsVSTO
legalProjectType = True
Case ProjectGuids.vsWCF
legalProjectType = True
Case ProjectGuids.vsWebApplication
legalProjectType = True
Case ProjectGuids.vsWebSite
legalProjectType = True
Case ProjectGuids.vsWindowsCSharp
legalProjectType = True
Case ProjectGuids.vsWindowsVBNET
legalProjectType = True
Case ProjectGuids.vsWindowsVisualCPP
legalProjectType = True
Case ProjectGuids.vsWorkflowCSharp
legalProjectType = False
Case ProjectGuids.vsWorkflowVBNET
legalProjectType = False
Case ProjectGuids.vsWPF
legalProjectType = True
Case Else
legalProjectType = False
End Select
Return legalProjectType
End Function
'' Sets the target framework for the project to the specified framework.
Sub SetTargetFramework(ByVal project As EnvDTE.Project, ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean)
Dim currentTargetFramework As TargetFramework = CType(project.Properties.Item("TargetFramework").Value, TargetFramework)
Dim targetMoniker As String = GetTargetFrameworkMoniker(targetFramework, clientProfile)
Dim currentMoniker As String = project.Properties.Item("TargetFrameworkMoniker").Value
If currentMoniker <> targetMoniker Then
Write("Changing project: " + project.Name + " from " + currentMoniker + " to " + targetMoniker + ".")
project.Properties.Item("TargetFrameworkMoniker").Value = targetMoniker
project.Properties.Item("TargetFramework").Value = targetFramework
Else
Write("Skipping project: " + project.Name + ", already at the correct target framework.")
End If
End Sub
Function GetTargetFrameworkMoniker(ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean) As String
Dim moniker As String = ".NETFramework,Version=v"
Select Case targetFramework
Case ProjectUtilities.TargetFramework.Fx20
moniker += "2.0"
Case ProjectUtilities.TargetFramework.Fx30
moniker += "3.0"
Case ProjectUtilities.TargetFramework.Fx35
moniker += "3.5"
Case ProjectUtilities.TargetFramework.Fx40
moniker += "4.0"
End Select
If clientProfile Then
moniker += ",Profile=Client"
End If
Return moniker
End Function
'' Writes a message to the output window
Sub Write(ByVal s As String)
Dim out As OutputWindowPane = GetOutputWindowPane("Change Target Framework", True)
out.OutputString(s)
out.OutputString(vbCrLf)
End Sub
'' Gets an instance of the output window
Function GetOutputWindowPane(ByVal Name As String, Optional ByVal show As Boolean = True) As OutputWindowPane
Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
If show Then win.Visible = True
Dim ow As OutputWindow = win.Object
Dim owpane As OutputWindowPane
Try
owpane = ow.OutputWindowPanes.Item(Name)
Catch e As System.Exception
owpane = ow.OutputWindowPanes.Add(Name)
End Try
owpane.Activate()
Return owpane
End Function
End Module
You can do that using Scott Dorman’s Visual Studio macro available on CodeProject:
Visual Studio 2010 and Target Framework Version
Below is the code, download it to your <UserProfile>DocumentsVisual Studio 2010ProjectsVSMacros80MyMacros
folder, open the Visual Studio Macro IDE (Alt-F11) and add it as an existing item to the “MyMacros” project:
'------------------------------------------------------------------------------
' Visual Studio 2008 Macros
'
' ProjectUtilities.vb
'
'------------------------------------------------------------------------------
' Copyright (C) 2007-2008 Scott Dorman (sj_dorman@hotmail.com)
'
' This library is free software; you can redistribute it and/or
' modify it under the terms of the Microsoft Public License (Ms-PL).
'
' This library is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' Microsoft Public License (Ms-PL) for more details.
'------------------------------------------------------------------------------
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module ProjectUtilities
Private Class ProjectGuids
Public Const vsWindowsCSharp As String = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
Public Const vsWindowsVBNET As String = "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}"
Public Const vsWindowsVisualCPP As String = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
Public Const vsWebApplication As String = "{349C5851-65DF-11DA-9384-00065B846F21}"
Public Const vsWebSite As String = "{E24C65DC-7377-472B-9ABA-BC803B73C61A}"
Public Const vsDistributedSystem As String = "{F135691A-BF7E-435D-8960-F99683D2D49C}"
Public Const vsWCF As String = "{3D9AD99F-2412-4246-B90B-4EAA41C64699}"
Public Const vsWPF As String = "{60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}"
Public Const vsVisualDatabaseTools As String = "{C252FEB5-A946-4202-B1D4-9916A0590387}"
Public Const vsDatabase As String = "{A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}"
Public Const vsDatabaseOther As String = "{4F174C21-8C12-11D0-8340-0000F80270F8}"
Public Const vsTest As String = "{3AC096D0-A1C2-E12C-1390-A8335801FDAB}"
Public Const vsLegacy2003SmartDeviceCSharp As String = "{20D4826A-C6FA-45DB-90F4-C717570B9F32}"
Public Const vsLegacy2003SmartDeviceVBNET As String = "{CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}"
Public Const vsSmartDeviceCSharp As String = "{4D628B5B-2FBC-4AA6-8C16-197242AEB884}"
Public Const vsSmartDeviceVBNET As String = "{68B1623D-7FB9-47D8-8664-7ECEA3297D4F}"
Public Const vsWorkflowCSharp As String = "{14822709-B5A1-4724-98CA-57A101D1B079}"
Public Const vsWorkflowVBNET As String = "{D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}"
Public Const vsDeploymentMergeModule As String = "{06A35CCD-C46D-44D5-987B-CF40FF872267}"
Public Const vsDeploymentCab As String = "{3EA9E505-35AC-4774-B492-AD1749C4943A}"
Public Const vsDeploymentSetup As String = "{978C614F-708E-4E1A-B201-565925725DBA}"
Public Const vsDeploymentSmartDeviceCab As String = "{AB322303-2255-48EF-A496-5904EB18DA55}"
Public Const vsVSTA As String = "{A860303F-1F3F-4691-B57E-529FC101A107}"
Public Const vsVSTO As String = "{BAA0C2D2-18E2-41B9-852F-F413020CAA33}"
Public Const vsSharePointWorkflow As String = "{F8810EC1-6754-47FC-A15F-DFABD2E3FA90}"
End Class
'' Defines the valid target framework values.
Enum TargetFramework
Fx40 = 262144
Fx35 = 196613
Fx30 = 196608
Fx20 = 131072
End Enum
'' Change the target framework for all projects in the current solution.
Sub ChangeTargetFrameworkForAllProjects()
Dim project As EnvDTE.Project
Dim clientProfile As Boolean = False
Write("--------- CHANGING TARGET .NET FRAMEWORK VERSION -------------")
Try
If Not DTE.Solution.IsOpen Then
Write("There is no solution open.")
Else
Dim targetFrameworkInput As String = InputBox("Enter the target framework version (Fx40, Fx35, Fx30, Fx20):", "Target Framework", "Fx40")
Dim targetFramework As TargetFramework = [Enum].Parse(GetType(TargetFramework), targetFrameworkInput)
If targetFramework = ProjectUtilities.TargetFramework.Fx35 Or targetFramework = ProjectUtilities.TargetFramework.Fx40 Then
Dim result As MsgBoxResult = MsgBox("The .NET Framework version chosen supports a Client Profile. Would you like to use that profile?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Target Framework Profile")
If result = MsgBoxResult.Yes Then
clientProfile = True
End If
End If
For Each project In DTE.Solution.Projects
If project.Kind <> Constants.vsProjectKindSolutionItems And project.Kind <> Constants.vsProjectKindMisc Then
ChangeTargetFramework(project, targetFramework, clientProfile)
Else
For Each projectItem In project.ProjectItems
If Not (projectItem.SubProject Is Nothing) Then
ChangeTargetFramework(projectItem.SubProject, targetFramework, clientProfile)
End If
Next
End If
Next
End If
Catch ex As System.Exception
Write(ex.Message)
End Try
End Sub
'' Change the target framework for a project.
Function ChangeTargetFramework(ByVal project As EnvDTE.Project, ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean) As Boolean
Dim changed As Boolean = True
If project.Kind = Constants.vsProjectKindSolutionItems Or project.Kind = Constants.vsProjectKindMisc Then
For Each projectItem In project.ProjectItems
If Not (projectItem.SubProject Is Nothing) Then
ChangeTargetFramework(projectItem.SubProject, targetFramework, clientProfile)
End If
Next
Else
Try
If IsLegalProjectType(project) Then
SetTargetFramework(project, targetFramework, clientProfile)
Else
Write("Skipping project: " + project.Name + " (" + project.Kind + ")")
End If
Catch ex As Exception
Write(ex.Message)
changed = False
End Try
End If
Return changed
End Function
'' Determines if the project is a project that actually supports changing the target framework.
Function IsLegalProjectType(ByVal proejct As EnvDTE.Project) As Boolean
Dim legalProjectType As Boolean = True
Select Case proejct.Kind
Case ProjectGuids.vsDatabase
legalProjectType = False
Case ProjectGuids.vsDatabaseOther
legalProjectType = False
Case ProjectGuids.vsDeploymentCab
legalProjectType = False
Case ProjectGuids.vsDeploymentMergeModule
legalProjectType = False
Case ProjectGuids.vsDeploymentSetup
legalProjectType = False
Case ProjectGuids.vsDeploymentSmartDeviceCab
legalProjectType = False
Case ProjectGuids.vsDistributedSystem
legalProjectType = False
Case ProjectGuids.vsLegacy2003SmartDeviceCSharp
legalProjectType = False
Case ProjectGuids.vsLegacy2003SmartDeviceVBNET
legalProjectType = False
Case ProjectGuids.vsSharePointWorkflow
legalProjectType = False
Case ProjectGuids.vsSmartDeviceCSharp
legalProjectType = True
Case ProjectGuids.vsSmartDeviceVBNET
legalProjectType = True
Case ProjectGuids.vsTest
legalProjectType = False
Case ProjectGuids.vsVisualDatabaseTools
legalProjectType = False
Case ProjectGuids.vsVSTA
legalProjectType = True
Case ProjectGuids.vsVSTO
legalProjectType = True
Case ProjectGuids.vsWCF
legalProjectType = True
Case ProjectGuids.vsWebApplication
legalProjectType = True
Case ProjectGuids.vsWebSite
legalProjectType = True
Case ProjectGuids.vsWindowsCSharp
legalProjectType = True
Case ProjectGuids.vsWindowsVBNET
legalProjectType = True
Case ProjectGuids.vsWindowsVisualCPP
legalProjectType = True
Case ProjectGuids.vsWorkflowCSharp
legalProjectType = False
Case ProjectGuids.vsWorkflowVBNET
legalProjectType = False
Case ProjectGuids.vsWPF
legalProjectType = True
Case Else
legalProjectType = False
End Select
Return legalProjectType
End Function
'' Sets the target framework for the project to the specified framework.
Sub SetTargetFramework(ByVal project As EnvDTE.Project, ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean)
Dim currentTargetFramework As TargetFramework = CType(project.Properties.Item("TargetFramework").Value, TargetFramework)
Dim targetMoniker As String = GetTargetFrameworkMoniker(targetFramework, clientProfile)
Dim currentMoniker As String = project.Properties.Item("TargetFrameworkMoniker").Value
If currentMoniker <> targetMoniker Then
Write("Changing project: " + project.Name + " from " + currentMoniker + " to " + targetMoniker + ".")
project.Properties.Item("TargetFrameworkMoniker").Value = targetMoniker
project.Properties.Item("TargetFramework").Value = targetFramework
Else
Write("Skipping project: " + project.Name + ", already at the correct target framework.")
End If
End Sub
Function GetTargetFrameworkMoniker(ByVal targetFramework As TargetFramework, ByVal clientProfile As Boolean) As String
Dim moniker As String = ".NETFramework,Version=v"
Select Case targetFramework
Case ProjectUtilities.TargetFramework.Fx20
moniker += "2.0"
Case ProjectUtilities.TargetFramework.Fx30
moniker += "3.0"
Case ProjectUtilities.TargetFramework.Fx35
moniker += "3.5"
Case ProjectUtilities.TargetFramework.Fx40
moniker += "4.0"
End Select
If clientProfile Then
moniker += ",Profile=Client"
End If
Return moniker
End Function
'' Writes a message to the output window
Sub Write(ByVal s As String)
Dim out As OutputWindowPane = GetOutputWindowPane("Change Target Framework", True)
out.OutputString(s)
out.OutputString(vbCrLf)
End Sub
'' Gets an instance of the output window
Function GetOutputWindowPane(ByVal Name As String, Optional ByVal show As Boolean = True) As OutputWindowPane
Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
If show Then win.Visible = True
Dim ow As OutputWindow = win.Object
Dim owpane As OutputWindowPane
Try
owpane = ow.OutputWindowPanes.Item(Name)
Catch e As System.Exception
owpane = ow.OutputWindowPanes.Add(Name)
End Try
owpane.Activate()
Return owpane
End Function
End Module
Общие сведения о настройке целевой платформы
В Visual Studio можно указать версию платформы .NET, на которую будет ориентироваться проект. Нацеливание на платформу помогает гарантировать, что приложение использует только те функциональные возможности, которые доступны в указанной версии платформы. Для запуска приложений .NET Framework на другом компьютере версия платформы для такого приложения должна быть совместима с версией платформы, установленной на компьютере.
Решение Visual Studio может содержать проекты, предназначенные для различных версий .NET. Обратите внимание, что вы можете выполнить сборку только для одной версии .NET с помощью условий ссылок для одной сборки или рекурсивно создавать разные двоичные файлы для каждой версии. Дополнительные сведения о требуемых версиях .NET Framework см. в разделе Целевые платформы.
Вы также можете нацеливать приложения на различные платформы. Дополнительные сведения см. в разделе Настройка для различных версий.
Функции нацеливания на платформу
Среди прочего, доступны следующие возможности нацеливания на платформу:
При открытии проекта, который ориентирован на более раннюю версию платформы, Visual Studio может автоматически обновить его или оставить имеющуюся настройку.
При создании проекта .NET Framework можно указать версию платформы .NET Framework, на которую требуется ориентироваться.
В каждом из нескольких проектов в одном решении можно ориентироваться на разные версии .NET.
Можно изменить версию .NET, на которую ориентирован существующий проект.
При изменении версии платформы .NET, на которую сориентирован проект, Visual Studio вносит все необходимые изменения в ссылки и файлы конфигурации.
При работе над проектом, ориентированным на более раннюю версию платформы, Visual Studio динамически изменяет среду разработки, как показано ниже:
Фильтрует элементы в диалоговых окнах Добавить новый элемент, Добавить новую ссылку и Добавление ссылки на службу, чтобы пропустить варианты, которые недоступны в целевой версии.
Фильтрует пользовательские элементы управления на панели элементов, удаляя те, что недоступны в целевой версии, и показывая только наиболее актуальные элементы управления, если их доступно несколько.
Фильтрует IntelliSense, чтобы пропустить языковые функции, которые недоступны в целевой версии.
Фильтрует свойства в окне Свойства, чтобы пропустить те, которые недоступны в целевой версии.
Фильтрует пункты меню, чтобы пропустить те, которые недоступны в целевой версии.
Для сборок система использует версию и параметры компилятора, которые подходят для целевой версии.
- Нацеливание на платформу не гарантирует правильную работу приложения. Нужно протестировать приложение, чтобы убедиться в том, что оно работает с целевой версией.
- Ориентироваться на версии платформы, предшествующие .NET Framework 2.0, запрещено.
Выбор целевой версии платформы
При создании проекта .NET Framework выберите целевую версию .NET Framework после выбора шаблона проекта. Список доступных платформ включает их установленные версии, соответствующие типу выбранного шаблона. Для шаблонов проектов, отличных от .NET Framework, например шаблонов .NET Core, раскрывающийся список Платформа не отображается.
Если вы решите создать проект .NET Framework, то увидите интерфейс, похожий на тот, которой показан на снимке экрана:
Если вы решите создать проект .NET, то увидите интерфейс, похожий на тот, которой показан на двух следующих снимках экрана.
На первом экране вы увидите диалоговое окно Настройка нового проекта.
На втором экране появится диалоговое окно Дополнительные параметры.
Изменение требуемой версии .NET Framework
Для существующего проекта Visual Basic, C# или F# вы можете изменить целевую версию .NET в диалоговом окне свойств проекта. Сведения об изменении целевой версии для проектов C++ см. в статье How to: Modify the Target Framework and Platform Toolset (Практическое руководство. Изменение требуемой версии .NET Framework и набора средств платформы).
В обозревателе решений правой кнопкой мыши откройте контекстное меню проекта, в который необходимо внести изменения, и выберите Свойства.
В левом столбце окна Свойства перейдите на вкладку Приложение.
После создания приложения UWP невозможно изменить целевую версию Windows или .NET.
В списке Целевая рабочая среда выберите требуемую версию.
В открывшемся диалоговом окне проверки нажмите кнопку Да.
Проект будет выгружен. При его перезагрузке он будет ориентирован на выбранную версию .NET.
В обозревателе решений правой кнопкой мыши откройте контекстное меню проекта, в который необходимо внести изменения, и выберите Свойства.
В левом столбце окна Свойства перейдите на вкладку Приложение.
После создания приложения UWP невозможно изменить целевую версию Windows или .NET.
В списке Целевая рабочая среда выберите требуемую версию.
Для проекта .NET Framework будет показано диалоговое окно, похожее на то, которое изображено на снимке экрана:
Для проекта .NET будет показано диалоговое окно, похожее на то, которое изображено на снимке экрана:
Если появится диалоговое окно проверки, нажмите кнопку Да.
Проект будет выгружен. При его перезагрузке он будет ориентирован на выбранную версию .NET.
Если код содержит ссылки на другую версию .NET, отличную от целевой, при компиляции и запуске кода могут появиться сообщения об ошибках. Чтобы устранить эти ошибки, измените ссылки. См. раздел Устранение неполадок, связанных с настройкой для определенных версий платформы .NET.
В зависимости от целевой платформы ее можно представить в файле проекта следующим образом:
- Для приложения .NET Core: <TargetFramework>netcoreapp2.1</TargetFramework>
- Для приложения .NET Standard: <TargetFramework>netstandard2.0</TargetFramework>
- Для приложения .NET Framework: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
Разрешение системных ссылок и пользовательских ссылок на сборки
Чтобы нацелиться на определенную версию .NET, нужно сначала установить подходящие ссылки на сборки. Вы можете скачать пакеты разработчика для разных версий .NET на странице скачиваемых материалов .NET.
Для проектов .NET Framework диалоговое окно Добавить ссылку позволяет отключить системные сборки, не относящиеся к целевой версии платформы .NET Framework, чтобы их невозможно было добавить в проект случайно. (Системные сборки — это файлы DLL, включенные в версию платформы .NET Framework.) Ссылки, относящиеся к версии платформы, которая старше целевой версии, не будут разрешены, а зависящие от них элементы управления невозможно будет добавить. Если вы хотите активировать такую ссылку, измените целевую версию платформы .NET Framework для проекта на ту, которая содержит эту ссылку.
Дополнительные сведения о ссылках на сборки см. в разделе Разрешение сборок во время разработки.
Visual Studio 2019 — измените целевую платформу .NET на 4.8
Я не могу изменить .NET-версию своего проекта. Я установил .NET 4.8 через установщик Visual Studio и вручную загрузил его отдельно. Ни одна из этих работ.
Я действительно пытался изменить структуру в файле проекта .csproj
и это тоже не работает . У меня заканчиваются решения, и я действительно не знаю, что делать дальше.
Если вы пытаетесь преобразовать проект «net5.0-windows» в стиле SDK в проект WinForms «net48», вам, вероятно, придется сделать больше, чем просто изменить TargetFramework .
Во-первых, Project узел в начале файла «.csproj» должен выглядеть так:
(Цели «net5.0» это не нужно .WindowsDesktop .)
Во-вторых, вам нужно убедиться, что <UseWindowsForms>true</UseWindowsForms> это часть main PropertyGroup .
Даже после этих изменений у вас все равно будут возникать всевозможные проблемы, если в вашем проекте используются типы, недоступные в .net 4.8.
Практическое руководство. настройку целевых платформ в проектах
Visual Studio позволяет настраивать сборки приложения для различных платформ, включая 64-разрядные платформы. Дополнительные сведения о поддержке 64-разрядных платформ в Visual Studio см. в статье 64-разрядные приложения.
Visual Studio 2022 выполняется как 64-разрядное приложение. Она совершенно отделена от платформ, которые можно выбрать для проектов в Visual Studio. Вы можете использовать любую версию Visual Studio, предназначенную для 32-разрядных и 64-разрядных платформ.
Visual Studio выполняется как 32-разрядное приложение. Она совершенно отделена от платформ, которые можно выбрать для проектов в Visual Studio. Вы можете использовать любую версию Visual Studio, предназначенную для 32-разрядных и 64-разрядных платформ.
Нацеливание на платформы с помощью диспетчера конфигураций
Диспетчер конфигураций позволяет быстро добавить новую платформу для нацеливания проекта. Если выбрать одну из платформ, входящих в Visual Studio, свойства проекта изменяются для сборки проекта в соответствии с выбранной платформой.
Настройка проекта для 64-разрядной платформы
В строке меню последовательно выберите пункты Сборка>Диспетчер конфигураций.
В списке Активная платформа решения выберите 64-разрядную платформу для нацеливания решения, а затем нажмите кнопку Закрыть.
Если нужная платформа не отображается в списке Активная платформа решения, выберите Создать.
Откроется диалоговое окно Создание платформы решения.
В списке Введите или выберите новую платформу выберите x64.
Если вы присваиваете конфигурации новое имя, может потребоваться изменить параметры в конструкторе проектов для нацеливания на соответствующую платформу.
Если требуется скопировать параметры из текущий конфигурации платформы, выберите ее и нажмите кнопку ОК.
Обновляются свойства для всех проектов в решении, нацеленных на 64-разрядную платформу, и следующая сборка проекта будет оптимизирована под 64-разрядные платформы.
Имя платформы Win32 используется для проектов C++ и соответствует x86. Visual Studio поддерживает платформы уровня проекта и платформы уровня решения. При этом платформы проекта основаны на системах проектов для разных языков. Проекты C++ используют Win32 и x64, а платформы решения — x86 и x64. Когда вы выбираете x86 в качестве конфигурации решения, Visual Studio выбирает для проектов C++ платформу Win32. Чтобы просмотреть параметры платформы уровня проекта и платформы уровня решения, откройте Configuration Manager и обратите внимание на два параметра платформы. Платформа уровня решения отображается в раскрывающемся списке Активная платформа решения, а платформа уровня проекта показана в таблице для каждого проекта.
Нацеливание на платформы в конструкторе проектов
Конструктор проектов также предоставляет способ нацеливания проекта на различные платформы. Если выбор одной из платформ в списке диалогового окна Создание платформы решения не подходит для вашего решения, можно создать пользовательское имя конфигурации и изменить параметры в конструкторе проектов для нацеливания на соответствующую платформу.
Способ выполнения этой задачи зависит от используемого языка программирования. Дополнительные сведения см. на следующих страницах:
Для проектов Visual Basic см. раздел /platform (Visual Basic).
Для проектов C++/CLI см. статью /clr (компиляция CLR).
Изменение файла проекта вручную
Иногда необходимо вручную изменить файл проекта, чтобы выполнить ряд пользовательских настроек. Это бывает нужно сделать, к примеру, при наличии условий, которые не могут быть указаны в интегрированной среде разработки (ссылка, имеющая разный вид для двух разных платформ, как показано в следующем примере).
Пример. Ссылки на сборки x86 и x64 и библиотеки DLL
У вас может быть сборка .NET или библиотека DLL с версиями x86 и x64. Чтобы настроить проект для использования этих ссылок, сначала добавьте ссылку, а затем откройте файл проекта и измените его, чтобы добавить ItemGroup с условием, которое ссылается как на конфигурацию, так и на целевую платформу. Например, предположим, что вы ссылаетесь на двоичный файл ClassLibrary1, и существуют разные пути для конфигураций отладки и выпуска, а также версии x86 и x64. Используйте четыре элемента ItemGroup со всеми сочетаниями параметров, как показано далее:
Дополнительные сведения о файле проекта см. в статье Справочные сведения о схеме файлов проектов MSBuild.
how can I change the .NET to .NET Framework 4.7.2 i am really struggeling since 2 days now.
I am doing a WinFormApp and can only use .NET 5 or .NET Core 3.1 but i need .NET Framework 4.7.2 for another Framework.
Already installed it through [Microsoft] but it dont appear there to select.
Jon Skeet
1.4m851 gold badges9046 silver badges9133 bronze badges
asked Jul 27, 2021 at 16:16
5
You don’t need to «restart a project» to target .NET Framework. You just need to use the appropriate TargetFramework element in the csproj file.
Here’s an example for a Windows Forms application targeting .NET Framework 4.7.2:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net472</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
If you create a .NET Core 3.1 or .NET 5 project, you can just edit the .csproj file to specify .NET Framework as the target framework — no need to start from scratch.
answered Jul 27, 2021 at 16:40
Jon SkeetJon Skeet
1.4m851 gold badges9046 silver badges9133 bronze badges
2
Well, as your main application is .NET Core, it’s running on a core CLR. It cannot be changed to a non-core CLR project. You would need to restart a project if there is no way of achieving the goal you need.
If you also need the .NET Core application for whatever reason, I would recommend using an API call to communicate between the two applications or another method of communication which isn’t with the project itself.
Dharman♦
29.3k21 gold badges80 silver badges131 bronze badges
answered Jul 27, 2021 at 16:27
SkyhighjinksSkyhighjinks
1421 gold badge1 silver badge8 bronze badges
3
18 / 18 / 2 Регистрация: 30.09.2016 Сообщений: 108 |
|
1 |
|
24.06.2020, 18:58. Показов 10382. Ответов 2
Всем привет! Миниатюры
__________________
0 |
Администратор 15251 / 12290 / 4905 Регистрация: 17.03.2014 Сообщений: 24,888 Записей в блоге: 1 |
|
24.06.2020, 22:08 |
2 |
РешениеVitachok, нужно установить т.н. Targeting Pack для Visual Studio через установщик или выбрав пункт «Установка других платформ…». Последнее откроет страницу на сайте Microsoft откуда нужно скачать Developer Pack для .NET 4.8.
1 |
18 / 18 / 2 Регистрация: 30.09.2016 Сообщений: 108 |
|
25.06.2020, 21:12 [ТС] |
3 |
OwenGlendower, спасибо, все получилось.
0 |
Общие сведения о настройке целевой платформы
В Visual Studio можно указать версию платформы .NET, на которую будет ориентироваться проект. Нацеливание на платформу помогает гарантировать, что приложение использует только те функциональные возможности, которые доступны в указанной версии платформы. Для запуска приложений .NET Framework на другом компьютере версия платформы для такого приложения должна быть совместима с версией платформы, установленной на компьютере.
Решение Visual Studio может содержать проекты, предназначенные для различных версий .NET. Обратите внимание, что вы можете выполнить сборку только для одной версии .NET с помощью условий ссылок для одной сборки или рекурсивно создавать разные двоичные файлы для каждой версии. Дополнительные сведения о требуемых версиях .NET Framework см. в разделе Целевые платформы.
Вы также можете нацеливать приложения на различные платформы. Дополнительные сведения см. в разделе Настройка для различных версий.
Функции нацеливания на платформу
Среди прочего, доступны следующие возможности нацеливания на платформу:
При открытии проекта, который ориентирован на более раннюю версию платформы, Visual Studio может автоматически обновить его или оставить имеющуюся настройку.
При создании проекта .NET Framework можно указать версию платформы .NET Framework, на которую требуется ориентироваться.
В каждом из нескольких проектов в одном решении можно ориентироваться на разные версии .NET.
Можно изменить версию .NET, на которую ориентирован существующий проект.
При изменении версии платформы .NET, на которую сориентирован проект, Visual Studio вносит все необходимые изменения в ссылки и файлы конфигурации.
При работе над проектом, ориентированным на более раннюю версию платформы, Visual Studio динамически изменяет среду разработки, как показано ниже:
Фильтрует элементы в диалоговых окнах Добавить новый элемент, Добавить новую ссылку и Добавление ссылки на службу, чтобы пропустить варианты, которые недоступны в целевой версии.
Фильтрует пользовательские элементы управления на панели элементов, удаляя те, что недоступны в целевой версии, и показывая только наиболее актуальные элементы управления, если их доступно несколько.
Фильтрует IntelliSense, чтобы пропустить языковые функции, которые недоступны в целевой версии.
Фильтрует свойства в окне Свойства, чтобы пропустить те, которые недоступны в целевой версии.
Фильтрует пункты меню, чтобы пропустить те, которые недоступны в целевой версии.
Для сборок система использует версию и параметры компилятора, которые подходят для целевой версии.
- Нацеливание на платформу не гарантирует правильную работу приложения. Нужно протестировать приложение, чтобы убедиться в том, что оно работает с целевой версией.
- Ориентироваться на версии платформы, предшествующие .NET Framework 2.0, запрещено.
Выбор целевой версии платформы
При создании проекта .NET Framework выберите целевую версию .NET Framework после выбора шаблона проекта. Список доступных платформ включает их установленные версии, соответствующие типу выбранного шаблона. Для шаблонов проектов, отличных от .NET Framework, например шаблонов .NET Core, раскрывающийся список Платформа не отображается.
Если вы решите создать проект .NET Framework, то увидите интерфейс, похожий на тот, которой показан на снимке экрана:
Если вы решите создать проект .NET, то увидите интерфейс, похожий на тот, которой показан на двух следующих снимках экрана.
На первом экране вы увидите диалоговое окно Настройка нового проекта.
На втором экране появится диалоговое окно Дополнительные параметры.
Изменение требуемой версии .NET Framework
Для существующего проекта Visual Basic, C# или F# вы можете изменить целевую версию .NET в диалоговом окне свойств проекта. Сведения об изменении целевой версии для проектов C++ см. в статье How to: Modify the Target Framework and Platform Toolset (Практическое руководство. Изменение требуемой версии .NET Framework и набора средств платформы).
В обозревателе решений правой кнопкой мыши откройте контекстное меню проекта, в который необходимо внести изменения, и выберите Свойства.
В левом столбце окна Свойства перейдите на вкладку Приложение.
После создания приложения UWP невозможно изменить целевую версию Windows или .NET.
В списке Целевая рабочая среда выберите требуемую версию.
В открывшемся диалоговом окне проверки нажмите кнопку Да.
Проект будет выгружен. При его перезагрузке он будет ориентирован на выбранную версию .NET.
В обозревателе решений правой кнопкой мыши откройте контекстное меню проекта, в который необходимо внести изменения, и выберите Свойства.
В левом столбце окна Свойства перейдите на вкладку Приложение.
После создания приложения UWP невозможно изменить целевую версию Windows или .NET.
В списке Целевая рабочая среда выберите требуемую версию.
Для проекта .NET Framework будет показано диалоговое окно, похожее на то, которое изображено на снимке экрана:
Для проекта .NET будет показано диалоговое окно, похожее на то, которое изображено на снимке экрана:
Если появится диалоговое окно проверки, нажмите кнопку Да.
Проект будет выгружен. При его перезагрузке он будет ориентирован на выбранную версию .NET.
Если код содержит ссылки на другую версию .NET, отличную от целевой, при компиляции и запуске кода могут появиться сообщения об ошибках. Чтобы устранить эти ошибки, измените ссылки. См. раздел Устранение неполадок, связанных с настройкой для определенных версий платформы .NET.
В зависимости от целевой платформы ее можно представить в файле проекта следующим образом:
- Для приложения .NET Core: <TargetFramework>netcoreapp2.1</TargetFramework>
- Для приложения .NET Standard: <TargetFramework>netstandard2.0</TargetFramework>
- Для приложения .NET Framework: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
Разрешение системных ссылок и пользовательских ссылок на сборки
Чтобы нацелиться на определенную версию .NET, нужно сначала установить подходящие ссылки на сборки. Вы можете скачать пакеты разработчика для разных версий .NET на странице скачиваемых материалов .NET.
Для проектов .NET Framework диалоговое окно Добавить ссылку позволяет отключить системные сборки, не относящиеся к целевой версии платформы .NET Framework, чтобы их невозможно было добавить в проект случайно. (Системные сборки — это файлы DLL, включенные в версию платформы .NET Framework.) Ссылки, относящиеся к версии платформы, которая старше целевой версии, не будут разрешены, а зависящие от них элементы управления невозможно будет добавить. Если вы хотите активировать такую ссылку, измените целевую версию платформы .NET Framework для проекта на ту, которая содержит эту ссылку.
Дополнительные сведения о ссылках на сборки см. в разделе Разрешение сборок во время разработки.
Как добавить .NET framework 5.0 в Visual Studio Professional 2019?
Но хотелось бы знать, как добавить этот фреймворк в проект, созданный на Visual Studio 2019 16.8.0.
- Я запустил установщик VS и искал новую структуру, но не могу ее найти.
- Я уже открыл: Проект -> Свойства -> Целевая платформа.
Но самый последний фреймворк, который я получил, — это .NET framework 4.8
Как я могу добавить новую платформу в целевые платформы в Visual Studio 2019?
Обновление:
У меня сейчас конфликт, и я хотел бы знать, в чем разница между .NET framework SDK и .NET framework Developer pack, я ошибаюсь в этом вопросе.
Как упоминалось в приведенной выше ссылке, .NET framework 5.0 отсутствует в списке пакетов разработчика.
Кто-нибудь может мне это объяснить?
1 ответ
Загрузите и установите пакет SDK для Visual Studio 2019 с сайта выпусков .NET Core.
.NET 5.0 является продолжением развития .NET Core и больше не следует старому (.NET 4 и старше) пакету таргетинга. Вместо этого .NET 5 устанавливается как SDK в структуру каталогов .NET Core framework и sdk. Для людей, которые какое-то время занимались .NET Core, это кажется естественным, но, начиная с .NET 4, это в новинку.
Создайте новый тип проекта .NET Core и установите версию .NET на .NET 5.0 :
К сожалению, не существует волшебного мастера для обновления проекта .NET 4 до .NET 5. Пошаговое руководство можно найти здесь:
Многие разработчики ASP.NET в прошлом прошли через эти шаги, чтобы перейти с .NET 4 на .NET Core. В блогах есть много сообщений о проблемах, с которыми они столкнулись, и о том, как они их решили. Процесс очень похож, и теперь есть несколько инструментов, которые помогут вам на этом пути.
Основные шаги одинаковы для каждого проекта .NET 4:
- Измените формат packages.config на <packageReference> .
- Измените файл проекта на новый формат проекта SDK.
- Запустите анализаторы совместимости API. Это подскажет, где ожидать критических изменений.
- Переключите целевую платформу на .NET 5 в файле проекта
- Обновите / измените / добавьте необходимые пакеты nuget в версии, поддерживающие .NET Core / .NET 5.
- Исправьте все проблемы со сборкой.
- Создайте новый проект .NET 5 желаемого целевого типа.
- Добавьте необходимые конфигурации проекта и т. Д.
- Добавьте нужные пакеты NuGet.
- Скопируйте исходники из вашего проекта .NET 4. Или скопируйте файл проекта в папку, в которой находится ваш существующий проект. Он должен автоматически импортировать все исходные файлы.
- Исправить проблемы со сборкой
Приведенное выше руководство по миграции дает вам несколько подходов для выполнения каждого шага.
Практическое руководство. настройку целевых платформ в проектах
Visual Studio позволяет настраивать сборки приложения для различных платформ, включая 64-разрядные платформы. Дополнительные сведения о поддержке 64-разрядных платформ в Visual Studio см. в статье 64-разрядные приложения.
Visual Studio 2022 выполняется как 64-разрядное приложение. Она совершенно отделена от платформ, которые можно выбрать для проектов в Visual Studio. Вы можете использовать любую версию Visual Studio, предназначенную для 32-разрядных и 64-разрядных платформ.
Visual Studio выполняется как 32-разрядное приложение. Она совершенно отделена от платформ, которые можно выбрать для проектов в Visual Studio. Вы можете использовать любую версию Visual Studio, предназначенную для 32-разрядных и 64-разрядных платформ.
Нацеливание на платформы с помощью диспетчера конфигураций
Диспетчер конфигураций позволяет быстро добавить новую платформу для нацеливания проекта. Если выбрать одну из платформ, входящих в Visual Studio, свойства проекта изменяются для сборки проекта в соответствии с выбранной платформой.
Настройка проекта для 64-разрядной платформы
В строке меню последовательно выберите пункты Сборка>Диспетчер конфигураций.
В списке Активная платформа решения выберите 64-разрядную платформу для нацеливания решения, а затем нажмите кнопку Закрыть.
Если нужная платформа не отображается в списке Активная платформа решения, выберите Создать.
Откроется диалоговое окно Создание платформы решения.
В списке Введите или выберите новую платформу выберите x64.
Если вы присваиваете конфигурации новое имя, может потребоваться изменить параметры в конструкторе проектов для нацеливания на соответствующую платформу.
Если требуется скопировать параметры из текущий конфигурации платформы, выберите ее и нажмите кнопку ОК.
Обновляются свойства для всех проектов в решении, нацеленных на 64-разрядную платформу, и следующая сборка проекта будет оптимизирована под 64-разрядные платформы.
Имя платформы Win32 используется для проектов C++ и соответствует x86. Visual Studio поддерживает платформы уровня проекта и платформы уровня решения. При этом платформы проекта основаны на системах проектов для разных языков. Проекты C++ используют Win32 и x64, а платформы решения — x86 и x64. Когда вы выбираете x86 в качестве конфигурации решения, Visual Studio выбирает для проектов C++ платформу Win32. Чтобы просмотреть параметры платформы уровня проекта и платформы уровня решения, откройте Configuration Manager и обратите внимание на два параметра платформы. Платформа уровня решения отображается в раскрывающемся списке Активная платформа решения, а платформа уровня проекта показана в таблице для каждого проекта.
Нацеливание на платформы в конструкторе проектов
Конструктор проектов также предоставляет способ нацеливания проекта на различные платформы. Если выбор одной из платформ в списке диалогового окна Создание платформы решения не подходит для вашего решения, можно создать пользовательское имя конфигурации и изменить параметры в конструкторе проектов для нацеливания на соответствующую платформу.
Способ выполнения этой задачи зависит от используемого языка программирования. Дополнительные сведения см. на следующих страницах:
Для проектов Visual Basic см. раздел /platform (Visual Basic).
Для проектов C++/CLI см. статью /clr (компиляция CLR).
Изменение файла проекта вручную
Иногда необходимо вручную изменить файл проекта, чтобы выполнить ряд пользовательских настроек. Это бывает нужно сделать, к примеру, при наличии условий, которые не могут быть указаны в интегрированной среде разработки (ссылка, имеющая разный вид для двух разных платформ, как показано в следующем примере).
Пример. Ссылки на сборки x86 и x64 и библиотеки DLL
У вас может быть сборка .NET или библиотека DLL с версиями x86 и x64. Чтобы настроить проект для использования этих ссылок, сначала добавьте ссылку, а затем откройте файл проекта и измените его, чтобы добавить ItemGroup с условием, которое ссылается как на конфигурацию, так и на целевую платформу. Например, предположим, что вы ссылаетесь на двоичный файл ClassLibrary1, и существуют разные пути для конфигураций отладки и выпуска, а также версии x86 и x64. Используйте четыре элемента ItemGroup со всеми сочетаниями параметров, как показано далее:
Дополнительные сведения о файле проекта см. в статье Справочные сведения о схеме файлов проектов MSBuild.
Невозможно изменить целевую платформу на «любой процессор»,
Вопрос:
Я работаю на ПК x86 и использую .NET4.0 (тот же пробник с 3.5) в VS2010. Когда я создаю новый проект (например, WinFormsApp), первое, что я хочу сделать, это изменить целевую платформу проекта/решения на “Любой процессор”.
Я делаю следующее:
Свойства проекта → build → изменить TargetPlatform на “Любой процессор”
В верхней части страницы свойств платформа по-прежнему “Active (x86)”, поэтому я делаю
Свойства решения → КонфигурацииMgr → Платформа → новое (поскольку доступно только x86) и создать платформу решений “Любой процессор”.
Теперь свойства проекта являются “активными (любой процессор)”, и я могу изменить его взад и вперед по своему усмотрению.
И теперь проблема: когда я добавляю новый проект, он снова устанавливается на “Active (x86)”, а я -again – не может изменять настройки проекта. В SolutionProperties → ConfigurationManager для этого второго проекта платформа “Любой процессор” недоступна, и я не могу добавить новую, так как она говорит мне, что платформа решений для AnyCPU уже существует…
Что я делаю неправильно? Может ли так сложно установить вновь созданный проект в AnyCPU?
Лучший ответ:
В диспетчере конфигурации вы можете добавить новую платформу для своего проекта. Однако вам нужно снять флажок “Создать новые платформы решений”, если вы уже добавили платформу для своего решения, иначе вы действительно получите предупреждение о том, что платформа решений уже существует.
Ответ №1
Чтобы изменить целевую платформу, выполните следующие действия:
[1.] Откройте диспетчер конфигурации
[2.] На платформах выберите новый.
[3.] Новая платформа выбирает x64 или вам нужно, в разделе “Настройки копирования из” выберите “Любой процессор” или “Пусто” и снимите флажок “Создать новые платформы решений”
источник: ericklan.com
Ответ №2
Для настройки целевой платформы вы можете действовать следующим образом:
- В Visual Studio щелкните правой кнопкой мыши по решениюВыберите “Свойства”
- Появится диалоговое окно настроек
- Нажмите “Настройки конфигурации”. Вы увидите все проекты решения и подтверждение компиляции.
- Нажмите кнопку “Configuration Manager” (вверху справа от диалогового окна).
- Вы увидите два раскрывающихся списка, нажмите “Целевая платформа”, а затем “Создать”, чтобы добавить нужные целевые платформы.
- После добавления желаемых целевых платформ выберите тот, который вы хотите
- Нажмите “Закрыть”, затем “ОК”