Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加对类库的引用_C#_.net - Fatal编程技术网

C# 添加对类库的引用

C# 添加对类库的引用,c#,.net,C#,.net,我有一个类库,我们称之为UtilityLibrary 我有一个控制台应用程序。因此,我右键单击我的解决方案并添加了一个现有项目(UtilityLibrary)。我注意到我可以在控制台应用程序中更改UtilityLibrary的代码 问题是,如果我将UtilityLibrary添加到另一个应用程序中,并且代码已更改,则可能会导致问题。我试图避免添加dll引用,所以我想我会添加一个对我的项目的引用,但是我担心代码被编辑 我是否错误地添加了对项目的引用 不,你没有做错什么。您不能仅仅更改已编译程序集的

我有一个类库,我们称之为UtilityLibrary

我有一个控制台应用程序。因此,我右键单击我的解决方案并添加了一个现有项目(UtilityLibrary)。我注意到我可以在控制台应用程序中更改UtilityLibrary的代码

问题是,如果我将UtilityLibrary添加到另一个应用程序中,并且代码已更改,则可能会导致问题。我试图避免添加dll引用,所以我想我会添加一个对我的项目的引用,但是我担心代码被编辑


我是否错误地添加了对项目的引用

不,你没有做错什么。您不能仅仅更改已编译程序集的代码。您正在使用Visual Studio中的功能。由于您是在这台机器上构建的,并且包含了PDB,因此它可以告诉您程序集源自您机器上的源代码。所以它允许你编辑它


这些编辑不会立即进入已编译的程序集中,您必须再次编译它才能进入程序集中。(请注意,您可以使用重构从任何.NET程序集中提取源代码)

如果您要在哪里检查
Debug
Release
文件夹,如果您的控制台应用程序,您应该看到
UtlityLibrary.dll
文件,这仍然意味着您最终将添加一个dll引用(VisualStudio将为您执行此操作)

由于您不希望允许外部实体更改应用程序,因此只需添加DLL引用即可


只是澄清一下,您只能从另一个应用程序更改一个DLL的源代码,因为visual studio可以找到源文件并使其对您可用。

因此,如果我添加DLL引用,人们将无法从控制台应用程序中更改代码?如果以后我需要更改类库,我会o我只需要重新编译它&引用它的任何项目都会自动开始使用它?或者使用它的项目已经创建了dll的副本,因此需要重新添加引用吗?这确实会起作用。如果您引用程序集,并且程序集得到更新,那么如果您编译另一个程序集,它将自动采用较新的版本项目。好的,谢谢。你为什么要将引用添加为项目?对我来说似乎不安全什么不安全?最终结果是一个程序集。你不向客户发送代码项目,而是发送一组程序集。如果你在一个解决方案中跨多个项目,它很有用,因为它在调试时为你提供了更多信息。