Перейти к содержимому

Visual studio 2010 как изменить назначение framework

  • автор:

Как указать целевую платформу .net при сборке c # dll в командной строке Visual Studio 2010?

Я не очень хорошо разбираюсь в создании dll и Visual Studio. Но у меня есть несколько файлов в Unity3d, которые я всегда создаю в DLL с помощью Visual Studio Command Prompt 2010. Это, похоже, работает нормально, за исключением сборки для.NET Framework 4, и для работы с Unity должно быть 3.5. Однако я не могу найти аргумент командной строки, чтобы указать это.

Итак, что мой вопрос, как это указать в командной строке? (если возможно)

2 ответа

Вы должны иметь возможность перейти к свойствам проекта (щелкните правой кнопкой мыши + свойства имени проекта в решении) и укажите целевую структуру.

TargetFramework может быть сконфигурирован только в файле Project и не может быть передан в качестве переключателя на CSC.exe, см. настройки для TargetFrameworkVersion и TargetFrameworkProfile в приведенном ниже примере.

Таким образом, единственный способ динамически установить — это изменить файл проекта ниже и скомпилировать с помощью csc.exe, если вы хотите установить профиль клиента

Целевой профиль клиента.NET Framework 4.0

Цель.NET Framework 4.0

поэтому переопределение значения в файле proj, а также в ToolsVersion.

Чтобы узнать, какая версия msbuild используется по умолчанию, запустите командную строку Visual Studio (в меню «Пуск»> Microsoft Visual studio 2010> Visual Studio Tools) и введите msbuild. Первая строка вывода будет содержать вашу BuidEngineversion:

Из документа msdn:

Вы также можете проверить Environment vars на версию установленной рамки: set F из командной строки Visual Studio дает мне этот результат:

Targeting C++/CLI Projects to .Net Framework 3.X in Visual Studio 2010

If you work with C++/CLI projects, and recently jumped to Visual Studio 2010, you have probably noticed that Visual Studio re-targeted your project to .Net Framework 4. This is the default behavior when converting C++/CLI projects to VS2010, as some of its C++ compiler tools are only compatible with .Net Framework 4.

The problem is that sometimes you cannot jump to .Net 4 yet. Maybe because customer’s restrictions, maybe because compatibility problems with 3rd party tools, whatever… If that’s your case, you need to target to .Net Framework 3.0 or 3.5, and still want to use VS2010, you can do the following:

(Source: here and here and even better here)

1.- Change the target Framework of your project

On a C# project, you can select the target Framework by simply changing a value in a combo box. On a C++/CLI project, you will find this in the project properties page:

It´s just a read-only value, that you cannot change directly. To change it, you must edit the project´s file (.vcxproj). To do so, open it in the notepad, or better, use the new feature included in VS2010: Edit project file by right-clicking in the project and selecting the following menu entry:

image

You will end up with an xml view of the file. Search for a node called PropertyGroup. As a child node of this one, you should create another one with the form:

< TargetFrameworkVersion > v4.0 </ TargetFrameworkVersion >

It might already be there or not. If it’s not, create it. If it is, just edit its value, setting the target framework version you want: v3.0, v3.5, etc, ending with something like this:

image

After the change, the project properties page will reflect the new target framework

2.- Reload the project

After any change in project’s file, you will need to reload it, by closing and re-opening the solution, or by selecting “Reload Project” in the context menu of VS.

3.- Install Visual Studio 2008 SP1

If you remember, we said that the VS2010 C++ compiler tools were not compatible with any Framework other than 4.0. That’s why as soon you change the target Framework and recompile, VS2010 will try to use the C++ compiler tools of Visual Studio 2008. If they are not present, it will stop the compilation with an error, requesting you to install VS2008.

Just a quick note: you need to install also the Service Pack 1 to VS2008.

4.- Issues

In my case, and with my specific project, the Microsoft C++/CLI Optimizing Compiler crashed if I targeted the project to .Net Framework 3.5. I really didn’t investigate why, as I really wanted to target v3.0 and didn’t have much time. Targeting v3.0 worked just fine.

So if you find the same error and find the reason or a solution, please comment!

Visual studio 2010 как изменить назначение framework

In Visual Studio 2010 Beta, when we create new project with visual Web Part it takes Framework 4.0 default. But when we open the properties fo project from solution explorer, its shows target framework 3.5. Is it bugs in Beta version or what?

Also MOSS2007 was build on top of framework 2.0, then what about SharePoint 2010? is it build on top of framework 4.0 or what?

Все ответы

Is there any reason for running beta software now that the product has shipped in a final state?

The reason could be that SharePoint is using .NET Framework v3.5. The v4 framework is a totally separate beast, and the reason for the behavior you see could be that SharePoint isn’t meant to be running on the v4 Framework. For example, the application pool must be set to running in a .NET v4 context which means that the whole SharePoint 2010 infrastructure will be running on the v4 framework.

SharePoint 2010 is using .NET Framework v3.5 SP1, so if there is no specific requirement to use v4 features, it would be much easier to stick with v3.5 SP1.

Ориентация .NET Framework 4.5 с помощью Visual Studio 2010

