小编Jes*_*ter的帖子

SSDT添加要部署的程序集

我有一个旧项目,它使用WCF来为SQL Server提供C#CLR触发器.我总是通过运行脚本来安装它.

但是我决定转到VS 2012上的SSDT项目.我从空数据库导入了项目.WCF功能取决于.net框架中的几个程序集

SMdiagnostics
System.Web
System.Messaging
system.identitymodel
system.identitymodel.selectors
microsoft.transactions.bridge
System.ServiceModel
Run Code Online (Sandbox Code Playgroud)

所以我在项目中引用了这些dll.我还将它们添加到Assemblies子文件夹下的项目中.

但是,当我创建部署脚本时,这些程序集不在其中.

所以当我尝试将脚本发布到数据库时,我收到一个错误.

程序集'system.servicemodel,version = 3.0.0.0,culture = neutral,publickeytoken = b77a5c561934e089.' 在SQL目录中找不到.

如果我尝试创建自定义脚本以将程序集添加到db:

create assembly [SMdiagnostics]
from  'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMdiagnostics.dll'
with permission_set = unsafe
go
Run Code Online (Sandbox Code Playgroud)

我收到错误

错误:SQL70502:程序集源无效.只允许二进制文字.

如何从.NET添加程序集以与我的SSDT项目一起部署?

谢谢.

deployment wcf .net-assembly visual-studio-2012 sql-server-data-tools

2
推荐指数
1
解决办法
2285
查看次数

.Net命名空间可以跨多个程序集吗?

.Net命名空间可以跨多个程序集吗?具体的例子会有所帮助.

.net c# namespaces .net-assembly

2
推荐指数
1
解决办法
1236
查看次数

组装中的IDIV操作(了解)

当我进行手术时

IDIV ecx
Run Code Online (Sandbox Code Playgroud)

在汇编中,然后我已阅读到edx:eax中的值除以操作数ecx。我也知道商存储在eax中,余数存储在edx中。

所以edx:eax中的值到底是什么?

有人可以向我解释吗?

编辑:尽管我已经阅读了一些有关此内容的页面,但我也不理解总是在IDIV操作之前进行“ cdq”操作的原因。

x86 assembly

2
推荐指数
2
解决办法
1500
查看次数

FASM 是否使用 Intel 语法?

我尝试在 FASM 中编译以下代码:

mov DWORD PTR [ebp - 4], 1234567  
Run Code Online (Sandbox Code Playgroud)

它给了我一个“无效表达式”错误。但是以下代码有效:

mov DWORD [ebp - 4], 1234567 
Run Code Online (Sandbox Code Playgroud)

那么 FASM 是否使用 Intel 语法(我假设第一行代码符合 Intel 语法)?

x86 assembly fasm

2
推荐指数
1
解决办法
710
查看次数

程序集x86中的整数之间的划分

我正在开发编译器,当我尝试从以下自定义语言代码生成汇编代码时,我遇到了问题

b:=-2;
c:=-4;
a:=c/b;
Run Code Online (Sandbox Code Playgroud)

为了测试这个结果,我使用if条件询问a == 2但是不是.

这是代码avobe生成的代码片段

mov ax, 1
mov _a, ax

mov ax, -2
mov _b, ax

mov ax, -4
mov _c, ax


mov dx, 0
mov ax, _c   
mov bx, _b
cmp bx, 0
JE label_div0Excp  // jump to division by 0 message
idiv bx  
mov @aux0, ax

mov ax, @aux0
mov _a, ax

mov ax, _a
cmp ax,2

JNE label_1

invoke MessageBox, NULL, addr _message0, addr _message0, MB_OK  //_message0 say that result == 2
Run Code Online (Sandbox Code Playgroud)

enybody可以帮助我吗? …

x86 assembly masm

2
推荐指数
2
解决办法
1378
查看次数

无法从 QEmu 中的磁盘读取

我尝试使用 QEmu 从磁盘读取以下代码:

; Read some sectors from the boot disk using our disk_read function
[org 0x7c00]
mov [BOOT_DRIVE] , dl 
; BIOS stores our boot drive in DL , so store this for later
mov bp , 0x8000
mov sp , bp
; Here we set our stack safely out of the
; way , at 0x8000
mov bx , 0x9000
; Load 5 sectors to 0 x0000 ( ES ):0 x9000 ( BX )
mov dh , 5 …
Run Code Online (Sandbox Code Playgroud)

