小编CSh*_*der的帖子

在未引用的程序集中定义的C#类型

我有两个项目A和B.项目A在项目B中使用了类型X,所以我在A中添加了B的引用.一切都很好.

我使用强大的命名密钥文件签署了项目B. 一切仍然很好.

然后我决定更改B的强命名密钥文件.我重建了项目B ok.当我尝试构建项目AI时收到错误"错误1类型X在未引用的程序集中定义.您必须添加对程序集B的引用,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 95b41b0d6571627b'. "

所以我删除了项目A中的引用并将其重新添加回来,没有任何乐趣.我可以dbl点击项目A中的项目B引用,打开对象浏览器并在那里看到类型X确定.我也完全限定了A中的X型对象,而intellisense对它们进行了很好的检测,但它仍然没有构建.

我认为更改密钥文件我可能需要更新版本,所以我将程序集B版本更改为2.0.0.0但仍抱怨它需要版本1.0.0.0.查看A中B引用的属性,它肯定指向正确的版本,实际上它显示为2.0.0.0

我可以使用现有的密钥文件但我想知道如果可能的话我会在哪里出错.

c# assemblies reference

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

在多个项目中使用 SQL 数据库

我有一个包含 5 个应用程序的系统。每个应用程序都通过 DAL 库访问数据库。在 DAL 中,我有一个包含以下条目的 app.config:

<connectionStrings>
<add name="DataAccessLayer.Properties.Settings.ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=c:\users\something\something\MyDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

使用 AttachDbFilename 的完整路径效果很好。但我不高兴:

  1. 我已将 app.config 文件复制到使用数据库的每个应用程序中。执行此操作的最佳方法 - 将 DAL app.config 复制为其他项目中的链接?

  2. 当涉及到无法正常工作的部署时,我不需要完整的路径。app.config 中的相对路径似乎不起作用。理想情况下,我希望能够将 DAL 从源代码管理拉到任何计算机上,而不必担心每次更改连接字符串。这:链接讨论 |DataDirectory| 出于部署目的,但这对我来说在调试中不起作用(除非我使用错误,请参见3)

  3. 作为一个单独的问题这可能会更好,但它与 2. - 是否有一种“好的”方法来安排多个项目进行调试?我创建了一个 Bin 目录,并在每个项目设置中将 dll/exe 复制到该 bin 目录。我在这里还有数据库的副本(我在 app.config 中尝试了任何路径,但这也不起作用,|DataDirectory| 也不起作用)。同样令人难以置信的是,相对路径在“调试\工作目录”设置中也不起作用,因此看起来每次将代码检出到新机器时都必须更改这个地方?

对战争与和平表示歉意,并提前感谢您的任何想法。

c# sql database connection-string

3
推荐指数
1
解决办法
1874
查看次数

标签 统计

c# ×2

assemblies ×1

connection-string ×1

database ×1

reference ×1

sql ×1