gpt4 book ai didi

git - $(NugetPackageRoot) 宏在 VS2019 中自动更改为 *.sfproj 文件中的 "..\packages\....",在推送到 Git 之前不断要求撤消更改

转载 作者:行者123 更新时间:2023-12-05 07:06:21 27 4
gpt4 key购买 nike

我在 Visual Studio 中遇到 *.sfproj 问题,因为 *.sfproj 文件不断被 check out 并不断显示源代码管理 (git) 中有更改。只有打开 *.sproj 作为解决方案的一部分修改文件,我只能在关闭整个解决方案后撤消对该特定文件的更改,才能获得最新版本的项目。每次都这样做是令人沮丧的,特别是因为它可能会意外地 checkin 源代码管理。被修改的行是:

  • 在服务器上:
<Import Project="$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" />
<Import Project="$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" />
<Target Name="ValidateMSBuildFiles" BeforeTargets="PrepareForBuild">
<Error Condition="!Exists('$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" Text="Unable to find the '$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Error Condition="!Exists('$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" Text="Unable to find the '$(NugetPackageRoot)Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
</Target>
  • 本地:
<Import Project="..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" />
<Import Project="..\package*\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" />
<Target Name="ValidateMSBuildFiles" BeforeTargets="PrepareForBuild">
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" Text="Unable to find the '..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.props' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" Text="Unable to find the '..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.9\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
</Target>

我也在 *.sfproj 中定义了这个属性:

<PropertyGroup>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
</PropertyGroup>

基本上 $(NugetPackageRoot) 在 VS 解决方案加载时更改为 ..\packages\。对于如何避免发生这种更改,使项目文件不被源代码管理视为已修改,您有什么想法吗?

最佳答案

$(NugetPackageRoot) macro changes to “..\packages\…” in *.sfproj fileautomatically in VS2019, constantly requiring undo changes before pushto Git Ask Question

建议

请尝试创建一个名为 Directory.Build.props 的文件.

在您的项目文件夹中。

然后在其中添加这些:

   <Project>
<PropertyGroup>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
</PropertyGroup>
</Project>

然后它将更改为使用您的新路径。

更新 1

你可以试试这个:

在解决方案文件夹下创建一个名为 Nuget.Config 的新文件(xxx.sln 存在)

然后在其中添加这些:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="%USERPROFILE%\.nuget\packages" />
</config>

</configuration>

那么你也应该将你的解决方案下的nuget.config push Source Control,然后再次测试它。

新的 Nuget.Config 文件会将 nuget pakage 设置为使用新的引用路径(我的函数适用于 packages.config,这是您使用的格式)。

关于git - $(NugetPackageRoot) 宏在 VS2019 中自动更改为 *.sfproj 文件中的 "..\packages\....",在推送到 Git 之前不断要求撤消更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62531958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com