x86 assembly gdb qemu

2
推荐指数
1
解决办法
1430
查看次数

解码汇编语言(炸弹实验室第5阶段)

好吧,所以这是一个如此受欢迎的炸弹实验室,我现在正处于第5阶段,我只停留在两条线上.这是汇编代码:

Dump of assembler code for function phase_5:
   0x08048e29 <+0>: push   %ebx
   0x08048e2a <+1>: sub    $0x18,%esp
   0x08048e2d <+4>: mov    0x20(%esp),%ebx
   0x08048e31 <+8>: mov    %ebx,(%esp)
   0x08048e34 <+11>:    call   0x804908b <string_length>
   0x08048e39 <+16>:    cmp    $0x6,%eax
   0x08048e3c <+19>:    je     0x8048e43 <phase_5+26>
   0x08048e3e <+21>:    call   0x80493a5 <explode_bomb>
   0x08048e43 <+26>:    mov    $0x0,%edx
   0x08048e48 <+31>:    mov    $0x0,%eax
   0x08048e4d <+36>:    movzbl (%ebx,%eax,1),%ecx
   0x08048e51 <+40>:    and    $0xf,%ecx
   0x08048e54 <+43>:    add    0x804a4a0(,%ecx,4),%edx
   0x08048e5b <+50>:    add    $0x1,%eax
   0x08048e5e <+53>:    cmp    $0x6,%eax
   0x08048e61 <+56>:    jne    0x8048e4d <phase_5+36>
=> 0x08048e63 <+58>:    cmp …
Run Code Online (Sandbox Code Playgroud)

x86 assembly reverse-engineering

2
推荐指数
1
解决办法
1万
查看次数

拆卸简单的C功能

我正在尝试理解简单C函数的底层程序集.

program1.c

void function() {
  char buffer[1];
}
Run Code Online (Sandbox Code Playgroud)

=>

push  %ebp
mov   %esp, %ebp
sub   $0x10, %esp
leave
ret
Run Code Online (Sandbox Code Playgroud)

不确定它是如何到达0x10的?不是字符1字节,即8位,所以它应该是0x08?


program2.c

void function() {
  char buffer[4];
}
Run Code Online (Sandbox Code Playgroud)

=>

push  %ebp
mov   %esp, %ebp
sub   $0x18, %esp
mov   ...
mov   ...
[a bunch of random instructions]
Run Code Online (Sandbox Code Playgroud)

不确定它是如何到达0x18的?另外,为什么在指令之后有那么多附加SUB指令?我所做的只是将数组的长度从1更改为4.

c x86 assembly

2
推荐指数
1
解决办法
178
查看次数

在asp.net web api应用程序中找不到命名空间System.Web.Http.Results

我有一个asp.net web api应用程序,其中我有这一行:

using System.Web.Http.Results;
Run Code Online (Sandbox Code Playgroud)

我的问题是命名空间无法识别,我验证system.Web.Http了bin文件夹中存在的dll !!

所以我需要知道:

  • 这个问题的原因是什么?
  • 我该如何解决?

.net asp.net-mvc .net-assembly asp.net-web-api system.web.http

2
推荐指数
1
解决办法
4246
查看次数

x86-64 汇编:括号中的两个寄存器?movsd (%rdx,%rsi,8),%xmm0

movsd   (%rdx,%rsi,8), %xmm0    ## xmm0 = mem[0],zero
Run Code Online (Sandbox Code Playgroud)

这条线有什么作用?特别是(%rdx,%rsi,8)? (x86-64架构计算机)我从C代码生成了一个汇编文件,该文件执行矩阵乘法,涉及3个循环。我找到了一堆手册,但没有任何真正可靠的信息,即使是看起来“官方”的手册。

我的 Mac OS X 是用 GAS 语法生成的,因此mov其变体的指令按以下顺序排列:

mov source dest

(%rdx,%rsi,8)但没有人解释当类似的东西突然加入队伍时会发生什么 。

请帮助我了解更多相关信息。谢谢。

下面的链接,幻灯片 7是我能找到的最相关的信息(但它可能采用英特尔语法,源和目标翻转) https://www.bowdoin.edu/~sbarker/teaching/courses/spring16/its/lectures /lec15.pdf

assembly x86-64 att

2
推荐指数
1
解决办法
1552
查看次数