Сегодня я установил .NET Framework 4.5 на своем компьютере, ожидая, что смогу использовать его из Visual Studio 2010, поскольку это просто небольшое обновление, которое не должно создавать проблем для Visual Studio 2010. К сожалению, я даже не вручную удаляю некоторые версии 4.0 и добавляю соответствующие сборки 4.5, в результате чего исходные сборки 4.0 все еще упоминаются в проекте.

Можно ли настроить таргетинг версии 4.5 на Visual Studio 2010, и если да, то как? Я бы очень хотел использовать ленты.

ОТВЕТЫ

Ответ 1

Каждая версия Visual Studio до Visual Studio 2010 привязана к определенной платформе .NET. (VS2008 -.NET 3.5, VS2005 -.NET 2.0, VS2003 -.NET1.1). Visual Studio 2010 и более поздние версии позволяют ориентироваться на версии предыдущих версий, но не могут использоваться для будущих выпусков. Вы должны использовать Visual Studio 2012 для использования .NET 4.5.

Ответ 2

Есть довольно ограниченные сценарии, которые я могу придумать, где это было бы полезно, но позвольте предположить, что вы не можете получить средства на покупку VS2012 или что-то в этом роде. Если в этом случае и у вас есть Windows 7+ и VS 2010, вы можете использовать следующий взломанный пакет, который, похоже, работает (но пока я еще не полностью развернул приложение, используя этот метод).

Резервное копирование файла проекта.

Загрузите и установите Windows 8 SDK, который включает в себя .NET 4.5 SDK.

Откройте проект в VS2010.

Создайте текстовый файл в вашем проекте с именем Compile_4_5_CSharp.targets со следующим содержимым. (Или просто скачайте его здесь — Обязательно удалите расширение «.txt» из имени файла):

Разгрузите проект (щелкните правой кнопкой мыши → выгрузить).

Отредактируйте файл проекта (щелкните правой кнопкой мыши → Изменить *.csproj).

Внесите следующие изменения в файл проекта:

а. Замените по умолчанию Microsoft.CSharp.targets целевым файлом, созданным на шаге 4

б. Измените платформу по умолчанию на .NET 4.5

с. Добавьте платформу AnyCPU , чтобы обеспечить таргетинг других фреймворков, как указано в свойствах проекта. Это должно быть добавлено непосредственно перед первым тегом <ItemGroup> в файле

Сохраните изменения и закройте файл *.csproj .

Перезагрузите проект (щелкните правой кнопкой мыши → Обновить проект).

В диспетчере конфигурации (Build → Configuration Manager) убедитесь, что для вашего проекта выбрана платформа .NET 4.5.

В диспетчере конфигурации создайте новую платформу решений для «.NET 4.5» (вы можете использовать ее «Любой процессор» ) и убедитесь, что для решения выбрано «.NET 4.5».

Создайте проект и проверьте наличие ошибок.

Предполагая, что сборка завершена, вы можете проверить, что вы действительно нацелились на 4.5, добавив ссылку на 4.5 конкретного класса в исходный код:

При компиляции с использованием платформы .NET 4.5 сборка должна быть успешной. Когда вы компилируете под платформой «Любой процессор», вы должны получить ошибку компилятора:

Ответ 3

FYI, если вы хотите создать пакет установщика в VS2010, к сожалению, он предназначен только для .NET 4. Чтобы обойти это, вы должны добавить NET 4.5 в качестве условия запуска.

Добавьте следующие условия в Условия запуска установщика (щелкните правой кнопкой мыши, View, Launch Conditions).

В «Поиск целевой машины» щелкните правой кнопкой мыши и выберите «Добавить поиск в реестре».

Добавить новое «Состояние запуска»:

378389 =.NET Framework 4.5

378675 =.NET Framework 4.5.1, установленный с Windows 8.1

378758 =.NET Framework 4.5.1, установленный в Windows 8, Windows 7 с пакетом обновления 1 (SP1) или Windows Vista SP2

379893 =.NET Framework 4.5.2

Ответ 4

Я боролся с интеграцией VS2010/DNFW 4.5 и, наконец, получил эту работу. Начиная с VS 2008, был введен кеш сборок, который используется Visual Studio под названием «Связанные сборки». Этот кеш файл для VS 2010 находится в \Reference Assemblies\Microsoft\Framework.NetFramework\v4.0. Visual Studio загружает сборки фреймов из этого места, а не из каталога установки инфраструктуры. Когда Microsoft заявляет, что VS 2010 не поддерживает DNFW 4.5, это означает, что этот каталог не обновляется при установке DNFW 4.5. После того, как вы замените файлы в этом месте обновленными файлами DNFW 4.5, вы обнаружите, что VS 2010 с радостью будет работать с DNFW 4.5.

Ответ 5

Из другого поиска. Работал для меня!

«Вы можете использовать Visual Studio 2010 и поддерживать его, если ваша ОС поддерживает .NET 4.5.

Щелкните правой кнопкой мыши по вашему решению, чтобы добавить ссылку (как и вы). Когда появится диалоговое окно, выберите пункт «Просмотр», затем перейдите к следующей папке:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework \.Net Framework\4.5

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *