2013-05-18 4 views
1

У меня возникли проблемы с созданием объединенной DLL для установки на .net4.0 на машине с Windows 8. Я могу успешно строить отдельные библиотеки DLL .net4.0 в VS2012, так что я не имею эту проблему:Target. Net 4.0 при использовании Windows 8/VS2012

Targeting .NET 4.0 in VS 2012 on Windows 8

я пришел через следующий отличную блоге, которые обсуждают мой вопрос:

http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

, а также:

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib

который SuG Я использую на мысль, следующий синтаксис в процессе слияния:

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" 

К сожалению, в Windows 8 не имеют этот каталог. Я могу думать о следующих возможных решениях, но было бы интересно узнать, разрешил ли кто-нибудь это.

  1. Скопируйте сборки .net 4.0 из машины Windows 7 в указанный выше каталог вручную.
  2. Найти сборки .net 4.0, используемые VS2012, и ссылаться на них.
  3. ??
+0

Это, конечно, потому, что на этой машине у вас просто не было .NET 4.0. У машины Windows 8 с VS2012 только .NET 4.5. Поэтому вы должны строить проекты, ориентированные на 4,5. Это автоматически решает эту проблему. –

+0

@HansPassant - Вы делаете хороший момент, но мне все еще нужно создавать сборки для систем .net2.0 +. Это не проблема для .net2.0 и .net3.5, поскольку они доступны в Windows 8, проблема была в .net4.0. – MarcF

ответ

1

Большое спасибо за комментарии и отзывы. Рабочее (хакерское) решение должно было сделать следующее:

  1. Создать новый каталог на окнах 8, C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0.
  2. Сходить в окнах 7 машин, которые не установлены .net4.5, и скопировать содержимое папки C:\Windows\Microsoft.NET\Framework\v4.0.30319
  3. Вставить файлы из шага 2, в папку, созданную на шаге 1.

Я был тогда в состоянии правильно ссылаться на .net4.0 сборки в Windows 8, используя следующие:

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0" 

испытано, как работает нормально.

+0

Другой вариант - установить VS2k10 вместе с ним. – user7116

+0

@sixlettervariables - У меня был VS2010 с самого начала, что не помогло. – MarcF

+0

Он добавил это для меня, у вас должна быть странная конфигурация. Вы используете версии Express? – user7116

1

Я также использую Windows 8 и VS 2012, но не сталкивался с этой проблемой (и, конечно же, множество других людей тоже прекрасное). Очень просто, возможно, у вас установлены версии v3.5 или v4.5, а это значит, что вам нужно установить v4.0 framework (... снова, если вы уже пробовали).

Я также обнаружил, что путь к папке, который вы дали, не привел меня никуда на моем ПК, но этот путь сделал;

C:\Program Files\Reference Assemblies\Microsoft\Framework\ 

Вы можете попробовать этот путь на своем компьютере и посмотреть, есть ли там папка v4.0.

+0

У меня есть каталог «C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \», но у меня там только v3.0, v3.5. – MarcF

+0

Можете ли вы попробовать @ 'C: \ Program Files \ Reference Assemblies \ Microsoft \ VSTO40 \ v4.0.Framework'? –

+0

@Ronak - этот каталог существует, но содержит только файлы Microsoft.Office ... и Microsoft.VisualStudio .... – MarcF

 Смежные вопросы

  • Нет связанных вопросов^_^