Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 08:14   #1
Mobidick
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 4
По умолчанию Компиляция библиотеки классов

Есть некая библиотека классов (.vb), которая при компиляции кода выполняет опредиленные действия.
Нужно выполнить теже самые действия как и при компиляции на нескольких компьютерах, без участия компилятора.
Как это сделать?

Последний раз редактировалось Mobidick; 05.05.2010 в 08:33.
Mobidick вне форума Ответить с цитированием
Старый 05.05.2010, 12:41   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Можно подробнее, что значит при компиляции что-то выполняет?
Hollander вне форума Ответить с цитированием
Старый 05.05.2010, 12:52   #3
Mobidick
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Можно подробнее, что значит при компиляции что-то выполняет?
Конечно можно вот фрагмент кода библиотеки классов:
При помощи проекта развертывания можно компилировать библиотеки классов?
Код:
Imports System
Imports System.Collections
Imports System.Reflection
Imports System.Runtime.InteropServices

Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports SolidWorks.Interop.swpublished
Imports SolidWorksTools
Imports SolidWorksTools.File

<Guid("58c68ff3-be36-4a9a-bb29-2ef89642385d")> _
<ComVisible(True)> _
<SwAddin( _
Description:="SwVBAddin description", _
Title:="SwVBAddin", _
LoadAtStartup:=True _
)> _
Public Class SwAddin
Implements SolidWorks.Interop.swpublished.SwAddin

#Region "Local Variables"
Dim WithEvents iSwApp As SldWorks
Dim iCmdMgr As ICommandManager
Dim addinID As Integer
Dim openDocs As Hashtable
Dim SwEventPtr As SldWorks
'Dim ppage As UserPMPage

' Public Properties
ReadOnly Property SwApp() As SldWorks
Get
Return iSwApp
End Get
End Property

ReadOnly Property CmdMgr() As ICommandManager
Get
Return iCmdMgr
End Get
End Property

ReadOnly Property OpenDocumentsTable() As Hashtable
Get
Return openDocs
End Get
End Property
#End Region
#Region "SolidWorks Registration"

<ComRegisterFunction()> Public Shared Sub RegisterFunction(ByVal t As Type)
' Get Custom Attribute: SwAddinAttribute
Dim attributes() As Object
Dim SWattr As SwAddinAttribute = Nothing

attributes = System.Attribute.GetCustomAttributes(GetType(SwAddin), GetType(SwAddinAttribute))

If attributes.Length > 0 Then
SWattr = DirectCast(attributes(0), SwAddinAttribute)
End If

Dim hklm As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
Dim hkcu As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser

Dim keyname As String = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}"
Dim addinkey As Microsoft.Win32.RegistryKey = hklm.CreateSubKey(keyname)
addinkey.SetValue(Nothing, 0)
addinkey.SetValue("Description", SWattr.Description)
addinkey.SetValue("Title", SWattr.Title)

keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}"
addinkey = hkcu.CreateSubKey(keyname)
addinkey.SetValue(Nothing, SWattr.LoadAtStartup, Microsoft.Win32.RegistryValueKind.DWord)
End Sub
<ComUnregisterFunction()> Public Shared Sub UnregisterFunction(ByVal t As Type)
Dim hklm As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
Dim hkcu As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser

Dim keyname As String = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}"
hklm.DeleteSubKey(keyname)

keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}"
hkcu.DeleteSubKey(keyname)
End Sub
#End Region
#Region "ISwAddin Implementation"

Function ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Integer) As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.ConnectToSW
iSwApp = ThisSW
addinID = Cookie

' Setup callbacks
iSwApp.SetAddinCallbackInfo(0, Me, addinID)

' Setup the Command Manager
iCmdMgr = iSwApp.GetCommandManager(Cookie)
AddCommandMgr()

'Setup the Event Handlers
SwEventPtr = iSwApp
openDocs = New Hashtable
'AttachEventHandlers()

'Setup Sample Property Manager

ConnectToSW = True
End Function

Function DisconnectFromSW() As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.DisconnectFromSW
RemoveCommandMgr()
'DetachEventHandlers()
iSwApp = Nothing
'The addin _must_ call GC.Collect() here in order to retrieve all managed code pointers 
GC.Collect()
DisconnectFromSW = True
End Function

Последний раз редактировалось Stilet; 05.05.2010 в 13:31.
Mobidick вне форума Ответить с цитированием
Старый 05.05.2010, 13:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Mobidick
Интересно а почему ты решил что именно при компиляции происходит выполнение?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2010, 15:46   #5
Mobidick
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Интересно а почему ты решил что именно при компиляции происходит выполнение?
Потому, что при компиляции открывается SolidWorks и к нему добавляется новый инструмент…
Вопрос в том, как скомпилировать (выполнить) код библиотеки классов, без компилятора.

Последний раз редактировалось Mobidick; 05.05.2010 в 15:49.
Mobidick вне форума Ответить с цитированием
Старый 05.05.2010, 15:55   #6
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Ну по идеи никак, т.к. для компиляции нужен компилятор.
Hollander вне форума Ответить с цитированием
Старый 05.05.2010, 16:08   #7
Mobidick
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 4
По умолчанию

Ну может как нить через проект установки можно ?
Mobidick вне форума Ответить с цитированием
Старый 05.05.2010, 18:03   #8
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Через проект установки можно, если написать дополнительную утилиту, которая разберет твой коди сделает то, что надо.
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор не подключает библиотеки классов С/С++ alex.s Помощь студентам 18 25.03.2010 01:32
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
компиляция DarK_NighT Общие вопросы Delphi 1 25.03.2009 13:18
Компиляция xGroupers Общие вопросы Delphi 1 24.03.2008 11:57
Компиляция Lonix Общие вопросы Delphi 2 16.09.2007 16:22