Сообщения

Показаны сообщения с ярлыком ".Net Framework"

The type or namespace name 'IISOle' could not be found (are you missing a using directive or an assembly reference?)

Изображение
Проблема открытия проектов .NET Framework призванных администрировать IIS 5 или 6 в Windows поздних версия. Задача, чтоб в Windows появился файл C:\Windows\System32\inetsrv\ adsiss.dll На примере Windows 7. Заходите в компоненты Windows и добавьте "Совместимость конфигурации метабазы IIS и IIS 6". Далее перекомпилируйте проект. Если не помогает, то References проекта удалите ссылку на IISOle, потом в контекстном меню на проекте выберите "Add Reference...", в открывшемся окне перейдите на вкладку COM и выберите "Active DS IIS Namespace Provider". Это приведет к возвращение референса на IISOle. Есть еще одни вариант - альтернативный. Не проверял. Можно взять полученные в рабочем проекте Interop Dll и положить их в какую-либо папку внутри солюшена (обычно Librarys). Референсы во всех использующих проектах убить и пересоздать на эту DLL. Например для "Active DS IIS Namespace Provider" это будет у вас DLL-файл по имени Interop.IISO...

Ускорение компиляции Visual Studio Solution методом "Copy Local = False".

Обычное исключение из компиляции не изменяемых проектов через  Build -> Configuration Manager (колонка Build напротив каждого проекта)  не единственный подход для ускорения компиляции в Visual Studio (VS). Другой способ, строится на том, что нужно отключить поведение Visual Studio по умолчанию, когда VS копирует сборки проектов, в проекты которые ссылаются на первые. Почему и как: Если проект A ссылается на проект B, то проект B компилируется первым. По умолчанию, сборка проекта B дублируется и кладется вместе со сборкой проекта A. Подход предлагает отключить копирование сборок проектов в Solution с помощью установки свойства референса на сборку Copy Local равным False, а также помещать все сборки в общую папку. Когда применять: Я бы использовал только для крайне больших солюшенов, когда более 5 - 10 проектов. Думаю, не стоить без нужды запутывать разработку. Реализация. Общее описание, которое подойдет для существующих проектов и для вновь создаваемых. Внимание! Не приступайте к р...

Способы слияния сборок .NET Framework.

 Merging assemblies приятная задачка, позволяющая на выходе получить один исполняемый файл или одну dll. Слияние (мерджинг) сборок можно выполнить двумя основными способами: Использовать утилиту слияния. Самая распространенная и бесплатная утилита, это утилита командной строки  ILMerge . Чтоб ее использовать, например, бросьте в папку главного проекта ILMerge.exe, потом зайдите в свойства этого проекта и в Buil Events пропишите в поле Post-buid events command line вызов этой утилиты, например так: "$(ProjectDir)ilmerge" /out: "$(ProjectDir) !Output \$(TargetFileName)" "$(TargetPath)" "$(TargetDir)Prived.Midved.dll" "$(TargetDir)WindowsProcessManager.dll" del "$(ProjectDir)!Output\$(ProjectName).pdb" Где ключ /out указывает куда класть не по умолчанию готовую сборку или экзешник. В нашем случае это будет папка  !Output в корне проекта. Потом перечисляются сборки, который нужно запихнуть в итоговый ф...

.NET Framework: Слабо документированная фича инициализаторов C#, граничущая с приличиями.

Решарпер наткнул меня на следующий интересный случай. Я порылся и ничего не нашел в MSDN. Это относиться к .NET Framework 3.0 и длалее.   Оказывается запись var classLevelOne = new ClassLevelOne {     PropClassLevelTwoInOne =     {         ClassLevelThreeInTwo = new ClassLevelThree ()      } }; Не тоже самое, что запись var classLevelOne = new ClassLevelOne {     PropClassLevelTwoInOne =  new PropClassLevelTwo     {         ClassLevelThreeInTwo = new ClassLevelThree ()      } };   Первая запись говорит о том, что нужно не задать, а взять из свойства (PropClassLevelTwoInOne ) уже заданный там ранее объект и задать члены этого объекта. Как я понимаю, объект в этом свойстве нужно задать ранее в конструкторе или в этом же "скобочном" инициализаторе.   Я был немного шокирован, но дебаггинг не дал соврать, потому что выпадает исключение, если свойтсво PropClassLevelTwoInOne ссылается на null.   А ответ удалось найти в спецификации языка ...

Error 1 Metadata fileC:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dllcould not be found

Эта ошибка лечится переустановкой/восстановлением .NET Framework. Я переустановил 3.5, но кто-то переставляет 2.0. Ошибка Наблюдается на Windows XP. Причина: Видимо кривая установка в следствии чего отсутсвуют некоторые сборки из .NET Framework 2.0. Дополнительно можете погуглить.