繁体   English   中英

如何更改许多Visual Studio项目的references文件夹?

[英]How do I change the references folder of a lot of Visual Studio projects?

这是一个尴尬的问题:我们正在清理一些旧的C#代码。 它具有大量的硬依赖性。 我们已经用NuGet依赖项替换了所有硬性依赖项。

但是,现在,当我们构建项目时,它将所有下载的依赖项放置在C:\\Assemblies 因为(iirc?)Visual Studio仅使用相对路径,所以我怀疑它实际上将进入"..\\..\\..\\Assemblies"或类似的路径,因此取决于它所在的目录。它似乎也在创建其他父目录中的某些其他Assembly文件夹,因此甚至不一致。

此问题影响数十个解决方案,每个解决方案都有十几个或多个项目。 我想用不会引起问题的一致的东西替换它们。 上一层(即"..\\Assemblies\\" )可能会起作用,但是不同的解决方案是将不同数量的文件夹放入其中。 也许最好给每个项目各自的/lib/文件夹(我认为这是标准做法?)。

我需要更改什么-是csproj文件中的仅OutputPathHintPath参数,还是更多? 是否有一些不错的自动化方法来执行此操作,或者我将不得不手动更改每个csproj文件?

但是,现在,当我们构建项目时,它将所有下载的依赖项都放置在C:\\ Assemblies ...中。它似乎还在其他父目录中创建了一些其他Assemblies文件夹,因此甚至不一致。

那是因为您的计算机上应该有几个配置文件NuGet.Config 您可以参考官方文档: 配置NuGet行为以获取更多详细信息。

默认引用文件夹是在解决方案目录,我们可以使用repositoryPathnuget.config更改默认值。

<configuration>
    <config>
      <add key="repositoryPath" value="..\Packages" />
    </config>
</configuration>

此外,一台机器上可以存在任何数量的NuGet.Config文件,无论是在全局位置还是在项目的文件夹结构中。 这样,您可以在应用于项目,项目组或所有项目的不同位置控制设置。

因此,您的计算机上应该有多个nuget.config文件,这将导致不同解决方案的参考文件夹不一致。

要解决此问题,您需要清理计算机上的其他nuget.config文件,但全局nuget.config除外,该文件位于路径%appdata%\\NuGet ,然后将repositoryPath配置为要保存引用的文件夹。 它可以是相对路径,也可以是绝对路径。

如果要将参考文件夹设置为某个解决方案的特殊目录,则可以在解决方案文件.sln旁边添加一个NuGet.config文件,并配置repositoryPath 该文件只会更改当前解决方案的references文件夹。

我需要更改什么-是csproj文件中的仅OutputPath和HintPath参数,还是更多? 是否有一些不错的自动化方法来执行此操作,或者我将不得不手动更改每个csproj文件?

您无需手动更改.csproj文件,在配置了repositoryPath ,将您的Visual Studio清理干净,然后重新打开它,当您打开“程序包管理器控制台”或“管理NuGet”程序包时,会提示您还原程序包。寻求解决方案。 等待还原完成。 然后,您只需使用命令行:

Update-Package –reinstall 

在包管理器控制台窗口中,将的NuGet更新HintPath中的csproj文件自动参数。

有关更多详细信息,请参见如何重新安装和更新软件包

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM