Reputation: 49
I'm trying to publish a database using Visual Studio, the project has no issues plus I downloaded the (Data storage and processing) toolset. Yet I keep getting SQL:72025 error every time I try to deploy the project.
SQL:72025: The referenced assembly .DLL is corrupt or invalid.
I get the same message if I try to build the project too. Now I noticed that usually when we click to publish under the solution explorer a window will pop out to configure the target database setting, I don't get that window, instead, the project executes directly and fail.
There is nothing complex about the DB, it is just 4 tables and 1 post-deployment script
Also here is the script for the DB for your reference
CREATE TABLE [dbo].[RoomTypes]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Title] NVARCHAR(50) NOT NULL,
[Description] NVARCHAR(MAX) NOT NULL,
[RoomPrice] MONEY NOT NULL,
)
CREATE TABLE [dbo].[RoomDetails]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[RoomTypeID] INT NOT NULL,
[RoomNumber] NVARCHAR(10) NOT NULL,
[Available] BIT NOT NULL,
CONSTRAINT [FK_RoomDetails_RoomTypes] FOREIGN KEY ([RoomTypeID]) REFERENCES RoomTypes(Id)
)
CREATE TABLE [dbo].[GuestDetails]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[FristName] NVARCHAR(50) NOT NULL,
[LastName] NVARCHAR(50) NOT NULL,
[Phone] NVARCHAR(50) NULL,
[Email] NVARCHAR(50) NULL
)
CREATE TABLE [dbo].[BookingDetails]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[FromDate] DATETIME2 NOT NULL,
[ToDate] DATETIME2 NOT NULL,
[CheckIn] BIT NOT NULL DEFAULT 0,
[TotalCost] MONEY NOT NULL,
[GuestId] INT NOT NULL,
[RoomId] INT NOT NULL
CONSTRAINT [FK_BookingDetails_GuestDetails] FOREIGN KEY ([GuestId]) REFERENCES GuestDetails(Id),
CONSTRAINT [FK_BookingDetails_RoomDetails] FOREIGN KEY ([RoomId]) REFERENCES RoomDetails(Id)
)
/*
Post-Deployment Script Template
--------------------------------------------------------------------------------------
This file contains SQL statements that will be appended to the build script.
Use SQLCMD syntax to include a file in the post-deployment script.
Example: :r .\myfile.sql
Use SQLCMD syntax to reference a variable in the post-deployment script.
Example: :setvar TableName MyTable
SELECT * FROM [$(TableName)]
--------------------------------------------------------------------------------------
*/
if not exists (Select 1 from dbo.RoomTypes)
begin
insert into dbo.RoomTypes (Title,Description) values
('King Size Bed', 'A room with a king-size bed and a nice view'),
('Two Queen Size Bed', 'A room with two queen-size beds and a nice view'),
('Executive Suite', 'Two rooms, each with a King-size bed and a nice view');
end
if not exists (select 1 from dbo.RoomDetails)
begin
declare @roomId1 int;
declare @roomId2 int;
declare @roomId3 int;
select @roomId1 = Id from dbo.RoomTypes where Title = 'King Size Bed';
select @roomId2 = Id from dbo.RoomTypes where Title = 'Two Queen Size Bed';
select @roomId3 = Id from dbo.RoomTypes where Title = 'Executive Suite';
insert into dbo.RoomDetails (RoomNumber,RoomTypeID,Available) values
('101',@roomId1,1),
('102',@roomId1,1),
('202',@roomId1,1),
('105',@roomId2,1),
('205',@roomId2,1),
('505',@roomId3,1);
end
I also checked the below post but the solution didn't work for me plus the reason for getting the same error is different too. SQL:72025: The referenced assembly .DLL is corrupt or invalid
Could the error be because I am using parallels desktop app? The mac I am using is an intel mac.
Thank you all.
Upvotes: 2
Views: 468
Reputation: 49
I just want to let everyone know that the issue I faced here, the "SQL:72025 " was due fact that I was using Parallels Desktop for mac. I did the same thing on a windows PC and everything was completely fine. So if anyone out there is planning to use Desktop for mac to develop .net applications, although it's a very powerful application, I personally suggest sticking with a windows PC to do so.
Upvotes: 1
Reputation: 49410
Your problem is the insert into room types
you set [RoomPrice] MONEY NOT NULL,
but when you insert it into your database you have no price in the insert, as the column doesn't allow NULL values it produces an error
So change your insert to
if not exists (select 1 from dbo.RoomDetails)
begin
DECLARE @a int;
SET @a = 1
insert into dbo.RoomTypes (Title,Description,RoomPrice) values
('King Size Bed', 'A room with a king-size bed and a nice view',100),
('Two Queen Size Bed', 'A room with two queen-size beds and a nice view',200),
('Executive Suite', 'Two rooms, each with a King-size bed and a nice view',300);
end
here is the example fiddle
Upvotes: 0