我有一个已在SQL Server中使用的现有程序集已有一段时间了.今天我添加了一些引用的实验代码System.Data.Linq.在SQL 2008 R2中创建程序集导致此错误:
程序集'system.data.linq,version = 3.5.0.0,culture = neutral,publickeytoken = b77a5c561934e089.' 在SQL目录中找不到.
这并不完全出乎意料,但我想知道如何确定2008 R2中全套标准" 核心 "装配.可能System.Data.Linq不是其中之一 - 但我想证实这一点,并确认标准提供的组件.
在应用程序的Visual Studio项目属性中,有一个"创建没有清单的应用程序"选项.在通过ClickOnce部署应用程序时,此选项是必需的,但我不明白这个选项做了什么,到目前为止我的研究如下......
在禁用该选项并重新编译时,我注意到列出程序集内容的.NET程序集清单仍然完好无损且未更改.在比较二进制文件时(在Beyond Compare中使用Hex比较模式)我注意到这个块已经从EXE图像的末尾删除了:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud)
我相信这是MSDN(应用程序清单)中描述的Windows可执行应用程序清单:
应用程序清单是一个XML文件,它描述和标识应用程序在运行时应绑定到的共享和私有并行程序集.
这里奇怪的是,上面的XML中的应用程序名称和版本似乎具有默认值(MyApp,版本1.0.0.0),而构建此二进制文件的Visual Studio项目具有正确的名称和版本号,因此它似乎对我来说,所有.NET二进制文件(或者无论如何都是EXE文件)都会嵌入相同的默认WindowsEXE清单.是这样吗?我应该在某处设置这些名称和版本值吗?
作为一个使用MS SQL Server的C#开发人员,我更愿意使用我所知道的; 但是,对于一个小项目,许可成本太高,所以我正在寻找使用免费的开源解决方案,如MySQL.哪些免费的RDBMS解决方案在熟悉MS SQL Server的人员的稳定性,性能,功能和易用性方面是最佳的?
我到目前为止考虑的RDBMS是(按字母顺序):
目前我们使用log4net并创建一个新文件夹(通常在C :)以下,具有对工作进程用户的写入和创建访问权限.是否有我们应该或可能使用的标准Windows文件夹,例如LOCALAPPDATA?我猜测LOCALAPPDATA在一般情况下是一个糟糕的选择,因为IIS用户往往是非交互式用户,因此我不认为他们有通常的用户文件夹结构.
可能重复:
处理浮点数中的精度问题
而99.99*0.01 = 0.99
显然这是一个古老的浮点舍入问题,但是这种情况下的舍入误差对我来说似乎很大; 我的意思是我可能预期结果为0.99990000001或某些类似的'接近'结果.
为了记录,我在JavaVM和.Net环境中得到了相同的答案.
.net ×2
sql ×2
asp.net ×1
c# ×1
clr ×1
exe ×1
logging ×1
mysql ×1
open-source ×1
sql-server ×1