J
J.A. García Barceló
Although project server databases are stored on the same SQL Server as our
corporate database, we need to add some business logic for interacting one
with the other. Since Project 2007 SDK states "we strongly advise developers
to use the PSI to access Project Server data in the Draft, Published, and
Archive databases rather than accessing the databases directly." that's what
we are trying to do: Use PSI WebServices from CLR procedures to
access/update project data.
When we try to deploy the CLR, we receive the following error message (exact
error messages may vary, since I have translated them from spanish):
[...]
Running deployment script: PreDeployScript.sql...
Deploying file: ProjectServerCLR.dll, path:
C:\...mypath...\ProjectServerCLR\ProjectServerCLR\obj\Release\ProjectServerCLR.dll...
Error: Assembly 'microsoft.office.project.server.library, version=12.0.0.0,
culture=neutral, publickeytoken=71e9bce111e9429c.' was not found in the SQL
catalog.
So, I tried to manually excute the following T-SQL query:
CREATE ASSEMBLY MicrosoftOfficeProjectServerLibrary
FROM 'C:\\Project 2007
SDK\REDIST.TXT\Microsoft.Office.Project.Server.Library.dll'
WITH PERMISSION_S2007 Office System Developer ResourcesET = UNSAFE
And I receive:
Mesg. 10301, Level 16, Status 1, Line 4
Assembly 'Microsoft.Office.Project.Server.Library' references assembly
'microsoft.sharepoint.security, version=12.0.0.0, culture=neutral,
publickeytoken=71e9bce111e9429c.', which is not present in the current
database. SQL Server attempted to locate and automatically load the
referenced assembly from the same location where referring assembly came
from, but that operation has failed (reason: 2(The system cannot find the
file specified.)). Please load the referenced assembly into the current
database and retry your request.
So I did a search for Microsoft.Sharepoint.Security.dll and copied it onto
'C:\2007 Office System Developer Resources\Project 2007 SDK\REDIST.TXT\' and
retried the query. The second time, the missing assembly was System.Web.dll,
the third time System.Drawing.dll... After 13 attempts, the list of required
dlls to register assembly Microsoft.Office.Project.Server.Library in SQL
catalog is:
Microsoft.SharePoint.Security.dll
System.Design.dll
System.DirectoryServices.dll
System.DirectoryServices.Protocols.dll
System.Drawing.Design.dll
System.Drawing.dll
System.EnterpriseServices.dll
System.Runtime.Remoting.dll
System.Runtime.Serialization.Formatters.Soap.dll
System.Web.dll
System.Web.RegularExpressions.dll
System.Windows.Forms.dll
....
and we have not yet been able to register our assembly because we cannot
register Microsoft.Office.Project.Server.Library.dll either (another one is
missing).
Are we doing something wrong? Is this the correct way to create CLR
functions and stored procedures to interact with Project Server Interface?
We have managed to create a WinForm application to do all the logic we need,
but we cannot make the step into converting that logic into a CLR because of
this problem.
Any help would be greatly appreciated. Thanks in advance.
corporate database, we need to add some business logic for interacting one
with the other. Since Project 2007 SDK states "we strongly advise developers
to use the PSI to access Project Server data in the Draft, Published, and
Archive databases rather than accessing the databases directly." that's what
we are trying to do: Use PSI WebServices from CLR procedures to
access/update project data.
When we try to deploy the CLR, we receive the following error message (exact
error messages may vary, since I have translated them from spanish):
[...]
Running deployment script: PreDeployScript.sql...
Deploying file: ProjectServerCLR.dll, path:
C:\...mypath...\ProjectServerCLR\ProjectServerCLR\obj\Release\ProjectServerCLR.dll...
Error: Assembly 'microsoft.office.project.server.library, version=12.0.0.0,
culture=neutral, publickeytoken=71e9bce111e9429c.' was not found in the SQL
catalog.
So, I tried to manually excute the following T-SQL query:
CREATE ASSEMBLY MicrosoftOfficeProjectServerLibrary
FROM 'C:\\Project 2007
SDK\REDIST.TXT\Microsoft.Office.Project.Server.Library.dll'
WITH PERMISSION_S2007 Office System Developer ResourcesET = UNSAFE
And I receive:
Mesg. 10301, Level 16, Status 1, Line 4
Assembly 'Microsoft.Office.Project.Server.Library' references assembly
'microsoft.sharepoint.security, version=12.0.0.0, culture=neutral,
publickeytoken=71e9bce111e9429c.', which is not present in the current
database. SQL Server attempted to locate and automatically load the
referenced assembly from the same location where referring assembly came
from, but that operation has failed (reason: 2(The system cannot find the
file specified.)). Please load the referenced assembly into the current
database and retry your request.
So I did a search for Microsoft.Sharepoint.Security.dll and copied it onto
'C:\2007 Office System Developer Resources\Project 2007 SDK\REDIST.TXT\' and
retried the query. The second time, the missing assembly was System.Web.dll,
the third time System.Drawing.dll... After 13 attempts, the list of required
dlls to register assembly Microsoft.Office.Project.Server.Library in SQL
catalog is:
Microsoft.SharePoint.Security.dll
System.Design.dll
System.DirectoryServices.dll
System.DirectoryServices.Protocols.dll
System.Drawing.Design.dll
System.Drawing.dll
System.EnterpriseServices.dll
System.Runtime.Remoting.dll
System.Runtime.Serialization.Formatters.Soap.dll
System.Web.dll
System.Web.RegularExpressions.dll
System.Windows.Forms.dll
....
and we have not yet been able to register our assembly because we cannot
register Microsoft.Office.Project.Server.Library.dll either (another one is
missing).
Are we doing something wrong? Is this the correct way to create CLR
functions and stored procedures to interact with Project Server Interface?
We have managed to create a WinForm application to do all the logic we need,
but we cannot make the step into converting that logic into a CLR because of
this problem.
Any help would be greatly appreciated. Thanks in advance.