Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 在VisualStudio中对多个项目进行重构;“链接文件”;_C#_Visual Studio_Visual Studio 2010_Refactoring - Fatal编程技术网

C# 在VisualStudio中对多个项目进行重构;“链接文件”;

C# 在VisualStudio中对多个项目进行重构;“链接文件”;,c#,visual-studio,visual-studio-2010,refactoring,C#,Visual Studio,Visual Studio 2010,Refactoring,我在VisualStudio的不同解决方案中有几个C#项目。 有许多.cs文件是从不同的项目引用的(不是同一个.cs文件的副本,而是只有一个文件和多个项目中的多个引用) 现在我已经创建了一个通用解决方案(.sln),其中导入了我的所有项目(.csproject) 我需要的是在我所有的项目中重构一些变量名 我试图在VisualStudio中打开.cs文件并进行重构,但它只会在该项目中更改该变量的所有名称,而不会更改所有项目的名称!如果我在其他项目中发现了错误,因为变量找不到,我不能用同样的方法进行

我在VisualStudio的不同解决方案中有几个C#项目。 有许多.cs文件是从不同的项目引用的(不是同一个.cs文件的副本,而是只有一个文件和多个项目中的多个引用)

现在我已经创建了一个通用解决方案(.sln),其中导入了我的所有项目(.csproject)

我需要的是在我所有的项目中重构一些变量名

我试图在VisualStudio中打开.cs文件并进行重构,但它只会在该项目中更改该变量的所有名称,而不会更改所有项目的名称!如果我在其他项目中发现了错误,因为变量找不到,我不能用同样的方法进行重构

那么,我能做什么

我提供一些其他信息:

  • 所有项目在每个单独的解决方案中分别编译

  • 在通用解决方案中,我导入所有*.csproj,如果我同时或单独构建所有项目,它们将正确构建

  • 许多项目中引用的所有.cs文件都是通过链接添加的,而不是复制的

  • 如果我在一个项目(.csproj)中打开一个公共.cs文件,并尝试在另一个项目(.csproj)visual studio中打开相同的.cs文件,请给出错误“该文件已在解决方案的另一个项目中打开”

  • 也许最重要的是:如果我在一个项目中打开一个common.cs文件,我可以在他的函数中导航。。。在VisualStudio中,函数有一个小菜单,告诉项目中该函数的所有引用。 好的,在这个菜单中,我只看到打开文件的项目内部的引用,而没有看到解决方案的其他项目的引用。 示例:在文件“utility.cs”中,我有一个名为“TryConvertMatrix(…)”的函数。我有一个名为“river”的项目使用此功能,还有一个名为“Phone”的项目使用此功能。在这两个项目中,文件“utility.cs”被添加为链接。如果我从项目“river”中打开文件“utility.cs”,我会在项目“river”的.cs文件中看到函数“TryConvertMatrix(..)的所有引用,但在“电话”项目的.cs文件中没有调用函数“TryConvertMatrix(..)的位置

  • 在前面解释的示例中,如果我尝试在“ConvertPerfectMatrix(..)”Visual Studio中重构函数“TryConvertMatrix(..)”的名称,请正确地更改“river”项目中的所有引用! 因此,当我在项目“电话”中导航时,我发现所有调用都指向“TryConvertMatrix(..”),而不是新名称,因此它无法构建!在这种情况下,我不能在这个项目中进行重构,因为。。。无构建-->无重构

我需要的只是更改一个变量的名称和我在解决方案中打开的所有项目中的所有引用

我尝试删除所有项目的bin文件夹,重新启动VisualStudio并重新编译 这样就没有进步

非常感谢,,
Massimiliano

如果删除所有bin文件夹,您的holdall解决方案重建是否正常?嗨,Ian Ringrose。是的,如果我删除了所有的bin文件夹,仍然可以正确编译…所以你做了一个完整的重建,所有的构建都正常,然后做一次重构,它不再为完整的重建而构建。。。您需要另一位开发人员坐在您的计算机旁,一些“奇怪”的事情正在发生-一旦它开始工作,我希望您将永远无法重复该问题。我假设您在完成重建之前和之后,在进行重构之前退出并重新启动visual studio。99%的情况下,visual studio没有更新其中一个Temprey文件,或者未能正确加载磁盘上已更改的文件。嗨,伊恩,我回答编辑的主要主题。我可以告诉你,我重新插入了visual studio,我尝试在一个项目中重构一个函数名,而另一个项目将不会编译(因为此项目使用的函数名已更改)一个重要信息:所有common.cs文件都作为链接添加