我最近成为ASP.NET Web项目的维护者.在部署一些更改的过程中,我们注意到在某些时候项目部署的方式已经发生了变化.该项目是一个Web应用程序项目.目前,当我将它"发布"到我的本地机器时,我可以打开各种.aspx文件并查看一些代码 - 一些ASP,主要是JavaScript,但大部分代码似乎都编译成.dll.
我们想要的是构建和部署这个应用程序,以便.aspx文件中没有代码 - 这是它在上一个开发者停止维护它之前的工作方式..aspx文件中根本不应该有代码,只是对已编译的.dll文件的引用.
有谁知道我在说什么以及如何设置它?
编辑如果它有帮助,看起来旧版本的应用程序只有.aspx文件中的文本说"这是由预编译工具生成的标记文件,不应该被删除!" 这就是我想要的.
我有一个基于 MEF 的应用程序,它使用适配器来处理文件。它使用配置文件来确定要监视哪些目录以及使用哪个适配器来处理每种类型的文件。插件采用实现通用接口的 .dll 形式。
每个 .dll 都需要自己的一组依赖库。例如,plugin1.dll 可能需要使用 apilibrary.dll 和 xmllibrary.dll。以后我也可能想添加plugin2.dll,而plugin2.dll也可能使用xmllibrary.dll。这些依赖库会定期更新,因此我不能指望plugin2.dll 使用与plugin1.dll 中使用的完全相同版本的xmllibrary.dll。
我想将每个插件编译为一个 .dll 文件,该文件无形地包含其所有依赖库,这似乎是解决此问题的一种方法。或者,我想弄清楚每个 .dll 文件如何在子文件夹中查找其依赖的库,我相信这也会减少版本控制冲突的可能性。或者也许这个问题有一个我什至没有考虑过的非常简单的解决方案(这总是非常非常有可能)。
有什么想法吗?
我有一个使用"导入和导出"向导创建的SSIS文件.使用该向导似乎将连接字符串硬编码到SSIS文件中; 我想要做的是将连接字符串传递给文件,以便我可以配置目标数据库.有人知道怎么做吗?
编辑更多信息:从技术上讲,我有17个SSIS包,我正在使用dtexec从PowerShell脚本执行.我希望PowerShell脚本/ dtexec能够将连接字符串传递到每个SSIS包中.我使用SQL Server导入/导出向导创建了这些包.
我有一个名为description“类型NVARCHAR(MAX)- 您可以拥有的最大”的专栏。我需要返回这个带有引号的字段,所以我想
SELECT QUOTENAME(description, '"')
Run Code Online (Sandbox Code Playgroud)
这不起作用 - 我收到“字符串或二进制数据将被截断错误”。
我的谷歌搜索告诉我,这个问题可以通过使用 SET ANSI_WARNINGS OFF 来解决,但如果我这样做,我仍然会得到相同的错误。
通常,我只是将值提取到临时表中,并使用比我提取的字段大两个字符的字段,从而确保该QUOTENAME函数不会导致任何问题。但是,如何使一列比 MAX 大两个字符呢?
我有一个大的,凌乱的报告写入连接5个表.一个表中有一列用于几个不同的值 - 实际上是一个"标记"列,其中标记以创造性的方式使用,具体取决于用户想要使用的各种元数据.
因此,我对报告的查询返回3个几乎完全相同的行,这些行仅在"tag"列中有所不同; 例如,我可能会得到:
NAME TAG EMAIL
BOB A BOB@EXAMPLE.COM
BOB B BOB@EXAMPLE.COM
BOB C BOB@EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)
我想要做的是将TAG列的内容拆分为3个单独的查询列,如下所示:
NAME A B C EMAIL
BOB A B C BOB@EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用SQL SERVER CASE/WHEN功能来做到这一点; 我说,例如,当Tag列的值为"A"时,将其返回到"A"列; 如果它是"B",则把它放在"B"中; 我以为这会返回上面的内容,但它给了我这个:
NAME A B C EMAIL
BOB A NULL NULL BOB@EXAMPLE.COM
BOB NULL B NULL BOB@EXAMPLE.COM
BOB NULL NULL C BOB@EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)
这显然不太理想.
Stack Overflow的任何想法,天才?
所以,假设我正在尝试获取属于某个用户组的所有用户的列表.简单:
SELECT *
FROM users, usergroups
WHERE usergroups.user_group_id = 1
Run Code Online (Sandbox Code Playgroud)
现在,假设我想获得属于特定用户组的所有用户的列表,以及以.edu结尾的电子邮件.
SELECT *
FROM users, usergroups
WHERE usergroups.user_group_id = 1
AND users.email LIKE '%.edu'
Run Code Online (Sandbox Code Playgroud)
这很好用.现在假设我们想要获得上述所有内容以及属于用户组2的用户 - 但我们并不关心第二组的电子邮件地址.此查询不起作用:
SELECT *
FROM users, usergroups
WHERE usergroups.user_group_id IN (1,2)
AND users.email LIKE '%.edu'
Run Code Online (Sandbox Code Playgroud)
因为它会过滤第二组中的用户.现在我正在做这样的事情:
SELECT *
FROM users as usrs, usergroups as groups1, usergroups as groups2
WHERE (groups1s.user_group_id = 1 AND users.email LIKE '%.edu')
OR groups2.user_group_id = 2
Run Code Online (Sandbox Code Playgroud)
这给了我想要的结果,但我讨厌它看起来和工作的方式.有更清洁的方法吗?
编辑
我没有在上一次迭代中包含连接.这是查询应该是什么样子:
SELECT *
FROM users as usrs JOIN
usergroups as groups1 on usrs.group_id …Run Code Online (Sandbox Code Playgroud) 我最近在空闲时间开始自由开发PHP + MySQL开发,以补充我从编写C#/ SQL Server代码的全职工作中获得的收入.我注意到的一个与数据库相关的重大差异是MySQL有一个枚举数据类型,而SQL Server没有.
当我注意到enum数据类型时,我立即决定扁平化我的数据模型,转而使用一个使用枚举的大表而不是许多用于离散实体的小表和一个大的"桥"类表.
我目前正在处理的网站是一个唱片公司.我只有一个表来存储标签的版本,即"版本"表.我在任何地方都使用了枚举,我通常会将一个外键用于一个单独的表 - 艺术家名称,标签名称和其他几个.用户可以通过后端编辑这些枚举列.我在枚举时看到的主要优点是使用文本字段可以重用艺术家名称,这样可以提高数据的完整性.我还看到在数据库中拥有更少表的优势.
顺便说一句,我还有一个额外的表和一个桥表 - 有一个"标签"功能,可以为特定版本添加标签,因为这是一个多对多的关系,我觉得一个离散的标签表和一个桥接表将标记连接到发布是合适的
以前从未在数据库中遇到过ENUM数据类型,我想知道我是否正在明智地使用这个功能,或者如果有问题我没有预见到可能会因为这个数据架构而回过头来咬我.经验丰富的MySQL'ers,你怎么看?
c# ×2
sql ×2
asp.net ×1
case ×1
deployment ×1
enums ×1
mef ×1
mysql ×1
null ×1
php ×1
recordstore ×1
sql-server ×1
ssis ×1
t-sql ×1